@true-tech-team/react-components 0.0.4 → 0.0.6
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/index.css +1 -1
- package/index.d.ts +10 -0
- package/index.js +1 -1
- package/index.mjs +15961 -6871
- 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/List/List.d.ts +6 -0
- package/lib/components/display/List/ListContext.d.ts +15 -0
- package/lib/components/display/List/ListEmpty.d.ts +25 -0
- package/lib/components/display/List/ListGroup.d.ts +36 -0
- package/lib/components/display/List/ListHeader.d.ts +62 -0
- package/lib/components/display/List/ListItem.d.ts +19 -0
- package/lib/components/display/List/ListSearch.d.ts +32 -0
- package/lib/components/display/List/ListSkeleton.d.ts +27 -0
- package/lib/components/display/List/hooks/index.d.ts +5 -0
- package/lib/components/display/List/hooks/useListExpand.d.ts +6 -0
- package/lib/components/display/List/hooks/useListFilter.d.ts +6 -0
- package/lib/components/display/List/hooks/useListGroups.d.ts +6 -0
- package/lib/components/display/List/hooks/useListKeyboardNav.d.ts +6 -0
- package/lib/components/display/List/hooks/useListSelection.d.ts +6 -0
- package/lib/components/display/List/index.d.ts +11 -0
- package/lib/components/display/List/types.d.ts +485 -0
- package/lib/components/display/List/utils.d.ts +47 -0
- 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/Table/Table.d.ts +6 -0
- package/lib/components/display/Table/TableBody.d.ts +4 -0
- package/lib/components/display/Table/TableCell.d.ts +12 -0
- package/lib/components/display/Table/TableContext.d.ts +10 -0
- package/lib/components/display/Table/TableHeader.d.ts +4 -0
- package/lib/components/display/Table/TableRow.d.ts +9 -0
- package/lib/components/display/Table/TableSearch.d.ts +32 -0
- package/lib/components/display/Table/TableSkeleton.d.ts +12 -0
- package/lib/components/display/Table/hooks/index.d.ts +10 -0
- package/lib/components/display/Table/hooks/useInfiniteScroll.d.ts +11 -0
- package/lib/components/display/Table/hooks/useTableExpand.d.ts +10 -0
- package/lib/components/display/Table/hooks/useTableFilter.d.ts +22 -0
- package/lib/components/display/Table/hooks/useTableSelection.d.ts +16 -0
- package/lib/components/display/Table/hooks/useTableSort.d.ts +11 -0
- package/lib/components/display/Table/index.d.ts +13 -0
- package/lib/components/display/Table/types.d.ts +295 -0
- package/lib/components/display/Table/utils.d.ts +37 -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 +4 -0
- package/lib/components/dnd/DndProvider/DndContext.d.ts +91 -0
- package/lib/components/dnd/DndProvider/DndProvider.d.ts +37 -0
- package/lib/components/dnd/DndProvider/index.d.ts +3 -0
- package/lib/components/dnd/DragHandle/DragHandle.d.ts +41 -0
- package/lib/components/dnd/DragHandle/index.d.ts +2 -0
- package/lib/components/dnd/DragOverlay/DragOverlay.d.ts +39 -0
- package/lib/components/dnd/DragOverlay/index.d.ts +2 -0
- package/lib/components/dnd/KanbanBoard/KanbanBoard.d.ts +126 -0
- package/lib/components/dnd/KanbanBoard/KanbanBoardContext.d.ts +62 -0
- package/lib/components/dnd/KanbanBoard/KanbanCard.d.ts +76 -0
- package/lib/components/dnd/KanbanBoard/KanbanColumn.d.ts +43 -0
- package/lib/components/dnd/KanbanBoard/index.d.ts +5 -0
- package/lib/components/dnd/ResizablePanels/ResizablePanel.d.ts +53 -0
- package/lib/components/dnd/ResizablePanels/ResizablePanels.d.ts +43 -0
- package/lib/components/dnd/ResizablePanels/ResizablePanelsContext.d.ts +64 -0
- package/lib/components/dnd/ResizablePanels/ResizeHandle.d.ts +28 -0
- package/lib/components/dnd/ResizablePanels/index.d.ts +5 -0
- package/lib/components/dnd/SortableGrid/SortableGrid.d.ts +76 -0
- package/lib/components/dnd/SortableGrid/SortableGridItem.d.ts +47 -0
- package/lib/components/dnd/SortableGrid/index.d.ts +3 -0
- package/lib/components/dnd/SortableList/SortableItem.d.ts +76 -0
- package/lib/components/dnd/SortableList/SortableList.d.ts +98 -0
- package/lib/components/dnd/SortableList/SortableListContext.d.ts +42 -0
- package/lib/components/dnd/SortableList/index.d.ts +4 -0
- package/lib/components/dnd/hooks/index.d.ts +3 -0
- package/lib/components/dnd/hooks/useDraggable.d.ts +66 -0
- package/lib/components/dnd/hooks/useDroppable.d.ts +73 -0
- package/lib/components/dnd/hooks/useSortable.d.ts +94 -0
- package/lib/components/dnd/index.d.ts +8 -0
- package/lib/components/filters/FilterContext.d.ts +34 -0
- package/lib/components/filters/core/ActiveFilters/ActiveFilters.d.ts +16 -0
- package/lib/components/filters/core/ActiveFilters/index.d.ts +2 -0
- package/lib/components/filters/core/FilterField/FilterField.d.ts +17 -0
- package/lib/components/filters/core/FilterField/index.d.ts +2 -0
- package/lib/components/filters/core/FilterProvider/FilterProvider.d.ts +4 -0
- package/lib/components/filters/core/FilterProvider/index.d.ts +2 -0
- package/lib/components/filters/core/FilterSection/FilterSection.d.ts +16 -0
- package/lib/components/filters/core/FilterSection/index.d.ts +2 -0
- package/lib/components/filters/core/index.d.ts +7 -0
- package/lib/components/filters/fields/CheckboxFilter.d.ts +17 -0
- package/lib/components/filters/fields/DateFilter.d.ts +21 -0
- package/lib/components/filters/fields/DateRangeFilter.d.ts +19 -0
- package/lib/components/filters/fields/ListSelectFilter.d.ts +19 -0
- package/lib/components/filters/fields/MultiSelectFilter.d.ts +19 -0
- package/lib/components/filters/fields/NumberFilter.d.ts +19 -0
- package/lib/components/filters/fields/NumberRangeFilter.d.ts +19 -0
- package/lib/components/filters/fields/RatingFilter.d.ts +19 -0
- package/lib/components/filters/fields/SelectFilter.d.ts +21 -0
- package/lib/components/filters/fields/TextFilter.d.ts +21 -0
- package/lib/components/filters/fields/ToggleFilter.d.ts +17 -0
- package/lib/components/filters/fields/index.d.ts +25 -0
- package/lib/components/filters/hooks/index.d.ts +9 -0
- package/lib/components/filters/hooks/useFilter.d.ts +57 -0
- package/lib/components/filters/hooks/useFilterDependencies.d.ts +40 -0
- package/lib/components/filters/hooks/useFilterOptions.d.ts +70 -0
- package/lib/components/filters/index.d.ts +43 -0
- package/lib/components/filters/layouts/FilterAccordion/FilterAccordion.d.ts +15 -0
- package/lib/components/filters/layouts/FilterAccordion/index.d.ts +2 -0
- package/lib/components/filters/layouts/FilterBar/FilterBar.d.ts +18 -0
- package/lib/components/filters/layouts/FilterBar/index.d.ts +2 -0
- package/lib/components/filters/layouts/FilterModal/FilterModal.d.ts +24 -0
- package/lib/components/filters/layouts/FilterModal/index.d.ts +2 -0
- package/lib/components/filters/layouts/FilterPopover/FilterPopover.d.ts +19 -0
- package/lib/components/filters/layouts/FilterPopover/index.d.ts +2 -0
- package/lib/components/filters/layouts/FilterSidebar/FilterSidebar.d.ts +20 -0
- package/lib/components/filters/layouts/FilterSidebar/index.d.ts +2 -0
- package/lib/components/filters/layouts/index.d.ts +8 -0
- package/lib/components/filters/types.d.ts +937 -0
- package/lib/components/index.d.ts +52 -0
- package/lib/components/inputs/Checkbox/Checkbox.d.ts +2 -2
- 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/inputs/NumberInput/NumberInput.d.ts +3 -1
- 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
- package/README.md +0 -688
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the CollapsibleSidebar component
|
|
5
|
+
*/
|
|
6
|
+
export interface CollapsibleSidebarProps extends BaseComponentProps {
|
|
7
|
+
/**
|
|
8
|
+
* Controlled collapsed state
|
|
9
|
+
*/
|
|
10
|
+
collapsed?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Default collapsed state (uncontrolled)
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
defaultCollapsed?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Width when expanded (px)
|
|
18
|
+
* @default 240
|
|
19
|
+
*/
|
|
20
|
+
expandedWidth?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Width when collapsed (px)
|
|
23
|
+
* @default 64
|
|
24
|
+
*/
|
|
25
|
+
collapsedWidth?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Auto-collapse below this container width (px)
|
|
28
|
+
* Uses parent container width, not viewport
|
|
29
|
+
*/
|
|
30
|
+
collapseBreakpoint?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Auto-hide below this container width (px)
|
|
33
|
+
* Uses parent container width, not viewport
|
|
34
|
+
*/
|
|
35
|
+
hideBreakpoint?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Position of the sidebar
|
|
38
|
+
* @default 'left'
|
|
39
|
+
*/
|
|
40
|
+
position?: 'left' | 'right';
|
|
41
|
+
/**
|
|
42
|
+
* Callback when collapsed state changes
|
|
43
|
+
*/
|
|
44
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
45
|
+
/**
|
|
46
|
+
* Callback when hidden state changes (due to hideBreakpoint)
|
|
47
|
+
*/
|
|
48
|
+
onHiddenChange?: (hidden: boolean) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Animation duration (ms)
|
|
51
|
+
* @default 250
|
|
52
|
+
*/
|
|
53
|
+
animationDuration?: number;
|
|
54
|
+
/**
|
|
55
|
+
* Animation easing
|
|
56
|
+
* @default 'ease-in-out'
|
|
57
|
+
*/
|
|
58
|
+
animationEasing?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Header content (always visible, above scrollable content)
|
|
61
|
+
*/
|
|
62
|
+
header?: React.ReactNode;
|
|
63
|
+
/**
|
|
64
|
+
* Footer content (always visible, below scrollable content)
|
|
65
|
+
*/
|
|
66
|
+
footer?: React.ReactNode;
|
|
67
|
+
/**
|
|
68
|
+
* Main content of the sidebar
|
|
69
|
+
*/
|
|
70
|
+
children: React.ReactNode;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* CollapsibleSidebar - A sidebar that collapses based on container width or user interaction
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* Basic usage:
|
|
77
|
+
* ```tsx
|
|
78
|
+
* <CollapsibleSidebar
|
|
79
|
+
* header={<Logo />}
|
|
80
|
+
* footer={<UserProfile />}
|
|
81
|
+
* >
|
|
82
|
+
* <NavItem icon={<HomeIcon />}>Home</NavItem>
|
|
83
|
+
* <NavItem icon={<SettingsIcon />}>Settings</NavItem>
|
|
84
|
+
* </CollapsibleSidebar>
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* Controlled collapsed state:
|
|
89
|
+
* ```tsx
|
|
90
|
+
* const [collapsed, setCollapsed] = useState(false);
|
|
91
|
+
*
|
|
92
|
+
* <CollapsibleSidebar
|
|
93
|
+
* collapsed={collapsed}
|
|
94
|
+
* onCollapsedChange={setCollapsed}
|
|
95
|
+
* collapseBreakpoint={768}
|
|
96
|
+
* >
|
|
97
|
+
* {navItems}
|
|
98
|
+
* </CollapsibleSidebar>
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* Auto-hide on small screens:
|
|
103
|
+
* ```tsx
|
|
104
|
+
* <CollapsibleSidebar
|
|
105
|
+
* collapseBreakpoint={1024}
|
|
106
|
+
* hideBreakpoint={768}
|
|
107
|
+
* >
|
|
108
|
+
* {navItems}
|
|
109
|
+
* </CollapsibleSidebar>
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare const CollapsibleSidebar: React.ForwardRefExoticComponent<CollapsibleSidebarProps & React.RefAttributes<HTMLDivElement>>;
|
|
113
|
+
export default CollapsibleSidebar;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps, ComponentSize } from '../../../types';
|
|
3
|
+
import { IconName } from '../../display/Icon';
|
|
4
|
+
export type NavLinkVariant = 'default' | 'underline' | 'pill' | 'ghost';
|
|
5
|
+
export interface NavLinkProps extends BaseComponentProps {
|
|
6
|
+
/**
|
|
7
|
+
* Link destination
|
|
8
|
+
*/
|
|
9
|
+
href: string;
|
|
10
|
+
/**
|
|
11
|
+
* Whether link is active
|
|
12
|
+
*/
|
|
13
|
+
active?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Icon to display
|
|
16
|
+
*/
|
|
17
|
+
icon?: React.ReactNode | IconName;
|
|
18
|
+
/**
|
|
19
|
+
* Icon position
|
|
20
|
+
* @default 'start'
|
|
21
|
+
*/
|
|
22
|
+
iconPosition?: 'start' | 'end';
|
|
23
|
+
/**
|
|
24
|
+
* Visual variant
|
|
25
|
+
* @default 'default'
|
|
26
|
+
*/
|
|
27
|
+
variant?: NavLinkVariant;
|
|
28
|
+
/**
|
|
29
|
+
* Size
|
|
30
|
+
* @default 'md'
|
|
31
|
+
*/
|
|
32
|
+
size?: ComponentSize;
|
|
33
|
+
/**
|
|
34
|
+
* Whether link is disabled
|
|
35
|
+
*/
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Click handler
|
|
39
|
+
*/
|
|
40
|
+
onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
41
|
+
/**
|
|
42
|
+
* Link content
|
|
43
|
+
*/
|
|
44
|
+
children: React.ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Target attribute
|
|
47
|
+
*/
|
|
48
|
+
target?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Rel attribute (defaults to 'noopener noreferrer' when target='_blank')
|
|
51
|
+
*/
|
|
52
|
+
rel?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* NavLink - Reusable navigation link with active state support
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```tsx
|
|
59
|
+
* // Basic usage
|
|
60
|
+
* <NavLink href="/home">Home</NavLink>
|
|
61
|
+
*
|
|
62
|
+
* // With icon
|
|
63
|
+
* <NavLink href="/settings" icon="settings">Settings</NavLink>
|
|
64
|
+
*
|
|
65
|
+
* // Active state
|
|
66
|
+
* <NavLink href="/dashboard" active>Dashboard</NavLink>
|
|
67
|
+
*
|
|
68
|
+
* // Different variants
|
|
69
|
+
* <NavLink href="/about" variant="underline">About</NavLink>
|
|
70
|
+
* <NavLink href="/profile" variant="pill" active>Profile</NavLink>
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare const NavLink: React.ForwardRefExoticComponent<NavLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
74
|
+
export default NavLink;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps, ComponentSize } from '../../../types';
|
|
3
|
+
import { NavbarVariant, NavbarPosition } from './NavbarContext';
|
|
4
|
+
export interface NavbarProps extends BaseComponentProps {
|
|
5
|
+
/**
|
|
6
|
+
* Visual variant
|
|
7
|
+
* @default 'solid'
|
|
8
|
+
*/
|
|
9
|
+
variant?: NavbarVariant;
|
|
10
|
+
/**
|
|
11
|
+
* Position behavior
|
|
12
|
+
* @default 'sticky'
|
|
13
|
+
*/
|
|
14
|
+
position?: NavbarPosition;
|
|
15
|
+
/**
|
|
16
|
+
* Size (height)
|
|
17
|
+
* @default 'md'
|
|
18
|
+
*/
|
|
19
|
+
size?: ComponentSize;
|
|
20
|
+
/**
|
|
21
|
+
* Alignment of nav items
|
|
22
|
+
* @default 'left'
|
|
23
|
+
*/
|
|
24
|
+
alignment?: 'left' | 'center';
|
|
25
|
+
/**
|
|
26
|
+
* Controlled expanded state (mobile menu)
|
|
27
|
+
*/
|
|
28
|
+
expanded?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Default expanded state
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
defaultExpanded?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Callback when mobile menu toggles
|
|
36
|
+
*/
|
|
37
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Breakpoint for mobile collapse (px)
|
|
40
|
+
* @default 768
|
|
41
|
+
*/
|
|
42
|
+
collapseBreakpoint?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Children (NavbarBrand, NavbarNav, NavbarActions)
|
|
45
|
+
*/
|
|
46
|
+
children: React.ReactNode;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Navbar - Top navigation bar for branding and primary navigation
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* // Basic usage
|
|
54
|
+
* <Navbar>
|
|
55
|
+
* <NavbarBrand href="/">
|
|
56
|
+
* <Logo />
|
|
57
|
+
* <span>My App</span>
|
|
58
|
+
* </NavbarBrand>
|
|
59
|
+
* <NavbarNav>
|
|
60
|
+
* <NavLink href="/home">Home</NavLink>
|
|
61
|
+
* <NavLink href="/about">About</NavLink>
|
|
62
|
+
* </NavbarNav>
|
|
63
|
+
* <NavbarActions>
|
|
64
|
+
* <Button>Sign In</Button>
|
|
65
|
+
* </NavbarActions>
|
|
66
|
+
* </Navbar>
|
|
67
|
+
*
|
|
68
|
+
* // With mobile menu
|
|
69
|
+
* <Navbar>
|
|
70
|
+
* <NavbarBrand href="/">Logo</NavbarBrand>
|
|
71
|
+
* <NavbarToggle />
|
|
72
|
+
* <NavbarCollapse>
|
|
73
|
+
* <NavbarNav>
|
|
74
|
+
* <NavLink href="/home">Home</NavLink>
|
|
75
|
+
* </NavbarNav>
|
|
76
|
+
* </NavbarCollapse>
|
|
77
|
+
* </Navbar>
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare const Navbar: React.ForwardRefExoticComponent<NavbarProps & React.RefAttributes<HTMLElement>>;
|
|
81
|
+
export default Navbar;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps } from '../../../types';
|
|
3
|
+
export interface NavbarActionsProps extends BaseComponentProps {
|
|
4
|
+
/**
|
|
5
|
+
* Action elements (buttons, menu, etc.)
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* NavbarActions - Actions slot for buttons, user menu, etc.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <NavbarActions>
|
|
15
|
+
* <Button variant="ghost">Sign In</Button>
|
|
16
|
+
* <Button variant="primary">Sign Up</Button>
|
|
17
|
+
* </NavbarActions>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const NavbarActions: React.ForwardRefExoticComponent<NavbarActionsProps & React.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
export default NavbarActions;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps } from '../../../types';
|
|
3
|
+
export interface NavbarBrandProps extends BaseComponentProps {
|
|
4
|
+
/**
|
|
5
|
+
* Brand content (logo, text, etc.)
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Link href
|
|
10
|
+
*/
|
|
11
|
+
href?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Click handler
|
|
14
|
+
*/
|
|
15
|
+
onClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLDivElement>) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* NavbarBrand - Logo/branding slot for the Navbar
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <NavbarBrand href="/">
|
|
23
|
+
* <Logo />
|
|
24
|
+
* <span>My App</span>
|
|
25
|
+
* </NavbarBrand>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare const NavbarBrand: React.ForwardRefExoticComponent<NavbarBrandProps & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
+
export default NavbarBrand;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps } from '../../../types';
|
|
3
|
+
export interface NavbarCollapseProps extends BaseComponentProps {
|
|
4
|
+
/**
|
|
5
|
+
* Content to show in collapsed mobile menu
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* NavbarCollapse - Collapsible container for mobile menu content
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <NavbarCollapse>
|
|
15
|
+
* <NavbarNav>
|
|
16
|
+
* <NavLink href="/home">Home</NavLink>
|
|
17
|
+
* <NavLink href="/about">About</NavLink>
|
|
18
|
+
* </NavbarNav>
|
|
19
|
+
* <NavbarActions>
|
|
20
|
+
* <Button>Sign In</Button>
|
|
21
|
+
* </NavbarActions>
|
|
22
|
+
* </NavbarCollapse>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare const NavbarCollapse: React.ForwardRefExoticComponent<NavbarCollapseProps & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
export default NavbarCollapse;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ComponentSize } from '../../../types';
|
|
2
|
+
export type NavbarVariant = 'solid' | 'transparent' | 'blur';
|
|
3
|
+
export type NavbarPosition = 'fixed' | 'sticky' | 'static';
|
|
4
|
+
export interface NavbarContextValue {
|
|
5
|
+
/**
|
|
6
|
+
* Unique ID for this navbar instance
|
|
7
|
+
*/
|
|
8
|
+
navbarId: string;
|
|
9
|
+
/**
|
|
10
|
+
* Visual variant
|
|
11
|
+
*/
|
|
12
|
+
variant: NavbarVariant;
|
|
13
|
+
/**
|
|
14
|
+
* Size (height)
|
|
15
|
+
*/
|
|
16
|
+
size: ComponentSize;
|
|
17
|
+
/**
|
|
18
|
+
* Position behavior
|
|
19
|
+
*/
|
|
20
|
+
position: NavbarPosition;
|
|
21
|
+
/**
|
|
22
|
+
* Whether mobile menu is expanded
|
|
23
|
+
*/
|
|
24
|
+
isExpanded: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Toggle mobile menu
|
|
27
|
+
*/
|
|
28
|
+
setExpanded: (expanded: boolean) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Toggle function for convenience
|
|
31
|
+
*/
|
|
32
|
+
toggle: () => void;
|
|
33
|
+
/**
|
|
34
|
+
* Alignment of nav items
|
|
35
|
+
*/
|
|
36
|
+
alignment: 'left' | 'center';
|
|
37
|
+
/**
|
|
38
|
+
* Whether navbar is in mobile mode
|
|
39
|
+
*/
|
|
40
|
+
isMobile: boolean;
|
|
41
|
+
}
|
|
42
|
+
export declare const NavbarContext: import('react').Context<NavbarContextValue | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Hook to access navbar context (returns null if outside Navbar)
|
|
45
|
+
*/
|
|
46
|
+
export declare function useNavbarContext(): NavbarContextValue | null;
|
|
47
|
+
/**
|
|
48
|
+
* Hook to access navbar context (throws if outside Navbar)
|
|
49
|
+
*/
|
|
50
|
+
export declare function useNavbarContextStrict(): NavbarContextValue;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps } from '../../../types';
|
|
3
|
+
export interface NavbarNavProps extends BaseComponentProps {
|
|
4
|
+
/**
|
|
5
|
+
* Navigation items
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* NavbarNav - Navigation links container for the Navbar
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <NavbarNav>
|
|
15
|
+
* <NavLink href="/home">Home</NavLink>
|
|
16
|
+
* <NavLink href="/about">About</NavLink>
|
|
17
|
+
* <NavLink href="/contact">Contact</NavLink>
|
|
18
|
+
* </NavbarNav>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare const NavbarNav: React.ForwardRefExoticComponent<NavbarNavProps & React.RefAttributes<HTMLElement>>;
|
|
22
|
+
export default NavbarNav;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps } from '../../../types';
|
|
3
|
+
export interface NavbarToggleProps extends BaseComponentProps {
|
|
4
|
+
/**
|
|
5
|
+
* Custom toggle icon
|
|
6
|
+
*/
|
|
7
|
+
icon?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* NavbarToggle - Mobile hamburger menu button
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <NavbarToggle />
|
|
15
|
+
*
|
|
16
|
+
* // With custom icon
|
|
17
|
+
* <NavbarToggle icon={<CustomIcon />} />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const NavbarToggle: React.ForwardRefExoticComponent<NavbarToggleProps & React.RefAttributes<HTMLButtonElement>>;
|
|
21
|
+
export default NavbarToggle;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { Navbar } from './Navbar';
|
|
2
|
+
export type { NavbarProps } from './Navbar';
|
|
3
|
+
export { default } from './Navbar';
|
|
4
|
+
export { NavbarBrand } from './NavbarBrand';
|
|
5
|
+
export type { NavbarBrandProps } from './NavbarBrand';
|
|
6
|
+
export { NavbarNav } from './NavbarNav';
|
|
7
|
+
export type { NavbarNavProps } from './NavbarNav';
|
|
8
|
+
export { NavbarActions } from './NavbarActions';
|
|
9
|
+
export type { NavbarActionsProps } from './NavbarActions';
|
|
10
|
+
export { NavbarToggle } from './NavbarToggle';
|
|
11
|
+
export type { NavbarToggleProps } from './NavbarToggle';
|
|
12
|
+
export { NavbarCollapse } from './NavbarCollapse';
|
|
13
|
+
export type { NavbarCollapseProps } from './NavbarCollapse';
|
|
14
|
+
export { NavbarContext, useNavbarContext, useNavbarContextStrict } from './NavbarContext';
|
|
15
|
+
export type { NavbarContextValue, NavbarVariant, NavbarPosition } from './NavbarContext';
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps, ComponentSize } from '../../../types';
|
|
3
|
+
export type PaginationVariant = 'default' | 'outlined' | 'minimal';
|
|
4
|
+
export type PaginationShape = 'rounded' | 'circular' | 'square';
|
|
5
|
+
export interface PaginationProps extends BaseComponentProps {
|
|
6
|
+
/**
|
|
7
|
+
* Total number of pages
|
|
8
|
+
*/
|
|
9
|
+
totalPages: number;
|
|
10
|
+
/**
|
|
11
|
+
* Current page (1-indexed)
|
|
12
|
+
*/
|
|
13
|
+
currentPage: number;
|
|
14
|
+
/**
|
|
15
|
+
* Callback when page changes
|
|
16
|
+
*/
|
|
17
|
+
onPageChange: (page: number) => void;
|
|
18
|
+
/**
|
|
19
|
+
* Number of page buttons to show on each side of current page
|
|
20
|
+
* @default 1
|
|
21
|
+
*/
|
|
22
|
+
siblingCount?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Number of boundary pages to show at start and end
|
|
25
|
+
* @default 1
|
|
26
|
+
*/
|
|
27
|
+
boundaryCount?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Show first/last page buttons
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
showFirstLast?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Show prev/next buttons
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
showPrevNext?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Size
|
|
40
|
+
* @default 'md'
|
|
41
|
+
*/
|
|
42
|
+
size?: ComponentSize;
|
|
43
|
+
/**
|
|
44
|
+
* Visual variant
|
|
45
|
+
* @default 'default'
|
|
46
|
+
*/
|
|
47
|
+
variant?: PaginationVariant;
|
|
48
|
+
/**
|
|
49
|
+
* Shape of page buttons
|
|
50
|
+
* @default 'rounded'
|
|
51
|
+
*/
|
|
52
|
+
shape?: PaginationShape;
|
|
53
|
+
/**
|
|
54
|
+
* Whether to disable component
|
|
55
|
+
*/
|
|
56
|
+
disabled?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Custom labels
|
|
59
|
+
*/
|
|
60
|
+
labels?: {
|
|
61
|
+
first?: string;
|
|
62
|
+
last?: string;
|
|
63
|
+
prev?: string;
|
|
64
|
+
next?: string;
|
|
65
|
+
page?: (page: number) => string;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Pagination - Page navigation for paginated content
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* // Basic usage
|
|
74
|
+
* <Pagination
|
|
75
|
+
* totalPages={10}
|
|
76
|
+
* currentPage={currentPage}
|
|
77
|
+
* onPageChange={setCurrentPage}
|
|
78
|
+
* />
|
|
79
|
+
*
|
|
80
|
+
* // With custom sibling count
|
|
81
|
+
* <Pagination
|
|
82
|
+
* totalPages={20}
|
|
83
|
+
* currentPage={currentPage}
|
|
84
|
+
* onPageChange={setCurrentPage}
|
|
85
|
+
* siblingCount={2}
|
|
86
|
+
* />
|
|
87
|
+
*
|
|
88
|
+
* // Minimal style without first/last
|
|
89
|
+
* <Pagination
|
|
90
|
+
* totalPages={10}
|
|
91
|
+
* currentPage={currentPage}
|
|
92
|
+
* onPageChange={setCurrentPage}
|
|
93
|
+
* variant="minimal"
|
|
94
|
+
* showFirstLast={false}
|
|
95
|
+
* />
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
export declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
|
|
99
|
+
export default Pagination;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BaseComponentProps } from '../../../types';
|
|
3
|
+
export interface SideNavProps extends BaseComponentProps {
|
|
4
|
+
/**
|
|
5
|
+
* Position of the sidebar
|
|
6
|
+
* @default 'left'
|
|
7
|
+
*/
|
|
8
|
+
position?: 'left' | 'right';
|
|
9
|
+
/**
|
|
10
|
+
* Controlled collapsed state (icon-only mode)
|
|
11
|
+
*/
|
|
12
|
+
collapsed?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Default collapsed state
|
|
15
|
+
* @default false
|
|
16
|
+
*/
|
|
17
|
+
defaultCollapsed?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Callback when collapse state changes
|
|
20
|
+
*/
|
|
21
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Width when expanded (px)
|
|
24
|
+
* @default 240
|
|
25
|
+
*/
|
|
26
|
+
expandedWidth?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Width when collapsed (px)
|
|
29
|
+
* @default 64
|
|
30
|
+
*/
|
|
31
|
+
collapsedWidth?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Currently selected item value (controlled)
|
|
34
|
+
*/
|
|
35
|
+
selectedValue?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Default selected item value
|
|
38
|
+
*/
|
|
39
|
+
defaultSelectedValue?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Callback when selection changes
|
|
42
|
+
*/
|
|
43
|
+
onSelect?: (value: string) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Header content
|
|
46
|
+
*/
|
|
47
|
+
header?: React.ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Footer content
|
|
50
|
+
*/
|
|
51
|
+
footer?: React.ReactNode;
|
|
52
|
+
/**
|
|
53
|
+
* Navigation items
|
|
54
|
+
*/
|
|
55
|
+
children: React.ReactNode;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* SideNav - Side navigation panel with icons, labels, and nesting support
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```tsx
|
|
62
|
+
* // Basic usage
|
|
63
|
+
* <SideNav>
|
|
64
|
+
* <SideNavItem value="home" icon="Home" label="Home" />
|
|
65
|
+
* <SideNavItem value="settings" icon="Settings" label="Settings" />
|
|
66
|
+
* </SideNav>
|
|
67
|
+
*
|
|
68
|
+
* // With groups
|
|
69
|
+
* <SideNav selectedValue="profile" onSelect={handleSelect}>
|
|
70
|
+
* <SideNavItem value="dashboard" icon="Home" label="Dashboard" />
|
|
71
|
+
* <SideNavGroup groupId="settings" label="Settings" icon="Settings">
|
|
72
|
+
* <SideNavItem value="profile" label="Profile" />
|
|
73
|
+
* <SideNavItem value="security" label="Security" />
|
|
74
|
+
* </SideNavGroup>
|
|
75
|
+
* <SideNavDivider label="Other" />
|
|
76
|
+
* <SideNavItem value="help" icon="HelpCircle" label="Help" />
|
|
77
|
+
* </SideNav>
|
|
78
|
+
*
|
|
79
|
+
* // With header and footer
|
|
80
|
+
* <SideNav
|
|
81
|
+
* header={<Logo />}
|
|
82
|
+
* footer={<UserProfile />}
|
|
83
|
+
* >
|
|
84
|
+
* {navItems}
|
|
85
|
+
* </SideNav>
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare const SideNav: React.ForwardRefExoticComponent<SideNavProps & React.RefAttributes<HTMLElement>>;
|
|
89
|
+
export default SideNav;
|