pixelize-design-library 2.4.1-beta.11 → 2.4.1-beta.13
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/App.d.ts +4 -0
- package/dist/App.js +95 -0
- package/dist/Components/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/Components/AlertDialog/AlertDialog.js +1 -1
- package/dist/Components/Button/Button.d.ts +1 -1
- package/dist/Components/Button/Button.d.ts.map +1 -1
- package/dist/Components/Button/Button.js +2 -2
- package/dist/Components/Button/ButtonProps.d.ts +1 -1
- package/dist/Components/Button/ButtonProps.d.ts.map +1 -1
- package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.d.ts.map +1 -1
- package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.js +5 -2
- package/dist/Components/Checkbox/Checkbox.d.ts +1 -1
- package/dist/Components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/Components/Checkbox/Checkbox.js +2 -2
- package/dist/Components/Checkbox/CheckboxProps.d.ts +1 -1
- package/dist/Components/Checkbox/CheckboxProps.d.ts.map +1 -1
- package/dist/Components/Common/ErrorMessage.d.ts +2 -1
- package/dist/Components/Common/ErrorMessage.d.ts.map +1 -1
- package/dist/Components/Common/ErrorMessage.js +4 -2
- package/dist/Components/Common/FormLabel.d.ts +1 -1
- package/dist/Components/Common/FormLabel.d.ts.map +1 -1
- package/dist/Components/Common/FormLabel.js +15 -2
- package/dist/Components/Common/Label.d.ts +3 -1
- package/dist/Components/Common/Label.d.ts.map +1 -1
- package/dist/Components/Common/Label.js +2 -2
- package/dist/Components/Dropdown/DropDown.d.ts.map +1 -1
- package/dist/Components/Dropdown/DropDown.js +132 -14
- package/dist/Components/Dropdown/DropdownProps.d.ts +2 -0
- package/dist/Components/Dropdown/DropdownProps.d.ts.map +1 -1
- package/dist/Components/Editor/EditorProps.d.ts +1 -1
- package/dist/Components/Editor/EditorProps.d.ts.map +1 -1
- package/dist/Components/KanbanBoard/KanbanBoard.d.ts.map +1 -1
- package/dist/Components/KanbanBoard/KanbanBoard.js +5 -2
- package/dist/Components/KanbanBoard/MeasuredItem.d.ts.map +1 -1
- package/dist/Components/KanbanBoard/MeasuredItem.js +4 -2
- package/dist/Components/NavigationBar/NavigationBar.d.ts.map +1 -1
- package/dist/Components/NavigationBar/NavigationBar.js +3 -1
- package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts.map +1 -1
- package/dist/Components/OrgSwitcher/OrgSwitcher.js +40 -3
- package/dist/Components/ProductCard/ProductPrice.d.ts.map +1 -1
- package/dist/Components/ProductCard/ProductPrice.js +13 -7
- package/dist/Components/ProgressBar/ProgressBar.d.ts +1 -1
- package/dist/Components/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/Components/ProgressBar/ProgressBar.js +2 -2
- package/dist/Components/ProgressBar/ProgressBarProps.d.ts +1 -1
- package/dist/Components/ProgressBar/ProgressBarProps.d.ts.map +1 -1
- package/dist/Components/ScrollToTop/ScrollToTop.d.ts.map +1 -1
- package/dist/Components/ScrollToTop/ScrollToTop.js +8 -3
- package/dist/Components/SearchSelect/SearchSelect.d.ts.map +1 -1
- package/dist/Components/SearchSelect/SearchSelect.js +213 -18
- package/dist/Components/SelectSearch/SelectSearch.d.ts.map +1 -1
- package/dist/Components/SelectSearch/SelectSearch.js +89 -4
- package/dist/Components/SelectV2/SelectV2.d.ts.map +1 -1
- package/dist/Components/SelectV2/SelectV2.js +116 -29
- package/dist/Components/SideBar/SecondaryBar.d.ts.map +1 -1
- package/dist/Components/SideBar/SecondaryBar.js +15 -7
- package/dist/Components/SideBar/SideBar.d.ts.map +1 -1
- package/dist/Components/SideBar/SideBar.js +36 -5
- package/dist/Components/SideBar/components/MenuItemBox.d.ts.map +1 -1
- package/dist/Components/SideBar/components/MenuItemBox.js +44 -15
- package/dist/Components/SideBar/components/MenuPopoverContent.d.ts.map +1 -1
- package/dist/Components/SideBar/components/MenuPopoverContent.js +9 -3
- package/dist/Components/StageProgress/StageItem.d.ts.map +1 -1
- package/dist/Components/StageProgress/StageItem.js +1 -1
- package/dist/Components/StageProgress/StepperStage.d.ts.map +1 -1
- package/dist/Components/StageProgress/StepperStage.js +1 -1
- package/dist/Components/Table/Table.d.ts.map +1 -1
- package/dist/Components/Table/Table.js +1 -1
- package/dist/Components/Table/components/HeaderActions.d.ts.map +1 -1
- package/dist/Components/Table/components/HeaderActions.js +3 -1
- package/dist/Components/Table/components/TableActions.d.ts.map +1 -1
- package/dist/Components/Table/components/TableActions.js +3 -3
- package/dist/Components/Table/components/TableBody.d.ts.map +1 -1
- package/dist/Components/Table/components/TableBody.js +74 -48
- package/dist/Components/Table/components/TableGroupRow.d.ts +1 -0
- package/dist/Components/Table/components/TableGroupRow.d.ts.map +1 -1
- package/dist/Components/Table/components/TableGroupRow.js +2 -2
- package/dist/Components/Table/components/TableHeader.d.ts.map +1 -1
- package/dist/Components/Table/components/TableHeader.js +35 -42
- package/dist/Components/Table/components/TableSearch.d.ts.map +1 -1
- package/dist/Components/Table/components/TableSearch.js +1 -1
- package/dist/Components/Table/filters/CompactSelect.d.ts.map +1 -1
- package/dist/Components/Table/filters/CompactSelect.js +33 -1
- package/dist/Components/Table/filters/LeftFilterPane.d.ts.map +1 -1
- package/dist/Components/Table/filters/LeftFilterPane.js +1 -1
- package/dist/Components/Table/hooks/useTable.d.ts.map +1 -1
- package/dist/Components/Table/hooks/useTable.js +6 -2
- package/dist/Components/Table/settings/ManageColumns.d.ts.map +1 -1
- package/dist/Components/Table/settings/ManageColumns.js +13 -4
- package/dist/Components/Table/settings/TableSettings.d.ts.map +1 -1
- package/dist/Components/Table/settings/TableSettings.js +2 -2
- package/dist/Components/Tag/Tag.d.ts.map +1 -1
- package/dist/Components/Tag/Tag.js +5 -8
- package/dist/Components/Timeline/Timeline.d.ts.map +1 -1
- package/dist/Components/Timeline/Timeline.js +202 -202
- package/dist/Components/Toaster/Toaster.d.ts.map +1 -1
- package/dist/Components/Toaster/Toaster.js +19 -11
- package/dist/Hooks/usePreferences.d.ts.map +1 -1
- package/dist/Hooks/usePreferences.js +6 -1
- package/dist/Layout.d.ts +3 -0
- package/dist/Layout.js +286 -0
- package/dist/Pages/TInput.d.ts +3 -0
- package/dist/Pages/TInput.d.ts.map +1 -0
- package/dist/Pages/TInput.js +20 -0
- package/dist/Pages/accordion.d.ts +3 -0
- package/dist/Pages/accordion.d.ts.map +1 -0
- package/dist/Pages/accordion.js +21 -0
- package/dist/Pages/alertdialog.d.ts +3 -0
- package/dist/Pages/alertdialog.d.ts.map +1 -0
- package/dist/Pages/alertdialog.js +53 -0
- package/dist/Pages/button.d.ts +3 -0
- package/dist/Pages/button.d.ts.map +1 -0
- package/dist/Pages/button.js +32 -0
- package/dist/Pages/card.d.ts +3 -0
- package/dist/Pages/card.d.ts.map +1 -0
- package/dist/Pages/card.js +102 -0
- package/dist/Pages/chart.d.ts +4 -0
- package/dist/Pages/chart.d.ts.map +1 -0
- package/dist/Pages/chart.js +25 -0
- package/dist/Pages/checkbox.d.ts +3 -0
- package/dist/Pages/checkbox.d.ts.map +1 -0
- package/dist/Pages/checkbox.js +11 -0
- package/dist/Pages/contactForm.d.ts +3 -0
- package/dist/Pages/contactForm.d.ts.map +1 -0
- package/dist/Pages/contactForm.js +15 -0
- package/dist/Pages/customModulesTable.d.ts +4 -0
- package/dist/Pages/customModulesTable.d.ts.map +1 -0
- package/dist/Pages/customModulesTable.js +25 -0
- package/dist/Pages/datePick.d.ts +3 -0
- package/dist/Pages/datePick.d.ts.map +1 -0
- package/dist/Pages/datePick.js +49 -0
- package/dist/Pages/drawer.d.ts +3 -0
- package/dist/Pages/drawer.d.ts.map +1 -0
- package/dist/Pages/drawer.js +53 -0
- package/dist/Pages/dropdown.d.ts +3 -0
- package/dist/Pages/dropdown.d.ts.map +1 -0
- package/dist/Pages/dropdown.js +21 -0
- package/dist/Pages/editor.d.ts +3 -0
- package/dist/Pages/editor.d.ts.map +1 -0
- package/dist/Pages/editor.js +13 -0
- package/dist/Pages/feedback.d.ts +2 -0
- package/dist/Pages/feedback.d.ts.map +1 -0
- package/dist/Pages/feedback.js +12 -0
- package/dist/Pages/fileUpload.d.ts +2 -0
- package/dist/Pages/fileUpload.d.ts.map +1 -0
- package/dist/Pages/fileUpload.js +36 -0
- package/dist/Pages/input.d.ts +3 -0
- package/dist/Pages/input.d.ts.map +1 -0
- package/dist/Pages/input.js +48 -0
- package/dist/Pages/kanbanboard.d.ts +3 -0
- package/dist/Pages/kanbanboard.d.ts.map +1 -0
- package/dist/Pages/kanbanboard.js +182 -0
- package/dist/Pages/modal.d.ts +3 -0
- package/dist/Pages/modal.d.ts.map +1 -0
- package/dist/Pages/modal.js +61 -0
- package/dist/Pages/multiSelect.d.ts +3 -0
- package/dist/Pages/multiSelect.d.ts.map +1 -0
- package/dist/Pages/multiSelect.js +22 -0
- package/dist/Pages/noteArea.d.ts +3 -0
- package/dist/Pages/noteArea.d.ts.map +1 -0
- package/dist/Pages/noteArea.js +26 -0
- package/dist/Pages/notification.d.ts +3 -0
- package/dist/Pages/notification.d.ts.map +1 -0
- package/dist/Pages/notification.js +37 -0
- package/dist/Pages/numberInput.d.ts +3 -0
- package/dist/Pages/numberInput.d.ts.map +1 -0
- package/dist/Pages/numberInput.js +16 -0
- package/dist/Pages/orgSwitcher.d.ts +4 -0
- package/dist/Pages/orgSwitcher.d.ts.map +1 -0
- package/dist/Pages/orgSwitcher.js +36 -0
- package/dist/Pages/organizationDetails.d.ts +4 -0
- package/dist/Pages/organizationDetails.d.ts.map +1 -0
- package/dist/Pages/organizationDetails.js +80 -0
- package/dist/Pages/photoViewer.d.ts +3 -0
- package/dist/Pages/photoViewer.d.ts.map +1 -0
- package/dist/Pages/photoViewer.js +12 -0
- package/dist/Pages/pinInputs.d.ts +3 -0
- package/dist/Pages/pinInputs.d.ts.map +1 -0
- package/dist/Pages/pinInputs.js +11 -0
- package/dist/Pages/productCaard.d.ts +3 -0
- package/dist/Pages/productCaard.d.ts.map +1 -0
- package/dist/Pages/productCaard.js +311 -0
- package/dist/Pages/productDetailCard.d.ts +3 -0
- package/dist/Pages/productDetailCard.d.ts.map +1 -0
- package/dist/Pages/productDetailCard.js +78 -0
- package/dist/Pages/productFilter.d.ts +3 -0
- package/dist/Pages/productFilter.d.ts.map +1 -0
- package/dist/Pages/productFilter.js +148 -0
- package/dist/Pages/progressbar.d.ts +3 -0
- package/dist/Pages/progressbar.d.ts.map +1 -0
- package/dist/Pages/progressbar.js +11 -0
- package/dist/Pages/radioButton.d.ts +3 -0
- package/dist/Pages/radioButton.d.ts.map +1 -0
- package/dist/Pages/radioButton.js +18 -0
- package/dist/Pages/rolesPermission.d.ts +4 -0
- package/dist/Pages/rolesPermission.d.ts.map +1 -0
- package/dist/Pages/rolesPermission.js +144 -0
- package/dist/Pages/search.d.ts +3 -0
- package/dist/Pages/search.d.ts.map +1 -0
- package/dist/Pages/search.js +21 -0
- package/dist/Pages/searchSelect.d.ts +3 -0
- package/dist/Pages/searchSelect.d.ts.map +1 -0
- package/dist/Pages/searchSelect.js +97 -0
- package/dist/Pages/select.d.ts +3 -0
- package/dist/Pages/select.d.ts.map +1 -0
- package/dist/Pages/select.js +20 -0
- package/dist/Pages/selectSearch.d.ts +3 -0
- package/dist/Pages/selectSearch.d.ts.map +1 -0
- package/dist/Pages/selectSearch.js +58 -0
- package/dist/Pages/signInActivityTable.d.ts +4 -0
- package/dist/Pages/signInActivityTable.d.ts.map +1 -0
- package/dist/Pages/signInActivityTable.js +17 -0
- package/dist/Pages/skeleton.d.ts +3 -0
- package/dist/Pages/skeleton.d.ts.map +1 -0
- package/dist/Pages/skeleton.js +12 -0
- package/dist/Pages/stageProgress.d.ts +4 -0
- package/dist/Pages/stageProgress.d.ts.map +1 -0
- package/dist/Pages/stageProgress.js +31 -0
- package/dist/Pages/switch.d.ts +3 -0
- package/dist/Pages/switch.d.ts.map +1 -0
- package/dist/Pages/switch.js +17 -0
- package/dist/Pages/table.d.ts +3 -0
- package/dist/Pages/table.d.ts.map +1 -0
- package/dist/Pages/table.js +182 -0
- package/dist/Pages/tag.d.ts +3 -0
- package/dist/Pages/tag.d.ts.map +1 -0
- package/dist/Pages/tag.js +27 -0
- package/dist/Pages/textArea.d.ts +3 -0
- package/dist/Pages/textArea.d.ts.map +1 -0
- package/dist/Pages/textArea.js +14 -0
- package/dist/Pages/tier1.d.ts +4 -0
- package/dist/Pages/tier1.d.ts.map +1 -0
- package/dist/Pages/tier1.js +86 -0
- package/dist/Pages/timeline.d.ts +3 -0
- package/dist/Pages/timeline.d.ts.map +1 -0
- package/dist/Pages/timeline.js +73 -0
- package/dist/Pages/tooltip.d.ts +3 -0
- package/dist/Pages/tooltip.d.ts.map +1 -0
- package/dist/Pages/tooltip.js +11 -0
- package/dist/Pages/toster.d.ts +3 -0
- package/dist/Pages/toster.d.ts.map +1 -0
- package/dist/Pages/toster.js +53 -0
- package/dist/Pages/upgradeButton.d.ts +4 -0
- package/dist/Pages/upgradeButton.d.ts.map +1 -0
- package/dist/Pages/upgradeButton.js +17 -0
- package/dist/Pages/userDetails.d.ts +4 -0
- package/dist/Pages/userDetails.d.ts.map +1 -0
- package/dist/Pages/userDetails.js +79 -0
- package/dist/Pages/verifyEmail.d.ts +3 -0
- package/dist/Pages/verifyEmail.d.ts.map +1 -0
- package/dist/Pages/verifyEmail.js +17 -0
- package/dist/Theme/index.d.ts.map +1 -1
- package/dist/Theme/index.js +25 -9
- package/dist/Theme/provider/PixelizeThemeProvider.d.ts.map +1 -1
- package/dist/Theme/provider/PixelizeThemeProvider.js +17 -7
- package/dist/Utils/rafThrottle.d.ts +15 -0
- package/dist/Utils/rafThrottle.d.ts.map +1 -0
- package/dist/Utils/rafThrottle.js +34 -0
- package/dist/Utils/table.d.ts.map +1 -1
- package/dist/Utils/table.js +16 -5
- package/dist/bootstrap.d.ts +2 -0
- package/dist/bootstrap.js +16 -0
- package/dist/esm/App.js +90 -0
- package/dist/esm/Assets/defaultLogo.js +5 -0
- package/dist/esm/Components/Accordion/Accordion.js +34 -0
- package/dist/esm/Components/Accordion/AccordionProps.js +1 -0
- package/dist/esm/Components/Accordion/accordionColors.js +30 -0
- package/dist/esm/Components/AlertDialog/AlertDialog.js +9 -0
- package/dist/esm/Components/AlertDialog/AlertDialogProps.js +1 -0
- package/dist/esm/Components/Apexcharts/ApexBarChart/ApexBarChart.js +71 -0
- package/dist/esm/Components/Apexcharts/ApexBarChart/ApexBarChartProps.js +1 -0
- package/dist/esm/Components/Apexcharts/ApexLineChart/ApexLineChart.js +149 -0
- package/dist/esm/Components/Apexcharts/ApexLineChart/ApexLineChartProps.js +1 -0
- package/dist/esm/Components/Apexcharts/ApexPieChart/ApexPieChart.js +161 -0
- package/dist/esm/Components/Apexcharts/ApexPieChart/ApexPieChartProps.js +1 -0
- package/dist/esm/Components/Apexcharts/ApexPolarCharts/ApexPolarCharts.js +79 -0
- package/dist/esm/Components/Apexcharts/ApexPolarCharts/ApexPolarChartsProps.js +1 -0
- package/dist/esm/Components/Breadcrumbs/Breadcrumbs.js +9 -0
- package/dist/esm/Components/Breadcrumbs/Breadcrumbs.stories.js +5 -0
- package/dist/esm/Components/Breadcrumbs/BreadcrumbsProps.js +1 -0
- package/dist/esm/Components/Button/Button.js +7 -0
- package/dist/esm/Components/Button/Button.stories.js +5 -0
- package/dist/esm/Components/Button/Button.styles.js +204 -0
- package/dist/esm/Components/Button/ButtonProps.js +1 -0
- package/dist/esm/Components/ButtonGroupIcon/ButtonGoupIconProps.js +1 -0
- package/dist/esm/Components/ButtonGroupIcon/ButtonGroupIcon.js +98 -0
- package/dist/esm/Components/ButtonGroupIcon/ButtonGroupIcon.stories.js +5 -0
- package/dist/esm/Components/Buttons/Buttons.js +5 -0
- package/dist/esm/Components/Buttons/ButtonsProps.js +1 -0
- package/dist/esm/Components/Card/Card.js +5 -0
- package/dist/esm/Components/Card/CardProps.js +1 -0
- package/dist/esm/Components/Card/PaymentCard/PaymentCard.js +65 -0
- package/dist/esm/Components/Card/PaymentCard/PaymentCardProps.js +1 -0
- package/dist/esm/Components/Checkbox/Checkbox.js +28 -0
- package/dist/esm/Components/Checkbox/Checkbox.stories.js +6 -0
- package/dist/esm/Components/Checkbox/Checkbox.styles.js +69 -0
- package/dist/esm/Components/Checkbox/CheckboxProps.js +1 -0
- package/dist/esm/Components/Common/ErrorComponent.js +15 -0
- package/dist/esm/Components/Common/ErrorMessage.js +17 -0
- package/dist/esm/Components/Common/FormLabel.js +32 -0
- package/dist/esm/Components/Common/FormattedDescription.js +57 -0
- package/dist/esm/Components/Common/HelperText.js +8 -0
- package/dist/esm/Components/Common/Label.js +13 -0
- package/dist/esm/Components/Common/fieldStyles.js +34 -0
- package/dist/esm/Components/ContactForm/ContactForm.js +112 -0
- package/dist/esm/Components/ContactForm/ContactFormProps.js +1 -0
- package/dist/esm/Components/CopyButton/CopyButton.js +44 -0
- package/dist/esm/Components/CustomModulesTable/CustomModulesTable.js +63 -0
- package/dist/esm/Components/CustomModulesTable/CustomModulesTableProps.js +1 -0
- package/dist/esm/Components/CustomModulesTable/DeleteModuleModal.js +11 -0
- package/dist/esm/Components/CustomModulesTable/EditModuleModal.js +20 -0
- package/dist/esm/Components/DatePicker/CalendarPanel.js +133 -0
- package/dist/esm/Components/DatePicker/DatePicker.js +252 -0
- package/dist/esm/Components/DatePicker/DatePickerProps.js +1 -0
- package/dist/esm/Components/DatePicker/RangeDatePicker.js +206 -0
- package/dist/esm/Components/DatePicker/SingleDatePicker.js +972 -0
- package/dist/esm/Components/DatePicker/ThemeDatePicker.js +27 -0
- package/dist/esm/Components/DatePicker/TimeOnlyPicker.js +78 -0
- package/dist/esm/Components/DatePicker/TimePicker.js +70 -0
- package/dist/esm/Components/DatePicker/TimePickerInput.js +412 -0
- package/dist/esm/Components/Divider/Divider.js +9 -0
- package/dist/esm/Components/Drawer/Drawer.js +24 -0
- package/dist/esm/Components/Drawer/DrawerProps.js +1 -0
- package/dist/esm/Components/Dropdown/DropDown.js +249 -0
- package/dist/esm/Components/Dropdown/DropdownProps.js +1 -0
- package/dist/esm/Components/Editor/Editor.js +38 -0
- package/dist/esm/Components/Editor/EditorProps.js +1 -0
- package/dist/esm/Components/Editor/joditThemeVars.js +75 -0
- package/dist/esm/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +15 -0
- package/dist/esm/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtpProps.js +1 -0
- package/dist/esm/Components/EmptyState/EmptyState.js +40 -0
- package/dist/esm/Components/EmptyState/EmptyStateProps.js +1 -0
- package/dist/esm/Components/FeedbackForm/FeedbackForm.js +65 -0
- package/dist/esm/Components/FieldSelectModal/FieldSelectModal.js +33 -0
- package/dist/esm/Components/FilePreview/FilePreview.js +79 -0
- package/dist/esm/Components/FilePreview/FilePreviewProps.js +1 -0
- package/dist/esm/Components/FileUpload/FileUpload.js +82 -0
- package/dist/esm/Components/FileUpload/FileUploadProps.js +1 -0
- package/dist/esm/Components/FileUpload/constants.js +24 -0
- package/dist/esm/Components/FileUploader/FileUploader.js +78 -0
- package/dist/esm/Components/FileUploader/FileUploaderProps.js +1 -0
- package/dist/esm/Components/FilterSidebar/FilterSidebar.js +258 -0
- package/dist/esm/Components/FilterSidebar/filterHoverStyle.js +10 -0
- package/dist/esm/Components/Form/FormWrapper.js +9 -0
- package/dist/esm/Components/Header/Header.js +55 -0
- package/dist/esm/Components/Header/HeaderActions.js +24 -0
- package/dist/esm/Components/Header/HeaderProps.js +1 -0
- package/dist/esm/Components/Header/components/desktopMenu.js +43 -0
- package/dist/esm/Components/Header/components/mobileMenu.js +37 -0
- package/dist/esm/Components/Input/Input/Input.js +40 -0
- package/dist/esm/Components/Input/Input/InputProps.js +1 -0
- package/dist/esm/Components/Input/PhoneNumberInput.js +62 -0
- package/dist/esm/Components/Input/PhoneNumberInputProps.js +1 -0
- package/dist/esm/Components/Input/Switch/InputSwitch.js +21 -0
- package/dist/esm/Components/Input/TextInput.js +16 -0
- package/dist/esm/Components/Input/TextInput.stories.js +7 -0
- package/dist/esm/Components/Input/TextInput.styles.js +101 -0
- package/dist/esm/Components/Input/TextInputProps.js +1 -0
- package/dist/esm/Components/Input/textInputIconSize.js +36 -0
- package/dist/esm/Components/InputTextArea/InputTextArea.js +8 -0
- package/dist/esm/Components/InputTextArea/InputTextArea.style.js +77 -0
- package/dist/esm/Components/InputTextArea/InputTextAreaProps.js +1 -0
- package/dist/esm/Components/KanbanBoard/AccountCard.js +22 -0
- package/dist/esm/Components/KanbanBoard/AccountRow.js +10 -0
- package/dist/esm/Components/KanbanBoard/KanbanActions/KanbanActions.js +13 -0
- package/dist/esm/Components/KanbanBoard/KanbanBoard.js +453 -0
- package/dist/esm/Components/KanbanBoard/KanbanBoardProps.js +1 -0
- package/dist/esm/Components/KanbanBoard/MeasuredItem.js +54 -0
- package/dist/esm/Components/LazyWrapper/LazyWrapper.js +10 -0
- package/dist/esm/Components/LimitReachedModal/LimitReachedModal.js +40 -0
- package/dist/esm/Components/LimitReachedModal/LimitReachedModalProps.js +1 -0
- package/dist/esm/Components/LimitReachedModal/limitReachedCopy.js +50 -0
- package/dist/esm/Components/Loading/Loading.js +24 -0
- package/dist/esm/Components/Loading/Loading.stories.js +6 -0
- package/dist/esm/Components/Loading/LoadingProps.js +1 -0
- package/dist/esm/Components/Modal/Modal.js +30 -0
- package/dist/esm/Components/Modal/Modal.stories.js +6 -0
- package/dist/esm/Components/Modal/ModalProps.js +1 -0
- package/dist/esm/Components/MoreItems/MoreItems.js +22 -0
- package/dist/esm/Components/MoreItems/MoreItemsProps.js +1 -0
- package/dist/esm/Components/MultiSelect/MultiSelect.js +70 -0
- package/dist/esm/Components/MultiSelect/MultiSelectProps.js +1 -0
- package/dist/esm/Components/NavigationBar/NavBar.stories.js +2 -0
- package/dist/esm/Components/NavigationBar/NavigationBar.js +57 -0
- package/dist/esm/Components/NavigationBar/NavigationBarProps.js +1 -0
- package/dist/esm/Components/NoteTextArea/NoteTextArea.js +142 -0
- package/dist/esm/Components/NoteTextArea/NoteTextAreaProps.js +1 -0
- package/dist/esm/Components/Notification/Notification.js +106 -0
- package/dist/esm/Components/Notification/NotificationProps.js +1 -0
- package/dist/esm/Components/NumberInput/NumberInput.js +6 -0
- package/dist/esm/Components/NumberInput/NumberInput.styles.js +85 -0
- package/dist/esm/Components/NumberInput/NumberInputProps.js +1 -0
- package/dist/esm/Components/OrgSwitcher/OrgSwitcher.js +116 -0
- package/dist/esm/Components/OrgSwitcher/OrgSwitcherProps.js +34 -0
- package/dist/esm/Components/OrganizationDetails/CreateOrgModal.js +57 -0
- package/dist/esm/Components/OrganizationDetails/DeleteOrgModal.js +11 -0
- package/dist/esm/Components/OrganizationDetails/OrganizationDetails.js +165 -0
- package/dist/esm/Components/OrganizationDetails/OrganizationDetailsProps.js +1 -0
- package/dist/esm/Components/PdfViewer/PdfViewer.js +10 -0
- package/dist/esm/Components/PinInput/PinInput.js +15 -0
- package/dist/esm/Components/PinInput/PinInput.stories.js +5 -0
- package/dist/esm/Components/PinInput/PinInputProps.js +1 -0
- package/dist/esm/Components/PinInputs/PinInputs.js +48 -0
- package/dist/esm/Components/PinInputs/PinInputsProps.js +1 -0
- package/dist/esm/Components/PlanBadge/PlanBadge.js +17 -0
- package/dist/esm/Components/PlanBadge/PlanBadgeProps.js +1 -0
- package/dist/esm/Components/PlanPill/PlanPill.js +40 -0
- package/dist/esm/Components/PlanPill/PlanPillProps.js +1 -0
- package/dist/esm/Components/PlanPill/planPillGradient.js +17 -0
- package/dist/esm/Components/ProductCard/ProductCard.js +62 -0
- package/dist/esm/Components/ProductCard/ProductCardProps.js +1 -0
- package/dist/esm/Components/ProductCard/ProductLabel.js +18 -0
- package/dist/esm/Components/ProductCard/ProductPrice.js +110 -0
- package/dist/esm/Components/ProductCard/ProductReview.js +19 -0
- package/dist/esm/Components/ProductCard/ProductTags.js +48 -0
- package/dist/esm/Components/ProductDetails/ProductDetails.js +40 -0
- package/dist/esm/Components/ProductDetails/ProductDetailsProps.js +1 -0
- package/dist/esm/Components/ProductDetails/ProductDtlPrice.js +22 -0
- package/dist/esm/Components/ProductDetails/ProductImageSlider.js +188 -0
- package/dist/esm/Components/ProfileCard/ProfileCard.js +34 -0
- package/dist/esm/Components/ProfileCard/ProfileCard.stories.js +5 -0
- package/dist/esm/Components/ProfileCard/ProfileCardProps.js +1 -0
- package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +70 -0
- package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.stories.js +5 -0
- package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewerProps.js +1 -0
- package/dist/esm/Components/ProgressBar/ProgressBar.js +6 -0
- package/dist/esm/Components/ProgressBar/ProgressBar.stories.js +6 -0
- package/dist/esm/Components/ProgressBar/ProgressBarProps.js +1 -0
- package/dist/esm/Components/RadioButton/RadioButton.js +25 -0
- package/dist/esm/Components/RadioButton/RadioButton.stories.js +6 -0
- package/dist/esm/Components/RadioButton/RadioButtonProps.js +1 -0
- package/dist/esm/Components/Reorder/Reorder.js +22 -0
- package/dist/esm/Components/Reorder/ReorderProps.js +1 -0
- package/dist/esm/Components/RolesPermission/DeleteRoleModal.js +13 -0
- package/dist/esm/Components/RolesPermission/RolesPermission.js +121 -0
- package/dist/esm/Components/RolesPermission/RolesPermissionProps.js +1 -0
- package/dist/esm/Components/ScrollToTop/ScrollToTop.js +67 -0
- package/dist/esm/Components/Search/Search.js +29 -0
- package/dist/esm/Components/Search/SearchProps.js +1 -0
- package/dist/esm/Components/SearchSelect/SearchSelect.js +518 -0
- package/dist/esm/Components/SearchSelect/SearchSelectProps.js +1 -0
- package/dist/esm/Components/SearchSelect/SelectTruncatedLabel.js +17 -0
- package/dist/esm/Components/SearchSelect/searchSelectSize.js +93 -0
- package/dist/esm/Components/Select/Select.js +24 -0
- package/dist/esm/Components/Select/Select.stories.js +7 -0
- package/dist/esm/Components/Select/Select.styles.js +108 -0
- package/dist/esm/Components/Select/SelectProps.js +1 -0
- package/dist/esm/Components/SelectSearch/SelectSearch.js +270 -0
- package/dist/esm/Components/SelectSearch/SelectSearchProps.js +1 -0
- package/dist/esm/Components/SelectV2/SelectV2.js +233 -0
- package/dist/esm/Components/SelectV2/SelectV2Props.js +1 -0
- package/dist/esm/Components/SideBar/SecondaryBar.js +67 -0
- package/dist/esm/Components/SideBar/SideBar.js +237 -0
- package/dist/esm/Components/SideBar/SideBarProps.js +1 -0
- package/dist/esm/Components/SideBar/Sidebar.stories.js +6 -0
- package/dist/esm/Components/SideBar/components/MenuItemBox.js +132 -0
- package/dist/esm/Components/SideBar/components/MenuItems.js +114 -0
- package/dist/esm/Components/SideBar/components/MenuPopoverContent.js +54 -0
- package/dist/esm/Components/SideBar/components/OtherApps.js +20 -0
- package/dist/esm/Components/SideBar/components/OverflowTooltipText.js +29 -0
- package/dist/esm/Components/SideBar/components/TextTruncation.js +27 -0
- package/dist/esm/Components/SideBar/sidebarAccentColors.js +31 -0
- package/dist/esm/Components/SignInActivityTable/SignInActivityTable.js +34 -0
- package/dist/esm/Components/SignInActivityTable/SignInActivityTableProps.js +1 -0
- package/dist/esm/Components/Skeletons/Skeleton.stories.js +6 -0
- package/dist/esm/Components/Skeletons/SkeletonProps.js +1 -0
- package/dist/esm/Components/Skeletons/Skeletons.js +5 -0
- package/dist/esm/Components/Slider/Slider.js +41 -0
- package/dist/esm/Components/StageProgress/StageItem.js +85 -0
- package/dist/esm/Components/StageProgress/StageProgress.js +47 -0
- package/dist/esm/Components/StageProgress/StageProgressProps.js +29 -0
- package/dist/esm/Components/StageProgress/StepperStage.js +38 -0
- package/dist/esm/Components/Switch/Switch.js +11 -0
- package/dist/esm/Components/Switch/SwitchProps.js +1 -0
- package/dist/esm/Components/Table/Table.js +430 -0
- package/dist/esm/Components/Table/Table.stories.js +8 -0
- package/dist/esm/Components/Table/TableProps.js +1 -0
- package/dist/esm/Components/Table/components/HeaderActions.js +47 -0
- package/dist/esm/Components/Table/components/Pagination.js +19 -0
- package/dist/esm/Components/Table/components/TableActions.js +55 -0
- package/dist/esm/Components/Table/components/TableBody.js +337 -0
- package/dist/esm/Components/Table/components/TableGroupRow.js +11 -0
- package/dist/esm/Components/Table/components/TableHeader.js +100 -0
- package/dist/esm/Components/Table/components/TableLoading.js +11 -0
- package/dist/esm/Components/Table/components/TableSearch.js +31 -0
- package/dist/esm/Components/Table/components/tableRowHoverStyle.js +22 -0
- package/dist/esm/Components/Table/filterTypes.js +1 -0
- package/dist/esm/Components/Table/filters/ActiveFilters.js +63 -0
- package/dist/esm/Components/Table/filters/CompactSelect.js +55 -0
- package/dist/esm/Components/Table/filters/LeftFilterPane.js +174 -0
- package/dist/esm/Components/Table/filters/SelectOperationControls.js +5 -0
- package/dist/esm/Components/Table/filters/TableFilters.js +45 -0
- package/dist/esm/Components/Table/filters/TextOperationControls.js +16 -0
- package/dist/esm/Components/Table/hooks/useDebounce.js +22 -0
- package/dist/esm/Components/Table/hooks/useTable.js +227 -0
- package/dist/esm/Components/Table/settings/ManageColumns.js +105 -0
- package/dist/esm/Components/Table/settings/TableSettings.js +82 -0
- package/dist/esm/Components/Tag/Tag.js +18 -0
- package/dist/esm/Components/Tag/Tag.styles.js +91 -0
- package/dist/esm/Components/Tag/TagProps.js +1 -0
- package/dist/esm/Components/Timeline/Timeline.js +250 -0
- package/dist/esm/Components/Timeline/TimelineProps.js +1 -0
- package/dist/esm/Components/Toaster/Toaster.js +120 -0
- package/dist/esm/Components/Toaster/Toaster.stories.js +7 -0
- package/dist/esm/Components/Toaster/ToasterProps.js +1 -0
- package/dist/esm/Components/Toggle/TableToggle.js +39 -0
- package/dist/esm/Components/Toggle/TableToggleProps.js +1 -0
- package/dist/esm/Components/ToolTip/OverflowToolTip.js +20 -0
- package/dist/esm/Components/ToolTip/ToolTip.js +35 -0
- package/dist/esm/Components/ToolTip/ToolTip.stories.js +6 -0
- package/dist/esm/Components/ToolTip/ToolTipProps.js +1 -0
- package/dist/esm/Components/Trail/EditableCell.js +27 -0
- package/dist/esm/Components/Trail/SelectAllCheckbox.js +5 -0
- package/dist/esm/Components/Trail/TrailWorks.js +54 -0
- package/dist/esm/Components/Trail/data.js +26 -0
- package/dist/esm/Components/UpgradeButton/UpgradeButton.js +79 -0
- package/dist/esm/Components/UpgradeButton/UpgradeButtonProps.js +1 -0
- package/dist/esm/Components/UserDetails/AddUserModal.js +101 -0
- package/dist/esm/Components/UserDetails/ChangeRoleModal.js +56 -0
- package/dist/esm/Components/UserDetails/DeactivateConfirmModal.js +14 -0
- package/dist/esm/Components/UserDetails/UserDetails.js +109 -0
- package/dist/esm/Components/UserDetails/UserDetailsProps.js +1 -0
- package/dist/esm/Components/WorkspaceWindow/WorkspaceTrayPreview.js +83 -0
- package/dist/esm/Components/WorkspaceWindow/WorkspaceWindow.js +61 -0
- package/dist/esm/Components/WorkspaceWindow/WorkspaceWindowProps.js +1 -0
- package/dist/esm/Constants/Sidebar.js +39 -0
- package/dist/esm/Hooks/useIsTruncated.js +54 -0
- package/dist/esm/Hooks/usePreferences.js +74 -0
- package/dist/esm/Hooks/useSidebarPrefs.js +68 -0
- package/dist/esm/Layout.js +281 -0
- package/dist/esm/Pages/TInput.js +15 -0
- package/dist/esm/Pages/accordion.js +16 -0
- package/dist/esm/Pages/alertdialog.js +15 -0
- package/dist/esm/Pages/button.js +27 -0
- package/dist/esm/Pages/card.js +64 -0
- package/dist/esm/Pages/chart.js +20 -0
- package/dist/esm/Pages/checkbox.js +6 -0
- package/dist/esm/Pages/contactForm.js +10 -0
- package/dist/esm/Pages/customModulesTable.js +20 -0
- package/dist/esm/Pages/datePick.js +44 -0
- package/dist/esm/Pages/drawer.js +15 -0
- package/dist/esm/Pages/dropdown.js +16 -0
- package/dist/esm/Pages/editor.js +8 -0
- package/dist/esm/Pages/feedback.js +6 -0
- package/dist/esm/Pages/fileUpload.js +29 -0
- package/dist/esm/Pages/input.js +43 -0
- package/dist/esm/Pages/kanbanboard.js +177 -0
- package/dist/esm/Pages/modal.js +23 -0
- package/dist/esm/Pages/multiSelect.js +17 -0
- package/dist/esm/Pages/noteArea.js +21 -0
- package/dist/esm/Pages/notification.js +32 -0
- package/dist/esm/Pages/numberInput.js +11 -0
- package/dist/esm/Pages/orgSwitcher.js +31 -0
- package/dist/esm/Pages/organizationDetails.js +75 -0
- package/dist/esm/Pages/photoViewer.js +7 -0
- package/dist/esm/Pages/pinInputs.js +6 -0
- package/dist/esm/Pages/productCaard.js +306 -0
- package/dist/esm/Pages/productDetailCard.js +73 -0
- package/dist/esm/Pages/productFilter.js +143 -0
- package/dist/esm/Pages/progressbar.js +6 -0
- package/dist/esm/Pages/radioButton.js +16 -0
- package/dist/esm/Pages/rolesPermission.js +139 -0
- package/dist/esm/Pages/search.js +16 -0
- package/dist/esm/Pages/searchSelect.js +92 -0
- package/dist/esm/Pages/select.js +15 -0
- package/dist/esm/Pages/selectSearch.js +53 -0
- package/dist/esm/Pages/signInActivityTable.js +12 -0
- package/dist/esm/Pages/skeleton.js +7 -0
- package/dist/esm/Pages/stageProgress.js +26 -0
- package/dist/esm/Pages/switch.js +12 -0
- package/dist/esm/Pages/table.js +175 -0
- package/dist/esm/Pages/tag.js +22 -0
- package/dist/esm/Pages/textArea.js +9 -0
- package/dist/esm/Pages/tier1.js +48 -0
- package/dist/esm/Pages/timeline.js +68 -0
- package/dist/esm/Pages/tooltip.js +6 -0
- package/dist/esm/Pages/toster.js +48 -0
- package/dist/esm/Pages/upgradeButton.js +12 -0
- package/dist/esm/Pages/userDetails.js +74 -0
- package/dist/esm/Pages/verifyEmail.js +12 -0
- package/dist/esm/Theme/chakra/Avatar.styles.js +25 -0
- package/dist/esm/Theme/chakra/Drawer.styles.js +23 -0
- package/dist/esm/Theme/chakra/Menu.styles.js +47 -0
- package/dist/esm/Theme/chakra/Modal.styles.js +23 -0
- package/dist/esm/Theme/chakra/Popover.styles.js +27 -0
- package/dist/esm/Theme/chakra/Slider.styles.js +22 -0
- package/dist/esm/Theme/chakra/Switch.styles.js +21 -0
- package/dist/esm/Theme/chakra/Tabs.styles.js +38 -0
- package/dist/esm/Theme/chakra/common.web.js +22 -0
- package/dist/esm/Theme/chakra/componentStyles.js +221 -0
- package/dist/esm/Theme/chakra/createBrandTheme.js +118 -0
- package/dist/esm/Theme/chakra/fonts.web.js +10 -0
- package/dist/esm/Theme/index.js +63 -0
- package/dist/esm/Theme/provider/PixelizeThemeProvider.js +204 -0
- package/dist/esm/Theme/provider/ThemeSwitcher.js +107 -0
- package/dist/esm/Theme/provider/colorModeStorage.js +99 -0
- package/dist/esm/Theme/provider/index.js +3 -0
- package/dist/esm/Theme/provider/useThemeMode.js +9 -0
- package/dist/esm/Theme/themeProps.js +1 -0
- package/dist/esm/Theme/tokens/brands/emerald/palette.dark.js +8 -0
- package/dist/esm/Theme/tokens/brands/emerald/palette.light.js +130 -0
- package/dist/esm/Theme/tokens/brands/index.js +73 -0
- package/dist/esm/Theme/tokens/brands/lavender/palette.dark.js +8 -0
- package/dist/esm/Theme/tokens/brands/lavender/palette.light.js +321 -0
- package/dist/esm/Theme/tokens/brands/meadow/palette.dark.js +8 -0
- package/dist/esm/Theme/tokens/brands/meadow/palette.light.js +128 -0
- package/dist/esm/Theme/tokens/brands/radiant/palette.dark.js +8 -0
- package/dist/esm/Theme/tokens/brands/radiant/palette.light.js +130 -0
- package/dist/esm/Theme/tokens/brands/rosewood/palette.dark.js +8 -0
- package/dist/esm/Theme/tokens/brands/rosewood/palette.light.js +134 -0
- package/dist/esm/Theme/tokens/brands/skyline/palette.dark.js +8 -0
- package/dist/esm/Theme/tokens/brands/skyline/palette.light.js +128 -0
- package/dist/esm/Theme/tokens/brands/slate/palette.dark.js +8 -0
- package/dist/esm/Theme/tokens/brands/slate/palette.light.js +132 -0
- package/dist/esm/Theme/tokens/brands/storefront/palette.dark.js +8 -0
- package/dist/esm/Theme/tokens/brands/storefront/palette.light.js +122 -0
- package/dist/esm/Theme/tokens/brands/zinc/palette.dark.js +202 -0
- package/dist/esm/Theme/tokens/brands/zinc/palette.light.js +381 -0
- package/dist/esm/Theme/tokens/builders/accentText.js +83 -0
- package/dist/esm/Theme/tokens/builders/buildBrandTokens.js +28 -0
- package/dist/esm/Theme/tokens/builders/buildDarkPalette.js +289 -0
- package/dist/esm/Theme/tokens/builders/chartColorsFromTheme.js +21 -0
- package/dist/esm/Theme/tokens/builders/color.js +141 -0
- package/dist/esm/Theme/tokens/builders/index.js +5 -0
- package/dist/esm/Theme/tokens/builders/outlineRung.js +63 -0
- package/dist/esm/Theme/tokens/builders/statusTone.js +56 -0
- package/dist/esm/Theme/tokens/index.js +14 -0
- package/dist/esm/Theme/tokens/primitives/breakpoints.js +8 -0
- package/dist/esm/Theme/tokens/primitives/index.js +9 -0
- package/dist/esm/Theme/tokens/primitives/letterSpacings.js +9 -0
- package/dist/esm/Theme/tokens/primitives/lineHeights.js +18 -0
- package/dist/esm/Theme/tokens/primitives/radii.js +12 -0
- package/dist/esm/Theme/tokens/primitives/shadows.js +15 -0
- package/dist/esm/Theme/tokens/primitives/sizes.js +34 -0
- package/dist/esm/Theme/tokens/primitives/space.js +33 -0
- package/dist/esm/Theme/tokens/primitives/typography.js +40 -0
- package/dist/esm/Theme/tokens/primitives/zIndices.js +16 -0
- package/dist/esm/Theme/tokens/types.js +7 -0
- package/dist/esm/Theme/useCustomTheme.js +4 -0
- package/dist/esm/Utils/accountHandoff.js +139 -0
- package/dist/esm/Utils/functions.js +7 -0
- package/dist/esm/Utils/mergeRefs.js +16 -0
- package/dist/esm/Utils/planBadge.js +105 -0
- package/dist/esm/Utils/planExpiry.js +109 -0
- package/dist/esm/Utils/rafThrottle.js +30 -0
- package/dist/esm/Utils/table.js +321 -0
- package/dist/esm/bootstrap.js +11 -0
- package/dist/esm/index.js +133 -0
- package/dist/esm/services/feedback.js +15 -0
- package/dist/esm/withTheme.js +9 -0
- package/package.json +13 -6
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Flex, Skeleton } from "@chakra-ui/react";
|
|
3
|
+
import { useCustomTheme } from "../../Theme/useCustomTheme";
|
|
4
|
+
import StageItem from "./StageItem";
|
|
5
|
+
import StepperStage from "./StepperStage";
|
|
6
|
+
const scrollSxFor = (thumb) => ({
|
|
7
|
+
"&::-webkit-scrollbar": { height: "4px" },
|
|
8
|
+
"&::-webkit-scrollbar-thumb": {
|
|
9
|
+
borderRadius: "10px",
|
|
10
|
+
backgroundColor: thumb,
|
|
11
|
+
},
|
|
12
|
+
"&::-webkit-scrollbar-track": { background: "transparent" },
|
|
13
|
+
});
|
|
14
|
+
// Gap between items per variant (chevron interlocks via negative margin).
|
|
15
|
+
const gapFor = {
|
|
16
|
+
chevron: "0",
|
|
17
|
+
bar: "4px",
|
|
18
|
+
pills: "8px",
|
|
19
|
+
stepper: "0",
|
|
20
|
+
};
|
|
21
|
+
const StageProgress = ({ stages, variant = "chevron", value, onChange, size = "md", colorScheme = "primary", markCompleted = true, showCheck = false, isReadOnly = false, isLoading = false, minStageWidth, scrollActiveIntoView = true, tooltipThreshold = 20, }) => {
|
|
22
|
+
const theme = useCustomTheme();
|
|
23
|
+
if (isLoading) {
|
|
24
|
+
const skeletonH = size === "sm" ? "28px" : size === "lg" ? "44px" : "36px";
|
|
25
|
+
return (_jsx(Flex, { gap: "6px", width: "100%", overflowX: "hidden", p: "0.1rem", children: Array.from({ length: 6 }).map((_, i) => (_jsx(Skeleton, { height: skeletonH, minWidth: minStageWidth || "160px", borderRadius: "6px", flexShrink: 0 }, i))) }));
|
|
26
|
+
}
|
|
27
|
+
const activeIndex = stages.findIndex((st) => st.id === value);
|
|
28
|
+
const stateFor = (index) => {
|
|
29
|
+
if (index === activeIndex)
|
|
30
|
+
return "active";
|
|
31
|
+
if (markCompleted && activeIndex > -1 && index < activeIndex)
|
|
32
|
+
return "completed";
|
|
33
|
+
return "upcoming";
|
|
34
|
+
};
|
|
35
|
+
const total = stages.length;
|
|
36
|
+
return (_jsx(Box, { display: "flex", alignItems: variant === "stepper" ? "flex-start" : "stretch", gap: gapFor[variant], overflowX: "hidden", p: "0.1rem", sx: {
|
|
37
|
+
"&:hover": { overflowX: "auto" },
|
|
38
|
+
...scrollSxFor(theme.colors.gray[300]),
|
|
39
|
+
}, children: stages.map((stage, index) => {
|
|
40
|
+
const state = stateFor(index);
|
|
41
|
+
if (variant === "stepper") {
|
|
42
|
+
return (_jsx(StepperStage, { label: stage.label, number: index + 1, state: state, size: size, colorScheme: colorScheme, isReadOnly: isReadOnly, disabled: stage.disabled, showCheck: showCheck, isFirst: index === 0, isLast: index === total - 1, leftDone: activeIndex > -1 && index <= activeIndex, rightDone: activeIndex > -1 && index < activeIndex, scrollIntoViewWhenActive: scrollActiveIntoView, onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange(stage.id, stage, index) }, stage.id));
|
|
43
|
+
}
|
|
44
|
+
return (_jsx(StageItem, { label: stage.label, index: index, total: total, state: state, variant: variant, size: size, colorScheme: colorScheme, isReadOnly: isReadOnly, disabled: stage.disabled, showCheck: showCheck, minWidth: minStageWidth, scrollIntoViewWhenActive: scrollActiveIntoView, tooltipThreshold: tooltipThreshold, onClick: () => onChange === null || onChange === void 0 ? void 0 : onChange(stage.id, stage, index) }, stage.id));
|
|
45
|
+
}) }));
|
|
46
|
+
};
|
|
47
|
+
export default StageProgress;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { accentTextOnCanvas, onFilled } from "../../Theme/tokens/builders/accentText";
|
|
2
|
+
const SEMANTIC = ["success", "error", "warning", "info"];
|
|
3
|
+
/** Resolve a chevron palette for a given color scheme from the theme. */
|
|
4
|
+
export const resolveStagePalette = (theme, colorScheme = "primary") => {
|
|
5
|
+
var _a;
|
|
6
|
+
const colors = theme.colors;
|
|
7
|
+
const scale = SEMANTIC.includes(colorScheme)
|
|
8
|
+
? theme.colors.semantic[colorScheme]
|
|
9
|
+
: colors[colorScheme];
|
|
10
|
+
const gray = (_a = colors.gray) !== null && _a !== void 0 ? _a : {};
|
|
11
|
+
const get = (s, k, fb) => (s && s[k]) || fb;
|
|
12
|
+
const strong = get(scale, 500, "#3B82F6");
|
|
13
|
+
const white = theme.colors.white || "#FFFFFF";
|
|
14
|
+
const black = theme.colors.black || "#000000";
|
|
15
|
+
const onStrong = onFilled(strong, white, black);
|
|
16
|
+
const soft = get(scale, 100, "#E6F0FF");
|
|
17
|
+
// A fixed [700] fails AA against [100] for some hues (orange 3.30, borderline green 3.58) —
|
|
18
|
+
// walk the scale's own rungs against this specific tint instead.
|
|
19
|
+
const softText = accentTextOnCanvas(scale, soft);
|
|
20
|
+
return {
|
|
21
|
+
soft,
|
|
22
|
+
softText,
|
|
23
|
+
strong,
|
|
24
|
+
onStrong,
|
|
25
|
+
hover: get(scale, 600, "#2563EB"),
|
|
26
|
+
muted: get(gray, 100, "#F1F5F9"),
|
|
27
|
+
mutedText: get(gray, 500, "#64748B"),
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import { Box, Flex, Text } from "@chakra-ui/react";
|
|
4
|
+
import { Check } from "lucide-react";
|
|
5
|
+
import { useCustomTheme } from "../../Theme/useCustomTheme";
|
|
6
|
+
import { resolveStagePalette, } from "./StageProgressProps";
|
|
7
|
+
const sizeMap = {
|
|
8
|
+
sm: { circle: "24px", font: "0.7rem", label: "0.7rem", icon: 12, minW: "84px" },
|
|
9
|
+
md: { circle: "30px", font: "0.8rem", label: "0.8rem", icon: 14, minW: "104px" },
|
|
10
|
+
lg: { circle: "38px", font: "0.95rem", label: "0.9rem", icon: 16, minW: "124px" },
|
|
11
|
+
};
|
|
12
|
+
const StepperStage = ({ label, number, state, size = "md", colorScheme = "primary", onClick, isReadOnly = false, disabled = false, showCheck = true, isFirst, isLast, leftDone, rightDone, scrollIntoViewWhenActive = true, }) => {
|
|
13
|
+
const theme = useCustomTheme();
|
|
14
|
+
const palette = resolveStagePalette(theme, colorScheme);
|
|
15
|
+
const ref = useRef(null);
|
|
16
|
+
const s = sizeMap[size];
|
|
17
|
+
const interactive = !isReadOnly && !disabled;
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (state === "active" && scrollIntoViewWhenActive && ref.current) {
|
|
20
|
+
ref.current.scrollIntoView({
|
|
21
|
+
behavior: "smooth",
|
|
22
|
+
inline: "center",
|
|
23
|
+
block: "nearest",
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}, [state, scrollIntoViewWhenActive]);
|
|
27
|
+
const filled = state === "active" || state === "completed";
|
|
28
|
+
const circleBg = filled ? palette.strong : theme.colors.background[50];
|
|
29
|
+
const circleColor = filled ? palette.onStrong : palette.mutedText;
|
|
30
|
+
const circleBorder = filled ? palette.strong : palette.muted;
|
|
31
|
+
const line = (done, hidden) => (_jsx(Box, { flex: "1", height: "2px", bg: done ? palette.strong : palette.muted, visibility: hidden ? "hidden" : "visible", transition: "background 0.18s ease" }));
|
|
32
|
+
return (_jsxs(Flex, { ref: ref, direction: "column", align: "center", flex: "1", minWidth: s.minW, flexShrink: 0, as: (interactive ? "button" : "div"), type: interactive ? "button" : undefined, "data-group": "", border: "none", bg: "transparent", cursor: interactive ? "pointer" : "default", opacity: disabled ? 0.55 : 1, onClick: interactive ? onClick : undefined, children: [_jsxs(Flex, { align: "center", width: "100%", children: [line(leftDone, isFirst), _jsx(Flex, { align: "center", justify: "center", boxSize: s.circle, borderRadius: "full", flexShrink: 0, bg: circleBg, color: circleColor, border: "2px solid", borderColor: circleBorder, fontSize: s.font, fontWeight: 600, transition: "all 0.18s ease", "aria-current": state === "active" ? "step" : undefined, sx: state === "active"
|
|
33
|
+
? { boxShadow: `0 0 0 4px ${palette.soft}` }
|
|
34
|
+
: undefined, _groupHover: interactive
|
|
35
|
+
? { borderColor: palette.strong, color: filled ? palette.onStrong : palette.strong }
|
|
36
|
+
: undefined, children: showCheck && state === "completed" ? _jsx(Check, { size: s.icon }) : number }), line(rightDone, isLast)] }), _jsx(Text, { mt: 2, px: 1, fontSize: s.label, fontWeight: state === "active" ? 600 : 500, color: state === "upcoming" ? palette.mutedText : palette.softText, textAlign: "center", noOfLines: 2, _groupHover: interactive ? { color: palette.strong } : undefined, children: label })] }));
|
|
37
|
+
};
|
|
38
|
+
export default StepperStage;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Flex, Text } from "@chakra-ui/react";
|
|
3
|
+
import { useCustomTheme } from "../../Theme/useCustomTheme";
|
|
4
|
+
export default function Switch({ leftText, rightText, leftIcon, rightIcon, onSwitchToggle, switchActive, }) {
|
|
5
|
+
const theme = useCustomTheme();
|
|
6
|
+
// Read the palette directly: it is already swapped for the active mode, so pairing the rungs
|
|
7
|
+
// through useColorModeValue would adapt twice and pick a LIGHT rung on the dark canvas.
|
|
8
|
+
const highlightBg = theme.colors.primary[50];
|
|
9
|
+
const borderColor = theme.colors.gray[100];
|
|
10
|
+
return (_jsxs(Box, { bg: theme.colors.background[50], border: "0.063rem solid", borderColor: borderColor, borderRadius: "1.25rem", p: "0.063rem", w: "12.5rem", position: "relative", children: [_jsx(Box, { position: "absolute", top: 0, bottom: 0, w: "50%", bg: highlightBg, border: `0.063rem solid ${theme.colors.primary[500]}`, borderRadius: "1rem", transition: "transform 0.3s ease", transform: switchActive === "left" ? "translateX(0%)" : "translateX(100%)" }), _jsxs(Flex, { as: "ul", listStyleType: "none", m: 0, p: "0.063rem", zIndex: 1, position: "relative", children: [_jsxs(Flex, { as: "li", w: "6.875rem", h: "100%", align: "center", justify: "center", cursor: "pointer", px: 2, fontSize: "0.875rem", fontWeight: switchActive === "left" ? 600 : 400, color: theme.colors.text[900], zIndex: 1, onClick: () => onSwitchToggle("left"), children: [leftIcon, _jsx(Text, { ml: leftIcon ? 1 : 0, children: leftText })] }), _jsxs(Flex, { as: "li", w: "6.875rem", h: "100%", align: "center", justify: "center", cursor: "pointer", px: 2, fontSize: "0.875rem", fontWeight: switchActive === "right" ? 600 : 400, color: theme.colors.text[900], zIndex: 1, onClick: () => onSwitchToggle("right"), children: [rightIcon, _jsx(Text, { ml: rightIcon ? 1 : 0, children: rightText })] })] })] }));
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { Box, TableContainer, Flex, Spinner, Popover, PopoverTrigger, PopoverContent, PopoverBody, Portal, useBreakpointValue, IconButton, Modal, ModalOverlay, ModalContent, ModalBody, ModalCloseButton, useDisclosure } from "@chakra-ui/react";
|
|
4
|
+
import { Table as ChakraTable, Tbody, Thead, Icon } from "@chakra-ui/react";
|
|
5
|
+
import { motion } from "framer-motion";
|
|
6
|
+
import LeftFilterPane from "./filters/LeftFilterPane";
|
|
7
|
+
import Pagination from "./components/Pagination";
|
|
8
|
+
import TableHeader from "./components/TableHeader";
|
|
9
|
+
import TableBody from "./components/TableBody";
|
|
10
|
+
import { useCustomTheme } from "../../Theme/useCustomTheme";
|
|
11
|
+
import useTable from "./hooks/useTable";
|
|
12
|
+
import { searchAndSortData, SortMultiColumnData, groupRows, buildTablePalette, pickTableColor } from "../../Utils/table";
|
|
13
|
+
import { useGetPreferences, useSavePreferences, } from "../../Hooks/usePreferences";
|
|
14
|
+
import TableSettings from "./settings/TableSettings";
|
|
15
|
+
import HeaderActions from "./components/HeaderActions";
|
|
16
|
+
import VeritcalDivider from "../Divider/Divider";
|
|
17
|
+
import TableSearch from "./components/TableSearch";
|
|
18
|
+
import ActiveFilters from "./filters/ActiveFilters";
|
|
19
|
+
import Button from "../Button/Button";
|
|
20
|
+
import ToolTip from "../ToolTip/ToolTip";
|
|
21
|
+
import { Filter, EllipsisVertical, X, RefreshCw } from "lucide-react";
|
|
22
|
+
const MotionBox = motion(Box);
|
|
23
|
+
export default function Table({ data, columns, onSelection, isLoading, isCheckbox = false, headerBgColor, freezedBgColor, freezedTextColor, tableBorderColor, noBorders = false, isPagination = true, onRowClick, selections, isActionFreeze = true, preferences = {
|
|
24
|
+
url: "",
|
|
25
|
+
token: "",
|
|
26
|
+
key: "",
|
|
27
|
+
name: "",
|
|
28
|
+
page: "",
|
|
29
|
+
orgId: "",
|
|
30
|
+
}, paginationMode = "client", infiniteScroll = false, hasMore, isLoadingMore = false, groupLoadMore = false, loadMoreText = "Load more", loadMorePosition = "top", loadMoreChunkSize, noOfRowsPerPage = 50, totalRecords = 0, onPagination, isTableSettings = false, headerActions, onGlobalSearch, onNoOfRowsPerPageChange, paginationSelectOptions, tableMaxHeight, minVisibleRows, maxVisibleRows, autoFitViewport, tableSettings, filterSidebar, loadingSkeletonRows, defaultVisibleColumns, density = "normal", stripe, groupColors, onAddItem, emptyState, onRefresh,
|
|
31
|
+
// onColumnFilter
|
|
32
|
+
}) {
|
|
33
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18;
|
|
34
|
+
const theme = useCustomTheme();
|
|
35
|
+
const [columnsSearch, setColumnsSearch] = useState({});
|
|
36
|
+
const tableContainerRef = useRef(null);
|
|
37
|
+
const { isOpen: isFilterModalOpen, onOpen: onFilterModalOpen, onClose: onFilterModalClose } = useDisclosure();
|
|
38
|
+
const filterMode = (_a = filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.filterMode) !== null && _a !== void 0 ? _a : "sidebar";
|
|
39
|
+
const [viewportAvailableH, setViewportAvailableH] = useState(500);
|
|
40
|
+
const isServerPagination = paginationMode === "server";
|
|
41
|
+
const { preferences: tablePreferencesData, loading } = useGetPreferences({
|
|
42
|
+
baseUrl: preferences.url,
|
|
43
|
+
page: preferences.page,
|
|
44
|
+
key: preferences.key,
|
|
45
|
+
name: preferences.name,
|
|
46
|
+
authToken: preferences.token,
|
|
47
|
+
orgId: preferences.orgId,
|
|
48
|
+
});
|
|
49
|
+
const { savePreferences } = useSavePreferences({
|
|
50
|
+
baseUrl: preferences.url,
|
|
51
|
+
page: preferences.page,
|
|
52
|
+
key: preferences.key,
|
|
53
|
+
name: preferences.name,
|
|
54
|
+
authToken: preferences.token,
|
|
55
|
+
orgId: preferences.orgId,
|
|
56
|
+
});
|
|
57
|
+
const [isRefreshing, setIsRefreshing] = useState(false);
|
|
58
|
+
const isTableLoading = useMemo(() => {
|
|
59
|
+
return loading || isLoading || isRefreshing;
|
|
60
|
+
}, [loading, isLoading, isRefreshing]);
|
|
61
|
+
const tablePreferences = useMemo(() => {
|
|
62
|
+
if (tablePreferencesData === null || tablePreferencesData === void 0 ? void 0 : tablePreferencesData.length) {
|
|
63
|
+
return tablePreferencesData[0].json;
|
|
64
|
+
}
|
|
65
|
+
return {};
|
|
66
|
+
}, [tablePreferencesData]);
|
|
67
|
+
const { tableData, isContent, isLink, headerRefs, columnWidths, handleSort, handleCheckbox, filteredData, startRow, endRow, selection, columnsSort, currentPage, pages, rowsPerPage, handlePageSizeChange, setCurrentPage, columnsList, handleColumnPreferences, isSelecting, selectAllRowsRef, } = useTable({
|
|
68
|
+
tableBorderColor,
|
|
69
|
+
data,
|
|
70
|
+
isPagination,
|
|
71
|
+
selections,
|
|
72
|
+
columns,
|
|
73
|
+
onSelection,
|
|
74
|
+
tablePreferences,
|
|
75
|
+
savePreferences,
|
|
76
|
+
noOfRowsPerPage,
|
|
77
|
+
totalRecords,
|
|
78
|
+
isServerPagination,
|
|
79
|
+
onNoOfRowsPerPageChange,
|
|
80
|
+
defaultVisibleColumns,
|
|
81
|
+
});
|
|
82
|
+
// Density + grouping are managed here so the Table Settings tabs can change +
|
|
83
|
+
// persist them (seeded from the prop / saved preferences when they load).
|
|
84
|
+
const [densityState, setDensityState] = useState(density);
|
|
85
|
+
// Grouping is chosen by the user in Table Settings > Group and persisted to
|
|
86
|
+
// preferences (`json.groupBy`); there is no `groupBy` prop.
|
|
87
|
+
const [groupByState, setGroupByState] = useState(undefined);
|
|
88
|
+
const [isPaginationPopoverOpen, setIsPaginationPopoverOpen] = useState(false);
|
|
89
|
+
// Grouped "Load more" accumulates pages here so loading more ADDS rows to the
|
|
90
|
+
// groups (server pagination replaces `data` each fetch). Reset on fresh loads
|
|
91
|
+
// (search / filter / sort / page-size). Only used in grouped + groupLoadMore mode.
|
|
92
|
+
const [accumulatedRows, setAccumulatedRows] = useState([]);
|
|
93
|
+
const pendingLoadMoreRef = useRef(false);
|
|
94
|
+
// Pages loaded so far (1 = the initial page). The next page is derived from this
|
|
95
|
+
// counter — NOT from the deduped row count — so overlapping rows across pages
|
|
96
|
+
// (e.g. pinned rows that repeat on every page) don't stall the page index.
|
|
97
|
+
const loadedPagesRef = useRef(1);
|
|
98
|
+
useEffect(() => {
|
|
99
|
+
if (!groupLoadMore)
|
|
100
|
+
return;
|
|
101
|
+
setAccumulatedRows((prev) => {
|
|
102
|
+
if (prev.length === 0) {
|
|
103
|
+
loadedPagesRef.current = 1;
|
|
104
|
+
return tableData.slice();
|
|
105
|
+
}
|
|
106
|
+
const accIds = new Set(prev.map((r) => r.id));
|
|
107
|
+
if (pendingLoadMoreRef.current) {
|
|
108
|
+
// A "Load more" is in flight. The parent may re-emit the SAME page (new
|
|
109
|
+
// array reference) on intermediate re-renders before the next page arrives,
|
|
110
|
+
// so only append + consume the flag once genuinely new rows show up.
|
|
111
|
+
const newRows = tableData.filter((r) => !accIds.has(r.id));
|
|
112
|
+
if (newRows.length === 0)
|
|
113
|
+
return prev; // same page re-emitted — keep waiting
|
|
114
|
+
pendingLoadMoreRef.current = false;
|
|
115
|
+
return [...prev, ...newRows];
|
|
116
|
+
}
|
|
117
|
+
// Not a load-more: a re-emit of already-loaded rows keeps the accumulation
|
|
118
|
+
// (the parent re-renders the current page often). Genuinely new rows
|
|
119
|
+
// (search / filter / sort / page-size / reload) reset it.
|
|
120
|
+
const allKnown = tableData.length > 0 && tableData.every((r) => accIds.has(r.id));
|
|
121
|
+
if (allKnown)
|
|
122
|
+
return prev;
|
|
123
|
+
loadedPagesRef.current = 1; // fresh data set
|
|
124
|
+
return tableData.slice();
|
|
125
|
+
});
|
|
126
|
+
}, [tableData, groupLoadMore]);
|
|
127
|
+
// Page-size change restarts the accumulation (the page boundaries change), so the
|
|
128
|
+
// next "Load more" requests page 2 of the NEW size, not a stale page index.
|
|
129
|
+
const rowsPerPageMountedRef = useRef(false);
|
|
130
|
+
useEffect(() => {
|
|
131
|
+
if (!rowsPerPageMountedRef.current) {
|
|
132
|
+
rowsPerPageMountedRef.current = true;
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
pendingLoadMoreRef.current = false;
|
|
136
|
+
loadedPagesRef.current = 1;
|
|
137
|
+
setAccumulatedRows(tableData); // current page at the new size (not empty)
|
|
138
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
139
|
+
}, [rowsPerPage]);
|
|
140
|
+
useEffect(() => {
|
|
141
|
+
if (tablePreferences === null || tablePreferences === void 0 ? void 0 : tablePreferences.density) {
|
|
142
|
+
setDensityState(tablePreferences.density);
|
|
143
|
+
}
|
|
144
|
+
}, [tablePreferences === null || tablePreferences === void 0 ? void 0 : tablePreferences.density]);
|
|
145
|
+
useEffect(() => {
|
|
146
|
+
if (tablePreferences && "groupBy" in tablePreferences) {
|
|
147
|
+
const saved = tablePreferences.groupBy;
|
|
148
|
+
setGroupByState(saved === null || saved === undefined || saved === "" ? undefined : saved);
|
|
149
|
+
}
|
|
150
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
151
|
+
}, [tablePreferences === null || tablePreferences === void 0 ? void 0 : tablePreferences.groupBy]);
|
|
152
|
+
const handleDensityChange = (d) => {
|
|
153
|
+
setDensityState(d);
|
|
154
|
+
savePreferences === null || savePreferences === void 0 ? void 0 : savePreferences({ ...tablePreferences, columns: columnsList, groupBy: groupByState !== null && groupByState !== void 0 ? groupByState : null, density: d });
|
|
155
|
+
};
|
|
156
|
+
// Settings "Save": persist columns + group (+ current density) in ONE write so
|
|
157
|
+
// they don't clobber each other, and apply them locally.
|
|
158
|
+
const handleSettingsSave = (cols, group) => {
|
|
159
|
+
setGroupByState(group);
|
|
160
|
+
handleColumnPreferences(cols, { density: densityState, groupBy: group !== null && group !== void 0 ? group : null });
|
|
161
|
+
};
|
|
162
|
+
const _filteredData = useMemo(() => {
|
|
163
|
+
return searchAndSortData(filteredData, columnsSearch);
|
|
164
|
+
}, [columnsSearch, filteredData]);
|
|
165
|
+
// --- Monday-style grouping. Active whenever the user has picked a group column
|
|
166
|
+
// (in Settings > Group). When active, the numbered pager / infinite scroll are
|
|
167
|
+
// hidden and the body renders colored, collapsible groups over the loaded rows.
|
|
168
|
+
// `groupLoadMore` adds a "Load more" button on top to fetch more into the groups. ---
|
|
169
|
+
const isGrouped = !!groupByState;
|
|
170
|
+
// Infinite scroll (server mode, not grouped): load more on scroll-near-bottom.
|
|
171
|
+
const canInfinite = infiniteScroll && !isGrouped;
|
|
172
|
+
// Grouped "Load more": the accumulated pages back the grouped board so loading
|
|
173
|
+
// more grows the groups instead of replacing them.
|
|
174
|
+
const loadMoreBase = isGrouped && groupLoadMore ? accumulatedRows : tableData;
|
|
175
|
+
const hasMoreEffective = typeof hasMore === "boolean"
|
|
176
|
+
? hasMore
|
|
177
|
+
: isServerPagination
|
|
178
|
+
? loadMoreBase.length < totalRecords
|
|
179
|
+
: false;
|
|
180
|
+
const groupLoadMoreActive = isGrouped && groupLoadMore;
|
|
181
|
+
// Keep the button while a load is in flight (so a transient empty `data` during
|
|
182
|
+
// fetching doesn't make it flicker); hide it once loading settles with no more.
|
|
183
|
+
const canGroupLoadMore = groupLoadMoreActive && (hasMoreEffective || isLoadingMore);
|
|
184
|
+
const groupPalette = useMemo(() => buildTablePalette(theme), [theme]);
|
|
185
|
+
const groupedSource = useMemo(() => {
|
|
186
|
+
if (!isGrouped)
|
|
187
|
+
return [];
|
|
188
|
+
const src = groupLoadMore ? accumulatedRows : tableData;
|
|
189
|
+
return searchAndSortData(SortMultiColumnData(src, columnsSort), columnsSearch);
|
|
190
|
+
}, [isGrouped, groupLoadMore, accumulatedRows, tableData, columnsSort, columnsSearch]);
|
|
191
|
+
const renderGroups = useMemo(() => {
|
|
192
|
+
if (!isGrouped)
|
|
193
|
+
return undefined;
|
|
194
|
+
return groupRows(groupedSource, groupByState).map((g) => ({
|
|
195
|
+
...g,
|
|
196
|
+
color: pickTableColor(g.value, groupPalette, groupColors === null || groupColors === void 0 ? void 0 : groupColors[g.value]),
|
|
197
|
+
}));
|
|
198
|
+
}, [isGrouped, groupedSource, groupByState, groupPalette, groupColors]);
|
|
199
|
+
// "Select all" + header checkbox operate on the rows actually rendered: the
|
|
200
|
+
// accumulated grouped source when grouped, otherwise the table data.
|
|
201
|
+
const selectAllRows = isGrouped ? groupedSource : tableData;
|
|
202
|
+
selectAllRowsRef.current = isGrouped ? groupedSource : null;
|
|
203
|
+
const headerChecked = useMemo(() => {
|
|
204
|
+
if (selection.length === 0)
|
|
205
|
+
return false;
|
|
206
|
+
if (selectAllRows.length === 0)
|
|
207
|
+
return false;
|
|
208
|
+
const sel = new Set(selection);
|
|
209
|
+
return selectAllRows.every((r) => sel.has(r.id)) ? true : "indeterminate";
|
|
210
|
+
}, [selection, selectAllRows]);
|
|
211
|
+
const onPaginationRef = useRef(onPagination);
|
|
212
|
+
onPaginationRef.current = onPagination;
|
|
213
|
+
const prevPageRef = useRef(currentPage);
|
|
214
|
+
useEffect(() => {
|
|
215
|
+
if (onPaginationRef.current) {
|
|
216
|
+
const prevPage = prevPageRef.current;
|
|
217
|
+
let direction;
|
|
218
|
+
if (currentPage === 0) {
|
|
219
|
+
direction = "first";
|
|
220
|
+
}
|
|
221
|
+
else if (currentPage === pages - 1) {
|
|
222
|
+
direction = "last";
|
|
223
|
+
}
|
|
224
|
+
else if (currentPage > prevPage) {
|
|
225
|
+
direction = "next";
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
direction = "prev";
|
|
229
|
+
}
|
|
230
|
+
const record = direction === "next" || direction === "last"
|
|
231
|
+
? (tableData.length > 0 ? tableData[tableData.length - 1] : undefined)
|
|
232
|
+
: (tableData.length > 0 ? tableData[0] : undefined);
|
|
233
|
+
onPaginationRef.current(currentPage + 1, rowsPerPage, record, direction);
|
|
234
|
+
prevPageRef.current = currentPage;
|
|
235
|
+
}
|
|
236
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
237
|
+
}, [currentPage, rowsPerPage]);
|
|
238
|
+
// Grouped "Load more": request the next chunk; parent appends it to `data` and
|
|
239
|
+
// the table re-groups so new rows land in their respective groups.
|
|
240
|
+
const handleGroupLoadMore = () => {
|
|
241
|
+
var _a;
|
|
242
|
+
if (isLoadingMore || isTableLoading || !hasMoreEffective)
|
|
243
|
+
return;
|
|
244
|
+
// Must request the SAME page size the data was loaded with — a page-count model
|
|
245
|
+
// breaks if pages have different sizes (e.g. page size 100 but a 20-row chunk
|
|
246
|
+
// re-requests already-loaded records). `loadMoreChunkSize` is only a last-resort
|
|
247
|
+
// fallback and is otherwise ignored.
|
|
248
|
+
const chunk = rowsPerPage || loadMoreChunkSize || 20;
|
|
249
|
+
// Advance by page COUNT (not by deduped row count) so overlapping/pinned rows
|
|
250
|
+
// across pages don't keep us stuck on the same page.
|
|
251
|
+
const nextPage = loadedPagesRef.current + 1;
|
|
252
|
+
loadedPagesRef.current = nextPage;
|
|
253
|
+
const lastRecord = loadMoreBase.length > 0 ? loadMoreBase[loadMoreBase.length - 1] : undefined;
|
|
254
|
+
pendingLoadMoreRef.current = true;
|
|
255
|
+
(_a = onPaginationRef.current) === null || _a === void 0 ? void 0 : _a.call(onPaginationRef, nextPage, chunk, lastRecord, "next");
|
|
256
|
+
};
|
|
257
|
+
// While more can load → live count; once everything's loaded → "Showing all
|
|
258
|
+
// records" (the running total isn't shown because de-duped/server totals can
|
|
259
|
+
// disagree, e.g. "250 of 250" would be misleading).
|
|
260
|
+
const groupLoadMoreCaption = !groupLoadMoreActive || isTableLoading || loadMoreBase.length === 0
|
|
261
|
+
? undefined
|
|
262
|
+
: canGroupLoadMore
|
|
263
|
+
? totalRecords > 0
|
|
264
|
+
? `Showing ${loadMoreBase.length} of ${totalRecords}`
|
|
265
|
+
: `Showing ${loadMoreBase.length}`
|
|
266
|
+
: "Showing all records";
|
|
267
|
+
const tablePaginationText = useMemo(() => isServerPagination
|
|
268
|
+
? `${startRow + 1} - ${Math.min(startRow + rowsPerPage, totalRecords)} of ${totalRecords}`
|
|
269
|
+
: `${startRow + 1} - ${endRow > tableData.length ? tableData.length : endRow} of ${tableData.length}`, [startRow, rowsPerPage, totalRecords, endRow, tableData.length]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
270
|
+
const controlsHeight = 45;
|
|
271
|
+
const estimatedRowHeight = 45;
|
|
272
|
+
// In grouped mode the rendered rows come from the full grouped source, not the
|
|
273
|
+
// paged slice — base the height on that so a 1-result search isn't clipped.
|
|
274
|
+
const actualRows = isGrouped ? groupedSource.length : _filteredData.length;
|
|
275
|
+
const isEmptyState = !isTableLoading && actualRows === 0;
|
|
276
|
+
const loadingRowsCount = typeof loadingSkeletonRows === "number" ? Math.max(1, loadingSkeletonRows) : 4;
|
|
277
|
+
const minRows = typeof minVisibleRows === "number"
|
|
278
|
+
? Math.max(0, minVisibleRows)
|
|
279
|
+
: (actualRows === 0
|
|
280
|
+
? 1
|
|
281
|
+
: ((filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.isFilterSidebar) ? 5 : actualRows));
|
|
282
|
+
const maxRows = typeof maxVisibleRows === "number" ? Math.max(minRows, maxVisibleRows) : (actualRows === 0 ? 1 : 10);
|
|
283
|
+
const visibleRowsCount = Math.max(minRows, Math.min(actualRows, maxRows));
|
|
284
|
+
useEffect(() => {
|
|
285
|
+
if (!autoFitViewport)
|
|
286
|
+
return;
|
|
287
|
+
const compute = () => {
|
|
288
|
+
if (tableContainerRef.current) {
|
|
289
|
+
const rect = tableContainerRef.current.getBoundingClientRect();
|
|
290
|
+
const available = Math.max(200, window.innerHeight - rect.top - 16);
|
|
291
|
+
setViewportAvailableH(available);
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
compute();
|
|
295
|
+
window.addEventListener("resize", compute);
|
|
296
|
+
return () => window.removeEventListener("resize", compute);
|
|
297
|
+
}, [autoFitViewport]);
|
|
298
|
+
const heightRowsCount = isTableLoading ? loadingRowsCount : visibleRowsCount;
|
|
299
|
+
const isCompactRows = heightRowsCount <= 1 && !(filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.isFilterSidebar) && !isGrouped && !isEmptyState;
|
|
300
|
+
let rowsHeight = heightRowsCount * estimatedRowHeight + estimatedRowHeight;
|
|
301
|
+
if (isGrouped)
|
|
302
|
+
rowsHeight += ((_b = renderGroups === null || renderGroups === void 0 ? void 0 : renderGroups.length) !== null && _b !== void 0 ? _b : 1) * 42; // group header rows
|
|
303
|
+
if (isEmptyState)
|
|
304
|
+
rowsHeight = Math.max(rowsHeight, 200); // room for the empty state
|
|
305
|
+
const dynamicMaxH = Math.min(500, rowsHeight);
|
|
306
|
+
const fittedMaxH = autoFitViewport ? Math.min(dynamicMaxH, viewportAvailableH) : dynamicMaxH;
|
|
307
|
+
const tableMaxH = typeof tableMaxHeight === "number" ? tableMaxHeight : (isCompactRows ? rowsHeight + 8 : fittedMaxH);
|
|
308
|
+
const isCompactHeader = useBreakpointValue({ base: true, md: true, lg: false });
|
|
309
|
+
useEffect(() => {
|
|
310
|
+
if (!isCompactHeader) {
|
|
311
|
+
setIsPaginationPopoverOpen(false);
|
|
312
|
+
}
|
|
313
|
+
}, [isCompactHeader]);
|
|
314
|
+
const compactScrollbarPadding = isCompactRows ? 4 : 0;
|
|
315
|
+
// Infinite scroll: reuse onPagination("next") when scrolled near the bottom.
|
|
316
|
+
const infiniteRef = useRef({ isLoadingMore, isTableLoading, hasMore, rowsPerPage, dataLen: tableData.length, lastRecord: tableData[tableData.length - 1], totalRecords, isServerPagination });
|
|
317
|
+
infiniteRef.current = { isLoadingMore, isTableLoading, hasMore, rowsPerPage, dataLen: tableData.length, lastRecord: tableData[tableData.length - 1], totalRecords, isServerPagination };
|
|
318
|
+
useEffect(() => {
|
|
319
|
+
if (!canInfinite)
|
|
320
|
+
return;
|
|
321
|
+
const el = tableContainerRef.current;
|
|
322
|
+
if (!el)
|
|
323
|
+
return;
|
|
324
|
+
const onScroll = () => {
|
|
325
|
+
var _a;
|
|
326
|
+
const s = infiniteRef.current;
|
|
327
|
+
if (s.isLoadingMore || s.isTableLoading)
|
|
328
|
+
return;
|
|
329
|
+
const more = typeof s.hasMore === "boolean"
|
|
330
|
+
? s.hasMore
|
|
331
|
+
: s.isServerPagination
|
|
332
|
+
? s.dataLen < s.totalRecords
|
|
333
|
+
: false;
|
|
334
|
+
if (!more)
|
|
335
|
+
return;
|
|
336
|
+
if (el.scrollHeight - el.scrollTop - el.clientHeight < 160) {
|
|
337
|
+
const nextPage = Math.floor(s.dataLen / (s.rowsPerPage || 1)) + 1;
|
|
338
|
+
(_a = onPaginationRef.current) === null || _a === void 0 ? void 0 : _a.call(onPaginationRef, nextPage, s.rowsPerPage, s.lastRecord, "next");
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
el.addEventListener("scroll", onScroll, { passive: true });
|
|
342
|
+
return () => el.removeEventListener("scroll", onScroll);
|
|
343
|
+
}, [canInfinite]);
|
|
344
|
+
const sidebarActiveCount = useMemo(() => {
|
|
345
|
+
if (!(filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.selected))
|
|
346
|
+
return 0;
|
|
347
|
+
return Object.entries(filterSidebar.selected).reduce((acc, [key, items]) => {
|
|
348
|
+
if (key === "search")
|
|
349
|
+
return acc; // Don't count search in active filter count
|
|
350
|
+
return acc + (Array.isArray(items) ? items.length : 0);
|
|
351
|
+
}, 0);
|
|
352
|
+
}, [filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.selected]);
|
|
353
|
+
return (_jsxs(_Fragment, { children: [_jsx("style", { children: `
|
|
354
|
+
@keyframes pixelize-table-spin {
|
|
355
|
+
from { transform: rotate(0deg); }
|
|
356
|
+
to { transform: rotate(360deg); }
|
|
357
|
+
}
|
|
358
|
+
` }), _jsxs(Box, { bg: (_d = (_c = theme.colors) === null || _c === void 0 ? void 0 : _c.background) === null || _d === void 0 ? void 0 : _d[50], border: `0.063rem solid ${(_e = theme.colors.border) === null || _e === void 0 ? void 0 : _e[500]}`, borderRadius: 3, children: [filterSidebar && filterMode === "modal" && (_jsxs(Modal, { isOpen: isFilterModalOpen, onClose: onFilterModalClose, size: "4xl", scrollBehavior: "inside", children: [_jsx(ModalOverlay, {}), _jsxs(ModalContent, { bg: (_g = (_f = theme.colors) === null || _f === void 0 ? void 0 : _f.background) === null || _g === void 0 ? void 0 : _g[50], my: 0, top: "10%", position: "fixed", left: "auto", right: "auto", children: [_jsx(ModalCloseButton, { size: "sm" }), _jsx(ModalBody, { p: 0, children: _jsx(LeftFilterPane, { theme: theme, sections: (_h = filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.sidebarOptions) !== null && _h !== void 0 ? _h : [], selected: filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.selected, onApply: (sel) => { var _a; (_a = filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.onApply) === null || _a === void 0 ? void 0 : _a.call(filterSidebar, sel); onFilterModalClose(); }, onClear: () => { var _a; (_a = filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.onClearAllHandler) === null || _a === void 0 ? void 0 : _a.call(filterSidebar); }, isApplyLoading: filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.isApplyLoading, filterMode: filterMode }) })] })] })), _jsxs(Flex, { align: "start", children: [filterMode === "sidebar" && (_jsx(MotionBox, { initial: { width: 0 }, animate: { width: (filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.isFilterSidebar) ? 180 : 0 }, transition: { type: "tween", duration: 0.5 }, overflow: "hidden", flexShrink: 0, borderRight: "1px solid", borderColor: (_j = theme.colors.border) === null || _j === void 0 ? void 0 : _j[500], style: { height: controlsHeight + tableMaxH }, minHeight: (filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.isFilterSidebar) ? "32rem" : "auto", children: _jsx(LeftFilterPane, { height: controlsHeight + tableMaxH, theme: theme, sections: (_k = filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.sidebarOptions) !== null && _k !== void 0 ? _k : [], selected: filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.selected, onApply: filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.onApply, onClear: filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.onClearAllHandler, isApplyLoading: filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.isApplyLoading, filterMode: filterMode }) })), _jsxs(Box, { flex: "1", minW: 0, children: [_jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", px: 3, py: 0, height: controlsHeight, gap: 3, flexWrap: "nowrap", bg: (_m = (_l = theme.colors) === null || _l === void 0 ? void 0 : _l.background) === null || _m === void 0 ? void 0 : _m[50], borderBottom: `0.063rem solid ${(_o = theme.colors.border) === null || _o === void 0 ? void 0 : _o[500]}`, children: [filterSidebar && (_jsxs(_Fragment, { children: [_jsx(ToolTip, { label: "Filter", placement: "top", children: _jsxs(Box, { position: "relative", display: "inline-block", children: [_jsx(Icon, { as: Filter, transform: "scaleX(-1)", cursor: "pointer", boxSize: 4, color: sidebarActiveCount > 0 ? (_q = (_p = theme.colors) === null || _p === void 0 ? void 0 : _p.primary) === null || _q === void 0 ? void 0 : _q[500] : (_s = (_r = theme.colors) === null || _r === void 0 ? void 0 : _r.text) === null || _s === void 0 ? void 0 : _s[500], onClick: filterMode === "modal" ? onFilterModalOpen : filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.filterSidebarToggle, _hover: {
|
|
359
|
+
color: (_u = (_t = theme.colors) === null || _t === void 0 ? void 0 : _t.primary) === null || _u === void 0 ? void 0 : _u[500],
|
|
360
|
+
} }), sidebarActiveCount > 0 && (_jsx(Box, { position: "absolute", top: "-6px", right: "-10px", bg: (_w = (_v = theme.colors) === null || _v === void 0 ? void 0 : _v.primary) === null || _w === void 0 ? void 0 : _w[500], color: "white", borderRadius: "full", p: "1px", cursor: "pointer", onClick: (e) => {
|
|
361
|
+
var _a;
|
|
362
|
+
e.stopPropagation();
|
|
363
|
+
if (filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.onClearAllHandler) {
|
|
364
|
+
filterSidebar.onClearAllHandler();
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
(_a = filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.onApply) === null || _a === void 0 ? void 0 : _a.call(filterSidebar, {});
|
|
368
|
+
}
|
|
369
|
+
}, _hover: { bg: (_y = (_x = theme.colors) === null || _x === void 0 ? void 0 : _x.red) === null || _y === void 0 ? void 0 : _y[600] }, display: "flex", alignItems: "center", justifyContent: "center", zIndex: 2, children: _jsx(X, { size: 10, strokeWidth: 3 }) }))] }) }), _jsx(VeritcalDivider, {})] })), _jsx(TableSearch, { onSearch: onGlobalSearch }), isTableSettings && (_jsxs(_Fragment, { children: [_jsx(VeritcalDivider, {}), _jsx(TableSettings, { columns: columnsList, onSave: (cols, group) => handleSettingsSave(cols, group), tableSettings: tableSettings, density: densityState, onDensityChange: handleDensityChange, groupBy: groupByState })] })), onRefresh && (_jsxs(_Fragment, { children: [_jsx(VeritcalDivider, {}), _jsx(ToolTip, { label: "Refresh", placement: "top", children: _jsx(Box, { display: "flex", justifyContent: "flex-end", cursor: "pointer", transition: "all 0.2s ease", color: theme.colors.text[500], _hover: {
|
|
370
|
+
color: theme.colors.primary[500],
|
|
371
|
+
transform: "scale(1.1)"
|
|
372
|
+
}, onClick: async () => {
|
|
373
|
+
if (!isRefreshing) {
|
|
374
|
+
setIsRefreshing(true);
|
|
375
|
+
try {
|
|
376
|
+
await onRefresh();
|
|
377
|
+
}
|
|
378
|
+
finally {
|
|
379
|
+
setIsRefreshing(false);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}, style: {
|
|
383
|
+
animation: isRefreshing
|
|
384
|
+
? "pixelize-table-spin 1s linear infinite"
|
|
385
|
+
: "none"
|
|
386
|
+
}, children: _jsx(RefreshCw, { size: 16 }) }) })] })), headerActions && (_jsxs(_Fragment, { children: [_jsx(VeritcalDivider, {}), _jsx(HeaderActions, { actions: headerActions, selections: selection })] })), _jsx(ActiveFilters, { columns: columnsList, columnsSearch: columnsSearch, setColumnsSearch: setColumnsSearch }), _jsxs(Box, { ml: "auto", display: "flex", alignItems: "center", gap: 2, children: [groupLoadMoreActive && loadMorePosition === "top" && (groupLoadMoreCaption || canGroupLoadMore) && (_jsxs(Box, { display: "flex", alignItems: "center", gap: 2, flex: "0 0 auto", children: [groupLoadMoreCaption && (_jsx(Box, { fontSize: "0.75rem", color: (_0 = (_z = theme.colors) === null || _z === void 0 ? void 0 : _z.text) === null || _0 === void 0 ? void 0 : _0[500], whiteSpace: "nowrap", children: groupLoadMoreCaption })), canGroupLoadMore && (_jsx(Button, { size: "xs", variant: "outline", colorScheme: "gray", isLoading: isLoadingMore, loadingText: loadMoreText, onClick: handleGroupLoadMore, label: loadMoreText }))] })), (isPagination || isServerPagination) && !isGrouped && !canInfinite && !isCompactHeader && (_jsx("div", { children: _jsx(Pagination, { columns: columns, currentPage: currentPage, setCurrentPage: setCurrentPage, rowsPerPage: rowsPerPage, pages: pages, paginationText: tablePaginationText, handlePageSizeChange: handlePageSizeChange, dataLength: tableData.length, isServerPagination: isServerPagination, paginationSelectOptions: paginationSelectOptions, isVisiblity: true }) })), (isPagination || isServerPagination) && !isGrouped && !canInfinite && isCompactHeader && tableData.length > 0 && (_jsxs(Popover, { isOpen: isPaginationPopoverOpen, onClose: () => setIsPaginationPopoverOpen(false), placement: "bottom-end", children: [_jsx(PopoverTrigger, { children: _jsx(IconButton, { "aria-label": "Pagination", size: "sm", variant: "ghost", icon: _jsx(EllipsisVertical, { size: 18 }), color: (_2 = (_1 = theme.colors) === null || _1 === void 0 ? void 0 : _1.text) === null || _2 === void 0 ? void 0 : _2[500], _hover: {
|
|
387
|
+
color: (_4 = (_3 = theme.colors) === null || _3 === void 0 ? void 0 : _3.primary) === null || _4 === void 0 ? void 0 : _4[500],
|
|
388
|
+
}, onClick: () => setIsPaginationPopoverOpen((open) => !open) }) }), _jsx(Portal, { children: _jsx(PopoverContent, { maxW: "22rem", p: 2, zIndex: 1600, bg: (_5 = theme.colors.background) === null || _5 === void 0 ? void 0 : _5[50], boxShadow: "lg", children: _jsx(PopoverBody, { p: 0, children: _jsx(Pagination, { columns: columns, currentPage: currentPage, setCurrentPage: setCurrentPage, rowsPerPage: rowsPerPage, pages: pages, paginationText: tablePaginationText, handlePageSizeChange: handlePageSizeChange, dataLength: tableData.length, isServerPagination: isServerPagination, paginationSelectOptions: paginationSelectOptions, isVisiblity: true }) }) }) })] }))] })] }), _jsxs(TableContainer, { ref: tableContainerRef, position: "relative", h: isTableLoading ? tableMaxH : undefined, maxH: !isTableLoading ? tableMaxH : undefined, pb: isTableLoading ? 0 : compactScrollbarPadding, overflowY: isCompactRows ? "hidden" : "auto", overflowX: "auto", sx: {
|
|
389
|
+
'&::-webkit-scrollbar': {
|
|
390
|
+
width: '6px',
|
|
391
|
+
height: isCompactRows ? '0px' : '6px',
|
|
392
|
+
},
|
|
393
|
+
'&:hover::-webkit-scrollbar': {
|
|
394
|
+
height: '6px',
|
|
395
|
+
},
|
|
396
|
+
'&::-webkit-scrollbar-track': {
|
|
397
|
+
background: theme.colors.gray[100],
|
|
398
|
+
borderRadius: '3px',
|
|
399
|
+
},
|
|
400
|
+
'&::-webkit-scrollbar-thumb': {
|
|
401
|
+
background: theme.colors.gray[400],
|
|
402
|
+
borderRadius: '3px',
|
|
403
|
+
},
|
|
404
|
+
'&::-webkit-scrollbar-thumb:hover': {
|
|
405
|
+
background: theme.colors.gray[500],
|
|
406
|
+
},
|
|
407
|
+
scrollbarWidth: isCompactRows ? 'none' : 'thin',
|
|
408
|
+
'&:hover': {
|
|
409
|
+
scrollbarWidth: 'thin',
|
|
410
|
+
},
|
|
411
|
+
scrollbarColor: `${theme.colors.gray[400]} ${theme.colors.gray[100]}`,
|
|
412
|
+
}, children: [_jsxs(ChakraTable, { variant: "simple", size: "sm", minW: "100%", role: "grid", "aria-rowcount": isGrouped ? undefined : _filteredData.length + 1, className: "table_wrapper", sx: {
|
|
413
|
+
width: "100%",
|
|
414
|
+
// `separate` (not `collapse`) so sticky header cells paint an opaque
|
|
415
|
+
// background over their borders — collapsed borders bleed scrolling
|
|
416
|
+
// content through the seams.
|
|
417
|
+
borderCollapse: "separate",
|
|
418
|
+
borderSpacing: 0,
|
|
419
|
+
"th .resize-handle": {
|
|
420
|
+
position: "absolute",
|
|
421
|
+
top: 0,
|
|
422
|
+
right: 0,
|
|
423
|
+
width: "8px",
|
|
424
|
+
height: "100%",
|
|
425
|
+
cursor: "col-resize",
|
|
426
|
+
backgroundColor: "transparent",
|
|
427
|
+
zIndex: 999,
|
|
428
|
+
},
|
|
429
|
+
}, children: [_jsx(Thead, { position: "sticky", top: 0, zIndex: 4, bg: (_8 = (_7 = (_6 = theme.colors.table) === null || _6 === void 0 ? void 0 : _6.hover) === null || _7 === void 0 ? void 0 : _7[200]) !== null && _8 !== void 0 ? _8 : (_9 = theme.colors.secondary) === null || _9 === void 0 ? void 0 : _9[50], children: _jsx(TableHeader, { columns: columnsList, isCheckbox: isCheckbox, headerBgColor: headerBgColor !== null && headerBgColor !== void 0 ? headerBgColor : theme.colors.backgroundColor.muted, freezedBgColor: freezedBgColor !== null && freezedBgColor !== void 0 ? freezedBgColor : theme.colors.backgroundColor.secondary, freezedTextColor: freezedTextColor !== null && freezedTextColor !== void 0 ? freezedTextColor : (_10 = theme.colors) === null || _10 === void 0 ? void 0 : _10.gray[600], handleSort: handleSort, headerRefs: headerRefs, columnWidths: columnWidths, columnsSort: columnsSort, noBorders: noBorders, handleCheckbox: handleCheckbox, isLoading: isTableLoading, checked: headerChecked, isContent: isContent, isLink: isLink, isActionFreeze: isActionFreeze, setColumnsSearch: setColumnsSearch, columnsSearch: columnsSearch, isSelecting: isSelecting }) }), _jsx(Tbody, { children: _jsx(TableBody, { data: isGrouped ? groupedSource : _filteredData, groups: renderGroups, onAddItem: onAddItem, columns: columnsList, startRow: isGrouped ? 0 : startRow, endRow: endRow, scrollContainerRef: tableContainerRef, isCheckbox: isCheckbox, columnWidths: columnWidths, noBorders: noBorders, freezedBgColor: freezedBgColor !== null && freezedBgColor !== void 0 ? freezedBgColor : theme.colors.backgroundColor.secondary, freezedTextColor: freezedTextColor !== null && freezedTextColor !== void 0 ? freezedTextColor : (_11 = theme.colors) === null || _11 === void 0 ? void 0 : _11.gray[600], handleCheckbox: handleCheckbox, selections: selection, isLoading: isTableLoading, loadingSkeletonRows: loadingSkeletonRows, onRowClick: onRowClick, isContent: isContent, isLink: isLink, isActionFreeze: isActionFreeze, density: densityState, stripe: stripe, emptyState: emptyState }) })] }), canInfinite && isLoadingMore && (_jsxs(Flex, { justify: "center", align: "center", py: 3, gap: 2, children: [_jsx(Spinner, { size: "sm", color: (_13 = (_12 = theme.colors) === null || _12 === void 0 ? void 0 : _12.primary) === null || _13 === void 0 ? void 0 : _13[500] }), _jsx(Box, { fontSize: "0.75rem", color: (_15 = (_14 = theme.colors) === null || _14 === void 0 ? void 0 : _14.text) === null || _15 === void 0 ? void 0 : _15[500], children: "Loading more\u2026" })] }))] }), groupLoadMoreActive && loadMorePosition === "bottom" && (groupLoadMoreCaption || canGroupLoadMore) && (_jsxs(Flex, { justify: "center", align: "center", gap: 3, py: 3, borderTop: `0.063rem solid ${(_16 = theme.colors.border) === null || _16 === void 0 ? void 0 : _16[500]}`, children: [groupLoadMoreCaption && (_jsx(Box, { fontSize: "0.75rem", color: (_18 = (_17 = theme.colors) === null || _17 === void 0 ? void 0 : _17.text) === null || _18 === void 0 ? void 0 : _18[500], children: groupLoadMoreCaption })), canGroupLoadMore && (_jsx(Button, { size: "xs", variant: "outline", colorScheme: "gray", isLoading: isLoadingMore, loadingText: loadMoreText, onClick: handleGroupLoadMore, label: loadMoreText }))] }))] })] })] })] }));
|
|
430
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// // Import React and the Table component
|
|
2
|
+
// import React from 'react';
|
|
3
|
+
// import Table from './Table';
|
|
4
|
+
// import { TableProps } from './TableProps';
|
|
5
|
+
// // Import Storybook's required modules
|
|
6
|
+
// import { StoryFn, Meta } from '@storybook/react';
|
|
7
|
+
// import { fn } from '@storybook/test';
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|