@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
|
@@ -87,11 +87,13 @@ const TableView = React.forwardRef<HTMLDivElement, TableViewProps>(
|
|
|
87
87
|
index === 0 && 'pl-4 rounded-tl-md',
|
|
88
88
|
index === headerGroup.headers.length - 1 &&
|
|
89
89
|
'rounded-tr-md',
|
|
90
|
+
(header.column.columnDef.maxSize || header.column.columnDef.size) && 'overflow-hidden text-ellipsis whitespace-nowrap',
|
|
90
91
|
cellClassName,
|
|
91
92
|
)}
|
|
92
93
|
style={{
|
|
93
|
-
width:
|
|
94
|
-
|
|
94
|
+
width: header.column.columnDef.size ?? (header.getSize() !== 150 ? header.getSize() : undefined),
|
|
95
|
+
maxWidth: header.column.columnDef.maxSize ?? undefined,
|
|
96
|
+
minWidth: header.column.columnDef.minSize ?? undefined,
|
|
95
97
|
}}
|
|
96
98
|
>
|
|
97
99
|
{header.isPlaceholder ? null : (
|
|
@@ -135,10 +137,19 @@ const TableView = React.forwardRef<HTMLDivElement, TableViewProps>(
|
|
|
135
137
|
{/* Use visible header columns count to render correct number of skeleton cells */}
|
|
136
138
|
{table
|
|
137
139
|
.getHeaderGroups()[0]
|
|
138
|
-
?.headers.map((
|
|
140
|
+
?.headers.map((header: any, cellIndex: number) => (
|
|
139
141
|
<TableCell
|
|
140
142
|
key={`skeleton-cell-${rowIndex}-${cellIndex}`}
|
|
141
|
-
className={cn(
|
|
143
|
+
className={cn(
|
|
144
|
+
cellIndex === 0 && 'pl-4',
|
|
145
|
+
(header.column.columnDef.maxSize || header.column.columnDef.size) && 'overflow-hidden text-ellipsis whitespace-nowrap',
|
|
146
|
+
cellClassName
|
|
147
|
+
)}
|
|
148
|
+
style={{
|
|
149
|
+
width: header.column.columnDef.size ?? (header.getSize() !== 150 ? header.getSize() : undefined),
|
|
150
|
+
maxWidth: header.column.columnDef.maxSize ?? undefined,
|
|
151
|
+
minWidth: header.column.columnDef.minSize ?? undefined,
|
|
152
|
+
}}
|
|
142
153
|
>
|
|
143
154
|
<Skeleton className="h-4 w-full" />
|
|
144
155
|
</TableCell>
|
|
@@ -162,7 +173,22 @@ const TableView = React.forwardRef<HTMLDivElement, TableViewProps>(
|
|
|
162
173
|
{row.getVisibleCells().map((cell: any, index: number) => (
|
|
163
174
|
<TableCell
|
|
164
175
|
key={cell.id}
|
|
165
|
-
className={cn(
|
|
176
|
+
className={cn(
|
|
177
|
+
index === 0 && 'pl-4',
|
|
178
|
+
(cell.column.columnDef.maxSize || cell.column.columnDef.size) && 'overflow-hidden text-ellipsis whitespace-nowrap',
|
|
179
|
+
cellClassName
|
|
180
|
+
)}
|
|
181
|
+
style={{
|
|
182
|
+
width: cell.column.columnDef.size ?? (cell.column.getSize() !== 150 ? cell.column.getSize() : undefined),
|
|
183
|
+
maxWidth: cell.column.columnDef.maxSize ?? undefined,
|
|
184
|
+
minWidth: cell.column.columnDef.minSize ?? undefined,
|
|
185
|
+
}}
|
|
186
|
+
onClick={(e) => {
|
|
187
|
+
// Prevent row click when clicking on checkbox column
|
|
188
|
+
if (cell.column.id === 'select') {
|
|
189
|
+
e.stopPropagation();
|
|
190
|
+
}
|
|
191
|
+
}}
|
|
166
192
|
>
|
|
167
193
|
{flexRender(
|
|
168
194
|
cell.column.columnDef.cell,
|
|
@@ -5,6 +5,37 @@ import {
|
|
|
5
5
|
TypographyProps,
|
|
6
6
|
} from '../../DataDisplay/Typography/Typography';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Props for EmptyIllustration component
|
|
10
|
+
* @typedef {Object} EmptyIllustrationProps
|
|
11
|
+
* @property {string} message - Text message displayed below the empty illustration
|
|
12
|
+
* @property {TypographyProps} [messageProps] - Typography props for styling the message text
|
|
13
|
+
* @property {string} [containerClassName] - CSS class for the container div
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* EmptyIllustration component for displaying empty state messaging
|
|
18
|
+
* Shows decorative empty state icon with customizable message
|
|
19
|
+
*
|
|
20
|
+
* @component
|
|
21
|
+
* @param {Object} props - Component props
|
|
22
|
+
* @param {string} props.message - Text message to display below illustration
|
|
23
|
+
* @param {TypographyProps} [props.messageProps] - Typography styling props (variant, className, etc.)
|
|
24
|
+
* @param {string} [props.containerClassName] - Additional CSS classes for the container
|
|
25
|
+
* @returns {JSX.Element} Empty state illustration with message
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // Basic empty state
|
|
29
|
+
* <EmptyIllustration message="No data found" />
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* // With custom styling
|
|
33
|
+
* <EmptyIllustration
|
|
34
|
+
* message="No search results match your criteria"
|
|
35
|
+
* messageProps={{ variant: "p", className: "text-gray-600" }}
|
|
36
|
+
* containerClassName="py-12"
|
|
37
|
+
* />
|
|
38
|
+
*/
|
|
8
39
|
export const EmptyIllustration = ({
|
|
9
40
|
message,
|
|
10
41
|
messageProps,
|
|
@@ -4,6 +4,20 @@ import { Button } from '../../Input/Button/Button';
|
|
|
4
4
|
import { Typography } from '../Typography/Typography';
|
|
5
5
|
import './CustomJoyRideStyles.css';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for individual tour step
|
|
9
|
+
* @typedef {Object} JoyrideStep
|
|
10
|
+
* @property {string} target - CSS selector for the element to highlight
|
|
11
|
+
* @property {string | ReactNode} content - Description or content for the step
|
|
12
|
+
* @property {string} [title] - Title text for the step tooltip
|
|
13
|
+
* @property {'top' | 'bottom' | 'left' | 'right' | 'center' | 'auto'} [placement='auto'] - Tooltip placement relative to target
|
|
14
|
+
* @property {boolean} [disableBeacon] - Hide the beacon pulse animation
|
|
15
|
+
* @property {boolean} [hideCloseButton] - Hide close button in tooltip
|
|
16
|
+
* @property {boolean} [showProgress] - Display progress indicator
|
|
17
|
+
* @property {boolean} [showSkipButton] - Show skip button in tooltip
|
|
18
|
+
* @property {boolean} [spotlightClicks] - Allow clicking inside spotlight area
|
|
19
|
+
* @property {Record<string, any>} [styles] - Custom styles for tooltip
|
|
20
|
+
*/
|
|
7
21
|
interface JoyrideStep {
|
|
8
22
|
target: string;
|
|
9
23
|
content: string | ReactNode;
|
|
@@ -17,6 +31,56 @@ interface JoyrideStep {
|
|
|
17
31
|
styles?: Record<string, any>;
|
|
18
32
|
}
|
|
19
33
|
|
|
34
|
+
/**
|
|
35
|
+
* ReactJoyride component for interactive product tours
|
|
36
|
+
* Provides guided walkthrough of UI elements with customizable steps
|
|
37
|
+
*
|
|
38
|
+
* @component
|
|
39
|
+
* @param {Object} props - Tour configuration
|
|
40
|
+
* @param {JoyrideStep[]} props.steps - Array of tour steps with targets, content, and placement
|
|
41
|
+
* @param {ReactNode} [props.children] - Application content to overlay tour on
|
|
42
|
+
* @param {string} props.tourName - Unique identifier for the tour (for state management)
|
|
43
|
+
* @returns {JSX.Element} Tour overlay component with tour trigger button
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* // Basic product tour
|
|
47
|
+
* <ReactJoyRide
|
|
48
|
+
* tourName="dashboard-tour"
|
|
49
|
+
* steps={[
|
|
50
|
+
* {
|
|
51
|
+
* target: ".logo",
|
|
52
|
+
* title: "Welcome",
|
|
53
|
+
* content: "Welcome to our dashboard!",
|
|
54
|
+
* placement: "bottom"
|
|
55
|
+
* },
|
|
56
|
+
* {
|
|
57
|
+
* target: ".user-menu",
|
|
58
|
+
* title: "Profile",
|
|
59
|
+
* content: "Access your profile and settings here",
|
|
60
|
+
* placement: "left"
|
|
61
|
+
* }
|
|
62
|
+
* ]}
|
|
63
|
+
* >
|
|
64
|
+
* <Dashboard />
|
|
65
|
+
* </ReactJoyRide>
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* // Advanced tour with custom placement and styling
|
|
69
|
+
* <ReactJoyRide
|
|
70
|
+
* tourName="feature-tour"
|
|
71
|
+
* steps={[
|
|
72
|
+
* {
|
|
73
|
+
* target: ".new-feature",
|
|
74
|
+
* title: "New Feature",
|
|
75
|
+
* content: "Check out this exciting new feature",
|
|
76
|
+
* placement: "right",
|
|
77
|
+
* disableBeacon: false
|
|
78
|
+
* }
|
|
79
|
+
* ]}
|
|
80
|
+
* >
|
|
81
|
+
* <App />
|
|
82
|
+
* </ReactJoyRide>
|
|
83
|
+
*/
|
|
20
84
|
export const ReactJoyRide = ({
|
|
21
85
|
steps,
|
|
22
86
|
children,
|
|
@@ -2,6 +2,14 @@ import * as React from 'react';
|
|
|
2
2
|
|
|
3
3
|
import { Separator as ShadcnSaperator } from '@/shadcn-components/DataDisplay/Seperator/Seperator';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Props for Separator component
|
|
7
|
+
* @typedef {Object} SeparatorProps
|
|
8
|
+
* @property {'horizontal' | 'vertical'} [orientation='horizontal'] - Direction of the separator
|
|
9
|
+
* @property {boolean} [decorative=true] - If true, renders as non-semantic element for styling
|
|
10
|
+
* @property {string} [className] - Optional CSS class for custom styling
|
|
11
|
+
* @extends {React.ComponentPropsWithoutRef<typeof ShadcnSaperator>}
|
|
12
|
+
*/
|
|
5
13
|
interface SeparatorProps
|
|
6
14
|
extends React.ComponentPropsWithoutRef<typeof ShadcnSaperator> {
|
|
7
15
|
orientation?: 'horizontal' | 'vertical';
|
|
@@ -9,6 +17,28 @@ interface SeparatorProps
|
|
|
9
17
|
className?: string;
|
|
10
18
|
}
|
|
11
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Separator component for dividing content sections
|
|
22
|
+
* Renders semantic or decorative separator line
|
|
23
|
+
*
|
|
24
|
+
* @component
|
|
25
|
+
* @param {SeparatorProps} props - Separator configuration
|
|
26
|
+
* @param {'horizontal' | 'vertical'} [props.orientation='horizontal'] - Direction of the dividing line
|
|
27
|
+
* @param {boolean} [props.decorative=true] - Whether separator is decorative (non-semantic)
|
|
28
|
+
* @param {string} [props.className] - Additional CSS classes for styling
|
|
29
|
+
* @param {...React.ComponentPropsWithoutRef<typeof ShadcnSaperator>} [props] - Additional separator props
|
|
30
|
+
* @returns {JSX.Element} Separator line element
|
|
31
|
+
* @example
|
|
32
|
+
* // Horizontal separator
|
|
33
|
+
* <Separator />
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Vertical separator with custom styling
|
|
37
|
+
* <Separator
|
|
38
|
+
* orientation="vertical"
|
|
39
|
+
* className="h-12"
|
|
40
|
+
* />
|
|
41
|
+
*/
|
|
12
42
|
const Separator = React.forwardRef<
|
|
13
43
|
React.ElementRef<typeof ShadcnSaperator>,
|
|
14
44
|
SeparatorProps
|
|
@@ -29,4 +59,6 @@ const Separator = React.forwardRef<
|
|
|
29
59
|
},
|
|
30
60
|
);
|
|
31
61
|
|
|
62
|
+
Separator.displayName = 'Separator';
|
|
63
|
+
|
|
32
64
|
export { Separator };
|
|
@@ -1,3 +1,23 @@
|
|
|
1
1
|
import { Skeleton as SkeletonUI } from '@/shadcn-components/DataDisplay/Skeleton/Skeleton';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Skeleton component for loading placeholder animations
|
|
5
|
+
* Re-export of shadcn Skeleton component for use in DataDisplay module
|
|
6
|
+
*
|
|
7
|
+
* @component
|
|
8
|
+
* @param {React.ComponentProps<typeof SkeletonUI>} props - Standard HTML div props with className for styling
|
|
9
|
+
* @param {string} [props.className] - CSS classes for sizing and styling the skeleton (e.g., "h-12 w-12 rounded-full")
|
|
10
|
+
* @returns {JSX.Element} Animated skeleton placeholder
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* // Skeleton for profile picture
|
|
14
|
+
* <Skeleton className="h-12 w-12 rounded-full" />
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* // Skeleton for content block
|
|
18
|
+
* <div className="space-y-2">
|
|
19
|
+
* <Skeleton className="h-4 w-full" />
|
|
20
|
+
* <Skeleton className="h-4 w-3/4" />
|
|
21
|
+
* </div>
|
|
22
|
+
*/
|
|
3
23
|
export { SkeletonUI as Skeleton };
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { cn } from '@/lib/utils';
|
|
2
2
|
import { Typography, TypographyProps } from '../Typography/Typography';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Props for StatusCard component
|
|
6
|
+
* @typedef {Object} StatusCardProps
|
|
7
|
+
* @property {'green' | 'red' | 'orange' | 'yellow' | 'blue' | 'pink'} color - Color theme for the status card
|
|
8
|
+
* @property {string} text - Text content to display in the status card
|
|
9
|
+
* @property {string} [className] - Optional additional CSS classes
|
|
10
|
+
* @property {TypographyProps['variant']} [typographyVariant='small'] - Typography variant for text styling
|
|
11
|
+
*/
|
|
4
12
|
export type StatusCardProps = {
|
|
5
13
|
color: 'green' | 'red' | 'orange' | 'yellow' | 'blue' | 'pink';
|
|
6
14
|
text: string;
|
|
@@ -8,6 +16,34 @@ export type StatusCardProps = {
|
|
|
8
16
|
typographyVariant?: TypographyProps['variant'];
|
|
9
17
|
};
|
|
10
18
|
|
|
19
|
+
/**
|
|
20
|
+
* StatusCard component for displaying colored status badges
|
|
21
|
+
* Renders status indicators with color-coded backgrounds and text
|
|
22
|
+
*
|
|
23
|
+
* @component
|
|
24
|
+
* @param {StatusCardProps} props - StatusCard configuration
|
|
25
|
+
* @param {'green' | 'red' | 'orange' | 'yellow' | 'blue' | 'pink'} props.color - Status color (determines styling)
|
|
26
|
+
* @param {string} props.text - Status text to display
|
|
27
|
+
* @param {string} [props.className] - Additional CSS classes for custom styling
|
|
28
|
+
* @param {TypographyProps['variant']} [props.typographyVariant='small'] - Typography variant (h1-h6, p, small, etc.)
|
|
29
|
+
* @returns {JSX.Element} Colored status badge
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* // Active status
|
|
33
|
+
* <StatusCard
|
|
34
|
+
* color="green"
|
|
35
|
+
* text="Active"
|
|
36
|
+
* />
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* // Error status with custom styling
|
|
40
|
+
* <StatusCard
|
|
41
|
+
* color="red"
|
|
42
|
+
* text="Error"
|
|
43
|
+
* typographyVariant="p"
|
|
44
|
+
* className="font-bold"
|
|
45
|
+
* />
|
|
46
|
+
*/
|
|
11
47
|
export const StatusCard = ({
|
|
12
48
|
color,
|
|
13
49
|
text,
|
|
@@ -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)]" />
|
|
@@ -1,7 +1,23 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import { ReactNode, useEffect, useRef, useState } from 'react';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
Tooltip as ShadcnTooltip,
|
|
5
|
+
TooltipContent,
|
|
6
|
+
TooltipTrigger,
|
|
7
|
+
} from '@/shadcn-components/Feedback/Tooltip/Tooltip';
|
|
4
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
|
+
*/
|
|
5
21
|
export type TooltipProps = {
|
|
6
22
|
children: ReactNode;
|
|
7
23
|
title: ReactNode;
|
|
@@ -13,6 +29,48 @@ export type TooltipProps = {
|
|
|
13
29
|
delayDuration?: number;
|
|
14
30
|
};
|
|
15
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
|
+
*/
|
|
16
74
|
export const Tooltip = ({
|
|
17
75
|
children,
|
|
18
76
|
title,
|
|
@@ -22,6 +80,14 @@ export const Tooltip = ({
|
|
|
22
80
|
onOpenChange,
|
|
23
81
|
delayDuration,
|
|
24
82
|
}: TooltipProps) => {
|
|
83
|
+
const wrapperRef = useRef<HTMLSpanElement>(null);
|
|
84
|
+
|
|
85
|
+
// Force re-render on mount to ensure positioning works
|
|
86
|
+
const [, forceUpdate] = useState({});
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
forceUpdate({});
|
|
89
|
+
}, []);
|
|
90
|
+
|
|
25
91
|
return (
|
|
26
92
|
<ShadcnTooltip
|
|
27
93
|
open={open}
|
|
@@ -29,7 +95,9 @@ export const Tooltip = ({
|
|
|
29
95
|
onOpenChange={onOpenChange}
|
|
30
96
|
delayDuration={delayDuration}
|
|
31
97
|
>
|
|
32
|
-
<
|
|
98
|
+
<span ref={wrapperRef}>
|
|
99
|
+
<TooltipTrigger asChild>{children}</TooltipTrigger>
|
|
100
|
+
</span>
|
|
33
101
|
<TooltipContent side={placement}>{title}</TooltipContent>
|
|
34
102
|
</ShadcnTooltip>
|
|
35
103
|
);
|