@amelharrak/eldo-ui 1.0.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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/css/eldo.css +11683 -0
  4. package/dist/css/eldo.css.map +1 -0
  5. package/dist/css/eldo.min.css +1 -0
  6. package/dist/index.cjs +2 -0
  7. package/dist/index.cjs.map +1 -0
  8. package/dist/index.mjs +64 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/dist/types/__tests__/Alert.test.d.ts +1 -0
  11. package/dist/types/__tests__/Button.test.d.ts +1 -0
  12. package/dist/types/__tests__/Modal.test.d.ts +1 -0
  13. package/dist/types/components/Accordion.d.ts +15 -0
  14. package/dist/types/components/Alert.d.ts +15 -0
  15. package/dist/types/components/Avatar.d.ts +10 -0
  16. package/dist/types/components/Badge.d.ts +7 -0
  17. package/dist/types/components/Box.d.ts +27 -0
  18. package/dist/types/components/Breadcrumb.d.ts +15 -0
  19. package/dist/types/components/Button.d.ts +16 -0
  20. package/dist/types/components/ButtonGroup.d.ts +7 -0
  21. package/dist/types/components/Card.d.ts +15 -0
  22. package/dist/types/components/Carousel.d.ts +21 -0
  23. package/dist/types/components/Checkbox.d.ts +10 -0
  24. package/dist/types/components/Col.d.ts +12 -0
  25. package/dist/types/components/Collapse.d.ts +12 -0
  26. package/dist/types/components/Container.d.ts +8 -0
  27. package/dist/types/components/Dropdown.d.ts +19 -0
  28. package/dist/types/components/FileUpload.d.ts +13 -0
  29. package/dist/types/components/Input.d.ts +20 -0
  30. package/dist/types/components/InputOTP.d.ts +13 -0
  31. package/dist/types/components/ListGroup.d.ts +20 -0
  32. package/dist/types/components/Modal.d.ts +13 -0
  33. package/dist/types/components/Navbar.d.ts +17 -0
  34. package/dist/types/components/NumberInput.d.ts +15 -0
  35. package/dist/types/components/Offcanvas.d.ts +15 -0
  36. package/dist/types/components/Pagination.d.ts +14 -0
  37. package/dist/types/components/Popover.d.ts +14 -0
  38. package/dist/types/components/Progress.d.ts +11 -0
  39. package/dist/types/components/Radio.d.ts +11 -0
  40. package/dist/types/components/Row.d.ts +7 -0
  41. package/dist/types/components/Scrollspy.d.ts +13 -0
  42. package/dist/types/components/Select.d.ts +16 -0
  43. package/dist/types/components/Slider.d.ts +16 -0
  44. package/dist/types/components/Sonner.d.ts +21 -0
  45. package/dist/types/components/Spinner.d.ts +11 -0
  46. package/dist/types/components/Stat.d.ts +24 -0
  47. package/dist/types/components/Switch.d.ts +14 -0
  48. package/dist/types/components/Tabs.d.ts +20 -0
  49. package/dist/types/components/Text.d.ts +13 -0
  50. package/dist/types/components/Timeline.d.ts +41 -0
  51. package/dist/types/components/Toast.d.ts +17 -0
  52. package/dist/types/components/Tooltip.d.ts +12 -0
  53. package/dist/types/index.d.ts +40 -0
  54. package/package.json +106 -0
  55. package/setup.js +260 -0
  56. package/src/scss/abstracts/_functions.scss +19 -0
  57. package/src/scss/abstracts/_mixins.scss +33 -0
  58. package/src/scss/abstracts/_variables.scss +119 -0
  59. package/src/scss/base/_reset.scss +24 -0
  60. package/src/scss/base/_transitions.scss +10 -0
  61. package/src/scss/base/_typography.scss +50 -0
  62. package/src/scss/components/_accordion.scss +238 -0
  63. package/src/scss/components/_alert.scss +85 -0
  64. package/src/scss/components/_alerts.scss +137 -0
  65. package/src/scss/components/_avatar.scss +184 -0
  66. package/src/scss/components/_badge.scss +70 -0
  67. package/src/scss/components/_blockquote.scss +41 -0
  68. package/src/scss/components/_breadcrumb.scss +39 -0
  69. package/src/scss/components/_button-group.scss +43 -0
  70. package/src/scss/components/_button.scss +92 -0
  71. package/src/scss/components/_buttons.scss +66 -0
  72. package/src/scss/components/_calendar.scss +520 -0
  73. package/src/scss/components/_card.scss +52 -0
  74. package/src/scss/components/_cards.scss +123 -0
  75. package/src/scss/components/_carousel.scss +490 -0
  76. package/src/scss/components/_charts.scss +29 -0
  77. package/src/scss/components/_checkbox.scss +194 -0
  78. package/src/scss/components/_code.scss +70 -0
  79. package/src/scss/components/_collapse.scss +13 -0
  80. package/src/scss/components/_combobox.scss +239 -0
  81. package/src/scss/components/_date-picker.scss +102 -0
  82. package/src/scss/components/_divider.scss +55 -0
  83. package/src/scss/components/_dropdown.scss +122 -0
  84. package/src/scss/components/_file-upload.scss +233 -0
  85. package/src/scss/components/_floating-labels.scss +247 -0
  86. package/src/scss/components/_form-select.scss +49 -0
  87. package/src/scss/components/_forms.scss +41 -0
  88. package/src/scss/components/_index.scss +7 -0
  89. package/src/scss/components/_input-otp.scss +338 -0
  90. package/src/scss/components/_list-group.scss +95 -0
  91. package/src/scss/components/_modal.scss +166 -0
  92. package/src/scss/components/_nav.scss +175 -0
  93. package/src/scss/components/_navbar.scss +228 -0
  94. package/src/scss/components/_number-input.scss +67 -0
  95. package/src/scss/components/_offcanvas.scss +123 -0
  96. package/src/scss/components/_pagination.scss +64 -0
  97. package/src/scss/components/_placeholders.scss +52 -0
  98. package/src/scss/components/_popovers.scss +69 -0
  99. package/src/scss/components/_progress.scss +90 -0
  100. package/src/scss/components/_range.scss +82 -0
  101. package/src/scss/components/_scrollspy.scss +239 -0
  102. package/src/scss/components/_skeleton.scss +108 -0
  103. package/src/scss/components/_slider.scss +95 -0
  104. package/src/scss/components/_snippet.scss +79 -0
  105. package/src/scss/components/_spinners.scss +137 -0
  106. package/src/scss/components/_stat.scss +42 -0
  107. package/src/scss/components/_stepper.scss +104 -0
  108. package/src/scss/components/_switch.scss +57 -0
  109. package/src/scss/components/_table.scss +109 -0
  110. package/src/scss/components/_tag.scss +60 -0
  111. package/src/scss/components/_tags-input.scss +60 -0
  112. package/src/scss/components/_timeline.scss +238 -0
  113. package/src/scss/components/_toasts.scss +75 -0
  114. package/src/scss/components/_tooltips.scss +50 -0
  115. package/src/scss/components/_tree-view.scss +72 -0
  116. package/src/scss/components/_user.scss +26 -0
  117. package/src/scss/docs/_examples.scss +148 -0
  118. package/src/scss/docs/_layout.scss +251 -0
  119. package/src/scss/docs/_search.scss +141 -0
  120. package/src/scss/eldo.scss +74 -0
  121. package/src/scss/layout/_container.scss +37 -0
  122. package/src/scss/layout/_grid.scss +49 -0
  123. package/src/scss/pages/_landing-config.scss +135 -0
  124. package/src/scss/pages/_landing-features-enhanced.scss +165 -0
  125. package/src/scss/pages/_landing-hero-enhanced.scss +427 -0
  126. package/src/scss/pages/_landing-setup.scss +264 -0
  127. package/src/scss/pages/_landing.scss +1828 -0
  128. package/src/scss/utilities/_api.scss +66 -0
  129. package/src/scss/utilities/_colors.scss +32 -0
  130. package/src/scss/utilities/_display.scss +70 -0
  131. package/src/scss/utilities/_glass.scss +32 -0
  132. package/src/scss/utilities/_helpers.scss +16 -0
  133. package/src/scss/utilities/_map.scss +224 -0
  134. package/src/scss/utilities/_spacing.scss +58 -0
