From 282789c0191f136a064693d754b581ec8e111585 Mon Sep 17 00:00:00 2001 From: Michael Brusegard <56915010+michaelbrusegard@users.noreply.github.com> Date: Fri, 30 Aug 2024 00:04:13 +0200 Subject: [PATCH] fix: icon names and imports --- src/app/[locale]/(default)/layout.tsx | 3 +- .../(default)/news/(header)/layout.tsx | 4 +- src/app/[locale]/(default)/storage/layout.tsx | 8 ++-- src/app/[locale]/(default)/storage/page.tsx | 12 +++--- src/app/[locale]/layout.tsx | 8 ++-- .../icons/{Facebook.tsx => FacebookIcon.tsx} | 4 +- .../icons/{Github.tsx => GitHubIcon.tsx} | 4 +- .../{Instagram.tsx => InstagramIcon.tsx} | 4 +- .../assets/icons/{Slack.tsx => SlackIcon.tsx} | 4 +- src/components/assets/icons/index.tsx | 4 ++ src/components/assets/sponsors/index.tsx | 2 + src/components/layout/Footer.tsx | 37 +++++++++--------- src/components/layout/Header.tsx | 3 +- src/components/layout/LogoLink.tsx | 8 ++-- src/components/layout/MobileSheet.tsx | 7 ++-- src/components/layout/Nav.tsx | 3 +- src/components/layout/PaginationCarousel.tsx | 7 +--- .../layout/PaginationCarouselSkeleton.tsx | 4 +- src/components/news/ArticleCard.tsx | 9 ++--- src/components/news/ArticleItem.tsx | 8 ++-- src/components/news/CardGrid.tsx | 4 +- src/components/news/CardGridSkeleton.tsx | 6 +-- src/components/news/InternalBadge.tsx | 10 ++--- src/components/news/ItemGrid.tsx | 3 +- src/components/news/ItemGridSkeleton.tsx | 3 +- src/components/profile/AvatarIcon.tsx | 3 +- src/components/settings/DarkModeMenu.tsx | 11 +++--- src/components/settings/ProfileMenu.tsx | 7 ++-- src/components/ui/Avatar.tsx | 3 +- src/components/ui/Badge.tsx | 3 +- src/components/ui/Button.tsx | 3 +- src/components/ui/Card.tsx | 3 +- src/components/ui/Combobox.tsx | 12 +++--- src/components/ui/Command.tsx | 10 ++--- src/components/ui/Dialog.tsx | 7 ++-- src/components/ui/DropdownMenu.tsx | 8 ++-- src/components/ui/Pagination.tsx | 18 +++++---- src/components/ui/Popover.tsx | 3 +- src/components/ui/SearchBar.tsx | 7 ++-- src/components/ui/Select.tsx | 13 +++---- src/components/ui/Separator.tsx | 3 +- src/components/ui/Sheet.tsx | 7 ++-- src/components/ui/Tooltip.tsx | 3 +- src/lib/config.ts | 39 ------------------- src/server/db/schema.ts | 2 - src/server/db/schema/index.ts | 2 + 46 files changed, 128 insertions(+), 208 deletions(-) rename src/components/assets/icons/{Facebook.tsx => FacebookIcon.tsx} (81%) rename src/components/assets/icons/{Github.tsx => GitHubIcon.tsx} (87%) rename src/components/assets/icons/{Instagram.tsx => InstagramIcon.tsx} (84%) rename src/components/assets/icons/{Slack.tsx => SlackIcon.tsx} (89%) create mode 100644 src/components/assets/icons/index.tsx create mode 100644 src/components/assets/sponsors/index.tsx delete mode 100644 src/lib/config.ts delete mode 100644 src/server/db/schema.ts create mode 100644 src/server/db/schema/index.ts diff --git a/src/app/[locale]/(default)/layout.tsx b/src/app/[locale]/(default)/layout.tsx index ac6416d..c01ad96 100644 --- a/src/app/[locale]/(default)/layout.tsx +++ b/src/app/[locale]/(default)/layout.tsx @@ -1,8 +1,7 @@ -import { unstable_setRequestLocale } from 'next-intl/server'; - import { Footer } from '@/components/layout/Footer'; import { Header } from '@/components/layout/Header'; import { Main } from '@/components/layout/Main'; +import { unstable_setRequestLocale } from 'next-intl/server'; type DefaultLayoutProps = { children: React.ReactNode; diff --git a/src/app/[locale]/(default)/news/(header)/layout.tsx b/src/app/[locale]/(default)/news/(header)/layout.tsx index 3b11d0b..feebab9 100644 --- a/src/app/[locale]/(default)/news/(header)/layout.tsx +++ b/src/app/[locale]/(default)/news/(header)/layout.tsx @@ -1,4 +1,4 @@ -import { SquarePen } from 'lucide-react'; +import { SquarePenIcon } from 'lucide-react'; import { useTranslations } from 'next-intl'; import { unstable_setRequestLocale } from 'next-intl/server'; @@ -23,7 +23,7 @@ export default function NewsHeaderLayout({

{t('title')}

diff --git a/src/app/[locale]/(default)/storage/layout.tsx b/src/app/[locale]/(default)/storage/layout.tsx index c941e8f..0a81eae 100644 --- a/src/app/[locale]/(default)/storage/layout.tsx +++ b/src/app/[locale]/(default)/storage/layout.tsx @@ -1,14 +1,12 @@ -import { useTranslations } from 'next-intl'; - import { Button } from '@/components/ui/Button'; - import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from '@/components/ui/Tooltip'; -import { ShoppingCart } from 'lucide-react'; +import { ShoppingCartIcon } from 'lucide-react'; +import { useTranslations } from 'next-intl'; export default function StorageLayout({ children, @@ -25,7 +23,7 @@ export default function StorageLayout({ diff --git a/src/app/[locale]/(default)/storage/page.tsx b/src/app/[locale]/(default)/storage/page.tsx index 26128df..a8bcba8 100644 --- a/src/app/[locale]/(default)/storage/page.tsx +++ b/src/app/[locale]/(default)/storage/page.tsx @@ -1,14 +1,7 @@ -import { items } from '@/mock-data/items'; -import { useTranslations } from 'next-intl'; -import { getTranslations, unstable_setRequestLocale } from 'next-intl/server'; -import Image from 'next/image'; -import { createSearchParamsCache, parseAsInteger } from 'nuqs/parsers'; - import { PaginationCarousel } from '@/components/layout/PaginationCarousel'; import { Button } from '@/components/ui/Button'; import { Card, - CardContent, CardDescription, CardFooter, CardHeader, @@ -23,6 +16,11 @@ import { SelectTrigger, SelectValue, } from '@/components/ui/Select'; +import { items } from '@/mock-data/items'; +import { useTranslations } from 'next-intl'; +import { getTranslations, unstable_setRequestLocale } from 'next-intl/server'; +import Image from 'next/image'; +import { createSearchParamsCache, parseAsInteger } from 'nuqs/parsers'; export async function generateMetadata({ params: { locale }, diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx index 0b30d93..fdfa2c5 100644 --- a/src/app/[locale]/layout.tsx +++ b/src/app/[locale]/layout.tsx @@ -1,10 +1,8 @@ -import { getTranslations, unstable_setRequestLocale } from 'next-intl/server'; -import { Inter, Montserrat } from 'next/font/google'; - +import { RootProviders } from '@/components/providers/RootProviders'; import { routing } from '@/lib/locale'; import { cx } from '@/lib/utils'; - -import { RootProviders } from '@/components/providers/RootProviders'; +import { getTranslations, unstable_setRequestLocale } from 'next-intl/server'; +import { Inter, Montserrat } from 'next/font/google'; type LocaleLayoutProps = { children: React.ReactNode; diff --git a/src/components/assets/icons/Facebook.tsx b/src/components/assets/icons/FacebookIcon.tsx similarity index 81% rename from src/components/assets/icons/Facebook.tsx rename to src/components/assets/icons/FacebookIcon.tsx index dd534e3..5b7aa7b 100644 --- a/src/components/assets/icons/Facebook.tsx +++ b/src/components/assets/icons/FacebookIcon.tsx @@ -1,4 +1,4 @@ -function Facebook({ className, ...rest }: { className?: string }) { +function FacebookIcon({ className, ...rest }: { className?: string }) { return ( - + @@ -67,7 +66,7 @@ function Footer() { target='_blank' rel='noopener noreferrer' > - + @@ -80,7 +79,7 @@ function Footer() { target='_blank' rel='noopener noreferrer' > - + @@ -93,7 +92,7 @@ function Footer() { target='_blank' rel='noopener noreferrer' > - + @@ -106,7 +105,7 @@ function Footer() { target='_blank' rel='noopener noreferrer' > - + @@ -130,7 +129,7 @@ function Footer() { {t('signIn')}
- {t('haveYouFoundA')} ? + {t('haveYouFoundA')} ?
{t.rich('utilitiesDescription', { code: (children) => ( @@ -142,7 +141,7 @@ function Footer() { href='mailto:hackerspace-dev@idi.ntnu.no' aria-label={t('sendAnEmail')} > - + ), diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx index adb8fec..c81eba8 100644 --- a/src/components/layout/Header.tsx +++ b/src/components/layout/Header.tsx @@ -1,11 +1,10 @@ -import { useTranslations } from 'next-intl'; - import { LogoLink } from '@/components/layout/LogoLink'; import { MobileSheet } from '@/components/layout/MobileSheet'; import { Nav } from '@/components/layout/Nav'; import { DarkModeMenu } from '@/components/settings/DarkModeMenu'; import { LocaleMenu } from '@/components/settings/LocaleMenu'; import { ProfileMenu } from '@/components/settings/ProfileMenu'; +import { useTranslations } from 'next-intl'; function Header() { const t = useTranslations('layout'); diff --git a/src/components/layout/LogoLink.tsx b/src/components/layout/LogoLink.tsx index 0448fd9..23018e8 100644 --- a/src/components/layout/LogoLink.tsx +++ b/src/components/layout/LogoLink.tsx @@ -1,10 +1,8 @@ -import { useTranslations } from 'next-intl'; - -import { Link } from '@/lib/locale/navigation'; -import { cx } from '@/lib/utils'; - import { Logo } from '@/components/assets/Logo'; import { Button } from '@/components/ui/Button'; +import { Link } from '@/lib/locale/navigation'; +import { cx } from '@/lib/utils'; +import { useTranslations } from 'next-intl'; function LogoLink({ className, diff --git a/src/components/layout/MobileSheet.tsx b/src/components/layout/MobileSheet.tsx index 2f0dc3c..12eddbd 100644 --- a/src/components/layout/MobileSheet.tsx +++ b/src/components/layout/MobileSheet.tsx @@ -1,8 +1,5 @@ 'use client'; -import { Menu } from 'lucide-react'; -import * as React from 'react'; - import { LogoLink } from '@/components/layout/LogoLink'; import { Nav } from '@/components/layout/Nav'; import { Button } from '@/components/ui/Button'; @@ -13,6 +10,8 @@ import { SheetTitle, SheetTrigger, } from '@/components/ui/Sheet'; +import { MenuIcon } from 'lucide-react'; +import * as React from 'react'; type MobileSheetProps = { className?: string; @@ -36,7 +35,7 @@ function MobileSheet({ className, t }: MobileSheetProps) { size='icon' aria-label={t.navigationMenu} > - + diff --git a/src/components/layout/Nav.tsx b/src/components/layout/Nav.tsx index 568373b..3164282 100644 --- a/src/components/layout/Nav.tsx +++ b/src/components/layout/Nav.tsx @@ -1,6 +1,5 @@ -import { Link } from '@/lib/locale/navigation'; - import { Button } from '@/components/ui/Button'; +import { Link } from '@/lib/locale/navigation'; type NavProps = { className?: string; diff --git a/src/components/layout/PaginationCarousel.tsx b/src/components/layout/PaginationCarousel.tsx index 7ff6326..bdc222c 100644 --- a/src/components/layout/PaginationCarousel.tsx +++ b/src/components/layout/PaginationCarousel.tsx @@ -1,9 +1,5 @@ 'use client'; -import { parseAsInteger, useQueryState } from 'nuqs'; - -import { cx } from '@/lib/utils'; - import { Pagination, PaginationContent, @@ -13,7 +9,8 @@ import { PaginationNext, PaginationPrevious, } from '@/components/ui/Pagination'; - +import { cx } from '@/lib/utils'; +import { parseAsInteger, useQueryState } from 'nuqs'; type PaginationCarouselProps = { className?: string; totalPages: number; diff --git a/src/components/layout/PaginationCarouselSkeleton.tsx b/src/components/layout/PaginationCarouselSkeleton.tsx index 3021e21..9e55181 100644 --- a/src/components/layout/PaginationCarouselSkeleton.tsx +++ b/src/components/layout/PaginationCarouselSkeleton.tsx @@ -1,5 +1,3 @@ -import { useTranslations } from 'next-intl'; - import { Pagination, PaginationContent, @@ -8,7 +6,7 @@ import { PaginationNext, PaginationPrevious, } from '@/components/ui/Pagination'; - +import { useTranslations } from 'next-intl'; type PaginationCarouselSkeletonProps = { className?: string; }; diff --git a/src/components/news/ArticleCard.tsx b/src/components/news/ArticleCard.tsx index 957b646..041f2ee 100644 --- a/src/components/news/ArticleCard.tsx +++ b/src/components/news/ArticleCard.tsx @@ -1,8 +1,3 @@ -import Image from 'next/image'; - -import { Link } from '@/lib/locale/navigation'; -import { cx } from '@/lib/utils'; - import { InternalBadge } from '@/components/news/InternalBadge'; import { Button } from '@/components/ui/Button'; import { @@ -11,7 +6,9 @@ import { CardHeader, CardTitle, } from '@/components/ui/Card'; - +import { Link } from '@/lib/locale/navigation'; +import { cx } from '@/lib/utils'; +import Image from 'next/image'; type ArticleCardProps = { className?: string; id: number; diff --git a/src/components/news/ArticleItem.tsx b/src/components/news/ArticleItem.tsx index 314fcdc..b1c774a 100644 --- a/src/components/news/ArticleItem.tsx +++ b/src/components/news/ArticleItem.tsx @@ -1,10 +1,8 @@ -import Image from 'next/image'; - -import { Link } from '@/lib/locale/navigation'; -import { cx } from '@/lib/utils'; - import { InternalBadge } from '@/components/news/InternalBadge'; import { Button } from '@/components/ui/Button'; +import { Link } from '@/lib/locale/navigation'; +import { cx } from '@/lib/utils'; +import Image from 'next/image'; type ArticleItemProps = { className?: string; diff --git a/src/components/news/CardGrid.tsx b/src/components/news/CardGrid.tsx index dc4b9db..46156cd 100644 --- a/src/components/news/CardGrid.tsx +++ b/src/components/news/CardGrid.tsx @@ -1,7 +1,5 @@ -import { cx } from '@/lib/utils'; - import { ArticleCard } from '@/components/news/ArticleCard'; - +import { cx } from '@/lib/utils'; type CardGridProps = { topArticles: { id: number; diff --git a/src/components/news/CardGridSkeleton.tsx b/src/components/news/CardGridSkeleton.tsx index 699fe5a..09a1392 100644 --- a/src/components/news/CardGridSkeleton.tsx +++ b/src/components/news/CardGridSkeleton.tsx @@ -1,8 +1,6 @@ -import * as React from 'react'; - -import { cx } from '@/lib/utils'; - import { Skeleton } from '@/components/ui/Skeleton'; +import { cx } from '@/lib/utils'; +import * as React from 'react'; function CardGridSkeleton() { return ( diff --git a/src/components/news/InternalBadge.tsx b/src/components/news/InternalBadge.tsx index 1eac30b..e2f0932 100644 --- a/src/components/news/InternalBadge.tsx +++ b/src/components/news/InternalBadge.tsx @@ -1,8 +1,3 @@ -import { ShieldAlert } from 'lucide-react'; -import { useTranslations } from 'next-intl'; - -import { cx } from '@/lib/utils'; - import { Button } from '@/components/ui/Button'; import { Tooltip, @@ -10,6 +5,9 @@ import { TooltipProvider, TooltipTrigger, } from '@/components/ui/Tooltip'; +import { cx } from '@/lib/utils'; +import { ShieldAlertIcon } from 'lucide-react'; +import { useTranslations } from 'next-intl'; type InternalBadgeProps = { className?: string; @@ -33,7 +31,7 @@ function InternalBadge({ className, internal }: InternalBadgeProps) { size='xs-icon' > - + diff --git a/src/components/news/ItemGrid.tsx b/src/components/news/ItemGrid.tsx index 2a8a359..6a610f6 100644 --- a/src/components/news/ItemGrid.tsx +++ b/src/components/news/ItemGrid.tsx @@ -1,6 +1,5 @@ -import { articleMockData as articleData } from '@/mock-data/article'; - import { ArticleItem } from '@/components/news/ArticleItem'; +import { articleMockData as articleData } from '@/mock-data/article'; type ItemGridProps = { page: number; diff --git a/src/components/news/ItemGridSkeleton.tsx b/src/components/news/ItemGridSkeleton.tsx index 03567e1..51f4699 100644 --- a/src/components/news/ItemGridSkeleton.tsx +++ b/src/components/news/ItemGridSkeleton.tsx @@ -1,6 +1,5 @@ -import * as React from 'react'; - import { ArticleItemSkeleton } from '@/components/news/ArticleItemSkeleton'; +import * as React from 'react'; function ItemGridSkeleton() { return ( diff --git a/src/components/profile/AvatarIcon.tsx b/src/components/profile/AvatarIcon.tsx index 8925682..03a8e0c 100644 --- a/src/components/profile/AvatarIcon.tsx +++ b/src/components/profile/AvatarIcon.tsx @@ -1,6 +1,5 @@ -import Image from 'next/image'; - import { Avatar, AvatarFallback } from '@/components/ui/Avatar'; +import Image from 'next/image'; type AvatarIconProps = { className?: string; diff --git a/src/components/settings/DarkModeMenu.tsx b/src/components/settings/DarkModeMenu.tsx index ba1212b..09ea3ed 100644 --- a/src/components/settings/DarkModeMenu.tsx +++ b/src/components/settings/DarkModeMenu.tsx @@ -1,9 +1,5 @@ 'use client'; -import { Moon, Sun } from 'lucide-react'; -import { useTheme } from 'next-themes'; -import * as React from 'react'; - import { Button } from '@/components/ui/Button'; import { DropdownMenu, @@ -11,6 +7,9 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/DropdownMenu'; +import { MoonIcon, SunIcon } from 'lucide-react'; +import { useTheme } from 'next-themes'; +import * as React from 'react'; type DarkModeMenuProps = { t: { @@ -28,8 +27,8 @@ function DarkModeMenu({ t }: DarkModeMenuProps) { diff --git a/src/components/settings/ProfileMenu.tsx b/src/components/settings/ProfileMenu.tsx index 2a092ed..446f65e 100644 --- a/src/components/settings/ProfileMenu.tsx +++ b/src/components/settings/ProfileMenu.tsx @@ -1,8 +1,5 @@ 'use client'; -import { User } from 'lucide-react'; -import * as React from 'react'; - import { Button } from '@/components/ui/Button'; import { DropdownMenu, @@ -10,6 +7,8 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/DropdownMenu'; +import { UserIcon } from 'lucide-react'; +import * as React from 'react'; function ProfileMenu({ t }: { t: { profile: string; signIn: string } }) { // TODO: User Icon Color should only have the primary color when logged in @@ -17,7 +16,7 @@ function ProfileMenu({ t }: { t: { profile: string; signIn: string } }) { diff --git a/src/components/ui/Avatar.tsx b/src/components/ui/Avatar.tsx index 6aa1374..a9166d5 100644 --- a/src/components/ui/Avatar.tsx +++ b/src/components/ui/Avatar.tsx @@ -1,10 +1,9 @@ 'use client'; +import { cx } from '@/lib/utils'; import * as AvatarPrimitive from '@radix-ui/react-avatar'; import * as React from 'react'; -import { cx } from '@/lib/utils'; - const Avatar = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef diff --git a/src/components/ui/Badge.tsx b/src/components/ui/Badge.tsx index 1a4e2d4..c84e389 100644 --- a/src/components/ui/Badge.tsx +++ b/src/components/ui/Badge.tsx @@ -1,6 +1,5 @@ -import type * as React from 'react'; - import { type VariantProps, cva, cx } from '@/lib/utils'; +import type * as React from 'react'; const badgeVariants = cva({ base: 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', diff --git a/src/components/ui/Button.tsx b/src/components/ui/Button.tsx index 46e2c08..0a34580 100644 --- a/src/components/ui/Button.tsx +++ b/src/components/ui/Button.tsx @@ -1,8 +1,7 @@ +import { type VariantProps, cva } from '@/lib/utils'; import { Slot } from '@radix-ui/react-slot'; import * as React from 'react'; -import { type VariantProps, cva } from '@/lib/utils'; - const buttonVariants = cva({ base: 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', variants: { diff --git a/src/components/ui/Card.tsx b/src/components/ui/Card.tsx index 0682009..0479465 100644 --- a/src/components/ui/Card.tsx +++ b/src/components/ui/Card.tsx @@ -1,6 +1,5 @@ -import * as React from 'react'; - import { cx } from '@/lib/utils'; +import * as React from 'react'; const Card = React.forwardRef< HTMLDivElement, diff --git a/src/components/ui/Combobox.tsx b/src/components/ui/Combobox.tsx index 9fe99fe..57a4b93 100644 --- a/src/components/ui/Combobox.tsx +++ b/src/components/ui/Combobox.tsx @@ -1,10 +1,5 @@ 'use client'; -import { Check, ChevronsUpDown } from 'lucide-react'; -import * as React from 'react'; - -import { cx } from '@/lib/utils'; - import { Button } from '@/components/ui/Button'; import { Command, @@ -19,6 +14,9 @@ import { PopoverContent, PopoverTrigger, } from '@/components/ui/Popover'; +import { cx } from '@/lib/utils'; +import { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'; +import * as React from 'react'; type ComboboxProps = { choices: { @@ -53,7 +51,7 @@ function Combobox({ {value ? choices.find((choice) => choice.value === value)?.label : defaultDescription} - + @@ -71,7 +69,7 @@ function Combobox({ setOpen(false); }} > - , React.ComponentPropsWithoutRef @@ -43,7 +41,7 @@ const CommandInput = React.forwardRef< React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => (
- + {children} - + Close diff --git a/src/components/ui/DropdownMenu.tsx b/src/components/ui/DropdownMenu.tsx index de391cc..c7daf18 100644 --- a/src/components/ui/DropdownMenu.tsx +++ b/src/components/ui/DropdownMenu.tsx @@ -1,7 +1,7 @@ 'use client'; import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; -import { Check, ChevronRight, Circle } from 'lucide-react'; +import { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'; import * as React from 'react'; import { cx } from '@/lib/utils'; @@ -34,7 +34,7 @@ const DropdownMenuSubTrigger = React.forwardRef< {...props} > {children} - + )); DropdownMenuSubTrigger.displayName = @@ -107,7 +107,7 @@ const DropdownMenuCheckboxItem = React.forwardRef< > - + {children} @@ -130,7 +130,7 @@ const DropdownMenuRadioItem = React.forwardRef< > - + {children} diff --git a/src/components/ui/Pagination.tsx b/src/components/ui/Pagination.tsx index ffbcc6f..64cd132 100644 --- a/src/components/ui/Pagination.tsx +++ b/src/components/ui/Pagination.tsx @@ -1,9 +1,11 @@ -import { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react'; -import * as React from 'react'; - -import { cx } from '@/lib/utils'; - import { type ButtonProps, buttonVariants } from '@/components/ui/Button'; +import { cx } from '@/lib/utils'; +import { + ChevronLeftIcon, + ChevronRightIcon, + MoreHorizontalIcon, +} from 'lucide-react'; +import * as React from 'react'; const Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (