@campxdev/react-blueprint 3.0.0-alpha.5 → 3.0.0-alpha.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/dist/cjs/index.js +1 -1
- package/dist/cjs/types/src/components/Assets/ErrorPages/ComingSoon.d.ts +24 -0
- package/dist/cjs/types/src/components/Assets/ErrorPages/InternalServerError.d.ts +20 -0
- package/dist/cjs/types/src/components/Assets/ErrorPages/NoInternetConnection.d.ts +20 -0
- package/dist/cjs/types/src/components/Assets/ErrorPages/NoItemFound.d.ts +28 -0
- package/dist/cjs/types/src/components/Assets/ErrorPages/PageNotFound.d.ts +21 -0
- package/dist/cjs/types/src/components/Assets/ErrorPages/ResourceNotFound.d.ts +21 -0
- package/dist/cjs/types/src/components/Assets/ErrorPages/UnAuthorized.d.ts +31 -0
- package/dist/cjs/types/src/components/Assets/Icons/Icons.d.ts +54 -0
- package/dist/cjs/types/src/components/Charts/BarChart/BarChart.d.ts +38 -0
- package/dist/cjs/types/src/components/Charts/BarChart/HorizontalBarChart.d.ts +93 -0
- package/dist/cjs/types/src/components/Charts/BarChart/VerticalBarChart.d.ts +110 -0
- package/dist/cjs/types/src/components/Charts/LineChart/LineChart.d.ts +89 -0
- package/dist/cjs/types/src/components/Charts/PieChart/PieChart.d.ts +86 -0
- package/dist/cjs/types/src/components/Charts/TreeMap/TreeMap.d.ts +74 -0
- package/dist/cjs/types/src/components/DataDisplay/Accordion/Accordion.d.ts +54 -0
- package/dist/cjs/types/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.d.ts +35 -0
- package/dist/cjs/types/src/components/DataDisplay/ActivityLogView/ActivityLogView.d.ts +78 -0
- package/dist/cjs/types/src/components/DataDisplay/Avatar/Avatar.d.ts +40 -0
- package/dist/cjs/types/src/components/DataDisplay/Chip/Chip.d.ts +28 -0
- package/dist/cjs/types/src/components/DataDisplay/Chips/Chips.d.ts +55 -0
- package/dist/cjs/types/src/components/DataDisplay/DataTable/DataTable.d.ts +95 -0
- package/dist/cjs/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
- package/dist/cjs/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
- package/dist/cjs/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
- package/dist/cjs/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
- package/dist/cjs/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
- package/dist/cjs/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
- package/dist/cjs/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
- package/dist/cjs/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
- package/dist/cjs/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
- package/dist/cjs/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
- package/dist/cjs/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
- package/dist/cjs/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
- package/dist/cjs/types/src/components/Input/Button/Button.d.ts +26 -0
- package/dist/cjs/types/src/components/Input/DatePicker/DatePicker.d.ts +41 -0
- package/dist/cjs/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +42 -0
- package/dist/cjs/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
- package/dist/cjs/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
- package/dist/cjs/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
- package/dist/cjs/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
- package/dist/cjs/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
- package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
- package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
- package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
- package/dist/cjs/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
- package/dist/cjs/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
- package/dist/cjs/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
- package/dist/cjs/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
- package/dist/cjs/types/src/components/Input/MultiSelect/MultiSelect.d.ts +40 -0
- package/dist/cjs/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
- package/dist/cjs/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
- package/dist/cjs/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
- package/dist/cjs/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
- package/dist/cjs/types/src/components/Input/Select/Select.d.ts +32 -0
- package/dist/cjs/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
- package/dist/cjs/types/src/components/Input/SingleSelect/SingleSelect.d.ts +40 -0
- package/dist/cjs/types/src/components/Input/Switch/Switch.d.ts +23 -0
- package/dist/cjs/types/src/components/Input/Tags/Tags.d.ts +26 -0
- package/dist/cjs/types/src/components/Input/TextField/TextField.d.ts +35 -0
- package/dist/cjs/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
- package/dist/cjs/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
- package/dist/cjs/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
- package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
- package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
- package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
- package/dist/cjs/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
- package/dist/cjs/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
- package/dist/cjs/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
- package/dist/cjs/types/src/components/Layout/AppLayout/types.d.ts +1 -1
- package/dist/cjs/types/src/components/Layout/PageContent/PageContent.d.ts +19 -0
- package/dist/cjs/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
- package/dist/cjs/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
- package/dist/cjs/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
- package/dist/cjs/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
- package/dist/cjs/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
- package/dist/cjs/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
- package/dist/cjs/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
- package/dist/cjs/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
- package/dist/cjs/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
- package/dist/cjs/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
- package/dist/cjs/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
- package/dist/cjs/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +80 -0
- package/dist/cjs/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/types/src/components/Assets/ErrorPages/ComingSoon.d.ts +24 -0
- package/dist/esm/types/src/components/Assets/ErrorPages/InternalServerError.d.ts +20 -0
- package/dist/esm/types/src/components/Assets/ErrorPages/NoInternetConnection.d.ts +20 -0
- package/dist/esm/types/src/components/Assets/ErrorPages/NoItemFound.d.ts +28 -0
- package/dist/esm/types/src/components/Assets/ErrorPages/PageNotFound.d.ts +21 -0
- package/dist/esm/types/src/components/Assets/ErrorPages/ResourceNotFound.d.ts +21 -0
- package/dist/esm/types/src/components/Assets/ErrorPages/UnAuthorized.d.ts +31 -0
- package/dist/esm/types/src/components/Assets/Icons/Icons.d.ts +54 -0
- package/dist/esm/types/src/components/Charts/BarChart/BarChart.d.ts +38 -0
- package/dist/esm/types/src/components/Charts/BarChart/HorizontalBarChart.d.ts +93 -0
- package/dist/esm/types/src/components/Charts/BarChart/VerticalBarChart.d.ts +110 -0
- package/dist/esm/types/src/components/Charts/LineChart/LineChart.d.ts +89 -0
- package/dist/esm/types/src/components/Charts/PieChart/PieChart.d.ts +86 -0
- package/dist/esm/types/src/components/Charts/TreeMap/TreeMap.d.ts +74 -0
- package/dist/esm/types/src/components/DataDisplay/Accordion/Accordion.d.ts +54 -0
- package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.d.ts +35 -0
- package/dist/esm/types/src/components/DataDisplay/ActivityLogView/ActivityLogView.d.ts +78 -0
- package/dist/esm/types/src/components/DataDisplay/Avatar/Avatar.d.ts +40 -0
- package/dist/esm/types/src/components/DataDisplay/Chip/Chip.d.ts +28 -0
- package/dist/esm/types/src/components/DataDisplay/Chips/Chips.d.ts +55 -0
- package/dist/esm/types/src/components/DataDisplay/DataTable/DataTable.d.ts +95 -0
- package/dist/esm/types/src/components/DataDisplay/DataTable/components/TablePagination.d.ts +35 -0
- package/dist/esm/types/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.d.ts +30 -0
- package/dist/esm/types/src/components/DataDisplay/ReactJoyride/ReactJoyride.d.ts +64 -0
- package/dist/esm/types/src/components/DataDisplay/Separator/Separator.d.ts +30 -0
- package/dist/esm/types/src/components/DataDisplay/Skeleton/Skeleton.d.ts +20 -0
- package/dist/esm/types/src/components/DataDisplay/StatusCard/StatusCard.d.ts +36 -0
- package/dist/esm/types/src/components/DataDisplay/Timeline/Timeline.d.ts +58 -0
- package/dist/esm/types/src/components/DataDisplay/Typography/Typography.d.ts +25 -0
- package/dist/esm/types/src/components/Feedback/Alert/Alert.d.ts +31 -0
- package/dist/esm/types/src/components/Feedback/Snackbar/Snackbar.d.ts +54 -0
- package/dist/esm/types/src/components/Feedback/Spinner/Spinner.d.ts +15 -0
- package/dist/esm/types/src/components/Feedback/Tooltip/Tooltip.d.ts +54 -0
- package/dist/esm/types/src/components/Input/Button/Button.d.ts +26 -0
- package/dist/esm/types/src/components/Input/DatePicker/DatePicker.d.ts +41 -0
- package/dist/esm/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +42 -0
- package/dist/esm/types/src/components/Input/FileUpload/FileUpload.d.ts +41 -0
- package/dist/esm/types/src/components/Input/FormActions/FormActions.d.ts +37 -0
- package/dist/esm/types/src/components/Input/FormControlWrapper/FormControlWrapper.d.ts +31 -0
- package/dist/esm/types/src/components/Input/FormWrapper/FormWrapper.d.ts +20 -0
- package/dist/esm/types/src/components/Input/HelpButton/HelpButton.d.ts +14 -0
- package/dist/esm/types/src/components/Input/IconButtons/IconButtons/DeleteButton.d.ts +16 -0
- package/dist/esm/types/src/components/Input/IconButtons/IconButtons/EditButton.d.ts +16 -0
- package/dist/esm/types/src/components/Input/IconButtons/IconButtons/RedirectButton.d.ts +16 -0
- package/dist/esm/types/src/components/Input/IconButtons/IconButtons/ViewButton.d.ts +16 -0
- package/dist/esm/types/src/components/Input/IconButtons/IconButtons.d.ts +18 -0
- package/dist/esm/types/src/components/Input/LabelWrapper/LabelWrapper.d.ts +26 -0
- package/dist/esm/types/src/components/Input/MultiCheckBox/MultiCheckBox.d.ts +34 -0
- package/dist/esm/types/src/components/Input/MultiSelect/MultiSelect.d.ts +40 -0
- package/dist/esm/types/src/components/Input/OtpInput/OtpInput.d.ts +29 -0
- package/dist/esm/types/src/components/Input/PasswordField/PasswordField.d.ts +34 -0
- package/dist/esm/types/src/components/Input/RadioGroup/RadioGroup.d.ts +38 -0
- package/dist/esm/types/src/components/Input/SearchBar/SearchBar.d.ts +26 -0
- package/dist/esm/types/src/components/Input/Select/Select.d.ts +32 -0
- package/dist/esm/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
- package/dist/esm/types/src/components/Input/SingleSelect/SingleSelect.d.ts +40 -0
- package/dist/esm/types/src/components/Input/Switch/Switch.d.ts +23 -0
- package/dist/esm/types/src/components/Input/Tags/Tags.d.ts +26 -0
- package/dist/esm/types/src/components/Input/TextField/TextField.d.ts +35 -0
- package/dist/esm/types/src/components/Input/Textarea/Textarea.d.ts +36 -0
- package/dist/esm/types/src/components/Layout/AppLayout/AppLayout.d.ts +32 -0
- package/dist/esm/types/src/components/Layout/AppLayout/components/MenuToggleButton.d.ts +16 -0
- package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuBar.d.ts +26 -0
- package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/MenuItem.d.ts +37 -0
- package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/Sidebar.d.ts +30 -1
- package/dist/esm/types/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.d.ts +139 -0
- package/dist/esm/types/src/components/Layout/AppLayout/components/UserProfilePopup.d.ts +34 -0
- package/dist/esm/types/src/components/Layout/AppLayout/context/SidebarContext.d.ts +48 -0
- package/dist/esm/types/src/components/Layout/AppLayout/types.d.ts +1 -1
- package/dist/esm/types/src/components/Layout/PageContent/PageContent.d.ts +19 -0
- package/dist/esm/types/src/components/Layout/PageHeader/PageHeader.d.ts +46 -0
- package/dist/esm/types/src/components/Layout/PageHeader/components/SearchBar.d.ts +22 -0
- package/dist/esm/types/src/components/Layout/UserBox/UserBox.d.ts +40 -0
- package/dist/esm/types/src/components/Navigation/Breadcrumbs/Breadcrumbs.d.ts +33 -0
- package/dist/esm/types/src/components/Navigation/Calendar/Calendar.d.ts +63 -0
- package/dist/esm/types/src/components/Navigation/ConfirmDialog/ConfirmDialog.d.ts +64 -0
- package/dist/esm/types/src/components/Navigation/Dialog/Dialog.d.ts +55 -0
- package/dist/esm/types/src/components/Navigation/DialogButton/DialogButton.d.ts +64 -0
- package/dist/esm/types/src/components/Navigation/DropDownMenu/DropDownMenu.d.ts +73 -0
- package/dist/esm/types/src/components/Navigation/PreviewFiles/PreviewFiles.d.ts +54 -0
- package/dist/esm/types/src/components/Navigation/Stepper/Stepper.d.ts +55 -10
- package/dist/esm/types/src/components/Navigation/TabsContainer/TabsContainer.d.ts +80 -0
- package/dist/esm/types/src/components/Navigation/UploadDialog/UploadDialog.d.ts +64 -0
- package/dist/index.d.ts +2953 -12
- package/dist/styles.css +30 -9
- package/package.json +1 -1
- package/src/components/Assets/ErrorPages/ComingSoon.tsx +24 -0
- package/src/components/Assets/ErrorPages/InternalServerError.tsx +20 -0
- package/src/components/Assets/ErrorPages/NoInternetConnection.tsx +20 -0
- package/src/components/Assets/ErrorPages/NoItemFound.tsx +28 -0
- package/src/components/Assets/ErrorPages/PageNotFound.tsx +21 -0
- package/src/components/Assets/ErrorPages/ResourceNotFound.tsx +21 -0
- package/src/components/Assets/ErrorPages/UnAuthorized.tsx +31 -0
- package/src/components/Assets/Icons/Icons.tsx +55 -1
- package/src/components/Charts/BarChart/BarChart.tsx +38 -0
- package/src/components/Charts/BarChart/HorizontalBarChart.tsx +93 -0
- package/src/components/Charts/BarChart/VerticalBarChart.tsx +110 -0
- package/src/components/Charts/LineChart/LineChart.tsx +89 -0
- package/src/components/Charts/PieChart/PieChart.tsx +86 -0
- package/src/components/Charts/TreeMap/TreeMap.tsx +90 -0
- package/src/components/DataDisplay/Accordion/Accordion.tsx +54 -0
- package/src/components/DataDisplay/ActivityLogView/ActivityLogFilter.tsx +35 -0
- package/src/components/DataDisplay/ActivityLogView/ActivityLogView.tsx +84 -0
- package/src/components/DataDisplay/Avatar/Avatar.tsx +40 -0
- package/src/components/DataDisplay/Chip/Chip.tsx +28 -0
- package/src/components/DataDisplay/Chips/Chips.tsx +56 -0
- package/src/components/DataDisplay/DataTable/DataTable.tsx +95 -0
- package/src/components/DataDisplay/DataTable/components/TablePagination.tsx +35 -0
- package/src/components/DataDisplay/EmptyIllustration/EmptyIllustration.tsx +31 -0
- package/src/components/DataDisplay/ReactJoyride/ReactJoyride.tsx +64 -0
- package/src/components/DataDisplay/Separator/Separator.tsx +32 -0
- package/src/components/DataDisplay/Skeleton/Skeleton.tsx +20 -0
- package/src/components/DataDisplay/StatusCard/StatusCard.tsx +36 -0
- package/src/components/DataDisplay/Timeline/Timeline.tsx +58 -0
- package/src/components/DataDisplay/Typography/Typography.tsx +25 -0
- package/src/components/Feedback/Alert/Alert.tsx +38 -0
- package/src/components/Feedback/Snackbar/Snackbar.tsx +54 -0
- package/src/components/Feedback/Spinner/Spinner.tsx +15 -0
- package/src/components/Feedback/Tooltip/Tooltip.tsx +54 -0
- package/src/components/Input/Button/Button.tsx +26 -0
- package/src/components/Input/DatePicker/DatePicker.tsx +41 -0
- package/src/components/Input/DateTimePicker/DateTimePicker.tsx +42 -0
- package/src/components/Input/FileUpload/FileUpload.tsx +41 -0
- package/src/components/Input/FormActions/FormActions.tsx +37 -0
- package/src/components/Input/FormControlWrapper/FormControlWrapper.tsx +31 -0
- package/src/components/Input/FormWrapper/FormWrapper.tsx +20 -0
- package/src/components/Input/HelpButton/HelpButton.tsx +14 -0
- package/src/components/Input/IconButtons/IconButtons/DeleteButton.tsx +16 -0
- package/src/components/Input/IconButtons/IconButtons/EditButton.tsx +16 -0
- package/src/components/Input/IconButtons/IconButtons/RedirectButton.tsx +16 -0
- package/src/components/Input/IconButtons/IconButtons/ViewButton.tsx +16 -0
- package/src/components/Input/IconButtons/IconButtons.tsx +18 -0
- package/src/components/Input/LabelWrapper/LabelWrapper.tsx +26 -0
- package/src/components/Input/MultiCheckBox/MultiCheckBox.tsx +34 -0
- package/src/components/Input/MultiSelect/MultiSelect.tsx +40 -0
- package/src/components/Input/OtpInput/OtpInput.tsx +29 -0
- package/src/components/Input/PasswordField/PasswordField.tsx +34 -0
- package/src/components/Input/RadioGroup/RadioGroup.tsx +38 -0
- package/src/components/Input/SearchBar/SearchBar.tsx +26 -0
- package/src/components/Input/Select/Select.tsx +41 -0
- package/src/components/Input/SingleCheckBox/SingleCheckBox.tsx +29 -0
- package/src/components/Input/SingleSelect/SingleSelect.tsx +40 -0
- package/src/components/Input/Switch/Switch.tsx +23 -0
- package/src/components/Input/Tags/Tags.tsx +26 -0
- package/src/components/Input/TextField/TextField.tsx +35 -0
- package/src/components/Input/Textarea/Textarea.tsx +36 -0
- package/src/components/Layout/AppLayout/AppLayout.tsx +33 -1
- package/src/components/Layout/AppLayout/components/MenuToggleButton.tsx +16 -0
- package/src/components/Layout/AppLayout/components/Sidebar/MenuBar.tsx +26 -0
- package/src/components/Layout/AppLayout/components/Sidebar/MenuItem.tsx +51 -1
- package/src/components/Layout/AppLayout/components/Sidebar/Sidebar.tsx +173 -104
- package/src/components/Layout/AppLayout/components/Sidebar/StyledComponents.tsx +139 -9
- package/src/components/Layout/AppLayout/components/UserProfilePopup.tsx +34 -0
- package/src/components/Layout/AppLayout/context/SidebarContext.tsx +48 -0
- package/src/components/Layout/AppLayout/types.ts +1 -1
- package/src/components/Layout/PageContent/PageContent.tsx +19 -0
- package/src/components/Layout/PageHeader/PageHeader.tsx +46 -0
- package/src/components/Layout/PageHeader/components/SearchBar.tsx +22 -0
- package/src/components/Layout/UserBox/UserBox.tsx +40 -0
- package/src/components/Navigation/Breadcrumbs/Breadcrumbs.tsx +33 -0
- package/src/components/Navigation/Calendar/Calendar.tsx +63 -0
- package/src/components/Navigation/ConfirmDialog/ConfirmDialog.tsx +64 -0
- package/src/components/Navigation/Dialog/Dialog.tsx +55 -0
- package/src/components/Navigation/DialogButton/DialogButton.tsx +64 -0
- package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +73 -0
- package/src/components/Navigation/PreviewFiles/PreviewFiles.tsx +93 -0
- package/src/components/Navigation/Stepper/Stepper.tsx +56 -10
- package/src/components/Navigation/TabsContainer/TabsContainer.tsx +80 -0
- package/src/components/Navigation/UploadDialog/UploadDialog.tsx +64 -0
- package/src/shadcn-components/Layout/Sheet/Sheet.tsx +2 -2
|
@@ -2,18 +2,76 @@ import { cn } from '@/lib/utils';
|
|
|
2
2
|
import { Info, MinusSquare, PlusSquare, SquareCheck } from 'lucide-react';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Props for individual timeline item
|
|
7
|
+
* @typedef {Object} TimelineItems
|
|
8
|
+
* @property {ReactNode} timelineContent - Main content of the timeline item
|
|
9
|
+
* @property {ReactNode} [timelineOppositeContent] - Optional opposite-side content (for alternate layouts)
|
|
10
|
+
* @property {'info' | 'success' | 'error' | 'warning'} [variant='info'] - Icon variant for the timeline marker
|
|
11
|
+
*/
|
|
5
12
|
export type TimelineItems = {
|
|
6
13
|
timelineContent: ReactNode;
|
|
7
14
|
timelineOppositeContent?: ReactNode;
|
|
8
15
|
variant?: 'info' | 'success' | 'error' | 'warning';
|
|
9
16
|
};
|
|
10
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Props for Timeline component
|
|
20
|
+
* @typedef {Object} TimelineProps
|
|
21
|
+
* @property {TimelineItems[]} timelineItems - Array of timeline items to display
|
|
22
|
+
* @property {'left' | 'right' | 'alternate' | 'alternate-reverse'} [position='right'] - Timeline layout position
|
|
23
|
+
* @property {string} [className] - Optional CSS class for the timeline container
|
|
24
|
+
*/
|
|
11
25
|
export type TimelineProps = {
|
|
12
26
|
timelineItems: TimelineItems[];
|
|
13
27
|
position?: 'left' | 'right' | 'alternate' | 'alternate-reverse';
|
|
14
28
|
className?: string;
|
|
15
29
|
};
|
|
16
30
|
|
|
31
|
+
/**
|
|
32
|
+
* Timeline component for displaying chronological events or steps
|
|
33
|
+
* Supports multiple layout positions and icon variants per item
|
|
34
|
+
*
|
|
35
|
+
* @component
|
|
36
|
+
* @param {TimelineProps} props - Timeline configuration
|
|
37
|
+
* @param {TimelineItems[]} props.timelineItems - Array of timeline events with content and optional opposite content
|
|
38
|
+
* @param {'left' | 'right' | 'alternate' | 'alternate-reverse'} [props.position='right'] - Position of timeline connector
|
|
39
|
+
* - 'left': All content on left side
|
|
40
|
+
* - 'right': All content on right side
|
|
41
|
+
* - 'alternate': Content alternates left/right starting with left
|
|
42
|
+
* - 'alternate-reverse': Content alternates left/right starting with right
|
|
43
|
+
* @param {string} [props.className] - Additional CSS classes for the timeline wrapper
|
|
44
|
+
* @returns {JSX.Element} Timeline visualization with ordered events
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* // Basic timeline (content on right)
|
|
48
|
+
* <Timeline
|
|
49
|
+
* position="right"
|
|
50
|
+
* timelineItems={[
|
|
51
|
+
* { timelineContent: "Project started", variant: "success" },
|
|
52
|
+
* { timelineContent: "First milestone", variant: "info" },
|
|
53
|
+
* { timelineContent: "Completed", variant: "success" }
|
|
54
|
+
* ]}
|
|
55
|
+
* />
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* // Alternating timeline with opposite content
|
|
59
|
+
* <Timeline
|
|
60
|
+
* position="alternate"
|
|
61
|
+
* timelineItems={[
|
|
62
|
+
* {
|
|
63
|
+
* timelineContent: "Development",
|
|
64
|
+
* timelineOppositeContent: "Jan 2024",
|
|
65
|
+
* variant: "info"
|
|
66
|
+
* },
|
|
67
|
+
* {
|
|
68
|
+
* timelineContent: "Testing",
|
|
69
|
+
* timelineOppositeContent: "Feb 2024",
|
|
70
|
+
* variant: "warning"
|
|
71
|
+
* }
|
|
72
|
+
* ]}
|
|
73
|
+
* />
|
|
74
|
+
*/
|
|
17
75
|
export const Timeline = ({
|
|
18
76
|
timelineItems,
|
|
19
77
|
position = 'right',
|
|
@@ -4,6 +4,31 @@ import {
|
|
|
4
4
|
typographyVariants,
|
|
5
5
|
} from '@/shadcn-components/DataDisplay/Typography/Typography';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Typography component wrapper around shadcn Typography
|
|
9
|
+
* Provides semantic text rendering with predefined variants
|
|
10
|
+
*
|
|
11
|
+
* @component
|
|
12
|
+
* @param {TypographyProps} props - Typography configuration
|
|
13
|
+
* @param {'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'blockquote' | 'code' | 'lead' | 'large' | 'small' | 'muted'} [props.variant='p'] - Predefined typography variant
|
|
14
|
+
* @param {React.ReactNode} props.children - Content to render with typography styling
|
|
15
|
+
* @param {...TypographyProps} [props] - Additional typography props (className, etc.)
|
|
16
|
+
* @returns {JSX.Element} Styled typography element
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Heading
|
|
20
|
+
* <Typography variant="h1">Page Title</Typography>
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // Paragraph with custom class
|
|
24
|
+
* <Typography variant="p" className="text-gray-600">
|
|
25
|
+
* This is a paragraph with custom styling
|
|
26
|
+
* </Typography>
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // Small text
|
|
30
|
+
* <Typography variant="small">Small disclaimer text</Typography>
|
|
31
|
+
*/
|
|
7
32
|
export const Typography = ({
|
|
8
33
|
variant = 'p',
|
|
9
34
|
children,
|
|
@@ -2,6 +2,14 @@ import { AlertDescription, Alert as ShadcnAlert } from '@/shadcn-components/Feed
|
|
|
2
2
|
import { AlertCircle, CheckCircle2, Info, TriangleAlert } from 'lucide-react';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Props for the Alert component.
|
|
7
|
+
* @typedef {Object} AlertProps
|
|
8
|
+
* @property {string | ReactNode} message - The message content to display in the alert
|
|
9
|
+
* @property {'success' | 'error' | 'info' | 'warning'} [severity] - The severity level of the alert that determines the icon displayed
|
|
10
|
+
* @property {'default' | 'destructive'} [variant] - The visual variant of the alert. Defaults to 'destructive' if severity is 'error'
|
|
11
|
+
* @property {string} [className] - Additional CSS classes to apply to the alert component
|
|
12
|
+
*/
|
|
5
13
|
export type AlertProps = {
|
|
6
14
|
message: string | ReactNode;
|
|
7
15
|
severity?: 'success' | 'error' | 'info' | 'warning';
|
|
@@ -9,6 +17,13 @@ export type AlertProps = {
|
|
|
9
17
|
className?: string;
|
|
10
18
|
};
|
|
11
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Returns an icon component based on the alert severity level.
|
|
22
|
+
* @param {AlertProps['severity']} severity - The severity level of the alert
|
|
23
|
+
* @returns {JSX.Element | null} The icon element corresponding to the severity, or null if no severity is provided
|
|
24
|
+
* @example
|
|
25
|
+
* const icon = getIcon('success'); // Returns CheckCircle2 icon
|
|
26
|
+
*/
|
|
12
27
|
const getIcon = (severity: AlertProps['severity']) => {
|
|
13
28
|
switch (severity) {
|
|
14
29
|
case 'success':
|
|
@@ -24,6 +39,29 @@ const getIcon = (severity: AlertProps['severity']) => {
|
|
|
24
39
|
}
|
|
25
40
|
};
|
|
26
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Alert component that displays a message with an optional severity-based icon.
|
|
44
|
+
* Renders a styled alert box with appropriate visual indicators based on severity level.
|
|
45
|
+
*
|
|
46
|
+
* @param {AlertProps} props - The component props
|
|
47
|
+
* @param {string | ReactNode} props.message - The message content to display
|
|
48
|
+
* @param {'success' | 'error' | 'info' | 'warning'} [props.severity] - The severity level determining icon and styling
|
|
49
|
+
* @param {'default' | 'destructive'} [props.variant] - The visual variant. Overrides default variant selection
|
|
50
|
+
* @param {string} [props.className] - Additional CSS classes to apply to the alert
|
|
51
|
+
* @returns {JSX.Element} The rendered alert component
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* // Display a success alert
|
|
55
|
+
* <Alert message="Operation completed successfully" severity="success" />
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* // Display an error alert with custom styling
|
|
59
|
+
* <Alert
|
|
60
|
+
* message="An error occurred"
|
|
61
|
+
* severity="error"
|
|
62
|
+
* className="mt-4"
|
|
63
|
+
* />
|
|
64
|
+
*/
|
|
27
65
|
export const Alert = ({
|
|
28
66
|
severity,
|
|
29
67
|
message,
|
|
@@ -9,13 +9,33 @@ import { useEffect } from 'react';
|
|
|
9
9
|
import { Typography } from '../../DataDisplay/Typography/Typography';
|
|
10
10
|
import { Button } from '../../Input/Button/Button';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Severity levels for snackbar alerts.
|
|
14
|
+
* @typedef {'success' | 'info' | 'warning' | 'error'} Severity
|
|
15
|
+
*/
|
|
12
16
|
export type Severity = 'success' | 'info' | 'warning' | 'error';
|
|
13
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Position configuration for snackbar placement on screen.
|
|
20
|
+
* @typedef {Object} SnackbarPosition
|
|
21
|
+
* @property {'top' | 'bottom'} vertical - Vertical alignment of the snackbar
|
|
22
|
+
* @property {'left' | 'center' | 'right'} horizontal - Horizontal alignment of the snackbar
|
|
23
|
+
*/
|
|
14
24
|
export type SnackbarPosition = {
|
|
15
25
|
vertical: 'top' | 'bottom';
|
|
16
26
|
horizontal: 'left' | 'center' | 'right';
|
|
17
27
|
};
|
|
18
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Props for the Snackbar component.
|
|
31
|
+
* @typedef {Object} SnackbarProps
|
|
32
|
+
* @property {Severity} severity - The severity level of the snackbar (success, info, warning, error)
|
|
33
|
+
* @property {string} message - The message text to display in the snackbar
|
|
34
|
+
* @property {boolean} open - Whether the snackbar is visible
|
|
35
|
+
* @property {Function} [onClose] - Callback function when snackbar is closed. Called with reason ('timeout' or 'clickaway')
|
|
36
|
+
* @property {SnackbarPosition} [anchorOrigin] - Position configuration for the snackbar placement. Defaults to {vertical: 'top', horizontal: 'center'}
|
|
37
|
+
* @property {number} [autoHideDuration] - Duration in milliseconds after which the snackbar auto-closes. If not provided, snackbar stays open until manually closed
|
|
38
|
+
*/
|
|
19
39
|
export type SnackbarProps = {
|
|
20
40
|
severity: Severity;
|
|
21
41
|
message: string;
|
|
@@ -25,6 +45,40 @@ export type SnackbarProps = {
|
|
|
25
45
|
autoHideDuration?: number;
|
|
26
46
|
};
|
|
27
47
|
|
|
48
|
+
/**
|
|
49
|
+
* Snackbar component for displaying temporary notification messages.
|
|
50
|
+
* Displays a dismissible notification box with icon and message based on severity.
|
|
51
|
+
* Auto-hides after specified duration or when close button is clicked.
|
|
52
|
+
*
|
|
53
|
+
* @param {SnackbarProps} props - The component props
|
|
54
|
+
* @param {Severity} props.severity - The severity level of the notification
|
|
55
|
+
* @param {string} props.message - The message text to display
|
|
56
|
+
* @param {boolean} props.open - Whether the snackbar is visible
|
|
57
|
+
* @param {Function} [props.onClose] - Callback when snackbar is closed. Receives close reason as parameter
|
|
58
|
+
* @param {SnackbarPosition} [props.anchorOrigin] - Position configuration for placement (defaults to top center)
|
|
59
|
+
* @param {number} [props.autoHideDuration] - Duration in milliseconds before auto-closing (undefined = no auto-close)
|
|
60
|
+
* @returns {JSX.Element | null} The rendered snackbar component or null if not open
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* // Display a success message that auto-hides after 3 seconds
|
|
64
|
+
* <Snackbar
|
|
65
|
+
* severity="success"
|
|
66
|
+
* message="Changes saved successfully"
|
|
67
|
+
* open={true}
|
|
68
|
+
* autoHideDuration={3000}
|
|
69
|
+
* onClose={(reason) => console.log('Closed:', reason)}
|
|
70
|
+
* />
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* // Position snackbar at bottom-right
|
|
74
|
+
* <Snackbar
|
|
75
|
+
* severity="info"
|
|
76
|
+
* message="New updates available"
|
|
77
|
+
* open={isOpen}
|
|
78
|
+
* anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
|
|
79
|
+
* onClose={() => setIsOpen(false)}
|
|
80
|
+
* />
|
|
81
|
+
*/
|
|
28
82
|
export const Snackbar = ({
|
|
29
83
|
severity,
|
|
30
84
|
message,
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spinner component that displays an animated loading indicator.
|
|
3
|
+
* Renders a dual-colored rotating spinner with smooth continuous animation.
|
|
4
|
+
* No props required - it's a simple stateless component.
|
|
5
|
+
*
|
|
6
|
+
* @returns {JSX.Element} The rendered spinner component
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // Display a loading spinner
|
|
10
|
+
* <Spinner />
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* // Use in a loading state
|
|
14
|
+
* {isLoading ? <Spinner /> : <div>Content loaded</div>}
|
|
15
|
+
*/
|
|
1
16
|
export const Spinner = () => {
|
|
2
17
|
return (
|
|
3
18
|
<div className="relative h-10 w-10 scale-[0.4] rounded-full [animation:rotate_1s_linear_infinite] before:absolute before:inset-0 before:box-border before:rounded-full before:border-[5px] before:border-[#7D60D9] before:content-[''] before:[animation:prixClipFix_1.5s_linear_infinite] after:absolute after:inset-0 after:box-border after:rounded-full after:border-[5px] after:border-[#FF3D00] after:content-[''] after:[animation:prixClipFix_1.5s_linear_infinite] after:[transform:rotate3d(90,90,0,180deg)]" />
|
|
@@ -6,6 +6,18 @@ import {
|
|
|
6
6
|
TooltipTrigger,
|
|
7
7
|
} from '@/shadcn-components/Feedback/Tooltip/Tooltip';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Props for the Tooltip component.
|
|
11
|
+
* @typedef {Object} TooltipProps
|
|
12
|
+
* @property {ReactNode} children - The element that triggers the tooltip on hover
|
|
13
|
+
* @property {ReactNode} title - The tooltip content to display
|
|
14
|
+
* @property {'top' | 'right' | 'bottom' | 'left'} [placement] - The direction to place the tooltip relative to the trigger element. Defaults to 'right'
|
|
15
|
+
* @property {boolean} [arrow] - Whether to display an arrow pointing to the trigger element. Currently not implemented in UI
|
|
16
|
+
* @property {boolean} [open] - Controlled open state of the tooltip
|
|
17
|
+
* @property {boolean} [defaultOpen] - Initial open state if tooltip is uncontrolled
|
|
18
|
+
* @property {Function} [onOpenChange] - Callback fired when tooltip open state changes
|
|
19
|
+
* @property {number} [delayDuration] - Delay in milliseconds before tooltip appears on hover
|
|
20
|
+
*/
|
|
9
21
|
export type TooltipProps = {
|
|
10
22
|
children: ReactNode;
|
|
11
23
|
title: ReactNode;
|
|
@@ -17,6 +29,48 @@ export type TooltipProps = {
|
|
|
17
29
|
delayDuration?: number;
|
|
18
30
|
};
|
|
19
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Tooltip component that displays contextual information on hover.
|
|
34
|
+
* Wraps the shadcn tooltip component with enhanced positioning and configuration options.
|
|
35
|
+
* Supports both controlled and uncontrolled modes for tooltip visibility.
|
|
36
|
+
*
|
|
37
|
+
* @param {TooltipProps} props - The component props
|
|
38
|
+
* @param {ReactNode} props.children - The element that triggers the tooltip
|
|
39
|
+
* @param {ReactNode} props.title - The tooltip content to display
|
|
40
|
+
* @param {'top' | 'right' | 'bottom' | 'left'} [props.placement] - Tooltip placement direction (defaults to 'right')
|
|
41
|
+
* @param {boolean} [props.arrow] - Arrow display option (not currently implemented)
|
|
42
|
+
* @param {boolean} [props.open] - Controlled open state
|
|
43
|
+
* @param {boolean} [props.defaultOpen] - Initial open state for uncontrolled mode
|
|
44
|
+
* @param {Function} [props.onOpenChange] - Callback when open state changes
|
|
45
|
+
* @param {number} [props.delayDuration] - Delay before showing tooltip in milliseconds
|
|
46
|
+
* @returns {JSX.Element} The rendered tooltip component
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* // Basic tooltip with default placement
|
|
50
|
+
* <Tooltip title="This is a helpful tip">
|
|
51
|
+
* <button>Hover me</button>
|
|
52
|
+
* </Tooltip>
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* // Tooltip positioned at bottom with delay
|
|
56
|
+
* <Tooltip
|
|
57
|
+
* title="Additional information"
|
|
58
|
+
* placement="bottom"
|
|
59
|
+
* delayDuration={500}
|
|
60
|
+
* >
|
|
61
|
+
* <span>Information icon</span>
|
|
62
|
+
* </Tooltip>
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* // Controlled tooltip state
|
|
66
|
+
* <Tooltip
|
|
67
|
+
* title="Controlled tooltip"
|
|
68
|
+
* open={isTooltipOpen}
|
|
69
|
+
* onOpenChange={setIsTooltipOpen}
|
|
70
|
+
* >
|
|
71
|
+
* <button>Toggle</button>
|
|
72
|
+
* </Tooltip>
|
|
73
|
+
*/
|
|
20
74
|
export const Tooltip = ({
|
|
21
75
|
children,
|
|
22
76
|
title,
|
|
@@ -13,6 +13,32 @@ export type ButtonProps = React.ComponentProps<'button'> &
|
|
|
13
13
|
fullWidth?: boolean;
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Button component with enhanced features
|
|
18
|
+
*
|
|
19
|
+
* A customizable button component that wraps the shadcn Button with additional
|
|
20
|
+
* functionality including loading states, icons, and full width options.
|
|
21
|
+
*
|
|
22
|
+
* @component
|
|
23
|
+
* @param {ButtonProps} props - The button properties
|
|
24
|
+
* @param {boolean} [props.loading=false] - Whether the button is in a loading state
|
|
25
|
+
* @param {ReactNode} [props.startIcon] - Icon to display at the start of the button
|
|
26
|
+
* @param {ReactNode} [props.endIcon] - Icon to display at the end of the button
|
|
27
|
+
* @param {boolean} [props.fullWidth=false] - Whether the button should take full width
|
|
28
|
+
* @param {boolean} [props.disabled] - Whether the button is disabled
|
|
29
|
+
* @param {ReactNode} [props.children] - The button content/label
|
|
30
|
+
* @param {string} [props.className] - Additional CSS classes to apply
|
|
31
|
+
* @param {string} [props.variant] - Button style variant from buttonVariants
|
|
32
|
+
* @param {string} [props.size] - Button size variant from buttonVariants
|
|
33
|
+
* @returns {React.ReactElement} The rendered button element
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* <Button loading={isLoading} startIcon={<SendIcon />} variant="default">
|
|
38
|
+
* Submit
|
|
39
|
+
* </Button>
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
16
42
|
export const Button = ({
|
|
17
43
|
loading = false,
|
|
18
44
|
disabled,
|
|
@@ -33,6 +33,47 @@ export type DatePickerProps = {
|
|
|
33
33
|
[key: string]: any;
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
+
/**
|
|
37
|
+
* DatePicker component for date selection
|
|
38
|
+
*
|
|
39
|
+
* A flexible date picker component that supports both input and filter modes,
|
|
40
|
+
* with customizable date formats, restrictions, and shortcuts.
|
|
41
|
+
*
|
|
42
|
+
* @component
|
|
43
|
+
* @param {DatePickerProps} props - The date picker properties
|
|
44
|
+
* @param {React.ReactNode | string} [props.label] - Label for the date picker
|
|
45
|
+
* @param {string} [props.name] - Name attribute for the input
|
|
46
|
+
* @param {Date} [props.value] - Currently selected date
|
|
47
|
+
* @param {(date: Date | undefined) => void} [props.onChange] - Callback fired when date changes
|
|
48
|
+
* @param {DateFormat} [props.format='dd/MM/yyyy'] - Date format for display
|
|
49
|
+
* @param {string} [props.placeholder] - Placeholder text
|
|
50
|
+
* @param {string} [props.helperText] - Helper text below the input
|
|
51
|
+
* @param {boolean} [props.required] - Whether the field is required
|
|
52
|
+
* @param {boolean} [props.disabled] - Whether the picker is disabled
|
|
53
|
+
* @param {Date} [props.minDate] - Minimum selectable date
|
|
54
|
+
* @param {Date} [props.maxDate] - Maximum selectable date
|
|
55
|
+
* @param {boolean} [props.disablePast] - Whether past dates are disabled
|
|
56
|
+
* @param {boolean} [props.disableFuture] - Whether future dates are disabled
|
|
57
|
+
* @param {(date: Date) => boolean} [props.shouldDisableDate] - Custom date disable logic
|
|
58
|
+
* @param {(date: Date) => boolean} [props.shouldDisableMonth] - Custom month disable logic
|
|
59
|
+
* @param {(date: Date) => boolean} [props.shouldDisableYear] - Custom year disable logic
|
|
60
|
+
* @param {boolean} [props.fullWidth] - Whether the picker takes full width
|
|
61
|
+
* @param {'input' | 'filter'} [props.type='input'] - Display type of the picker
|
|
62
|
+
* @param {() => void} [props.onOpen] - Callback when picker opens
|
|
63
|
+
* @param {() => void} [props.onClose] - Callback when picker closes
|
|
64
|
+
* @returns {React.ReactElement} The rendered date picker component
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* <DatePicker
|
|
69
|
+
* label="Select Date"
|
|
70
|
+
* value={date}
|
|
71
|
+
* onChange={setDate}
|
|
72
|
+
* format="dd/MM/yyyy"
|
|
73
|
+
* required
|
|
74
|
+
* />
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
36
77
|
export const DatePicker = ({
|
|
37
78
|
type = 'input',
|
|
38
79
|
...props
|
|
@@ -61,6 +61,48 @@ export type DateTimePickerProps = {
|
|
|
61
61
|
[key: string]: any;
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
+
/**
|
|
65
|
+
* DateTimePicker component for date and time selection
|
|
66
|
+
*
|
|
67
|
+
* A comprehensive date and time picker component supporting both input and filter modes,
|
|
68
|
+
* with flexible date/time formats, time unit selection, and date restrictions.
|
|
69
|
+
*
|
|
70
|
+
* @component
|
|
71
|
+
* @param {DateTimePickerProps} props - The date time picker properties
|
|
72
|
+
* @param {React.ReactNode | string} [props.label] - Label for the picker
|
|
73
|
+
* @param {string} [props.name] - Name attribute for the input
|
|
74
|
+
* @param {Date} [props.value] - Currently selected date and time
|
|
75
|
+
* @param {(date: Date | undefined) => void} [props.onChange] - Callback fired when date/time changes
|
|
76
|
+
* @param {DateTimeFormat} [props.format] - Date and time format for display
|
|
77
|
+
* @param {DateTimePickerViews[]} [props.views] - Which time units to display (year, month, day, hours, minutes, seconds)
|
|
78
|
+
* @param {string} [props.placeholder] - Placeholder text
|
|
79
|
+
* @param {string} [props.helperText] - Helper text below the input
|
|
80
|
+
* @param {boolean} [props.required] - Whether the field is required
|
|
81
|
+
* @param {boolean} [props.disabled] - Whether the picker is disabled
|
|
82
|
+
* @param {Date} [props.minDate] - Minimum selectable date/time
|
|
83
|
+
* @param {Date} [props.maxDate] - Maximum selectable date/time
|
|
84
|
+
* @param {boolean} [props.disablePast] - Whether past dates/times are disabled
|
|
85
|
+
* @param {boolean} [props.disableFuture] - Whether future dates/times are disabled
|
|
86
|
+
* @param {(date: Date) => boolean} [props.shouldDisableDate] - Custom date disable logic
|
|
87
|
+
* @param {(date: Date) => boolean} [props.shouldDisableMonth] - Custom month disable logic
|
|
88
|
+
* @param {(date: Date) => boolean} [props.shouldDisableYear] - Custom year disable logic
|
|
89
|
+
* @param {boolean} [props.fullWidth] - Whether the picker takes full width
|
|
90
|
+
* @param {'input' | 'filter'} [props.type='input'] - Display type of the picker
|
|
91
|
+
* @param {() => void} [props.onOpen] - Callback when picker opens
|
|
92
|
+
* @param {() => void} [props.onClose] - Callback when picker closes
|
|
93
|
+
* @returns {React.ReactElement} The rendered date time picker component
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```tsx
|
|
97
|
+
* <DateTimePicker
|
|
98
|
+
* label="Select Date & Time"
|
|
99
|
+
* value={dateTime}
|
|
100
|
+
* onChange={setDateTime}
|
|
101
|
+
* format="dd/MM/yyyy hh:mm a"
|
|
102
|
+
* views={['year', 'month', 'day', 'hours', 'minutes']}
|
|
103
|
+
* />
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
64
106
|
export const DateTimePicker = ({
|
|
65
107
|
type = 'input',
|
|
66
108
|
...props
|
|
@@ -26,6 +26,47 @@ export type FileUploadProps = {
|
|
|
26
26
|
required?: boolean;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* FileUpload component for file selection and management
|
|
31
|
+
*
|
|
32
|
+
* A comprehensive file upload component with drag-and-drop support, file validation,
|
|
33
|
+
* preview capabilities, and file management features.
|
|
34
|
+
*
|
|
35
|
+
* @component
|
|
36
|
+
* @param {FileUploadProps} props - The file upload properties
|
|
37
|
+
* @param {string} props.label - Label text for the upload field
|
|
38
|
+
* @param {string} props.name - Name attribute for the input element
|
|
39
|
+
* @param {File[]} [props.files=[]] - Array of currently selected files
|
|
40
|
+
* @param {(files: File[]) => void} [props.onChange] - Callback fired when files are selected
|
|
41
|
+
* @param {(index: number) => void} [props.handleRemove] - Callback to remove a file by index
|
|
42
|
+
* @param {'image/*' | '.pdf' | '.docx' | '.txt' | '*'} [props.accept='*'] - File type filter
|
|
43
|
+
* @param {(file: File) => void} [props.onInvalidFile] - Callback fired when an invalid file is selected
|
|
44
|
+
* @param {string} [props.inputText] - Custom text for the upload prompt
|
|
45
|
+
* @param {boolean} [props.multiple=true] - Whether multiple files can be selected
|
|
46
|
+
* @param {boolean} [props.disabled=false] - Whether the upload is disabled
|
|
47
|
+
* @param {boolean} [props.hideDeleteButton=false] - Whether to hide delete buttons on files
|
|
48
|
+
* @param {boolean} [props.hideInput=false] - Whether to hide the file input area
|
|
49
|
+
* @param {string} [props.errorText] - Error message to display
|
|
50
|
+
* @param {string} [props.className] - Additional CSS classes for the upload area
|
|
51
|
+
* @param {string} [props.containerClassName] - Additional CSS classes for the container
|
|
52
|
+
* @param {boolean} [props.showImage] - Whether to show image previews instead of file list
|
|
53
|
+
* @param {string} [props.previewClassName] - Additional CSS classes for previews
|
|
54
|
+
* @param {boolean} [props.required] - Whether the field is required
|
|
55
|
+
* @returns {React.ReactElement} The rendered file upload component
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```tsx
|
|
59
|
+
* <FileUpload
|
|
60
|
+
* label="Upload Documents"
|
|
61
|
+
* name="documents"
|
|
62
|
+
* files={files}
|
|
63
|
+
* onChange={setFiles}
|
|
64
|
+
* accept=".pdf,.docx"
|
|
65
|
+
* multiple
|
|
66
|
+
* required
|
|
67
|
+
* />
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
29
70
|
export const FileUpload = ({
|
|
30
71
|
label,
|
|
31
72
|
name = 'file-input',
|
|
@@ -14,6 +14,43 @@ export interface FormActionsProps {
|
|
|
14
14
|
showTopBorder?: boolean;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* FormActions component for form submission and cancellation
|
|
19
|
+
*
|
|
20
|
+
* A component that renders submit and cancel buttons with customizable configurations
|
|
21
|
+
* and visibility options. Typically used at the bottom of forms.
|
|
22
|
+
*
|
|
23
|
+
* @component
|
|
24
|
+
* @param {FormActionsProps} props - The form actions properties
|
|
25
|
+
* @param {ButtonConfig} [props.submitButtonProps] - Configuration for the submit button
|
|
26
|
+
* @param {ButtonConfig} [props.submitButtonProps.show=true] - Whether to show the submit button
|
|
27
|
+
* @param {string} [props.submitButtonProps.title='Submit'] - Submit button label
|
|
28
|
+
* @param {() => void} [props.submitButtonProps.onClick] - Callback when submit is clicked
|
|
29
|
+
* @param {ButtonConfig} [props.cancelButtonProps] - Configuration for the cancel button
|
|
30
|
+
* @param {ButtonConfig} [props.cancelButtonProps.show=true] - Whether to show the cancel button
|
|
31
|
+
* @param {string} [props.cancelButtonProps.title='Cancel'] - Cancel button label
|
|
32
|
+
* @param {() => void} [props.cancelButtonProps.onClick] - Callback when cancel is clicked
|
|
33
|
+
* @param {string} [props.className] - Additional CSS classes to apply
|
|
34
|
+
* @param {boolean} [props.showTopBorder=false] - Whether to show a top border
|
|
35
|
+
* @returns {React.ReactElement} The rendered form actions component
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <FormActions
|
|
40
|
+
* submitButtonProps={{
|
|
41
|
+
* title: 'Save Changes',
|
|
42
|
+
* onClick: handleSubmit,
|
|
43
|
+
* variant: 'default'
|
|
44
|
+
* }}
|
|
45
|
+
* cancelButtonProps={{
|
|
46
|
+
* title: 'Discard',
|
|
47
|
+
* onClick: handleCancel,
|
|
48
|
+
* variant: 'ghost'
|
|
49
|
+
* }}
|
|
50
|
+
* showTopBorder
|
|
51
|
+
* />
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
17
54
|
export const FormActions = ({
|
|
18
55
|
submitButtonProps,
|
|
19
56
|
cancelButtonProps,
|
|
@@ -32,6 +32,37 @@ type ControlledElementProps<T extends FieldValues = FieldValues> = {
|
|
|
32
32
|
[key: string]: any;
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
+
/**
|
|
36
|
+
* FormControlWrapper component for react-hook-form integration
|
|
37
|
+
*
|
|
38
|
+
* A wrapper component that integrates react-hook-form's Controller with form elements,
|
|
39
|
+
* automatically handling field registration, validation, and error display.
|
|
40
|
+
*
|
|
41
|
+
* @component
|
|
42
|
+
* @template T - The form values type from react-hook-form
|
|
43
|
+
* @param {FormControlWrapperProps<T>} props - The wrapper properties
|
|
44
|
+
* @param {Control<T>} props.control - React Hook Form control instance from useForm()
|
|
45
|
+
* @param {ReactNode} props.children - Child form elements to be controlled
|
|
46
|
+
* @param {string} [props.containerClassName] - Additional CSS classes for the container
|
|
47
|
+
* @param {FormActionsProps} [props.formActionProps] - Properties for form submit/cancel buttons
|
|
48
|
+
* @param {boolean} [props.disabled=false] - Whether all controlled fields are disabled
|
|
49
|
+
* @returns {React.ReactElement} The rendered wrapper with controlled form elements
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* const { control, handleSubmit } = useForm();
|
|
54
|
+
*
|
|
55
|
+
* <FormControlWrapper
|
|
56
|
+
* control={control}
|
|
57
|
+
* formActionProps={{
|
|
58
|
+
* submitButtonProps: { onClick: handleSubmit(onSubmit) }
|
|
59
|
+
* }}
|
|
60
|
+
* >
|
|
61
|
+
* <TextField name="email" label="Email" />
|
|
62
|
+
* <PasswordField name="password" label="Password" />
|
|
63
|
+
* </FormControlWrapper>
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
35
66
|
export function FormControlWrapper<T extends FieldValues = FieldValues>({
|
|
36
67
|
control,
|
|
37
68
|
children,
|
|
@@ -6,6 +6,26 @@ type FormWrapperProps = {
|
|
|
6
6
|
className?: string;
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* FormWrapper component for layout styling
|
|
11
|
+
*
|
|
12
|
+
* A simple wrapper component that provides default styling and spacing for form elements.
|
|
13
|
+
* Used to maintain consistent form layout and spacing throughout the application.
|
|
14
|
+
*
|
|
15
|
+
* @component
|
|
16
|
+
* @param {FormWrapperProps} props - The wrapper properties
|
|
17
|
+
* @param {ReactNode} props.children - Child form elements
|
|
18
|
+
* @param {string} [props.className] - Additional CSS classes to apply
|
|
19
|
+
* @returns {React.ReactElement} The styled form wrapper container
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <FormWrapper>
|
|
24
|
+
* <TextField label="Name" name="name" />
|
|
25
|
+
* <TextField label="Email" name="email" />
|
|
26
|
+
* </FormWrapper>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
9
29
|
export const FormWrapper = ({ children, className }: FormWrapperProps) => {
|
|
10
30
|
return (
|
|
11
31
|
<div className={cn('flex flex-col gap-3 m-4', className)}>{children}</div>
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import { MessageCircleQuestionMark } from 'lucide-react';
|
|
2
2
|
import { Button } from '../../export';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* HelpButton component for documentation access
|
|
6
|
+
*
|
|
7
|
+
* A button component that opens the help/documentation page in a new window
|
|
8
|
+
* when clicked. Features a question mark icon.
|
|
9
|
+
*
|
|
10
|
+
* @component
|
|
11
|
+
* @returns {React.ReactElement} The rendered help button
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <HelpButton />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
4
18
|
const HelpButton = () => {
|
|
5
19
|
return (
|
|
6
20
|
<Button
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import { Trash2 } from 'lucide-react';
|
|
2
2
|
import { Button, ButtonProps } from '../../Button/Button';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* DeleteButton component for delete actions
|
|
6
|
+
*
|
|
7
|
+
* An icon button with a trash icon for triggering delete/remove actions.
|
|
8
|
+
* Minimal styling suitable for use in tables and lists.
|
|
9
|
+
*
|
|
10
|
+
* @component
|
|
11
|
+
* @param {ButtonProps} props - Button properties
|
|
12
|
+
* @param {boolean} [props.disabled] - Whether the button is disabled
|
|
13
|
+
* @returns {React.ReactElement} The rendered delete button
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <DeleteButton onClick={handleDelete} />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
4
20
|
export function DeleteButton({ disabled, ...props }: ButtonProps) {
|
|
5
21
|
return (
|
|
6
22
|
<Button size="icon" variant="ghost" disabled={disabled} {...props}>
|