@majapisoftwares/ui 4.0.2
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/base.css +359 -0
- package/bootstrap/AppProps.d.ts +10 -0
- package/bootstrap/AppProps.js +1 -0
- package/bootstrap/index.d.ts +1 -0
- package/bootstrap/index.js +1 -0
- package/bootstrap/modeScript.d.ts +2 -0
- package/bootstrap/modeScript.js +35 -0
- package/bootstrap/nprogress.d.ts +1 -0
- package/bootstrap/nprogress.js +19 -0
- package/bootstrap/scrolledScript.d.ts +2 -0
- package/bootstrap/scrolledScript.js +27 -0
- package/bootstrap/setupFocusManager.d.ts +1 -0
- package/bootstrap/setupFocusManager.js +13 -0
- package/bootstrap/suppressConsoleLog.d.ts +1 -0
- package/bootstrap/suppressConsoleLog.js +8 -0
- package/components/Accordion/Accordion.d.ts +19 -0
- package/components/Accordion/Accordion.jsx +27 -0
- package/components/Accordion/index.d.ts +3 -0
- package/components/Accordion/index.jsx +3 -0
- package/components/Alert/Alert.d.ts +31 -0
- package/components/Alert/Alert.jsx +53 -0
- package/components/Alert/index.d.ts +3 -0
- package/components/Alert/index.jsx +3 -0
- package/components/Aurora/Aurora.d.ts +10 -0
- package/components/Aurora/Aurora.jsx +189 -0
- package/components/Aurora/index.d.ts +3 -0
- package/components/Aurora/index.jsx +3 -0
- package/components/Autocomplete/Autocomplete.d.ts +7 -0
- package/components/Autocomplete/Autocomplete.jsx +23 -0
- package/components/Autocomplete/UnstyledAutocomplete.d.ts +36 -0
- package/components/Autocomplete/UnstyledAutocomplete.jsx +73 -0
- package/components/Autocomplete/index.d.ts +5 -0
- package/components/Autocomplete/index.jsx +5 -0
- package/components/BackgroundEffects/BottomBlurryPoint.d.ts +3 -0
- package/components/BackgroundEffects/BottomBlurryPoint.jsx +14 -0
- package/components/BackgroundEffects/TopBlurryPoint.d.ts +3 -0
- package/components/BackgroundEffects/TopBlurryPoint.jsx +14 -0
- package/components/Badge/Badge.d.ts +42 -0
- package/components/Badge/Badge.jsx +50 -0
- package/components/Badge/index.d.ts +3 -0
- package/components/Badge/index.jsx +3 -0
- package/components/Breadcrumbs/Breadcrumbs.d.ts +11 -0
- package/components/Breadcrumbs/Breadcrumbs.jsx +42 -0
- package/components/Breadcrumbs/index.d.ts +3 -0
- package/components/Breadcrumbs/index.jsx +3 -0
- package/components/Button/Button.d.ts +111 -0
- package/components/Button/Button.jsx +129 -0
- package/components/Button/UnstyledButton.d.ts +10 -0
- package/components/Button/UnstyledButton.jsx +13 -0
- package/components/Button/index.d.ts +3 -0
- package/components/Button/index.jsx +3 -0
- package/components/Carousel/Carousel.d.ts +19 -0
- package/components/Carousel/Carousel.jsx +55 -0
- package/components/Carousel/index.d.ts +3 -0
- package/components/Carousel/index.jsx +3 -0
- package/components/Checkbox/Checkbox.d.ts +14 -0
- package/components/Checkbox/Checkbox.jsx +45 -0
- package/components/Checkbox/index.d.ts +3 -0
- package/components/Checkbox/index.js +3 -0
- package/components/Code/Code.d.ts +12 -0
- package/components/Code/Code.jsx +25 -0
- package/components/Code/Json.d.ts +5 -0
- package/components/Code/Json.jsx +7 -0
- package/components/Code/index.d.ts +4 -0
- package/components/Code/index.jsx +4 -0
- package/components/ConfirmationButton/ConfirmationButton.d.ts +17 -0
- package/components/ConfirmationButton/ConfirmationButton.jsx +13 -0
- package/components/ConfirmationButton/index.d.ts +3 -0
- package/components/ConfirmationButton/index.jsx +3 -0
- package/components/ContextMenu/ContextMenu.d.ts +28 -0
- package/components/ContextMenu/ContextMenu.jsx +70 -0
- package/components/ContextMenu/index.d.ts +3 -0
- package/components/ContextMenu/index.jsx +3 -0
- package/components/CopyButton/CopyButton.d.ts +7 -0
- package/components/CopyButton/CopyButton.jsx +29 -0
- package/components/CopyButton/index.d.ts +3 -0
- package/components/CopyButton/index.jsx +3 -0
- package/components/DateInput/DateInput.d.ts +6 -0
- package/components/DateInput/DateInput.jsx +19 -0
- package/components/DateInput/DateTimeInput.d.ts +3 -0
- package/components/DateInput/DateTimeInput.jsx +8 -0
- package/components/DateInput/index.d.ts +4 -0
- package/components/DateInput/index.jsx +4 -0
- package/components/DateInput/useRefValue.d.ts +5 -0
- package/components/DateInput/useRefValue.js +48 -0
- package/components/DatePicker/DatePicker.d.ts +19 -0
- package/components/DatePicker/DatePicker.jsx +55 -0
- package/components/DatePicker/index.d.ts +3 -0
- package/components/DatePicker/index.jsx +3 -0
- package/components/DateRangePicker/DateRangePicker.d.ts +16 -0
- package/components/DateRangePicker/DateRangePicker.jsx +56 -0
- package/components/DateRangePicker/index.d.ts +3 -0
- package/components/DateRangePicker/index.jsx +3 -0
- package/components/Dialog/Dialog.d.ts +25 -0
- package/components/Dialog/Dialog.jsx +35 -0
- package/components/Dialog/Dialogs.d.ts +1 -0
- package/components/Dialog/Dialogs.jsx +21 -0
- package/components/Dialog/dialogs.state.d.ts +21 -0
- package/components/Dialog/dialogs.state.js +40 -0
- package/components/Dialog/index.d.ts +6 -0
- package/components/Dialog/index.jsx +7 -0
- package/components/Drawer/Drawer.d.ts +15 -0
- package/components/Drawer/Drawer.jsx +72 -0
- package/components/Drawer/index.d.ts +3 -0
- package/components/Drawer/index.jsx +3 -0
- package/components/DropdownMenu/DropdownMenu.d.ts +33 -0
- package/components/DropdownMenu/DropdownMenu.jsx +74 -0
- package/components/DropdownMenu/index.d.ts +3 -0
- package/components/DropdownMenu/index.jsx +3 -0
- package/components/ErrorBoundary/ErrorBoundary.d.ts +18 -0
- package/components/ErrorBoundary/ErrorBoundary.jsx +32 -0
- package/components/ErrorBoundary/index.d.ts +3 -0
- package/components/ErrorBoundary/index.jsx +3 -0
- package/components/ErrorPage/Error404Page.d.ts +1 -0
- package/components/ErrorPage/Error404Page.jsx +4 -0
- package/components/ErrorPage/Error500Page.d.ts +1 -0
- package/components/ErrorPage/Error500Page.jsx +4 -0
- package/components/ErrorPage/ErrorPage.d.ts +11 -0
- package/components/ErrorPage/ErrorPage.jsx +23 -0
- package/components/FileInput/FileInput.d.ts +47 -0
- package/components/FileInput/FileInput.jsx +144 -0
- package/components/FileInput/PreviewFile.d.ts +13 -0
- package/components/FileInput/PreviewFile.jsx +55 -0
- package/components/FileInput/index.d.ts +3 -0
- package/components/FileInput/index.jsx +3 -0
- package/components/FileSelect/FileSelect.d.ts +31 -0
- package/components/FileSelect/FileSelect.jsx +143 -0
- package/components/FileSelect/index.d.ts +3 -0
- package/components/FileSelect/index.jsx +3 -0
- package/components/Footer/Footer.d.ts +19 -0
- package/components/Footer/Footer.jsx +30 -0
- package/components/Footer/index.d.ts +3 -0
- package/components/Footer/index.jsx +3 -0
- package/components/GridPattern/GridPattern.d.ts +2 -0
- package/components/GridPattern/GridPattern.jsx +12 -0
- package/components/GridPattern/index.d.ts +3 -0
- package/components/GridPattern/index.jsx +3 -0
- package/components/Group/Group.d.ts +5 -0
- package/components/Group/Group.jsx +6 -0
- package/components/Group/index.d.ts +3 -0
- package/components/Group/index.jsx +3 -0
- package/components/Header/Header.d.ts +5 -0
- package/components/Header/Header.jsx +19 -0
- package/components/Header/index.d.ts +3 -0
- package/components/Header/index.jsx +3 -0
- package/components/ImageInput/ImageInput.d.ts +4 -0
- package/components/ImageInput/ImageInput.jsx +8 -0
- package/components/ImageInput/index.d.ts +3 -0
- package/components/ImageInput/index.jsx +3 -0
- package/components/Input/Input.d.ts +14 -0
- package/components/Input/Input.jsx +57 -0
- package/components/Input/InputIcon.d.ts +9 -0
- package/components/Input/InputIcon.jsx +7 -0
- package/components/Input/MultiSelectInput.d.ts +13 -0
- package/components/Input/MultiSelectInput.jsx +28 -0
- package/components/Input/NumericInput.d.ts +6 -0
- package/components/Input/NumericInput.jsx +6 -0
- package/components/Input/PatternInput.d.ts +6 -0
- package/components/Input/PatternInput.jsx +6 -0
- package/components/Input/UnstyledInput.d.ts +22 -0
- package/components/Input/UnstyledInput.jsx +28 -0
- package/components/Input/index.d.ts +6 -0
- package/components/Input/index.jsx +6 -0
- package/components/Input2/InputWrapper.d.ts +11 -0
- package/components/Input2/InputWrapper.jsx +11 -0
- package/components/Link/Link.d.ts +3 -0
- package/components/Link/Link.jsx +9 -0
- package/components/Link/index.d.ts +3 -0
- package/components/Link/index.jsx +3 -0
- package/components/Loading/Loading.d.ts +3 -0
- package/components/Loading/Loading.jsx +13 -0
- package/components/Loading/index.d.ts +3 -0
- package/components/Loading/index.jsx +3 -0
- package/components/Magnet/Magnet.d.ts +13 -0
- package/components/Magnet/Magnet.jsx +50 -0
- package/components/Magnet/index.d.ts +3 -0
- package/components/Magnet/index.jsx +3 -0
- package/components/Markdown/Markdown.d.ts +8 -0
- package/components/Markdown/Markdown.jsx +13 -0
- package/components/Markdown/index.d.ts +3 -0
- package/components/Markdown/index.jsx +3 -0
- package/components/Menu/Menu.d.ts +28 -0
- package/components/Menu/Menu.jsx +54 -0
- package/components/Modal/Modal.d.ts +45 -0
- package/components/Modal/Modal.jsx +65 -0
- package/components/Modal/index.d.ts +4 -0
- package/components/Modal/index.jsx +4 -0
- package/components/Modal/useModalState.d.ts +6 -0
- package/components/Modal/useModalState.js +16 -0
- package/components/ModeToggle/ModeToggle.d.ts +9 -0
- package/components/ModeToggle/ModeToggle.jsx +12 -0
- package/components/ModeToggle/index.d.ts +4 -0
- package/components/ModeToggle/index.jsx +5 -0
- package/components/ModeToggle/useModeToggle.d.ts +1 -0
- package/components/ModeToggle/useModeToggle.js +21 -0
- package/components/MultiSelect/MultiSelect.d.ts +28 -0
- package/components/MultiSelect/MultiSelect.jsx +130 -0
- package/components/MultiSelect/index.d.ts +3 -0
- package/components/MultiSelect/index.jsx +3 -0
- package/components/MultiText/MultiText.d.ts +23 -0
- package/components/MultiText/MultiText.jsx +119 -0
- package/components/MultiText/index.d.ts +3 -0
- package/components/MultiText/index.jsx +3 -0
- package/components/NavigationDrawer/NavigationDrawer.d.ts +9 -0
- package/components/NavigationDrawer/NavigationDrawer.jsx +29 -0
- package/components/NavigationDrawer/NavigationItem.d.ts +13 -0
- package/components/NavigationDrawer/NavigationItem.jsx +24 -0
- package/components/NavigationDrawer/index.d.ts +6 -0
- package/components/NavigationDrawer/index.jsx +6 -0
- package/components/NavigationDrawer/navigationDrawer.state.d.ts +9 -0
- package/components/NavigationDrawer/navigationDrawer.state.js +19 -0
- package/components/NoSsr/NoSsr.d.ts +4 -0
- package/components/NoSsr/NoSsr.jsx +8 -0
- package/components/NoSsr/index.d.ts +3 -0
- package/components/NoSsr/index.jsx +3 -0
- package/components/Noise/Noise.d.ts +11 -0
- package/components/Noise/Noise.jsx +69 -0
- package/components/Noise/index.d.ts +3 -0
- package/components/Noise/index.jsx +3 -0
- package/components/Notifications/Notifications.d.ts +3 -0
- package/components/Notifications/Notifications.jsx +60 -0
- package/components/Notifications/index.d.ts +5 -0
- package/components/Notifications/index.jsx +6 -0
- package/components/Notifications/notifications.state.d.ts +24 -0
- package/components/Notifications/notifications.state.js +41 -0
- package/components/Orb/Orb.d.ts +8 -0
- package/components/Orb/Orb.jsx +258 -0
- package/components/Orb/index.d.ts +3 -0
- package/components/Orb/index.jsx +3 -0
- package/components/Pagination/Pagination.d.ts +13 -0
- package/components/Pagination/Pagination.jsx +64 -0
- package/components/Pagination/index.d.ts +3 -0
- package/components/Pagination/index.jsx +3 -0
- package/components/Particles/Particles.d.ts +18 -0
- package/components/Particles/Particles.jsx +205 -0
- package/components/Particles/index.d.ts +3 -0
- package/components/Particles/index.jsx +3 -0
- package/components/PictureCropInput/PictureCropInput.d.ts +17 -0
- package/components/PictureCropInput/PictureCropInput.jsx +153 -0
- package/components/PictureCropInput/canvasPreview.d.ts +2 -0
- package/components/PictureCropInput/canvasPreview.js +37 -0
- package/components/PictureCropInput/index.d.ts +3 -0
- package/components/PictureCropInput/index.js +3 -0
- package/components/Popover/Popover.d.ts +13 -0
- package/components/Popover/Popover.jsx +22 -0
- package/components/Popover/index.d.ts +3 -0
- package/components/Popover/index.jsx +3 -0
- package/components/Resizable/Resizable.d.ts +12 -0
- package/components/Resizable/Resizable.jsx +54 -0
- package/components/Resizable/index.d.ts +3 -0
- package/components/Resizable/index.jsx +3 -0
- package/components/ScrollArea/ScrollArea.d.ts +9 -0
- package/components/ScrollArea/ScrollArea.jsx +16 -0
- package/components/ScrollArea/index.d.ts +3 -0
- package/components/ScrollArea/index.jsx +3 -0
- package/components/Select/Select.d.ts +24 -0
- package/components/Select/Select.jsx +55 -0
- package/components/Select/index.d.ts +3 -0
- package/components/Select/index.jsx +3 -0
- package/components/Skeleton/Skeleton.d.ts +2 -0
- package/components/Skeleton/Skeleton.jsx +8 -0
- package/components/Skeleton/index.d.ts +3 -0
- package/components/Skeleton/index.jsx +3 -0
- package/components/Slider/Slider.d.ts +10 -0
- package/components/Slider/Slider.jsx +21 -0
- package/components/Slider/index.d.ts +3 -0
- package/components/Slider/index.jsx +3 -0
- package/components/Spotlight/Spotlight.d.ts +30 -0
- package/components/Spotlight/Spotlight.jsx +77 -0
- package/components/Spotlight/index.d.ts +3 -0
- package/components/Spotlight/index.jsx +3 -0
- package/components/SpotlightCard/SpotlightCard.d.ts +7 -0
- package/components/SpotlightCard/SpotlightCard.jsx +35 -0
- package/components/SpotlightCard/index.d.ts +3 -0
- package/components/SpotlightCard/index.jsx +3 -0
- package/components/Stack/Stack.d.ts +4 -0
- package/components/Stack/Stack.jsx +5 -0
- package/components/Stack/index.d.ts +3 -0
- package/components/Stack/index.jsx +3 -0
- package/components/StarBorder/StarBorder.d.ts +11 -0
- package/components/StarBorder/StarBorder.jsx +19 -0
- package/components/StarBorder/index.d.ts +3 -0
- package/components/StarBorder/index.jsx +3 -0
- package/components/Switch/Switch.d.ts +16 -0
- package/components/Switch/Switch.jsx +24 -0
- package/components/Switch/index.d.ts +3 -0
- package/components/Switch/index.jsx +3 -0
- package/components/Table/DataTable.d.ts +57 -0
- package/components/Table/DataTable.jsx +155 -0
- package/components/Table/Table.d.ts +27 -0
- package/components/Table/Table.jsx +31 -0
- package/components/Table/TableActionButton.d.ts +6 -0
- package/components/Table/TableActionButton.jsx +20 -0
- package/components/Table/TableBody.d.ts +6 -0
- package/components/Table/TableBody.jsx +10 -0
- package/components/Table/TableCell.d.ts +9 -0
- package/components/Table/TableCell.jsx +18 -0
- package/components/Table/TableFooter.d.ts +5 -0
- package/components/Table/TableFooter.jsx +5 -0
- package/components/Table/TableFooterWithPagination.d.ts +13 -0
- package/components/Table/TableFooterWithPagination.jsx +57 -0
- package/components/Table/TableHead.d.ts +5 -0
- package/components/Table/TableHead.jsx +9 -0
- package/components/Table/TableHeadContext.d.ts +4 -0
- package/components/Table/TableHeadContext.jsx +3 -0
- package/components/Table/TableHeader.d.ts +7 -0
- package/components/Table/TableHeader.jsx +15 -0
- package/components/Table/TableRow.d.ts +8 -0
- package/components/Table/TableRow.jsx +9 -0
- package/components/Table/index.d.ts +3 -0
- package/components/Table/index.jsx +3 -0
- package/components/Tabs/Tabs.d.ts +9 -0
- package/components/Tabs/Tabs.jsx +13 -0
- package/components/Tabs/index.d.ts +3 -0
- package/components/Tabs/index.jsx +3 -0
- package/components/TabsSwitcher/Tab.d.ts +15 -0
- package/components/TabsSwitcher/Tab.jsx +18 -0
- package/components/TabsSwitcher/TabsSwitcher.d.ts +22 -0
- package/components/TabsSwitcher/TabsSwitcher.jsx +31 -0
- package/components/TabsSwitcher/index.d.ts +4 -0
- package/components/TabsSwitcher/index.jsx +4 -0
- package/components/Text/Text.d.ts +24 -0
- package/components/Text/Text.jsx +28 -0
- package/components/Text/index.d.ts +3 -0
- package/components/Text/index.jsx +3 -0
- package/components/Textarea/Textarea.d.ts +5 -0
- package/components/Textarea/Textarea.jsx +6 -0
- package/components/Textarea/index.d.ts +3 -0
- package/components/Textarea/index.js +3 -0
- package/components/Threads/Threads.d.ts +9 -0
- package/components/Threads/Threads.jsx +203 -0
- package/components/Threads/index.d.ts +3 -0
- package/components/Threads/index.jsx +3 -0
- package/components/Tooltip/Tooltip.d.ts +11 -0
- package/components/Tooltip/Tooltip.jsx +21 -0
- package/components/Tooltip/index.d.ts +3 -0
- package/components/Tooltip/index.jsx +3 -0
- package/components/VisibilityActivatedButton/VisibilityActivatedButton.d.ts +7 -0
- package/components/VisibilityActivatedButton/VisibilityActivatedButton.jsx +18 -0
- package/components/VisibilityActivatedButton/index.d.ts +3 -0
- package/components/VisibilityActivatedButton/index.jsx +3 -0
- package/form.d.ts +82 -0
- package/form.js +113 -0
- package/form2.d.ts +15 -0
- package/form2.jsx +29 -0
- package/hooks/useBeforeUnload.d.ts +1 -0
- package/hooks/useBeforeUnload.js +17 -0
- package/hooks/useDebounceEffect.d.ts +2 -0
- package/hooks/useDebounceEffect.js +14 -0
- package/hooks/useDebouncedValue.d.ts +2 -0
- package/hooks/useDebouncedValue.js +14 -0
- package/hooks/useLagRadar.d.ts +1 -0
- package/hooks/useLagRadar.jsx +124 -0
- package/hooks/useMediaQuery.d.ts +1 -0
- package/hooks/useMediaQuery.js +37 -0
- package/hooks/useMutationWindowCloseProtection.d.ts +2 -0
- package/hooks/useMutationWindowCloseProtection.js +13 -0
- package/hooks/useScroll.d.ts +3 -0
- package/hooks/useScroll.js +47 -0
- package/hooks/useTranslation.d.ts +4 -0
- package/hooks/useTranslation.js +11 -0
- package/hooks/useWhyDidYouUpdate.d.ts +3 -0
- package/hooks/useWhyDidYouUpdate.js +44 -0
- package/imgur.d.ts +1 -0
- package/imgur.js +13 -0
- package/package.json +9 -0
- package/styles/DayPicker.classNames.d.ts +29 -0
- package/styles/DayPicker.classNames.js +30 -0
- package/styles/DayPicker.classNames.ts +81 -0
- package/styles/Dropdown.classNames.d.ts +6 -0
- package/styles/Dropdown.classNames.js +7 -0
- package/styles/Dropdown.classNames.ts +38 -0
- package/styles/Input.css +23 -0
- package/styles/Modal.classNames.d.ts +2 -0
- package/styles/Modal.classNames.js +3 -0
- package/styles/Modal.classNames.ts +15 -0
- package/styles/MultiText.css +40 -0
- package/styles/Pagination.css +19 -0
- package/styles/Tabs.css +23 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/types.d.ts +6 -0
- package/types.js +1 -0
- package/utils/UseState.d.ts +3 -0
- package/utils/UseState.js +1 -0
- package/utils/blobToText.d.ts +1 -0
- package/utils/blobToText.js +13 -0
- package/utils/capitalize.d.ts +1 -0
- package/utils/capitalize.js +6 -0
- package/utils/clsx.d.ts +2 -0
- package/utils/clsx.js +5 -0
- package/utils/copy2DToClipboard.d.ts +1 -0
- package/utils/copy2DToClipboard.js +44 -0
- package/utils/cpfCpnjUtils.d.ts +3 -0
- package/utils/cpfCpnjUtils.js +43 -0
- package/utils/createLocalStorageStateHydration.d.ts +1 -0
- package/utils/createLocalStorageStateHydration.js +18 -0
- package/utils/createStateHydration.d.ts +3 -0
- package/utils/createStateHydration.js +49 -0
- package/utils/csvBlobToJson.d.ts +2 -0
- package/utils/csvBlobToJson.js +60 -0
- package/utils/downloadArrayAsCSV.d.ts +1 -0
- package/utils/downloadArrayAsCSV.js +34 -0
- package/utils/emailRegExp.d.ts +2 -0
- package/utils/emailRegExp.js +3 -0
- package/utils/fakeArray.d.ts +1 -0
- package/utils/fakeArray.js +3 -0
- package/utils/filterBoolean.d.ts +1 -0
- package/utils/filterBoolean.js +3 -0
- package/utils/formatClock.d.ts +1 -0
- package/utils/formatClock.js +21 -0
- package/utils/formatTime.d.ts +2 -0
- package/utils/formatTime.js +40 -0
- package/utils/getInitials.d.ts +4 -0
- package/utils/getInitials.js +8 -0
- package/utils/isBrowser.d.ts +12 -0
- package/utils/isBrowser.js +26 -0
- package/utils/ms.d.ts +6 -0
- package/utils/ms.js +31 -0
- package/utils/preventDefault.d.ts +1 -0
- package/utils/preventDefault.js +3 -0
- package/utils/recursiveChildrenMap.d.ts +2 -0
- package/utils/recursiveChildrenMap.js +16 -0
- package/utils/setSelectionRange.d.ts +1 -0
- package/utils/setSelectionRange.js +55 -0
- package/utils/smoothScrollToHref.d.ts +2 -0
- package/utils/smoothScrollToHref.js +10 -0
- package/utils/stopPropagation.d.ts +2 -0
- package/utils/stopPropagation.js +3 -0
- package/utils/stripHtml.d.ts +1 -0
- package/utils/stripHtml.js +4 -0
- package/utils/stripLineBreak.d.ts +1 -0
- package/utils/stripLineBreak.js +4 -0
- package/utils/stripMarkdown.d.ts +1 -0
- package/utils/stripMarkdown.js +28 -0
- package/utils/xlsxBlobToJson.d.ts +2 -0
- package/utils/xlsxBlobToJson.js +59 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode, Ref } from "react";
|
|
2
|
+
export default function ScrollArea({ className, children, viewportClassName, ref, viewportRef, type, }: {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
viewportClassName?: string;
|
|
6
|
+
ref?: Ref<HTMLDivElement>;
|
|
7
|
+
viewportRef?: Ref<HTMLDivElement>;
|
|
8
|
+
type?: "auto" | "always" | "scroll" | "hover";
|
|
9
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ScrollArea as RScrollArea } from "radix-ui";
|
|
2
|
+
import clsx from "../../utils/clsx";
|
|
3
|
+
export default function ScrollArea({ className, children, viewportClassName, ref, viewportRef, type, }) {
|
|
4
|
+
return (<RScrollArea.Root className={clsx("overflow-hidden", className)} ref={ref} type={type}>
|
|
5
|
+
<RScrollArea.Viewport className={clsx("h-full w-full", viewportClassName)} ref={viewportRef}>
|
|
6
|
+
{children}
|
|
7
|
+
</RScrollArea.Viewport>
|
|
8
|
+
<RScrollArea.Scrollbar className="flex touch-none select-none bg-zinc-700 p-0.5 transition-colors duration-[160ms] ease-out hover:bg-zinc-600 data-[orientation=horizontal]:h-2.5 data-[orientation=vertical]:w-2.5 data-[orientation=horizontal]:flex-col" orientation="vertical">
|
|
9
|
+
<RScrollArea.Thumb className="relative flex-1 rounded-[10px] bg-zinc-500 before:absolute before:left-1/2 before:top-1/2 before:size-full before:min-h-11 before:min-w-11 before:-translate-x-1/2 before:-translate-y-1/2 hover:bg-zinc-400"/>
|
|
10
|
+
</RScrollArea.Scrollbar>
|
|
11
|
+
<RScrollArea.Scrollbar className="flex touch-none select-none bg-zinc-700 p-0.5 transition-colors duration-[160ms] ease-out hover:bg-zinc-600 data-[orientation=horizontal]:h-2.5 data-[orientation=vertical]:w-2.5 data-[orientation=horizontal]:flex-col" orientation="horizontal">
|
|
12
|
+
<RScrollArea.Thumb className="relative flex-1 rounded-[10px] bg-zinc-500 before:absolute before:left-1/2 before:top-1/2 before:size-full before:min-h-[44px] before:min-w-[44px] before:-translate-x-1/2 before:-translate-y-1/2"/>
|
|
13
|
+
</RScrollArea.Scrollbar>
|
|
14
|
+
<RScrollArea.Corner className="bg-zinc-600"/>
|
|
15
|
+
</RScrollArea.Root>);
|
|
16
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
import * as RSelect from "@radix-ui/react-select";
|
|
3
|
+
import Button from "../Button";
|
|
4
|
+
declare function SelectContent({ className, children, ...props }: ComponentProps<typeof RSelect.Content>): import("react").JSX.Element;
|
|
5
|
+
declare function SelectSeparator({ className, ...props }: ComponentProps<typeof RSelect.Separator>): import("react").JSX.Element;
|
|
6
|
+
declare function SelectItem({ children, className, indicatorClassName, ...props }: ComponentProps<typeof RSelect.Item> & {
|
|
7
|
+
indicatorClassName?: string;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
9
|
+
declare function SelectTrigger({ className, placeholder, children, readOnly, ref, ...props }: ComponentProps<typeof RSelect.Trigger> & ComponentProps<typeof Button> & {
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
declare function SelectLabel({ className, ...props }: ComponentProps<typeof RSelect.Label>): import("react").JSX.Element;
|
|
13
|
+
declare const Select: {
|
|
14
|
+
Root: import("react").FC<RSelect.SelectProps>;
|
|
15
|
+
Item: typeof SelectItem;
|
|
16
|
+
Trigger: typeof SelectTrigger;
|
|
17
|
+
Content: typeof SelectContent;
|
|
18
|
+
Group: import("react").ForwardRefExoticComponent<RSelect.SelectGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
19
|
+
Label: typeof SelectLabel;
|
|
20
|
+
Separator: typeof SelectSeparator;
|
|
21
|
+
Icon: import("react").ForwardRefExoticComponent<RSelect.SelectIconProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
22
|
+
Value: import("react").ForwardRefExoticComponent<RSelect.SelectValueProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
23
|
+
};
|
|
24
|
+
export default Select;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as RSelect from "@radix-ui/react-select";
|
|
2
|
+
import { CheckIcon, ChevronDownIcon, ChevronUpIcon, } from "@heroicons/react/16/solid";
|
|
3
|
+
import Button from "../Button";
|
|
4
|
+
import clsx from "../../utils/clsx";
|
|
5
|
+
import { dropdownItemClassName, dropdownItemIndicatorClassName, dropdownLabelClassName, dropdownSeparatorClassName, } from "../../styles/Dropdown.classNames";
|
|
6
|
+
import { modalContentClassName } from "../../styles/Modal.classNames";
|
|
7
|
+
const selectScrollButtonClassName = clsx("ui-select-scroll-button", "flex h-6 cursor-default items-center justify-center", "bg-white", "dark:bg-zinc-900", "[&>svg]:w-4 [&>svg]:h-4");
|
|
8
|
+
function SelectContent({ className, children, ...props }) {
|
|
9
|
+
return (<RSelect.Portal>
|
|
10
|
+
<RSelect.Content {...props} className={clsx(modalContentClassName, "ui-select-content -ml-[6px]", className)}>
|
|
11
|
+
<RSelect.ScrollUpButton className={selectScrollButtonClassName}>
|
|
12
|
+
<ChevronUpIcon />
|
|
13
|
+
</RSelect.ScrollUpButton>
|
|
14
|
+
<RSelect.Viewport>{children}</RSelect.Viewport>
|
|
15
|
+
<RSelect.ScrollDownButton className={selectScrollButtonClassName}>
|
|
16
|
+
<ChevronDownIcon />
|
|
17
|
+
</RSelect.ScrollDownButton>
|
|
18
|
+
</RSelect.Content>
|
|
19
|
+
</RSelect.Portal>);
|
|
20
|
+
}
|
|
21
|
+
function SelectSeparator({ className, ...props }) {
|
|
22
|
+
return (<RSelect.Separator {...props} className={clsx(dropdownSeparatorClassName, "ui-select-separator", className)}/>);
|
|
23
|
+
}
|
|
24
|
+
function SelectItem({ children, className, indicatorClassName, ...props }) {
|
|
25
|
+
return (<RSelect.Item className={clsx(dropdownItemClassName, "ui-select-item", className)} {...props}>
|
|
26
|
+
<RSelect.ItemIndicator className={clsx(dropdownItemIndicatorClassName, "ui-select-item-indicator", indicatorClassName)}>
|
|
27
|
+
<CheckIcon />
|
|
28
|
+
</RSelect.ItemIndicator>
|
|
29
|
+
<RSelect.ItemText>{children}</RSelect.ItemText>
|
|
30
|
+
</RSelect.Item>);
|
|
31
|
+
}
|
|
32
|
+
function SelectTrigger({ className, placeholder, children, readOnly, ref, ...props }) {
|
|
33
|
+
return (<RSelect.Trigger asChild {...props} className={className} ref={children ? ref : undefined}>
|
|
34
|
+
{children || (<Button trailing={!readOnly ? (<RSelect.Icon>
|
|
35
|
+
<ChevronDownIcon />
|
|
36
|
+
</RSelect.Icon>) : undefined} ref={ref} disabled={readOnly} className="opacity-100">
|
|
37
|
+
<RSelect.Value placeholder={placeholder}/>
|
|
38
|
+
</Button>)}
|
|
39
|
+
</RSelect.Trigger>);
|
|
40
|
+
}
|
|
41
|
+
function SelectLabel({ className, ...props }) {
|
|
42
|
+
return (<RSelect.Label className={clsx(dropdownLabelClassName, "ui-select-label", className)} {...props}/>);
|
|
43
|
+
}
|
|
44
|
+
const Select = {
|
|
45
|
+
Root: RSelect.Root,
|
|
46
|
+
Item: SelectItem,
|
|
47
|
+
Trigger: SelectTrigger,
|
|
48
|
+
Content: SelectContent,
|
|
49
|
+
Group: RSelect.Group,
|
|
50
|
+
Label: SelectLabel,
|
|
51
|
+
Separator: SelectSeparator,
|
|
52
|
+
Icon: RSelect.Icon,
|
|
53
|
+
Value: RSelect.Value,
|
|
54
|
+
};
|
|
55
|
+
export default Select;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import clsx from "../../utils/clsx";
|
|
2
|
+
export default function Skeleton({ className, ...props }) {
|
|
3
|
+
return (<div className={clsx("animate-pulse overflow-hidden rounded-sm text-transparent", "bg-zinc-300 text-zinc-300 dark:bg-zinc-700 dark:text-zinc-700", className)} {...props}>
|
|
4
|
+
<div className={clsx("animate-shiny w-dull h-full", "bg-[linear-gradient(120deg,rgba(255,255,255,0)_0%,#e4e4e7,rgba(255,255,255,0)_100%)]", "dark:bg-[linear-gradient(120deg,rgba(255,255,255,0)_20%,#52525b,rgba(255,255,255,0)_80%)]")} style={{
|
|
5
|
+
backgroundSize: "200% 100%",
|
|
6
|
+
}}/>
|
|
7
|
+
</div>);
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export default function Slider({ step, max, min, className, value, onValueChange, thumbClassName, }: {
|
|
3
|
+
step?: number;
|
|
4
|
+
max?: number;
|
|
5
|
+
className?: string;
|
|
6
|
+
thumbClassName?: string;
|
|
7
|
+
min?: number;
|
|
8
|
+
value?: number[];
|
|
9
|
+
onValueChange?: (value: number[]) => void;
|
|
10
|
+
}): React.JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import * as RSlider from "@radix-ui/react-slider";
|
|
3
|
+
import fakeArray from "../../utils/fakeArray";
|
|
4
|
+
import clsx from "../../utils/clsx";
|
|
5
|
+
import { useUpdateEffect } from "react-use";
|
|
6
|
+
export default function Slider({ step = 1, max = 100, min = 0, className, value, onValueChange, thumbClassName, }) {
|
|
7
|
+
const thumbs = value?.length || 1;
|
|
8
|
+
const [intervalValue, setInternalValue] = useState(fakeArray(thumbs).map((n) => 10 * n));
|
|
9
|
+
useUpdateEffect(() => {
|
|
10
|
+
setInternalValue(value || fakeArray(thumbs).map((n) => 10 * n));
|
|
11
|
+
}, [value]);
|
|
12
|
+
useUpdateEffect(() => {
|
|
13
|
+
onValueChange?.(intervalValue);
|
|
14
|
+
}, [intervalValue, onValueChange]);
|
|
15
|
+
return (<RSlider.Root className={clsx("relative flex h-5 touch-none select-none items-center", className)} value={intervalValue} max={max} onValueChange={setInternalValue} step={step} min={min}>
|
|
16
|
+
<RSlider.Track className="relative h-[3px] grow rounded-full bg-black/30">
|
|
17
|
+
<RSlider.Range className="absolute h-full rounded-full bg-primary-500"/>
|
|
18
|
+
</RSlider.Track>
|
|
19
|
+
{fakeArray(thumbs).map((n) => (<RSlider.Thumb key={n} className={clsx("block h-5 w-5 rounded-full bg-white shadow-md ring-primary-500 ring-offset-2 ring-offset-zinc-100 transition hover:bg-primary-500 focus:outline-hidden focus-visible:shadow-lg focus-visible:ring-2", thumbClassName)}/>))}
|
|
20
|
+
</RSlider.Root>);
|
|
21
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export default function Spotlight<T extends object>({ recentSearchesId, open, setOpen, setQuery, query, onClickItem, results, loading, getItemId, getItemLabel, getItemPicture, getItemHref, showSeeMoreButton, onSeeMoreClick, seeMoreHref, overlayClassName, dialogContentClassName, className, contentClassName, iconClassName, inputClassName, buttonClassName, noResultsClassName, recentSearchClassName, buttonLabel, noRecentSearchLabel, recentlySearchedLabel, noResultsLabel, }: {
|
|
2
|
+
recentSearchesId: string;
|
|
3
|
+
open: boolean;
|
|
4
|
+
setOpen: (open: boolean) => void;
|
|
5
|
+
setQuery: (search: string) => void;
|
|
6
|
+
query: string;
|
|
7
|
+
results?: T[];
|
|
8
|
+
loading: boolean;
|
|
9
|
+
getItemId?: (item: T) => string;
|
|
10
|
+
getItemLabel?: (item: T) => string;
|
|
11
|
+
getItemPicture?: (item: T) => string;
|
|
12
|
+
getItemHref?: (item: T) => string;
|
|
13
|
+
onClickItem?: (item: T) => void;
|
|
14
|
+
showSeeMoreButton?: boolean;
|
|
15
|
+
onSeeMoreClick?: () => void;
|
|
16
|
+
seeMoreHref?: string;
|
|
17
|
+
overlayClassName?: string;
|
|
18
|
+
dialogContentClassName?: string;
|
|
19
|
+
className?: string;
|
|
20
|
+
contentClassName?: string;
|
|
21
|
+
iconClassName?: string;
|
|
22
|
+
inputClassName?: string;
|
|
23
|
+
buttonClassName?: string;
|
|
24
|
+
noResultsClassName?: string;
|
|
25
|
+
recentSearchClassName?: string;
|
|
26
|
+
buttonLabel?: string;
|
|
27
|
+
noRecentSearchLabel?: string;
|
|
28
|
+
recentlySearchedLabel?: string;
|
|
29
|
+
noResultsLabel?: string;
|
|
30
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as Dialog from "@radix-ui/react-dialog";
|
|
2
|
+
import { VisuallyHidden } from "radix-ui";
|
|
3
|
+
import { useCallback } from "react";
|
|
4
|
+
import { ChevronRightIcon, MagnifyingGlassIcon, } from "@heroicons/react/24/solid";
|
|
5
|
+
import { useLocalStorage } from "react-use";
|
|
6
|
+
import { take, uniqBy } from "lodash-es";
|
|
7
|
+
import Image from "next/image";
|
|
8
|
+
import Input from "../Input";
|
|
9
|
+
import Skeleton from "../Skeleton";
|
|
10
|
+
import UnstyledButton from "../Button/UnstyledButton";
|
|
11
|
+
import Button from "../Button";
|
|
12
|
+
import clsx from "../../utils/clsx";
|
|
13
|
+
export default function Spotlight({ recentSearchesId, open, setOpen, setQuery, query, onClickItem, results, loading, getItemId = (item) => item._id, getItemLabel = (item) => item.name, getItemPicture, getItemHref, showSeeMoreButton, onSeeMoreClick, seeMoreHref, overlayClassName, dialogContentClassName, className, contentClassName, iconClassName, inputClassName, buttonClassName, noResultsClassName, recentSearchClassName, buttonLabel = "See more", noRecentSearchLabel = "No recent search", recentlySearchedLabel = "Recently searched", noResultsLabel = "No result found", }) {
|
|
14
|
+
const [recentQueries, setRecentQueries] = useLocalStorage(`spotlight-recent-queries-${recentSearchesId}`, []);
|
|
15
|
+
const handleClose = useCallback((item) => {
|
|
16
|
+
setRecentQueries(take(uniqBy([item, ...(recentQueries || [])], getItemId), 5));
|
|
17
|
+
setOpen(false);
|
|
18
|
+
setQuery("");
|
|
19
|
+
}, [getItemId, recentQueries, setOpen, setQuery, setRecentQueries]);
|
|
20
|
+
const handleItemClick = useCallback((item) => () => {
|
|
21
|
+
onClickItem?.(item);
|
|
22
|
+
handleClose(item);
|
|
23
|
+
}, [handleClose, onClickItem]);
|
|
24
|
+
return (<Dialog.Root open={open} onOpenChange={setOpen}>
|
|
25
|
+
<Dialog.Portal>
|
|
26
|
+
<Dialog.Overlay className={clsx("fixed inset-0 z-20 flex justify-center bg-black/30 backdrop-blur-xs", "data-[state=closed]:animate-fade-out data-[state=open]:animate-slide-up-and-fade will-change-[opacity,transform]", overlayClassName)}>
|
|
27
|
+
<Dialog.Content className={clsx("fixed mx-auto w-full max-w-(--breakpoint-md) px-4 py-4 focus:outline-hidden md:py-8", "data-[state=closed]:animate-fade-out data-[state=open]:animate-elastic-slide-up-and-fade will-change-[transform,opacity]", dialogContentClassName)}>
|
|
28
|
+
<VisuallyHidden.Root>
|
|
29
|
+
<Dialog.Title />
|
|
30
|
+
<Dialog.Description />
|
|
31
|
+
</VisuallyHidden.Root>
|
|
32
|
+
<div className={clsx("flex w-full flex-col justify-center rounded-sm border border-zinc-800 bg-zinc-900", className)}>
|
|
33
|
+
<div className="px-4 py-4">
|
|
34
|
+
<Input className={clsx("w-full bg-zinc-900", contentClassName)} inputClassName={clsx("border-none rounded-t-md rounded-b-none dark:bg-zinc-900 dark:focus:ring-0", inputClassName)} autoFocus={true} leading={<MagnifyingGlassIcon className={clsx("h-5 w-5 text-white", iconClassName)}/>} value={query} onChange={(e) => setQuery(e.target.value)}/>
|
|
35
|
+
</div>
|
|
36
|
+
<div className="w-full border-t border-zinc-800">
|
|
37
|
+
<div className="flex flex-col">
|
|
38
|
+
{query ? (<>
|
|
39
|
+
{loading && (<div className="flex items-center gap-4 px-4 py-2">
|
|
40
|
+
{getItemPicture && <Skeleton className="h-16 w-28"/>}
|
|
41
|
+
<Skeleton className="h-6 w-32"/>
|
|
42
|
+
</div>)}
|
|
43
|
+
{!loading && !results?.length && (<div className={clsx("flex justify-center border-b border-zinc-800 px-6 py-10 text-zinc-600", noResultsClassName)}>
|
|
44
|
+
{noResultsLabel}
|
|
45
|
+
</div>)}
|
|
46
|
+
{!loading && !!results?.length && (<>
|
|
47
|
+
{results.map((item) => (<UnstyledButton key={getItemId(item)} href={getItemHref?.(item)} className="flex w-full items-center gap-4 border-t border-zinc-800 px-4 py-2 hover:bg-zinc-800/90" onClick={handleItemClick(item)}>
|
|
48
|
+
{getItemPicture && (<Image src={getItemPicture(item)} alt={getItemLabel(item)} width={200} height={378} className="h-16 w-28 rounded-sm object-cover"/>)}
|
|
49
|
+
<div className="text-white">
|
|
50
|
+
{getItemLabel(item)}
|
|
51
|
+
</div>
|
|
52
|
+
</UnstyledButton>))}
|
|
53
|
+
{showSeeMoreButton && (<div className="flex w-full justify-center px-4 py-2">
|
|
54
|
+
<Button variant="filled" type="submit" className={clsx("w-full dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700", buttonClassName)} trailing={<ChevronRightIcon />} onClick={onSeeMoreClick} href={seeMoreHref}>
|
|
55
|
+
{buttonLabel}
|
|
56
|
+
</Button>
|
|
57
|
+
</div>)}
|
|
58
|
+
</>)}
|
|
59
|
+
</>) : (<>
|
|
60
|
+
{recentQueries?.length ? (<div className={clsx("px-6 py-2 text-zinc-400", recentSearchClassName)}>
|
|
61
|
+
{recentlySearchedLabel}
|
|
62
|
+
</div>) : (<div className={clsx("flex justify-center border-zinc-800 px-6 py-10 text-zinc-600", noResultsClassName)}>
|
|
63
|
+
{noRecentSearchLabel}
|
|
64
|
+
</div>)}
|
|
65
|
+
{recentQueries?.map((item) => (<UnstyledButton key={getItemId(item)} href={getItemHref?.(item)} className="flex w-full items-center gap-4 border-t border-zinc-800 px-4 py-2 hover:bg-zinc-800/90" onClick={handleItemClick(item)}>
|
|
66
|
+
{getItemPicture && (<Image src={getItemPicture(item)} alt={getItemLabel(item)} width={200} height={378} className="max-h-16 max-w-28 rounded-sm object-cover"/>)}
|
|
67
|
+
<div className="text-white">{getItemLabel(item)}</div>
|
|
68
|
+
</UnstyledButton>))}
|
|
69
|
+
</>)}
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
</Dialog.Content>
|
|
74
|
+
</Dialog.Overlay>
|
|
75
|
+
</Dialog.Portal>
|
|
76
|
+
</Dialog.Root>);
|
|
77
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface SpotlightCardProps extends React.PropsWithChildren {
|
|
3
|
+
className?: string;
|
|
4
|
+
spotlightColor?: `rgba(${number}, ${number}, ${number}, ${number})`;
|
|
5
|
+
}
|
|
6
|
+
declare const SpotlightCard: React.FC<SpotlightCardProps>;
|
|
7
|
+
export default SpotlightCard;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React, { useRef, useState } from "react";
|
|
2
|
+
const SpotlightCard = ({ children, className = "", spotlightColor = "rgba(255, 255, 255, 0.25)", }) => {
|
|
3
|
+
const divRef = useRef(null);
|
|
4
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
5
|
+
const [position, setPosition] = useState({ x: 0, y: 0 });
|
|
6
|
+
const [opacity, setOpacity] = useState(0);
|
|
7
|
+
const handleMouseMove = (e) => {
|
|
8
|
+
if (!divRef.current || isFocused)
|
|
9
|
+
return;
|
|
10
|
+
const rect = divRef.current.getBoundingClientRect();
|
|
11
|
+
setPosition({ x: e.clientX - rect.left, y: e.clientY - rect.top });
|
|
12
|
+
};
|
|
13
|
+
const handleFocus = () => {
|
|
14
|
+
setIsFocused(true);
|
|
15
|
+
setOpacity(0.6);
|
|
16
|
+
};
|
|
17
|
+
const handleBlur = () => {
|
|
18
|
+
setIsFocused(false);
|
|
19
|
+
setOpacity(0);
|
|
20
|
+
};
|
|
21
|
+
const handleMouseEnter = () => {
|
|
22
|
+
setOpacity(0.6);
|
|
23
|
+
};
|
|
24
|
+
const handleMouseLeave = () => {
|
|
25
|
+
setOpacity(0);
|
|
26
|
+
};
|
|
27
|
+
return (<div ref={divRef} onMouseMove={handleMouseMove} onFocus={handleFocus} onBlur={handleBlur} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave} className={`relative overflow-hidden ${className}`}>
|
|
28
|
+
<div className="pointer-events-none absolute inset-0 opacity-0 transition-opacity duration-500 ease-in-out" style={{
|
|
29
|
+
opacity,
|
|
30
|
+
background: `radial-gradient(circle at ${position.x}px ${position.y}px, ${spotlightColor}, transparent 80%)`,
|
|
31
|
+
}}/>
|
|
32
|
+
{children}
|
|
33
|
+
</div>);
|
|
34
|
+
};
|
|
35
|
+
export default SpotlightCard;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type StarBorderProps<T extends React.ElementType> = React.ComponentPropsWithoutRef<T> & {
|
|
3
|
+
as?: T;
|
|
4
|
+
className?: string;
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
color?: string;
|
|
7
|
+
speed?: React.CSSProperties["animationDuration"];
|
|
8
|
+
innerClassName?: string;
|
|
9
|
+
};
|
|
10
|
+
declare const StarBorder: <T extends React.ElementType = "button">({ as, className, color, speed, children, innerClassName, ...rest }: StarBorderProps<T>) => React.JSX.Element;
|
|
11
|
+
export default StarBorder;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import clsx from "../../utils/clsx";
|
|
3
|
+
const StarBorder = ({ as, className = "", color = "white", speed = "6s", children, innerClassName, ...rest }) => {
|
|
4
|
+
const Component = (as || "button");
|
|
5
|
+
return (<Component className={`relative inline-block overflow-hidden rounded-[20px] py-[1px] ${className}`} {...rest}>
|
|
6
|
+
<div className="animate-star-movement-bottom absolute right-[-250%] bottom-[-11px] z-0 h-[50%] w-[300%] rounded-full opacity-70" style={{
|
|
7
|
+
background: `radial-gradient(circle, ${color}, transparent 10%)`,
|
|
8
|
+
animationDuration: speed,
|
|
9
|
+
}}/>
|
|
10
|
+
<div className="animate-star-movement-top absolute top-[-10px] left-[-250%] z-0 h-[50%] w-[300%] rounded-full opacity-70" style={{
|
|
11
|
+
background: `radial-gradient(circle, ${color}, transparent 10%)`,
|
|
12
|
+
animationDuration: speed,
|
|
13
|
+
}}/>
|
|
14
|
+
<div className={clsx("relative z-1 rounded-[20px] border border-gray-800 bg-gradient-to-b from-black to-gray-900 px-[26px] py-[16px] text-center text-[16px] text-white", innerClassName)}>
|
|
15
|
+
{children}
|
|
16
|
+
</div>
|
|
17
|
+
</Component>);
|
|
18
|
+
};
|
|
19
|
+
export default StarBorder;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { UnstyledInputCommonProps } from "../Input";
|
|
3
|
+
export interface SwitchProps {
|
|
4
|
+
srLabel?: string;
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
rightLabel?: ReactNode;
|
|
8
|
+
switchClassName?: string;
|
|
9
|
+
pointerClassName?: string;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
onChange?(checked: boolean): void;
|
|
13
|
+
}
|
|
14
|
+
export default function Switch({ srLabel, checked, onChange, className, rightLabel, readOnly, switchClassName, pointerClassName, disabled, }: SwitchProps): import("react").JSX.Element;
|
|
15
|
+
export type SwitchInputProps = UnstyledInputCommonProps & SwitchProps;
|
|
16
|
+
export declare function SwitchInput({ inputClassName, checked, ...props }: SwitchInputProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Switch as RSwitch } from "radix-ui";
|
|
2
|
+
import clsx from "../../utils/clsx";
|
|
3
|
+
import Input from "../Input";
|
|
4
|
+
export default function Switch({ srLabel, checked, onChange, className, rightLabel, readOnly, switchClassName, pointerClassName, disabled, }) {
|
|
5
|
+
return (<div className={clsx(className, "flex items-center")}>
|
|
6
|
+
<RSwitch.Root checked={checked} onCheckedChange={onChange} className={clsx({
|
|
7
|
+
"bg-primary-600": checked,
|
|
8
|
+
"bg-zinc-300 dark:bg-zinc-600": !checked,
|
|
9
|
+
"cursor-pointer": !readOnly && !disabled,
|
|
10
|
+
"cursor-not-allowed": disabled,
|
|
11
|
+
}, "focus:ring-primary-500 relative inline-flex h-6 w-11 shrink-0 rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:ring-2 focus:ring-offset-2 focus:outline-hidden dark:ring-offset-zinc-900", switchClassName)} disabled={readOnly || disabled}>
|
|
12
|
+
{srLabel && <span className="sr-only">{srLabel}</span>}
|
|
13
|
+
<RSwitch.Thumb aria-hidden="true" className={clsx("pointer-events-none inline-block h-5 w-5 translate-x-0 transform rounded-full bg-white shadow-sm ring-0 transition duration-200 ease-in-out data-[state=checked]:translate-x-5", pointerClassName)}/>
|
|
14
|
+
</RSwitch.Root>
|
|
15
|
+
{rightLabel && (<span className="ml-3 text-sm text-zinc-500 dark:text-zinc-300">
|
|
16
|
+
{rightLabel}
|
|
17
|
+
</span>)}
|
|
18
|
+
</div>);
|
|
19
|
+
}
|
|
20
|
+
export function SwitchInput({ inputClassName, checked, ...props }) {
|
|
21
|
+
return (<Input
|
|
22
|
+
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
|
|
23
|
+
{...props} as={Switch} inputClassName={clsx("p-1.5 border bg-white", inputClassName)} checked={!!checked}/>);
|
|
24
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ComponentType, ReactElement, ReactNode } from "react";
|
|
2
|
+
export type DataTableProps<RowData> = {
|
|
3
|
+
title?: ReactNode;
|
|
4
|
+
subtitle?: ReactNode;
|
|
5
|
+
headerContent?: ReactNode;
|
|
6
|
+
data?: RowData[];
|
|
7
|
+
idAccessor?: keyof RowData;
|
|
8
|
+
columns: {
|
|
9
|
+
id?: string;
|
|
10
|
+
title?: ReactNode;
|
|
11
|
+
accessor?: keyof RowData;
|
|
12
|
+
render?: (item: RowData) => ReactNode;
|
|
13
|
+
headerClassName?: string;
|
|
14
|
+
cellClassName?: string;
|
|
15
|
+
sortable?: boolean;
|
|
16
|
+
}[];
|
|
17
|
+
actions?: {
|
|
18
|
+
title: string;
|
|
19
|
+
icon: ReactElement;
|
|
20
|
+
href?: string | ((item: RowData) => string | null | undefined);
|
|
21
|
+
onClick?: (item: RowData) => void;
|
|
22
|
+
wrapper?: ComponentType<{
|
|
23
|
+
item: RowData;
|
|
24
|
+
children: ReactElement<{
|
|
25
|
+
className?: string;
|
|
26
|
+
onClick: () => void;
|
|
27
|
+
}>;
|
|
28
|
+
}>;
|
|
29
|
+
target?: string;
|
|
30
|
+
}[];
|
|
31
|
+
isLoading?: boolean;
|
|
32
|
+
noRecords?: ReactNode;
|
|
33
|
+
onRowClick?: (item: RowData) => void;
|
|
34
|
+
rowWrapper?: ComponentType<{
|
|
35
|
+
item: RowData;
|
|
36
|
+
children: ReactElement<{
|
|
37
|
+
className?: string;
|
|
38
|
+
}>;
|
|
39
|
+
}>;
|
|
40
|
+
pagination?: boolean;
|
|
41
|
+
currentPage?: number;
|
|
42
|
+
onChangePage?: (page: number) => void;
|
|
43
|
+
totalItems?: number;
|
|
44
|
+
itemsPerPage?: number;
|
|
45
|
+
className?: string;
|
|
46
|
+
autoHeight?: boolean;
|
|
47
|
+
onChangeSort?: (sort: [string, "asc" | "desc"][]) => void;
|
|
48
|
+
sort?: [string, "asc" | "desc"][];
|
|
49
|
+
previousText?: string;
|
|
50
|
+
nextText?: string;
|
|
51
|
+
showingText?: string;
|
|
52
|
+
toText?: string;
|
|
53
|
+
ofText?: string;
|
|
54
|
+
resultsText?: string;
|
|
55
|
+
tableClassName?: string;
|
|
56
|
+
};
|
|
57
|
+
export default function DataTable<RowData>({ title, subtitle, headerContent, data, idAccessor, actions, columns, isLoading, noRecords: noRecordsText, onRowClick, rowWrapper, pagination, currentPage, onChangePage, totalItems, itemsPerPage, className, autoHeight, onChangeSort, sort: defaultSort, previousText, nextText, showingText, toText, ofText, resultsText, tableClassName, }: DataTableProps<RowData>): import("react").JSX.Element;
|