@true-tech-team/react-components 0.0.4 → 0.0.5

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 (109) hide show
  1. package/README.md +138 -0
  2. package/index.css +1 -1
  3. package/index.d.ts +10 -0
  4. package/index.js +1 -1
  5. package/index.mjs +10539 -6746
  6. package/lib/components/buttons/ButtonToggleGroup/ButtonToggleGroup.d.ts +79 -0
  7. package/lib/components/buttons/ButtonToggleGroup/ButtonToggleGroupContext.d.ts +38 -0
  8. package/lib/components/buttons/ButtonToggleGroup/ButtonToggleGroupItem.d.ts +37 -0
  9. package/lib/components/buttons/ButtonToggleGroup/index.d.ts +7 -0
  10. package/lib/components/buttons/ToggleButton/ToggleButton.d.ts +96 -0
  11. package/lib/components/buttons/ToggleButton/index.d.ts +3 -0
  12. package/lib/components/display/Icon/icons/BookmarkFilled.d.ts +3 -0
  13. package/lib/components/display/Icon/icons/ChevronsLeft.d.ts +3 -0
  14. package/lib/components/display/Icon/icons/ChevronsRight.d.ts +3 -0
  15. package/lib/components/display/Icon/icons/HeartFilled.d.ts +3 -0
  16. package/lib/components/display/Icon/icons/More.d.ts +3 -0
  17. package/lib/components/display/Icon/icons/StarFilled.d.ts +3 -0
  18. package/lib/components/display/Icon/icons/ThumbsUpFilled.d.ts +3 -0
  19. package/lib/components/display/Icon/icons/index.d.ts +15 -1
  20. package/lib/components/display/OverflowText/OverflowText.d.ts +81 -0
  21. package/lib/components/display/OverflowText/index.d.ts +2 -0
  22. package/lib/components/display/ScrollArea/ScrollArea.d.ts +112 -0
  23. package/lib/components/display/ScrollArea/index.d.ts +3 -0
  24. package/lib/components/display/Tabs/Tab.d.ts +41 -0
  25. package/lib/components/display/Tabs/TabList.d.ts +27 -0
  26. package/lib/components/display/Tabs/TabPanel.d.ts +31 -0
  27. package/lib/components/display/Tabs/Tabs.d.ts +90 -0
  28. package/lib/components/display/Tabs/TabsContext.d.ts +63 -0
  29. package/lib/components/display/Tabs/index.d.ts +11 -0
  30. package/lib/components/display/TruncatedList/TruncatedList.d.ts +69 -0
  31. package/lib/components/display/TruncatedList/index.d.ts +2 -0
  32. package/lib/components/display/index.d.ts +3 -0
  33. package/lib/components/index.d.ts +44 -0
  34. package/lib/components/inputs/CheckboxGroup/CheckboxGroup.d.ts +122 -0
  35. package/lib/components/inputs/CheckboxGroup/CheckboxGroupContext.d.ts +42 -0
  36. package/lib/components/inputs/CheckboxGroup/CheckboxGroupItem.d.ts +50 -0
  37. package/lib/components/inputs/CheckboxGroup/index.d.ts +7 -0
  38. package/lib/components/layout/AdaptiveGrid/AdaptiveGrid.d.ts +100 -0
  39. package/lib/components/layout/AdaptiveGrid/index.d.ts +2 -0
  40. package/lib/components/layout/MasonryLayout/MasonryLayout.d.ts +74 -0
  41. package/lib/components/layout/MasonryLayout/index.d.ts +2 -0
  42. package/lib/components/layout/Panes/Pane.d.ts +72 -0
  43. package/lib/components/layout/Panes/Panes.d.ts +75 -0
  44. package/lib/components/layout/Panes/PanesContext.d.ts +60 -0
  45. package/lib/components/layout/Panes/index.d.ts +6 -0
  46. package/lib/components/layout/ResponsiveStack/ResponsiveStack.d.ts +99 -0
  47. package/lib/components/layout/ResponsiveStack/index.d.ts +2 -0
  48. package/lib/components/layout/index.d.ts +4 -0
  49. package/lib/components/navigation/BottomNavigation/BottomNavigation.d.ts +53 -0
  50. package/lib/components/navigation/BottomNavigation/BottomNavigationContext.d.ts +27 -0
  51. package/lib/components/navigation/BottomNavigation/BottomNavigationItem.d.ts +59 -0
  52. package/lib/components/navigation/BottomNavigation/index.d.ts +7 -0
  53. package/lib/components/navigation/Breadcrumbs/BreadcrumbItem.d.ts +37 -0
  54. package/lib/components/navigation/Breadcrumbs/BreadcrumbSeparator.d.ts +22 -0
  55. package/lib/components/navigation/Breadcrumbs/Breadcrumbs.d.ts +96 -0
  56. package/lib/components/navigation/Breadcrumbs/index.d.ts +9 -0
  57. package/lib/components/navigation/Breadcrumbs/useBreadcrumbsFromPath.d.ts +73 -0
  58. package/lib/components/navigation/CollapsibleSidebar/CollapsibleSidebar.d.ts +113 -0
  59. package/lib/components/navigation/CollapsibleSidebar/index.d.ts +2 -0
  60. package/lib/components/navigation/NavLink/NavLink.d.ts +74 -0
  61. package/lib/components/navigation/NavLink/index.d.ts +3 -0
  62. package/lib/components/navigation/Navbar/Navbar.d.ts +81 -0
  63. package/lib/components/navigation/Navbar/NavbarActions.d.ts +21 -0
  64. package/lib/components/navigation/Navbar/NavbarBrand.d.ts +29 -0
  65. package/lib/components/navigation/Navbar/NavbarCollapse.d.ts +26 -0
  66. package/lib/components/navigation/Navbar/NavbarContext.d.ts +50 -0
  67. package/lib/components/navigation/Navbar/NavbarNav.d.ts +22 -0
  68. package/lib/components/navigation/Navbar/NavbarToggle.d.ts +21 -0
  69. package/lib/components/navigation/Navbar/index.d.ts +15 -0
  70. package/lib/components/navigation/Pagination/Pagination.d.ts +99 -0
  71. package/lib/components/navigation/Pagination/index.d.ts +3 -0
  72. package/lib/components/navigation/SideNav/SideNav.d.ts +89 -0
  73. package/lib/components/navigation/SideNav/SideNavContext.d.ts +43 -0
  74. package/lib/components/navigation/SideNav/SideNavDivider.d.ts +22 -0
  75. package/lib/components/navigation/SideNav/SideNavGroup.d.ts +44 -0
  76. package/lib/components/navigation/SideNav/SideNavItem.d.ts +71 -0
  77. package/lib/components/navigation/SideNav/index.d.ts +11 -0
  78. package/lib/components/navigation/Stepper/Step.d.ts +57 -0
  79. package/lib/components/navigation/Stepper/Stepper.d.ts +80 -0
  80. package/lib/components/navigation/Stepper/StepperContext.d.ts +58 -0
  81. package/lib/components/navigation/Stepper/index.d.ts +7 -0
  82. package/lib/components/navigation/index.d.ts +16 -0
  83. package/lib/components/overlays/Alert/Alert.d.ts +102 -0
  84. package/lib/components/overlays/Alert/AlertContext.d.ts +94 -0
  85. package/lib/components/overlays/Alert/AlertPresets.d.ts +42 -0
  86. package/lib/components/overlays/Alert/AlertProvider.d.ts +40 -0
  87. package/lib/components/overlays/Alert/index.d.ts +11 -0
  88. package/lib/components/overlays/Dialog/Dialog.d.ts +197 -0
  89. package/lib/components/overlays/Dialog/DialogContext.d.ts +75 -0
  90. package/lib/components/overlays/Dialog/DialogProvider.d.ts +30 -0
  91. package/lib/components/overlays/Dialog/index.d.ts +9 -0
  92. package/lib/components/overlays/Toast/Toast.d.ts +103 -0
  93. package/lib/components/overlays/Toast/ToastContainer.d.ts +37 -0
  94. package/lib/components/overlays/Toast/ToastContext.d.ts +126 -0
  95. package/lib/components/overlays/Toast/ToastProvider.d.ts +71 -0
  96. package/lib/components/overlays/Toast/index.d.ts +11 -0
  97. package/lib/hooks/index.d.ts +10 -0
  98. package/lib/hooks/useAlert/index.d.ts +2 -0
  99. package/lib/hooks/useAlert/useAlert.d.ts +99 -0
  100. package/lib/hooks/useAsyncToast/index.d.ts +2 -0
  101. package/lib/hooks/useAsyncToast/useAsyncToast.d.ts +93 -0
  102. package/lib/hooks/useDialog/index.d.ts +2 -0
  103. package/lib/hooks/useDialog/useDialog.d.ts +58 -0
  104. package/lib/hooks/useResizeObserver/index.d.ts +2 -0
  105. package/lib/hooks/useResizeObserver/useResizeObserver.d.ts +69 -0
  106. package/lib/hooks/useToast/index.d.ts +2 -0
  107. package/lib/hooks/useToast/useToast.d.ts +97 -0
  108. package/lib/providers/GlobalProvider/GlobalProvider.d.ts +16 -1
  109. package/package.json +1 -1
