@majapisoftwares/ui 4.3.17 → 6.0.0
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/AGENTS.md +27 -0
- package/README.md +79 -0
- package/THIRD_PARTY_NOTICES.md +39 -0
- package/components.json +25 -0
- package/docs/MIGRATION-0.2.md +20 -0
- package/docs/MIGRATION-6.0.md +33 -0
- package/docs/NEXT-STARTER-VALIDATION.md +14 -0
- package/docs/STANDARDS.md +41 -0
- package/docs/VALIDATION.md +11 -0
- package/docs/VERSIONING.md +28 -0
- package/package.json +78 -2
- package/scripts/check-standards.mjs +41 -0
- package/src/components/ui/accordion.tsx +82 -0
- package/src/components/ui/alert-dialog.tsx +187 -0
- package/src/components/ui/alert.tsx +77 -0
- package/src/components/ui/avatar.tsx +108 -0
- package/src/components/ui/badge.tsx +55 -0
- package/src/components/ui/breadcrumb.tsx +125 -0
- package/src/components/ui/button-group.tsx +89 -0
- package/src/components/ui/button.tsx +59 -0
- package/src/components/ui/card.tsx +101 -0
- package/src/components/ui/checkbox.tsx +27 -0
- package/src/components/ui/collapsible.tsx +21 -0
- package/src/components/ui/context-menu.tsx +271 -0
- package/src/components/ui/dialog.tsx +161 -0
- package/src/components/ui/dropdown-menu.tsx +271 -0
- package/src/components/ui/empty.tsx +105 -0
- package/src/components/ui/field.tsx +238 -0
- package/src/components/ui/hover-card.tsx +50 -0
- package/src/components/ui/input-group.tsx +155 -0
- package/src/components/ui/input.tsx +21 -0
- package/src/components/ui/kbd.tsx +28 -0
- package/src/components/ui/label.tsx +19 -0
- package/src/components/ui/orb.css +1002 -0
- package/src/components/ui/orb.tsx +752 -0
- package/src/components/ui/popover.tsx +89 -0
- package/src/components/ui/progress.tsx +82 -0
- package/src/components/ui/radio-group.tsx +37 -0
- package/src/components/ui/scroll-area.tsx +54 -0
- package/src/components/ui/select.tsx +204 -0
- package/src/components/ui/separator.tsx +24 -0
- package/src/components/ui/sheet.tsx +139 -0
- package/src/components/ui/sidebar.tsx +1035 -0
- package/src/components/ui/skeleton.tsx +15 -0
- package/src/components/ui/slider.tsx +53 -0
- package/src/components/ui/sonner.tsx +44 -0
- package/src/components/ui/spinner.tsx +32 -0
- package/src/components/ui/switch.tsx +31 -0
- package/src/components/ui/table.tsx +121 -0
- package/src/components/ui/tabs.tsx +81 -0
- package/src/components/ui/textarea.tsx +19 -0
- package/src/components/ui/toggle-group.tsx +89 -0
- package/src/components/ui/toggle.tsx +44 -0
- package/src/components/ui/tooltip.tsx +65 -0
- package/src/hooks/use-mobile.ts +20 -0
- package/src/lib/i18n.tsx +109 -0
- package/src/lib/utils.ts +1 -0
- package/src/patterns/app-shell.tsx +175 -0
- package/src/patterns/data-table.tsx +2486 -0
- package/src/patterns/details-sheet.tsx +53 -0
- package/src/patterns/filter-tabs.tsx +53 -0
- package/src/patterns/majapi-logo.tsx +32 -0
- package/src/patterns/page-header.tsx +62 -0
- package/src/patterns/preferences.tsx +172 -0
- package/src/patterns/status-badge.tsx +24 -0
- package/src/styles.css +165 -0
- package/src/templates/admin-dashboard.tsx +44 -0
- package/src/templates/auth-layout.tsx +30 -0
- package/src/templates/login-form.tsx +129 -0
- package/src/templates/signup-form.tsx +177 -0
- package/base.css +0 -360
- package/bootstrap/AppProps.d.ts +0 -9
- package/bootstrap/AppProps.js +0 -1
- package/bootstrap/index.d.ts +0 -1
- package/bootstrap/index.js +0 -1
- package/bootstrap/modeScript.d.ts +0 -2
- package/bootstrap/modeScript.js +0 -35
- package/bootstrap/nprogress.d.ts +0 -1
- package/bootstrap/nprogress.js +0 -19
- package/bootstrap/scrolledScript.d.ts +0 -2
- package/bootstrap/scrolledScript.js +0 -27
- package/bootstrap/setupFocusManager.d.ts +0 -1
- package/bootstrap/setupFocusManager.js +0 -13
- package/bootstrap/suppressConsoleLog.d.ts +0 -1
- package/bootstrap/suppressConsoleLog.js +0 -8
- package/components/Accordion/Accordion.d.ts +0 -16
- package/components/Accordion/Accordion.jsx +0 -27
- package/components/Accordion/index.d.ts +0 -3
- package/components/Accordion/index.jsx +0 -3
- package/components/Alert/Alert.d.ts +0 -31
- package/components/Alert/Alert.jsx +0 -53
- package/components/Alert/index.d.ts +0 -3
- package/components/Alert/index.jsx +0 -3
- package/components/AntiClickjacking/AntiClickjacking.d.ts +0 -1
- package/components/AntiClickjacking/AntiClickjacking.jsx +0 -17
- package/components/AntiClickjacking/index.d.ts +0 -2
- package/components/AntiClickjacking/index.jsx +0 -2
- package/components/Aurora/Aurora.d.ts +0 -10
- package/components/Aurora/Aurora.jsx +0 -189
- package/components/Aurora/index.d.ts +0 -3
- package/components/Aurora/index.jsx +0 -3
- package/components/Autocomplete/Autocomplete.d.ts +0 -7
- package/components/Autocomplete/Autocomplete.jsx +0 -23
- package/components/Autocomplete/UnstyledAutocomplete.d.ts +0 -36
- package/components/Autocomplete/UnstyledAutocomplete.jsx +0 -72
- package/components/Autocomplete/index.d.ts +0 -5
- package/components/Autocomplete/index.jsx +0 -5
- package/components/BackgroundEffects/BottomBlurryPoint.d.ts +0 -3
- package/components/BackgroundEffects/BottomBlurryPoint.jsx +0 -14
- package/components/BackgroundEffects/TopBlurryPoint.d.ts +0 -3
- package/components/BackgroundEffects/TopBlurryPoint.jsx +0 -14
- package/components/Badge/Badge.d.ts +0 -42
- package/components/Badge/Badge.jsx +0 -51
- package/components/Badge/index.d.ts +0 -3
- package/components/Badge/index.jsx +0 -3
- package/components/Breadcrumbs/Breadcrumbs.d.ts +0 -20
- package/components/Breadcrumbs/Breadcrumbs.jsx +0 -42
- package/components/Breadcrumbs/index.d.ts +0 -3
- package/components/Breadcrumbs/index.jsx +0 -3
- package/components/Button/Button.d.ts +0 -111
- package/components/Button/Button.jsx +0 -129
- package/components/Button/UnstyledButton.d.ts +0 -10
- package/components/Button/UnstyledButton.jsx +0 -13
- package/components/Button/index.d.ts +0 -3
- package/components/Button/index.jsx +0 -3
- package/components/Carousel/Carousel.d.ts +0 -19
- package/components/Carousel/Carousel.jsx +0 -55
- package/components/Carousel/index.d.ts +0 -3
- package/components/Carousel/index.jsx +0 -3
- package/components/Checkbox/Checkbox.d.ts +0 -14
- package/components/Checkbox/Checkbox.jsx +0 -45
- package/components/Checkbox/index.d.ts +0 -3
- package/components/Checkbox/index.js +0 -3
- package/components/Code/Code.d.ts +0 -12
- package/components/Code/Code.jsx +0 -25
- package/components/Code/Json.d.ts +0 -5
- package/components/Code/Json.jsx +0 -7
- package/components/Code/index.d.ts +0 -4
- package/components/Code/index.jsx +0 -4
- package/components/ConfirmationButton/ConfirmationButton.d.ts +0 -17
- package/components/ConfirmationButton/ConfirmationButton.jsx +0 -13
- package/components/ConfirmationButton/index.d.ts +0 -3
- package/components/ConfirmationButton/index.jsx +0 -3
- package/components/ContextMenu/ContextMenu.d.ts +0 -28
- package/components/ContextMenu/ContextMenu.jsx +0 -70
- package/components/ContextMenu/index.d.ts +0 -3
- package/components/ContextMenu/index.jsx +0 -3
- package/components/CopyButton/CopyButton.d.ts +0 -7
- package/components/CopyButton/CopyButton.jsx +0 -29
- package/components/CopyButton/index.d.ts +0 -3
- package/components/CopyButton/index.jsx +0 -3
- package/components/DateInput/DateInput.d.ts +0 -6
- package/components/DateInput/DateInput.jsx +0 -19
- package/components/DateInput/DateTimeInput.d.ts +0 -3
- package/components/DateInput/DateTimeInput.jsx +0 -8
- package/components/DateInput/index.d.ts +0 -4
- package/components/DateInput/index.jsx +0 -4
- package/components/DateInput/useRefValue.d.ts +0 -5
- package/components/DateInput/useRefValue.js +0 -48
- package/components/DatePicker/DatePicker.d.ts +0 -19
- package/components/DatePicker/DatePicker.jsx +0 -55
- package/components/DatePicker/index.d.ts +0 -3
- package/components/DatePicker/index.jsx +0 -3
- package/components/DateRangePicker/DateRangePicker.d.ts +0 -16
- package/components/DateRangePicker/DateRangePicker.jsx +0 -56
- package/components/DateRangePicker/index.d.ts +0 -3
- package/components/DateRangePicker/index.jsx +0 -3
- package/components/Dialog/Dialog.d.ts +0 -25
- package/components/Dialog/Dialog.jsx +0 -35
- package/components/Dialog/Dialogs.d.ts +0 -1
- package/components/Dialog/Dialogs.jsx +0 -21
- package/components/Dialog/dialogs.state.d.ts +0 -21
- package/components/Dialog/dialogs.state.js +0 -40
- package/components/Dialog/index.d.ts +0 -6
- package/components/Dialog/index.jsx +0 -7
- package/components/Drawer/Drawer.d.ts +0 -15
- package/components/Drawer/Drawer.jsx +0 -72
- package/components/Drawer/index.d.ts +0 -3
- package/components/Drawer/index.jsx +0 -3
- package/components/DropdownMenu/DropdownMenu.d.ts +0 -33
- package/components/DropdownMenu/DropdownMenu.jsx +0 -74
- package/components/DropdownMenu/index.d.ts +0 -3
- package/components/DropdownMenu/index.jsx +0 -3
- package/components/ErrorBoundary/ErrorBoundary.d.ts +0 -18
- package/components/ErrorBoundary/ErrorBoundary.jsx +0 -32
- package/components/ErrorBoundary/index.d.ts +0 -3
- package/components/ErrorBoundary/index.jsx +0 -3
- package/components/ErrorPage/Error404Page.d.ts +0 -1
- package/components/ErrorPage/Error404Page.jsx +0 -4
- package/components/ErrorPage/Error500Page.d.ts +0 -1
- package/components/ErrorPage/Error500Page.jsx +0 -4
- package/components/ErrorPage/ErrorPage.d.ts +0 -11
- package/components/ErrorPage/ErrorPage.jsx +0 -23
- package/components/FileInput/FileInput.d.ts +0 -53
- package/components/FileInput/FileInput.jsx +0 -141
- package/components/FileInput/PreviewFile.d.ts +0 -18
- package/components/FileInput/PreviewFile.jsx +0 -54
- package/components/FileInput/index.d.ts +0 -3
- package/components/FileInput/index.jsx +0 -3
- package/components/FileInput/isImage.d.ts +0 -1
- package/components/FileInput/isImage.js +0 -10
- package/components/FileInput/isVideo.d.ts +0 -1
- package/components/FileInput/isVideo.js +0 -10
- package/components/FileSelect/FileSelect.d.ts +0 -31
- package/components/FileSelect/FileSelect.jsx +0 -146
- package/components/FileSelect/index.d.ts +0 -3
- package/components/FileSelect/index.jsx +0 -3
- package/components/Footer/Footer.d.ts +0 -19
- package/components/Footer/Footer.jsx +0 -30
- package/components/Footer/index.d.ts +0 -3
- package/components/Footer/index.jsx +0 -3
- package/components/GridPattern/GridPattern.d.ts +0 -2
- package/components/GridPattern/GridPattern.jsx +0 -12
- package/components/GridPattern/index.d.ts +0 -3
- package/components/GridPattern/index.jsx +0 -3
- package/components/Group/Group.d.ts +0 -5
- package/components/Group/Group.jsx +0 -6
- package/components/Group/index.d.ts +0 -3
- package/components/Group/index.jsx +0 -3
- package/components/Header/Header.d.ts +0 -5
- package/components/Header/Header.jsx +0 -19
- package/components/Header/index.d.ts +0 -3
- package/components/Header/index.jsx +0 -3
- package/components/ImageInput/ImageInput.d.ts +0 -4
- package/components/ImageInput/ImageInput.jsx +0 -8
- package/components/ImageInput/index.d.ts +0 -3
- package/components/ImageInput/index.jsx +0 -3
- package/components/Input/Input.d.ts +0 -14
- package/components/Input/Input.jsx +0 -57
- package/components/Input/InputIcon.d.ts +0 -9
- package/components/Input/InputIcon.jsx +0 -7
- package/components/Input/MultiSelectInput.d.ts +0 -16
- package/components/Input/MultiSelectInput.jsx +0 -48
- package/components/Input/NumericInput.d.ts +0 -6
- package/components/Input/NumericInput.jsx +0 -6
- package/components/Input/PatternInput.d.ts +0 -6
- package/components/Input/PatternInput.jsx +0 -6
- package/components/Input/SelectInput.d.ts +0 -12
- package/components/Input/SelectInput.jsx +0 -25
- package/components/Input/UnstyledInput.d.ts +0 -22
- package/components/Input/UnstyledInput.jsx +0 -28
- package/components/Input/index.d.ts +0 -6
- package/components/Input/index.jsx +0 -6
- package/components/Input/useInputRefValue.d.ts +0 -11
- package/components/Input/useInputRefValue.jsx +0 -51
- package/components/Input2/InputWrapper.d.ts +0 -11
- package/components/Input2/InputWrapper.jsx +0 -11
- package/components/Link/Link.d.ts +0 -3
- package/components/Link/Link.jsx +0 -9
- package/components/Link/index.d.ts +0 -3
- package/components/Link/index.jsx +0 -3
- package/components/Loading/Loading.d.ts +0 -5
- package/components/Loading/Loading.jsx +0 -15
- package/components/Loading/index.d.ts +0 -3
- package/components/Loading/index.jsx +0 -3
- package/components/Magnet/Magnet.d.ts +0 -13
- package/components/Magnet/Magnet.jsx +0 -50
- package/components/Magnet/index.d.ts +0 -3
- package/components/Magnet/index.jsx +0 -3
- package/components/Markdown/Markdown.d.ts +0 -8
- package/components/Markdown/Markdown.jsx +0 -11
- package/components/Markdown/index.d.ts +0 -3
- package/components/Markdown/index.jsx +0 -3
- package/components/Menu/Menu.d.ts +0 -28
- package/components/Menu/Menu.jsx +0 -54
- package/components/Modal/Modal.d.ts +0 -45
- package/components/Modal/Modal.jsx +0 -65
- package/components/Modal/index.d.ts +0 -4
- package/components/Modal/index.jsx +0 -4
- package/components/Modal/useModalState.d.ts +0 -6
- package/components/Modal/useModalState.js +0 -16
- package/components/ModeToggle/ModeToggle.d.ts +0 -9
- package/components/ModeToggle/ModeToggle.jsx +0 -12
- package/components/ModeToggle/index.d.ts +0 -4
- package/components/ModeToggle/index.jsx +0 -5
- package/components/ModeToggle/useModeToggle.d.ts +0 -1
- package/components/ModeToggle/useModeToggle.js +0 -21
- package/components/MultiSelect/MultiSelect.d.ts +0 -28
- package/components/MultiSelect/MultiSelect.jsx +0 -116
- package/components/MultiSelect/MultiSelectInput.d.ts +0 -12
- package/components/MultiSelect/MultiSelectInput.jsx +0 -27
- package/components/MultiSelect/index.d.ts +0 -5
- package/components/MultiSelect/index.jsx +0 -5
- package/components/MultiText/MultiText.d.ts +0 -23
- package/components/MultiText/MultiText.jsx +0 -118
- package/components/MultiText/index.d.ts +0 -3
- package/components/MultiText/index.jsx +0 -3
- package/components/NavigationDrawer/NavigationDrawer.d.ts +0 -9
- package/components/NavigationDrawer/NavigationDrawer.jsx +0 -29
- package/components/NavigationDrawer/NavigationItem.d.ts +0 -13
- package/components/NavigationDrawer/NavigationItem.jsx +0 -24
- package/components/NavigationDrawer/index.d.ts +0 -6
- package/components/NavigationDrawer/index.jsx +0 -6
- package/components/NavigationDrawer/navigationDrawer.state.d.ts +0 -9
- package/components/NavigationDrawer/navigationDrawer.state.js +0 -19
- package/components/NoSsr/NoSsr.d.ts +0 -4
- package/components/NoSsr/NoSsr.jsx +0 -8
- package/components/NoSsr/index.d.ts +0 -3
- package/components/NoSsr/index.jsx +0 -3
- package/components/Noise/Noise.d.ts +0 -11
- package/components/Noise/Noise.jsx +0 -69
- package/components/Noise/index.d.ts +0 -3
- package/components/Noise/index.jsx +0 -3
- package/components/Notifications/Notifications.d.ts +0 -3
- package/components/Notifications/Notifications.jsx +0 -60
- package/components/Notifications/index.d.ts +0 -5
- package/components/Notifications/index.jsx +0 -6
- package/components/Notifications/notifications.state.d.ts +0 -24
- package/components/Notifications/notifications.state.js +0 -41
- package/components/Orb/Orb.d.ts +0 -8
- package/components/Orb/Orb.jsx +0 -258
- package/components/Orb/index.d.ts +0 -3
- package/components/Orb/index.jsx +0 -3
- package/components/Pagination/Pagination.d.ts +0 -13
- package/components/Pagination/Pagination.jsx +0 -64
- package/components/Pagination/index.d.ts +0 -3
- package/components/Pagination/index.jsx +0 -3
- package/components/Particles/Particles.d.ts +0 -18
- package/components/Particles/Particles.jsx +0 -205
- package/components/Particles/index.d.ts +0 -3
- package/components/Particles/index.jsx +0 -3
- package/components/PictureCropInput/PictureCropInput.d.ts +0 -20
- package/components/PictureCropInput/PictureCropInput.jsx +0 -174
- package/components/PictureCropInput/canvasPreview.d.ts +0 -2
- package/components/PictureCropInput/canvasPreview.js +0 -37
- package/components/PictureCropInput/index.d.ts +0 -3
- package/components/PictureCropInput/index.js +0 -3
- package/components/Popover/Popover.d.ts +0 -13
- package/components/Popover/Popover.jsx +0 -22
- package/components/Popover/index.d.ts +0 -3
- package/components/Popover/index.jsx +0 -3
- package/components/Resizable/Resizable.d.ts +0 -12
- package/components/Resizable/Resizable.jsx +0 -54
- package/components/Resizable/index.d.ts +0 -3
- package/components/Resizable/index.jsx +0 -3
- package/components/ScrollArea/ScrollArea.d.ts +0 -9
- package/components/ScrollArea/ScrollArea.jsx +0 -16
- package/components/ScrollArea/index.d.ts +0 -3
- package/components/ScrollArea/index.jsx +0 -3
- package/components/Select/Select.d.ts +0 -25
- package/components/Select/Select.jsx +0 -55
- package/components/Select/index.d.ts +0 -3
- package/components/Select/index.jsx +0 -3
- package/components/Skeleton/Skeleton.d.ts +0 -2
- package/components/Skeleton/Skeleton.jsx +0 -8
- package/components/Skeleton/index.d.ts +0 -3
- package/components/Skeleton/index.jsx +0 -3
- package/components/Slider/Slider.d.ts +0 -10
- package/components/Slider/Slider.jsx +0 -21
- package/components/Slider/index.d.ts +0 -3
- package/components/Slider/index.jsx +0 -3
- package/components/Spotlight/Spotlight.d.ts +0 -30
- package/components/Spotlight/Spotlight.jsx +0 -86
- package/components/Spotlight/index.d.ts +0 -3
- package/components/Spotlight/index.jsx +0 -3
- package/components/SpotlightCard/SpotlightCard.d.ts +0 -7
- package/components/SpotlightCard/SpotlightCard.jsx +0 -35
- package/components/SpotlightCard/index.d.ts +0 -3
- package/components/SpotlightCard/index.jsx +0 -3
- package/components/Stack/Stack.d.ts +0 -4
- package/components/Stack/Stack.jsx +0 -5
- package/components/Stack/index.d.ts +0 -3
- package/components/Stack/index.jsx +0 -3
- package/components/StarBorder/StarBorder.d.ts +0 -10
- package/components/StarBorder/StarBorder.jsx +0 -19
- package/components/StarBorder/index.d.ts +0 -3
- package/components/StarBorder/index.jsx +0 -3
- package/components/Switch/Switch.d.ts +0 -16
- package/components/Switch/Switch.jsx +0 -24
- package/components/Switch/index.d.ts +0 -3
- package/components/Switch/index.jsx +0 -3
- package/components/Table/DataTable.d.ts +0 -57
- package/components/Table/DataTable.jsx +0 -155
- package/components/Table/Table.d.ts +0 -27
- package/components/Table/Table.jsx +0 -31
- package/components/Table/TableActionButton.d.ts +0 -6
- package/components/Table/TableActionButton.jsx +0 -20
- package/components/Table/TableBody.d.ts +0 -6
- package/components/Table/TableBody.jsx +0 -10
- package/components/Table/TableCell.d.ts +0 -9
- package/components/Table/TableCell.jsx +0 -18
- package/components/Table/TableFooter.d.ts +0 -5
- package/components/Table/TableFooter.jsx +0 -5
- package/components/Table/TableFooterWithPagination.d.ts +0 -13
- package/components/Table/TableFooterWithPagination.jsx +0 -57
- package/components/Table/TableHead.d.ts +0 -5
- package/components/Table/TableHead.jsx +0 -9
- package/components/Table/TableHeadContext.d.ts +0 -4
- package/components/Table/TableHeadContext.jsx +0 -3
- package/components/Table/TableHeader.d.ts +0 -7
- package/components/Table/TableHeader.jsx +0 -15
- package/components/Table/TableRow.d.ts +0 -8
- package/components/Table/TableRow.jsx +0 -9
- package/components/Table/index.d.ts +0 -3
- package/components/Table/index.jsx +0 -3
- package/components/Tabs/Tabs.d.ts +0 -9
- package/components/Tabs/Tabs.jsx +0 -13
- package/components/Tabs/index.d.ts +0 -3
- package/components/Tabs/index.jsx +0 -3
- package/components/TabsSwitcher/Tab.d.ts +0 -15
- package/components/TabsSwitcher/Tab.jsx +0 -18
- package/components/TabsSwitcher/TabsSwitcher.d.ts +0 -22
- package/components/TabsSwitcher/TabsSwitcher.jsx +0 -31
- package/components/TabsSwitcher/index.d.ts +0 -4
- package/components/TabsSwitcher/index.jsx +0 -4
- package/components/Text/Text.d.ts +0 -24
- package/components/Text/Text.jsx +0 -29
- package/components/Text/index.d.ts +0 -3
- package/components/Text/index.jsx +0 -3
- package/components/Textarea/Textarea.d.ts +0 -5
- package/components/Textarea/Textarea.jsx +0 -6
- package/components/Textarea/index.d.ts +0 -3
- package/components/Textarea/index.js +0 -3
- package/components/Threads/Threads.d.ts +0 -9
- package/components/Threads/Threads.jsx +0 -203
- package/components/Threads/index.d.ts +0 -3
- package/components/Threads/index.jsx +0 -3
- package/components/Tooltip/Tooltip.d.ts +0 -11
- package/components/Tooltip/Tooltip.jsx +0 -21
- package/components/Tooltip/index.d.ts +0 -3
- package/components/Tooltip/index.jsx +0 -3
- package/components/VisibilityActivatedButton/VisibilityActivatedButton.d.ts +0 -7
- package/components/VisibilityActivatedButton/VisibilityActivatedButton.jsx +0 -18
- package/components/VisibilityActivatedButton/index.d.ts +0 -3
- package/components/VisibilityActivatedButton/index.jsx +0 -3
- package/form.d.ts +0 -82
- package/form.js +0 -113
- package/form2.d.ts +0 -15
- package/form2.jsx +0 -30
- package/hooks/useBeforeUnload.d.ts +0 -1
- package/hooks/useBeforeUnload.js +0 -17
- package/hooks/useDebounceEffect.d.ts +0 -2
- package/hooks/useDebounceEffect.js +0 -14
- package/hooks/useDebouncedValue.d.ts +0 -2
- package/hooks/useDebouncedValue.js +0 -14
- package/hooks/useLagRadar.d.ts +0 -1
- package/hooks/useLagRadar.jsx +0 -124
- package/hooks/useMediaQuery.d.ts +0 -1
- package/hooks/useMediaQuery.js +0 -37
- package/hooks/useMutationWindowCloseProtection.d.ts +0 -2
- package/hooks/useMutationWindowCloseProtection.js +0 -13
- package/hooks/useScroll.d.ts +0 -3
- package/hooks/useScroll.js +0 -47
- package/hooks/useTranslation.d.ts +0 -4
- package/hooks/useTranslation.js +0 -11
- package/hooks/useWhyDidYouUpdate.d.ts +0 -3
- package/hooks/useWhyDidYouUpdate.js +0 -44
- package/imgur.d.ts +0 -1
- package/imgur.js +0 -13
- package/styles/DayPicker.classNames.d.ts +0 -29
- package/styles/DayPicker.classNames.js +0 -30
- package/styles/DayPicker.classNames.ts +0 -81
- package/styles/Dropdown.classNames.d.ts +0 -6
- package/styles/Dropdown.classNames.js +0 -7
- package/styles/Dropdown.classNames.ts +0 -38
- package/styles/Input.css +0 -23
- package/styles/Modal.classNames.d.ts +0 -2
- package/styles/Modal.classNames.js +0 -3
- package/styles/Modal.classNames.ts +0 -15
- package/styles/MultiText.css +0 -40
- package/styles/Pagination.css +0 -19
- package/styles/Tabs.css +0 -23
- package/tsconfig.tsbuildinfo +0 -1
- package/types.d.ts +0 -6
- package/types.js +0 -1
- package/utils/UseState.d.ts +0 -2
- package/utils/UseState.js +0 -1
- package/utils/blobToText.d.ts +0 -1
- package/utils/blobToText.js +0 -13
- package/utils/capitalize.d.ts +0 -1
- package/utils/capitalize.js +0 -6
- package/utils/clsx.d.ts +0 -2
- package/utils/clsx.js +0 -5
- package/utils/copy2DToClipboard.d.ts +0 -1
- package/utils/copy2DToClipboard.js +0 -44
- package/utils/cpfCpnjUtils.d.ts +0 -3
- package/utils/cpfCpnjUtils.js +0 -43
- package/utils/createLocalStorageStateHydration.d.ts +0 -1
- package/utils/createLocalStorageStateHydration.js +0 -18
- package/utils/createStateHydration.d.ts +0 -3
- package/utils/createStateHydration.js +0 -49
- package/utils/csvBlobToJson.d.ts +0 -2
- package/utils/csvBlobToJson.js +0 -59
- package/utils/downloadArrayAsCSV.d.ts +0 -1
- package/utils/downloadArrayAsCSV.js +0 -34
- package/utils/emailRegExp.d.ts +0 -2
- package/utils/emailRegExp.js +0 -2
- package/utils/fakeArray.d.ts +0 -1
- package/utils/fakeArray.js +0 -3
- package/utils/filterBoolean.d.ts +0 -1
- package/utils/filterBoolean.js +0 -3
- package/utils/formatClock.d.ts +0 -1
- package/utils/formatClock.js +0 -21
- package/utils/getInitials.d.ts +0 -4
- package/utils/getInitials.js +0 -22
- package/utils/isBrowser.d.ts +0 -12
- package/utils/isBrowser.js +0 -26
- package/utils/ms.d.ts +0 -6
- package/utils/ms.js +0 -31
- package/utils/preventDefault.d.ts +0 -2
- package/utils/preventDefault.js +0 -3
- package/utils/recursiveChildrenMap.d.ts +0 -2
- package/utils/recursiveChildrenMap.js +0 -16
- package/utils/setSelectionRange.d.ts +0 -1
- package/utils/setSelectionRange.js +0 -55
- package/utils/smoothScrollToHref.d.ts +0 -2
- package/utils/smoothScrollToHref.js +0 -14
- package/utils/stopPropagation.d.ts +0 -2
- package/utils/stopPropagation.js +0 -3
- package/utils/stripHtml.d.ts +0 -1
- package/utils/stripHtml.js +0 -4
- package/utils/stripLineBreak.d.ts +0 -1
- package/utils/stripLineBreak.js +0 -4
- package/utils/stripMarkdown.d.ts +0 -1
- package/utils/stripMarkdown.js +0 -28
- package/utils/xlsxBlobToJson.d.ts +0 -2
- package/utils/xlsxBlobToJson.js +0 -62
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { Fragment, useCallback, useEffect, useState, } from "react";
|
|
2
|
-
import Loading from "../Loading";
|
|
3
|
-
import Skeleton from "../Skeleton";
|
|
4
|
-
import Stack from "../Stack";
|
|
5
|
-
import Text from "../Text";
|
|
6
|
-
import Table from "./Table";
|
|
7
|
-
import clsx from "../../utils/clsx";
|
|
8
|
-
import { ChevronUpIcon } from "@heroicons/react/20/solid";
|
|
9
|
-
export default function DataTable({ title, subtitle, headerContent, data, idAccessor = "_id", actions, columns, isLoading, noRecords: noRecordsText = "No records", onRowClick, rowWrapper, pagination, currentPage = 0, onChangePage, totalItems, itemsPerPage = 0, className, autoHeight, onChangeSort, sort: defaultSort = [], previousText, nextText, showingText, toText, ofText, resultsText, tableClassName, }) {
|
|
10
|
-
const [sort, setSort] = useState(defaultSort);
|
|
11
|
-
const [page, setPage] = useState(currentPage);
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
if (page !== currentPage) {
|
|
14
|
-
setPage(currentPage);
|
|
15
|
-
}
|
|
16
|
-
}, [currentPage, page]);
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
if (onChangePage) {
|
|
19
|
-
onChangePage(page);
|
|
20
|
-
}
|
|
21
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
22
|
-
}, [page]);
|
|
23
|
-
const handleRowClick = useCallback((item) => (onRowClick ? () => onRowClick(item) : undefined), [onRowClick]);
|
|
24
|
-
const getColumnSort = useCallback((id) => sort.find((column) => id === column[0]), [sort]);
|
|
25
|
-
const handleColumnClick = useCallback((id) => () => {
|
|
26
|
-
const sort = getColumnSort(id) || [
|
|
27
|
-
id,
|
|
28
|
-
null,
|
|
29
|
-
];
|
|
30
|
-
switch (sort[1]) {
|
|
31
|
-
case "asc":
|
|
32
|
-
sort[1] = "desc";
|
|
33
|
-
break;
|
|
34
|
-
case "desc":
|
|
35
|
-
sort[1] = null;
|
|
36
|
-
break;
|
|
37
|
-
case null:
|
|
38
|
-
sort[1] = "asc";
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
setSort((oldSort) => {
|
|
42
|
-
const newSort = [...oldSort];
|
|
43
|
-
if (sort[1]) {
|
|
44
|
-
const column = newSort.find((column) => column[0] === id);
|
|
45
|
-
if (column) {
|
|
46
|
-
column[1] = sort[1];
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
newSort.push([sort[0], sort[1]]);
|
|
50
|
-
}
|
|
51
|
-
return newSort;
|
|
52
|
-
}
|
|
53
|
-
return newSort.filter((column) => !!column[1]);
|
|
54
|
-
});
|
|
55
|
-
}, [getColumnSort]);
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
if (onChangeSort) {
|
|
58
|
-
onChangeSort?.(sort);
|
|
59
|
-
}
|
|
60
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
61
|
-
}, [sort]);
|
|
62
|
-
return (<Stack className={clsx({
|
|
63
|
-
"flex flex-1 flex-col": autoHeight,
|
|
64
|
-
}, className)}>
|
|
65
|
-
{(title || subtitle || headerContent) && (<Table.Header title={title} subtitle={subtitle}>
|
|
66
|
-
{headerContent}
|
|
67
|
-
</Table.Header>)}
|
|
68
|
-
<Table autoHeight={autoHeight} className={tableClassName}>
|
|
69
|
-
<Table.Head>
|
|
70
|
-
<Table.Row>
|
|
71
|
-
{columns.map((column, i) => {
|
|
72
|
-
const id = column.id ||
|
|
73
|
-
(typeof column.title === "string"
|
|
74
|
-
? column.title
|
|
75
|
-
: i.toString());
|
|
76
|
-
const columnSort = getColumnSort(id);
|
|
77
|
-
return (<Table.Cell key={id} className={column.headerClassName}>
|
|
78
|
-
{column.sortable ? (<span className="group inline-flex cursor-pointer" onClick={handleColumnClick(id)}>
|
|
79
|
-
{column.title}
|
|
80
|
-
<span className={clsx("mb-auto ml-2 flex-none rounded-sm text-zinc-400", {
|
|
81
|
-
"bg-zinc-200 text-zinc-900 group-hover:bg-zinc-300": columnSort?.[1],
|
|
82
|
-
"invisible group-hover:visible group-focus:visible": !columnSort?.[1],
|
|
83
|
-
})}>
|
|
84
|
-
<ChevronUpIcon className={clsx("h-5 w-5", {
|
|
85
|
-
"scale-y-flip": columnSort?.[1] === "desc",
|
|
86
|
-
})} aria-hidden="true"/>
|
|
87
|
-
</span>
|
|
88
|
-
</span>) : (column.title)}
|
|
89
|
-
</Table.Cell>);
|
|
90
|
-
})}
|
|
91
|
-
{actions && <Table.Cell />}
|
|
92
|
-
</Table.Row>
|
|
93
|
-
{isLoading && (<tr className="absolute top-2 right-3 rounded-full bg-zinc-50/50 dark:bg-zinc-900/50">
|
|
94
|
-
<td>
|
|
95
|
-
<Loading className="mt-px"/>
|
|
96
|
-
</td>
|
|
97
|
-
</tr>)}
|
|
98
|
-
</Table.Head>
|
|
99
|
-
<Table.Body>
|
|
100
|
-
{data?.map((item) => {
|
|
101
|
-
const RowComponent = rowWrapper || Fragment;
|
|
102
|
-
return (<RowComponent key={item[idAccessor]} {...(RowComponent !== Fragment
|
|
103
|
-
? // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
104
|
-
{ item: item }
|
|
105
|
-
: {})}>
|
|
106
|
-
<Table.Row onClick={handleRowClick(item)}>
|
|
107
|
-
{columns.map((column, i) => {
|
|
108
|
-
const value = column.accessor
|
|
109
|
-
? item[column.accessor]
|
|
110
|
-
: column.render && column.render(item);
|
|
111
|
-
return (<Table.Cell key={column.id ||
|
|
112
|
-
(typeof column.title === "string" ? column.title : i)} className={column.cellClassName} title={column.cellClassName?.includes("max-w") &&
|
|
113
|
-
typeof value === "string"
|
|
114
|
-
? value
|
|
115
|
-
: undefined}>
|
|
116
|
-
{value}
|
|
117
|
-
</Table.Cell>);
|
|
118
|
-
})}
|
|
119
|
-
{actions && (<Table.Cell actions>
|
|
120
|
-
{actions.map((action, i) => {
|
|
121
|
-
const ActionComponent = action.wrapper || Fragment;
|
|
122
|
-
return (<ActionComponent key={i} {...(ActionComponent !== Fragment
|
|
123
|
-
? // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
|
-
{ item: item }
|
|
125
|
-
: {})}>
|
|
126
|
-
<Table.ActionButton title={action.title} onClick={() => action.onClick?.(item)} href={typeof action.href === "function"
|
|
127
|
-
? action.href?.(item)
|
|
128
|
-
: action.href} target={action.target}>
|
|
129
|
-
{action.icon}
|
|
130
|
-
</Table.ActionButton>
|
|
131
|
-
</ActionComponent>);
|
|
132
|
-
})}
|
|
133
|
-
</Table.Cell>)}
|
|
134
|
-
</Table.Row>
|
|
135
|
-
</RowComponent>);
|
|
136
|
-
})}
|
|
137
|
-
{isLoading && !data?.length && (<Table.Row>
|
|
138
|
-
{columns.map((column, i) => (<Table.Cell key={column.id ||
|
|
139
|
-
(typeof column.title === "string" ? column.title : i)}>
|
|
140
|
-
<Skeleton className="h-3"/>
|
|
141
|
-
</Table.Cell>))}
|
|
142
|
-
{actions && (<Table.Cell actions>
|
|
143
|
-
<Skeleton className="inline-block h-3 w-6"/>
|
|
144
|
-
</Table.Cell>)}
|
|
145
|
-
</Table.Row>)}
|
|
146
|
-
{!isLoading && !data?.length && (<Table.Row>
|
|
147
|
-
<Table.Cell colSpan={columns.length + (actions ? 1 : 0)}>
|
|
148
|
-
<Text variant="secondary">{noRecordsText}</Text>
|
|
149
|
-
</Table.Cell>
|
|
150
|
-
</Table.Row>)}
|
|
151
|
-
</Table.Body>
|
|
152
|
-
</Table>
|
|
153
|
-
{pagination ? (<Table.FooterWithPagination totalItems={totalItems} itemsPerPage={itemsPerPage} currentPage={currentPage} onChangePage={onChangePage} previousText={previousText} nextText={nextText} showingText={showingText} toText={toText} ofText={ofText} resultsText={resultsText}/>) : undefined}
|
|
154
|
-
</Stack>);
|
|
155
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
import TableActionButton from "./TableActionButton";
|
|
3
|
-
import TableBody from "./TableBody";
|
|
4
|
-
import TableCell from "./TableCell";
|
|
5
|
-
import TableHead from "./TableHead";
|
|
6
|
-
import TableHeader from "./TableHeader";
|
|
7
|
-
import TableRow from "./TableRow";
|
|
8
|
-
import TableFooter from "./TableFooter";
|
|
9
|
-
import TableFooterWithPagination from "./TableFooterWithPagination";
|
|
10
|
-
export type TableProps = {
|
|
11
|
-
children?: ReactNode;
|
|
12
|
-
className?: string;
|
|
13
|
-
hideBorder?: boolean;
|
|
14
|
-
autoHeight?: boolean;
|
|
15
|
-
};
|
|
16
|
-
declare function Table({ children, className, hideBorder, autoHeight, }: TableProps): import("react").JSX.Element;
|
|
17
|
-
declare namespace Table {
|
|
18
|
-
var Row: typeof TableRow;
|
|
19
|
-
var Head: typeof TableHead;
|
|
20
|
-
var Body: typeof TableBody;
|
|
21
|
-
var Cell: typeof TableCell;
|
|
22
|
-
var ActionButton: typeof TableActionButton;
|
|
23
|
-
var Header: typeof TableHeader;
|
|
24
|
-
var Footer: typeof TableFooter;
|
|
25
|
-
var FooterWithPagination: typeof TableFooterWithPagination;
|
|
26
|
-
}
|
|
27
|
-
export default Table;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import clsx from "../../utils/clsx";
|
|
2
|
-
import TableActionButton from "./TableActionButton";
|
|
3
|
-
import TableBody from "./TableBody";
|
|
4
|
-
import TableCell from "./TableCell";
|
|
5
|
-
import TableHead from "./TableHead";
|
|
6
|
-
import TableHeader from "./TableHeader";
|
|
7
|
-
import TableRow from "./TableRow";
|
|
8
|
-
import TableFooter from "./TableFooter";
|
|
9
|
-
import TableFooterWithPagination from "./TableFooterWithPagination";
|
|
10
|
-
export default function Table({ children, className, hideBorder, autoHeight, }) {
|
|
11
|
-
return (<div className={clsx("overflow-hidden bg-white dark:bg-zinc-800", {
|
|
12
|
-
"relative flex-1": autoHeight,
|
|
13
|
-
"shadow-sm ring-1 ring-black/5 md:rounded-lg dark:ring-white/10": !hideBorder,
|
|
14
|
-
}, className)}>
|
|
15
|
-
<div className={clsx("overflow-auto", {
|
|
16
|
-
"absolute inset-0": autoHeight,
|
|
17
|
-
})}>
|
|
18
|
-
<table className={clsx("w-full max-w-full divide-y divide-zinc-300 dark:divide-zinc-600")}>
|
|
19
|
-
{children}
|
|
20
|
-
</table>
|
|
21
|
-
</div>
|
|
22
|
-
</div>);
|
|
23
|
-
}
|
|
24
|
-
Table.Row = TableRow;
|
|
25
|
-
Table.Head = TableHead;
|
|
26
|
-
Table.Body = TableBody;
|
|
27
|
-
Table.Cell = TableCell;
|
|
28
|
-
Table.ActionButton = TableActionButton;
|
|
29
|
-
Table.Header = TableHeader;
|
|
30
|
-
Table.Footer = TableFooter;
|
|
31
|
-
Table.FooterWithPagination = TableFooterWithPagination;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from "react";
|
|
2
|
-
import { type ButtonProps } from "../Button/Button";
|
|
3
|
-
export type TableActionButtonProps<T extends HTMLElement = HTMLButtonElement> = {
|
|
4
|
-
title?: ReactNode;
|
|
5
|
-
} & ButtonProps<T>;
|
|
6
|
-
export default function TableActionButton<T extends HTMLElement = HTMLButtonElement>({ children, className, title, onClick, ...props }: TableActionButtonProps<T>): import("react").JSX.Element;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import clsx from "../../utils/clsx";
|
|
2
|
-
import { cloneElement, } from "react";
|
|
3
|
-
import Button, {} from "../Button/Button";
|
|
4
|
-
import Tooltip from "../Tooltip";
|
|
5
|
-
export default function TableActionButton({ children, className, title, onClick, ...props }) {
|
|
6
|
-
const handleClick = (e) => {
|
|
7
|
-
e.stopPropagation();
|
|
8
|
-
onClick?.(e);
|
|
9
|
-
};
|
|
10
|
-
const child = children;
|
|
11
|
-
const button = (<Button icon variant="text" className={clsx("p-1!", className)} onClick={handleClick} {...props}>
|
|
12
|
-
{cloneElement(child, {
|
|
13
|
-
className: clsx("h-[20px]! w-[20px]!", child.props.className),
|
|
14
|
-
})}
|
|
15
|
-
</Button>);
|
|
16
|
-
if (title) {
|
|
17
|
-
return <Tooltip content={title}>{button}</Tooltip>;
|
|
18
|
-
}
|
|
19
|
-
return button;
|
|
20
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
import TableHeadContext from "./TableHeadContext";
|
|
3
|
-
import clsx from "../../utils/clsx";
|
|
4
|
-
export default function TableBody({ children, className }) {
|
|
5
|
-
return (<TableHeadContext.Provider value={useMemo(() => ({ isHead: false, sticky: false }), [])}>
|
|
6
|
-
<tbody className={clsx("divide-y divide-zinc-200 bg-white dark:divide-zinc-700 dark:bg-zinc-800 [&_tr:last-of-type]:border-b [&_tr:last-of-type]:border-zinc-200 dark:[&_tr:last-of-type]:border-zinc-700", className)}>
|
|
7
|
-
{children}
|
|
8
|
-
</tbody>
|
|
9
|
-
</TableHeadContext.Provider>);
|
|
10
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from "react";
|
|
2
|
-
export type TableCellProps = {
|
|
3
|
-
children?: ReactNode;
|
|
4
|
-
className?: string;
|
|
5
|
-
actions?: boolean;
|
|
6
|
-
colSpan?: number;
|
|
7
|
-
title?: string;
|
|
8
|
-
};
|
|
9
|
-
export default function TableCell({ children, className, actions, colSpan, title, }: TableCellProps): import("react").JSX.Element;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import clsx from "../../utils/clsx";
|
|
2
|
-
import { useContext } from "react";
|
|
3
|
-
import TableHeadContext from "./TableHeadContext";
|
|
4
|
-
export default function TableCell({ children, className, actions, colSpan, title, }) {
|
|
5
|
-
const { isHead } = useContext(TableHeadContext);
|
|
6
|
-
const commonClassName = clsx("text-sm first:pl-4 sm:first:pl-6 first:font-medium first:text-zinc-900 dark:first:text-zinc-100 px-3", {
|
|
7
|
-
"py-2 last:pr-4 sm:last:pr-6": !actions,
|
|
8
|
-
"py-0.5 text-right pr-2.5 sm:pr-5": actions,
|
|
9
|
-
});
|
|
10
|
-
if (isHead) {
|
|
11
|
-
return (<th className={clsx(commonClassName, "sticky left-0 bg-zinc-50 py-2 text-left font-semibold text-zinc-900 dark:bg-zinc-900 dark:text-zinc-50", className)} colSpan={colSpan} title={title}>
|
|
12
|
-
{children}
|
|
13
|
-
</th>);
|
|
14
|
-
}
|
|
15
|
-
return (<td className={clsx(commonClassName, "whitespace-nowrap text-zinc-500 dark:text-zinc-300", className)} colSpan={colSpan} title={title}>
|
|
16
|
-
{children}
|
|
17
|
-
</td>);
|
|
18
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface TableFooterWithPaginationProps {
|
|
2
|
-
itemsPerPage: number;
|
|
3
|
-
totalItems?: number;
|
|
4
|
-
currentPage: number;
|
|
5
|
-
onChangePage?: (page: number) => void;
|
|
6
|
-
previousText?: string;
|
|
7
|
-
nextText?: string;
|
|
8
|
-
showingText?: string;
|
|
9
|
-
toText?: string;
|
|
10
|
-
ofText?: string;
|
|
11
|
-
resultsText?: string;
|
|
12
|
-
}
|
|
13
|
-
export default function TableFooterWithPagination({ itemsPerPage, totalItems, currentPage, onChangePage, previousText, nextText, showingText, toText, ofText, resultsText, }: TableFooterWithPaginationProps): import("react").JSX.Element;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import TableFooter from "./TableFooter";
|
|
2
|
-
import Pagination from "../Pagination/Pagination";
|
|
3
|
-
import { useCallback, useEffect, useState } from "react";
|
|
4
|
-
import Button from "../Button/Button";
|
|
5
|
-
export default function TableFooterWithPagination({ itemsPerPage, totalItems, currentPage, onChangePage, previousText = "Previous", nextText = "Next", showingText = "Showing", toText = "to", ofText = "of", resultsText = "results", }) {
|
|
6
|
-
const pageCount = totalItems !== undefined && itemsPerPage !== undefined
|
|
7
|
-
? Math.ceil(totalItems / itemsPerPage)
|
|
8
|
-
: 0;
|
|
9
|
-
const [page, setPage] = useState(currentPage);
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
if (page !== currentPage) {
|
|
12
|
-
setPage(currentPage);
|
|
13
|
-
}
|
|
14
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
|
-
}, [currentPage]);
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
if (onChangePage) {
|
|
18
|
-
onChangePage(page);
|
|
19
|
-
}
|
|
20
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
21
|
-
}, [page]);
|
|
22
|
-
const handlePageClick = useCallback((page) => () => setPage(page), []);
|
|
23
|
-
let start = (page - 1) * itemsPerPage + 1;
|
|
24
|
-
let end = page * itemsPerPage;
|
|
25
|
-
if (totalItems !== undefined) {
|
|
26
|
-
end = end > totalItems ? totalItems : end;
|
|
27
|
-
}
|
|
28
|
-
if (end === 0) {
|
|
29
|
-
start = 0;
|
|
30
|
-
}
|
|
31
|
-
return (<TableFooter>
|
|
32
|
-
<div className="flex flex-1 justify-between sm:hidden">
|
|
33
|
-
<Button disabled={page === 1} onClick={handlePageClick(page - 1)}>
|
|
34
|
-
{previousText}
|
|
35
|
-
</Button>
|
|
36
|
-
<Button disabled={page === pageCount} onClick={handlePageClick(page + 1)}>
|
|
37
|
-
{nextText}
|
|
38
|
-
</Button>
|
|
39
|
-
</div>
|
|
40
|
-
<div className="hidden sm:flex sm:flex-1 sm:items-center sm:justify-between">
|
|
41
|
-
<div>
|
|
42
|
-
<p className="text-sm text-zinc-700 dark:text-zinc-100">
|
|
43
|
-
{showingText} <span className="font-medium">{start}</span> {toText}{" "}
|
|
44
|
-
<span className="font-medium">{end}</span>
|
|
45
|
-
{totalItems !== undefined && itemsPerPage !== undefined && (<>
|
|
46
|
-
{" "}
|
|
47
|
-
{ofText} <span className="font-medium">{totalItems}</span>{" "}
|
|
48
|
-
{resultsText}
|
|
49
|
-
</>)}
|
|
50
|
-
</p>
|
|
51
|
-
</div>
|
|
52
|
-
<div>
|
|
53
|
-
<Pagination itemsPerPage={itemsPerPage} totalItems={totalItems} currentPage={currentPage} onChangePage={onChangePage}/>
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
</TableFooter>);
|
|
57
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
import TableHeadContext from "./TableHeadContext";
|
|
3
|
-
export default function TableHead({ children }) {
|
|
4
|
-
return (<TableHeadContext.Provider value={useMemo(() => ({ isHead: true }), [])}>
|
|
5
|
-
<thead className="sticky top-0 bg-zinc-50 dark:bg-zinc-900">
|
|
6
|
-
{children}
|
|
7
|
-
</thead>
|
|
8
|
-
</TableHeadContext.Provider>);
|
|
9
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import Text from "../Text";
|
|
2
|
-
import Stack from "../Stack";
|
|
3
|
-
export default function TableHeader({ title, subtitle, children, }) {
|
|
4
|
-
return (<div className="px-4 md:px-0">
|
|
5
|
-
<div className="sm:flex sm:items-center">
|
|
6
|
-
{(title || subtitle) && (<Stack className="sm:flex-auto">
|
|
7
|
-
{title && (<Text variant="label" size="lg">
|
|
8
|
-
{title}
|
|
9
|
-
</Text>)}
|
|
10
|
-
{subtitle && <Text variant="secondary">{subtitle}</Text>}
|
|
11
|
-
</Stack>)}
|
|
12
|
-
{children && (<div className="mt-4 sm:mt-0 sm:ml-16 sm:flex-none">{children}</div>)}
|
|
13
|
-
</div>
|
|
14
|
-
</div>);
|
|
15
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { MouseEventHandler, ReactNode } from "react";
|
|
2
|
-
export type TableRowProps = {
|
|
3
|
-
children?: ReactNode;
|
|
4
|
-
onClick?: MouseEventHandler<HTMLTableRowElement>;
|
|
5
|
-
className?: string;
|
|
6
|
-
};
|
|
7
|
-
declare function TableRow({ children, onClick, className, ...props }: TableRowProps): import("react").JSX.Element;
|
|
8
|
-
export default TableRow;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import clsx from "../../utils/clsx";
|
|
2
|
-
function TableRow({ children, onClick, className, ...props }) {
|
|
3
|
-
return (<tr onClick={onClick} className={clsx({
|
|
4
|
-
"group/row cursor-pointer hover:bg-black/5 dark:hover:bg-white/5": !!onClick,
|
|
5
|
-
}, className)} {...props}>
|
|
6
|
-
{children}
|
|
7
|
-
</tr>);
|
|
8
|
-
}
|
|
9
|
-
export default TableRow;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
import { type ButtonProps } from "../Button";
|
|
3
|
-
export default function Tabs({ children, className, }: {
|
|
4
|
-
children: ReactNode;
|
|
5
|
-
className?: string;
|
|
6
|
-
}): import("react").JSX.Element;
|
|
7
|
-
export declare function Tab({ children, selected, onClick, className, ...props }: Omit<ButtonProps, "variant"> & {
|
|
8
|
-
selected?: boolean;
|
|
9
|
-
}): import("react").JSX.Element;
|
package/components/Tabs/Tabs.jsx
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import clsx from "../../utils/clsx";
|
|
2
|
-
import Button, {} from "../Button";
|
|
3
|
-
export default function Tabs({ children, className, }) {
|
|
4
|
-
return <div className={clsx("ui-tabs", className)}>{children}</div>;
|
|
5
|
-
}
|
|
6
|
-
export function Tab({ children, selected, onClick, className, ...props }) {
|
|
7
|
-
return (<div className="relative">
|
|
8
|
-
<Button className={clsx("ui-tabs-tab", className)} data-selected={selected ? "" : undefined} onClick={onClick} variant="custom" {...props}>
|
|
9
|
-
{children}
|
|
10
|
-
</Button>
|
|
11
|
-
{selected && <div className="ui-tabs-indicator"/>}
|
|
12
|
-
</div>);
|
|
13
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Tab represents an individual tab. When active,
|
|
4
|
-
* it renders an animated rounded background using the latest motion package.
|
|
5
|
-
*/
|
|
6
|
-
export default function Tab({ active, onClick, children, className, id, variant, cursorClassName, }: {
|
|
7
|
-
value: string;
|
|
8
|
-
active?: boolean;
|
|
9
|
-
onClick?: () => void;
|
|
10
|
-
children: ReactNode;
|
|
11
|
-
className?: string;
|
|
12
|
-
id?: string;
|
|
13
|
-
variant?: "filled" | "outlined";
|
|
14
|
-
cursorClassName?: string;
|
|
15
|
-
}): import("react").JSX.Element;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { motion } from "motion/react";
|
|
2
|
-
import Button from "../Button";
|
|
3
|
-
import clsx from "../../utils/clsx";
|
|
4
|
-
/**
|
|
5
|
-
* Tab represents an individual tab. When active,
|
|
6
|
-
* it renders an animated rounded background using the latest motion package.
|
|
7
|
-
*/
|
|
8
|
-
export default function Tab({ active, onClick, children, className, id, variant, cursorClassName, }) {
|
|
9
|
-
return (<Button onClick={onClick} className={clsx("relative", {
|
|
10
|
-
"text-white": active && variant === "filled",
|
|
11
|
-
}, className)} variant="text" rounded={variant === "filled"}>
|
|
12
|
-
{active && (<motion.div layoutId={id} className={clsx("bg-primary-500 absolute", {
|
|
13
|
-
"inset-0 rounded-full": variant === "filled",
|
|
14
|
-
"right-0 bottom-0 left-0 h-0.5": variant === "outlined",
|
|
15
|
-
}, cursorClassName)} transition={{ type: "spring", stiffness: 500, damping: 30 }}/>)}
|
|
16
|
-
<span className="relative z-10">{children}</span>
|
|
17
|
-
</Button>);
|
|
18
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type ReactElement } from "react";
|
|
2
|
-
type TabElement = ReactElement<{
|
|
3
|
-
value: string;
|
|
4
|
-
active?: boolean;
|
|
5
|
-
onClick?: () => void;
|
|
6
|
-
id?: string;
|
|
7
|
-
variant?: "filled" | "outlined";
|
|
8
|
-
className?: string;
|
|
9
|
-
cursorClassName?: string;
|
|
10
|
-
}>;
|
|
11
|
-
export default function TabsSwitcher({ value, onChange, children, overflowHidden, className, variant, tabClassName, cursorClassName, tabsClassName, }: {
|
|
12
|
-
value?: string;
|
|
13
|
-
onChange?: (value: string) => void;
|
|
14
|
-
children: TabElement | TabElement[];
|
|
15
|
-
overflowHidden?: boolean;
|
|
16
|
-
className?: string;
|
|
17
|
-
variant?: "filled" | "outlined";
|
|
18
|
-
tabClassName?: string;
|
|
19
|
-
cursorClassName?: string;
|
|
20
|
-
tabsClassName?: string;
|
|
21
|
-
}): import("react").JSX.Element;
|
|
22
|
-
export {};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Children, cloneElement, isValidElement, useId, } from "react";
|
|
2
|
-
import clsx from "../../utils/clsx";
|
|
3
|
-
export default function TabsSwitcher({ value, onChange, children, overflowHidden, className, variant = "filled", tabClassName, cursorClassName, tabsClassName, }) {
|
|
4
|
-
const id = useId();
|
|
5
|
-
return (<div className={clsx({
|
|
6
|
-
"rounded-full bg-zinc-200 p-1 dark:bg-zinc-900": variant === "filled",
|
|
7
|
-
}, className)}>
|
|
8
|
-
<div className={clsx({
|
|
9
|
-
"rounded-full": variant === "filled",
|
|
10
|
-
"overflow-hidden": overflowHidden,
|
|
11
|
-
})}>
|
|
12
|
-
<div className={clsx("relative flex", tabsClassName)}>
|
|
13
|
-
{Children.map(children, (child) => {
|
|
14
|
-
if (isValidElement(child)) {
|
|
15
|
-
const childValue = child.props.value;
|
|
16
|
-
const isActive = childValue === value;
|
|
17
|
-
return cloneElement(child, {
|
|
18
|
-
active: isActive,
|
|
19
|
-
onClick: () => onChange?.(childValue),
|
|
20
|
-
id,
|
|
21
|
-
variant,
|
|
22
|
-
className: tabClassName,
|
|
23
|
-
cursorClassName,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
return child;
|
|
27
|
-
})}
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
|
-
</div>);
|
|
31
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { ComponentProps, DetailedHTMLProps, HTMLAttributes } from "react";
|
|
2
|
-
import NextLink from "next/link";
|
|
3
|
-
export declare const defaultTextStyles: {
|
|
4
|
-
variant: {
|
|
5
|
-
default: string;
|
|
6
|
-
label: string;
|
|
7
|
-
secondary: string;
|
|
8
|
-
};
|
|
9
|
-
size: {
|
|
10
|
-
xs: string;
|
|
11
|
-
sm: string;
|
|
12
|
-
base: string;
|
|
13
|
-
lg: string;
|
|
14
|
-
xl: string;
|
|
15
|
-
"2xl": string;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
export type TextProps = {
|
|
19
|
-
variant?: keyof (typeof defaultTextStyles)["variant"] | "link";
|
|
20
|
-
size?: keyof (typeof defaultTextStyles)["size"];
|
|
21
|
-
inline?: boolean;
|
|
22
|
-
} & Partial<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> & DetailedHTMLProps<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement> & ComponentProps<typeof NextLink>>;
|
|
23
|
-
declare function Text({ inline, variant, className, href, target, size, ...props }: TextProps): import("react").JSX.Element;
|
|
24
|
-
export default Text;
|