@neuctra/ui 0.2.2 → 0.2.4

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.
Files changed (105) hide show
  1. package/dist/components/basic/Accordation.d.ts +27 -18
  2. package/dist/components/basic/Alert.d.ts +14 -2
  3. package/dist/components/basic/Avatar.d.ts +5 -3
  4. package/dist/components/basic/Badge.d.ts +3 -3
  5. package/dist/components/basic/Button.d.ts +15 -17
  6. package/dist/components/basic/Card.d.ts +7 -49
  7. package/dist/components/basic/{CheckRadioInput.d.ts → CheckboxGroup.d.ts} +4 -5
  8. package/dist/components/basic/Container.d.ts +28 -26
  9. package/dist/components/basic/Drawer.d.ts +20 -11
  10. package/dist/components/basic/DropDown.d.ts +24 -34
  11. package/dist/components/basic/Flexbox.d.ts +18 -10
  12. package/dist/components/basic/GridView.d.ts +7 -5
  13. package/dist/components/basic/Image.d.ts +31 -6
  14. package/dist/components/basic/Input.d.ts +18 -10
  15. package/dist/components/basic/List.d.ts +11 -3
  16. package/dist/components/basic/Modal.d.ts +8 -2
  17. package/dist/components/basic/RadioGroup.d.ts +25 -0
  18. package/dist/components/basic/Section.d.ts +36 -0
  19. package/dist/components/basic/Stack.d.ts +27 -0
  20. package/dist/components/basic/SwitchGroup.d.ts +25 -0
  21. package/dist/components/basic/Table.d.ts +18 -54
  22. package/dist/components/basic/Tabs.d.ts +28 -28
  23. package/dist/components/basic/Text.d.ts +19 -32
  24. package/dist/index.cjs.js +55 -176
  25. package/dist/index.cjs.js.map +1 -0
  26. package/dist/index.d.ts +19 -18
  27. package/dist/index.es.js +3501 -4738
  28. package/dist/index.es.js.map +1 -0
  29. package/dist/src/components/avatar/AvatarGroup.js +9 -0
  30. package/dist/src/components/avatar/AvatarWithStatus.js +18 -0
  31. package/dist/src/components/basic/Accordation.js +74 -0
  32. package/dist/src/components/basic/Alert.js +141 -0
  33. package/dist/src/components/basic/AudioGallery.js +425 -0
  34. package/dist/src/components/basic/AudioPlayer.js +116 -0
  35. package/dist/src/components/basic/Avatar.js +181 -0
  36. package/dist/src/components/basic/Badge.js +66 -0
  37. package/dist/src/components/basic/Button.js +101 -0
  38. package/dist/src/components/basic/Card.js +47 -0
  39. package/dist/src/components/basic/CheckboxGroup.js +40 -0
  40. package/dist/src/components/basic/Container.js +45 -0
  41. package/dist/src/components/basic/Drawer.js +94 -0
  42. package/dist/src/components/basic/DropDown.js +162 -0
  43. package/dist/src/components/basic/Flexbox.js +67 -0
  44. package/dist/src/components/basic/GridView.js +51 -0
  45. package/dist/src/components/basic/Image.js +95 -0
  46. package/dist/src/components/basic/Input.js +123 -0
  47. package/dist/src/components/basic/List.js +71 -0
  48. package/dist/src/components/basic/Modal.js +86 -0
  49. package/dist/src/components/basic/RadioGroup.js +37 -0
  50. package/dist/src/components/basic/Section.js +100 -0
  51. package/dist/src/components/basic/Stack.js +75 -0
  52. package/dist/src/components/basic/SwitchGroup.js +50 -0
  53. package/dist/src/components/basic/Table.js +32 -0
  54. package/dist/src/components/basic/Tabs.js +149 -0
  55. package/dist/src/components/basic/Text.js +117 -0
  56. package/dist/src/index.js +46 -0
  57. package/dist/types/src/components/basic/Accordation.d.ts +44 -0
  58. package/dist/types/{components → src/components}/basic/Alert.d.ts +14 -2
  59. package/dist/types/{components → src/components}/basic/Avatar.d.ts +5 -3
  60. package/dist/types/{components → src/components}/basic/Badge.d.ts +3 -3
  61. package/dist/types/src/components/basic/Button.d.ts +26 -0
  62. package/dist/types/src/components/basic/Card.d.ts +28 -0
  63. package/dist/types/{components/basic/CheckRadioInput.d.ts → src/components/basic/CheckboxGroup.d.ts} +4 -5
  64. package/dist/types/src/components/basic/Container.d.ts +32 -0
  65. package/dist/types/src/components/basic/Drawer.d.ts +33 -0
  66. package/dist/types/src/components/basic/DropDown.d.ts +53 -0
  67. package/dist/types/src/components/basic/Flexbox.d.ts +25 -0
  68. package/dist/types/{components → src/components}/basic/GridView.d.ts +7 -5
  69. package/dist/types/src/components/basic/Image.d.ts +58 -0
  70. package/dist/types/{components → src/components}/basic/Input.d.ts +18 -10
  71. package/dist/types/{components → src/components}/basic/List.d.ts +11 -3
  72. package/dist/types/{components → src/components}/basic/Modal.d.ts +8 -2
  73. package/dist/types/src/components/basic/RadioGroup.d.ts +25 -0
  74. package/dist/types/src/components/basic/Section.d.ts +36 -0
  75. package/dist/types/src/components/basic/Stack.d.ts +27 -0
  76. package/dist/types/src/components/basic/SwitchGroup.d.ts +25 -0
  77. package/dist/types/src/components/basic/Table.d.ts +23 -0
  78. package/dist/types/src/components/basic/Tabs.d.ts +47 -0
  79. package/dist/types/src/components/basic/Text.d.ts +26 -0
  80. package/dist/types/{index.d.ts → src/index.d.ts} +19 -18
  81. package/dist/types/vite.config.d.ts +2 -0
  82. package/dist/ui.css +1 -1
  83. package/dist/vite.config.js +34 -0
  84. package/package.json +2 -1
  85. package/dist/components/basic/ImageGallery.d.ts +0 -21
  86. package/dist/components/basic/VideoGallery.d.ts +0 -136
  87. package/dist/components/basic/VideoPlayer.d.ts +0 -36
  88. package/dist/types/components/basic/Accordation.d.ts +0 -35
  89. package/dist/types/components/basic/Button.d.ts +0 -28
  90. package/dist/types/components/basic/Card.d.ts +0 -70
  91. package/dist/types/components/basic/Container.d.ts +0 -30
  92. package/dist/types/components/basic/Drawer.d.ts +0 -24
  93. package/dist/types/components/basic/DropDown.d.ts +0 -63
  94. package/dist/types/components/basic/Flexbox.d.ts +0 -17
  95. package/dist/types/components/basic/Image.d.ts +0 -33
  96. package/dist/types/components/basic/ImageGallery.d.ts +0 -21
  97. package/dist/types/components/basic/Table.d.ts +0 -59
  98. package/dist/types/components/basic/Tabs.d.ts +0 -47
  99. package/dist/types/components/basic/Text.d.ts +0 -39
  100. package/dist/types/components/basic/VideoGallery.d.ts +0 -136
  101. package/dist/types/components/basic/VideoPlayer.d.ts +0 -36
  102. /package/dist/types/{components → src/components}/avatar/AvatarGroup.d.ts +0 -0
  103. /package/dist/types/{components → src/components}/avatar/AvatarWithStatus.d.ts +0 -0
  104. /package/dist/types/{components → src/components}/basic/AudioGallery.d.ts +0 -0
  105. /package/dist/types/{components → src/components}/basic/AudioPlayer.d.ts +0 -0