@@ -0,0 +1,79 @@
1
+ import { default as React } from 'react';
2
+ import { BaseComponentProps, ComponentSize, ComponentVariant } from '../../../types';
3
+ export interface ButtonToggleGroupProps extends Omit<BaseComponentProps, 'onChange'> {
4
+ /**
5
+ * Currently selected value (controlled)
6
+ */
7
+ value?: string;
8
+ /**
9
+ * Default selected value (uncontrolled)
10
+ */
11
+ defaultValue?: string;
12
+ /**
13
+ * Callback when selection changes
14
+ * @param value - The newly selected value
15
+ * @param event - The click event
16
+ */
17
+ onChange?: (value: string, event: React.MouseEvent<HTMLButtonElement>) => void;
18
+ /**
19
+ * Variant style for all buttons
20
+ * @default 'outline'
21
+ */
22
+ variant?: ComponentVariant;
23
+ /**
24
+ * Size for all buttons
25
+ * @default 'md'
26
+ */
27
+ size?: ComponentSize;
28
+ /**
29
+ * Orientation of the button group
30
+ * @default 'horizontal'
31
+ */
32
+ orientation?: 'horizontal' | 'vertical';
33
+ /**
34
+ * Whether buttons should take full width (distribute equally)
35
+ * @default false
36
+ */
37
+ fullWidth?: boolean;
38
+ /**
39
+ * Whether all buttons are disabled
40
+ * @default false
41
+ */
42
+ disabled?: boolean;
43
+ /**
44
+ * Group label for accessibility
45
+ */
46
+ 'aria-label'?: string;
47
+ /**
48
+ * Name attribute for form submission
49
+ */
50
+ name?: string;
51
+ /**
52
+ * ButtonToggleGroupItem children
53
+ */
54
+ children: React.ReactNode;
55
+ }
56
+ /**
57
+ * ButtonToggleGroup component - a group of buttons with single selection
58
+ *
59
+ * A segmented control that allows selecting one option from a group of buttons.
60
+ * Buttons can contain icons, text, or both.
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * // Text buttons
65
+ * <ButtonToggleGroup value={size} onChange={setSize}>
66
+ * <ButtonToggleGroupItem value="sm">Small</ButtonToggleGroupItem>
67
+ * <ButtonToggleGroupItem value="md">Medium</ButtonToggleGroupItem>
68
+ * <ButtonToggleGroupItem value="lg">Large</ButtonToggleGroupItem>
69
+ * </ButtonToggleGroup>
70
+ *
71
+ * // Icon buttons
72
+ * <ButtonToggleGroup value={view} onChange={setView}>
73
+ * <ButtonToggleGroupItem value="list" icon="list" />
74
+ * <ButtonToggleGroupItem value="grid" icon="grid" />
75
+ * </ButtonToggleGroup>
76
+ * ```
77
+ */
78
+ export declare const ButtonToggleGroup: React.ForwardRefExoticComponent<ButtonToggleGroupProps & React.RefAttributes<HTMLDivElement>>;
79
+ export default ButtonToggleGroup;
@@ -0,0 +1,38 @@
1
+ import { ComponentSize, ComponentVariant } from '../../../types';
2
+ export interface ButtonToggleGroupContextValue {
3
+ /**
4
+ * Group name for form submission
5
+ */
6
+ name: string;
7
+ /**
8
+ * Currently selected value
9
+ */
10
+ value?: string;
11
+ /**
12
+ * Callback when selection changes
13
+ */
14
+ onChange?: (value: string, event: React.MouseEvent<HTMLButtonElement>) => void;
15
+ /**
16
+ * Whether the group is disabled
17
+ */
18
+ disabled?: boolean;
19
+ /**
20
+ * Size for all items
21
+ */
22
+ size?: ComponentSize;
23
+ /**
24
+ * Variant style for all items
25
+ */
26
+ variant?: ComponentVariant;
27
+ }
28
+ export declare const ButtonToggleGroupContext: import('react').Context<ButtonToggleGroupContextValue | null>;
29
+ /**
30
+ * Hook to access ButtonToggleGroup context
31
+ * @throws Error if used outside of ButtonToggleGroup
32
+ */
33
+ export declare const useButtonToggleGroup: () => ButtonToggleGroupContextValue;
34
+ /**
35
+ * Hook to optionally access ButtonToggleGroup context
36
+ * Returns null if not within a ButtonToggleGroup
37
+ */
38
+ export declare const useButtonToggleGroupOptional: () => ButtonToggleGroupContextValue | null;
@@ -0,0 +1,37 @@
1
+ import { default as React } from 'react';
2
+ import { BaseComponentProps } from '../../../types';
3
+ import { IconName } from '../../display/Icon/icons';
4
+ export interface ButtonToggleGroupItemProps extends Omit<BaseComponentProps, 'children'> {
5
+ /**
6
+ * Value for this item (required for selection)
7
+ */
8
+ value: string;
9
+ /**
10
+ * Icon to display (can be used with or without children)
11
+ */
12
+ icon?: IconName;
13
+ /**
14
+ * Whether this specific item is disabled
15
+ * @default false
16
+ */
17
+ disabled?: boolean;
18
+ /**
19
+ * Button content (text label)
20
+ */
21
+ children?: React.ReactNode;
22
+ }
23
+ /**
24
+ * ButtonToggleGroupItem component - individual button within a ButtonToggleGroup
25
+ *
26
+ * Must be used as a child of ButtonToggleGroup.
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * <ButtonToggleGroup value={view} onChange={setView}>
31
+ * <ButtonToggleGroupItem value="list" icon="list">List</ButtonToggleGroupItem>
32
+ * <ButtonToggleGroupItem value="grid" icon="grid">Grid</ButtonToggleGroupItem>
33
+ * </ButtonToggleGroup>
34
+ * ```
35
+ */
36
+ export declare const ButtonToggleGroupItem: React.ForwardRefExoticComponent<ButtonToggleGroupItemProps & React.RefAttributes<HTMLButtonElement>>;
37
+ export default ButtonToggleGroupItem;
@@ -0,0 +1,7 @@
1
+ export { ButtonToggleGroup } from './ButtonToggleGroup';
2
+ export type { ButtonToggleGroupProps } from './ButtonToggleGroup';
3
+ export { ButtonToggleGroupItem } from './ButtonToggleGroupItem';
4
+ export type { ButtonToggleGroupItemProps } from './ButtonToggleGroupItem';
5
+ export { ButtonToggleGroupContext, useButtonToggleGroup, useButtonToggleGroupOptional, } from './ButtonToggleGroupContext';
6
+ export type { ButtonToggleGroupContextValue } from './ButtonToggleGroupContext';
7
+ export { default } from './ButtonToggleGroup';
@@ -0,0 +1,96 @@
1
+ import { default as React } from 'react';
2
+ import { BaseComponentProps, ExtendedComponentSize } from '../../../types';
3
+ import { IconName } from '../../display/Icon/icons';
4
+ export interface ToggleButtonProps extends Omit<BaseComponentProps, 'children'> {
5
+ /**
6
+ * Whether the toggle button is in active state (controlled)
7
+ */
8
+ active?: boolean;
9
+ /**
10
+ * Default active state for uncontrolled component
11
+ * @default false
12
+ */
13
+ defaultActive?: boolean;
14
+ /**
15
+ * Callback fired when active state changes
16
+ * @param active - The new active state
17
+ * @param event - The click event
18
+ */
19
+ onChange?: (active: boolean, event: React.MouseEvent<HTMLButtonElement>) => void;
20
+ /**
21
+ * Icon to display when active (filled icon recommended)
22
+ * @default 'heart-filled'
23
+ */
24
+ activeIcon?: IconName;
25
+ /**
26
+ * Icon to display when inactive (outline icon recommended)
27
+ * @default 'heart'
28
+ */
29
+ inactiveIcon?: IconName;
30
+ /**
31
+ * Button size
32
+ * @default 'md'
33
+ */
34
+ size?: ExtendedComponentSize;
35
+ /**
36
+ * Color when active
37
+ * @default 'var(--theme-error)'
38
+ */
39
+ activeColor?: string;
40
+ /**
41
+ * Color when inactive
42
+ * @default 'var(--theme-text-secondary)'
43
+ */
44
+ inactiveColor?: string;
45
+ /**
46
+ * Whether the button is disabled
47
+ * @default false
48
+ */
49
+ disabled?: boolean;
50
+ /**
51
+ * Button type attribute
52
+ * @default 'button'
53
+ */
54
+ type?: 'button' | 'submit' | 'reset';
55
+ /**
56
+ * Whether to show animation on toggle
57
+ * @default true
58
+ */
59
+ animated?: boolean;
60
+ /**
61
+ * Accessible label (REQUIRED for icon-only buttons)
62
+ */
63
+ 'aria-label': string;
64
+ }
65
+ /**
66
+ * ToggleButton component - an icon button that toggles between two states
67
+ *
68
+ * A versatile toggle button that displays different icons for active/inactive states.
69
+ * Perfect for like buttons, favorites, bookmarks, and similar toggle interactions.
70
+ *
71
+ * @example
72
+ * ```tsx
73
+ * // Like button (default)
74
+ * <ToggleButton aria-label="Like" onChange={(liked) => console.log(liked)} />
75
+ *
76
+ * // Controlled bookmark button
77
+ * <ToggleButton
78
+ * active={isBookmarked}
79
+ * onChange={setIsBookmarked}
80
+ * activeIcon="bookmark"
81
+ * inactiveIcon="bookmark"
82
+ * activeColor="var(--theme-primary)"
83
+ * aria-label="Bookmark"
84
+ * />
85
+ *
86
+ * // Star favorite button
87
+ * <ToggleButton
88
+ * activeIcon="star"
89
+ * inactiveIcon="star"
90
+ * activeColor="var(--theme-warning)"
91
+ * aria-label="Favorite"
92
+ * />
93
+ * ```
94
+ */
95
+ export declare const ToggleButton: React.ForwardRefExoticComponent<ToggleButtonProps & React.RefAttributes<HTMLButtonElement>>;
96
+ export default ToggleButton;
@@ -0,0 +1,3 @@
1
+ export { ToggleButton } from './ToggleButton';
2
+ export type { ToggleButtonProps } from './ToggleButton';
3
+ export { default } from './ToggleButton';
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ declare const BookmarkFilled: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default BookmarkFilled;
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ declare const ChevronsLeft: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default ChevronsLeft;
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ declare const ChevronsRight: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default ChevronsRight;
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ declare const HeartFilled: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default HeartFilled;
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ declare const More: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default More;
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ declare const StarFilled: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default StarFilled;
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ declare const ThumbsUpFilled: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
3
+ export default ThumbsUpFilled;
@@ -21,6 +21,7 @@ import { default as BellOff } from './BellOff';
21
21
  import { default as Bluetooth } from './Bluetooth';
