@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.
- package/README.md +138 -0
- package/index.css +1 -1
- package/index.d.ts +10 -0
- package/index.js +1 -1
- package/index.mjs +10539 -6746
- package/lib/components/buttons/ButtonToggleGroup/ButtonToggleGroup.d.ts +79 -0
- package/lib/components/buttons/ButtonToggleGroup/ButtonToggleGroupContext.d.ts +38 -0
- package/lib/components/buttons/ButtonToggleGroup/ButtonToggleGroupItem.d.ts +37 -0
- package/lib/components/buttons/ButtonToggleGroup/index.d.ts +7 -0
- package/lib/components/buttons/ToggleButton/ToggleButton.d.ts +96 -0
- package/lib/components/buttons/ToggleButton/index.d.ts +3 -0
- package/lib/components/display/Icon/icons/BookmarkFilled.d.ts +3 -0
- package/lib/components/display/Icon/icons/ChevronsLeft.d.ts +3 -0
- package/lib/components/display/Icon/icons/ChevronsRight.d.ts +3 -0
- package/lib/components/display/Icon/icons/HeartFilled.d.ts +3 -0
- package/lib/components/display/Icon/icons/More.d.ts +3 -0
- package/lib/components/display/Icon/icons/StarFilled.d.ts +3 -0
- package/lib/components/display/Icon/icons/ThumbsUpFilled.d.ts +3 -0
- package/lib/components/display/Icon/icons/index.d.ts +15 -1
- package/lib/components/display/OverflowText/OverflowText.d.ts +81 -0
- package/lib/components/display/OverflowText/index.d.ts +2 -0
- package/lib/components/display/ScrollArea/ScrollArea.d.ts +112 -0
- package/lib/components/display/ScrollArea/index.d.ts +3 -0
- package/lib/components/display/Tabs/Tab.d.ts +41 -0
- package/lib/components/display/Tabs/TabList.d.ts +27 -0
- package/lib/components/display/Tabs/TabPanel.d.ts +31 -0
- package/lib/components/display/Tabs/Tabs.d.ts +90 -0
- package/lib/components/display/Tabs/TabsContext.d.ts +63 -0
- package/lib/components/display/Tabs/index.d.ts +11 -0
- package/lib/components/display/TruncatedList/TruncatedList.d.ts +69 -0
- package/lib/components/display/TruncatedList/index.d.ts +2 -0
- package/lib/components/display/index.d.ts +3 -0
- package/lib/components/index.d.ts +44 -0
- package/lib/components/inputs/CheckboxGroup/CheckboxGroup.d.ts +122 -0
- package/lib/components/inputs/CheckboxGroup/CheckboxGroupContext.d.ts +42 -0
- package/lib/components/inputs/CheckboxGroup/CheckboxGroupItem.d.ts +50 -0
- package/lib/components/inputs/CheckboxGroup/index.d.ts +7 -0
- package/lib/components/layout/AdaptiveGrid/AdaptiveGrid.d.ts +100 -0
- package/lib/components/layout/AdaptiveGrid/index.d.ts +2 -0
- package/lib/components/layout/MasonryLayout/MasonryLayout.d.ts +74 -0
- package/lib/components/layout/MasonryLayout/index.d.ts +2 -0
- package/lib/components/layout/Panes/Pane.d.ts +72 -0
- package/lib/components/layout/Panes/Panes.d.ts +75 -0
- package/lib/components/layout/Panes/PanesContext.d.ts +60 -0
- package/lib/components/layout/Panes/index.d.ts +6 -0
- package/lib/components/layout/ResponsiveStack/ResponsiveStack.d.ts +99 -0
- package/lib/components/layout/ResponsiveStack/index.d.ts +2 -0
- package/lib/components/layout/index.d.ts +4 -0
- package/lib/components/navigation/BottomNavigation/BottomNavigation.d.ts +53 -0
- package/lib/components/navigation/BottomNavigation/BottomNavigationContext.d.ts +27 -0
- package/lib/components/navigation/BottomNavigation/BottomNavigationItem.d.ts +59 -0
- package/lib/components/navigation/BottomNavigation/index.d.ts +7 -0
- package/lib/components/navigation/Breadcrumbs/BreadcrumbItem.d.ts +37 -0
- package/lib/components/navigation/Breadcrumbs/BreadcrumbSeparator.d.ts +22 -0
- package/lib/components/navigation/Breadcrumbs/Breadcrumbs.d.ts +96 -0
- package/lib/components/navigation/Breadcrumbs/index.d.ts +9 -0
- package/lib/components/navigation/Breadcrumbs/useBreadcrumbsFromPath.d.ts +73 -0
- package/lib/components/navigation/CollapsibleSidebar/CollapsibleSidebar.d.ts +113 -0
- package/lib/components/navigation/CollapsibleSidebar/index.d.ts +2 -0
- package/lib/components/navigation/NavLink/NavLink.d.ts +74 -0
- package/lib/components/navigation/NavLink/index.d.ts +3 -0
- package/lib/components/navigation/Navbar/Navbar.d.ts +81 -0
- package/lib/components/navigation/Navbar/NavbarActions.d.ts +21 -0
- package/lib/components/navigation/Navbar/NavbarBrand.d.ts +29 -0
- package/lib/components/navigation/Navbar/NavbarCollapse.d.ts +26 -0
- package/lib/components/navigation/Navbar/NavbarContext.d.ts +50 -0
- package/lib/components/navigation/Navbar/NavbarNav.d.ts +22 -0
- package/lib/components/navigation/Navbar/NavbarToggle.d.ts +21 -0
- package/lib/components/navigation/Navbar/index.d.ts +15 -0
- package/lib/components/navigation/Pagination/Pagination.d.ts +99 -0
- package/lib/components/navigation/Pagination/index.d.ts +3 -0
- package/lib/components/navigation/SideNav/SideNav.d.ts +89 -0
- package/lib/components/navigation/SideNav/SideNavContext.d.ts +43 -0
- package/lib/components/navigation/SideNav/SideNavDivider.d.ts +22 -0
- package/lib/components/navigation/SideNav/SideNavGroup.d.ts +44 -0
- package/lib/components/navigation/SideNav/SideNavItem.d.ts +71 -0
- package/lib/components/navigation/SideNav/index.d.ts +11 -0
- package/lib/components/navigation/Stepper/Step.d.ts +57 -0
- package/lib/components/navigation/Stepper/Stepper.d.ts +80 -0
- package/lib/components/navigation/Stepper/StepperContext.d.ts +58 -0
- package/lib/components/navigation/Stepper/index.d.ts +7 -0
- package/lib/components/navigation/index.d.ts +16 -0
- package/lib/components/overlays/Alert/Alert.d.ts +102 -0
- package/lib/components/overlays/Alert/AlertContext.d.ts +94 -0
- package/lib/components/overlays/Alert/AlertPresets.d.ts +42 -0
- package/lib/components/overlays/Alert/AlertProvider.d.ts +40 -0
- package/lib/components/overlays/Alert/index.d.ts +11 -0
- package/lib/components/overlays/Dialog/Dialog.d.ts +197 -0
- package/lib/components/overlays/Dialog/DialogContext.d.ts +75 -0
- package/lib/components/overlays/Dialog/DialogProvider.d.ts +30 -0
- package/lib/components/overlays/Dialog/index.d.ts +9 -0
- package/lib/components/overlays/Toast/Toast.d.ts +103 -0
- package/lib/components/overlays/Toast/ToastContainer.d.ts +37 -0
- package/lib/components/overlays/Toast/ToastContext.d.ts +126 -0
- package/lib/components/overlays/Toast/ToastProvider.d.ts +71 -0
- package/lib/components/overlays/Toast/index.d.ts +11 -0
- package/lib/hooks/index.d.ts +10 -0
- package/lib/hooks/useAlert/index.d.ts +2 -0
- package/lib/hooks/useAlert/useAlert.d.ts +99 -0
- package/lib/hooks/useAsyncToast/index.d.ts +2 -0
- package/lib/hooks/useAsyncToast/useAsyncToast.d.ts +93 -0
- package/lib/hooks/useDialog/index.d.ts +2 -0
- package/lib/hooks/useDialog/useDialog.d.ts +58 -0
- package/lib/hooks/useResizeObserver/index.d.ts +2 -0
- package/lib/hooks/useResizeObserver/useResizeObserver.d.ts +69 -0
- package/lib/hooks/useToast/index.d.ts +2 -0
- package/lib/hooks/useToast/useToast.d.ts +97 -0
- package/lib/providers/GlobalProvider/GlobalProvider.d.ts +16 -1
- 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;
|
|
@@ -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,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,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;
|