@campxdev/react-blueprint 3.0.0-alpha.4 → 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 +43 -1
- package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +44 -1
- package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
- package/dist/cjs/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -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 +42 -0
- package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
- package/dist/cjs/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
- 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 +34 -1
- package/dist/cjs/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
- package/dist/cjs/types/src/components/Input/SingleSelect/SingleSelect.d.ts +42 -0
- package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
- package/dist/cjs/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
- 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/cjs/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
- 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 +43 -1
- package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerFilter.d.ts +2 -0
- package/dist/esm/types/src/components/Input/DatePicker/components/DatePickerInput.d.ts +2 -0
- package/dist/esm/types/src/components/Input/DateTimePicker/DateTimePicker.d.ts +44 -1
- package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerFilter.d.ts +2 -0
- package/dist/esm/types/src/components/Input/DateTimePicker/components/DateTimePickerInput.d.ts +2 -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 +42 -0
- package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectFilter.d.ts +1 -1
- package/dist/esm/types/src/components/Input/MultiSelect/components/MultiSelectInput.d.ts +1 -1
- 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 +34 -1
- package/dist/esm/types/src/components/Input/SingleCheckBox/SingleCheckBox.d.ts +29 -0
- package/dist/esm/types/src/components/Input/SingleSelect/SingleSelect.d.ts +42 -0
- package/dist/esm/types/src/components/Input/SingleSelect/components/SingleFilter.d.ts +1 -1
- package/dist/esm/types/src/components/Input/SingleSelect/components/SingleInput.d.ts +1 -1
- 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/esm/types/src/shadcn-components/Input/Select/Select.d.ts +2 -2
- package/dist/index.d.ts +2963 -15
- package/dist/styles.css +402 -13
- 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/DataTable/components/TableView.tsx +31 -5
- 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 +71 -3
- package/src/components/Input/Button/Button.tsx +26 -0
- package/src/components/Input/Button/ButtonLoader.css +2 -2
- package/src/components/Input/DatePicker/DatePicker.tsx +50 -188
- package/src/components/Input/DatePicker/components/DatePickerFilter.tsx +178 -0
- package/src/components/Input/DatePicker/components/DatePickerInput.tsx +192 -0
- package/src/components/Input/DateTimePicker/DateTimePicker.tsx +50 -294
- package/src/components/Input/DateTimePicker/components/DateTimePickerFilter.tsx +292 -0
- package/src/components/Input/DateTimePicker/components/DateTimePickerInput.tsx +297 -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 +42 -0
- package/src/components/Input/MultiSelect/components/MultiSelectFilter.tsx +7 -3
- package/src/components/Input/MultiSelect/components/MultiSelectInput.tsx +8 -3
- 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 +63 -12
- package/src/components/Input/SingleCheckBox/SingleCheckBox.tsx +29 -0
- package/src/components/Input/SingleSelect/SingleSelect.tsx +42 -0
- package/src/components/Input/SingleSelect/components/SingleFilter.tsx +7 -3
- package/src/components/Input/SingleSelect/components/SingleInput.tsx +8 -3
- 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 +70 -1
- package/src/components/Navigation/DropDownMenu/DropDownMenu.tsx +74 -1
- 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 +81 -1
- package/src/components/Navigation/UploadDialog/UploadDialog.tsx +64 -0
- package/src/shadcn-components/DataDisplay/Dialog/Dialog.tsx +2 -2
- package/src/shadcn-components/Input/Popover/Popover.tsx +1 -1
- package/src/shadcn-components/Input/Select/Select.tsx +8 -8
- package/src/shadcn-components/Layout/Sheet/Sheet.tsx +2 -2
- package/src/shadcn-components/Navigation/DropdownMenu/DropdownMenu.tsx +2 -2
- package/src/styles/globals.css +4 -2
- package/src/styles/index.css +5 -0
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
import { Svgs } from '../../../assets/images/svg';
|
|
2
2
|
import { Typography } from '../../DataDisplay/Typography/Typography';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* ResourceNotFound component displays a "Resource Not Found" error page.
|
|
6
|
+
*
|
|
7
|
+
* This component renders a centered error page with an SVG illustration
|
|
8
|
+
* and a custom message. Typically used when a specific resource (e.g., user, post, item)
|
|
9
|
+
* cannot be found in the system.
|
|
10
|
+
*
|
|
11
|
+
* @component
|
|
12
|
+
* @param {any} message - The error message or description to display. Can be any ReactNode type
|
|
13
|
+
* @returns {React.ReactElement} A centered error page with icon and custom message
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Basic usage
|
|
17
|
+
* <ResourceNotFound message="The user profile you're looking for does not exist." />
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // With JSX message
|
|
21
|
+
* <ResourceNotFound
|
|
22
|
+
* message={<span>The requested <strong>item</strong> was not found in the database.</span>}
|
|
23
|
+
* />
|
|
24
|
+
*/
|
|
4
25
|
export const ResourceNotFound = (message: any) => {
|
|
5
26
|
return (
|
|
6
27
|
<div className="flex w-full flex-col items-center justify-center">
|
|
@@ -2,6 +2,37 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { Svgs } from '../../../assets/images/svg';
|
|
3
3
|
import { Typography } from '../../DataDisplay/Typography/Typography';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* UnAuthorized component displays an "Unauthorized Access" error page.
|
|
7
|
+
*
|
|
8
|
+
* This component renders a centered error page with an SVG illustration,
|
|
9
|
+
* a message indicating the user must be logged in, and an optional login component.
|
|
10
|
+
* Typically used to protect routes that require authentication.
|
|
11
|
+
*
|
|
12
|
+
* @component
|
|
13
|
+
* @param {Object} props - The component props
|
|
14
|
+
* @param {ReactNode} [props.component] - Optional React element to render below the messages (e.g., a login form or button)
|
|
15
|
+
* @returns {React.ReactElement} A centered authorization error page with icon, messages, and optional component
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Basic usage without additional component
|
|
19
|
+
* <UnAuthorized />
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* // With a login button
|
|
23
|
+
* <UnAuthorized component={<LoginButton />} />
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* // With a full login form
|
|
27
|
+
* <UnAuthorized
|
|
28
|
+
* component={
|
|
29
|
+
* <form>
|
|
30
|
+
* <input type="email" placeholder="Email" />
|
|
31
|
+
* <button>Sign In</button>
|
|
32
|
+
* </form>
|
|
33
|
+
* }
|
|
34
|
+
* />
|
|
35
|
+
*/
|
|
5
36
|
export const UnAuthorized = ({ component }: { component?: ReactNode }) => {
|
|
6
37
|
return (
|
|
7
38
|
<div className="flex w-full flex-col items-center justify-center">
|
|
@@ -2,6 +2,20 @@ import { FC, MouseEvent } from 'react';
|
|
|
2
2
|
import { CampxFullLogoIcon } from './IconComponents/CampxFullLogoIcon';
|
|
3
3
|
import { CampxIcon } from './IconComponents/CampxIcon';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* IconProps interface defines common properties for icon components.
|
|
7
|
+
*
|
|
8
|
+
* Provides a standardized set of props for customizing icon appearance
|
|
9
|
+
* and behavior across the application.
|
|
10
|
+
*
|
|
11
|
+
* @interface IconProps
|
|
12
|
+
* @property {number} [size] - The size of the icon in pixels
|
|
13
|
+
* @property {string} [color] - The color of the icon (CSS color value)
|
|
14
|
+
* @property {boolean} [disabled] - Whether the icon is in a disabled state
|
|
15
|
+
* @property {string} [hoverColor] - The color of the icon on hover (CSS color value)
|
|
16
|
+
* @property {string} [backgroundColor] - The background color behind the icon (CSS color value)
|
|
17
|
+
* @property {Function} [onClick] - Callback function triggered when the icon is clicked
|
|
18
|
+
*/
|
|
5
19
|
export interface IconProps {
|
|
6
20
|
size?: number;
|
|
7
21
|
color?: string;
|
|
@@ -11,13 +25,53 @@ export interface IconProps {
|
|
|
11
25
|
onClick?: (event: MouseEvent<Element>) => void;
|
|
12
26
|
}
|
|
13
27
|
|
|
28
|
+
/**
|
|
29
|
+
* IconComponent type represents a React functional component that accepts IconProps.
|
|
30
|
+
*
|
|
31
|
+
* Used as the base type for icon components throughout the application.
|
|
32
|
+
*
|
|
33
|
+
* @typedef {FC<IconProps>} IconComponent
|
|
34
|
+
*/
|
|
14
35
|
export type IconComponent = FC<IconProps>;
|
|
15
|
-
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* IconsType interface defines the shape of the Icons object.
|
|
39
|
+
*
|
|
40
|
+
* Maps icon names to their corresponding component implementations.
|
|
41
|
+
*
|
|
42
|
+
* @interface IconsType
|
|
43
|
+
* @property {IconComponent} CampxFullLogoIcon - The full Campx logo with text icon component
|
|
44
|
+
* @property {IconComponent} CampxIcon - The Campx logo mark icon component
|
|
45
|
+
*/
|
|
16
46
|
export type IconsType = {
|
|
17
47
|
CampxFullLogoIcon: IconComponent;
|
|
18
48
|
CampxIcon: IconComponent;
|
|
19
49
|
};
|
|
20
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Icons object exports all available icon components.
|
|
53
|
+
*
|
|
54
|
+
* Provides a centralized registry of all icon components used throughout the application.
|
|
55
|
+
* Each icon can be accessed as a property of this object and used as a React component.
|
|
56
|
+
*
|
|
57
|
+
* @constant
|
|
58
|
+
* @type {IconsType}
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* // Use individual icons
|
|
62
|
+
* <Icons.CampxIcon size={24} />
|
|
63
|
+
* <Icons.CampxFullLogoIcon />
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* // Use in a component
|
|
67
|
+
* const MyComponent = () => {
|
|
68
|
+
* return (
|
|
69
|
+
* <div>
|
|
70
|
+
* <Icons.CampxIcon size={32} color="#E43341" />
|
|
71
|
+
* </div>
|
|
72
|
+
* );
|
|
73
|
+
* };
|
|
74
|
+
*/
|
|
21
75
|
export const Icons: IconsType = {
|
|
22
76
|
CampxFullLogoIcon,
|
|
23
77
|
CampxIcon,
|
|
@@ -12,6 +12,13 @@ export type BarChartVariant = 'vertical' | 'horizontal';
|
|
|
12
12
|
|
|
13
13
|
export type BarChartData = HorizontalBarChartData | VerticalBarChartData;
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Props for the BarChart component
|
|
17
|
+
* Combines props from both VerticalBarChart and HorizontalBarChart
|
|
18
|
+
* @typedef {Object} BarChartProps
|
|
19
|
+
* @property {BarChartData[]} data - Array of data objects to display in the chart
|
|
20
|
+
* @property {BarChartVariant} [variant='vertical'] - Orientation of the bars ('vertical' or 'horizontal')
|
|
21
|
+
*/
|
|
15
22
|
export interface BarChartProps
|
|
16
23
|
extends Omit<VerticalBarChartProps, 'data'>,
|
|
17
24
|
Omit<HorizontalBarChartProps, 'data' | keyof VerticalBarChartProps> {
|
|
@@ -19,6 +26,37 @@ export interface BarChartProps
|
|
|
19
26
|
variant?: BarChartVariant;
|
|
20
27
|
}
|
|
21
28
|
|
|
29
|
+
/**
|
|
30
|
+
* BarChart Component
|
|
31
|
+
* A flexible bar chart component that supports both vertical and horizontal orientations.
|
|
32
|
+
* Delegates rendering to either VerticalBarChart or HorizontalBarChart based on the variant prop.
|
|
33
|
+
*
|
|
34
|
+
* @component
|
|
35
|
+
* @param {BarChartProps} props - The props object
|
|
36
|
+
* @param {BarChartData[]} props.data - Array of data objects containing chart values
|
|
37
|
+
* @param {BarChartVariant} [props.variant='vertical'] - Chart orientation: 'vertical' for vertical bars or 'horizontal' for horizontal bars
|
|
38
|
+
* @returns {React.ReactElement} Rendered bar chart component
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* const data = [
|
|
42
|
+
* { month: 'January', sales: 400, revenue: 2400 },
|
|
43
|
+
* { month: 'February', sales: 300, revenue: 1398 }
|
|
44
|
+
* ];
|
|
45
|
+
* const config = {
|
|
46
|
+
* sales: { label: 'Sales', color: '#2563eb' },
|
|
47
|
+
* revenue: { label: 'Revenue', color: '#7c3aed' }
|
|
48
|
+
* };
|
|
49
|
+
*
|
|
50
|
+
* return (
|
|
51
|
+
* <BarChart
|
|
52
|
+
* data={data}
|
|
53
|
+
* variant="vertical"
|
|
54
|
+
* dataKeys={['sales', 'revenue']}
|
|
55
|
+
* xAxisKey="month"
|
|
56
|
+
* config={config}
|
|
57
|
+
* />
|
|
58
|
+
* );
|
|
59
|
+
*/
|
|
22
60
|
const BarChart: React.FC<BarChartProps> = ({
|
|
23
61
|
variant = 'vertical',
|
|
24
62
|
...props
|
|
@@ -16,10 +16,47 @@ import type {
|
|
|
16
16
|
TitleProps,
|
|
17
17
|
} from '../types/types';
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Data object for HorizontalBarChart
|
|
21
|
+
* @typedef {Object} HorizontalBarChartData
|
|
22
|
+
* @property {string|number} [key] - Dynamic data properties
|
|
23
|
+
*/
|
|
19
24
|
export interface HorizontalBarChartData {
|
|
20
25
|
[key: string]: string | number;
|
|
21
26
|
}
|
|
22
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Props for the HorizontalBarChart component
|
|
30
|
+
* @typedef {Object} HorizontalBarChartProps
|
|
31
|
+
* @property {HorizontalBarChartData[]} data - Array of data objects to display
|
|
32
|
+
* @property {string[]} dataKeys - Array of keys from data objects to visualize as bars
|
|
33
|
+
* @property {string} xAxisKey - The key to use for Y-axis (category) labels
|
|
34
|
+
* @property {ChartConfig} config - Chart configuration with color mappings for data keys
|
|
35
|
+
* @property {number} [height] - Chart height in pixels (auto-calculated if not provided)
|
|
36
|
+
* @property {MarginProps} [margin={top: 20, right: 30, bottom: 20, left: -20}] - Chart margins
|
|
37
|
+
* @property {number} [barSize=32] - Height of each bar in pixels
|
|
38
|
+
* @property {number|number[]} [radius=5] - Border radius for bars (single value or [top-left, top-right, bottom-right, bottom-left])
|
|
39
|
+
* @property {string} [stackId] - ID for stacking multiple bars together
|
|
40
|
+
* @property {boolean} [hideXAxis=false] - Whether to hide the X-axis
|
|
41
|
+
* @property {number} [yAxisWidth=100] - Width allocated for Y-axis labels
|
|
42
|
+
* @property {Function} [yAxisTickFormatter] - Function to format Y-axis tick labels
|
|
43
|
+
* @property {Function} [xAxisTickFormatter] - Function to format X-axis tick labels
|
|
44
|
+
* @property {boolean} [showTooltip=true] - Whether to show tooltip on hover
|
|
45
|
+
* @property {boolean|object} [tooltipCursor=false] - Tooltip cursor appearance
|
|
46
|
+
* @property {boolean} [hideTooltipLabel=true] - Whether to hide the label in tooltip
|
|
47
|
+
* @property {'line'|'dot'|'dashed'} [tooltipIndicator='line'] - Tooltip indicator style
|
|
48
|
+
* @property {LegendProps} [legend] - Legend configuration props
|
|
49
|
+
* @property {boolean} [showLegend=false] - Whether to display the legend
|
|
50
|
+
* @property {string} [title] - Chart title text
|
|
51
|
+
* @property {TitleProps} [titleProps={variant: 'h3', className: ''}] - Title styling props
|
|
52
|
+
* @property {string} [subtitle] - Chart subtitle text
|
|
53
|
+
* @property {SubTitleProps} [subtitleProps={variant: 'muted', className: ''}] - Subtitle styling props
|
|
54
|
+
* @property {string} [className] - CSS class for the container
|
|
55
|
+
* @property {Function} [onBarClick] - Callback function when a bar is clicked
|
|
56
|
+
* @property {number} [animationDuration=750] - Duration of animations in milliseconds
|
|
57
|
+
* @property {'ease'|'ease-in'|'ease-out'|'ease-in-out'|'linear'} [animationEasing='ease-in-out'] - Easing function for animations
|
|
58
|
+
* @property {boolean} [accessibilityLayer=true] - Enable accessibility features
|
|
59
|
+
*/
|
|
23
60
|
export interface HorizontalBarChartProps {
|
|
24
61
|
// Core data
|
|
25
62
|
data: HorizontalBarChartData[];
|
|
@@ -74,6 +111,62 @@ export interface HorizontalBarChartProps {
|
|
|
74
111
|
accessibilityLayer?: boolean;
|
|
75
112
|
}
|
|
76
113
|
|
|
114
|
+
/**
|
|
115
|
+
* HorizontalBarChart Component
|
|
116
|
+
* Displays data as horizontal bars with full customization support for axes, tooltips, legends, and animations.
|
|
117
|
+
* The chart dynamically calculates height based on data length if height is not provided.
|
|
118
|
+
*
|
|
119
|
+
* @component
|
|
120
|
+
* @param {HorizontalBarChartProps} props - The component props
|
|
121
|
+
* @param {HorizontalBarChartData[]} props.data - Array of data objects to display
|
|
122
|
+
* @param {string[]} props.dataKeys - Keys from data objects to visualize
|
|
123
|
+
* @param {string} props.xAxisKey - The key for Y-axis category labels
|
|
124
|
+
* @param {ChartConfig} props.config - Chart color and display configuration
|
|
125
|
+
* @param {number} [props.height] - Chart height; auto-calculated if not provided
|
|
126
|
+
* @param {MarginProps} [props.margin] - Chart margin spacing
|
|
127
|
+
* @param {number} [props.barSize] - Height of each bar in pixels
|
|
128
|
+
* @param {number|number[]} [props.radius] - Border radius for bar corners
|
|
129
|
+
* @param {string} [props.stackId] - ID for stacked bars
|
|
130
|
+
* @param {boolean} [props.hideXAxis] - Hide/show the X-axis
|
|
131
|
+
* @param {number} [props.yAxisWidth] - Width of Y-axis label area
|
|
132
|
+
* @param {Function} [props.yAxisTickFormatter] - Custom Y-axis label formatter
|
|
133
|
+
* @param {Function} [props.xAxisTickFormatter] - Custom X-axis label formatter
|
|
134
|
+
* @param {boolean} [props.showTooltip] - Show/hide tooltip
|
|
135
|
+
* @param {boolean|object} [props.tooltipCursor] - Tooltip cursor style
|
|
136
|
+
* @param {boolean} [props.hideTooltipLabel] - Hide/show tooltip label
|
|
137
|
+
* @param {'line'|'dot'|'dashed'} [props.tooltipIndicator] - Tooltip indicator style
|
|
138
|
+
* @param {LegendProps} [props.legend] - Legend configuration
|
|
139
|
+
* @param {boolean} [props.showLegend] - Show/hide legend
|
|
140
|
+
* @param {string} [props.title] - Chart title
|
|
141
|
+
* @param {TitleProps} [props.titleProps] - Title styling
|
|
142
|
+
* @param {string} [props.subtitle] - Chart subtitle
|
|
143
|
+
* @param {SubTitleProps} [props.subtitleProps] - Subtitle styling
|
|
144
|
+
* @param {string} [props.className] - Container CSS class
|
|
145
|
+
* @param {Function} [props.onBarClick] - Click handler callback
|
|
146
|
+
* @param {number} [props.animationDuration] - Animation duration in ms
|
|
147
|
+
* @param {'ease'|'ease-in'|'ease-out'|'ease-in-out'|'linear'} [props.animationEasing] - Animation easing
|
|
148
|
+
* @param {boolean} [props.accessibilityLayer] - Enable accessibility features
|
|
149
|
+
* @returns {React.ReactElement} Rendered horizontal bar chart
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* const data = [
|
|
153
|
+
* { category: 'Category A', value: 120 },
|
|
154
|
+
* { category: 'Category B', value: 200 }
|
|
155
|
+
* ];
|
|
156
|
+
* const config = {
|
|
157
|
+
* value: { label: 'Value', color: '#3b82f6' }
|
|
158
|
+
* };
|
|
159
|
+
*
|
|
160
|
+
* return (
|
|
161
|
+
* <HorizontalBarChart
|
|
162
|
+
* data={data}
|
|
163
|
+
* dataKeys={['value']}
|
|
164
|
+
* xAxisKey="category"
|
|
165
|
+
* config={config}
|
|
166
|
+
* title="Sales by Category"
|
|
167
|
+
* />
|
|
168
|
+
* );
|
|
169
|
+
*/
|
|
77
170
|
const HorizontalBarChart: React.FC<HorizontalBarChartProps> = ({
|
|
78
171
|
data,
|
|
79
172
|
dataKeys,
|
|
@@ -23,10 +23,54 @@ import type {
|
|
|
23
23
|
TitleProps,
|
|
24
24
|
} from '../types/types';
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Data object for VerticalBarChart
|
|
28
|
+
* @typedef {Object} VerticalBarChartData
|
|
29
|
+
* @property {string|number} [key] - Dynamic data properties
|
|
30
|
+
*/
|
|
26
31
|
export interface VerticalBarChartData {
|
|
27
32
|
[key: string]: string | number;
|
|
28
33
|
}
|
|
29
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Props for the VerticalBarChart component
|
|
37
|
+
* @typedef {Object} VerticalBarChartProps
|
|
38
|
+
* @property {VerticalBarChartData[]} data - Array of data objects to display
|
|
39
|
+
* @property {string[]} dataKeys - Array of keys from data objects to visualize as bars
|
|
40
|
+
* @property {string} xAxisKey - The key to use for X-axis (category) labels
|
|
41
|
+
* @property {ChartConfig} config - Chart configuration with color mappings for data keys
|
|
42
|
+
* @property {number} [height=400] - Chart height in pixels
|
|
43
|
+
* @property {MarginProps} [margin={top: 20, right: 30, bottom: 20, left: 30}] - Chart margins
|
|
44
|
+
* @property {number} [barSize] - Width of each bar in pixels
|
|
45
|
+
* @property {number} [barGap=4] - Gap between bars in pixels
|
|
46
|
+
* @property {number|string} [barCategoryGap='10%'] - Gap between bar groups (pixels or percentage)
|
|
47
|
+
* @property {number|number[]} [radius=4] - Border radius for bars (single value or [top-left, top-right, bottom-right, bottom-left])
|
|
48
|
+
* @property {string} [stackId] - ID for stacking multiple bars together
|
|
49
|
+
* @property {boolean} [showGrid=true] - Whether to show the cartesian grid
|
|
50
|
+
* @property {string|number} [gridStrokeDasharray='3 3'] - Grid line dash pattern
|
|
51
|
+
* @property {Function} [xAxisTickFormatter] - Function to format X-axis tick labels
|
|
52
|
+
* @property {Function} [yAxisTickFormatter] - Function to format Y-axis tick labels
|
|
53
|
+
* @property {boolean} [showLabels=false] - Whether to show value labels on bars
|
|
54
|
+
* @property {'top'|'bottom'|'left'|'right'|'inside'|'outside'|'insideLeft'|'insideRight'|'insideTop'|'insideBottom'|'center'} [labelPosition='top'] - Position of bar labels
|
|
55
|
+
* @property {Function} [labelFormatter] - Function to format label values
|
|
56
|
+
* @property {boolean} [showTooltip=true] - Whether to show tooltip on hover
|
|
57
|
+
* @property {boolean|object} [tooltipCursor=false] - Tooltip cursor appearance
|
|
58
|
+
* @property {boolean} [hideTooltipLabel=false] - Whether to hide the label in tooltip
|
|
59
|
+
* @property {'line'|'dot'|'dashed'} [tooltipIndicator='dashed'] - Tooltip indicator style
|
|
60
|
+
* @property {LegendProps} [legend] - Legend configuration props
|
|
61
|
+
* @property {boolean} [showLegend=false] - Whether to display the legend
|
|
62
|
+
* @property {string} [title] - Chart title text
|
|
63
|
+
* @property {TitleProps} [titleProps={variant: 'h3', className: ''}] - Title styling props
|
|
64
|
+
* @property {string} [subtitle] - Chart subtitle text
|
|
65
|
+
* @property {SubTitleProps} [subtitleProps={variant: 'muted', className: ''}] - Subtitle styling props
|
|
66
|
+
* @property {string} [className] - CSS class for the container
|
|
67
|
+
* @property {boolean} [activeBar=false] - Enable/disable active bar highlighting
|
|
68
|
+
* @property {number} [activeBarIndex] - Index of the initially active bar
|
|
69
|
+
* @property {Function} [onBarClick] - Callback function when a bar is clicked
|
|
70
|
+
* @property {number} [animationDuration=750] - Duration of animations in milliseconds
|
|
71
|
+
* @property {'ease'|'ease-in'|'ease-out'|'ease-in-out'|'linear'} [animationEasing='ease-in-out'] - Easing function for animations
|
|
72
|
+
* @property {boolean} [accessibilityLayer=true] - Enable accessibility features
|
|
73
|
+
*/
|
|
30
74
|
export interface VerticalBarChartProps {
|
|
31
75
|
// Core data
|
|
32
76
|
data: VerticalBarChartData[];
|
|
@@ -101,6 +145,72 @@ export interface VerticalBarChartProps {
|
|
|
101
145
|
accessibilityLayer?: boolean;
|
|
102
146
|
}
|
|
103
147
|
|
|
148
|
+
/**
|
|
149
|
+
* VerticalBarChart Component
|
|
150
|
+
* Displays data as vertical bars with comprehensive customization for grid, labels, tooltips, legends, and animations.
|
|
151
|
+
* Supports active bar highlighting with state management for user interaction.
|
|
152
|
+
*
|
|
153
|
+
* @component
|
|
154
|
+
* @param {VerticalBarChartProps} props - The component props
|
|
155
|
+
* @param {VerticalBarChartData[]} props.data - Array of data objects to display
|
|
156
|
+
* @param {string[]} props.dataKeys - Keys from data objects to visualize as bars
|
|
157
|
+
* @param {string} props.xAxisKey - The key for X-axis category labels
|
|
158
|
+
* @param {ChartConfig} props.config - Chart color and display configuration
|
|
159
|
+
* @param {number} [props.height] - Chart height in pixels
|
|
160
|
+
* @param {MarginProps} [props.margin] - Chart margin spacing
|
|
161
|
+
* @param {number} [props.barSize] - Width of each bar in pixels
|
|
162
|
+
* @param {number} [props.barGap] - Spacing between adjacent bars
|
|
163
|
+
* @param {number|string} [props.barCategoryGap] - Spacing between bar groups
|
|
164
|
+
* @param {number|number[]} [props.radius] - Border radius for bar corners
|
|
165
|
+
* @param {string} [props.stackId] - ID for stacked bars
|
|
166
|
+
* @param {boolean} [props.showGrid] - Show/hide background grid
|
|
167
|
+
* @param {string|number} [props.gridStrokeDasharray] - Grid line dash pattern
|
|
168
|
+
* @param {Function} [props.xAxisTickFormatter] - Custom X-axis label formatter
|
|
169
|
+
* @param {Function} [props.yAxisTickFormatter] - Custom Y-axis label formatter
|
|
170
|
+
* @param {boolean} [props.showLabels] - Show/hide value labels on bars
|
|
171
|
+
* @param {string} [props.labelPosition] - Label position relative to bars
|
|
172
|
+
* @param {Function} [props.labelFormatter] - Custom label value formatter
|
|
173
|
+
* @param {boolean} [props.showTooltip] - Show/hide tooltip
|
|
174
|
+
* @param {boolean|object} [props.tooltipCursor] - Tooltip cursor style
|
|
175
|
+
* @param {boolean} [props.hideTooltipLabel] - Hide/show tooltip label
|
|
176
|
+
* @param {'line'|'dot'|'dashed'} [props.tooltipIndicator] - Tooltip indicator style
|
|
177
|
+
* @param {LegendProps} [props.legend] - Legend configuration
|
|
178
|
+
* @param {boolean} [props.showLegend] - Show/hide legend
|
|
179
|
+
* @param {string} [props.title] - Chart title
|
|
180
|
+
* @param {TitleProps} [props.titleProps] - Title styling
|
|
181
|
+
* @param {string} [props.subtitle] - Chart subtitle
|
|
182
|
+
* @param {SubTitleProps} [props.subtitleProps] - Subtitle styling
|
|
183
|
+
* @param {string} [props.className] - Container CSS class
|
|
184
|
+
* @param {boolean} [props.activeBar] - Enable active bar highlighting
|
|
185
|
+
* @param {number} [props.activeBarIndex] - Initial active bar index
|
|
186
|
+
* @param {Function} [props.onBarClick] - Click handler callback
|
|
187
|
+
* @param {number} [props.animationDuration] - Animation duration in ms
|
|
188
|
+
* @param {'ease'|'ease-in'|'ease-out'|'ease-in-out'|'linear'} [props.animationEasing] - Animation easing
|
|
189
|
+
* @param {boolean} [props.accessibilityLayer] - Enable accessibility features
|
|
190
|
+
* @returns {React.ReactElement} Rendered vertical bar chart
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* const data = [
|
|
194
|
+
* { month: 'Jan', sales: 400, revenue: 2400 },
|
|
195
|
+
* { month: 'Feb', sales: 300, revenue: 1398 }
|
|
196
|
+
* ];
|
|
197
|
+
* const config = {
|
|
198
|
+
* sales: { label: 'Sales', color: '#3b82f6' },
|
|
199
|
+
* revenue: { label: 'Revenue', color: '#10b981' }
|
|
200
|
+
* };
|
|
201
|
+
*
|
|
202
|
+
* return (
|
|
203
|
+
* <VerticalBarChart
|
|
204
|
+
* data={data}
|
|
205
|
+
* dataKeys={['sales', 'revenue']}
|
|
206
|
+
* xAxisKey="month"
|
|
207
|
+
* config={config}
|
|
208
|
+
* title="Monthly Sales & Revenue"
|
|
209
|
+
* showLabels={true}
|
|
210
|
+
* activeBar={true}
|
|
211
|
+
* />
|
|
212
|
+
* );
|
|
213
|
+
*/
|
|
104
214
|
const VerticalBarChart: React.FC<VerticalBarChartProps> = ({
|
|
105
215
|
data,
|
|
106
216
|
dataKeys,
|
|
@@ -26,6 +26,32 @@ import {
|
|
|
26
26
|
TitleProps,
|
|
27
27
|
} from '../types/types';
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Props for the LineChart component
|
|
31
|
+
* @typedef {Object} LineChartProps
|
|
32
|
+
* @property {string} [title='Line Chart'] - Chart title text
|
|
33
|
+
* @property {boolean} [showSubtitle=false] - Whether to display subtitle
|
|
34
|
+
* @property {string} [subTitle=''] - Chart subtitle text
|
|
35
|
+
* @property {TitleProps} [titleProps={variant: 'large'}] - Title styling props
|
|
36
|
+
* @property {SubTitleProps} [subTitleProps={variant: 'small'}] - Subtitle styling props
|
|
37
|
+
* @property {ChartConfig} config - Chart configuration with color mappings for data keys
|
|
38
|
+
* @property {number} [width=700] - Chart width in pixels
|
|
39
|
+
* @property {number} [height=500] - Chart height in pixels
|
|
40
|
+
* @property {string} dataKey - The key in data objects to use for X-axis values
|
|
41
|
+
* @property {any[]} data - Array of data objects to display
|
|
42
|
+
* @property {LineItem[]} lines - Array of line configurations with curve types and colors
|
|
43
|
+
* @property {boolean} [showToolTip=true] - Whether to show tooltip on hover
|
|
44
|
+
* @property {boolean} [showLegend=true] - Whether to display the legend
|
|
45
|
+
* @property {CartesianGridProps} [cartesianGrid={showCartesianGrid: false}] - Grid configuration
|
|
46
|
+
* @property {AxisLabelProps} [axisLabelProps] - X and Y axis label configuration
|
|
47
|
+
* @property {BaseAxisProps} [baseAxisProps] - Base axis customization props
|
|
48
|
+
* @property {LegendProps} [legendSx] - Legend styling props
|
|
49
|
+
* @property {string} [className] - CSS class for the container
|
|
50
|
+
* @property {MarginProps} [margin={top: 20, right: 30, bottom: 20, left: 30}] - Chart margins
|
|
51
|
+
* @property {boolean} [hideTooltipLabel=false] - Whether to hide the label in tooltip
|
|
52
|
+
* @property {'line'|'dot'|'dashed'} [tooltipIndicator='line'] - Tooltip indicator style
|
|
53
|
+
* @property {boolean} [accessibilityLayer=true] - Enable accessibility features
|
|
54
|
+
*/
|
|
29
55
|
export type LineChartProps = {
|
|
30
56
|
// Core data
|
|
31
57
|
title?: string;
|
|
@@ -64,6 +90,14 @@ export type LineChartProps = {
|
|
|
64
90
|
accessibilityLayer?: boolean;
|
|
65
91
|
};
|
|
66
92
|
|
|
93
|
+
/**
|
|
94
|
+
* Configuration for a single line in the LineChart
|
|
95
|
+
* @typedef {Object} LineItem
|
|
96
|
+
* @property {CurveType} type - Curve type for the line ('linear', 'monotone', 'natural', 'step', 'stepBefore', 'stepAfter', 'basisOpen', 'basis', 'basisClosed')
|
|
97
|
+
* @property {string} dataKey - The key in data objects to use for Y-axis values
|
|
98
|
+
* @property {string} stroke - Line color (CSS color value)
|
|
99
|
+
* @property {any} [activeDot] - Configuration for the active dot on hover
|
|
100
|
+
*/
|
|
67
101
|
type LineItem = {
|
|
68
102
|
type: CurveType;
|
|
69
103
|
dataKey: string;
|
|
@@ -71,6 +105,61 @@ type LineItem = {
|
|
|
71
105
|
activeDot?: any;
|
|
72
106
|
};
|
|
73
107
|
|
|
108
|
+
/**
|
|
109
|
+
* LineChart Component
|
|
110
|
+
* Displays one or more lines with customizable curve types, colors, and interactive features.
|
|
111
|
+
* Supports grid, tooltips, legends, and labeled axes.
|
|
112
|
+
*
|
|
113
|
+
* @component
|
|
114
|
+
* @param {LineChartProps} props - The component props
|
|
115
|
+
* @param {string} [props.title] - Chart title
|
|
116
|
+
* @param {boolean} [props.showSubtitle] - Show/hide subtitle
|
|
117
|
+
* @param {string} [props.subTitle] - Chart subtitle
|
|
118
|
+
* @param {TitleProps} [props.titleProps] - Title styling
|
|
119
|
+
* @param {SubTitleProps} [props.subTitleProps] - Subtitle styling
|
|
120
|
+
* @param {ChartConfig} props.config - Chart color configuration
|
|
121
|
+
* @param {number} [props.width] - Chart width in pixels
|
|
122
|
+
* @param {number} [props.height] - Chart height in pixels
|
|
123
|
+
* @param {string} props.dataKey - X-axis data key
|
|
124
|
+
* @param {any[]} props.data - Chart data array
|
|
125
|
+
* @param {LineItem[]} props.lines - Line configurations
|
|
126
|
+
* @param {boolean} [props.showToolTip] - Show/hide tooltip
|
|
127
|
+
* @param {boolean} [props.showLegend] - Show/hide legend
|
|
128
|
+
* @param {CartesianGridProps} [props.cartesianGrid] - Grid settings
|
|
129
|
+
* @param {AxisLabelProps} [props.axisLabelProps] - Axis labels
|
|
130
|
+
* @param {BaseAxisProps} [props.baseAxisProps] - Axis customization
|
|
131
|
+
* @param {LegendProps} [props.legendSx] - Legend styling
|
|
132
|
+
* @param {string} [props.className] - Container CSS class
|
|
133
|
+
* @param {MarginProps} [props.margin] - Chart margins
|
|
134
|
+
* @param {boolean} [props.hideTooltipLabel] - Hide tooltip label
|
|
135
|
+
* @param {'line'|'dot'|'dashed'} [props.tooltipIndicator] - Tooltip indicator style
|
|
136
|
+
* @param {boolean} [props.accessibilityLayer] - Enable accessibility features
|
|
137
|
+
* @returns {React.ReactElement} Rendered line chart
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* const data = [
|
|
141
|
+
* { month: 'Jan', sales: 400, revenue: 2400 },
|
|
142
|
+
* { month: 'Feb', sales: 300, revenue: 1398 }
|
|
143
|
+
* ];
|
|
144
|
+
* const config = {
|
|
145
|
+
* sales: { label: 'Sales', color: '#3b82f6' },
|
|
146
|
+
* revenue: { label: 'Revenue', color: '#10b981' }
|
|
147
|
+
* };
|
|
148
|
+
* const lines = [
|
|
149
|
+
* { dataKey: 'sales', stroke: '#3b82f6', type: 'monotone' },
|
|
150
|
+
* { dataKey: 'revenue', stroke: '#10b981', type: 'monotone' }
|
|
151
|
+
* ];
|
|
152
|
+
*
|
|
153
|
+
* return (
|
|
154
|
+
* <LineChart
|
|
155
|
+
* data={data}
|
|
156
|
+
* dataKey="month"
|
|
157
|
+
* lines={lines}
|
|
158
|
+
* config={config}
|
|
159
|
+
* title="Sales & Revenue Trend"
|
|
160
|
+
* />
|
|
161
|
+
* );
|
|
162
|
+
*/
|
|
74
163
|
export const LineChart = ({
|
|
75
164
|
title = 'Line Chart',
|
|
76
165
|
showSubtitle = false,
|
|
@@ -15,6 +15,26 @@ import {
|
|
|
15
15
|
TitleProps,
|
|
16
16
|
} from '../types/types';
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Props for the PieChart component
|
|
20
|
+
* @typedef {Object} PieChartProps
|
|
21
|
+
* @property {string} [title='Pie Chart'] - Chart title text
|
|
22
|
+
* @property {boolean} [showSubtitle=false] - Whether to display subtitle
|
|
23
|
+
* @property {string} [subTitle=''] - Chart subtitle text
|
|
24
|
+
* @property {TitleProps} [titleProps={variant: 'large'}] - Title styling props
|
|
25
|
+
* @property {SubTitleProps} [subTitleProps={variant: 'small'}] - Subtitle styling props
|
|
26
|
+
* @property {MarginProps} [margin] - Chart margins
|
|
27
|
+
* @property {number} [width=500] - Chart width in pixels
|
|
28
|
+
* @property {number} [height=500] - Chart height in pixels
|
|
29
|
+
* @property {PieProps} pie1 - Configuration for the primary pie (required)
|
|
30
|
+
* @property {PieProps} [pie2] - Configuration for the secondary pie (optional, for donut charts)
|
|
31
|
+
* @property {string} [className] - CSS class for the container
|
|
32
|
+
* @property {boolean} [showLegend=true] - Whether to display the legend
|
|
33
|
+
* @property {LegendProps} [legendSx] - Legend styling props
|
|
34
|
+
* @property {boolean} [showToolTip=true] - Whether to show tooltip on hover
|
|
35
|
+
* @property {ChartConfig} config - Chart configuration with color mappings
|
|
36
|
+
* @property {boolean} [hideTooltipLabel=false] - Whether to hide the label in tooltip
|
|
37
|
+
*/
|
|
18
38
|
export type PieChartProps = {
|
|
19
39
|
title?: string;
|
|
20
40
|
showSubtitle?: boolean;
|
|
@@ -34,6 +54,22 @@ export type PieChartProps = {
|
|
|
34
54
|
hideTooltipLabel?: boolean;
|
|
35
55
|
};
|
|
36
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Configuration for a single pie in the PieChart
|
|
59
|
+
* @typedef {Object} PieProps
|
|
60
|
+
* @property {any[]} data - Array of data objects for the pie slices
|
|
61
|
+
* @property {string} dataKey - The key in data objects to use for slice values
|
|
62
|
+
* @property {string} [nameKey] - The key in data objects to use for slice labels
|
|
63
|
+
* @property {number} [innerRadius] - Inner radius for donut charts (creates hollow center)
|
|
64
|
+
* @property {number} [outerRadius] - Outer radius of the pie
|
|
65
|
+
* @property {string} [fill] - Default fill color for pie slices
|
|
66
|
+
* @property {boolean} [label] - Whether to show labels on pie slices
|
|
67
|
+
* @property {string} [cx='50%'] - X-coordinate of pie center (percentage or pixels)
|
|
68
|
+
* @property {string} [cy='50%'] - Y-coordinate of pie center (percentage or pixels)
|
|
69
|
+
* @property {number} [startAngle] - Starting angle of the pie in degrees
|
|
70
|
+
* @property {number} [endAngle] - Ending angle of the pie in degrees
|
|
71
|
+
* @property {string[]} [colors] - Array of colors for pie slices (cycles if fewer than slices)
|
|
72
|
+
*/
|
|
37
73
|
type PieProps = {
|
|
38
74
|
data: any[];
|
|
39
75
|
dataKey: string;
|
|
@@ -49,6 +85,56 @@ type PieProps = {
|
|
|
49
85
|
colors?: string[];
|
|
50
86
|
};
|
|
51
87
|
|
|
88
|
+
/**
|
|
89
|
+
* PieChart Component
|
|
90
|
+
* Displays data as one or two pie/donut charts with customizable colors, labels, and legend.
|
|
91
|
+
* Supports single pie, donut, or dual-pie layouts.
|
|
92
|
+
*
|
|
93
|
+
* @component
|
|
94
|
+
* @param {PieChartProps} props - The component props
|
|
95
|
+
* @param {string} [props.title] - Chart title
|
|
96
|
+
* @param {boolean} [props.showSubtitle] - Show/hide subtitle
|
|
97
|
+
* @param {string} [props.subTitle] - Chart subtitle
|
|
98
|
+
* @param {TitleProps} [props.titleProps] - Title styling
|
|
99
|
+
* @param {SubTitleProps} [props.subTitleProps] - Subtitle styling
|
|
100
|
+
* @param {MarginProps} [props.margin] - Chart margins
|
|
101
|
+
* @param {number} [props.width] - Chart width in pixels
|
|
102
|
+
* @param {number} [props.height] - Chart height in pixels
|
|
103
|
+
* @param {PieProps} props.pie1 - Primary pie configuration
|
|
104
|
+
* @param {PieProps} [props.pie2] - Secondary pie configuration (creates dual-pie)
|
|
105
|
+
* @param {string} [props.className] - Container CSS class
|
|
106
|
+
* @param {boolean} [props.showLegend] - Show/hide legend
|
|
107
|
+
* @param {LegendProps} [props.legendSx] - Legend styling
|
|
108
|
+
* @param {boolean} [props.showToolTip] - Show/hide tooltip
|
|
109
|
+
* @param {ChartConfig} props.config - Chart color configuration
|
|
110
|
+
* @param {boolean} [props.hideTooltipLabel] - Hide tooltip label
|
|
111
|
+
* @returns {React.ReactElement} Rendered pie chart
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* const data = [
|
|
115
|
+
* { name: 'Slice A', value: 400 },
|
|
116
|
+
* { name: 'Slice B', value: 300 },
|
|
117
|
+
* { name: 'Slice C', value: 300 }
|
|
118
|
+
* ];
|
|
119
|
+
* const config = {
|
|
120
|
+
* name: { label: 'Category', color: '#3b82f6' },
|
|
121
|
+
* value: { label: 'Value', color: '#10b981' }
|
|
122
|
+
* };
|
|
123
|
+
*
|
|
124
|
+
* return (
|
|
125
|
+
* <PieChart
|
|
126
|
+
* pie1={{
|
|
127
|
+
* data: data,
|
|
128
|
+
* dataKey: 'value',
|
|
129
|
+
* nameKey: 'name',
|
|
130
|
+
* colors: ['#3b82f6', '#10b981', '#f59e0b']
|
|
131
|
+
* }}
|
|
132
|
+
* config={config}
|
|
133
|
+
* title="Sales Distribution"
|
|
134
|
+
* showLegend={true}
|
|
135
|
+
* />
|
|
136
|
+
* );
|
|
137
|
+
*/
|
|
52
138
|
export const PieChart = ({
|
|
53
139
|
title = 'Pie Chart',
|
|
54
140
|
showSubtitle = false,
|