@neuctra/ui 0.2.1 → 0.2.3

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 (98) hide show
  1. package/dist/components/basic/Accordation.d.ts +27 -18
  2. package/dist/components/basic/Alert.d.ts +15 -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 +3 -1
  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/Flexbox.d.ts +18 -10
  11. package/dist/components/basic/GridView.d.ts +7 -5
  12. package/dist/components/basic/Image.d.ts +31 -6
  13. package/dist/components/basic/Input.d.ts +18 -10
  14. package/dist/components/basic/List.d.ts +11 -3
  15. package/dist/components/basic/Modal.d.ts +15 -2
  16. package/dist/components/basic/Section.d.ts +36 -0
  17. package/dist/components/basic/Stack.d.ts +27 -0
  18. package/dist/components/basic/Table.d.ts +18 -54
  19. package/dist/components/basic/Tabs.d.ts +28 -28
  20. package/dist/components/basic/Text.d.ts +19 -32
  21. package/dist/index.cjs.js +68 -223
  22. package/dist/index.cjs.js.map +1 -0
  23. package/dist/index.d.ts +17 -19
  24. package/dist/index.es.js +3169 -6313
  25. package/dist/index.es.js.map +1 -0
  26. package/dist/src/components/avatar/AvatarGroup.js +9 -0
  27. package/dist/src/components/avatar/AvatarWithStatus.js +18 -0
  28. package/dist/src/components/basic/Accordation.js +74 -0
  29. package/dist/src/components/basic/Alert.js +126 -0
  30. package/dist/src/components/basic/AudioGallery.js +425 -0
  31. package/dist/src/components/basic/AudioPlayer.js +116 -0
  32. package/dist/src/components/basic/Avatar.js +181 -0
  33. package/dist/src/components/basic/Badge.js +66 -0
  34. package/dist/src/components/basic/Button.js +101 -0
  35. package/dist/src/components/basic/Card.js +45 -0
  36. package/dist/src/components/basic/CheckRadioInput.js +83 -0
  37. package/dist/src/components/basic/Container.js +45 -0
  38. package/dist/src/components/basic/Drawer.js +94 -0
  39. package/dist/src/components/basic/DropDown.js +316 -0
  40. package/dist/src/components/basic/Flexbox.js +67 -0
  41. package/dist/src/components/basic/GridView.js +51 -0
  42. package/dist/src/components/basic/Image.js +95 -0
  43. package/dist/src/components/basic/Input.js +123 -0
  44. package/dist/src/components/basic/List.js +71 -0
  45. package/dist/src/components/basic/Modal.js +88 -0
  46. package/dist/src/components/basic/Section.js +100 -0
  47. package/dist/src/components/basic/Stack.js +75 -0
  48. package/dist/src/components/basic/Table.js +32 -0
  49. package/dist/src/components/basic/Tabs.js +149 -0
  50. package/dist/src/components/basic/Text.js +117 -0
  51. package/dist/src/index.js +44 -0
  52. package/dist/types/src/components/basic/Accordation.d.ts +44 -0
  53. package/dist/types/{components → src/components}/basic/Alert.d.ts +15 -2
  54. package/dist/types/{components → src/components}/basic/Avatar.d.ts +5 -3
  55. package/dist/types/{components → src/components}/basic/Badge.d.ts +3 -3
  56. package/dist/types/src/components/basic/Button.d.ts +26 -0
  57. package/dist/types/src/components/basic/Card.d.ts +28 -0
  58. package/dist/types/{components → src/components}/basic/CheckRadioInput.d.ts +3 -1
  59. package/dist/types/src/components/basic/Container.d.ts +32 -0
  60. package/dist/types/src/components/basic/Drawer.d.ts +33 -0
  61. package/dist/types/src/components/basic/Flexbox.d.ts +25 -0
  62. package/dist/types/{components → src/components}/basic/GridView.d.ts +7 -5
  63. package/dist/types/src/components/basic/Image.d.ts +58 -0
  64. package/dist/types/{components → src/components}/basic/Input.d.ts +18 -10
  65. package/dist/types/{components → src/components}/basic/List.d.ts +11 -3
  66. package/dist/types/src/components/basic/Modal.d.ts +24 -0
  67. package/dist/types/src/components/basic/Section.d.ts +36 -0
  68. package/dist/types/src/components/basic/Stack.d.ts +27 -0
  69. package/dist/types/src/components/basic/Table.d.ts +23 -0
  70. package/dist/types/src/components/basic/Tabs.d.ts +47 -0
  71. package/dist/types/src/components/basic/Text.d.ts +26 -0
  72. package/dist/types/{index.d.ts → src/index.d.ts} +17 -19
  73. package/dist/types/vite.config.d.ts +2 -0
  74. package/dist/ui.css +1 -1
  75. package/dist/vite.config.js +34 -0
  76. package/package.json +2 -1
  77. package/dist/components/basic/ImageGallery.d.ts +0 -21
  78. package/dist/components/basic/VideoGallery.d.ts +0 -136
  79. package/dist/components/basic/VideoPlayer.d.ts +0 -36
  80. package/dist/types/components/basic/Accordation.d.ts +0 -35
  81. package/dist/types/components/basic/Button.d.ts +0 -28
  82. package/dist/types/components/basic/Card.d.ts +0 -70
  83. package/dist/types/components/basic/Container.d.ts +0 -30
  84. package/dist/types/components/basic/Drawer.d.ts +0 -24
  85. package/dist/types/components/basic/Flexbox.d.ts +0 -17
  86. package/dist/types/components/basic/Image.d.ts +0 -33
  87. package/dist/types/components/basic/ImageGallery.d.ts +0 -21
  88. package/dist/types/components/basic/Modal.d.ts +0 -11
  89. package/dist/types/components/basic/Table.d.ts +0 -59
  90. package/dist/types/components/basic/Tabs.d.ts +0 -47
  91. package/dist/types/components/basic/Text.d.ts +0 -39
  92. package/dist/types/components/basic/VideoGallery.d.ts +0 -136
  93. package/dist/types/components/basic/VideoPlayer.d.ts +0 -36
  94. /package/dist/types/{components → src/components}/avatar/AvatarGroup.d.ts +0 -0
  95. /package/dist/types/{components → src/components}/avatar/AvatarWithStatus.d.ts +0 -0
  96. /package/dist/types/{components → src/components}/basic/AudioGallery.d.ts +0 -0
  97. /package/dist/types/{components → src/components}/basic/AudioPlayer.d.ts +0 -0
  98. /package/dist/types/{components → src/components}/basic/DropDown.d.ts +0 -0
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ type ScreenSize = "sm" | "md" | "lg";
3
+ type ResponsiveProp<T> = T | Partial<Record<ScreenSize, T>>;
4
+ interface SectionProps {
5
+ /** Headings */
6
+ title?: string;
7
+ subtitle?: string;
8
+ /** Responsive variant styles */
9
+ variant?: ResponsiveProp<"light" | "dark" | "gradient" | "transparent" | "primary">;
10
+ /** Custom backgrounds */
11
+ background?: ResponsiveProp<string>;
12
+ overlay?: ResponsiveProp<string>;
13
+ color?: ResponsiveProp<string>;
14
+ /** Spacing */
15
+ paddingY?: ResponsiveProp<number | string>;
16
+ paddingX?: ResponsiveProp<number | string>;
17
+ /** Container size */
18
+ size?: ResponsiveProp<"sm" | "md" | "lg" | "xl" | "2xl" | "full">;
19
+ /** Section height */
20
+ height?: ResponsiveProp<string>;
21
+ /** Text alignment */
22
+ align?: ResponsiveProp<"left" | "center" | "right">;
23
+ /** Border radius */
24
+ borderRadius?: ResponsiveProp<number | string>;
25
+ /** Optional styling */
26
+ className?: string;
27
+ style?: React.CSSProperties;
28
+ children?: React.ReactNode;
29
+ }
30
+ /**
31
+ * 🧱 Section Component
32
+ * A flexible layout wrapper that supports responsive backgrounds,
33
+ * adaptive padding, and variant-based theming.
34
+ */
35
+ export declare const Section: React.FC<SectionProps>;
36
+ export default Section;
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ type ScreenSize = "sm" | "md" | "lg";
3
+ type ResponsiveValue<T> = T | Partial<Record<ScreenSize, T>>;
4
+ interface StackProps {
5
+ direction?: ResponsiveValue<"vertical" | "horizontal">;
6
+ gap?: ResponsiveValue<number | string>;
7
+ align?: ResponsiveValue<"flex-start" | "flex-end" | "center" | "stretch" | "baseline">;
8
+ justify?: ResponsiveValue<"flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly">;
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
+ className?: string;
22
+ children: React.ReactNode;
23
+ }
24
+ export declare const Stack: React.FC<StackProps>;
25
+ export declare const HStack: React.FC<StackProps>;
26
+ export declare const VStack: React.FC<StackProps>;
27
+ export {};
@@ -0,0 +1,23 @@
1
+ import React, { ReactNode, CSSProperties } from "react";
2
+ interface TableProps {
3
+ children: ReactNode;
4
+ style?: CSSProperties;
5
+ className?: string;
6
+ }
7
+ interface TableSectionProps {
8
+ children: ReactNode;
9
+ style?: CSSProperties;
10
+ className?: string;
11
+ }
12
+ interface TableCellProps {
13
+ children: ReactNode;
14
+ style?: CSSProperties;
15
+ className?: string;
16
+ }
17
+ export declare const Table: React.FC<TableProps>;
18
+ export declare const THead: React.FC<TableSectionProps>;
19
+ export declare const TBody: React.FC<TableSectionProps>;
20
+ export declare const TRow: React.FC<TableSectionProps>;
21
+ export declare const TH: React.FC<TableCellProps>;
22
+ export declare const TD: React.FC<TableCellProps>;
23
+ export {};
@@ -0,0 +1,47 @@
1
+ import React, { CSSProperties } from "react";
2
+ /** 🧩 Types */
3
+ interface TabItem {
4
+ label: React.ReactNode;
5
+ content: React.ReactNode;
6
+ icon?: React.ReactNode;
7
+ disabled?: boolean;
8
+ ariaLabel?: string;
9
+ }
10
+ interface TabsProps {
11
+ tabs: TabItem[];
12
+ defaultActive?: number;
13
+ position?: "top" | "left" | "right";
14
+ variant?: "solid" | "outline" | "underline";
15
+ fullWidth?: boolean;
16
+ gap?: number;
17
+ radius?: number;
18
+ padding?: string;
19
+ transitionDuration?: number;
20
+ elevation?: number;
21
+ bordered?: boolean;
22
+ /** 🎨 Colors */
23
+ primaryColor?: string;
24
+ backgroundColor?: string;
25
+ textColor?: string;
26
+ hoverColor?: string;
27
+ activeColor?: string;
28
+ borderColor?: string;
29
+ disabledColor?: string;
30
+ /** 📱 Responsive */
31
+ responsiveBreakpoint?: number;
32
+ showDrawerLabel?: string;
33
+ drawerIcon?: React.ReactNode;
34
+ /** ⚙️ Callbacks */
35
+ onTabChange?: (index: number) => void;
36
+ /** 🧱 Classes and Styles */
37
+ className?: string;
38
+ style?: CSSProperties;
39
+ tabClassName?: string;
40
+ contentClassName?: string;
41
+ activeTabStyle?: CSSProperties;
42
+ inactiveTabStyle?: CSSProperties;
43
+ contentStyle?: CSSProperties;
44
+ }
45
+ /** 💎 Modern, Fully Customizable Tabs */
46
+ export declare const Tabs: React.FC<TabsProps>;
47
+ export {};
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ /** 🎯 Limit to only HTML elements to avoid SVG union explosion */
3
+ type HTMLElementTag = keyof HTMLElementTagNameMap;
4
+ type TextProps<T extends HTMLElementTag = "p"> = {
5
+ as?: T;
6
+ children: React.ReactNode;
7
+ color?: string;
8
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | string;
9
+ weight?: React.CSSProperties["fontWeight"];
10
+ align?: React.CSSProperties["textAlign"];
11
+ transform?: React.CSSProperties["textTransform"];
12
+ italic?: boolean;
13
+ underline?: boolean;
14
+ strikethrough?: boolean;
15
+ truncate?: boolean;
16
+ selectable?: boolean;
17
+ hoverable?: boolean;
18
+ darkMode?: boolean;
19
+ baseColor?: string;
20
+ className?: string;
21
+ style?: React.CSSProperties;
22
+ onClick?: () => void;
23
+ } & Omit<React.HTMLAttributes<HTMLElementTagNameMap[HTMLElementTag]>, "color" | "style">;
24
+ /** 💬 Main Component (HTML-only tags) */
25
+ export declare function Text<T extends HTMLElementTag = "p">({ as, children, color, size, weight, align, transform, italic, underline, strikethrough, truncate, selectable, hoverable, onClick, darkMode, baseColor, className, style, ...rest }: TextProps<T>): React.DetailedReactHTMLElement<React.PropsWithoutRef<React.ComponentProps<T>>, HTMLElement>;
26
+ export default Text;
@@ -1,25 +1,23 @@
1
1
  import "./style.css";