22
22
  import { default as Bold } from './Bold';
23
23
  import { default as Bookmark } from './Bookmark';
24
+ import { default as BookmarkFilled } from './BookmarkFilled';
24
25
  import { default as BookmarkPlus } from './BookmarkPlus';
25
26
  import { default as Building } from './Building';
26
27
  import { default as Calendar } from './Calendar';
@@ -31,6 +32,8 @@ import { default as Check } from './Check';
31
32
  import { default as ChevronDown } from './ChevronDown';
32
33
  import { default as ChevronLeft } from './ChevronLeft';
33
34
  import { default as ChevronRight } from './ChevronRight';
35
+ import { default as ChevronsLeft } from './ChevronsLeft';
36
+ import { default as ChevronsRight } from './ChevronsRight';
34
37
  import { default as ChevronUp } from './ChevronUp';
35
38
  import { default as Clock } from './Clock';
36
39
  import { default as Close } from './Close';
@@ -73,6 +76,7 @@ import { default as Grid } from './Grid';
73
76
  import { default as HardDrive } from './HardDrive';
74
77
  import { default as Hash } from './Hash';
75
78
  import { default as Heart } from './Heart';
79
+ import { default as HeartFilled } from './HeartFilled';
76
80
  import { default as Help } from './Help';
77
81
  import { default as Home } from './Home';