@@ -1,35 +1,44 @@
1
1
  import { default as React } from 'react';
2
- interface AccordationItem {
2
+ export interface AccordionItem {
3
3
  title: string;
4
4
  content: React.ReactNode;
5
5
  }
6
- interface AccordationProps {
7
- items: AccordationItem[];
6
+ export interface AccordionProps {
7
+ items: AccordionItem[];
8
+ /** Allow multiple open items */
8
9
  allowMultiple?: boolean;
9
- defaultOpenIndex?: number[];
10
+ /** Default open indexes */
11
+ defaultOpen?: number[];
12
+ /** Appearance */
10
13
  borderColor?: string;
11
14
  backgroundColor?: string;
12
15
  textColor?: string;
13
16
  hoverBgColor?: string;
14
17
  hoverTextColor?: string;
15
- paddingVertical?: string;
16
- paddingHorizontal?: string;
17
- margin?: string;
18
+ contentBgColor?: string;
19
+ contentTextColor?: string;
20
+ /** Layout & spacing */
21
+ paddingY?: string | number;
22
+ paddingX?: string | number;
23
+ marginY?: string | number;
24
+ borderRadius?: string | number;
25
+ contentPadding?: string | number;
26
+ /** Typography */
27
+ fontSize?: string | number;
28
+ fontWeight?: string | number;
29
+ contentFontSize?: string | number;
30
+ contentFontWeight?: string | number;
31
+ /** Icon customization */
18
32
  iconOpen?: React.ReactNode;
19
33
  iconClose?: React.ReactNode;
34
+ iconSize?: string | number;
35
+ /** Motion & style */
20
36
  transitionDuration?: string;
21
- borderRadius?: string;
22
37
  shadow?: string;
23
- contentPadding?: string;
24
- fontSize?: string;
25
- fontWeight?: string;
26
- iconSize?: string;
27
- contentFontSize?: string;
28
- contentFontWeight?: string;
29
- contentBackgroundColor?: string;
30
- contentTextColor?: string;
31
38
  className?: string;
32
39
  style?: React.CSSProperties;
33
40
  }
34
- export declare const Accordation: React.FC<AccordationProps>;
35
- export {};
41
+ /**
42
+ * 🧠 Industry-standard, minimal, and fully customizable Accordion
43
+ */
44
+ export declare const Accordion: React.FC<AccordionProps>;
@@ -1,16 +1,28 @@
1
1
  import { default as React } from 'react';
2
2
  type AlertType = "success" | "error" | "warning" | "info";
3
3
  type AlertPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
4
- interface AlertProps {
4
+ export interface AlertProps {
5
5
  title?: string;
6
6
  description?: string;
7
7
  type?: AlertType;
8
8
  dismissible?: boolean;
9
- onClose?: () => void;
10
9
  duration?: number;
10
+ onClose?: () => void;
11
+ /** Customization */
11
12
  icon?: React.ReactNode;
12
13
  actionButton?: React.ReactNode;
13
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;
14
26
  className?: string;
15
27
  style?: React.CSSProperties;
16
28
  }
@@ -1,9 +1,11 @@
1
1
  import { default as React } from 'react';
2
+ type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "responsive";
3
+ type AvatarVariant = "circular" | "rounded" | "square";
2
4
  interface AvatarProps {
3
5
  src?: string;
4
6
  alt?: string;
5
- size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
6
- variant?: "circular" | "rounded" | "square";
7
+ size?: AvatarSize;
8
+ variant?: AvatarVariant;
7
9
  isOnline?: boolean;
8
10
  isOffline?: boolean;
9
11
  className?: string;
@@ -19,7 +21,7 @@ interface AvatarProps {
19
21
  interface AvatarGroupProps {
20
22
  avatars: AvatarProps[];
21
23
  max?: number;
22
- size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
24
+ size?: AvatarSize;
23
25
  className?: string;
24
26
  style?: React.CSSProperties;
25
27
  spacing?: "tight" | "normal" | "loose";
@@ -1,14 +1,14 @@
1
1
  import { default as React, CSSProperties, ReactNode } from 'react';
2
- interface BadgeProps {
2
+ export interface BadgeProps {
3
3
  text?: string;
4
4
  color?: string;
5
5
  textColor?: string;
6
6
  borderColor?: string;
7
+ borderWidth?: string;
7
8
  icon?: ReactNode;
8
9
  iconPosition?: "left" | "right";
9
10
  rounded?: boolean;
10
11
  borderRadius?: string;
11
- borderWidth?: string;
12
12
  fontSize?: string;
13
13
  fontWeight?: number | string;
14
14
  horizontalPadding?: string;
@@ -20,7 +20,7 @@ interface BadgeProps {
20
20
  count?: number | string;
21
21
  pulse?: boolean;
22
22
  style?: CSSProperties;
23
+ className?: string;
23
24
  onClick?: () => void;
24
25
  }
25
26
  export declare const Badge: React.FC<BadgeProps>;
26
- export {};
@@ -1,8 +1,9 @@
1
- import { default as React, CSSProperties } from 'react';
2
- interface ButtonProps {
1
+ import { default as React, CSSProperties, FC } from 'react';
2
+ /** ⚙️ Props */
3
+ export interface ButtonProps {
3
4
  children: React.ReactNode;
4
5
  type?: "button" | "submit" | "reset";
5
- onClick?: () => void;
6
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
6
7
  iconBefore?: React.ReactNode;
7
8
  iconAfter?: React.ReactNode;
8
9
  className?: string;
@@ -11,18 +12,15 @@ interface ButtonProps {
11
12
  disabled?: boolean;
12
13
  loading?: boolean;
13
14
  loadingText?: string;
14
- paddingHorizontal?: number;
15
- paddingVertical?: number;
16
- fontSize?: string;
17
- fontWeight?: string | number;
18
- borderRadius?: number;
19
- backgroundColor?: string;
20
- textColor?: string;
21
- borderColor?: string;
22
- hoverBgColor?: string;
23
- hoverTextColor?: string;
24
- hoverBorderColor?: string;
25
- boxShadow?: string;
15
+ /** 🎨 Theme options */
16
+ darkMode?: boolean;
17
+ baseColor?: string;
18
+ /** 🧩 Optional design tweaks */
19
+ size?: "sm" | "md" | "lg";
20
+ rounded?: boolean;
21
+ /** 🧱 Border visibility */
22
+ showBorder?: boolean;
26
23
  }
27
- export declare const Button: React.FC<ButtonProps>;
28
- export {};
24
+ /** 💎 Minimal customizable Button */
25
+ export declare const Button: FC<ButtonProps>;
26
+ export default Button;
@@ -1,65 +1,23 @@
1
- import { CSSProperties, ReactNode, ElementType, ComponentPropsWithoutRef, ForwardedRef, ReactElement } from 'react';
1
+ import { CSSProperties, ReactNode, ElementType, ForwardedRef, ReactElement, ComponentPropsWithoutRef } from 'react';
2
+ type CardVariant = string;
2
3
  type CardOwnProps = {
4
+ as?: ElementType;
3
5
  children?: ReactNode;
4
6
  className?: string;
7
+ variant?: CardVariant;
5
8
  background?: string;
6
- backgroundImage?: string;
7
- backgroundSize?: CSSProperties["backgroundSize"];
8
- backgroundPosition?: CSSProperties["backgroundPosition"];
9
- backgroundRepeat?: CSSProperties["backgroundRepeat"];
10
- backgroundGradient?: string;
11
- backgroundBlendMode?: CSSProperties["backgroundBlendMode"];
12
9
  textColor?: string;
13
- hoverStyles?: CSSProperties;
14
- activeStyles?: CSSProperties;
15
10
  borderRadius?: string | number;
16
11
  border?: string;
17
- borderTop?: string;
18
- borderRight?: string;
19
- borderBottom?: string;
20
- borderLeft?: string;
21
12
  boxShadow?: string;
22
13
  hoverShadow?: string;
23
- transition?: string;
24
14
  padding?: string | number;
25
- paddingX?: string | number;
26
- paddingY?: string | number;
27
15
  margin?: string | number;
28
- marginX?: string | number;
29
- marginY?: string | number;
30
16
  width?: string | number;
31
- minWidth?: string | number;
32
- maxWidth?: string | number;
33
17
  height?: string | number;
34
- minHeight?: string | number;
35
- maxHeight?: string | number;
36
- display?: CSSProperties["display"];
37
- flexDirection?: CSSProperties["flexDirection"];
38
- justifyContent?: CSSProperties["justifyContent"];
39
- alignItems?: CSSProperties["alignItems"];
40
- alignContent?: CSSProperties["alignContent"];
41
- flexWrap?: CSSProperties["flexWrap"];
42
- flex?: CSSProperties["flex"];
43
- gap?: string | number;
44
- position?: CSSProperties["position"];
45
- top?: string | number;
46
- right?: string | number;
47
- bottom?: string | number;
48
- left?: string | number;
49
- zIndex?: number;
50
- overflow?: CSSProperties["overflow"];
51
- overflowX?: CSSProperties["overflowX"];
52
- overflowY?: CSSProperties["overflowY"];
53
- cursor?: CSSProperties["cursor"];
54
- pointerEvents?: CSSProperties["pointerEvents"];
55
- userSelect?: CSSProperties["userSelect"];
56
- transform?: CSSProperties["transform"];
57
- transformOrigin?: CSSProperties["transformOrigin"];
58
- backdropFilter?: CSSProperties["backdropFilter"];
59
- filter?: CSSProperties["filter"];
60
- opacity?: number;
61
- visibility?: CSSProperties["visibility"];
62
- as?: ElementType;
18
+ style?: CSSProperties;
19
+ hoverStyle?: CSSProperties;
20
+ onClick?: () => void;
63
21
  };
64
22
  type CardProps<T extends ElementType = "div"> = CardOwnProps & Omit<ComponentPropsWithoutRef<T>, keyof CardOwnProps>;
65
23
  declare const Card: (<T extends ElementType = "div">(props: CardProps<T> & {
@@ -3,12 +3,11 @@ interface Option {
3
3
  label: string;
4
4
  value: string;
5
5
  }
6
- interface CheckRadioProps {
7
- type: "checkbox" | "radio";
6
+ interface CheckboxGroupProps {
8
7
  name?: string;
9
8
  options: Option[];
10
- selectedValues?: string[] | string;
11
- onChange?: (value: string | string[]) => void;
9
+ selectedValues?: string[];
10
+ onChange?: (values: string[]) => void;
12
11
  disabled?: boolean;
13
12
  readOnly?: boolean;
14
13
  required?: boolean;
@@ -23,5 +22,5 @@ interface CheckRadioProps {
23
22
  textColor?: string;
24
23
  errorStyle?: React.CSSProperties;
25
24
  }
26
- export declare const CheckRadio: React.FC<CheckRadioProps>;
25
+ export declare const CheckboxGroup: React.FC<CheckboxGroupProps>;
27
26
  export {};
@@ -1,30 +1,32 @@
1
- import { default as React, CSSProperties } from 'react';
2
- type ScreenSize = "sm" | "md" | "lg";
3
- type ResponsiveProp<T> = T | Partial<Record<ScreenSize, T>>;
4
- interface ContainerProps {
5
- display?: ResponsiveProp<"block" | "flex" | "grid" | "inline-block">;
6
- flexDirection?: ResponsiveProp<"row" | "column" | "row-reverse" | "column-reverse">;
7
- justifyContent?: ResponsiveProp<"flex-start" | "center" | "flex-end" | "space-between" | "space-around" | "space-evenly">;
8
- alignItems?: ResponsiveProp<"flex-start" | "center" | "flex-end" | "stretch" | "baseline">;
9
- gridTemplateColumns?: ResponsiveProp<string>;
10
- gridTemplateRows?: ResponsiveProp<string>;
11
- gap?: ResponsiveProp<string>;
12
- rowGap?: ResponsiveProp<string>;
13
- columnGap?: ResponsiveProp<string>;
14
- width?: ResponsiveProp<string>;
15
- maxWidth?: ResponsiveProp<string>;
16
- height?: ResponsiveProp<string>;
17
- padding?: ResponsiveProp<string>;
18
- margin?: ResponsiveProp<string>;
19
- textAlign?: ResponsiveProp<"left" | "center" | "right">;
1
+ import { default as React } from 'react';
2
+ type ContainerSize = "sm" | "md" | "lg" | "xl" | "2xl" | "full";
3
+ export interface ContainerProps {
4
+ /** Predefined max-width based on common breakpoints */
5
+ size?: ContainerSize;
6
+ /** Padding (accepts number in px or CSS string, e.g., '2rem') */
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) */
20
11
  backgroundColor?: string;
21
- border?: ResponsiveProp<string>;
22
- borderRadius?: ResponsiveProp<string>;
23
- boxShadow?: ResponsiveProp<string>;
24
- overflow?: ResponsiveProp<"visible" | "hidden" | "scroll" | "auto">;
25
- children: React.ReactNode;
12
+ /** Center the container horizontally (adds `margin: 0 auto`) */
13
+ 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 */
26
23
  className?: string;
27
- style?: CSSProperties;
24
+ /** Container content */
25
+ children: React.ReactNode;
28
26
  }
27
+ /**
28
+ * 🧱 Container Component
29
+ * A flexible, responsive layout wrapper inspired by Tailwind's container.
30
+ */
29
31
  export declare const Container: React.FC<ContainerProps>;
30
- export {};
32
+ export default Container;
@@ -1,24 +1,33 @@
1
- import { default as React } from 'react';
2
- interface DrawerButtonProps {
1
+ import { default as React, CSSProperties, ReactNode } from 'react';
2
+ export interface DrawerButtonProps {
3
3
  label?: string;
4
- icon?: React.ReactNode;
4
+ icon?: ReactNode;
5
5
  iconPosition?: "left" | "right";
6
6
  onClick?: () => void;
7
- style?: React.CSSProperties;
7
+ color?: string;
8
+ textColor?: string;
9
+ borderRadius?: string;
10
+ padding?: string;
11
+ fontSize?: string;
12
+ gap?: string;
13
+ style?: CSSProperties;
14
+ className?: string;
8
15
  }
9
- interface DrawerProps {
16
+ export declare const DrawerButton: React.FC<DrawerButtonProps>;
17
+ export interface DrawerProps {
10
18
  open: boolean;
11
19
  onClose?: () => void;
12
20
  position?: "left" | "right" | "top" | "bottom";
13
21
  width?: string;
14
22
  height?: string;
15
23
  backgroundColor?: string;
24
+ backdropColor?: string;
16
25
  transitionDuration?: number;
17
- style?: React.CSSProperties;
18
- children?: React.ReactNode;
26
+ style?: CSSProperties;
27
+ className?: string;
28
+ children?: ReactNode;
19
29
  showCloseButton?: boolean;
20
- closeButtonStyle?: React.CSSProperties;
30
+ closeIconColor?: string;
31
+ closeButtonStyle?: CSSProperties;
21
32
  }
22
- declare const DrawerButton: React.FC<DrawerButtonProps>;
23
- declare const Drawer: React.FC<DrawerProps>;
24
- export { Drawer, DrawerButton };
33
+ export declare const Drawer: React.FC<DrawerProps>;
@@ -1,63 +1,53 @@
1
1
  import { default as React } from 'react';
2
- interface Option {
2
+ export interface Option {
3
3
  label: string;
4
4
  value: string;
5
5
  icon?: React.ReactNode;
6
6
  disabled?: boolean;
7
+ description?: string;
7
8
  }
8
- interface DropdownProps {
9
+ export interface DropdownProps {
9
10
  options: Option[];
10
11
  value?: string;
12
+ values?: string[];
11
13
  defaultValue?: string;
12
- onChange?: (value: string) => void;
14
+ defaultValues?: string[];
15
+ onChange?: (value: string | string[]) => void;
13
16
  placeholder?: string;
14
17
  disabled?: boolean;
15
18
  searchable?: boolean;
16
19
  multiSelect?: boolean;
17
20
  clearable?: boolean;
18
21
  virtualized?: boolean;
19
- optionHeight?: number;
20
- visibleOptions?: number;
21
- width?: string;
22
- height?: string;
22
+ width?: string | number;
23
+ dropdownMaxHeight?: string;
24
+ borderRadius?: string;
25
+ boxShadow?: string;
23
26
  borderColor?: string;
24
- focusBorderColor?: string;
25
- errorBorderColor?: string;
26
- backgroundColor?: string;
27
+ accentColor?: string;
28
+ theme?: "light" | "dark" | "custom";
29
+ menuBg?: string;
30
+ controlBg?: string;
27
31
  textColor?: string;
32
+ hoverBg?: string;
33
+ selectedBg?: string;
34
+ disabledBg?: string;
35
+ disabledTextColor?: string;
28
36
  placeholderColor?: string;
29
- hoverColor?: string;
30
- selectedColor?: string;
31
- disabledColor?: string;
32
- padding?: string;
33
- margin?: string;
34
- borderRadius?: string;
35
- boxShadow?: string;
36
- optionPadding?: string;
37
- optionGap?: string;
38
37
  transitionDuration?: string;
39
- dropdownMaxHeight?: string;
40
- dropdownMinWidth?: string;
41
38
  className?: string;
42
- dropdownClassName?: string;
39
+ controlClassName?: string;
40
+ menuClassName?: string;
43
41
  optionClassName?: string;
44
- inputClassName?: string;
45
42
  style?: React.CSSProperties;
46
- dropdownStyle?: React.CSSProperties;
43
+ controlStyle?: React.CSSProperties;
44
+ menuStyle?: React.CSSProperties;
47
45
  optionStyle?: React.CSSProperties;
48
- inputStyle?: React.CSSProperties;
49
46
  iconPrefix?: React.ReactNode;
50
47
  iconSuffix?: React.ReactNode;
51
48
  clearIcon?: React.ReactNode;
52
49
  dropdownIcon?: React.ReactNode;
53
50
  checkIcon?: React.ReactNode;
54
- ariaLabel?: string;
55
- ariaLabelledby?: string;
56
- ariaDescribedby?: string;
57
- onFocus?: () => void;
58
- onBlur?: () => void;
59
- onOpen?: () => void;
60
- onClose?: () => void;
61
51
  }
62
- export declare const Dropdown: React.FC<DropdownProps>;
63
- export {};
52
+ export declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLDivElement>>;
53
+ export default Dropdown;
@@ -1,17 +1,25 @@
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
  interface FlexboxProps {
4
- direction?: "row" | "column" | Partial<Record<ScreenSize, "row" | "column">>;
5
- align?: "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
6
- justify?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly";
7
- gap?: number | string;
8
- padding?: number | string;
9
- backgroundColor?: string;
10
- width?: string;
11
- maxWidth?: string;
12
- height?: string;
13
- style?: React.CSSProperties;
5
+ direction?: ResponsiveValue<"row" | "column" | "row-reverse" | "column-reverse">;
6
+ align?: ResponsiveValue<"flex-start" | "flex-end" | "center" | "stretch" | "baseline">;
7
+ justify?: ResponsiveValue<"flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly">;
8
+ wrap?: ResponsiveValue<"nowrap" | "wrap" | "wrap-reverse">;
9
+ gap?: ResponsiveValue<number | string>;
10
+ padding?: ResponsiveValue<number | string>;
11
+ margin?: ResponsiveValue<number | string>;
12
+ backgroundColor?: ResponsiveValue<string>;
13
+ width?: ResponsiveValue<string>;
14
+ maxWidth?: ResponsiveValue<string>;
15
+ height?: ResponsiveValue<string>;
16
+ borderRadius?: ResponsiveValue<string>;
17
+ border?: ResponsiveValue<string>;
18
+ boxShadow?: ResponsiveValue<string>;
19
+ overflow?: ResponsiveValue<"visible" | "hidden" | "auto" | "scroll">;
14
20
  children: React.ReactNode;
21
+ style?: React.CSSProperties;
22
+ className?: string;
15
23
  }
16
24
  export declare const Flexbox: React.FC<FlexboxProps>;
17
25
  export {};
@@ -1,17 +1,19 @@
1
1
  import { default as React } from 'react';
2
2
  type ScreenSize = "sm" | "md" | "lg";
3
- interface GridViewProps {
3
+ export interface GridProps {
4
4
  columns?: number | Partial<Record<ScreenSize, number>>;
5
- gap?: string;
6
- padding?: string;
5
+ gap?: number | string;
6
+ padding?: number | string;
7
7
  alignItems?: "start" | "center" | "end" | "stretch";
8
8
  justifyItems?: "start" | "center" | "end" | "stretch";
9
9
  backgroundColor?: string;
10
10
  width?: string;
11
11
  maxWidth?: string;
12
12
  height?: string;
13
- children: React.ReactNode;
13
+ margin?: number | string;
14
14
  style?: React.CSSProperties;
15
+ className?: string;
16
+ children: React.ReactNode;
15
17
  }
16
- export declare const GridView: React.FC<GridViewProps>;
18
+ export declare const GridView: React.FC<GridProps>;
17
19
  export {};
@@ -1,33 +1,58 @@
1
1
  import { default as React } from 'react';
2
2
  interface ImageProps {
3
+ /** Image source URL */
3
4
  src?: string;
5
+ /** Alternative text (for SEO + accessibility) */
4
6
  alt?: string;
5
- width?: string;
6
- height?: string;
7
- borderRadius?: string;
7
+ /** Optional title attribute (SEO hint tooltip) */
8
+ title?: string;
9
+ /** Custom width and height */
10
+ width?: string | number;
11
+ height?: string | number;
12
+ /** Border customization */
13
+ borderRadius?: string | number;
8
14
  borderColor?: string;
9
15
  borderStyle?: "solid" | "dashed" | "dotted" | "double" | "none";
10
- borderWidth?: string;
16
+ borderWidth?: string | number;
17
+ /** Shadow customization */
11
18
  shadow?: boolean;
12
19
  boxShadow?: string;
20
+ /** Opacity and fit options */
13
21
  opacity?: number;
14
22
  objectFit?: "cover" | "contain" | "fill" | "none" | "scale-down";
23
+ /** Overlay and icon layers */
15
24
  overlayText?: string;
16
25
  overlayColor?: string;
17
26
  svgIcon?: React.ReactNode;
27
+ /** Layout and responsiveness */
18
28
  responsive?: boolean;
19
- padding?: string;
20
- margin?: string;
29
+ padding?: string | number;
30
+ margin?: string | number;
31
+ /** Performance */
21
32
  lazyLoad?: boolean;
33
+ /** Hover interactivity */
22
34
  hoverOpacity?: number;
23
35
  hoverShadow?: boolean;
24
36
  hoverScale?: number;
25
37
  hoverRotate?: number;
26
38
  transitionDuration?: string;
39
+ /** Overflow handling */
27
40
  overflow?: "hidden" | "scroll" | "auto" | "visible" | "x" | "y";
41
+ /** Class and style overrides */
28
42
  className?: string;
29
43
  style?: React.CSSProperties;
44
+ /** Event handlers */
30
45
  onClick?: (event: React.MouseEvent<HTMLDivElement | HTMLImageElement>) => void;
46
+ onLoad?: () => void;
47
+ onError?: () => void;
31
48
  }
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
+ */
32
57
  export declare const Image: React.FC<ImageProps>;
33
58
  export {};
@@ -1,8 +1,8 @@
1
1
  import { default as React, CSSProperties } from 'react';
2
- interface InputProps {
2
+ export interface InputProps {
3
3
  type?: "text" | "password" | "email" | "number" | "search" | "tel" | "url" | "textarea";
4
- placeholder?: string;
5
4
  label?: string;
5
+ placeholder?: string;
6
6
  name?: string;
7
7
  value?: string;
8
8
  defaultValue?: string;
@@ -15,24 +15,32 @@ interface InputProps {
15
15
  autoFocus?: boolean;
16
16
  iconLeft?: React.ReactNode;
17
17
  iconRight?: React.ReactNode;
18
- borderColor?: string;
19
- focusBorderColor?: string;
20
- hoverBorderColor?: string;
18
+ /** 🎨 Full Customization Options */
19
+ labelColor?: string;
20
+ placeholderColor?: string;
21
21
  backgroundColor?: string;
22
22
  textColor?: string;
23
+ borderColor?: string;
24
+ hoverBorderColor?: string;
25
+ focusBorderColor?: string;
23
26
  errorColor?: string;
24
27
  successColor?: string;
25
- labelColor?: string;
26
- size?: "sm" | "md" | "lg";
27
- radius?: string;
28
+ iconColor?: string;
29
+ shadow?: string;
30
+ /** 🧩 Layout + Style Customization */
28
31
  fontSize?: string;
32
+ fontFamily?: string;
33
+ radius?: string;
34
+ size?: "sm" | "md" | "lg";
29
35
  rows?: number;
30
36
  cols?: number;
31
37
  maxLength?: number;
32
38
  resize?: boolean;
33
39
  showCharacterCount?: boolean;
40
+ paddingX?: string;
41
+ paddingY?: string;
42
+ /** 🧱 External customization */
34
43
  className?: string;
35
44
  style?: CSSProperties;
36
45
  }
37
- export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
38
- export {};
46
+ export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLTextAreaElement | HTMLInputElement>>;