@neuctra/ui 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/basic/Accordation.d.ts +9 -13
- package/dist/components/basic/Alert.d.ts +10 -23
- package/dist/components/basic/Avatar.d.ts +7 -16
- package/dist/components/basic/Badge.d.ts +9 -14
- package/dist/components/basic/Button.d.ts +9 -19
- package/dist/components/basic/CheckboxGroup.d.ts +1 -0
- package/dist/components/basic/Container.d.ts +2 -19
- package/dist/components/basic/Drawer.d.ts +7 -18
- package/dist/components/basic/DropDown.d.ts +20 -40
- package/dist/components/basic/FlexView.d.ts +16 -0
- package/dist/components/basic/GridView.d.ts +4 -9
- package/dist/components/basic/Image.d.ts +10 -31
- package/dist/components/basic/Input.d.ts +22 -35
- package/dist/components/basic/List.d.ts +6 -20
- package/dist/components/basic/Modal.d.ts +8 -8
- package/dist/components/basic/RadioGroup.d.ts +1 -0
- package/dist/components/basic/Stack.d.ts +4 -14
- package/dist/components/basic/SwitchGroup.d.ts +1 -0
- package/dist/components/basic/Table.d.ts +6 -1
- package/dist/index.cjs.js +82 -52
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.es.js +2060 -2902
- package/dist/index.es.js.map +1 -1
- package/dist/src/components/basic/Accordation.js +25 -26
- package/dist/src/components/basic/Alert.js +33 -138
- package/dist/src/components/basic/AudioPlayer.js +54 -40
- package/dist/src/components/basic/Avatar.js +41 -154
- package/dist/src/components/basic/Badge.js +23 -62
- package/dist/src/components/basic/Button.js +24 -97
- package/dist/src/components/basic/CheckboxGroup.js +36 -13
- package/dist/src/components/basic/Container.js +19 -38
- package/dist/src/components/basic/Drawer.js +22 -73
- package/dist/src/components/basic/DropDown.js +94 -158
- package/dist/src/components/basic/FlexView.js +19 -0
- package/dist/src/components/basic/GridView.js +15 -48
- package/dist/src/components/basic/Image.js +39 -79
- package/dist/src/components/basic/Input.js +68 -109
- package/dist/src/components/basic/List.js +20 -62
- package/dist/src/components/basic/Modal.js +6 -58
- package/dist/src/components/basic/RadioGroup.js +35 -18
- package/dist/src/components/basic/Stack.js +19 -72
- package/dist/src/components/basic/SwitchGroup.js +42 -16
- package/dist/src/components/basic/Table.js +15 -36
- package/dist/src/components/basic/Tabs.js +3 -12
- package/dist/src/index.js +3 -5
- package/dist/types/src/components/basic/Accordation.d.ts +9 -13
- package/dist/types/src/components/basic/Alert.d.ts +10 -23
- package/dist/types/src/components/basic/Avatar.d.ts +7 -16
- package/dist/types/src/components/basic/Badge.d.ts +9 -14
- package/dist/types/src/components/basic/Button.d.ts +9 -19
- package/dist/types/src/components/basic/CheckboxGroup.d.ts +1 -0
- package/dist/types/src/components/basic/Container.d.ts +2 -19
- package/dist/types/src/components/basic/Drawer.d.ts +7 -18
- package/dist/types/src/components/basic/DropDown.d.ts +20 -40
- package/dist/types/src/components/basic/FlexView.d.ts +16 -0
- package/dist/types/src/components/basic/GridView.d.ts +4 -9
- package/dist/types/src/components/basic/Image.d.ts +10 -31
- package/dist/types/src/components/basic/Input.d.ts +22 -35
- package/dist/types/src/components/basic/List.d.ts +6 -20
- package/dist/types/src/components/basic/Modal.d.ts +8 -8
- package/dist/types/src/components/basic/RadioGroup.d.ts +1 -0
- package/dist/types/src/components/basic/Stack.d.ts +4 -14
- package/dist/types/src/components/basic/SwitchGroup.d.ts +1 -0
- package/dist/types/src/components/basic/Table.d.ts +6 -1
- package/dist/types/src/index.d.ts +3 -4
- package/dist/ui.css +1 -1
- package/package.json +2 -1
- package/dist/components/basic/Card.d.ts +0 -28
- package/dist/components/basic/Flexbox.d.ts +0 -25
- package/dist/components/basic/Section.d.ts +0 -36
- package/dist/src/components/basic/Card.js +0 -47
- package/dist/src/components/basic/Flexbox.js +0 -67
- package/dist/src/components/basic/Section.js +0 -100
- package/dist/types/src/components/basic/Card.d.ts +0 -28
- package/dist/types/src/components/basic/Flexbox.d.ts +0 -25
- package/dist/types/src/components/basic/Section.d.ts +0 -36
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
1
|
+
import { default as React, ReactNode, CSSProperties } from 'react';
|
|
2
2
|
export interface AccordionItem {
|
|
3
|
-
title: string;
|
|
4
|
-
content:
|
|
3
|
+
title: string | ReactNode;
|
|
4
|
+
content: ReactNode;
|
|
5
5
|
}
|
|
6
6
|
export interface AccordionProps {
|
|
7
7
|
items: AccordionItem[];
|
|
8
|
-
/** Allow multiple open items */
|
|
9
8
|
allowMultiple?: boolean;
|
|
10
|
-
/** Default open indexes */
|
|
11
9
|
defaultOpen?: number[];
|
|
12
10
|
/** Appearance */
|
|
13
11
|
borderColor?: string;
|
|
@@ -28,17 +26,15 @@ export interface AccordionProps {
|
|
|
28
26
|
fontWeight?: string | number;
|
|
29
27
|
contentFontSize?: string | number;
|
|
30
28
|
contentFontWeight?: string | number;
|
|
31
|
-
/** Icon
|
|
32
|
-
iconOpen?:
|
|
33
|
-
iconClose?:
|
|
29
|
+
/** Icon */
|
|
30
|
+
iconOpen?: ReactNode;
|
|
31
|
+
iconClose?: ReactNode;
|
|
34
32
|
iconSize?: string | number;
|
|
35
|
-
/** Motion
|
|
33
|
+
/** Motion */
|
|
36
34
|
transitionDuration?: string;
|
|
37
35
|
shadow?: string;
|
|
36
|
+
/** Class overrides */
|
|
38
37
|
className?: string;
|
|
39
|
-
style?:
|
|
38
|
+
style?: CSSProperties;
|
|
40
39
|
}
|
|
41
|
-
/**
|
|
42
|
-
* 🧠 Industry-standard, minimal, and fully customizable Accordion
|
|
43
|
-
*/
|
|
44
40
|
export declare const Accordion: React.FC<AccordionProps>;
|
|
@@ -1,30 +1,17 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
2
|
type AlertType = "success" | "error" | "warning" | "info";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
interface Toast {
|
|
4
|
+
id: number;
|
|
5
5
|
title?: string;
|
|
6
6
|
description?: string;
|
|
7
7
|
type?: AlertType;
|
|
8
|
-
dismissible?: boolean;
|
|
9
8
|
duration?: number;
|
|
10
|
-
onClose?: () => void;
|
|
11
|
-
/** Customization */
|
|
12
|
-
icon?: React.ReactNode;
|
|
13
|
-
actionButton?: React.ReactNode;
|
|
14
|
-
position?: AlertPosition;
|
|
15
|
-
backgroundColor?: string;
|
|
16
|
-
borderColor?: string;
|
|
17
|
-
textColor?: string;
|
|
18
|
-
borderRadius?: string | number;
|
|
19
|
-
shadow?: string;
|
|
20
|
-
padding?: string | number;
|
|
21
|
-
fontSize?: string | number;
|
|
22
|
-
fontWeight?: number | string;
|
|
23
|
-
descriptionColor?: string;
|
|
24
|
-
animationDuration?: string;
|
|
25
|
-
maxWidth?: string;
|
|
26
|
-
className?: string;
|
|
27
|
-
style?: React.CSSProperties;
|
|
28
9
|
}
|
|
29
|
-
|
|
10
|
+
interface ToastContextProps {
|
|
11
|
+
addToast: (toast: Omit<Toast, "id">) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const useToast: () => ToastContextProps;
|
|
14
|
+
export declare const ToastProvider: React.FC<{
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
}>;
|
|
30
17
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
1
|
+
import { default as React, CSSProperties } from 'react';
|
|
2
2
|
type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "responsive";
|
|
3
3
|
type AvatarVariant = "circular" | "rounded" | "square";
|
|
4
|
+
type StatusPosition = "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
4
5
|
interface AvatarProps {
|
|
5
6
|
src?: string;
|
|
6
7
|
alt?: string;
|
|
@@ -8,25 +9,15 @@ interface AvatarProps {
|
|
|
8
9
|
variant?: AvatarVariant;
|
|
9
10
|
isOnline?: boolean;
|
|
10
11
|
isOffline?: boolean;
|
|
11
|
-
className?: string;
|
|
12
|
-
style?: React.CSSProperties;
|
|
13
|
-
statusClassName?: string;
|
|
14
|
-
statusStyle?: React.CSSProperties;
|
|
15
|
-
statusPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
16
|
-
fallback?: string;
|
|
17
12
|
ring?: boolean;
|
|
18
13
|
ringColor?: string;
|
|
14
|
+
fallback?: string;
|
|
19
15
|
onClick?: () => void;
|
|
20
|
-
|
|
21
|
-
interface AvatarGroupProps {
|
|
22
|
-
avatars: AvatarProps[];
|
|
23
|
-
max?: number;
|
|
24
|
-
size?: AvatarSize;
|
|
16
|
+
statusPosition?: StatusPosition;
|
|
25
17
|
className?: string;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
statusClassName?: string;
|
|
19
|
+
style?: CSSProperties;
|
|
20
|
+
statusStyle?: CSSProperties;
|
|
29
21
|
}
|
|
30
22
|
export declare const Avatar: React.FC<AvatarProps>;
|
|
31
|
-
export declare const AvatarGroup: React.FC<AvatarGroupProps>;
|
|
32
23
|
export {};
|
|
@@ -1,25 +1,20 @@
|
|
|
1
|
-
import { default as React
|
|
1
|
+
import { default as React } from 'react';
|
|
2
2
|
export interface BadgeProps {
|
|
3
3
|
text?: string;
|
|
4
|
-
|
|
5
|
-
textColor?: string;
|
|
6
|
-
borderColor?: string;
|
|
7
|
-
borderWidth?: string;
|
|
8
|
-
icon?: ReactNode;
|
|
4
|
+
icon?: React.ReactNode;
|
|
9
5
|
iconPosition?: "left" | "right";
|
|
6
|
+
/** 🎨 Theme */
|
|
7
|
+
primaryTheme?: boolean;
|
|
8
|
+
primaryColor?: string;
|
|
9
|
+
/** 📏 Sizes */
|
|
10
|
+
size?: "sm" | "md" | "lg";
|
|
11
|
+
/** Shape */
|
|
10
12
|
rounded?: boolean;
|
|
11
|
-
|
|
12
|
-
fontSize?: string;
|
|
13
|
-
fontWeight?: number | string;
|
|
14
|
-
horizontalPadding?: string;
|
|
15
|
-
verticalPadding?: string;
|
|
16
|
-
margin?: string;
|
|
17
|
-
shadow?: string;
|
|
13
|
+
/** Notification */
|
|
18
14
|
notificationDot?: boolean;
|
|
19
15
|
dotColor?: string;
|
|
20
16
|
count?: number | string;
|
|
21
17
|
pulse?: boolean;
|
|
22
|
-
style?: CSSProperties;
|
|
23
18
|
className?: string;
|
|
24
19
|
onClick?: () => void;
|
|
25
20
|
}
|
|
@@ -1,26 +1,16 @@
|
|
|
1
|
-
import { default as React
|
|
2
|
-
|
|
3
|
-
export interface ButtonProps {
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
3
|
children: React.ReactNode;
|
|
5
|
-
type?: "button" | "submit" | "reset";
|
|
6
|
-
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
7
4
|
iconBefore?: React.ReactNode;
|
|
8
5
|
iconAfter?: React.ReactNode;
|
|
9
|
-
className?: string;
|
|
10
|
-
style?: CSSProperties;
|
|
11
|
-
fullWidth?: boolean;
|
|
12
|
-
disabled?: boolean;
|
|
13
6
|
loading?: boolean;
|
|
14
7
|
loadingText?: string;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
fullWidth?: boolean;
|
|
9
|
+
/** 🎨 Theme */
|
|
10
|
+
primaryTheme?: boolean;
|
|
11
|
+
primaryColor?: string;
|
|
12
|
+
/** 📏 Sizes */
|
|
19
13
|
size?: "sm" | "md" | "lg";
|
|
20
|
-
|
|
21
|
-
/** 🧱 Border visibility */
|
|
22
|
-
showBorder?: boolean;
|
|
14
|
+
className?: string;
|
|
23
15
|
}
|
|
24
|
-
|
|
25
|
-
export declare const Button: FC<ButtonProps>;
|
|
26
|
-
export default Button;
|
|
16
|
+
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,32 +1,15 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
type ContainerSize = "sm" | "md" | "lg" | "xl" | "2xl" | "full";
|
|
3
3
|
export interface ContainerProps {
|
|
4
|
-
/** Predefined max-width based on common breakpoints */
|
|
5
4
|
size?: ContainerSize;
|
|
6
|
-
|
|
7
|
-
padding?: number | string;
|
|
8
|
-
/** Margin (accepts number in px or CSS string, e.g., 'auto' or '16px 8px') */
|
|
9
|
-
margin?: number | string;
|
|
10
|
-
/** Background color (any valid CSS color) */
|
|
11
|
-
backgroundColor?: string;
|
|
12
|
-
/** Center the container horizontally (adds `margin: 0 auto`) */
|
|
5
|
+
padding?: "none" | "sm" | "md" | "lg" | "xl";
|
|
13
6
|
center?: boolean;
|
|
14
|
-
/** Custom width override (defaults to container max width) */
|
|
15
|
-
width?: string;
|
|
16
|
-
/** Optional height */
|
|
17
|
-
height?: string;
|
|
18
|
-
/** Border radius (accepts number in px or CSS string) */
|
|
19
|
-
borderRadius?: number | string;
|
|
20
|
-
/** Additional inline styles */
|
|
21
|
-
style?: React.CSSProperties;
|
|
22
|
-
/** Tailwind or custom class names */
|
|
23
7
|
className?: string;
|
|
24
|
-
/** Container content */
|
|
25
8
|
children: React.ReactNode;
|
|
26
9
|
}
|
|
27
10
|
/**
|
|
28
11
|
* 🧱 Container Component
|
|
29
|
-
*
|
|
12
|
+
* Fully responsive, Tailwind-first layout wrapper
|
|
30
13
|
*/
|
|
31
14
|
export declare const Container: React.FC<ContainerProps>;
|
|
32
15
|
export default Container;
|
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
import { default as React,
|
|
2
|
-
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
interface DrawerButtonProps {
|
|
3
3
|
label?: string;
|
|
4
4
|
icon?: ReactNode;
|
|
5
5
|
iconPosition?: "left" | "right";
|
|
6
6
|
onClick?: () => void;
|
|
7
|
-
color?: string;
|
|
8
|
-
textColor?: string;
|
|
9
|
-
borderRadius?: string;
|
|
10
|
-
padding?: string;
|
|
11
|
-
fontSize?: string;
|
|
12
|
-
gap?: string;
|
|
13
|
-
style?: CSSProperties;
|
|
14
7
|
className?: string;
|
|
15
8
|
}
|
|
16
9
|
export declare const DrawerButton: React.FC<DrawerButtonProps>;
|
|
17
|
-
|
|
10
|
+
interface DrawerProps {
|
|
18
11
|
open: boolean;
|
|
19
12
|
onClose?: () => void;
|
|
20
13
|
position?: "left" | "right" | "top" | "bottom";
|
|
21
|
-
|
|
22
|
-
height?: string;
|
|
23
|
-
backgroundColor?: string;
|
|
24
|
-
backdropColor?: string;
|
|
25
|
-
transitionDuration?: number;
|
|
26
|
-
style?: CSSProperties;
|
|
14
|
+
size?: string;
|
|
27
15
|
className?: string;
|
|
16
|
+
overlayClassName?: string;
|
|
28
17
|
children?: ReactNode;
|
|
29
18
|
showCloseButton?: boolean;
|
|
30
|
-
|
|
31
|
-
closeButtonStyle?: CSSProperties;
|
|
19
|
+
closeButtonClassName?: string;
|
|
32
20
|
}
|
|
33
21
|
export declare const Drawer: React.FC<DrawerProps>;
|
|
22
|
+
export {};
|
|
@@ -1,53 +1,33 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
export interface
|
|
2
|
+
export interface SelectOption {
|
|
3
3
|
label: string;
|
|
4
4
|
value: string;
|
|
5
5
|
icon?: React.ReactNode;
|
|
6
|
-
disabled?: boolean;
|
|
7
|
-
description?: string;
|
|
8
6
|
}
|
|
9
7
|
export interface DropdownProps {
|
|
10
|
-
|
|
8
|
+
label?: string;
|
|
9
|
+
name?: string;
|
|
11
10
|
value?: string;
|
|
12
|
-
values?: string[];
|
|
13
11
|
defaultValue?: string;
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
onChange?: (name: string, value: string) => void;
|
|
13
|
+
options?: SelectOption[];
|
|
16
14
|
placeholder?: string;
|
|
15
|
+
required?: boolean;
|
|
17
16
|
disabled?: boolean;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
textColor?: string;
|
|
32
|
-
hoverBg?: string;
|
|
33
|
-
selectedBg?: string;
|
|
34
|
-
disabledBg?: string;
|
|
35
|
-
disabledTextColor?: string;
|
|
36
|
-
placeholderColor?: string;
|
|
37
|
-
transitionDuration?: string;
|
|
38
|
-
className?: string;
|
|
39
|
-
controlClassName?: string;
|
|
40
|
-
menuClassName?: string;
|
|
17
|
+
error?: string | boolean;
|
|
18
|
+
success?: boolean;
|
|
19
|
+
helperText?: string;
|
|
20
|
+
labelIcon?: React.ElementType;
|
|
21
|
+
prefixIcon?: React.ElementType;
|
|
22
|
+
variant?: "dark" | "light";
|
|
23
|
+
/** 🔥 THEME SYSTEM */
|
|
24
|
+
primaryTheme?: boolean;
|
|
25
|
+
primaryColor?: string;
|
|
26
|
+
containerClassName?: string;
|
|
27
|
+
labelClassName?: string;
|
|
28
|
+
triggerClassName?: string;
|
|
29
|
+
dropdownClassName?: string;
|
|
41
30
|
optionClassName?: string;
|
|
42
|
-
|
|
43
|
-
controlStyle?: React.CSSProperties;
|
|
44
|
-
menuStyle?: React.CSSProperties;
|
|
45
|
-
optionStyle?: React.CSSProperties;
|
|
46
|
-
iconPrefix?: React.ReactNode;
|
|
47
|
-
iconSuffix?: React.ReactNode;
|
|
48
|
-
clearIcon?: React.ReactNode;
|
|
49
|
-
dropdownIcon?: React.ReactNode;
|
|
50
|
-
checkIcon?: React.ReactNode;
|
|
31
|
+
className?: string;
|
|
51
32
|
}
|
|
52
33
|
export declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLDivElement>>;
|
|
53
|
-
export default Dropdown;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
type ScreenSize = "sm" | "md" | "lg";
|
|
3
|
+
type ResponsiveValue<T> = T | Partial<Record<ScreenSize, T>>;
|
|
4
|
+
interface FlexViewProps {
|
|
5
|
+
direction?: ResponsiveValue<"row" | "column" | "row-reverse" | "column-reverse">;
|
|
6
|
+
align?: ResponsiveValue<"start" | "end" | "center" | "stretch" | "baseline">;
|
|
7
|
+
justify?: ResponsiveValue<"start" | "end" | "center" | "between" | "around" | "evenly">;
|
|
8
|
+
wrap?: ResponsiveValue<"nowrap" | "wrap" | "wrap-reverse">;
|
|
9
|
+
gap?: ResponsiveValue<1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12>;
|
|
10
|
+
padding?: ResponsiveValue<1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12>;
|
|
11
|
+
margin?: ResponsiveValue<1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12>;
|
|
12
|
+
className?: string;
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export declare const FlexView: React.FC<FlexViewProps>;
|
|
16
|
+
export {};
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
type ScreenSize = "sm" | "md" | "lg";
|
|
3
|
+
type ResponsiveValue<T> = T | Partial<Record<ScreenSize, T>>;
|
|
3
4
|
export interface GridProps {
|
|
4
|
-
columns?:
|
|
5
|
-
gap?:
|
|
6
|
-
padding?:
|
|
5
|
+
columns?: ResponsiveValue<1 | 2 | 3 | 4 | 5 | 6>;
|
|
6
|
+
gap?: ResponsiveValue<1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12>;
|
|
7
|
+
padding?: ResponsiveValue<1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12>;
|
|
7
8
|
alignItems?: "start" | "center" | "end" | "stretch";
|
|
8
9
|
justifyItems?: "start" | "center" | "end" | "stretch";
|
|
9
|
-
backgroundColor?: string;
|
|
10
|
-
width?: string;
|
|
11
|
-
maxWidth?: string;
|
|
12
|
-
height?: string;
|
|
13
|
-
margin?: number | string;
|
|
14
|
-
style?: React.CSSProperties;
|
|
15
10
|
className?: string;
|
|
16
11
|
children: React.ReactNode;
|
|
17
12
|
}
|
|
@@ -1,58 +1,37 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
interface ImageProps {
|
|
3
|
-
/** Image source URL */
|
|
4
3
|
src?: string;
|
|
5
|
-
/** Alternative text (for SEO + accessibility) */
|
|
6
4
|
alt?: string;
|
|
7
|
-
/** Optional title attribute (SEO hint tooltip) */
|
|
8
5
|
title?: string;
|
|
9
|
-
/**
|
|
6
|
+
/** Tailwind width/height classes or numbers */
|
|
10
7
|
width?: string | number;
|
|
11
8
|
height?: string | number;
|
|
12
|
-
/**
|
|
13
|
-
|
|
9
|
+
/** Tailwind rounded classes */
|
|
10
|
+
rounded?: string;
|
|
14
11
|
borderColor?: string;
|
|
15
|
-
borderStyle?: "solid" | "dashed" | "dotted" | "double" | "none";
|
|
16
12
|
borderWidth?: string | number;
|
|
17
|
-
/** Shadow customization */
|
|
18
13
|
shadow?: boolean;
|
|
19
|
-
boxShadow?: string;
|
|
20
|
-
/** Opacity and fit options */
|
|
21
14
|
opacity?: number;
|
|
22
15
|
objectFit?: "cover" | "contain" | "fill" | "none" | "scale-down";
|
|
23
|
-
/** Overlay and icon layers */
|
|
24
16
|
overlayText?: string;
|
|
25
17
|
overlayColor?: string;
|
|
26
18
|
svgIcon?: React.ReactNode;
|
|
27
|
-
/** Layout and responsiveness */
|
|
28
19
|
responsive?: boolean;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
lazyLoad?: boolean;
|
|
33
|
-
/** Hover interactivity */
|
|
34
|
-
hoverOpacity?: number;
|
|
35
|
-
hoverShadow?: boolean;
|
|
20
|
+
p?: string;
|
|
21
|
+
m?: string;
|
|
22
|
+
/** Hover Effects */
|
|
36
23
|
hoverScale?: number;
|
|
37
24
|
hoverRotate?: number;
|
|
25
|
+
hoverOpacity?: number;
|
|
26
|
+
hoverShadow?: boolean;
|
|
38
27
|
transitionDuration?: string;
|
|
39
|
-
/** Overflow handling */
|
|
40
28
|
overflow?: "hidden" | "scroll" | "auto" | "visible" | "x" | "y";
|
|
41
|
-
/**
|
|
29
|
+
/** Custom Tailwind classes */
|
|
42
30
|
className?: string;
|
|
43
31
|
style?: React.CSSProperties;
|
|
44
|
-
|
|
45
|
-
onClick?: (event: React.MouseEvent<HTMLDivElement | HTMLImageElement>) => void;
|
|
32
|
+
onClick?: (e: React.MouseEvent<HTMLDivElement | HTMLImageElement>) => void;
|
|
46
33
|
onLoad?: () => void;
|
|
47
34
|
onError?: () => void;
|
|
48
35
|
}
|
|
49
|
-
/**
|
|
50
|
-
* ✅ Industry-Standard Image Component
|
|
51
|
-
* - SEO & accessibility optimized
|
|
52
|
-
* - Lazy loading & responsive
|
|
53
|
-
* - Fully customizable styling
|
|
54
|
-
* - Smooth hover transitions
|
|
55
|
-
* - Overlay and SVG support
|
|
56
|
-
*/
|
|
57
36
|
export declare const Image: React.FC<ImageProps>;
|
|
58
37
|
export {};
|
|
@@ -1,46 +1,33 @@
|
|
|
1
|
-
import { default as React
|
|
2
|
-
export interface
|
|
3
|
-
type?: "text" | "password" | "email" | "number" | "search" | "tel" | "url" | "textarea";
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface InputFieldProps {
|
|
4
3
|
label?: string;
|
|
5
|
-
placeholder?: string;
|
|
6
4
|
name?: string;
|
|
5
|
+
type?: "text" | "password" | "email" | "number" | "textarea";
|
|
6
|
+
placeholder?: string;
|
|
7
7
|
value?: string;
|
|
8
8
|
defaultValue?: string;
|
|
9
9
|
onChange?: (name: string, value: string) => void;
|
|
10
|
+
required?: boolean;
|
|
10
11
|
disabled?: boolean;
|
|
11
12
|
readOnly?: boolean;
|
|
12
|
-
|
|
13
|
-
error?: string;
|
|
13
|
+
error?: string | boolean;
|
|
14
14
|
success?: boolean;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
errorColor?: string;
|
|
27
|
-
successColor?: string;
|
|
28
|
-
iconColor?: string;
|
|
29
|
-
shadow?: string;
|
|
30
|
-
/** 🧩 Layout + Style Customization */
|
|
31
|
-
fontSize?: string;
|
|
32
|
-
fontFamily?: string;
|
|
33
|
-
radius?: string;
|
|
34
|
-
size?: "sm" | "md" | "lg";
|
|
15
|
+
helperText?: string;
|
|
16
|
+
/** Icons */
|
|
17
|
+
icon?: React.ElementType;
|
|
18
|
+
prefix?: string;
|
|
19
|
+
prefixIcon?: React.ElementType;
|
|
20
|
+
suffixIcon?: React.ReactNode;
|
|
21
|
+
/** Number props */
|
|
22
|
+
min?: number;
|
|
23
|
+
max?: number;
|
|
24
|
+
step?: number;
|
|
25
|
+
/** Textarea */
|
|
35
26
|
rows?: number;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
paddingX?: string;
|
|
41
|
-
paddingY?: string;
|
|
42
|
-
/** 🧱 External customization */
|
|
27
|
+
/** 🔥 Theme */
|
|
28
|
+
primaryTheme?: boolean;
|
|
29
|
+
primaryColor?: string;
|
|
30
|
+
/** Styling */
|
|
43
31
|
className?: string;
|
|
44
|
-
style?: CSSProperties;
|
|
45
32
|
}
|
|
46
|
-
export declare const Input: React.ForwardRefExoticComponent<
|
|
33
|
+
export declare const Input: React.ForwardRefExoticComponent<InputFieldProps & React.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { default as React,
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
2
|
export interface ListItemType {
|
|
3
3
|
text: string;
|
|
4
4
|
icon?: ReactNode;
|
|
@@ -10,25 +10,11 @@ export interface ListProps {
|
|
|
10
10
|
titleIcon?: ReactNode;
|
|
11
11
|
items: ListItemType[];
|
|
12
12
|
type?: "unordered" | "ordered" | "inline";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
backgroundColor?: string;
|
|
16
|
-
borderColor?: string;
|
|
17
|
-
fontSize?: string;
|
|
18
|
-
fontWeight?: string | number;
|
|
19
|
-
borderRadius?: string;
|
|
20
|
-
padding?: string;
|
|
21
|
-
spacing?: string;
|
|
13
|
+
primaryTheme?: boolean;
|
|
14
|
+
primaryColor?: string;
|
|
22
15
|
className?: string;
|
|
23
|
-
|
|
16
|
+
itemClassName?: string;
|
|
17
|
+
titleClassName?: string;
|
|
18
|
+
bulletClassName?: string;
|
|
24
19
|
}
|
|
25
|
-
export interface ListItemProps extends ListItemType {
|
|
26
|
-
bulletColor?: string;
|
|
27
|
-
textColor?: string;
|
|
28
|
-
fontSize?: string;
|
|
29
|
-
fontWeight?: string | number;
|
|
30
|
-
spacing?: string;
|
|
31
|
-
isInline?: boolean;
|
|
32
|
-
}
|
|
33
|
-
export declare const ListItem: React.FC<ListItemProps>;
|
|
34
20
|
export declare const List: React.FC<ListProps>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { default as React, ReactNode
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
2
|
export interface ModalProps {
|
|
3
3
|
isOpen: boolean;
|
|
4
4
|
onClose: () => void;
|
|
5
5
|
children: ReactNode;
|
|
6
|
-
ariaLabel?: string;
|
|
7
6
|
title?: string;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
closeButtonStyle?: CSSProperties;
|
|
11
|
-
disableOverlayClose?: boolean;
|
|
12
|
-
transitionDuration?: number;
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
ariaLabel?: string;
|
|
13
9
|
className?: string;
|
|
14
|
-
|
|
10
|
+
overlayClassName?: string;
|
|
11
|
+
contentClassName?: string;
|
|
12
|
+
closeButtonClassName?: string;
|
|
13
|
+
disableOverlayClose?: boolean;
|
|
15
14
|
darkMode?: boolean;
|
|
15
|
+
transitionDuration?: number;
|
|
16
16
|
}
|
|
17
17
|
export declare const Modal: React.FC<ModalProps>;
|
|
@@ -3,25 +3,15 @@ type ScreenSize = "sm" | "md" | "lg";
|
|
|
3
3
|
type ResponsiveValue<T> = T | Partial<Record<ScreenSize, T>>;
|
|
4
4
|
interface StackProps {
|
|
5
5
|
direction?: ResponsiveValue<"vertical" | "horizontal">;
|
|
6
|
-
gap?: ResponsiveValue<
|
|
7
|
-
align?: ResponsiveValue<"
|
|
8
|
-
justify?: ResponsiveValue<"
|
|
6
|
+
gap?: ResponsiveValue<1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12>;
|
|
7
|
+
align?: ResponsiveValue<"start" | "center" | "end" | "stretch" | "baseline">;
|
|
8
|
+
justify?: ResponsiveValue<"start" | "center" | "end" | "between" | "around" | "evenly">;
|
|
9
9
|
wrap?: ResponsiveValue<"nowrap" | "wrap" | "wrap-reverse">;
|
|
10
|
-
padding?: ResponsiveValue<number | string>;
|
|
11
|
-
margin?: ResponsiveValue<number | string>;
|
|
12
|
-
width?: ResponsiveValue<string>;
|
|
13
|
-
maxWidth?: ResponsiveValue<string>;
|
|
14
|
-
height?: ResponsiveValue<string>;
|
|
15
|
-
backgroundColor?: ResponsiveValue<string>;
|
|
16
|
-
borderRadius?: ResponsiveValue<string>;
|
|
17
|
-
border?: ResponsiveValue<string>;
|
|
18
|
-
boxShadow?: ResponsiveValue<string>;
|
|
19
|
-
overflow?: ResponsiveValue<"visible" | "hidden" | "auto" | "scroll">;
|
|
20
|
-
style?: React.CSSProperties;
|
|
21
10
|
className?: string;
|
|
22
11
|
children: React.ReactNode;
|
|
23
12
|
}
|
|
24
13
|
export declare const Stack: React.FC<StackProps>;
|
|
14
|
+
/** Shortcuts for horizontal & vertical stacks */
|
|
25
15
|
export declare const HStack: React.FC<StackProps>;
|
|
26
16
|
export declare const VStack: React.FC<StackProps>;
|
|
27
17
|
export {};
|
|
@@ -17,7 +17,12 @@ interface TableCellProps {
|
|
|
17
17
|
export declare const Table: React.FC<TableProps>;
|
|
18
18
|
export declare const THead: React.FC<TableSectionProps>;
|
|
19
19
|
export declare const TBody: React.FC<TableSectionProps>;
|
|
20
|
-
|
|
20
|
+
interface TRowProps extends TableSectionProps {
|
|
21
|
+
onClick?: () => void;
|
|
22
|
+
hoverBgColor?: string;
|
|
23
|
+
darkMode?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare const TRow: React.FC<TRowProps>;
|
|
21
26
|
export declare const TH: React.FC<TableCellProps>;
|
|
22
27
|
export declare const TD: React.FC<TableCellProps>;
|
|
23
28
|
export {};
|