@studiocubics/components 0.0.1 → 0.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/dist/Cards/Card/Card.d.ts +49 -0
- package/dist/Cards/Card/Card.js +45 -0
- package/dist/Cards/Card/Card.js.map +1 -0
- package/dist/Cards/Card/Card.module.css.js +4 -0
- package/dist/Cards/Card/Card.module.css.js.map +1 -0
- package/dist/Cards/CollectionItemCard/CollectionItemCard.d.ts +55 -0
- package/dist/Cards/CollectionItemCard/CollectionItemCard.js +48 -0
- package/dist/Cards/CollectionItemCard/CollectionItemCard.js.map +1 -0
- package/dist/Cards/CollectionItemCard/CollectionItemCard.module.css.js +4 -0
- package/dist/Cards/CollectionItemCard/CollectionItemCard.module.css.js.map +1 -0
- package/dist/Cards/CollectionItemCard/CollectionItemCardActions.d.ts +19 -0
- package/dist/Cards/CollectionItemCard/CollectionItemCardActions.js +34 -0
- package/dist/Cards/CollectionItemCard/CollectionItemCardActions.js.map +1 -0
- package/dist/Cards/GlassCard/GlassCard.d.ts +7 -0
- package/dist/Cards/GlassCard/GlassCard.js +52 -0
- package/dist/Cards/GlassCard/GlassCard.js.map +1 -0
- package/dist/Cards/GlassCard/GlassCard.module.css.js +4 -0
- package/dist/Cards/GlassCard/GlassCard.module.css.js.map +1 -0
- package/dist/Display/Accordion/Accordion.d.ts +14 -0
- package/dist/Display/Accordion/Accordion.js +28 -0
- package/dist/Display/Accordion/Accordion.js.map +1 -0
- package/dist/Display/Accordion/Accordion.module.css.js +4 -0
- package/dist/Display/Accordion/Accordion.module.css.js.map +1 -0
- package/dist/Display/Accordion/AccordionItem.d.ts +15 -0
- package/dist/Display/Accordion/AccordionItem.js +56 -0
- package/dist/Display/Accordion/AccordionItem.js.map +1 -0
- package/dist/Display/Chip/Chip.d.ts +46 -0
- package/dist/Display/Chip/Chip.js +43 -0
- package/dist/Display/Chip/Chip.js.map +1 -0
- package/dist/Display/Chip/Chip.module.css.js +4 -0
- package/dist/Display/Chip/Chip.module.css.js.map +1 -0
- package/dist/Display/IdentityDisplay/IdentityDisplay.d.ts +21 -0
- package/dist/Display/IdentityDisplay/IdentityDisplay.js +36 -0
- package/dist/Display/IdentityDisplay/IdentityDisplay.js.map +1 -0
- package/dist/Display/IdentityDisplay/IdentityDisplay.module.css.js +4 -0
- package/dist/Display/IdentityDisplay/IdentityDisplay.module.css.js.map +1 -0
- package/dist/Display/InputErrors/InputErrors.d.ts +11 -0
- package/dist/Display/InputErrors/InputErrors.js +25 -0
- package/dist/Display/InputErrors/InputErrors.js.map +1 -0
- package/dist/Display/InputErrors/InputErrors.module.css.js +4 -0
- package/dist/Display/InputErrors/InputErrors.module.css.js.map +1 -0
- package/dist/Display/Kbd/Kbd.d.ts +8 -0
- package/dist/Display/Kbd/Kbd.js +19 -0
- package/dist/Display/Kbd/Kbd.js.map +1 -0
- package/dist/Display/Kbd/Kbd.module.css.js +4 -0
- package/dist/Display/Kbd/Kbd.module.css.js.map +1 -0
- package/dist/Display/Kbd/buttonList.d.ts +324 -0
- package/dist/Display/Kbd/buttonList.js +198 -0
- package/dist/Display/Kbd/buttonList.js.map +1 -0
- package/dist/Display/LabeledValue/LabeledValue.d.ts +9 -0
- package/dist/Display/LabeledValue/LabeledValue.js +11 -0
- package/dist/Display/LabeledValue/LabeledValue.js.map +1 -0
- package/dist/Display/LabeledValue/LabeledValue.module.css.js +4 -0
- package/dist/Display/LabeledValue/LabeledValue.module.css.js.map +1 -0
- package/dist/Display/List/List.d.ts +50 -0
- package/dist/Display/List/List.js +96 -0
- package/dist/Display/List/List.js.map +1 -0
- package/dist/Display/List/List.module.css.js +4 -0
- package/dist/Display/List/List.module.css.js.map +1 -0
- package/dist/Display/PasswordStrength/PasswordStrength.d.ts +4 -0
- package/dist/Display/PasswordStrength/PasswordStrength.js +17 -0
- package/dist/Display/PasswordStrength/PasswordStrength.js.map +1 -0
- package/dist/Display/PasswordStrength/PasswordStrength.module.css.js +4 -0
- package/dist/Display/PasswordStrength/PasswordStrength.module.css.js.map +1 -0
- package/dist/Display/PasswordStrength/usePasswordStrength.d.ts +42 -0
- package/dist/Display/PasswordStrength/usePasswordStrength.js +49 -0
- package/dist/Display/PasswordStrength/usePasswordStrength.js.map +1 -0
- package/dist/Display/Skeleton/Skeleton.d.ts +8 -0
- package/dist/Display/Skeleton/Skeleton.js +11 -0
- package/dist/Display/Skeleton/Skeleton.js.map +1 -0
- package/dist/Display/Skeleton/Skeleton.module.css.js +4 -0
- package/dist/Display/Skeleton/Skeleton.module.css.js.map +1 -0
- package/dist/Display/Toast/Toaster.d.ts +1 -0
- package/dist/Display/Toast/Toaster.js +45 -0
- package/dist/Display/Toast/Toaster.js.map +1 -0
- package/dist/Display/Toast/toast.d.ts +12 -0
- package/dist/Display/Toast/toast.js +32 -0
- package/dist/Display/Toast/toast.js.map +1 -0
- package/dist/Display/Tooltip/Tooltip.d.ts +8 -0
- package/dist/Display/Tooltip/Tooltip.js +45 -0
- package/dist/Display/Tooltip/Tooltip.js.map +1 -0
- package/dist/Display/Tooltip/Tooltip.module.css.js +4 -0
- package/dist/Display/Tooltip/Tooltip.module.css.js.map +1 -0
- package/dist/Display/Tooltip/getArrowDirection.d.ts +1 -0
- package/dist/Display/Tooltip/getArrowDirection.js +48 -0
- package/dist/Display/Tooltip/getArrowDirection.js.map +1 -0
- package/dist/Display/Tooltip/useTooltip.d.ts +8 -0
- package/dist/Display/Tooltip/useTooltip.js +48 -0
- package/dist/Display/Tooltip/useTooltip.js.map +1 -0
- package/dist/Forms/ConfirmationForm/ConfirmationForm.d.ts +15 -0
- package/dist/Forms/ConfirmationForm/ConfirmationForm.js +12 -0
- package/dist/Forms/ConfirmationForm/ConfirmationForm.js.map +1 -0
- package/dist/Forms/ConfirmationForm/ConfirmationForm.module.css.js +4 -0
- package/dist/Forms/ConfirmationForm/ConfirmationForm.module.css.js.map +1 -0
- package/dist/Inputs/Button/Button.d.ts +83 -0
- package/dist/Inputs/Button/Button.js +56 -0
- package/dist/Inputs/Button/Button.js.map +1 -0
- package/dist/Inputs/Button/Button.module.css.js +4 -0
- package/dist/Inputs/Button/Button.module.css.js.map +1 -0
- package/dist/Inputs/Checkbox/Checkbox.d.ts +23 -0
- package/dist/Inputs/Checkbox/Checkbox.js +55 -0
- package/dist/Inputs/Checkbox/Checkbox.js.map +1 -0
- package/dist/Inputs/Checkbox/Checkbox.module.css.js +4 -0
- package/dist/Inputs/Checkbox/Checkbox.module.css.js.map +1 -0
- package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.d.ts +15 -0
- package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.js +35 -0
- package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.js.map +1 -0
- package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.module.css.js +4 -0
- package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.module.css.js.map +1 -0
- package/dist/Inputs/Checkbox/CheckboxSelectAll.d.ts +5 -0
- package/dist/Inputs/Checkbox/CheckboxSelectAll.js +19 -0
- package/dist/Inputs/Checkbox/CheckboxSelectAll.js.map +1 -0
- package/dist/Inputs/PasswordInput/PasswordInput.d.ts +31 -0
- package/dist/Inputs/PasswordInput/PasswordInput.js +45 -0
- package/dist/Inputs/PasswordInput/PasswordInput.js.map +1 -0
- package/dist/Inputs/PasswordInput/PasswordInput.module.css.js +4 -0
- package/dist/Inputs/PasswordInput/PasswordInput.module.css.js.map +1 -0
- package/dist/Inputs/Select/Select.d.ts +22 -0
- package/dist/Inputs/Select/Select.js +26 -0
- package/dist/Inputs/Select/Select.js.map +1 -0
- package/dist/Inputs/Select/Select.module.css.js +4 -0
- package/dist/Inputs/Select/Select.module.css.js.map +1 -0
- package/dist/Inputs/Switch/Switch.d.ts +43 -0
- package/dist/Inputs/Switch/Switch.js +81 -0
- package/dist/Inputs/Switch/Switch.js.map +1 -0
- package/dist/Inputs/Switch/Switch.module.css.js +4 -0
- package/dist/Inputs/Switch/Switch.module.css.js.map +1 -0
- package/dist/Inputs/TextAreaInput/TextAreaInput.d.ts +17 -0
- package/dist/Inputs/TextAreaInput/TextAreaInput.js +30 -0
- package/dist/Inputs/TextAreaInput/TextAreaInput.js.map +1 -0
- package/dist/Inputs/TextAreaInput/TextAreaInput.module.css.js +4 -0
- package/dist/Inputs/TextAreaInput/TextAreaInput.module.css.js.map +1 -0
- package/dist/Inputs/TextInput/TextInput.d.ts +27 -0
- package/dist/Inputs/TextInput/TextInput.js +23 -0
- package/dist/Inputs/TextInput/TextInput.js.map +1 -0
- package/dist/Inputs/TextInput/TextInput.module.css.js +4 -0
- package/dist/Inputs/TextInput/TextInput.module.css.js.map +1 -0
- package/dist/Inputs/ThemeToggle/ThemeToggleListItem.d.ts +16 -0
- package/dist/Inputs/ThemeToggle/ThemeToggleListItem.js +31 -0
- package/dist/Inputs/ThemeToggle/ThemeToggleListItem.js.map +1 -0
- package/dist/Inputs/ThemeToggle/_index.d.ts +1 -0
- package/dist/Layout/Dialog/Dialog.d.ts +13 -0
- package/dist/Layout/Dialog/Dialog.js +74 -0
- package/dist/Layout/Dialog/Dialog.js.map +1 -0
- package/dist/Layout/Dialog/Dialog.module.css.js +4 -0
- package/dist/Layout/Dialog/Dialog.module.css.js.map +1 -0
- package/dist/Layout/PageLayout/PageLayout.d.ts +28 -0
- package/dist/Layout/PageLayout/PageLayout.js +25 -0
- package/dist/Layout/PageLayout/PageLayout.js.map +1 -0
- package/dist/Layout/PageLayout/PageLayout.module.css.js +4 -0
- package/dist/Layout/PageLayout/PageLayout.module.css.js.map +1 -0
- package/dist/Layout/PageLayoutPagination/PageLayoutPagination.d.ts +7 -0
- package/dist/Layout/PageLayoutPagination/PageLayoutPagination.js +13 -0
- package/dist/Layout/PageLayoutPagination/PageLayoutPagination.js.map +1 -0
- package/dist/Layout/PageLayoutPagination/PageLayoutPagination.module.css.js +4 -0
- package/dist/Layout/PageLayoutPagination/PageLayoutPagination.module.css.js.map +1 -0
- package/dist/Layout/PageLayoutTabs/PageLayoutTabs.d.ts +14 -0
- package/dist/Layout/PageLayoutTabs/PageLayoutTabs.js +22 -0
- package/dist/Layout/PageLayoutTabs/PageLayoutTabs.js.map +1 -0
- package/dist/Layout/PageLayoutTabs/PageLayoutTabs.module.css.js +4 -0
- package/dist/Layout/PageLayoutTabs/PageLayoutTabs.module.css.js.map +1 -0
- package/dist/Layout/Popover/Popover.d.ts +14 -0
- package/dist/Layout/Popover/Popover.js +103 -0
- package/dist/Layout/Popover/Popover.js.map +1 -0
- package/dist/Layout/Popover/Popover.module.css.js +4 -0
- package/dist/Layout/Popover/Popover.module.css.js.map +1 -0
- package/dist/Layout/SectionWrapper/SectionWrapper.d.ts +14 -0
- package/dist/Layout/SectionWrapper/SectionWrapper.js +11 -0
- package/dist/Layout/SectionWrapper/SectionWrapper.js.map +1 -0
- package/dist/Layout/SectionWrapper/SectionWrapper.module.css.js +4 -0
- package/dist/Layout/SectionWrapper/SectionWrapper.module.css.js.map +1 -0
- package/dist/Layout/Sidebar/Sidebar.d.ts +15 -0
- package/dist/Layout/Sidebar/Sidebar.js +25 -0
- package/dist/Layout/Sidebar/Sidebar.js.map +1 -0
- package/dist/Layout/Sidebar/Sidebar.module.css.js +4 -0
- package/dist/Layout/Sidebar/Sidebar.module.css.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarBody/SidebarBody.d.ts +2 -0
- package/dist/Layout/Sidebar/SidebarBody/SidebarBody.js +14 -0
- package/dist/Layout/Sidebar/SidebarBody/SidebarBody.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarBody/SidebarBody.module.css.js +4 -0
- package/dist/Layout/Sidebar/SidebarBody/SidebarBody.module.css.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.d.ts +2 -0
- package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.js +14 -0
- package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.module.css.js +4 -0
- package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.module.css.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.d.ts +2 -0
- package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.js +14 -0
- package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.module.css.js +4 -0
- package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.module.css.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarHeader/SidebarHeader.d.ts +2 -0
- package/dist/Layout/Sidebar/SidebarHeader/SidebarHeader.js +12 -0
- package/dist/Layout/Sidebar/SidebarHeader/SidebarHeader.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.d.ts +2 -0
- package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.js +11 -0
- package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.js.map +1 -0
- package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.module.css.js +4 -0
- package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.module.css.js.map +1 -0
- package/dist/Layout/Table/Table.d.ts +54 -0
- package/dist/Layout/Table/Table.js +131 -0
- package/dist/Layout/Table/Table.js.map +1 -0
- package/dist/Layout/Table/Table.module.css.js +4 -0
- package/dist/Layout/Table/Table.module.css.js.map +1 -0
- package/dist/Layout/Table/TableFooter.d.ts +1 -0
- package/dist/Layout/Table/TableFooter.js +9 -0
- package/dist/Layout/Table/TableFooter.js.map +1 -0
- package/dist/Layout/Table/TableHeader.d.ts +1 -0
- package/dist/Layout/Table/TableHeader.js +9 -0
- package/dist/Layout/Table/TableHeader.js.map +1 -0
- package/dist/Layout/Table/tableUtils.d.ts +52 -0
- package/dist/Layout/Table/tableUtils.js +124 -0
- package/dist/Layout/Table/tableUtils.js.map +1 -0
- package/dist/Layout/Table/types.d.ts +43 -0
- package/dist/Misc/Cursor/Cursor.d.ts +1 -0
- package/dist/Misc/Cursor/Cursor.js +59 -0
- package/dist/Misc/Cursor/Cursor.js.map +1 -0
- package/dist/Misc/Cursor/Cursor.module.css.js +4 -0
- package/dist/Misc/Cursor/Cursor.module.css.js.map +1 -0
- package/dist/Misc/Logos.d.ts +14 -0
- package/dist/Misc/Logos.js +29 -0
- package/dist/Misc/Logos.js.map +1 -0
- package/dist/Misc/PoweredByBanner/PoweredByBanner.d.ts +3 -0
- package/dist/Misc/PoweredByBanner/PoweredByBanner.js +11 -0
- package/dist/Misc/PoweredByBanner/PoweredByBanner.js.map +1 -0
- package/dist/Misc/PoweredByBanner/PoweredByBanner.module.css.js +4 -0
- package/dist/Misc/PoweredByBanner/PoweredByBanner.module.css.js.map +1 -0
- package/dist/Misc/Ripple/Ripple.d.ts +21 -0
- package/dist/Misc/Ripple/Ripple.js +62 -0
- package/dist/Misc/Ripple/Ripple.js.map +1 -0
- package/dist/Misc/Ripple/Ripple.module.css.js +4 -0
- package/dist/Misc/Ripple/Ripple.module.css.js.map +1 -0
- package/dist/Misc/Spinner/Spinner.d.ts +2 -0
- package/dist/Misc/Spinner/Spinner.js +12 -0
- package/dist/Misc/Spinner/Spinner.js.map +1 -0
- package/dist/Misc/Spinner/Spinner.module.css.js +4 -0
- package/dist/Misc/Spinner/Spinner.module.css.js.map +1 -0
- package/dist/Misc/TransitionAnimation/TransitionAnimation.d.ts +71 -0
- package/dist/Misc/TransitionAnimation/TransitionAnimation.js +87 -0
- package/dist/Misc/TransitionAnimation/TransitionAnimation.js.map +1 -0
- package/dist/Misc/TransitionAnimation/TransitionAnimation.module.css.js +4 -0
- package/dist/Misc/TransitionAnimation/TransitionAnimation.module.css.js.map +1 -0
- package/dist/Navigation/Breadcrumbs/Breadcrumbs.d.ts +39 -0
- package/dist/Navigation/Breadcrumbs/Breadcrumbs.js +36 -0
- package/dist/Navigation/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/Navigation/Breadcrumbs/Breadcrumbs.module.css.js +4 -0
- package/dist/Navigation/Breadcrumbs/Breadcrumbs.module.css.js.map +1 -0
- package/dist/Navigation/Breadcrumbs/BreadcrumbsItem.d.ts +10 -0
- package/dist/Navigation/Breadcrumbs/BreadcrumbsItem.js +15 -0
- package/dist/Navigation/Breadcrumbs/BreadcrumbsItem.js.map +1 -0
- package/dist/Navigation/Breadcrumbs/useBreadcrumbs.d.ts +7 -0
- package/dist/Navigation/Breadcrumbs/useBreadcrumbs.js +44 -0
- package/dist/Navigation/Breadcrumbs/useBreadcrumbs.js.map +1 -0
- package/dist/Navigation/Pagination/Pagination.d.ts +52 -0
- package/dist/Navigation/Pagination/Pagination.js +61 -0
- package/dist/Navigation/Pagination/Pagination.js.map +1 -0
- package/dist/Navigation/Pagination/Pagination.module.css.js +4 -0
- package/dist/Navigation/Pagination/Pagination.module.css.js.map +1 -0
- package/dist/Navigation/Pagination/PaginationItem.d.ts +8 -0
- package/dist/Navigation/Pagination/PaginationItem.js +14 -0
- package/dist/Navigation/Pagination/PaginationItem.js.map +1 -0
- package/dist/Navigation/Pagination/usePagination.d.ts +6 -0
- package/dist/Navigation/Pagination/usePagination.js +38 -0
- package/dist/Navigation/Pagination/usePagination.js.map +1 -0
- package/dist/Navigation/Tabs/Tab/Tab.d.ts +46 -0
- package/dist/Navigation/Tabs/Tab/Tab.js +70 -0
- package/dist/Navigation/Tabs/Tab/Tab.js.map +1 -0
- package/dist/Navigation/Tabs/Tab/Tab.module.css.js +4 -0
- package/dist/Navigation/Tabs/Tab/Tab.module.css.js.map +1 -0
- package/dist/Navigation/Tabs/Tabs.d.ts +12 -0
- package/dist/Navigation/Tabs/Tabs.js +22 -0
- package/dist/Navigation/Tabs/Tabs.js.map +1 -0
- package/dist/Navigation/Tabs/TabsBar/TabsBar.d.ts +12 -0
- package/dist/Navigation/Tabs/TabsBar/TabsBar.js +44 -0
- package/dist/Navigation/Tabs/TabsBar/TabsBar.js.map +1 -0
- package/dist/Navigation/Tabs/TabsBar/TabsBar.module.css.js +4 -0
- package/dist/Navigation/Tabs/TabsBar/TabsBar.module.css.js.map +1 -0
- package/dist/Typography/ClampedText/ClampedText.d.ts +38 -0
- package/dist/Typography/ClampedText/ClampedText.js +44 -0
- package/dist/Typography/ClampedText/ClampedText.js.map +1 -0
- package/dist/Typography/ClampedText/ClampedText.module.css.js +4 -0
- package/dist/Typography/ClampedText/ClampedText.module.css.js.map +1 -0
- package/dist/Typography/CopyableText/CopyableText.d.ts +16 -0
- package/dist/Typography/CopyableText/CopyableText.js +39 -0
- package/dist/Typography/CopyableText/CopyableText.js.map +1 -0
- package/dist/Typography/CopyableText/CopyableText.module.css.js +4 -0
- package/dist/Typography/CopyableText/CopyableText.module.css.js.map +1 -0
- package/dist/Typography/PageTitle/PageTitle.d.ts +9 -0
- package/dist/Typography/PageTitle/PageTitle.js +10 -0
- package/dist/Typography/PageTitle/PageTitle.js.map +1 -0
- package/dist/Typography/PageTitle/PageTitle.module.css.js +4 -0
- package/dist/Typography/PageTitle/PageTitle.module.css.js.map +1 -0
- package/dist/index.css +2392 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/package.json +4 -4
- package/CHANGELOG.md +0 -11
- package/eslint.config.js +0 -21
- package/src/Cards/Card/Card.module.css +0 -27
- package/src/Cards/Card/Card.tsx +0 -105
- package/src/Cards/CollectionItemCard/CollectionItemCard.module.css +0 -84
- package/src/Cards/CollectionItemCard/CollectionItemCard.tsx +0 -170
- package/src/Cards/CollectionItemCard/CollectionItemCardActions.tsx +0 -85
- package/src/Cards/GlassCard/GlassCard.module.css +0 -71
- package/src/Cards/GlassCard/GlassCard.tsx +0 -80
- package/src/Display/Accordion/Accordion.module.css +0 -69
- package/src/Display/Accordion/Accordion.tsx +0 -61
- package/src/Display/Accordion/AccordionItem.tsx +0 -135
- package/src/Display/Chip/Chip.module.css +0 -64
- package/src/Display/Chip/Chip.tsx +0 -105
- package/src/Display/IdentityDisplay/IdentityDisplay.module.css +0 -95
- package/src/Display/IdentityDisplay/IdentityDisplay.tsx +0 -119
- package/src/Display/InputErrors/InputErrors.module.css +0 -6
- package/src/Display/InputErrors/InputErrors.tsx +0 -52
- package/src/Display/Kbd/Kbd.module.css +0 -29
- package/src/Display/Kbd/Kbd.tsx +0 -39
- package/src/Display/Kbd/buttonList.tsx +0 -246
- package/src/Display/LabeledValue/LabeledValue.module.css +0 -32
- package/src/Display/LabeledValue/LabeledValue.tsx +0 -20
- package/src/Display/List/List.module.css +0 -143
- package/src/Display/List/List.tsx +0 -298
- package/src/Display/PasswordStrength/PasswordStrength.module.css +0 -45
- package/src/Display/PasswordStrength/PasswordStrength.tsx +0 -41
- package/src/Display/PasswordStrength/usePasswordStrength.tsx +0 -77
- package/src/Display/Skeleton/Skeleton.module.css +0 -54
- package/src/Display/Skeleton/Skeleton.tsx +0 -28
- package/src/Display/Toast/Toaster.tsx +0 -58
- package/src/Display/Toast/toast.ts +0 -44
- package/src/Display/Tooltip/Tooltip.module.css +0 -128
- package/src/Display/Tooltip/Tooltip.tsx +0 -93
- package/src/Display/Tooltip/getArrowDirection.ts +0 -55
- package/src/Display/Tooltip/useTooltip.tsx +0 -63
- package/src/Forms/ConfirmationForm/ConfirmationForm.module.css +0 -23
- package/src/Forms/ConfirmationForm/ConfirmationForm.tsx +0 -60
- package/src/Inputs/Button/Button.module.css +0 -131
- package/src/Inputs/Button/Button.tsx +0 -178
- package/src/Inputs/Checkbox/Checkbox.module.css +0 -77
- package/src/Inputs/Checkbox/Checkbox.tsx +0 -191
- package/src/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.module.css +0 -10
- package/src/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.tsx +0 -83
- package/src/Inputs/Checkbox/CheckboxSelectAll.tsx +0 -34
- package/src/Inputs/PasswordInput/PasswordInput.module.css +0 -111
- package/src/Inputs/PasswordInput/PasswordInput.tsx +0 -229
- package/src/Inputs/Select/Select.module.css +0 -138
- package/src/Inputs/Select/Select.tsx +0 -136
- package/src/Inputs/Switch/Switch.module.css +0 -119
- package/src/Inputs/Switch/Switch.tsx +0 -195
- package/src/Inputs/TextAreaInput/TextAreaInput.module.css +0 -65
- package/src/Inputs/TextAreaInput/TextAreaInput.tsx +0 -97
- package/src/Inputs/TextInput/TextInput.module.css +0 -112
- package/src/Inputs/TextInput/TextInput.tsx +0 -142
- package/src/Inputs/ThemeToggle/ThemeToggleListItem.tsx +0 -80
- package/src/Inputs/ThemeToggle/_index.ts +0 -1
- package/src/Layout/Dialog/Dialog.module.css +0 -15
- package/src/Layout/Dialog/Dialog.tsx +0 -115
- package/src/Layout/PageLayout/PageLayout.module.css +0 -20
- package/src/Layout/PageLayout/PageLayout.tsx +0 -79
- package/src/Layout/PageLayoutPagination/PageLayoutPagination.module.css +0 -5
- package/src/Layout/PageLayoutPagination/PageLayoutPagination.tsx +0 -40
- package/src/Layout/PageLayoutTabs/PageLayoutTabs.module.css +0 -3
- package/src/Layout/PageLayoutTabs/PageLayoutTabs.tsx +0 -62
- package/src/Layout/Popover/Popover.module.css +0 -9
- package/src/Layout/Popover/Popover.tsx +0 -145
- package/src/Layout/SectionWrapper/SectionWrapper.module.css +0 -31
- package/src/Layout/SectionWrapper/SectionWrapper.tsx +0 -62
- package/src/Layout/Sidebar/Sidebar.module.css +0 -17
- package/src/Layout/Sidebar/Sidebar.tsx +0 -39
- package/src/Layout/Sidebar/SidebarBody/SidebarBody.module.css +0 -31
- package/src/Layout/Sidebar/SidebarBody/SidebarBody.tsx +0 -18
- package/src/Layout/Sidebar/SidebarDrawer/SidebarDrawer.module.css +0 -20
- package/src/Layout/Sidebar/SidebarDrawer/SidebarDrawer.tsx +0 -19
- package/src/Layout/Sidebar/SidebarFooter/SidebarFooter.module.css +0 -35
- package/src/Layout/Sidebar/SidebarFooter/SidebarFooter.tsx +0 -19
- package/src/Layout/Sidebar/SidebarHeader/SidebarHeader.tsx +0 -14
- package/src/Layout/Sidebar/SidebarViewport/SidebarViewport.module.css +0 -12
- package/src/Layout/Sidebar/SidebarViewport/SidebarViewport.tsx +0 -11
- package/src/Layout/Table/Table.module.css +0 -46
- package/src/Layout/Table/Table.tsx +0 -222
- package/src/Layout/Table/TableFooter.tsx +0 -4
- package/src/Layout/Table/TableHeader.tsx +0 -4
- package/src/Layout/Table/tableUtils.ts +0 -142
- package/src/Layout/Table/types.ts +0 -48
- package/src/Misc/Cursor/Cursor.module.css +0 -31
- package/src/Misc/Cursor/Cursor.tsx +0 -77
- package/src/Misc/Logos.tsx +0 -230
- package/src/Misc/PoweredByBanner/PoweredByBanner.module.css +0 -20
- package/src/Misc/PoweredByBanner/PoweredByBanner.tsx +0 -17
- package/src/Misc/Ripple/Ripple.module.css +0 -25
- package/src/Misc/Ripple/Ripple.tsx +0 -126
- package/src/Misc/Spinner/Spinner.module.css +0 -38
- package/src/Misc/Spinner/Spinner.tsx +0 -36
- package/src/Misc/TransitionAnimation/TransitionAnimation.module.css +0 -131
- package/src/Misc/TransitionAnimation/TransitionAnimation.tsx +0 -166
- package/src/Navigation/Breadcrumbs/Breadcrumbs.module.css +0 -22
- package/src/Navigation/Breadcrumbs/Breadcrumbs.tsx +0 -127
- package/src/Navigation/Breadcrumbs/BreadcrumbsItem.tsx +0 -31
- package/src/Navigation/Breadcrumbs/useBreadcrumbs.tsx +0 -74
- package/src/Navigation/Pagination/Pagination.module.css +0 -41
- package/src/Navigation/Pagination/Pagination.tsx +0 -187
- package/src/Navigation/Pagination/PaginationItem.tsx +0 -28
- package/src/Navigation/Pagination/usePagination.tsx +0 -65
- package/src/Navigation/Tabs/Tab/Tab.module.css +0 -43
- package/src/Navigation/Tabs/Tab/Tab.tsx +0 -155
- package/src/Navigation/Tabs/Tabs.tsx +0 -37
- package/src/Navigation/Tabs/TabsBar/TabsBar.module.css +0 -47
- package/src/Navigation/Tabs/TabsBar/TabsBar.tsx +0 -92
- package/src/Typography/ClampedText/ClampedText.module.css +0 -5
- package/src/Typography/ClampedText/ClampedText.tsx +0 -77
- package/src/Typography/CopyableText/CopyableText.module.css +0 -21
- package/src/Typography/CopyableText/CopyableText.tsx +0 -120
- package/src/Typography/PageTitle/PageTitle.module.css +0 -47
- package/src/Typography/PageTitle/PageTitle.tsx +0 -35
- package/src/declaration.d.ts +0 -4
- package/tsconfig.json +0 -32
- /package/{src/Cards/CollectionItemCard/_index.ts → dist/Cards/CollectionItemCard/_index.d.ts} +0 -0
- /package/{src/Cards/_index.ts → dist/Cards/_index.d.ts} +0 -0
- /package/{src/Display/Accordion/_index.ts → dist/Display/Accordion/_index.d.ts} +0 -0
- /package/{src/Display/Kbd/_index.ts → dist/Display/Kbd/_index.d.ts} +0 -0
- /package/{src/Display/Toast/_index.ts → dist/Display/Toast/_index.d.ts} +0 -0
- /package/{src/Display/_index.ts → dist/Display/_index.d.ts} +0 -0
- /package/{src/Forms/_index.ts → dist/Forms/_index.d.ts} +0 -0
- /package/{src/Inputs/Checkbox/_index.ts → dist/Inputs/Checkbox/_index.d.ts} +0 -0
- /package/{src/Inputs/_index.ts → dist/Inputs/_index.d.ts} +0 -0
- /package/{src/Layout/Sidebar/_index.ts → dist/Layout/Sidebar/_index.d.ts} +0 -0
- /package/{src/Layout/Table/_index.ts → dist/Layout/Table/_index.d.ts} +0 -0
- /package/{src/Layout/_index.ts → dist/Layout/_index.d.ts} +0 -0
- /package/{src/Misc/_index.ts → dist/Misc/_index.d.ts} +0 -0
- /package/{src/Navigation/Breadcrumbs/_index.ts → dist/Navigation/Breadcrumbs/_index.d.ts} +0 -0
- /package/{src/Navigation/Pagination/_index.ts → dist/Navigation/Pagination/_index.d.ts} +0 -0
- /package/{src/Navigation/Tabs/_index.ts → dist/Navigation/Tabs/_index.d.ts} +0 -0
- /package/{src/Navigation/_index.ts → dist/Navigation/_index.d.ts} +0 -0
- /package/{src/Typography/_index.ts → dist/Typography/_index.d.ts} +0 -0
- /package/{src/index.ts → dist/index.d.ts} +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { useState, Fragment } from 'react';
|
|
4
|
+
import { useBreadcrumbs } from './useBreadcrumbs.js';
|
|
5
|
+
import { BreadcrumbsItem } from './BreadcrumbsItem.js';
|
|
6
|
+
import { cn } from '@studiocubics/utils';
|
|
7
|
+
import styles from './Breadcrumbs.module.css.js';
|
|
8
|
+
|
|
9
|
+
const ChevronRightIcon = (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-chevron-right-icon lucide-chevron-right", children: jsx("path", { d: "m9 18 6-6-6-6" }) }));
|
|
10
|
+
const EllipsisIcon = (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-ellipsis-icon lucide-ellipsis", children: [jsx("circle", { cx: "12", cy: "12", r: "1" }), jsx("circle", { cx: "19", cy: "12", r: "1" }), jsx("circle", { cx: "5", cy: "12", r: "1" })] }));
|
|
11
|
+
function Breadcrumbs(props) {
|
|
12
|
+
const { onChange, boundaryCount = 1, siblingCount = 0, children, defaultActive = 0, separator = ChevronRightIcon, ellipsis = EllipsisIcon, renderItem = (props, key) => jsx(BreadcrumbsItem, { ...props }, key), } = props;
|
|
13
|
+
const [activeCrumb, setActiveCrumb] = useState(defaultActive);
|
|
14
|
+
const breadcrumbRange = useBreadcrumbs({
|
|
15
|
+
activeCrumb,
|
|
16
|
+
crumbs: children,
|
|
17
|
+
boundaryCount,
|
|
18
|
+
siblingCount,
|
|
19
|
+
});
|
|
20
|
+
function handleClick(i) {
|
|
21
|
+
setActiveCrumb(i);
|
|
22
|
+
if (onChange)
|
|
23
|
+
onChange(i);
|
|
24
|
+
}
|
|
25
|
+
return (jsx("span", { className: styles.root, children: breadcrumbRange.map((item, idx) => (jsxs(Fragment, { children: [renderItem({
|
|
26
|
+
className: cn(styles.item, activeCrumb === idx ? styles.activeItem : "", item == "ellipsis" ? styles.ellipsis : ""),
|
|
27
|
+
onClick: () => handleClick(idx),
|
|
28
|
+
children: item == "ellipsis" ? ellipsis : item,
|
|
29
|
+
}), idx !== breadcrumbRange.length - 1 &&
|
|
30
|
+
item !== "ellipsis" &&
|
|
31
|
+
breadcrumbRange[idx + 1] != "ellipsis" &&
|
|
32
|
+
separator] }, idx))) }));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { Breadcrumbs, ChevronRightIcon, EllipsisIcon };
|
|
36
|
+
//# sourceMappingURL=Breadcrumbs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.js","sources":["../../../src/Navigation/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["\"use client\";\n\nimport { Fragment, type ReactElement, type ReactNode, useState } from \"react\";\nimport { useBreadcrumbs } from \"./useBreadcrumbs\";\nimport { BreadcrumbsItem, type BreadcrumbsItemProps } from \"./BreadcrumbsItem\";\nimport { cn } from \"@studiocubics/utils\";\nimport styles from \"./Breadcrumbs.module.css\";\n\nexport interface BreadCrumbsProps {\n children: ReactElement[];\n /**\n * For controlled Breadcrumbs pass the onChange function\n */\n onChange?: (pageNumber: number) => void;\n /**\n * How many siblings of the active item should be shown\n * @default 1\n */\n siblingCount?: number;\n /**\n * How many of the boundary items should be shown\n * @default 0\n */\n boundaryCount?: number;\n /**\n * Crumb that will be selected by default\n * @default 1\n */\n defaultActive?: number;\n /**\n * Node to use as separator\n */\n separator?: ReactNode;\n /**\n * Node to use as ellipsis\n */\n ellipsis?: ReactNode;\n /**\n * Function that can be used to modify the rendered BreadcrumbsItem component\n */\n renderItem?: (\n props: BreadcrumbsItemProps,\n key?: string | number,\n ) => ReactElement;\n}\n\nexport const ChevronRightIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-chevron-right-icon lucide-chevron-right\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\nexport const EllipsisIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-ellipsis-icon lucide-ellipsis\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n);\nexport function Breadcrumbs(props: BreadCrumbsProps) {\n const {\n onChange,\n boundaryCount = 1,\n siblingCount = 0,\n children,\n defaultActive = 0,\n separator = ChevronRightIcon,\n ellipsis = EllipsisIcon,\n renderItem = (props, key?) => <BreadcrumbsItem key={key} {...props} />,\n } = props;\n const [activeCrumb, setActiveCrumb] = useState<number>(defaultActive);\n\n const breadcrumbRange = useBreadcrumbs({\n activeCrumb,\n crumbs: children,\n boundaryCount,\n siblingCount,\n });\n\n function handleClick(i: number) {\n setActiveCrumb(i);\n if (onChange) onChange(i);\n }\n\n return (\n <span className={styles.root}>\n {breadcrumbRange.map((item, idx) => (\n <Fragment key={idx}>\n {renderItem({\n className: cn(\n styles.item,\n activeCrumb === idx ? styles.activeItem : \"\",\n item == \"ellipsis\" ? styles.ellipsis : \"\",\n ),\n onClick: () => handleClick(idx),\n children: item == \"ellipsis\" ? ellipsis : item,\n })}\n {idx !== breadcrumbRange.length - 1 &&\n item !== \"ellipsis\" &&\n breadcrumbRange[idx + 1] != \"ellipsis\" &&\n separator}\n </Fragment>\n ))}\n </span>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PolymorphicComponentProps, PolymorphicComponentType } from "@studiocubics/types";
|
|
2
|
+
import { type ElementType } from "react";
|
|
3
|
+
interface BreadcrumbsItemBaseProps {
|
|
4
|
+
href?: "string";
|
|
5
|
+
}
|
|
6
|
+
declare const defaultElement = "span";
|
|
7
|
+
type DefaultElement = typeof defaultElement;
|
|
8
|
+
export type BreadcrumbsItemProps<C extends ElementType = DefaultElement> = PolymorphicComponentProps<C, BreadcrumbsItemBaseProps>;
|
|
9
|
+
export declare const BreadcrumbsItem: PolymorphicComponentType<BreadcrumbsItemBaseProps, DefaultElement>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import 'react';
|
|
4
|
+
|
|
5
|
+
const defaultElement = "span";
|
|
6
|
+
const BreadcrumbsItemBase = (props) => {
|
|
7
|
+
const { as, children, ...rest } = props;
|
|
8
|
+
const Component = (as || defaultElement);
|
|
9
|
+
return jsx(Component, { ...rest, children: children });
|
|
10
|
+
};
|
|
11
|
+
BreadcrumbsItemBase.displayName = "BreadcrumbsItem";
|
|
12
|
+
const BreadcrumbsItem = BreadcrumbsItemBase;
|
|
13
|
+
|
|
14
|
+
export { BreadcrumbsItem };
|
|
15
|
+
//# sourceMappingURL=BreadcrumbsItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BreadcrumbsItem.js","sources":["../../../src/Navigation/Breadcrumbs/BreadcrumbsItem.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n PolymorphicComponentProps,\n PolymorphicComponentType,\n} from \"@studiocubics/types\";\nimport { type ElementType } from \"react\";\n\ninterface BreadcrumbsItemBaseProps {\n href?: \"string\";\n}\n\nconst defaultElement = \"span\";\ntype DefaultElement = typeof defaultElement;\n\nexport type BreadcrumbsItemProps<C extends ElementType = DefaultElement> =\n PolymorphicComponentProps<C, BreadcrumbsItemBaseProps>;\n\nconst BreadcrumbsItemBase = <C extends ElementType = DefaultElement>(\n props: BreadcrumbsItemProps<C>\n) => {\n const { as, children, ...rest } = props;\n const Component = (as || defaultElement) as ElementType;\n return <Component {...rest}>{children}</Component>;\n};\n\nBreadcrumbsItemBase.displayName = \"BreadcrumbsItem\";\nexport const BreadcrumbsItem = BreadcrumbsItemBase as PolymorphicComponentType<\n BreadcrumbsItemBaseProps,\n DefaultElement\n>;\n"],"names":["_jsx"],"mappings":";;;;AAYA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAM7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAG,CAC1B,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAA,CAAA,CAAA,CAAA,CAC5B;IACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AACvC,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,cAAc,CAAgB;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,EAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAa;AACpD,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,eAAe,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
export declare function useBreadcrumbs({ activeCrumb, crumbs, siblingCount, boundaryCount, }: {
|
|
3
|
+
activeCrumb: number;
|
|
4
|
+
crumbs: ReactElement[];
|
|
5
|
+
siblingCount?: number;
|
|
6
|
+
boundaryCount?: number;
|
|
7
|
+
}): (ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | "ellipsis")[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
function useBreadcrumbs({ activeCrumb, crumbs, siblingCount = 0, boundaryCount = 1, }) {
|
|
2
|
+
const crumbsClone = Array.from(crumbs);
|
|
3
|
+
const count = crumbs.length;
|
|
4
|
+
if (count <= boundaryCount * 2 + siblingCount * 2 + 2) {
|
|
5
|
+
// If total items fit without ellipsis, just return all crumbs
|
|
6
|
+
return crumbsClone;
|
|
7
|
+
}
|
|
8
|
+
const resolvedBoundaryCount = Math.min(boundaryCount, count);
|
|
9
|
+
console.log("crumbs", crumbsClone);
|
|
10
|
+
const startPages = crumbsClone.slice(0, resolvedBoundaryCount + 1);
|
|
11
|
+
const endPages = crumbsClone.slice(count - 1 - resolvedBoundaryCount, crumbsClone.length);
|
|
12
|
+
const siblingsStart = Math.max(Math.min(activeCrumb - siblingCount, count - boundaryCount - siblingCount * 2 - 1), boundaryCount + 2);
|
|
13
|
+
const siblingsEnd = Math.min(Math.max(activeCrumb + siblingCount, boundaryCount + siblingCount * 2 + 2), endPages.length > 0 ? count - 1 - endPages.length : count - 1);
|
|
14
|
+
console.log("siblingsStart", siblingsStart);
|
|
15
|
+
console.log("siblingsEnd", siblingsEnd);
|
|
16
|
+
const itemList = [];
|
|
17
|
+
// Start pages
|
|
18
|
+
itemList.push(...startPages);
|
|
19
|
+
// Ellipsis after start pages
|
|
20
|
+
if (siblingsStart > boundaryCount + 2) {
|
|
21
|
+
itemList.push("ellipsis");
|
|
22
|
+
}
|
|
23
|
+
else if (boundaryCount + 1 < count - boundaryCount) {
|
|
24
|
+
itemList.push(crumbs[boundaryCount + 1]);
|
|
25
|
+
}
|
|
26
|
+
// Middle pages
|
|
27
|
+
for (let i = siblingsStart; i <= siblingsEnd; i++) {
|
|
28
|
+
itemList.push(crumbs[i]);
|
|
29
|
+
}
|
|
30
|
+
// Ellipsis before end pages
|
|
31
|
+
if (siblingsEnd < count - 1 - boundaryCount) {
|
|
32
|
+
itemList.push("ellipsis");
|
|
33
|
+
}
|
|
34
|
+
else if (count - boundaryCount > boundaryCount) {
|
|
35
|
+
itemList.push(crumbs[count - boundaryCount]);
|
|
36
|
+
}
|
|
37
|
+
const endPagesFiltered = endPages.filter((p) => !itemList.includes(p));
|
|
38
|
+
console.log("endPagesFiltered", endPagesFiltered);
|
|
39
|
+
itemList.push(...endPagesFiltered);
|
|
40
|
+
return itemList;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { useBreadcrumbs };
|
|
44
|
+
//# sourceMappingURL=useBreadcrumbs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBreadcrumbs.js","sources":["../../../src/Navigation/Breadcrumbs/useBreadcrumbs.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\n\nexport function useBreadcrumbs({\n activeCrumb,\n crumbs,\n siblingCount = 0,\n boundaryCount = 1,\n}: {\n activeCrumb: number;\n crumbs: ReactElement[];\n siblingCount?: number;\n boundaryCount?: number;\n}) {\n const crumbsClone = Array.from(crumbs);\n const count = crumbs.length;\n if (count <= boundaryCount * 2 + siblingCount * 2 + 2) {\n // If total items fit without ellipsis, just return all crumbs\n return crumbsClone;\n }\n const resolvedBoundaryCount = Math.min(boundaryCount, count);\n\n console.log(\"crumbs\", crumbsClone);\n\n const startPages = crumbsClone.slice(0, resolvedBoundaryCount + 1);\n const endPages = crumbsClone.slice(\n count - 1 - resolvedBoundaryCount,\n crumbsClone.length,\n );\n\n const siblingsStart = Math.max(\n Math.min(\n activeCrumb - siblingCount,\n count - boundaryCount - siblingCount * 2 - 1,\n ),\n boundaryCount + 2,\n );\n const siblingsEnd = Math.min(\n Math.max(activeCrumb + siblingCount, boundaryCount + siblingCount * 2 + 2),\n endPages.length > 0 ? count - 1 - endPages.length : count - 1,\n );\n\n console.log(\"siblingsStart\", siblingsStart);\n console.log(\"siblingsEnd\", siblingsEnd);\n\n const itemList: (ReactElement | \"ellipsis\")[] = [];\n\n // Start pages\n itemList.push(...startPages);\n\n // Ellipsis after start pages\n if (siblingsStart > boundaryCount + 2) {\n itemList.push(\"ellipsis\");\n } else if (boundaryCount + 1 < count - boundaryCount) {\n itemList.push(crumbs[boundaryCount + 1]);\n }\n // Middle pages\n for (let i = siblingsStart; i <= siblingsEnd; i++) {\n itemList.push(crumbs[i]);\n }\n\n // Ellipsis before end pages\n if (siblingsEnd < count - 1 - boundaryCount) {\n itemList.push(\"ellipsis\");\n } else if (count - boundaryCount > boundaryCount) {\n itemList.push(crumbs[count - boundaryCount]);\n }\n\n const endPagesFiltered = endPages.filter((p) => !itemList.includes(p));\n console.log(\"endPagesFiltered\", endPagesFiltered);\n\n itemList.push(...endPagesFiltered);\n\n return itemList;\n}\n"],"names":[],"mappings":"AAEM,SAAU,cAAc,CAAC,EAC7B,WAAW,EACX,MAAM,EACN,YAAY,GAAG,CAAC,EAChB,aAAa,GAAG,CAAC,GAMlB,EAAA;IACC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;AAC3B,IAAA,IAAI,KAAK,IAAI,aAAa,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,EAAE;;AAErD,QAAA,OAAO,WAAW;IACpB;IACA,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;AAE5D,IAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC;AAElC,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,GAAG,CAAC,CAAC;AAClE,IAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAChC,KAAK,GAAG,CAAC,GAAG,qBAAqB,EACjC,WAAW,CAAC,MAAM,CACnB;AAED,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,IAAI,CAAC,GAAG,CACN,WAAW,GAAG,YAAY,EAC1B,KAAK,GAAG,aAAa,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,CAC7C,EACD,aAAa,GAAG,CAAC,CAClB;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,aAAa,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,EAC1E,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAC9D;AAED,IAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC;AAC3C,IAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;IAEvC,MAAM,QAAQ,GAAkC,EAAE;;AAGlD,IAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;;AAG5B,IAAA,IAAI,aAAa,GAAG,aAAa,GAAG,CAAC,EAAE;AACrC,QAAA,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3B;SAAO,IAAI,aAAa,GAAG,CAAC,GAAG,KAAK,GAAG,aAAa,EAAE;QACpD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC1C;;AAEA,IAAA,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE;QACjD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1B;;IAGA,IAAI,WAAW,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,EAAE;AAC3C,QAAA,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3B;AAAO,SAAA,IAAI,KAAK,GAAG,aAAa,GAAG,aAAa,EAAE;QAChD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC;IAC9C;AAEA,IAAA,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtE,IAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAEjD,IAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;AAElC,IAAA,OAAO,QAAQ;AACjB;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from "react";
|
|
2
|
+
import { type PaginationItemProps } from "./PaginationItem";
|
|
3
|
+
export interface PaginationProps {
|
|
4
|
+
/**
|
|
5
|
+
* Total number of pages
|
|
6
|
+
*/
|
|
7
|
+
count: number;
|
|
8
|
+
/**
|
|
9
|
+
* For controlled Pagination pass the state
|
|
10
|
+
*/
|
|
11
|
+
page?: number;
|
|
12
|
+
/**
|
|
13
|
+
* For controlled Pagination pass the onChange function
|
|
14
|
+
*/
|
|
15
|
+
onChange?: (pageNumber: number) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Page that will be selected by default
|
|
18
|
+
* @default 1
|
|
19
|
+
*/
|
|
20
|
+
defaultPage?: number;
|
|
21
|
+
/**
|
|
22
|
+
* How many siblings of the active item should be shown
|
|
23
|
+
* @default 1
|
|
24
|
+
*/
|
|
25
|
+
siblingCount?: number;
|
|
26
|
+
/**
|
|
27
|
+
* How many of the boundary items should be shown
|
|
28
|
+
* @default 1
|
|
29
|
+
*/
|
|
30
|
+
boundaryCount?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Function that can be used to modify the rendered PaginationItem component
|
|
33
|
+
*/
|
|
34
|
+
renderItem?: (props: PaginationItemProps, key?: string | number) => ReactElement;
|
|
35
|
+
/**
|
|
36
|
+
* Shows the skip to first button
|
|
37
|
+
*/
|
|
38
|
+
showFirstButton?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Shows the skip to last button
|
|
41
|
+
*/
|
|
42
|
+
showLastButton?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Icon for first button and the last button icon which will be 180deg
|
|
45
|
+
*/
|
|
46
|
+
firstLastButtonIcon?: ReactNode;
|
|
47
|
+
/**
|
|
48
|
+
* Icon for prev button and the next button icon which will be 180deg
|
|
49
|
+
*/
|
|
50
|
+
prevNextButtonIcon?: ReactNode;
|
|
51
|
+
}
|
|
52
|
+
export declare function Pagination(props: PaginationProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import styles from './Pagination.module.css.js';
|
|
5
|
+
import { usePagination } from './usePagination.js';
|
|
6
|
+
import { PaginationItem } from './PaginationItem.js';
|
|
7
|
+
import { cn } from '@studiocubics/utils';
|
|
8
|
+
|
|
9
|
+
const arrowLeftIcon = (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-arrow-left-icon lucide-arrow-left", children: [jsx("path", { d: "m12 19-7-7 7-7" }), jsx("path", { d: "M19 12H5" })] }));
|
|
10
|
+
const ArrowLeftToLineIcon = (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-arrow-left-to-line-icon lucide-arrow-left-to-line", children: [jsx("path", { d: "M3 19V5" }), jsx("path", { d: "m13 6-6 6 6 6" }), jsx("path", { d: "M7 12h14" })] }));
|
|
11
|
+
function Pagination(props) {
|
|
12
|
+
const { count, page: pageProp, onChange, defaultPage = 1, boundaryCount = 1, siblingCount = 1, showFirstButton = true, showLastButton = true, firstLastButtonIcon = ArrowLeftToLineIcon, prevNextButtonIcon = arrowLeftIcon, renderItem = (props, key) => jsx(PaginationItem, { ...props }, key), } = props;
|
|
13
|
+
const [page, setPage] = useState(defaultPage);
|
|
14
|
+
const activePage = pageProp ?? page;
|
|
15
|
+
const paginationRange = usePagination({
|
|
16
|
+
count,
|
|
17
|
+
page: activePage,
|
|
18
|
+
siblingCount,
|
|
19
|
+
boundaryCount,
|
|
20
|
+
});
|
|
21
|
+
function renderIconButton({ disabled, onClick, icon, }) {
|
|
22
|
+
return renderItem({
|
|
23
|
+
className: cn(styles.item, styles.icon, disabled ? styles.disabled : ""),
|
|
24
|
+
onClick: !disabled ? onClick : undefined,
|
|
25
|
+
children: icon,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function handleClick(i) {
|
|
29
|
+
if (i < 1 || i > count)
|
|
30
|
+
return;
|
|
31
|
+
setPage(i);
|
|
32
|
+
if (onChange)
|
|
33
|
+
onChange(i);
|
|
34
|
+
}
|
|
35
|
+
return (jsxs("ul", { className: styles.root, children: [showFirstButton &&
|
|
36
|
+
renderIconButton({
|
|
37
|
+
disabled: activePage === 1,
|
|
38
|
+
onClick: () => handleClick(1),
|
|
39
|
+
icon: firstLastButtonIcon,
|
|
40
|
+
}), renderIconButton({
|
|
41
|
+
disabled: activePage === 1,
|
|
42
|
+
onClick: () => handleClick(activePage - 1),
|
|
43
|
+
icon: prevNextButtonIcon,
|
|
44
|
+
}), paginationRange.map((item, idx) => item === "ellipses" ? (jsx("li", { children: "\u2026" }, `dots-${idx}`)) : (renderItem({
|
|
45
|
+
className: cn(styles.item, activePage === item ? styles.activeItem : ""),
|
|
46
|
+
onClick: () => handleClick(item),
|
|
47
|
+
children: item,
|
|
48
|
+
}, item))), renderIconButton({
|
|
49
|
+
disabled: activePage === count,
|
|
50
|
+
onClick: () => handleClick(activePage + 1),
|
|
51
|
+
icon: prevNextButtonIcon,
|
|
52
|
+
}), showLastButton &&
|
|
53
|
+
renderIconButton({
|
|
54
|
+
disabled: activePage === count,
|
|
55
|
+
onClick: () => handleClick(count),
|
|
56
|
+
icon: firstLastButtonIcon,
|
|
57
|
+
})] }));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { Pagination };
|
|
61
|
+
//# sourceMappingURL=Pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../src/Navigation/Pagination/Pagination.tsx"],"sourcesContent":["\"use client\";\nimport { useState, type ReactElement, type ReactNode } from \"react\";\nimport styles from \"./Pagination.module.css\";\nimport { usePagination } from \"./usePagination\";\nimport { type PaginationItemProps, PaginationItem } from \"./PaginationItem\";\nimport { cn } from \"@studiocubics/utils\";\n\nexport interface PaginationProps {\n /**\n * Total number of pages\n */\n count: number;\n /**\n * For controlled Pagination pass the state\n */\n page?: number;\n /**\n * For controlled Pagination pass the onChange function\n */\n onChange?: (pageNumber: number) => void;\n /**\n * Page that will be selected by default\n * @default 1\n */\n defaultPage?: number;\n /**\n * How many siblings of the active item should be shown\n * @default 1\n */\n siblingCount?: number;\n /**\n * How many of the boundary items should be shown\n * @default 1\n */\n boundaryCount?: number;\n /**\n * Function that can be used to modify the rendered PaginationItem component\n */\n renderItem?: (\n props: PaginationItemProps,\n key?: string | number\n ) => ReactElement;\n /**\n * Shows the skip to first button\n */\n showFirstButton?: boolean;\n /**\n * Shows the skip to last button\n */\n showLastButton?: boolean;\n /**\n * Icon for first button and the last button icon which will be 180deg\n */\n firstLastButtonIcon?: ReactNode;\n /**\n * Icon for prev button and the next button icon which will be 180deg\n */\n prevNextButtonIcon?: ReactNode;\n}\nconst arrowLeftIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-arrow-left-icon lucide-arrow-left\"\n >\n <path d=\"m12 19-7-7 7-7\" />\n <path d=\"M19 12H5\" />\n </svg>\n);\nconst ArrowLeftToLineIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-arrow-left-to-line-icon lucide-arrow-left-to-line\"\n >\n <path d=\"M3 19V5\" />\n <path d=\"m13 6-6 6 6 6\" />\n <path d=\"M7 12h14\" />\n </svg>\n);\nexport function Pagination(props: PaginationProps) {\n const {\n count,\n page: pageProp,\n onChange,\n defaultPage = 1,\n boundaryCount = 1,\n siblingCount = 1,\n showFirstButton = true,\n showLastButton = true,\n firstLastButtonIcon = ArrowLeftToLineIcon,\n prevNextButtonIcon = arrowLeftIcon,\n renderItem = (props, key?) => <PaginationItem key={key} {...props} />,\n } = props;\n\n const [page, setPage] = useState(defaultPage);\n const activePage = pageProp ?? page;\n\n const paginationRange = usePagination({\n count,\n page: activePage,\n siblingCount,\n boundaryCount,\n });\n\n function renderIconButton({\n disabled,\n onClick,\n icon,\n }: {\n disabled: boolean;\n onClick: () => void;\n icon: React.ReactNode;\n }) {\n return renderItem({\n className: cn(styles.item, styles.icon, disabled ? styles.disabled : \"\"),\n onClick: !disabled ? onClick : undefined,\n children: icon,\n });\n }\n\n function handleClick(i: number) {\n if (i < 1 || i > count) return;\n setPage(i);\n if (onChange) onChange(i);\n }\n\n return (\n <ul className={styles.root}>\n {showFirstButton &&\n renderIconButton({\n disabled: activePage === 1,\n onClick: () => handleClick(1),\n icon: firstLastButtonIcon,\n })}\n {renderIconButton({\n disabled: activePage === 1,\n onClick: () => handleClick(activePage - 1),\n icon: prevNextButtonIcon,\n })}\n\n {paginationRange.map((item, idx) =>\n item === \"ellipses\" ? (\n <li key={`dots-${idx}`}>…</li>\n ) : (\n renderItem(\n {\n className: cn(\n styles.item,\n activePage === item ? styles.activeItem : \"\"\n ),\n onClick: () => handleClick(item),\n children: item,\n },\n item\n )\n )\n )}\n {renderIconButton({\n disabled: activePage === count,\n onClick: () => handleClick(activePage + 1),\n icon: prevNextButtonIcon,\n })}\n\n {showLastButton &&\n renderIconButton({\n disabled: activePage === count,\n onClick: () => handleClick(count),\n icon: firstLastButtonIcon,\n })}\n </ul>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var styles = {"root":"Pagination-module_root__at76F","item":"Pagination-module_item__2GFks","disabled":"Pagination-module_disabled__KG8Cb","activeItem":"Pagination-module_activeItem__BVg0A","icon":"Pagination-module_icon__OcxQW"};
|
|
2
|
+
|
|
3
|
+
export { styles as default };
|
|
4
|
+
//# sourceMappingURL=Pagination.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PolymorphicComponentProps, PolymorphicComponentType } from "@studiocubics/types";
|
|
2
|
+
import { type ElementType } from "react";
|
|
3
|
+
interface PaginationItemBaseProps {
|
|
4
|
+
to?: "string";
|
|
5
|
+
}
|
|
6
|
+
export type PaginationItemProps<C extends ElementType = "li"> = PolymorphicComponentProps<C, PaginationItemBaseProps>;
|
|
7
|
+
export declare const PaginationItem: PolymorphicComponentType<PaginationItemBaseProps, "li">;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import 'react';
|
|
4
|
+
|
|
5
|
+
const PaginationItemBase = (props) => {
|
|
6
|
+
const { to, as, children, ...rest } = props;
|
|
7
|
+
const Component = (as || to ? "a" : "li");
|
|
8
|
+
return jsx(Component, { ...rest, children: children });
|
|
9
|
+
};
|
|
10
|
+
PaginationItemBase.displayName = "PaginationItem";
|
|
11
|
+
const PaginationItem = PaginationItemBase;
|
|
12
|
+
|
|
13
|
+
export { PaginationItem };
|
|
14
|
+
//# sourceMappingURL=PaginationItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaginationItem.js","sources":["../../../src/Navigation/Pagination/PaginationItem.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n PolymorphicComponentProps,\n PolymorphicComponentType,\n} from \"@studiocubics/types\";\nimport { type ElementType } from \"react\";\n\ninterface PaginationItemBaseProps {\n to?: \"string\";\n}\n\nexport type PaginationItemProps<C extends ElementType = \"li\"> =\n PolymorphicComponentProps<C, PaginationItemBaseProps>;\n\nconst PaginationItemBase = <C extends ElementType = \"button\">(\n props: PaginationItemProps<C>\n) => {\n const { to, as, children, ...rest } = props;\n const Component = (as || to ? \"a\" : \"li\") as ElementType;\n return <Component {...rest}>{children}</Component>;\n};\n\nPaginationItemBase.displayName = \"PaginationItem\";\nexport const PaginationItem = PaginationItemBase as PolymorphicComponentType<\n PaginationItemBaseProps,\n \"li\"\n>;\n"],"names":["_jsx"],"mappings":";;;;AAeA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CACzB,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAA,CAAA,CAAA,CAAA,CAC3B;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAE,CAAA,CAAE,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAgB;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,EAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAa;AACpD,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,cAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
function usePagination({ count, page, siblingCount = 1, boundaryCount = 1, }) {
|
|
2
|
+
const startPages = Array.from({ length: Math.min(boundaryCount, count) }, (_, i) => i + 1);
|
|
3
|
+
const endPages = Array.from({ length: Math.min(boundaryCount, count) }, (_, i) => count - i).reverse();
|
|
4
|
+
// siblingsStart determines the first page number in the sibling range:
|
|
5
|
+
// - Math.min ensures we don't go beyond the range where siblings would overlap with end pages.
|
|
6
|
+
// - Math.max ensures we don't go below the first possible sibling after the boundary pages.
|
|
7
|
+
const siblingsStart = Math.max(Math.min(page - siblingCount, count - boundaryCount - siblingCount * 2 - 1), boundaryCount + 2);
|
|
8
|
+
// The upper bound ensures siblings do not overlap with end pages; if endPages exist, use the first end page minus 2, otherwise use count - 1.
|
|
9
|
+
const siblingsEnd = Math.min(Math.max(page + siblingCount, boundaryCount + siblingCount * 2 + 2), endPages.length > 0 ? endPages[0] - 2 : count - 1);
|
|
10
|
+
const itemList = [];
|
|
11
|
+
// Start pages
|
|
12
|
+
itemList.push(...startPages);
|
|
13
|
+
// Ellipses after start pages
|
|
14
|
+
if (siblingsStart > boundaryCount + 2) {
|
|
15
|
+
itemList.push("ellipses");
|
|
16
|
+
}
|
|
17
|
+
else if (boundaryCount + 1 < count - boundaryCount) {
|
|
18
|
+
itemList.push(boundaryCount + 1);
|
|
19
|
+
}
|
|
20
|
+
// Middle pages
|
|
21
|
+
for (let i = siblingsStart; i <= siblingsEnd; i++) {
|
|
22
|
+
itemList.push(i);
|
|
23
|
+
}
|
|
24
|
+
// Ellipses before end pages
|
|
25
|
+
if (siblingsEnd < count - boundaryCount - 1) {
|
|
26
|
+
itemList.push("ellipses");
|
|
27
|
+
}
|
|
28
|
+
else if (count - boundaryCount > boundaryCount) {
|
|
29
|
+
itemList.push(count - boundaryCount);
|
|
30
|
+
}
|
|
31
|
+
// End pages
|
|
32
|
+
const endPagesFiltered = endPages.filter((p) => !itemList.includes(p));
|
|
33
|
+
itemList.push(...endPagesFiltered);
|
|
34
|
+
return itemList;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { usePagination };
|
|
38
|
+
//# sourceMappingURL=usePagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePagination.js","sources":["../../../src/Navigation/Pagination/usePagination.tsx"],"sourcesContent":["export function usePagination({\n count,\n page,\n siblingCount = 1,\n boundaryCount = 1,\n}: {\n count: number;\n page: number;\n siblingCount?: number;\n boundaryCount?: number;\n}) {\n const startPages = Array.from(\n { length: Math.min(boundaryCount, count) },\n (_, i) => i + 1\n );\n\n const endPages = Array.from(\n { length: Math.min(boundaryCount, count) },\n (_, i) => count - i\n ).reverse();\n\n // siblingsStart determines the first page number in the sibling range:\n // - Math.min ensures we don't go beyond the range where siblings would overlap with end pages.\n // - Math.max ensures we don't go below the first possible sibling after the boundary pages.\n const siblingsStart = Math.max(\n Math.min(page - siblingCount, count - boundaryCount - siblingCount * 2 - 1),\n boundaryCount + 2\n );\n\n // The upper bound ensures siblings do not overlap with end pages; if endPages exist, use the first end page minus 2, otherwise use count - 1.\n const siblingsEnd = Math.min(\n Math.max(page + siblingCount, boundaryCount + siblingCount * 2 + 2),\n endPages.length > 0 ? endPages[0] - 2 : count - 1\n );\n\n const itemList: (number | \"ellipses\")[] = [];\n\n // Start pages\n itemList.push(...startPages);\n\n // Ellipses after start pages\n if (siblingsStart > boundaryCount + 2) {\n itemList.push(\"ellipses\");\n } else if (boundaryCount + 1 < count - boundaryCount) {\n itemList.push(boundaryCount + 1);\n }\n\n // Middle pages\n for (let i = siblingsStart; i <= siblingsEnd; i++) {\n itemList.push(i);\n }\n\n // Ellipses before end pages\n if (siblingsEnd < count - boundaryCount - 1) {\n itemList.push(\"ellipses\");\n } else if (count - boundaryCount > boundaryCount) {\n itemList.push(count - boundaryCount);\n }\n\n // End pages\n const endPagesFiltered = endPages.filter((p) => !itemList.includes(p));\n itemList.push(...endPagesFiltered);\n\n return itemList;\n}\n"],"names":[],"mappings":"AAAM,SAAU,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,YAAY,GAAG,CAAC,EAChB,aAAa,GAAG,CAAC,GAMlB,EAAA;AACC,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAC1C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAChB;AAED,IAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAC1C,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,CACpB,CAAC,OAAO,EAAE;;;;AAKX,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,EAAE,KAAK,GAAG,aAAa,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,EAC3E,aAAa,GAAG,CAAC,CAClB;;IAGD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,EAAE,aAAa,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,EACnE,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAClD;IAED,MAAM,QAAQ,GAA4B,EAAE;;AAG5C,IAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;;AAG5B,IAAA,IAAI,aAAa,GAAG,aAAa,GAAG,CAAC,EAAE;AACrC,QAAA,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3B;SAAO,IAAI,aAAa,GAAG,CAAC,GAAG,KAAK,GAAG,aAAa,EAAE;AACpD,QAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAClC;;AAGA,IAAA,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE;AACjD,QAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAClB;;IAGA,IAAI,WAAW,GAAG,KAAK,GAAG,aAAa,GAAG,CAAC,EAAE;AAC3C,QAAA,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3B;AAAO,SAAA,IAAI,KAAK,GAAG,aAAa,GAAG,aAAa,EAAE;AAChD,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;IACtC;;AAGA,IAAA,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtE,IAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;AAElC,IAAA,OAAO,QAAQ;AACjB;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ComponentProps, type ElementType, type ReactNode } from "react";
|
|
2
|
+
import type { PolymorphicComponentProps, PolymorphicComponentType } from "@studiocubics/types";
|
|
3
|
+
/**
|
|
4
|
+
* Props specific to the Tab component.
|
|
5
|
+
*
|
|
6
|
+
* These extend the intrinsic element props of whatever element is passed via `as`.
|
|
7
|
+
* @group Tab
|
|
8
|
+
* @category inputs
|
|
9
|
+
*/
|
|
10
|
+
export interface TabBaseProps {
|
|
11
|
+
selected?: boolean;
|
|
12
|
+
startIcon?: ReactNode;
|
|
13
|
+
endIcon?: ReactNode;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
href?: ComponentProps<"a">["href"];
|
|
16
|
+
slotProps?: {
|
|
17
|
+
startIcon?: ComponentProps<"span">;
|
|
18
|
+
endIcon?: ComponentProps<"span">;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
declare const defaultElement = "button";
|
|
22
|
+
type DefaultElement = typeof defaultElement;
|
|
23
|
+
/**
|
|
24
|
+
* Polymorphic props for the Tab component.
|
|
25
|
+
*
|
|
26
|
+
* `C` defines the element type rendered by the component (e.g. `"Tab"`, `"a"`, `"div"`).
|
|
27
|
+
* All intrinsic props for `C` are supported unless overridden by `TabBaseProps`.
|
|
28
|
+
*
|
|
29
|
+
* @group Tab
|
|
30
|
+
* @category inputs
|
|
31
|
+
*/
|
|
32
|
+
export type TabProps<C extends ElementType = DefaultElement> = PolymorphicComponentProps<C, TabBaseProps>;
|
|
33
|
+
/**
|
|
34
|
+
* A polymorphic Tab component.
|
|
35
|
+
*
|
|
36
|
+
* By default it renders a `<Tab>`, but any element can be used via the `as` prop:
|
|
37
|
+
*
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <Tab as="a" href="/docs">Read docs</Tab>
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @group Tab
|
|
43
|
+
* @category inputs
|
|
44
|
+
*/
|
|
45
|
+
export declare const Tab: PolymorphicComponentType<TabBaseProps, DefaultElement>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useRef, useEffect } from 'react';
|
|
4
|
+
import styles from './Tab.module.css.js';
|
|
5
|
+
import { useTabs } from '../Tabs.js';
|
|
6
|
+
import { mergeRefs, cn } from '@studiocubics/utils';
|
|
7
|
+
|
|
8
|
+
const defaultElement = "button";
|
|
9
|
+
/**
|
|
10
|
+
* Base implementation for the Tab component.
|
|
11
|
+
*
|
|
12
|
+
* This is a polymorphic component that defaults to rendering a `<Tab>`.
|
|
13
|
+
* Use the `as` prop to change the underlying element.
|
|
14
|
+
*
|
|
15
|
+
* @typeParam C - The intrinsic or custom element type to render.
|
|
16
|
+
*
|
|
17
|
+
* @group Tab
|
|
18
|
+
* @category inputs
|
|
19
|
+
*/
|
|
20
|
+
function TabBase(props) {
|
|
21
|
+
const { as, className, selected: _selected, startIcon, endIcon, disabled, href, onClick, onTouchStart, children, slotProps = {}, ref, ...restProps } = props;
|
|
22
|
+
const { activeTab, setActiveTab } = useTabs();
|
|
23
|
+
const tabRef = useRef(null);
|
|
24
|
+
const clickable = !disabled && (!!href || !!onClick);
|
|
25
|
+
const selected = tabRef.current != null ? activeTab == tabRef.current : false;
|
|
26
|
+
const Component = (as || defaultElement);
|
|
27
|
+
function handleClick(e) {
|
|
28
|
+
if (disabled)
|
|
29
|
+
return;
|
|
30
|
+
if (tabRef.current)
|
|
31
|
+
tabRef.current.scrollIntoView({
|
|
32
|
+
block: "nearest",
|
|
33
|
+
inline: "center",
|
|
34
|
+
behavior: "smooth",
|
|
35
|
+
});
|
|
36
|
+
setActiveTab(tabRef.current);
|
|
37
|
+
if (onClick)
|
|
38
|
+
onClick(e);
|
|
39
|
+
}
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (_selected)
|
|
42
|
+
setActiveTab(tabRef.current);
|
|
43
|
+
}, [_selected]);
|
|
44
|
+
const componentProps = {
|
|
45
|
+
className: cn(className, styles.root, selected ? styles.selected : undefined, clickable ? styles.clickable : undefined, disabled ? styles.disabled : undefined),
|
|
46
|
+
onClick: handleClick,
|
|
47
|
+
disabled,
|
|
48
|
+
href: disabled ? "" : href,
|
|
49
|
+
ref: mergeRefs(ref, tabRef),
|
|
50
|
+
...restProps,
|
|
51
|
+
};
|
|
52
|
+
return (jsxs(Component, { ...componentProps, children: [startIcon && (jsx("span", { ...slotProps.startIcon, className: cn(styles.iconContainer, slotProps.startIcon?.className), children: startIcon })), children, endIcon && (jsx("span", { ...slotProps.endIcon, className: cn(styles.iconContainer, slotProps.endIcon?.className), children: endIcon }))] }));
|
|
53
|
+
}
|
|
54
|
+
TabBase.displayName = "Tab";
|
|
55
|
+
/**
|
|
56
|
+
* A polymorphic Tab component.
|
|
57
|
+
*
|
|
58
|
+
* By default it renders a `<Tab>`, but any element can be used via the `as` prop:
|
|
59
|
+
*
|
|
60
|
+
* ```tsx
|
|
61
|
+
* <Tab as="a" href="/docs">Read docs</Tab>
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @group Tab
|
|
65
|
+
* @category inputs
|
|
66
|
+
*/
|
|
67
|
+
const Tab = TabBase;
|
|
68
|
+
|
|
69
|
+
export { Tab };
|
|
70
|
+
//# sourceMappingURL=Tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tab.js","sources":["../../../../src/Navigation/Tabs/Tab/Tab.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentProps,\n type ElementType,\n type ReactNode,\n useEffect,\n useRef,\n type MouseEvent,\n} from \"react\";\nimport styles from \"./Tab.module.css\";\nimport { useTabs } from \"../Tabs\";\nimport { cn, mergeRefs } from \"@studiocubics/utils\";\nimport type {\n PolymorphicComponentProps,\n PolymorphicComponentType,\n} from \"@studiocubics/types\";\n\n/**\n * Props specific to the Tab component.\n *\n * These extend the intrinsic element props of whatever element is passed via `as`.\n * @group Tab\n * @category inputs\n */\nexport interface TabBaseProps {\n selected?: boolean;\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n disabled?: boolean;\n href?: ComponentProps<\"a\">[\"href\"];\n slotProps?: {\n startIcon?: ComponentProps<\"span\">;\n endIcon?: ComponentProps<\"span\">;\n };\n}\nconst defaultElement = \"button\";\ntype DefaultElement = typeof defaultElement;\n/**\n * Polymorphic props for the Tab component.\n *\n * `C` defines the element type rendered by the component (e.g. `\"Tab\"`, `\"a\"`, `\"div\"`).\n * All intrinsic props for `C` are supported unless overridden by `TabBaseProps`.\n *\n * @group Tab\n * @category inputs\n */\nexport type TabProps<C extends ElementType = DefaultElement> =\n PolymorphicComponentProps<C, TabBaseProps>;\n\n/**\n * Base implementation for the Tab component.\n *\n * This is a polymorphic component that defaults to rendering a `<Tab>`.\n * Use the `as` prop to change the underlying element.\n *\n * @typeParam C - The intrinsic or custom element type to render.\n *\n * @group Tab\n * @category inputs\n */\nfunction TabBase<C extends ElementType = DefaultElement>(props: TabProps<C>) {\n const {\n as,\n className,\n selected: _selected,\n startIcon,\n endIcon,\n disabled,\n href,\n onClick,\n onTouchStart,\n children,\n slotProps = {},\n ref,\n ...restProps\n } = props;\n const { activeTab, setActiveTab } = useTabs();\n const tabRef = useRef<HTMLButtonElement>(null);\n\n const clickable = !disabled && (!!href || !!onClick);\n const selected = tabRef.current != null ? activeTab == tabRef.current : false;\n const Component = (as || defaultElement) as ElementType;\n\n function handleClick(e: MouseEvent<HTMLButtonElement>) {\n if (disabled) return;\n if (tabRef.current)\n tabRef.current.scrollIntoView({\n block: \"nearest\",\n inline: \"center\",\n behavior: \"smooth\",\n });\n setActiveTab(tabRef.current);\n if (onClick) onClick(e);\n }\n\n useEffect(() => {\n if (_selected) setActiveTab(tabRef.current);\n }, [_selected]);\n\n const componentProps = {\n className: cn(\n className,\n styles.root,\n selected ? styles.selected : undefined,\n clickable ? styles.clickable : undefined,\n disabled ? styles.disabled : undefined,\n ),\n onClick: handleClick,\n disabled,\n href: disabled ? \"\" : href,\n ref: mergeRefs(ref, tabRef),\n ...restProps,\n };\n\n return (\n <Component {...componentProps}>\n {startIcon && (\n <span\n {...slotProps.startIcon}\n className={cn(styles.iconContainer, slotProps.startIcon?.className)}\n >\n {startIcon}\n </span>\n )}\n {children}\n {endIcon && (\n <span\n {...slotProps.endIcon}\n className={cn(styles.iconContainer, slotProps.endIcon?.className)}\n >\n {endIcon}\n </span>\n )}\n </Component>\n );\n}\nTabBase.displayName = \"Tab\";\n\n/**\n * A polymorphic Tab component.\n *\n * By default it renders a `<Tab>`, but any element can be used via the `as` prop:\n *\n * ```tsx\n * <Tab as=\"a\" href=\"/docs\">Read docs</Tab>\n * ```\n *\n * @group Tab\n * @category inputs\n */\nexport const Tab = TabBase as PolymorphicComponentType<\n TabBaseProps,\n DefaultElement\n>;\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var styles = {"root":"Tab-module_root__ySv89","clickable":"Tab-module_clickable__d8Iy-","selected":"Tab-module_selected__vToav","disabled":"Tab-module_disabled__Leret","iconContainer":"Tab-module_iconContainer__-SQ6s"};
|
|
2
|
+
|
|
3
|
+
export { styles as default };
|
|
4
|
+
//# sourceMappingURL=Tab.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tab.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SetState } from "@studiocubics/types";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
interface TabsContextProps {
|
|
4
|
+
activeTab: HTMLButtonElement | null;
|
|
5
|
+
setActiveTab: SetState<HTMLButtonElement | null>;
|
|
6
|
+
}
|
|
7
|
+
export interface TabsProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare function useTabs(): TabsContextProps;
|
|
11
|
+
export declare function Tabs(props: TabsProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|