@@ -0,0 +1,20 @@
1
+ export function Input({ type, size, isValid, isInvalid, plaintext, readOnly, disabled, className, ...props }: {
2
+ [x: string]: any;
3
+ type?: string | undefined;
4
+ size: any;
5
+ isValid: any;
6
+ isInvalid: any;
7
+ plaintext?: boolean | undefined;
8
+ readOnly?: boolean | undefined;
9
+ disabled?: boolean | undefined;
10
+ className?: string | undefined;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export function Textarea({ rows, size, isValid, isInvalid, autoResize, className, ...props }: {
13
+ [x: string]: any;
14
+ rows?: number | undefined;
15
+ size: any;
16
+ isValid: any;
17
+ isInvalid: any;
18
+ autoResize?: boolean | undefined;
19
+ className?: string | undefined;
20
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * InputOTP Component
4
+ * One-time password input
5
+ *
6
+ * @param {Object} props
7
+ * @param {number} [props.length=6] - Number of OTP digits
8
+ * @param {Function} [props.onComplete] - Handler when all digits are entered
9
+ * @param {Function} [props.onChange] - Change handler
10
+ * @param {'numeric' | 'alphanumeric'} [props.type='numeric'] - Input type
11
+ * @param {string} [props.className] - Additional classes
12
+ */
13
+ export const InputOTP: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,20 @@
1
+ export function ListGroup({ flush, numbered, horizontal, children, className, ...props }: {
2
+ [x: string]: any;
3
+ flush?: boolean | undefined;
4
+ numbered?: boolean | undefined;
5
+ horizontal?: boolean | undefined;
6
+ children: any;
7
+ className?: string | undefined;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export namespace ListGroup {
10
+ function Item({ active, disabled, variant, action, href, children, className, ...props }: {
11
+ [x: string]: any;
12
+ active?: boolean | undefined;
13
+ disabled?: boolean | undefined;
14
+ variant: any;
15
+ action?: boolean | undefined;
16
+ href: any;
17
+ children: any;
18
+ className?: string | undefined;
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ }
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ export function Modal({ isOpen, onClose, title, children, footer, backdrop, keyboard, size, centered, className, ...props }: {
3
+ isOpen: boolean;
4
+ onClose: Function;
5
+ title?: string | undefined;
6
+ children: React.ReactNode;
7
+ footer?: React.ReactNode;
8
+ backdrop?: boolean | undefined;
9
+ keyboard?: boolean | undefined;
10
+ size?: "sm" | "lg" | "xl" | undefined;
11
+ centered?: boolean | undefined;
12
+ className?: string | undefined;
13
+ }): React.ReactPortal | null;
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Navbar Component
4
+ * Responsive navigation header
5
+ *
6
+ * @param {Object} props
7
+ * @param {React.ReactNode} props.children - Navbar content
8
+ * @param {'light' | 'dark'} [props.variant='light'] - Color variant
9
+ * @param {string} [props.bg] - Background color
10
+ * @param {boolean} [props.expand='lg'] - Breakpoint for collapse
11
+ * @param {string} [props.className] - Additional classes
12
+ */
13
+ export const Navbar: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
14
+ export const NavbarBrand: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
15
+ export const NavbarToggle: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
16
+ export const NavbarCollapse: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
17
+ export const NavbarNav: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * NumberInput Component
4
+ * Number input with increment/decrement buttons
5
+ *
6
+ * @param {Object} props
7
+ * @param {number} [props.min] - Minimum value
8
+ * @param {number} [props.max] - Maximum value
9
+ * @param {number} [props.step=1] - Step increment
10
+ * @param {number} [props.value] - Controlled value
11
+ * @param {number} [props.defaultValue=0] - Default value
12
+ * @param {Function} [props.onChange] - Change handler
13
+ * @param {string} [props.className] - Additional classes
14
+ */
15
+ export const NumberInput: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Offcanvas Component
4
+ * Slide-in panel
5
+ *
6
+ * @param {Object} props
7
+ * @param {boolean} props.isOpen - Controls visibility
8
+ * @param {Function} props.onClose - Close handler
9
+ * @param {string} [props.title] - Offcanvas title
10
+ * @param {React.ReactNode} props.children - Offcanvas content
11
+ * @param {'start' | 'end' | 'top' | 'bottom'} [props.placement='end'] - Offcanvas placement
12
+ * @param {boolean} [props.backdrop=true] - Show backdrop
13
+ * @param {string} [props.className] - Additional classes
14
+ */
15
+ export const Offcanvas: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Pagination Component
4
+ * Page navigation
5
+ *
6
+ * @param {Object} props
7
+ * @param {number} props.currentPage - Current active page
8
+ * @param {number} props.totalPages - Total number of pages
9
+ * @param {Function} props.onPageChange - Page change handler
10
+ * @param {number} [props.maxVisible=5] - Maximum visible page numbers
11
+ * @param {string} [props.size] - Size variant ('sm' | 'lg')
12
+ * @param {string} [props.className] - Additional classes
13
+ */
14
+ export const Pagination: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Popover Component
4
+ * Rich popover with title and content
5
+ *
6
+ * @param {Object} props
7
+ * @param {React.ReactNode} props.children - Trigger element
8
+ * @param {string} [props.title] - Popover title
9
+ * @param {React.ReactNode} props.content - Popover content
10
+ * @param {'top' | 'bottom' | 'left' | 'right'} [props.placement='top'] - Popover placement
11
+ * @param {'click' | 'hover'} [props.trigger='click'] - Trigger type
12
+ * @param {string} [props.className] - Additional classes
13
+ */
14
+ export const Popover: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,11 @@
1
+ export function Progress({ value, max, variant, striped, animated, label, showValue, className, ...props }: {
2
+ [x: string]: any;
3
+ value?: number | undefined;
4
+ max?: number | undefined;
5
+ variant?: string | undefined;
6
+ striped?: boolean | undefined;
7
+ animated?: boolean | undefined;
8
+ label: any;
9
+ showValue?: boolean | undefined;
10
+ className?: string | undefined;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export function Radio({ id, name, label, value, checked, disabled, onChange, className, ...props }: {
2
+ [x: string]: any;
3
+ id: any;
4
+ name: any;
5
+ label: any;
6
+ value: any;
7
+ checked: any;
8
+ disabled?: boolean | undefined;
9
+ onChange: any;
10
+ className?: string | undefined;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export default Row;
2
+ /**
3
+ * Row component - wrapper for Bootstrap row
4
+ * @param {string} className - Additional CSS classes
5
+ * @param {React.ReactNode} children - Child elements
6
+ */
7
+ declare function Row({ className, children, ...props }: string): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Scrollspy Component
4
+ * Scroll tracking navigation
5
+ *
6
+ * @param {Object} props
7
+ * @param {Array<string>} props.targets - Array of target element IDs
8
+ * @param {Function} [props.onActiveChange] - Handler when active section changes
9
+ * @param {number} [props.offset=0] - Scroll offset
10
+ * @param {React.ReactNode} props.children - Navigation items
11
+ * @param {string} [props.className] - Additional classes
12
+ */
13
+ export const Scrollspy: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Select Component
4
+ * Custom select dropdown with search
5
+ *
6
+ * @param {Object} props
7
+ * @param {Array} props.options - Array of {value, label} objects
8
+ * @param {*} [props.value] - Controlled value
9
+ * @param {*} [props.defaultValue] - Default value
10
+ * @param {Function} [props.onChange] - Change handler
11
+ * @param {string} [props.placeholder='Select...'] - Placeholder text
12
+ * @param {boolean} [props.searchable=false] - Enable search
13
+ * @param {boolean} [props.disabled=false] - Disabled state
14
+ * @param {string} [props.className] - Additional classes
15
+ */
16
+ export const Select: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Slider Component
4
+ * Range input slider
5
+ *
6
+ * @param {Object} props
7
+ * @param {number} [props.min=0] - Minimum value
8
+ * @param {number} [props.max=100] - Maximum value
9
+ * @param {number} [props.step=1] - Step increment
10
+ * @param {number} [props.value] - Controlled value
11
+ * @param {number} [props.defaultValue] - Default value (uncontrolled)
12
+ * @param {Function} [props.onChange] - Change handler
13
+ * @param {boolean} [props.showValue=false] - Show current value
14
+ * @param {string} [props.className] - Additional classes
15
+ */
16
+ export const Slider: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Sonner - Modern toast notification system
3
+ * Inspired by shadcn/ui's Sonner component
4
+ */
5
+ export function Toaster({ position, expand, richColors, closeButton, ...props }: {
6
+ [x: string]: any;
7
+ position?: string | undefined;
8
+ expand?: boolean | undefined;
9
+ richColors?: boolean | undefined;
10
+ closeButton?: boolean | undefined;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export function useToast(): never;
13
+ export const toast: ((message: any, options?: {}) => void) & {
14
+ success: (message: any, options?: {}) => void;
15
+ error: (message: any, options?: {}) => void;
16
+ warning: (message: any, options?: {}) => void;
17
+ info: (message: any, options?: {}) => void;
18
+ loading: (message: any, options?: {}) => void;
19
+ promise: (promise: any, options?: {}) => any;
20
+ };
21
+ export default toast;
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Spinner Component
4
+ * Loading spinner
5
+ *
6
+ * @param {Object} props
7
+ * @param {'sm' | 'md' | 'lg'} [props.size='md'] - Spinner size
8
+ * @param {'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark'} [props.variant='primary'] - Spinner color variant
9
+ * @param {string} [props.className] - Additional classes
10
+ */
11
+ export const Spinner: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Stat Component - Display statistics and key metrics
3
+ *
4
+ * @param {string} title - The stat title/label
5
+ * @param {string|number} value - The main stat value
6
+ * @param {string} description - Optional description or change indicator
7
+ * @param {string} descClass - CSS class for description (positive/negative)
8
+ * @param {string} icon - Optional icon (emoji or text)
9
+ * @param {string} iconBg - Background color for icon
10
+ * @param {boolean} compact - Use compact variant
11
+ * @param {number} progress - Progress percentage (0-100)
12
+ * @param {string} target - Target value for progress variant
13
+ * @param {number} change - Percentage change for compact variant
14
+ * @param {string} className - Additional CSS classes
15
+ */
16
+ export function Stat({ title, value, description, descClass, icon, iconBg, compact, progress, target, change, className, ...props }: string): import("react/jsx-runtime").JSX.Element;
17
+ /**
18
+ * StatGroup Component - Display multiple stats in a grid
19
+ *
20
+ * @param {Array} stats - Array of stat objects
21
+ * @param {number} columns - Number of columns (2, 3, or 4)
22
+ */
23
+ export function StatGroup({ stats, columns, className, ...props }: any[]): import("react/jsx-runtime").JSX.Element;
24
+ export default Stat;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Switch Component
4
+ * Toggle switch for boolean values
5
+ *
6
+ * @param {Object} props
7
+ * @param {boolean} [props.checked] - Controlled checked state
8
+ * @param {boolean} [props.defaultChecked] - Default checked state (uncontrolled)
9
+ * @param {Function} [props.onChange] - Change handler
10
+ * @param {boolean} [props.disabled=false] - Disabled state
11
+ * @param {string} [props.label] - Label text
12
+ * @param {string} [props.className] - Additional classes
13
+ */
14
+ export const Switch: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Tabs Component
4
+ * Tab navigation
5
+ *
6
+ * @param {Object} props
7
+ * @param {number} [props.activeTab] - Controlled active tab index
8
+ * @param {number} [props.defaultActiveTab=0] - Default active tab
9
+ * @param {Function} [props.onTabChange] - Tab change handler
10
+ * @param {React.ReactNode} props.children - Tab panes
11
+ * @param {string} [props.className] - Additional classes
12
+ */
13
+ export const Tabs: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
14
+ export function TabPane({ title, children }: {
15
+ title: any;
16
+ children: any;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ export namespace TabPane {
19
+ let displayName: string;
20
+ }
@@ -0,0 +1,13 @@
1
+ export default Text;
2
+ /**
3
+ * Text component - wrapper for text utilities
4
+ * @param {string} align - Text alignment: 'start', 'center', 'end'
5
+ * @param {string} transform - Text transform: 'lowercase', 'uppercase', 'capitalize'
6
+ * @param {string} color - Text color: 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark', 'muted'
7
+ * @param {string} size - Font size: '1', '2', '3', '4', '5', '6'
8
+ * @param {string} weight - Font weight: 'bold', 'bolder', 'normal', 'light', 'lighter'
9
+ * @param {string} as - HTML element to render (default: 'p')
10
+ * @param {string} className - Additional CSS classes
11
+ * @param {React.ReactNode} children - Child elements
12
+ */
13
+ declare function Text({ align, transform, color, size, weight, as: Component, className, children, ...props }: string): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,41 @@
1
+ export function Timeline({ children, className, ...props }: {
2
+ [x: string]: any;
3
+ children: any;
4
+ className?: string | undefined;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export namespace Timeline {
7
+ export { TimelineItem as Item };
8
+ export { TimelineDate as Date };
9
+ export { TimelineTitle as Title };
10
+ export { TimelineText as Text };
11
+ export { TimelineContent as Content };
12
+ }
13
+ declare function TimelineItem({ children, className, active, completed, animated, ...props }: {
14
+ [x: string]: any;
15
+ children: any;
16
+ className?: string | undefined;
17
+ active?: boolean | undefined;
18
+ completed?: boolean | undefined;
19
+ animated?: boolean | undefined;
20
+ }): import("react/jsx-runtime").JSX.Element;
21
+ declare function TimelineDate({ children, className, ...props }: {
22
+ [x: string]: any;
23
+ children: any;
24
+ className?: string | undefined;
25
+ }): import("react/jsx-runtime").JSX.Element;
26
+ declare function TimelineTitle({ children, className, ...props }: {
27
+ [x: string]: any;
28
+ children: any;
29
+ className?: string | undefined;
30
+ }): import("react/jsx-runtime").JSX.Element;
31
+ declare function TimelineText({ children, className, ...props }: {
32
+ [x: string]: any;
33
+ children: any;
34
+ className?: string | undefined;
35
+ }): import("react/jsx-runtime").JSX.Element;
36
+ declare function TimelineContent({ children, className, ...props }: {
37
+ [x: string]: any;
38
+ children: any;
39
+ className?: string | undefined;
40
+ }): import("react/jsx-runtime").JSX.Element;
41
+ export {};
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Toast Component
4
+ * Notification toast
5
+ *
6
+ * @param {Object} props
7
+ * @param {boolean} [props.show] - Controlled visibility
8
+ * @param {Function} [props.onClose] - Close handler
9
+ * @param {string} [props.title] - Toast title
10
+ * @param {React.ReactNode} props.children - Toast content
11
+ * @param {'primary' | 'success' | 'danger' | 'warning' | 'info'} [props.variant] - Color variant
12
+ * @param {number} [props.autoHide] - Auto hide duration in ms (false to disable)
13
+ * @param {'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'} [props.position='top-right'] - Toast position
14
+ * @param {string} [props.className] - Additional classes
15
+ */
16
+ export const Toast: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
17
+ export function createToast(options: any): void;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Tooltip Component
4
+ * Contextual tooltip
5
+ *
6
+ * @param {Object} props
7
+ * @param {React.ReactNode} props.children - Trigger element
8
+ * @param {string} props.content - Tooltip content
9
+ * @param {'top' | 'bottom' | 'left' | 'right'} [props.placement='top'] - Tooltip placement
10
+ * @param {string} [props.className] - Additional classes
11
+ */
12
+ export const Tooltip: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
@@ -0,0 +1,40 @@
1
+ export { Button } from './components/Button';
2
+ export { Alert } from './components/Alert';
3
+ export { Card } from './components/Card';
4
+ export { Modal } from './components/Modal';
5
+ export { Dropdown } from './components/Dropdown';
6
+ export { Tooltip } from './components/Tooltip';
7
+ export { Collapse } from './components/Collapse';
8
+ export { Tabs } from './components/Tabs';
9
+ export { Timeline } from './components/Timeline';
10
+ export { default as Container } from './components/Container';
11
+ export { default as Row } from './components/Row';
12
+ export { default as Col } from './components/Col';
13
+ export { default as Text } from './components/Text';
14
+ export { default as Box } from './components/Box';
15
+ export { Offcanvas } from './components/Offcanvas';
16
+ export { Carousel } from './components/Carousel';
17
+ export { Popover } from './components/Popover';
18
+ export { Scrollspy } from './components/Scrollspy';
19
+ export { Select } from './components/Select';
20
+ export { FileUpload } from './components/FileUpload';
21
+ export { NumberInput } from './components/NumberInput';
22
+ export { Slider } from './components/Slider';
23
+ export { Switch } from './components/Switch';
24
+ export { InputOTP } from './components/InputOTP';
25
+ export { Checkbox } from './components/Checkbox';
26
+ export { Radio } from './components/Radio';
27
+ export { Accordion } from './components/Accordion';
28
+ export { Navbar } from './components/Navbar';
29
+ export { Pagination } from './components/Pagination';
30
+ export { Spinner } from './components/Spinner';
31
+ export { Badge } from './components/Badge';
32
+ export { Avatar } from './components/Avatar';
33
+ export { Breadcrumb } from './components/Breadcrumb';
34
+ export { Progress } from './components/Progress';
35
+ export { ButtonGroup } from './components/ButtonGroup';
36
+ export { ListGroup } from './components/ListGroup';
37
+ export const version: "1.0.1";
38
+ export { Toaster, toast } from './components/Sonner';
39
+ export { Input, Textarea } from './components/Input';
40
+ export { Stat, StatGroup } from './components/Stat';
package/package.json ADDED
@@ -0,0 +1,106 @@
1
+ {
2
+ "name": "@amelharrak/eldo-ui",
3
+ "version": "1.0.1",
4
+ "description": "Modern, lightweight React component library with TypeScript support - 23+ components, tree-shakeable",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/types/index.d.ts",
9
+ "bin": {
10
+ "eldo-setup": "./setup.js"
11
+ },
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/types/index.d.ts",
15
+ "import": "./dist/index.mjs",
16
+ "require": "./dist/index.cjs"
17
+ },
18
+ "./css/*": "./dist/css/*",
19
+ "./scss/*": "./src/scss/*"
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "src/scss",
24
+ "setup.js",
25
+ "README.md",
26
+ "LICENSE"
27
+ ],
28
+ "sideEffects": false,
29
+ "scripts": {
30
+ "dev": "vite",
31
+ "dev:lib": "vite build --watch --config vite.config.lib.js",
32
+ "build": "vite build --config vite.config.lib.js",
33
+ "build:docs": "vite build",
34
+ "build:css": "sass src/scss/eldo.scss dist/css/eldo.css",
35
+ "build:css:min": "sass src/scss/eldo.scss dist/css/eldo.min.css --style=compressed --no-source-map",
36
+ "build:all": "npm run build && npm run build:css && npm run build:css:min",
37
+ "preview": "vite preview",
38
+ "preview:docs": "vite preview --outDir dist-docs",
39
+ "test": "vitest",
40
+ "test:ui": "vitest --ui",
41
+ "test:coverage": "vitest --coverage",
42
+ "prepublishOnly": "npm run build:all",
43
+ "setup": "node setup.js"
44
+ },
45
+ "keywords": [
46
+ "react",
47
+ "react-component",
48
+ "ui-library",
49
+ "components",
50
+ "typescript",
51
+ "modal",
52
+ "dropdown",
53
+ "accordion",
54
+ "hooks",
55
+ "accessible",
56
+ "design-system"
57
+ ],
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "https://github.com/aelharrak/eldo-ui.git"
61
+ },
62
+ "bugs": {
63
+ "url": "https://github.com/aelharrak/eldo-ui/issues"
64
+ },
65
+ "homepage": "https://eldo-ui.com",
66
+ "author": "Eldo UI Team",
67
+ "license": "MIT",
68
+ "devDependencies": {
69
+ "@testing-library/jest-dom": "^6.9.1",
70
+ "@testing-library/react": "^16.3.1",
71
+ "@testing-library/user-event": "^14.6.1",
72
+ "@types/node": "^25.0.7",
73
+ "@types/react": "^19.2.8",
74
+ "@types/react-dom": "^19.2.3",
75
+ "@vitejs/plugin-react": "^5.1.2",
76
+ "jsdom": "^27.4.0",
77
+ "react": "^19.2.3",
78
+ "react-dom": "^19.2.3",
79
+ "sass": "^1.97.1",
80
+ "terser": "^5.44.1",
81
+ "typescript": "^5.9.3",
82
+ "vite": "^7.3.0",
83
+ "vite-plugin-dts": "^4.5.4",
84
+ "vitest": "^4.0.17"
85
+ },
86
+ "peerDependencies": {
87
+ "@popperjs/core": "^2.11.8",
88
+ "react": "^19.2.3",
89
+ "react-dom": "^19.2.3"
90
+ },
91
+ "peerDependenciesMeta": {
92
+ "@popperjs/core": {
93
+ "optional": true
94
+ },
95
+ "react": {
96
+ "optional": true
97
+ },
98
+ "react-dom": {
99
+ "optional": true
100
+ }
101
+ },
102
+ "optionalDependencies": {
103
+ "chart.js": "^4.5.1",
104
+ "prismjs": "^1.30.0"
105
+ }
106
+ }