78
82
  import { default as Hourglass } from './Hourglass';
@@ -103,6 +107,7 @@ import { default as MicOff } from './MicOff';
103
107
  import { default as Minimize } from './Minimize';
104
108
  import { default as Minus } from './Minus';
105
109
  import { default as Monitor } from './Monitor';
110
+ import { default as More } from './More';
106
111
  import { default as Music } from './Music';
107
112
  import { default as Navigation } from './Navigation';
108
113
  import { default as Navigation2 } from './Navigation2';
@@ -148,6 +153,7 @@ import { default as SkipBack } from './SkipBack';
148
153
  import { default as SkipForward } from './SkipForward';
149
154
  import { default as Smartphone } from './Smartphone';
150
155
  import { default as Star } from './Star';
156
+ import { default as StarFilled } from './StarFilled';
151
157
  import { default as Stop } from './Stop';
152
158
  import { default as Stopwatch } from './Stopwatch';
153
159
  import { default as Sunrise } from './Sunrise';
@@ -157,6 +163,7 @@ import { default as Tag } from './Tag';
157
163
  import { default as Target } from './Target';
158
164
  import { default as Terminal } from './Terminal';
159
165
  import { default as ThumbsUp } from './ThumbsUp';
166
+ import { default as ThumbsUpFilled } from './ThumbsUpFilled';
160
167
  import { default as TrendingDown } from './TrendingDown';