2
- export { Text } from "./components/basic/Text";
3
- export { Image } from "./components/basic/Image";
4
- export { Button } from "./components/basic/Button";
5
- export { Input } from "./components/basic/Input";
6
- export { List } from "./components/basic/List";
7
- export { LeftTabs, RightTabs, TopTabs, Tabs } from "./components/basic/Tabs";
8
- export { VideoPlayer } from "./components/basic/VideoPlayer";
2
+ export { Alert } from "./components/basic/Alert";
3
+ export { Accordion } from "./components/basic/Accordation";
4
+ export { Avatar, AvatarGroup } from "./components/basic/Avatar";
9
5
  export { AudioPlayer } from "./components/basic/AudioPlayer";
10
- export { Container } from "./components/basic/Container";
11
- export { Accordation } from "./components/basic/Accordation";
6
+ export { AudioGallery } from "./components/basic/AudioGallery";
7
+ export { Badge } from "./components/basic/Badge";
8
+ export { Button } from "./components/basic/Button";
9
+ export { Card } from "./components/basic/Card";
12
10
  export { CheckRadio } from "./components/basic/CheckRadioInput";
11
+ export { Container } from "./components/basic/Container";
12
+ export { Flexbox } from "./components/basic/Flexbox";
13
+ export { Stack, HStack, VStack } from "./components/basic/Stack";
14
+ export { GridView } from "./components/basic/GridView";
13
15
  export { Drawer, DrawerButton } from "./components/basic/Drawer";
