@neuctra/ui 0.1.0 → 0.2.1

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 (93) hide show
  1. package/README.md +96 -0
  2. package/dist/components/basic/Accordation.d.ts +4 -4
  3. package/dist/components/basic/AudioGallery.d.ts +23 -0
  4. package/dist/components/basic/Avatar.d.ts +30 -0
  5. package/dist/components/basic/Card.d.ts +70 -0
  6. package/dist/components/basic/CheckRadioInput.d.ts +7 -0
  7. package/dist/components/basic/Container.d.ts +25 -27
  8. package/dist/components/basic/DropDown.d.ts +31 -5
  9. package/dist/components/basic/Flexbox.d.ts +12 -16
  10. package/dist/components/basic/GridView.d.ts +12 -19
  11. package/dist/components/basic/Image.d.ts +1 -1
  12. package/dist/components/{gallery → basic}/ImageGallery.d.ts +8 -1
  13. package/dist/components/basic/Modal.d.ts +11 -0
  14. package/dist/components/basic/Table.d.ts +35 -1
  15. package/dist/components/basic/Tabs.d.ts +13 -0
  16. package/dist/components/basic/VideoGallery.d.ts +136 -0
  17. package/dist/components/basic/VideoPlayer.d.ts +22 -3
  18. package/dist/index.cjs.js +241 -40
  19. package/dist/index.d.ts +11 -8
  20. package/dist/index.es.js +6176 -1566
  21. package/dist/types/components/basic/Accordation.d.ts +4 -4
  22. package/dist/types/components/basic/AudioGallery.d.ts +23 -0
  23. package/dist/types/components/basic/Avatar.d.ts +30 -0
  24. package/dist/types/components/basic/Card.d.ts +70 -0
  25. package/dist/types/components/basic/CheckRadioInput.d.ts +7 -0
  26. package/dist/types/components/basic/Container.d.ts +25 -27
  27. package/dist/types/components/basic/DropDown.d.ts +31 -5
  28. package/dist/types/components/basic/Flexbox.d.ts +12 -16
  29. package/dist/types/components/basic/GridView.d.ts +12 -19
  30. package/dist/types/components/basic/Image.d.ts +1 -1
  31. package/dist/types/components/{gallery → basic}/ImageGallery.d.ts +8 -1
  32. package/dist/types/components/basic/Modal.d.ts +11 -0
  33. package/dist/types/components/basic/Table.d.ts +35 -1
  34. package/dist/types/components/basic/Tabs.d.ts +13 -0
  35. package/dist/types/components/basic/VideoGallery.d.ts +136 -0
  36. package/dist/types/components/basic/VideoPlayer.d.ts +22 -3
  37. package/dist/types/index.d.ts +11 -8
  38. package/dist/ui.css +1 -1
  39. package/package.json +1 -1
  40. package/dist/components/avatar/Avatar.d.ts +0 -9
  41. package/dist/components/button/ToggleButton.d.ts +0 -15
  42. package/dist/components/card/Card.d.ts +0 -26
  43. package/dist/components/card/ImageCard.d.ts +0 -14
  44. package/dist/components/card/InteractiveCard.d.ts +0 -7
  45. package/dist/components/gallery/AudioGallery.d.ts +0 -21
  46. package/dist/components/gallery/VideoGallery.d.ts +0 -18
  47. package/dist/components/modal/FullScreenModal.d.ts +0 -9
  48. package/dist/components/modal/Modal.d.ts +0 -11
  49. package/dist/components/modal/ModalBody.d.ts +0 -6
  50. package/dist/components/modal/ModalFooter.d.ts +0 -6
  51. package/dist/components/modal/ModalHeader.d.ts +0 -7
  52. package/dist/components/table/CustomTable.d.ts +0 -7
  53. package/dist/components/table/SortableTableHeader.d.ts +0 -7
  54. package/dist/components/table/TableBody.d.ts +0 -7
  55. package/dist/components/table/TableColumn.d.ts +0 -7
  56. package/dist/components/table/TableHead.d.ts +0 -7
  57. package/dist/components/table/TableHeader.d.ts +0 -7
  58. package/dist/components/table/TableRow.d.ts +0 -7
  59. package/dist/components/tabs/CustomTabs.d.ts +0 -8
  60. package/dist/components/tabs/Tab.d.ts +0 -10
  61. package/dist/components/tabs/TabList.d.ts +0 -7
  62. package/dist/components/tabs/TabPanel.d.ts +0 -7
  63. package/dist/components/tabs/TabPanels.d.ts +0 -8
  64. package/dist/components/video/CustomVideoPlayer.d.ts +0 -11
  65. package/dist/components/video/EmbedVideo.d.ts +0 -6
  66. package/dist/components/video/PiPVideo.d.ts +0 -4
  67. package/dist/types/components/avatar/Avatar.d.ts +0 -9
  68. package/dist/types/components/button/ToggleButton.d.ts +0 -15
  69. package/dist/types/components/card/Card.d.ts +0 -26
  70. package/dist/types/components/card/ImageCard.d.ts +0 -14
  71. package/dist/types/components/card/InteractiveCard.d.ts +0 -7
  72. package/dist/types/components/gallery/AudioGallery.d.ts +0 -21
  73. package/dist/types/components/gallery/VideoGallery.d.ts +0 -18
  74. package/dist/types/components/modal/FullScreenModal.d.ts +0 -9
  75. package/dist/types/components/modal/Modal.d.ts +0 -11
  76. package/dist/types/components/modal/ModalBody.d.ts +0 -6
  77. package/dist/types/components/modal/ModalFooter.d.ts +0 -6
  78. package/dist/types/components/modal/ModalHeader.d.ts +0 -7
  79. package/dist/types/components/table/CustomTable.d.ts +0 -7
  80. package/dist/types/components/table/SortableTableHeader.d.ts +0 -7
  81. package/dist/types/components/table/TableBody.d.ts +0 -7
  82. package/dist/types/components/table/TableColumn.d.ts +0 -7
  83. package/dist/types/components/table/TableHead.d.ts +0 -7
  84. package/dist/types/components/table/TableHeader.d.ts +0 -7
  85. package/dist/types/components/table/TableRow.d.ts +0 -7
  86. package/dist/types/components/tabs/CustomTabs.d.ts +0 -8
  87. package/dist/types/components/tabs/Tab.d.ts +0 -10
  88. package/dist/types/components/tabs/TabList.d.ts +0 -7
  89. package/dist/types/components/tabs/TabPanel.d.ts +0 -7
  90. package/dist/types/components/tabs/TabPanels.d.ts +0 -8
  91. package/dist/types/components/video/CustomVideoPlayer.d.ts +0 -11
  92. package/dist/types/components/video/EmbedVideo.d.ts +0 -6
  93. package/dist/types/components/video/PiPVideo.d.ts +0 -4
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
- interface AccordionItem {
2
+ interface AccordationItem {
3
3
  title: string;
4
4
  content: React.ReactNode;
5
5
  }
6
- interface AccordionProps {
7
- items: AccordionItem[];
6
+ interface AccordationProps {
7
+ items: AccordationItem[];
8
8
  allowMultiple?: boolean;
9
9
  defaultOpenIndex?: number[];
10
10
  borderColor?: string;
@@ -31,5 +31,5 @@ interface AccordionProps {
31
31
  className?: string;
32
32
  style?: React.CSSProperties;
33
33
  }
34
- export declare const Accordion: React.FC<AccordionProps>;
34
+ export declare const Accordation: React.FC<AccordationProps>;
35
35
  export {};
@@ -0,0 +1,23 @@
1
+ interface AudioTrack {
2
+ src: string;
3
+ title: string;
4
+ artist?: string;
5
+ thumbnail?: string;
6
+ duration?: string;
7
+ }
8
+ interface AudioGalleryProps {
9
+ tracks?: AudioTrack[];
10
+ className?: string;
11
+ galleryTitle?: string;
12
+ primaryColor?: string;
13
+ backgroundColor?: string;
14
+ textColor?: string;
15
+ secondaryColor?: string;
16
+ autoplay?: boolean;
17
+ borderColor?: string;
18
+ border?: number;
19
+ maxWidth?: number;
20
+ loop?: boolean;
21
+ }
22
+ export declare function AudioGallery({ tracks, className, galleryTitle, primaryColor, backgroundColor, textColor, secondaryColor, border, borderColor, maxWidth, autoplay, loop, }: AudioGalleryProps): import("react/jsx-runtime").JSX.Element;
23
+ export {};
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ interface AvatarProps {
3
+ src?: string;
4
+ alt?: string;
5
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
6
+ variant?: "circular" | "rounded" | "square";
7
+ isOnline?: boolean;
8
+ isOffline?: boolean;
9
+ className?: string;
10
+ style?: React.CSSProperties;
11
+ statusClassName?: string;
12
+ statusStyle?: React.CSSProperties;
13
+ statusPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
14
+ fallback?: string;
15
+ ring?: boolean;
16
+ ringColor?: string;
17
+ onClick?: () => void;
18
+ }
19
+ interface AvatarGroupProps {
20
+ avatars: AvatarProps[];
21
+ max?: number;
22
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
23
+ className?: string;
24
+ style?: React.CSSProperties;
25
+ spacing?: "tight" | "normal" | "loose";
26
+ direction?: "left" | "right";
27
+ }
28
+ export declare const Avatar: React.FC<AvatarProps>;
29
+ export declare const AvatarGroup: React.FC<AvatarGroupProps>;
30
+ export {};
@@ -0,0 +1,70 @@
1
+ import { CSSProperties, ReactNode, ElementType, ComponentPropsWithoutRef, ForwardedRef, ReactElement } from "react";
2
+ type CardOwnProps = {
3
+ children?: ReactNode;
4
+ className?: string;
5
+ 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
+ textColor?: string;
13
+ hoverStyles?: CSSProperties;
14
+ activeStyles?: CSSProperties;
15
+ borderRadius?: string | number;
16
+ border?: string;
17
+ borderTop?: string;
18
+ borderRight?: string;
19
+ borderBottom?: string;
20
+ borderLeft?: string;
21
+ boxShadow?: string;
22
+ hoverShadow?: string;
23
+ transition?: string;
24
+ padding?: string | number;
25
+ paddingX?: string | number;
26
+ paddingY?: string | number;
27
+ margin?: string | number;
28
+ marginX?: string | number;
29
+ marginY?: string | number;
30
+ width?: string | number;
31
+ minWidth?: string | number;
32
+ maxWidth?: string | number;
33
+ 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;
63
+ };
64
+ type CardProps<T extends ElementType = "div"> = CardOwnProps & Omit<ComponentPropsWithoutRef<T>, keyof CardOwnProps>;
65
+ declare const Card: (<T extends ElementType = "div">(props: CardProps<T> & {
66
+ ref?: ForwardedRef<HTMLDivElement>;
67
+ }) => ReactElement) & {
68
+ displayName: string;
69
+ };
70
+ export { Card };
@@ -15,6 +15,13 @@ interface CheckRadioProps {
15
15
  error?: string;
16
16
  className?: string;
17
17
  customIcon?: (checked: boolean) => React.ReactNode;
18
+ style?: React.CSSProperties;
19
+ labelStyle?: React.CSSProperties;
20
+ iconSize?: number;
21
+ iconCheckedBgColor?: string;
22
+ iconUncheckedBorderColor?: string;
23
+ textColor?: string;
24
+ errorStyle?: React.CSSProperties;
18
25
  }
19
26
  export declare const CheckRadio: React.FC<CheckRadioProps>;
20
27
  export {};
@@ -1,32 +1,30 @@
1
- import React from "react";
2
- interface ResponsiveProps<T> {
3
- sm?: T;
4
- md?: T;
5
- lg?: T;
6
- }
1
+ import React, { CSSProperties } from "react";
2
+ type ScreenSize = "sm" | "md" | "lg";
3
+ type ResponsiveProp<T> = T | Partial<Record<ScreenSize, T>>;
7
4
  interface ContainerProps {
8
- display?: ResponsiveProps<"block" | "flex" | "grid" | "inline-block">;
9
- flexDirection?: ResponsiveProps<"row" | "column" | "row-reverse" | "column-reverse">;
10
- justifyContent?: ResponsiveProps<"flex-start" | "center" | "flex-end" | "space-between" | "space-around" | "space-evenly">;
11
- alignItems?: ResponsiveProps<"flex-start" | "center" | "flex-end" | "stretch" | "baseline">;
12
- gridTemplateColumns?: ResponsiveProps<string>;
13
- gridTemplateRows?: ResponsiveProps<string>;
14
- gap?: ResponsiveProps<string>;
15
- rowGap?: ResponsiveProps<string>;
16
- columnGap?: ResponsiveProps<string>;
17
- width?: ResponsiveProps<string>;
18
- maxWidth?: ResponsiveProps<string>;
19
- height?: ResponsiveProps<string>;
20
- padding?: ResponsiveProps<string>;
21
- margin?: ResponsiveProps<string>;
22
- textAlign?: ResponsiveProps<"left" | "center" | "right">;
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">;
23
20
  backgroundColor?: string;
24
- border?: ResponsiveProps<string>;
25
- borderRadius?: ResponsiveProps<string>;
26
- boxShadow?: ResponsiveProps<string>;
27
- overflow?: ResponsiveProps<"visible" | "hidden" | "scroll" | "auto">;
21
+ border?: ResponsiveProp<string>;
22
+ borderRadius?: ResponsiveProp<string>;
23
+ boxShadow?: ResponsiveProp<string>;
24
+ overflow?: ResponsiveProp<"visible" | "hidden" | "scroll" | "auto">;
28
25
  children: React.ReactNode;
29
26
  className?: string;
27
+ style?: CSSProperties;
30
28
  }
31
- declare const Container: React.FC<ContainerProps>;
32
- export default Container;
29
+ export declare const Container: React.FC<ContainerProps>;
30
+ export {};
@@ -3,6 +3,7 @@ interface Option {
3
3
  label: string;
4
4
  value: string;
5
5
  icon?: React.ReactNode;
6
+ disabled?: boolean;
6
7
  }
7
8
  interface DropdownProps {
8
9
  options: Option[];
@@ -11,27 +12,52 @@ interface DropdownProps {
11
12
  onChange?: (value: string) => void;
12
13
  placeholder?: string;
13
14
  disabled?: boolean;
15
+ searchable?: boolean;
16
+ multiSelect?: boolean;
17
+ clearable?: boolean;
18
+ virtualized?: boolean;
19
+ optionHeight?: number;
20
+ visibleOptions?: number;
21
+ width?: string;
22
+ height?: string;
14
23
  borderColor?: string;
24
+ focusBorderColor?: string;
25
+ errorBorderColor?: string;
15
26
  backgroundColor?: string;
16
27
  textColor?: string;
28
+ placeholderColor?: string;
17
29
  hoverColor?: string;
30
+ selectedColor?: string;
31
+ disabledColor?: string;
18
32
  padding?: string;
19
33
  margin?: string;
20
- dropdownWidth?: string;
21
- dropdownHeight?: string;
22
34
  borderRadius?: string;
23
35
  boxShadow?: string;
24
36
  optionPadding?: string;
25
37
  optionGap?: string;
26
38
  transitionDuration?: string;
39
+ dropdownMaxHeight?: string;
40
+ dropdownMinWidth?: string;
27
41
  className?: string;
28
- dropdownStyle?: React.CSSProperties;
29
42
  dropdownClassName?: string;
30
- optionStyle?: React.CSSProperties;
31
43
  optionClassName?: string;
44
+ inputClassName?: string;
45
+ style?: React.CSSProperties;
46
+ dropdownStyle?: React.CSSProperties;
47
+ optionStyle?: React.CSSProperties;
48
+ inputStyle?: React.CSSProperties;
32
49
  iconPrefix?: React.ReactNode;
33
50
  iconSuffix?: React.ReactNode;
34
- openAnimation?: string;
51
+ clearIcon?: React.ReactNode;
52
+ dropdownIcon?: React.ReactNode;
53
+ checkIcon?: React.ReactNode;
54
+ ariaLabel?: string;
55
+ ariaLabelledby?: string;
56
+ ariaDescribedby?: string;
57
+ onFocus?: () => void;
58
+ onBlur?: () => void;
59
+ onOpen?: () => void;
60
+ onClose?: () => void;
35
61
  }
36
62
  export declare const Dropdown: React.FC<DropdownProps>;
37
63
  export {};
@@ -1,21 +1,17 @@
1
1
  import React from "react";
2
- interface ResponsiveProps<T> {
3
- sm?: T;
4
- md?: T;
5
- lg?: T;
6
- }
2
+ type ScreenSize = "sm" | "md" | "lg";
7
3
  interface FlexboxProps {
8
- direction?: ResponsiveProps<"row" | "column">;
9
- align?: ResponsiveProps<"flex-start" | "flex-end" | "center" | "stretch" | "baseline">;
10
- justify?: ResponsiveProps<"flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly">;
11
- gap?: ResponsiveProps<string>;
12
- padding?: ResponsiveProps<string>;
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;
13
9
  backgroundColor?: string;
10
+ width?: string;
11
+ maxWidth?: string;
12
+ height?: string;
13
+ style?: React.CSSProperties;
14
14
  children: React.ReactNode;
15
- width?: ResponsiveProps<string>;
16
- maxWidth?: ResponsiveProps<string>;
17
- height?: ResponsiveProps<string>;
18
- className?: string;
19
15
  }
20
- declare const Flexbox: React.FC<FlexboxProps>;
21
- export default Flexbox;
16
+ export declare const Flexbox: React.FC<FlexboxProps>;
17
+ export {};
@@ -1,24 +1,17 @@
1
1
  import React from "react";
2
- interface ResponsiveProps<T> {
3
- sm?: T;
4
- md?: T;
5
- lg?: T;
6
- }
2
+ type ScreenSize = "sm" | "md" | "lg";
7
3
  interface GridViewProps {
8
- columns?: ResponsiveProps<number>;
9
- rows?: ResponsiveProps<number>;
10
- gap?: ResponsiveProps<string>;
11
- rowGap?: ResponsiveProps<string>;
12
- columnGap?: ResponsiveProps<string>;
13
- padding?: ResponsiveProps<string>;
14
- alignItems?: ResponsiveProps<"start" | "center" | "end" | "stretch">;
15
- justifyItems?: ResponsiveProps<"start" | "center" | "end" | "stretch">;
4
+ columns?: number | Partial<Record<ScreenSize, number>>;
5
+ gap?: string;
6
+ padding?: string;
7
+ alignItems?: "start" | "center" | "end" | "stretch";
8
+ justifyItems?: "start" | "center" | "end" | "stretch";
16
9
  backgroundColor?: string;
10
+ width?: string;
11
+ maxWidth?: string;
12
+ height?: string;
17
13
  children: React.ReactNode;
18
- className?: string;
19
- width?: ResponsiveProps<string>;
20
- maxWidth?: ResponsiveProps<string>;
21
- height?: ResponsiveProps<string>;
14
+ style?: React.CSSProperties;
22
15
  }
23
- declare const GridView: React.FC<GridViewProps>;
24
- export default GridView;
16
+ export declare const GridView: React.FC<GridViewProps>;
17
+ export {};
@@ -27,7 +27,7 @@ interface ImageProps {
27
27
  overflow?: "hidden" | "scroll" | "auto" | "visible" | "x" | "y";
28
28
  className?: string;
29
29
  style?: React.CSSProperties;
30
- onClick?: () => void;
30
+ onClick?: (event: React.MouseEvent<HTMLDivElement | HTMLImageElement>) => void;
31
31
  }
32
32
  export declare const Image: React.FC<ImageProps>;
33
33
  export {};
@@ -1,10 +1,17 @@
1
1
  import React from "react";
2
+ interface BreakpointColumns {
3
+ sm?: number;
4
+ md?: number;
5
+ lg?: number;
6
+ xl?: number;
7
+ default?: number;
8
+ }
2
9
  interface ImageGalleryProps {
3
10
  images: {
4
11
  src: string;
5
12
  alt?: string;
6
13
  }[];
7
- columns?: number;
14
+ columns?: number | BreakpointColumns;
8
15
  gap?: string;
9
16
  layout?: "grid" | "masonry";
10
17
  lightbox?: boolean;
@@ -0,0 +1,11 @@
1
+ import React, { ReactNode, CSSProperties } from "react";
2
+ interface ModalProps {
3
+ isOpen: boolean;
4
+ onClose: () => void;
5
+ children: ReactNode;
6
+ overlayStyle?: CSSProperties;
7
+ modalStyle?: CSSProperties;
8
+ closeButtonStyle?: CSSProperties;
9
+ }
10
+ export declare const Modal: React.FC<ModalProps>;
11
+ export {};
@@ -1,8 +1,14 @@
1
- import React from "react";
1
+ import React, { ReactNode } from "react";
2
2
  interface Column {
3
3
  key: string;
4
4
  label: string;
5
5
  sortable?: boolean;
6
+ icon?: ReactNode;
7
+ width?: string | number;
8
+ align?: "left" | "center" | "right";
9
+ headerClassName?: string;
10
+ cellClassName?: string;
11
+ render?: (value: any, row: Record<string, any>) => ReactNode;
6
12
  }
7
13
  interface TableProps {
8
14
  columns: Column[];
@@ -19,7 +25,35 @@ interface TableProps {
19
25
  hoverBg?: string;
20
26
  paginationBg?: string;
21
27
  paginationText?: string;
28
+ evenRowBg?: string;
29
+ selectedRowBg?: string;
22
30
  };
31
+ borderRadius?: {
32
+ table?: string;
33
+ header?: string;
34
+ pagination?: string;
35
+ };
36
+ sortable?: boolean;
37
+ defaultSort?: {
38
+ column: string;
39
+ direction: "asc" | "desc";
40
+ };
41
+ bodyAlign?: "left" | "center" | "right";
42
+ headerAlign?: "left" | "center" | "right";
43
+ rowSelection?: {
44
+ enabled?: boolean;
45
+ onSelect?: (selectedRows: Record<string, any>[]) => void;
46
+ selectionColumnWidth?: string;
47
+ selectionColumnHeader?: ReactNode;
48
+ };
49
+ emptyState?: ReactNode;
50
+ onRowClick?: (row: Record<string, any>, index: number) => void;
51
+ rowClassName?: (row: Record<string, any>, index: number) => string;
52
+ cellPadding?: string;
53
+ headerCellPadding?: string;
54
+ stickyHeader?: boolean;
55
+ maxHeight?: string;
56
+ scrollShadow?: boolean;
23
57
  }
24
58
  export declare const Table: React.FC<TableProps>;
25
59
  export {};
@@ -3,6 +3,8 @@ interface TabItem {
3
3
  label: React.ReactNode;
4
4
  content: React.ReactNode;
5
5
  icon?: React.ReactNode;
6
+ disabled?: boolean;
7
+ ariaLabel?: string;
6
8
  }
7
9
  interface TabsBaseProps {
8
10
  tabs: TabItem[];
@@ -25,10 +27,21 @@ interface TabsBaseProps {
25
27
  textColor?: string;
26
28
  backgroundColor?: string;
27
29
  hoverTextColor?: string;
30
+ disabledColor?: string;
28
31
  responsiveBreakpoint?: number;
29
32
  showDrawerLabel?: string;
33
+ drawerIcon?: React.ReactNode;
34
+ transitionDuration?: number;
35
+ onTabChange?: (index: number) => void;
36
+ role?: string;
37
+ ariaOrientation?: "horizontal" | "vertical";
30
38
  }
31
39
  export declare const LeftTabs: React.FC<TabsBaseProps>;
32
40
  export declare const TopTabs: React.FC<TabsBaseProps>;
33
41
  export declare const RightTabs: React.FC<TabsBaseProps>;
42
+ export declare const Tabs: {
43
+ Left: React.FC<TabsBaseProps>;
44
+ Top: React.FC<TabsBaseProps>;
45
+ Right: React.FC<TabsBaseProps>;
46
+ };
34
47
  export {};
@@ -0,0 +1,136 @@
1
+ import React from "react";
2
+ interface VideoData {
3
+ id: string;
4
+ src: string;
5
+ poster?: string;
6
+ title?: string;
7
+ description?: string;
8
+ duration?: number;
9
+ author?: string;
10
+ publishDate?: string;
11
+ tags?: string[];
12
+ views?: number;
13
+ likes?: number;
14
+ category?: string;
15
+ thumbnail?: string;
16
+ quality?: "auto" | "720p" | "1080p" | "4k";
17
+ subtitles?: {
18
+ src: string;
19
+ label: string;
20
+ language: string;
21
+ }[];
22
+ chapters?: {
23
+ time: number;
24
+ title: string;
25
+ }[];
26
+ resolution?: string;
27
+ frameRate?: number;
28
+ license?: string;
29
+ location?: string;
30
+ }
31
+ interface ResponsiveConfig {
32
+ xs?: number;
33
+ sm?: number;
34
+ md?: number;
35
+ lg?: number;
36
+ xl?: number;
37
+ "2xl"?: number;
38
+ "3xl"?: number;
39
+ }
40
+ interface ThemeConfig {
41
+ primary?: string;
42
+ secondary?: string;
43
+ accent?: string;
44
+ background?: string;
45
+ surface?: string;
46
+ text?: string;
47
+ textSecondary?: string;
48
+ textTertiary?: string;
49
+ border?: string;
50
+ shadow?: string;
51
+ hoverShadow?: string;
52
+ gradient?: string;
53
+ borderRadius?: string;
54
+ borderRadiusSmall?: string;
55
+ borderRadiusLarge?: string;
56
+ transitionSpeed?: string;
57
+ transitionEasing?: string;
58
+ fontFamily?: string;
59
+ fontSizeBase?: string;
60
+ fontWeightNormal?: string;
61
+ fontWeightBold?: string;
62
+ spacingUnit?: string;
63
+ backdropBlur?: string;
64
+ overlayOpacity?: string;
65
+ }
66
+ type LayoutType = "grid" | "masonry" | "carousel" | "list" | "mosaic" | "compact" | "highlight";
67
+ type AspectRatio = "16:9" | "4:3" | "1:1" | "3:2" | "21:9" | "auto" | "9:16" | "custom";
68
+ type AnimationType = "fade" | "slide" | "zoom" | "flip" | "none" | "slide-up" | "slide-down";
69
+ type SortOption = "date" | "title" | "views" | "likes" | "duration" | "random" | "trending";
70
+ interface VideoGalleryProps {
71
+ videos: VideoData[];
72
+ layout?: LayoutType;
73
+ columns?: ResponsiveConfig;
74
+ gap?: string | ResponsiveConfig;
75
+ aspectRatio?: AspectRatio;
76
+ theme?: ThemeConfig;
77
+ showThumbnails?: boolean;
78
+ showMetadata?: boolean;
79
+ metadataPosition?: "below" | "overlay" | "hover";
80
+ showControls?: boolean;
81
+ controlsPosition?: "bottom" | "top" | "sides" | "floating";
82
+ showProgress?: boolean;
83
+ showVolume?: boolean;
84
+ showQualityOptions?: boolean;
85
+ showSpeedOptions?: boolean;
86
+ autoPlay?: boolean;
87
+ autoPlayDelay?: number;
88
+ autoAdvance?: boolean;
89
+ autoAdvanceDelay?: number;
90
+ loop?: boolean;
91
+ muted?: boolean;
92
+ preload?: "none" | "metadata" | "auto";
93
+ lazyLoading?: boolean;
94
+ infiniteScroll?: boolean;
95
+ loadMoreThreshold?: number;
96
+ lightbox?: boolean;
97
+ lightboxAnimation?: AnimationType;
98
+ lightboxTransitionSpeed?: number;
99
+ keyboard?: boolean;
100
+ swipeGestures?: boolean;
101
+ title?: string;
102
+ description?: string;
103
+ ariaLabel?: string;
104
+ structured?: boolean;
105
+ search?: boolean;
106
+ searchPlaceholder?: string;
107
+ filter?: boolean;
108
+ sort?: boolean;
109
+ sortOptions?: SortOption[];
110
+ playlist?: boolean;
111
+ fullscreen?: boolean;
112
+ pictureInPicture?: boolean;
113
+ sharing?: boolean;
114
+ download?: boolean;
115
+ favorites?: boolean;
116
+ customLoader?: React.ReactNode;
117
+ customEmptyState?: React.ReactNode;
118
+ customErrorState?: React.ReactNode;
119
+ onVideoClick?: (video: VideoData, index: number) => void;
120
+ onVideoEnd?: (video: VideoData, index: number) => void;
121
+ onVideoPlay?: (video: VideoData, index: number) => void;
122
+ onVideoPause?: (video: VideoData, index: number) => void;
123
+ onVideoLike?: (video: VideoData, liked: boolean) => void;
124
+ onVideoShare?: (video: VideoData) => void;
125
+ onVideoDownload?: (video: VideoData) => void;
126
+ onLayoutChange?: (layout: LayoutType) => void;
127
+ onSearch?: (query: string) => void;
128
+ onFilter?: (category: string) => void;
129
+ onSort?: (sortBy: SortOption) => void;
130
+ className?: string;
131
+ containerClassName?: string;
132
+ videoItemClassName?: string;
133
+ controlsClassName?: string;
134
+ }
135
+ export declare const VideoGallery: React.FC<VideoGalleryProps>;
136
+ export default VideoGallery;
@@ -2,16 +2,35 @@ import React from "react";
2
2
  interface VideoPlayerProps {
3
3
  src: string;
4
4
  poster?: string;
5
+ title?: string;
5
6
  autoPlay?: boolean;
6
7
  loop?: boolean;
7
- controls?: boolean;
8
+ muted?: boolean;
8
9
  width?: string;
9
10
  height?: string;
10
11
  borderRadius?: string;
11
- backgroundColor?: string;
12
+ theme?: 'dark' | 'light' | 'glass' | 'neon';
12
13
  primaryColor?: string;
13
- padding?: string;
14
14
  className?: string;
15
+ showProgress?: boolean;
16
+ showVolumeSlider?: boolean;
17
+ showSettings?: boolean;
18
+ showDownload?: boolean;
19
+ showShare?: boolean;
20
+ showPiP?: boolean;
21
+ showSubtitles?: boolean;
22
+ showPlaybackSpeed?: boolean;
23
+ showQuality?: boolean;
24
+ previewThumbnails?: boolean;
25
+ customControls?: boolean;
26
+ hideControlsDelay?: number;
27
+ seekStep?: number;
28
+ volumeStep?: number;
29
+ onPlay?: () => void;
30
+ onPause?: () => void;
31
+ onEnded?: () => void;
32
+ onTimeUpdate?: (time: number) => void;
33
+ onVolumeChange?: (volume: number) => void;
15
34
  }
16
35
  export declare const VideoPlayer: React.FC<VideoPlayerProps>;
17
36
  export {};