161
168
  import { default as TrendingUp } from './TrendingUp';
162
169
  import { default as Type } from './Type';
@@ -208,6 +215,7 @@ export declare const iconRegistry: {
208
215
  readonly bluetooth: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
209
216
  readonly bold: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
210
217
  readonly bookmark: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
218
+ readonly 'bookmark-filled': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
211
219
  readonly 'bookmark-plus': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
212
220
  readonly building: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
213
221
  readonly calendar: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -218,6 +226,8 @@ export declare const iconRegistry: {
218
226
  readonly 'chevron-down': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
219
227
  readonly 'chevron-left': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
220
228
  readonly 'chevron-right': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
229
+ readonly 'chevrons-left': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
230
+ readonly 'chevrons-right': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
221
231
  readonly 'chevron-up': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
222
232
  readonly clock: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
223
233
  readonly close: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -260,6 +270,7 @@ export declare const iconRegistry: {
260
270
  readonly 'hard-drive': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
261
271
  readonly hash: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
262
272
  readonly heart: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
273
+ readonly 'heart-filled': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
263
274
  readonly help: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
264
275
  readonly home: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
265
276
  readonly hourglass: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -290,6 +301,7 @@ export declare const iconRegistry: {
290
301
  readonly minimize: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
291
302
  readonly minus: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
292
303
  readonly monitor: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
304
+ readonly more: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
293
305
  readonly music: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
294
306
  readonly navigation: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
295
307
  readonly 'navigation-2': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -335,6 +347,7 @@ export declare const iconRegistry: {
335
347
  readonly 'skip-forward': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
336
348
  readonly smartphone: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
337
349
  readonly star: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
350
+ readonly 'star-filled': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
338
351
  readonly stop: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
339
352
  readonly stopwatch: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
340
353
  readonly sunrise: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -344,6 +357,7 @@ export declare const iconRegistry: {
344
357
  readonly target: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
345
358
  readonly terminal: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
346
359
  readonly 'thumbs-up': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
360
+ readonly 'thumbs-up-filled': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
347
361
  readonly 'trending-down': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
348
362
  readonly 'trending-up': (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
349
363
  readonly type: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -376,4 +390,4 @@ export type IconName = keyof typeof iconRegistry;
376
390
  /**
377
391
  * Named exports for direct import
378
392
  */
379
- export { Account, Activity, AlignCenter, AlignJustify, AlignLeft, AlignRight, ArrowDown, ArrowDownLeft, ArrowDownRight, ArrowLeft, ArrowRight, ArrowUp, ArrowUpLeft, ArrowUpRight, AtSign, BarChart2, Battery, BatteryCharging, Bell, BellOff, Bluetooth, Bold, Bookmark, BookmarkPlus, Building, Calendar, Camera, ChartBar, ChartLine, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Clock, Close, Cloud, CloudDownload, CloudOff, CloudUpload, Code, Compass, Copy, CornerDownLeft, CornerDownRight, CornerUpLeft, CornerUpRight, Cpu, CreditCard, Crosshair, Database, Delete, Dollar, Download, Edit, Error, ExternalLink, Eye, EyeOff, File, FileCheck, FileMinus, FilePlus, FileText, Filter, Folder, FolderMinus, FolderOpen, FolderPlus, Gift, Globe, Grid, HardDrive, Hash, Heart, Help, Home, Hourglass, Image, Inbox, Info, Italic, Key, Laptop, Link, Link2, List, ListOrdered, ListUnordered, Lock, Logout, Mail, MailOpen, Map, MapPin, Maximize, Menu, MessageCircle, Messages, MessageSquare, Mic, MicOff, Minimize, Minus, Monitor, Music, Navigation, Navigation2, Outbox, Paperclip, Pause, Percent, PercentCircle, Phone, PhoneCall, PhoneIncoming, PhoneMissed, PhoneOutgoing, PieChart, Play, Plus, Power, Preferences, Printer, Profile, Redo, Refresh, Repeat, RotateCcw, RotateCw, Route, Rss, Save, Search, Send, Server, Settings, Share, Share2, Shield, ShieldAlert, ShieldCheck, ShieldOff, ShoppingBag, ShoppingCart, Shuffle, SkipBack, SkipForward, Smartphone, Star, Stop, Stopwatch, Sunrise, Sunset, Tablet, Tag, Target, Terminal, ThumbsUp, TrendingDown, TrendingUp, Type, Underline, Undo, Unlock, Unlink, Upload, User, UserCheck, UserMinus, UserPlus, Users, UserX, Video, Volume, Volume1, Volume2, VolumeX, Warning, Watch, Wifi, WifiOff, Zap, };
393
+ export { Account, Activity, AlignCenter, AlignJustify, AlignLeft, AlignRight, ArrowDown, ArrowDownLeft, ArrowDownRight, ArrowLeft, ArrowRight, ArrowUp, ArrowUpLeft, ArrowUpRight, AtSign, BarChart2, Battery, BatteryCharging, Bell, BellOff, Bluetooth, Bold, Bookmark, BookmarkFilled, BookmarkPlus, Building, Calendar, Camera, ChartBar, ChartLine, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, ChevronUp, Clock, Close, Cloud, CloudDownload, CloudOff, CloudUpload, Code, Compass, Copy, CornerDownLeft, CornerDownRight, CornerUpLeft, CornerUpRight, Cpu, CreditCard, Crosshair, Database, Delete, Dollar, Download, Edit, Error, ExternalLink, Eye, EyeOff, File, FileCheck, FileMinus, FilePlus, FileText, Filter, Folder, FolderMinus, FolderOpen, FolderPlus, Gift, Globe, Grid, HardDrive, Hash, Heart, HeartFilled, Help, Home, Hourglass, Image, Inbox, Info, Italic, Key, Laptop, Link, Link2, List, ListOrdered, ListUnordered, Lock, Logout, Mail, MailOpen, Map, MapPin, Maximize, Menu, MessageCircle, Messages, MessageSquare, Mic, MicOff, Minimize, Minus, Monitor, More, Music, Navigation, Navigation2, Outbox, Paperclip, Pause, Percent, PercentCircle, Phone, PhoneCall, PhoneIncoming, PhoneMissed, PhoneOutgoing, PieChart, Play, Plus, Power, Preferences, Printer, Profile, Redo, Refresh, Repeat, RotateCcw, RotateCw, Route, Rss, Save, Search, Send, Server, Settings, Share, Share2, Shield, ShieldAlert, ShieldCheck, ShieldOff, ShoppingBag, ShoppingCart, Shuffle, SkipBack, SkipForward, Smartphone, Star, StarFilled, Stop, Stopwatch, Sunrise, Sunset, Tablet, Tag, Target, Terminal, ThumbsUp, ThumbsUpFilled, TrendingDown, TrendingUp, Type, Underline, Undo, Unlock, Unlink, Upload, User, UserCheck, UserMinus, UserPlus, Users, UserX, Video, Volume, Volume1, Volume2, VolumeX, Warning, Watch, Wifi, WifiOff, Zap, };
@@ -0,0 +1,81 @@
1
+ import { default as React } from 'react';
2
+ import { PopoverPosition } from '../../../utils/positioning';
3
+ import { BaseComponentProps } from '../../../types';
4
+ /**
5
+ * Props for the OverflowText component
6
+ */
7
+ export interface OverflowTextProps extends Omit<BaseComponentProps, 'children'> {
8
+ /**
9
+ * Text content to display
10
+ */
11
+ children: string;
12
+ /**
13
+ * Maximum number of lines before truncation
14
+ * @default 1
15
+ */
16
+ lines?: number;
17
+ /**
18
+ * Position of the tooltip
19
+ * @default 'top'
20
+ */
21
+ tooltipPosition?: PopoverPosition;
22
+ /**
23
+ * Delay before showing tooltip (ms)
24
+ * @default 200
25
+ */
26
+ tooltipDelay?: number;
27
+ /**
28
+ * Whether to disable the tooltip (always truncate, never show full text)
29
+ * @default false
30
+ */
31
+ disableTooltip?: boolean;
32
+ /**
33
+ * Custom tooltip content (defaults to full text)
34
+ */
35
+ tooltipContent?: React.ReactNode;
36
+ /**
37
+ * Maximum width of the tooltip
38
+ * @default 300
39
+ */
40
+ tooltipMaxWidth?: number;
41
+ /**
42
+ * HTML element to render
43
+ * @default 'span'
44
+ */
45
+ as?: 'span' | 'p' | 'div';
46
+ /**
47
+ * Callback when text overflow state changes
48
+ * @param isOverflowing - Whether text is currently overflowing
49
+ */
50
+ onOverflowChange?: (isOverflowing: boolean) => void;
51
+ }
52
+ /**
53
+ * OverflowText - Text that truncates with ellipsis and shows full content in tooltip
54
+ *
55
+ * @example
56
+ * Single line truncation:
57
+ * ```tsx
58
+ * <OverflowText>
59
+ * This is a very long text that will be truncated with ellipsis
60
+ * </OverflowText>
61
+ * ```
62
+ *
63
+ * @example
64
+ * Multi-line truncation:
65
+ * ```tsx
66
+ * <OverflowText lines={2}>
67
+ * This is a very long text that spans multiple lines and will be
68
+ * truncated after the second line with an ellipsis.
69
+ * </OverflowText>
70
+ * ```
71
+ *
72
+ * @example
73
+ * With custom tooltip position:
74
+ * ```tsx
75
+ * <OverflowText tooltipPosition="bottom" tooltipDelay={500}>
76
+ * Hover to see the full text in a tooltip at the bottom
77
+ * </OverflowText>
78
+ * ```
79
+ */
80
+ export declare const OverflowText: React.ForwardRefExoticComponent<OverflowTextProps & React.RefAttributes<HTMLElement>>;
81
+ export default OverflowText;
@@ -0,0 +1,2 @@
1
+ export { OverflowText } from './OverflowText';
2
+ export type { OverflowTextProps } from './OverflowText';
@@ -0,0 +1,112 @@
1
+ import { default as React } from 'react';
2
+ import { BaseComponentProps } from '../../../types';
3
+ export interface ScrollAreaRef {
4
+ /**
5
+ * Scroll to specific position
6
+ */
7
+ scrollTo: (options: ScrollToOptions) => void;
8
+ /**
9
+ * Scroll to top
10
+ */
11
+ scrollToTop: (behavior?: ScrollBehavior) => void;
12
+ /**
13
+ * Scroll to bottom
14
+ */
15
+ scrollToBottom: (behavior?: ScrollBehavior) => void;
16
+ /**
17
+ * Scroll to left
18
+ */
19
+ scrollToLeft: (behavior?: ScrollBehavior) => void;
20
+ /**
21
+ * Scroll to right
22
+ */
23
+ scrollToRight: (behavior?: ScrollBehavior) => void;
24
+ /**
25
+ * Get current scroll position
26
+ */
27
+ getScrollPosition: () => {
28
+ scrollTop: number;
29
+ scrollLeft: number;
30
+ };
31
+ /**
32
+ * Get the viewport element
33
+ */
34
+ getElement: () => HTMLDivElement | null;
35
+ }
36
+ export interface ScrollAreaProps extends BaseComponentProps {
37
+ /**
38
+ * Scroll direction
39
+ * @default 'vertical'
40
+ */
41
+ direction?: 'vertical' | 'horizontal' | 'both';
42
+ /**
43
+ * Maximum height (enables vertical scroll)
44
+ */
45
+ maxHeight?: string | number;
46
+ /**
47
+ * Maximum width (enables horizontal scroll)
48
+ */
49
+ maxWidth?: string | number;
50
+ /**
51
+ * Whether to show shadow indicators at scroll edges
52
+ * @default false
53
+ */
54
+ showShadows?: boolean;
55
+ /**
56
+ * Callback when scroll position changes
57
+ */
58
+ onScroll?: (event: React.UIEvent<HTMLDivElement>) => void;
59
+ /**
60
+ * Callback when scrolled to top
61
+ */
62
+ onScrollToTop?: () => void;
63
+ /**
64
+ * Callback when scrolled to bottom
65
+ */
66
+ onScrollToBottom?: () => void;
67
+ /**
68
+ * Callback when scrolled to left edge
69
+ */
70
+ onScrollToLeft?: () => void;
71
+ /**
72
+ * Callback when scrolled to right edge
73
+ */
74
+ onScrollToRight?: () => void;
75
+ /**
76
+ * Threshold in pixels for scroll end callbacks
77
+ * @default 10
78
+ */
79
+ scrollEndThreshold?: number;
80
+ /**
81
+ * Content to render inside scrollable area
82
+ */
83
+ children: React.ReactNode;
84
+ }
85
+ /**
86
+ * ScrollArea component - a custom scrollbar container
87
+ *
88
+ * Provides styled scrollbars with various visibility modes and
89
+ * programmatic scroll control.
90
+ *
91
+ * @example
92
+ * Basic vertical scroll:
93
+ * ```tsx
94
+ * <ScrollArea maxHeight={300}>
95
+ * <p>Long content here...</p>
96
+ * </ScrollArea>
97
+ * ```
98
+ *
99
+ * @example
100
+ * With scroll callbacks:
101
+ * ```tsx
102
+ * <ScrollArea
103
+ * maxHeight={400}
104
+ * onScrollToBottom={() => loadMore()}
105
+ * showShadows
106
+ * >
107
+ * {items.map(item => <Item key={item.id} {...item} />)}
108
+ * </ScrollArea>
109
+ * ```
110
+ */
111
+ export declare const ScrollArea: React.ForwardRefExoticComponent<ScrollAreaProps & React.RefAttributes<ScrollAreaRef>>;
112
+ export default ScrollArea;
@@ -0,0 +1,3 @@
1
+ export { ScrollArea } from './ScrollArea';
2
+ export type { ScrollAreaProps, ScrollAreaRef } from './ScrollArea';
3
+ export { default } from './ScrollArea';
@@ -0,0 +1,41 @@
1
+ import { default as React } from 'react';
2
+ import { BaseComponentProps } from '../../../types';
3
+ import { IconName } from '../Icon/icons';
4
+ export interface TabProps extends Omit<BaseComponentProps, 'children'> {
5
+ /**
6
+ * Value identifier for this tab (required)
7
+ */
8
+ value: string;
9
+ /**
10
+ * Icon to display before tab label
11
+ */
12
+ icon?: IconName;
13
+ /**
14
+ * Whether this tab is disabled
15
+ * @default false
16
+ */
17
+ disabled?: boolean;
18
+ /**
19
+ * Tab label content
20
+ */
21
+ children: React.ReactNode;
22
+ }
23
+ /**
24
+ * Tab component - individual tab header button
25
+ *
26
+ * Must be used within TabList, which must be within Tabs.
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * <Tabs defaultValue="tab1">
31
+ * <TabList>
32
+ * <Tab value="tab1">Tab 1</Tab>
33
+ * <Tab value="tab2" icon="settings">Settings</Tab>
34
+ * </TabList>
35
+ * <TabPanel value="tab1">Content 1</TabPanel>
36
+ * <TabPanel value="tab2">Content 2</TabPanel>
37
+ * </Tabs>
38
+ * ```
39
+ */
40
+ export declare const Tab: React.ForwardRefExoticComponent<TabProps & React.RefAttributes<HTMLButtonElement>>;
41
+ export default Tab;