14
16
  export { Dropdown } from "./components/basic/DropDown";
15
- export { Table } from "./components/basic/Table";
16
- export { Card } from "./components/basic/Card";
17
- export { GridView } from "./components/basic/GridView";
18
- export { Flexbox } from "./components/basic/Flexbox";
19
- export { Alert } from "./components/basic/Alert";
20
- export { Badge } from "./components/basic/Badge";
17
+ export { Input } from "./components/basic/Input";
18
+ export { Image } from "./components/basic/Image";
19
+ export { List } from "./components/basic/List";
21
20
  export { Modal } from "./components/basic/Modal";
22
- export { Avatar, AvatarGroup } from "./components/basic/Avatar";
23
- export { AudioGallery } from "./components/basic/AudioGallery";
24
- export { VideoGallery } from "./components/basic/VideoGallery";
25
- export { ImageGallery } from "./components/basic/ImageGallery";
21
+ export { Table, TBody, TD, THead, TH, TRow } from "./components/basic/Table";
22
+ export { Tabs } from "./components/basic/Tabs";
23
+ export { Text } from "./components/basic/Text";
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
package/dist/ui.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-500:oklch(72.3% .219 149.579);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-white:#fff;--spacing:.25rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.z-\[1000\]{z-index:1000}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-full{height:100%}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-full{width:100%}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.\!resize{resize:both!important}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}:where(.-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-2)*calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-white{border-color:var(--color-white)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-yellow-500{background-color:var(--color-yellow-500)}.object-cover{object-fit:cover}.p-4{padding:calc(var(--spacing)*4)}.break-all{word-break:break-all}.text-gray-500{color:var(--color-gray-500)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}}@media (prefers-color-scheme:dark){.dark\:bg-gray-600{background-color:var(--color-gray-600)}.dark\:text-gray-400{color:var(--color-gray-400)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}
1
+ /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-500:oklch(72.3% .219 149.579);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-white:#fff;--spacing:.25rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.z-10{z-index:10}.z-\[1000\]{z-index:1000}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-full{height:100%}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-full{width:100%}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.\!resize{resize:both!important}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}:where(.-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-2)*calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-white{border-color:var(--color-white)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-yellow-500{background-color:var(--color-yellow-500)}.object-cover{object-fit:cover}.p-4{padding:calc(var(--spacing)*4)}.text-gray-500{color:var(--color-gray-500)}.text-white{color:var(--color-white)}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media(prefers-color-scheme:dark){.dark\:bg-gray-600{background-color:var(--color-gray-600)}.dark\:text-gray-400{color:var(--color-gray-400)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
@@ -0,0 +1,34 @@
1
+ import { dirname, resolve } from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import { defineConfig } from "vite";
4
+ import react from "@vitejs/plugin-react";
5
+ import dts from "vite-plugin-dts";
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = dirname(__filename);
8
+ export default defineConfig({
9
+ plugins: [
10
+ react(),
11
+ dts({
12
+ include: ["src"], // generate .d.ts files for your src folder
13
+ }),
14
+ ],
15
+ build: {
16
+ lib: {
17
+ entry: resolve(__dirname, "src/index.ts"),
18
+ name: "NeuctraUi", // ✅ fixed typo: "NeutraUi" → "NeuctraUi"
19
+ fileName: (format) => `index.${format}.js`,
20
+ formats: ["es", "cjs"],
21
+ },
22
+ rollupOptions: {
23
+ external: ["react", "react-dom"],
24
+ output: {
25
+ globals: {
26
+ react: "React",
27
+ "react-dom": "ReactDOM",
28
+ },
29
+ },
30
+ },
31
+ sourcemap: true, // optional but helpful for debugging your library
32
+ emptyOutDir: true, // cleans old builds
33
+ },
34
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neuctra/ui",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "type": "module",
5
5
  "description": "A modern, responsive, customizable React UI component library powered by Tailwind CSS and Vite.",
6
6
  "author": "Your Name <tahaasifaqwe@gmail.com>",
@@ -48,6 +48,7 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@tailwindcss/postcss": "^4.1.11",
51
+ "@types/node": "^24.9.1",
51
52
  "@types/react": "^19.1.9",
52
53
  "@types/react-dom": "^19.1.7",
53
54
  "@vitejs/plugin-react": "^4.7.0",
@@ -1,21 +0,0 @@
1
- import { default as React } from 'react';
2
- interface BreakpointColumns {
3
- sm?: number;
4
- md?: number;
5
- lg?: number;
6
- xl?: number;
7
- default?: number;
8
- }
9
- interface ImageGalleryProps {
10
- images: {
11
- src: string;
12
- alt?: string;
13
- }[];
14
- columns?: number | BreakpointColumns;
15
- gap?: string;
16
- layout?: "grid" | "masonry";
17
- lightbox?: boolean;
18
- className?: string;
19
- }
20
- export declare const ImageGallery: React.FC<ImageGalleryProps>;
21
- export {};
@@ -1,136 +0,0 @@
1
- import { default as 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;
@@ -1,36 +0,0 @@
1
- import { default as React } from 'react';
2
- interface VideoPlayerProps {
3
- src: string;
4
- poster?: string;
5
- title?: string;
6
- autoPlay?: boolean;
7
- loop?: boolean;
8
- muted?: boolean;
9
- width?: string;
10
- height?: string;
11
- borderRadius?: string;
12
- theme?: 'dark' | 'light' | 'glass' | 'neon';
13
- primaryColor?: string;
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;
34
- }
35
- export declare const VideoPlayer: React.FC<VideoPlayerProps>;
36
- export {};
@@ -1,35 +0,0 @@
1
- import React from "react";
2
- interface AccordationItem {
3
- title: string;
4
- content: React.ReactNode;
5
- }
6
- interface AccordationProps {
7
- items: AccordationItem[];
8
- allowMultiple?: boolean;
9
- defaultOpenIndex?: number[];
10
- borderColor?: string;
11
- backgroundColor?: string;
12
- textColor?: string;
13
- hoverBgColor?: string;
14
- hoverTextColor?: string;
15
- paddingVertical?: string;
16
- paddingHorizontal?: string;
17
- margin?: string;
18
- iconOpen?: React.ReactNode;
19
- iconClose?: React.ReactNode;
20
- transitionDuration?: string;
21
- borderRadius?: string;
22
- 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
- className?: string;
32
- style?: React.CSSProperties;
33
- }
34
- export declare const Accordation: React.FC<AccordationProps>;
35
- export {};
@@ -1,28 +0,0 @@
1
- import React, { CSSProperties } from "react";
2
- interface ButtonProps {
3
- children: React.ReactNode;
4
- type?: "button" | "submit" | "reset";
5
- onClick?: () => void;
6
- iconBefore?: React.ReactNode;
7
- iconAfter?: React.ReactNode;
8
- className?: string;
9
- style?: CSSProperties;
10
- fullWidth?: boolean;
11
- disabled?: boolean;
12
- loading?: boolean;
13
- 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;
26
- }
27
- export declare const Button: React.FC<ButtonProps>;
28
- export {};
@@ -1,70 +0,0 @@
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 };