diff --git a/src/app/(centered)/auth/login/login-card.tsx b/src/app/(centered)/auth/login/login-card.tsx
index fec2895..16bb602 100644
--- a/src/app/(centered)/auth/login/login-card.tsx
+++ b/src/app/(centered)/auth/login/login-card.tsx
@@ -1,6 +1,9 @@
'use client';
-import { Button, Card, CardBody, CardHeader, Divider, Input } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Card, CardBody, CardHeader } from '@nextui-org/card';
+import { Divider } from '@nextui-org/divider';
+import { Input } from '@nextui-org/input';
import { BackButton } from '@/components/back-button';
import { ArrowLeftIcon } from '@heroicons/react/24/outline';
import Link from 'next/link';
diff --git a/src/app/(centered)/auth/register/register-card.tsx b/src/app/(centered)/auth/register/register-card.tsx
index fe7c372..35e6815 100644
--- a/src/app/(centered)/auth/register/register-card.tsx
+++ b/src/app/(centered)/auth/register/register-card.tsx
@@ -1,6 +1,9 @@
'use client';
-import { Button, Card, CardBody, CardHeader, Divider, Input } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Card, CardBody, CardHeader } from '@nextui-org/card';
+import { Divider } from '@nextui-org/divider';
+import { Input } from '@nextui-org/input';
import { BackButton } from '@/components/back-button';
import { ArrowLeftIcon } from '@heroicons/react/24/outline';
import Link from 'next/link';
diff --git a/src/app/(with-header)/admin/system-config/system-config.tsx b/src/app/(with-header)/admin/system-config/system-config.tsx
index b4d4a5d..e6d6fc0 100644
--- a/src/app/(with-header)/admin/system-config/system-config.tsx
+++ b/src/app/(with-header)/admin/system-config/system-config.tsx
@@ -4,7 +4,11 @@ import { setGlobalConfig } from '@/actions/config';
import { useErrorModal } from '@/components/error-modal';
import { GlobalConfig } from '@/config';
import { USER_PERMISSION_NAMES, UserPermissions } from '@/types/permissions';
-import { Button, Checkbox, Divider, Input, Select, SelectItem } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Checkbox } from '@nextui-org/checkbox';
+import { Divider } from '@nextui-org/divider';
+import { Input } from '@nextui-org/input';
+import { SelectItem, Select } from '@nextui-org/select';
import { useState } from 'react';
type SystemConfigProps = {
diff --git a/src/app/(with-header)/admin/users/admin-user-list.tsx b/src/app/(with-header)/admin/users/admin-user-list.tsx
index 3b2134e..c5b2981 100644
--- a/src/app/(with-header)/admin/users/admin-user-list.tsx
+++ b/src/app/(with-header)/admin/users/admin-user-list.tsx
@@ -4,7 +4,12 @@ import { createUserWithAccessCode, deleteUser, setUserPermissions } from '@/acti
import { PermissionEditModal } from '@/components/permission-edit-modal';
import { useEffect, useState } from 'react';
import { USER_PERMISSION_NAMES, UserPermissions } from '@/types/permissions';
-import { Button, Divider, Tooltip, Input, Accordion, AccordionItem, Spacer } from '@nextui-org/react';
+import { AccordionItem, Accordion } from '@nextui-org/accordion';
+import { Button } from '@nextui-org/button';
+import { Divider } from '@nextui-org/divider';
+import { Input } from '@nextui-org/input';
+import { Spacer } from '@nextui-org/spacer';
+import { Tooltip } from '@nextui-org/tooltip';
import { ChevronDownIcon, CreditCardIcon, PencilSquareIcon, PlusIcon } from '@heroicons/react/24/outline';
import { usePromptModal } from '@/components/prompt-modal';
import { useUser } from '@/helpers/use-user';
diff --git a/src/app/(with-header)/arcade/[arcadeId]/arcade.tsx b/src/app/(with-header)/arcade/[arcadeId]/arcade.tsx
index 4b3a490..f755b3a 100644
--- a/src/app/(with-header)/arcade/[arcadeId]/arcade.tsx
+++ b/src/app/(with-header)/arcade/[arcadeId]/arcade.tsx
@@ -2,7 +2,12 @@
import { Arcade, ArcadeCab, ArcadeLink, ArcadeUser } from '@/data/arcade';
import { JoinPrivacy } from '@/types/privacy-visibility';
-import { Autocomplete, AutocompleteItem, Button, Divider, Input, Select, SelectItem, Tooltip } from '@nextui-org/react';
+import { Autocomplete, AutocompleteItem } from '@nextui-org/autocomplete';
+import { Button } from '@nextui-org/button';
+import { Divider } from '@nextui-org/divider';
+import { Input } from '@nextui-org/input';
+import { SelectItem, Select } from '@nextui-org/select';
+import { Tooltip } from '@nextui-org/tooltip';
import { LinkIcon, PencilIcon, PencilSquareIcon, PlusIcon, UserMinusIcon, UserPlusIcon } from '@heroicons/react/24/outline';
import { useRef, useState } from 'react';
import { useUser } from '@/helpers/use-user';
diff --git a/src/app/(with-header)/arcade/[arcadeId]/cab.tsx b/src/app/(with-header)/arcade/[arcadeId]/cab.tsx
index 373e2ba..fe52a52 100644
--- a/src/app/(with-header)/arcade/[arcadeId]/cab.tsx
+++ b/src/app/(with-header)/arcade/[arcadeId]/cab.tsx
@@ -5,7 +5,12 @@ import { useConfirmModal } from '@/components/confirm-modal';
import { useUser } from '@/helpers/use-user';
import { hasArcadePermission } from '@/helpers/permissions';
import { ArcadePermissions } from '@/types/permissions';
-import { Autocomplete, AutocompleteItem, Button, Checkbox, Input, Select, SelectItem, Textarea, Tooltip } from '@nextui-org/react';
+import { Autocomplete, AutocompleteItem } from '@nextui-org/autocomplete';
+import { Button } from '@nextui-org/button';
+import { Checkbox } from '@nextui-org/checkbox';
+import { Textarea, Input } from '@nextui-org/input';
+import { SelectItem, Select } from '@nextui-org/select';
+import { Tooltip } from '@nextui-org/tooltip';
import { ArrowPathIcon, PencilIcon, TrashIcon } from '@heroicons/react/24/outline';
import { createMachine, deleteMachine, updateMachine } from '@/actions/machine';
import { useRef, useState } from 'react';
diff --git a/src/app/(with-header)/arcade/create-arcade-button.tsx b/src/app/(with-header)/arcade/create-arcade-button.tsx
index 9bec24c..f6116f8 100644
--- a/src/app/(with-header)/arcade/create-arcade-button.tsx
+++ b/src/app/(with-header)/arcade/create-arcade-button.tsx
@@ -1,6 +1,7 @@
'use client';
-import { Button, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Tooltip } from '@nextui-org/tooltip';
import { createArcade } from '@/actions/arcade';
import { PlusIcon } from '@heroicons/react/24/outline';
import { useUser } from '@/helpers/use-user';
diff --git a/src/app/(with-header)/arcade/page.tsx b/src/app/(with-header)/arcade/page.tsx
index cfe5437..4bfa393 100644
--- a/src/app/(with-header)/arcade/page.tsx
+++ b/src/app/(with-header)/arcade/page.tsx
@@ -1,6 +1,7 @@
import { Arcade, getArcades } from '@/data/arcade';
import { getUser } from '@/actions/auth';
-import { Divider, Tooltip } from '@nextui-org/react';
+import { Divider } from '@nextui-org/divider';
+import { Tooltip } from '@nextui-org/tooltip';
import { UserGroupIcon } from '@heroicons/react/24/outline';
import Link from 'next/link';
import { CreateArcadeButton } from './create-arcade-button';
diff --git a/src/app/(with-header)/chuni/dashboard/page.tsx b/src/app/(with-header)/chuni/dashboard/page.tsx
index 4cd9a4d..f79ad1b 100644
--- a/src/app/(with-header)/chuni/dashboard/page.tsx
+++ b/src/app/(with-header)/chuni/dashboard/page.tsx
@@ -4,7 +4,7 @@ import { ChuniPlaylogCard } from '@/components/chuni/playlog-card';
import { getUserData, getUserRating } from '@/actions/chuni/profile';
import { requireUser } from '@/actions/auth';
import { ChuniTopRatingSidebar } from './top-rating-sidebar';
-import { Button } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
import Link from 'next/link';
import { ChuniNoProfile } from '@/components/chuni/no-profile';
diff --git a/src/app/(with-header)/chuni/dashboard/top-rating-sidebar.tsx b/src/app/(with-header)/chuni/dashboard/top-rating-sidebar.tsx
index 28e8729..d13396a 100644
--- a/src/app/(with-header)/chuni/dashboard/top-rating-sidebar.tsx
+++ b/src/app/(with-header)/chuni/dashboard/top-rating-sidebar.tsx
@@ -3,7 +3,7 @@
import { ChuniTopRating } from './top-rating';
import { getUserRating } from '@/actions/chuni/profile';
import { useState } from 'react';
-import { Button, ButtonGroup } from '@nextui-org/react';
+import { ButtonGroup, Button } from '@nextui-org/button';
import { useBreakpoint } from '@/helpers/use-breakpoint';
import { BigDecimal } from '@/helpers/big-decimal';
import { ChuniRating } from '@/components/chuni/rating';
diff --git a/src/app/(with-header)/chuni/dashboard/top-rating.tsx b/src/app/(with-header)/chuni/dashboard/top-rating.tsx
index ed4c0f4..6c27336 100644
--- a/src/app/(with-header)/chuni/dashboard/top-rating.tsx
+++ b/src/app/(with-header)/chuni/dashboard/top-rating.tsx
@@ -4,7 +4,7 @@ import { ChuniRating } from '@/components/chuni/rating';
import { floorToDp } from '@/helpers/floor-dp';
import { ChuniScoreBadge, getVariantFromScore } from '@/components/chuni/score-badge';
import { ChuniDifficultyContainer } from '@/components/chuni/difficulty-container';
-import { Tooltip } from '@nextui-org/react';
+import { Tooltip } from '@nextui-org/tooltip';
import { ChuniLevelBadge } from '@/components/chuni/level-badge';
import Link from 'next/link';
import Image from 'next/image';
diff --git a/src/app/(with-header)/chuni/music/[musicId]/music-detail.tsx b/src/app/(with-header)/chuni/music/[musicId]/music-detail.tsx
index bf32dec..9930ed9 100644
--- a/src/app/(with-header)/chuni/music/[musicId]/music-detail.tsx
+++ b/src/app/(with-header)/chuni/music/[musicId]/music-detail.tsx
@@ -6,7 +6,7 @@ import { MusicPlayer } from '@/components/music-player';
import { getJacketUrl, getMusicUrl } from '@/helpers/assets';
import { Ticker } from '@/components/ticker';
import { ChuniMusicPlaylog } from './music-playlog';
-import { Button } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
import { HeartIcon as SolidHeartIcon } from '@heroicons/react/24/solid';
import { HeartIcon as OutlineHeartIcon } from '@heroicons/react/24/outline';
import { useState } from 'react';
diff --git a/src/app/(with-header)/chuni/music/[musicId]/music-playlog.tsx b/src/app/(with-header)/chuni/music/[musicId]/music-playlog.tsx
index 3625426..aa98588 100644
--- a/src/app/(with-header)/chuni/music/[musicId]/music-playlog.tsx
+++ b/src/app/(with-header)/chuni/music/[musicId]/music-playlog.tsx
@@ -2,7 +2,7 @@
import { ChuniMusic } from '@/actions/chuni/music';
import { ChuniPlaylog } from '@/actions/chuni/playlog';
-import { Accordion, AccordionItem } from '@nextui-org/react';
+import { Accordion, AccordionItem } from '@nextui-org/accordion';
import { CHUNI_DIFFICULTIES } from '@/helpers/chuni/difficulties';
import { ChuniLevelBadge } from '@/components/chuni/level-badge';
import { ChuniRating } from '@/components/chuni/rating';
diff --git a/src/app/(with-header)/chuni/music/music-list.tsx b/src/app/(with-header)/chuni/music/music-list.tsx
index 65b1793..ffa941d 100644
--- a/src/app/(with-header)/chuni/music/music-list.tsx
+++ b/src/app/(with-header)/chuni/music/music-list.tsx
@@ -1,7 +1,7 @@
'use client'
import { FilterSorter, Sorter } from '@/components/filter-sorter';
-import { Button } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
import { addFavoriteMusic, ChuniMusic, removeFavoriteMusic } from '@/actions/chuni/music';
import { useState } from 'react';
import { ChuniDifficultyContainer } from '@/components/chuni/difficulty-container';
diff --git a/src/app/(with-header)/chuni/playlog/page.tsx b/src/app/(with-header)/chuni/playlog/page.tsx
index 2485579..009d4ef 100644
--- a/src/app/(with-header)/chuni/playlog/page.tsx
+++ b/src/app/(with-header)/chuni/playlog/page.tsx
@@ -2,7 +2,7 @@
import { CHUNI_FILTER_DIFFICULTY, CHUNI_FILTER_GENRE, CHUNI_FILTER_LAMP, CHUNI_FILTER_LEVEL, CHUNI_FILTER_RATING, CHUNI_FILTER_SCORE, CHUNI_FILTER_WORLDS_END_STARS, CHUNI_FILTER_WORLDS_END_TAG, getLevelValFromStop } from '@/helpers/chuni/filter';
import { FilterField, FilterSorter } from '@/components/filter-sorter';
-import { SelectItem } from '@nextui-org/react';
+import { SelectItem } from '@nextui-org/select';
import { ChuniMusic } from '@/actions/chuni/music';
import { ArrayIndices } from 'type-fest';
import { ChuniPlaylog, getPlaylog } from '@/actions/chuni/playlog';
diff --git a/src/app/(with-header)/chuni/userbox/userbox.tsx b/src/app/(with-header)/chuni/userbox/userbox.tsx
index 6fe46ac..f31aeaf 100644
--- a/src/app/(with-header)/chuni/userbox/userbox.tsx
+++ b/src/app/(with-header)/chuni/userbox/userbox.tsx
@@ -3,7 +3,10 @@
import { ChuniUserData, ProfileUpdate, updateProfile } from '@/actions/chuni/profile';
import { UserboxItems } from '@/actions/chuni/userbox';
import { ChuniNameplate } from '@/components/chuni/nameplate';
-import { Button, Checkbox, Divider, Select, SelectItem } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Checkbox } from '@nextui-org/checkbox';
+import { Divider } from '@nextui-org/divider';
+import { SelectItem, Select } from '@nextui-org/select';
import { SelectModalButton } from '@/components/select-modal';
import { ChuniTrophy } from '@/components/chuni/trophy';
import { getAudioUrl, getImageUrl } from '@/helpers/assets';
diff --git a/src/app/(with-header)/dashboard/dashboard.tsx b/src/app/(with-header)/dashboard/dashboard.tsx
index 227f345..0c0ae96 100644
--- a/src/app/(with-header)/dashboard/dashboard.tsx
+++ b/src/app/(with-header)/dashboard/dashboard.tsx
@@ -12,7 +12,11 @@ import { UserPayload } from '@/types/user';
import { ChuniUserData } from '@/actions/chuni/profile';
import { ChuniNoProfile } from '@/components/chuni/no-profile';
import { useUser } from '@/helpers/use-user';
-import { Button, Card, CardBody, Divider, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Card, CardBody } from '@nextui-org/card';
+import { Divider } from '@nextui-org/divider';
+import { DropdownItem, DropdownTrigger, Dropdown, DropdownMenu } from '@nextui-org/dropdown';
+import { Tooltip } from '@nextui-org/tooltip';
import { ChuniAvatar } from '@/components/chuni/avatar';
import { Entries, IsEqual } from 'type-fest';
import { ChevronRightIcon, ChevronLeftIcon, DevicePhoneMobileIcon, PencilIcon, SquaresPlusIcon, XMarkIcon } from '@heroicons/react/24/outline';
diff --git a/src/app/(with-header)/friends/friend-row.tsx b/src/app/(with-header)/friends/friend-row.tsx
index f9586e2..628db14 100644
--- a/src/app/(with-header)/friends/friend-row.tsx
+++ b/src/app/(with-header)/friends/friend-row.tsx
@@ -1,4 +1,8 @@
-import { Avatar, Button, Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Divider, Tooltip } from '@nextui-org/react';
+import { Avatar } from '@nextui-org/avatar';
+import { Button } from '@nextui-org/button';
+import { Divider } from '@nextui-org/divider';
+import { DropdownItem, DropdownTrigger, Dropdown, DropdownMenu } from '@nextui-org/dropdown';
+import { Tooltip } from '@nextui-org/tooltip';
import { Friend } from '@/data/friend';
import Link from 'next/link';
import { ChuniPenguinIcon } from '@/components/chuni/chuni-penguin-icon';
diff --git a/src/app/(with-header)/friends/friends.tsx b/src/app/(with-header)/friends/friends.tsx
index 5e044ec..5de75e5 100644
--- a/src/app/(with-header)/friends/friends.tsx
+++ b/src/app/(with-header)/friends/friends.tsx
@@ -1,7 +1,7 @@
'use client';
import { Friend } from '@/data/friend';
-import { Divider } from '@nextui-org/react';
+import { Divider } from '@nextui-org/divider';
import { useState } from 'react';
import { FriendRow } from './friend-row';
diff --git a/src/app/(with-header)/header-sidebar.tsx b/src/app/(with-header)/header-sidebar.tsx
index 8468901..1e4c453 100644
--- a/src/app/(with-header)/header-sidebar.tsx
+++ b/src/app/(with-header)/header-sidebar.tsx
@@ -1,6 +1,13 @@
'use client';
-import { Avatar, Badge, Button, Divider, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger, Navbar, Popover, PopoverContent, PopoverTrigger, Tooltip } from '@nextui-org/react';
+import { Avatar } from '@nextui-org/avatar';
+import { Badge } from '@nextui-org/badge';
+import { Button } from '@nextui-org/button';
+import { Divider } from '@nextui-org/divider';
+import { DropdownItem, DropdownTrigger, Dropdown, DropdownMenu } from '@nextui-org/dropdown';
+import { Navbar } from '@nextui-org/navbar';
+import { PopoverTrigger, Popover, PopoverContent } from '@nextui-org/popover';
+import { Tooltip } from '@nextui-org/tooltip';
import { Bars3Icon, ChevronLeftIcon, XMarkIcon } from '@heroicons/react/20/solid';
import { Fragment, RefCallback, useCallback, useEffect, useMemo, useRef, useState } from 'react';
import Link from 'next/link';
diff --git a/src/app/(with-header)/loading.tsx b/src/app/(with-header)/loading.tsx
index 66eb589..3ae2001 100644
--- a/src/app/(with-header)/loading.tsx
+++ b/src/app/(with-header)/loading.tsx
@@ -1,4 +1,4 @@
-import { Spinner } from '@nextui-org/react';
+import { Spinner } from '@nextui-org/spinner';
export default function Loading() {
return (
diff --git a/src/app/(with-header)/settings/cards.tsx b/src/app/(with-header)/settings/cards.tsx
index e22a446..2e2a320 100644
--- a/src/app/(with-header)/settings/cards.tsx
+++ b/src/app/(with-header)/settings/cards.tsx
@@ -2,7 +2,9 @@
import { DB } from '@/types/db';
import { AimeCard } from '@/components/aime-card';
-import { Button, Divider, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Divider } from '@nextui-org/divider';
+import { Tooltip } from '@nextui-org/tooltip';
import { PlusIcon } from '@heroicons/react/24/outline';
import { usePromptModal } from '@/components/prompt-modal';
import { promptAccessCode } from '@/components/prompt-access-code';
diff --git a/src/app/(with-header)/settings/page.tsx b/src/app/(with-header)/settings/page.tsx
index 6f29a1e..a6ee5af 100644
--- a/src/app/(with-header)/settings/page.tsx
+++ b/src/app/(with-header)/settings/page.tsx
@@ -1,5 +1,5 @@
import { getCards } from '@/actions/card';
-import { Divider } from '@nextui-org/react';
+import { Divider } from '@nextui-org/divider';
import { UserSettings } from './user-settings';
import { Cards } from './cards';
import { requireUser } from '@/actions/auth';
diff --git a/src/app/(with-header)/settings/user-settings.tsx b/src/app/(with-header)/settings/user-settings.tsx
index bb9e863..4f7820f 100644
--- a/src/app/(with-header)/settings/user-settings.tsx
+++ b/src/app/(with-header)/settings/user-settings.tsx
@@ -4,7 +4,10 @@ import { setUserSettings } from '@/actions/user';
import { useUser } from '@/helpers/use-user';
import { getValidHomepageRoutes } from '@/routes';
import { USER_VISIBILITY_NAMES, UserVisibility } from '@/types/user';
-import { Button, Checkbox, CheckboxGroup, Divider, Select, SelectItem, SelectSection } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { CheckboxGroup, Checkbox } from '@nextui-org/checkbox';
+import { Divider } from '@nextui-org/divider';
+import { SelectItem, Select, SelectSection } from '@nextui-org/select';
import { useState } from 'react';
import { useErrorModal } from '@/components/error-modal';
diff --git a/src/app/(with-header)/team/[teamId]/team.tsx b/src/app/(with-header)/team/[teamId]/team.tsx
index 12abba9..1e51bb1 100644
--- a/src/app/(with-header)/team/[teamId]/team.tsx
+++ b/src/app/(with-header)/team/[teamId]/team.tsx
@@ -3,7 +3,11 @@
import { useRef, useState } from 'react';
import { Team, TeamUser } from '@/data/team';
import { VisibilityDropdown } from '@/components/visibility-dropdown';
-import { Button, Divider, Input, Select, SelectItem, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Divider } from '@nextui-org/divider';
+import { Input } from '@nextui-org/input';
+import { SelectItem, Select } from '@nextui-org/select';
+import { Tooltip } from '@nextui-org/tooltip';
import { JoinPrivacy } from '@/types/privacy-visibility';
import { LinkIcon, PencilIcon, UserMinusIcon, UserPlusIcon, XMarkIcon } from '@heroicons/react/24/outline';
import { useUser } from '@/helpers/use-user';
diff --git a/src/app/(with-header)/team/create-team-button.tsx b/src/app/(with-header)/team/create-team-button.tsx
index 1754e28..68b57a5 100644
--- a/src/app/(with-header)/team/create-team-button.tsx
+++ b/src/app/(with-header)/team/create-team-button.tsx
@@ -1,6 +1,7 @@
'use client';
-import { Button, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Tooltip } from '@nextui-org/tooltip';
import { usePromptModal } from '@/components/prompt-modal';
import { useErrorModal } from '@/components/error-modal';
import { PlusIcon } from '@heroicons/react/24/outline';
diff --git a/src/app/(with-header)/team/page.tsx b/src/app/(with-header)/team/page.tsx
index 257d5c6..5a04499 100644
--- a/src/app/(with-header)/team/page.tsx
+++ b/src/app/(with-header)/team/page.tsx
@@ -4,7 +4,8 @@ import { VisibilityIcon } from '@/components/visibility-icon';
import { getTeams } from '@/data/team';
import { UserGroupIcon } from '@heroicons/react/24/outline';
import { StarIcon } from '@heroicons/react/24/solid';
-import { Divider, Tooltip } from '@nextui-org/react';
+import { Divider } from '@nextui-org/divider';
+import { Tooltip } from '@nextui-org/tooltip';
import Link from 'next/link';
export const dynamic = 'force-dynamic';
diff --git a/src/app/(with-header)/user/[userId]/user-profile.tsx b/src/app/(with-header)/user/[userId]/user-profile.tsx
index d0d921e..b3e1664 100644
--- a/src/app/(with-header)/user/[userId]/user-profile.tsx
+++ b/src/app/(with-header)/user/[userId]/user-profile.tsx
@@ -9,7 +9,10 @@ import { USER_PERMISSION_NAMES, UserPermissions } from '@/types/permissions';
import { DBUserPayload, UserPayload } from '@/types/user';
import { ArrowUpRightIcon } from '@heroicons/react/16/solid';
import { UserIcon, UserMinusIcon, UserPlusIcon } from '@heroicons/react/24/outline';
-import { Button, Divider, Tooltip, user } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Divider } from '@nextui-org/divider';
+import { user } from '@nextui-org/react';
+import { Tooltip } from '@nextui-org/tooltip';
import Link from 'next/link';
import { PermissionIcon } from '@/components/permission-icon';
import { sendFriendRequest, unfriend } from '@/actions/friend';
diff --git a/src/components/actaeon-status.tsx b/src/components/actaeon-status.tsx
index 0ef7954..5b09873 100644
--- a/src/components/actaeon-status.tsx
+++ b/src/components/actaeon-status.tsx
@@ -1,6 +1,7 @@
import { ServerStatus } from '@/data/status';
import { CHUNI_VERSIONS } from '@/types/game-versions';
-import { Card, CardBody, CardHeader, Divider } from '@nextui-org/react';
+import { CardBody, CardHeader, Card } from '@nextui-org/card';
+import { Divider } from '@nextui-org/divider';
export const ActaeonStatus = ({ status, className }: { status: ServerStatus, className?: string }) => {
return (
diff --git a/src/components/aime-card.tsx b/src/components/aime-card.tsx
index 57758a1..7caaaf0 100644
--- a/src/components/aime-card.tsx
+++ b/src/components/aime-card.tsx
@@ -3,7 +3,8 @@
import { DB } from '@/types/db';
import { useState } from 'react';
import { EyeIcon, EyeSlashIcon } from '@heroicons/react/24/outline';
-import { Button, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Tooltip } from '@nextui-org/tooltip';
import { useUser } from '@/helpers/use-user';
import { TbHammer, TbHammerOff, TbLock, TbLockOpen, TbTrashX } from 'react-icons/tb';
import { hasPermission } from '@/helpers/permissions';
diff --git a/src/components/back-button.tsx b/src/components/back-button.tsx
index eb4f3aa..6698574 100644
--- a/src/components/back-button.tsx
+++ b/src/components/back-button.tsx
@@ -1,6 +1,6 @@
'use client';
-import { Button, ButtonProps } from '@nextui-org/react';
+import { Button, ButtonProps } from '@nextui-org/button';
type BackButtonProps = Partial & {
referer?: string | null
diff --git a/src/components/chuni/playlog-card.tsx b/src/components/chuni/playlog-card.tsx
index d92669a..4b342ff 100644
--- a/src/components/chuni/playlog-card.tsx
+++ b/src/components/chuni/playlog-card.tsx
@@ -9,7 +9,7 @@ import { ChuniLevelBadge } from '@/components/chuni/level-badge';
import { ChuniDifficultyContainer } from '@/components/chuni/difficulty-container';
import { formatJst } from '@/helpers/format-jst';
import { Ticker, TickerHoverProvider } from '@/components/ticker';
-import { Divider } from '@nextui-org/react';
+import { Divider } from '@nextui-org/divider';
import Image from 'next/image';
export type ChuniPlaylogCardProps = {
diff --git a/src/components/confirm-modal.tsx b/src/components/confirm-modal.tsx
index 4dadc87..41be6a5 100644
--- a/src/components/confirm-modal.tsx
+++ b/src/components/confirm-modal.tsx
@@ -1,5 +1,6 @@
import { createContext, ReactNode, useCallback, useContext, useRef, useState } from 'react';
-import { Button, Modal, ModalContent, ModalHeader } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { ModalHeader, ModalContent, Modal } from '@nextui-org/modal';
import { ModalBody, ModalFooter } from '@nextui-org/modal';
import { useHashNavigation } from '@/helpers/use-hash-navigation';
diff --git a/src/components/date-select.tsx b/src/components/date-select.tsx
index 0fe31f6..79262ec 100644
--- a/src/components/date-select.tsx
+++ b/src/components/date-select.tsx
@@ -1,4 +1,7 @@
-import { Button, Input, InputProps, Modal, ModalContent, ModalHeader, Popover, PopoverContent, PopoverTrigger } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { InputProps, Input } from '@nextui-org/input';
+import { Modal, ModalHeader, ModalContent } from '@nextui-org/modal';
+import { PopoverTrigger, Popover, PopoverContent } from '@nextui-org/popover';
import { useState } from 'react';
import { DayPicker, DateRange } from 'react-day-picker';
import 'react-day-picker/dist/style.css';
diff --git a/src/components/error-modal.tsx b/src/components/error-modal.tsx
index fe42715..887fbf1 100644
--- a/src/components/error-modal.tsx
+++ b/src/components/error-modal.tsx
@@ -1,7 +1,8 @@
'use client';
import { createContext, ReactNode, useContext, useState } from 'react';
-import { Button, Modal, ModalContent, ModalHeader } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { ModalHeader, ModalContent, Modal } from '@nextui-org/modal';
import { ModalBody, ModalFooter } from '@nextui-org/modal';
import { useHashNavigation } from '@/helpers/use-hash-navigation';
diff --git a/src/components/error-page-nav-buttons.tsx b/src/components/error-page-nav-buttons.tsx
index 32b33da..b1aacb4 100644
--- a/src/components/error-page-nav-buttons.tsx
+++ b/src/components/error-page-nav-buttons.tsx
@@ -1,6 +1,6 @@
'use client';
-import { Button } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
import Link from 'next/link';
import { useRouter } from 'next/navigation';
diff --git a/src/components/filter-sorter.tsx b/src/components/filter-sorter.tsx
index 5a3d772..f5b6682 100644
--- a/src/components/filter-sorter.tsx
+++ b/src/components/filter-sorter.tsx
@@ -1,6 +1,15 @@
'use client';
-import { Accordion, AccordionItem, Button, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger, Input, Pagination, Select, SelectItem, Slider, Spinner, Switch, Tooltip } from '@nextui-org/react';
+import { AccordionItem, Accordion } from '@nextui-org/accordion';
+import { Button } from '@nextui-org/button';
+import { DropdownItem, DropdownTrigger, Dropdown, DropdownMenu } from '@nextui-org/dropdown';
+import { Input } from '@nextui-org/input';
+import { Pagination } from '@nextui-org/pagination';
+import { SelectItem, Select } from '@nextui-org/select';
+import { Slider } from '@nextui-org/slider';
+import { Spinner } from '@nextui-org/spinner';
+import { Switch } from '@nextui-org/switch';
+import { Tooltip } from '@nextui-org/tooltip';
import { ComponentProps, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { XMarkIcon } from '@heroicons/react/16/solid';
import { ArrowLongUpIcon } from '@heroicons/react/24/solid';
diff --git a/src/components/join-links-modal.tsx b/src/components/join-links-modal.tsx
index c0e7db9..88b7f11 100644
--- a/src/components/join-links-modal.tsx
+++ b/src/components/join-links-modal.tsx
@@ -1,5 +1,9 @@
import { useEffect, useRef, useState, Fragment } from 'react';
-import { Button, Divider, Input, Modal, ModalContent, ModalHeader, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Divider } from '@nextui-org/divider';
+import { Input } from '@nextui-org/input';
+import { Modal, ModalHeader, ModalContent } from '@nextui-org/modal';
+import { Tooltip } from '@nextui-org/tooltip';
import { ModalBody, ModalFooter } from '@nextui-org/modal';
import Link from 'next/link';
import { ClipboardDocumentIcon, PlusIcon, TrashIcon } from '@heroicons/react/24/outline';
diff --git a/src/components/music-player.tsx b/src/components/music-player.tsx
index 0ff600c..5c2a5dc 100644
--- a/src/components/music-player.tsx
+++ b/src/components/music-player.tsx
@@ -1,6 +1,8 @@
'use client';
-import { Button, Card, CardBody, Slider } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { CardBody, Card } from '@nextui-org/card';
+import { Slider } from '@nextui-org/slider';
import { PauseCircleIcon, PlayCircleIcon } from '@heroicons/react/24/solid';
import { ReactNode, useEffect, useState } from 'react';
import { useAudio } from '@/helpers/use-audio';
diff --git a/src/components/permission-edit-modal.tsx b/src/components/permission-edit-modal.tsx
index 40eefe7..7995949 100644
--- a/src/components/permission-edit-modal.tsx
+++ b/src/components/permission-edit-modal.tsx
@@ -1,4 +1,7 @@
-import { Button, Checkbox, Modal, ModalContent, ModalHeader, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Checkbox } from '@nextui-org/checkbox';
+import { Modal, ModalHeader, ModalContent } from '@nextui-org/modal';
+import { Tooltip } from '@nextui-org/tooltip';
import { useHashNavigation } from '@/helpers/use-hash-navigation';
import { ARCADE_PERMISSION_NAMES, ArcadePermissions, USER_PERMISSION_NAMES, UserPermissions } from '@/types/permissions';
import Link from 'next/link';
diff --git a/src/components/permission-icon.tsx b/src/components/permission-icon.tsx
index 9b0ca5f..eff0d3b 100644
--- a/src/components/permission-icon.tsx
+++ b/src/components/permission-icon.tsx
@@ -1,5 +1,5 @@
import { USER_PERMISSION_NAMES, UserPermissions } from '@/types/permissions';
-import { Tooltip } from '@nextui-org/react';
+import { Tooltip } from '@nextui-org/tooltip';
import { TbBrandAppleArcade, TbCrown, TbFileSettings, TbUserShield } from 'react-icons/tb';
const PERMISSION_ICONS = new Map([
diff --git a/src/components/prompt-access-code.tsx b/src/components/prompt-access-code.tsx
index 69ce05d..040e4da 100644
--- a/src/components/prompt-access-code.tsx
+++ b/src/components/prompt-access-code.tsx
@@ -1,6 +1,8 @@
import { generateAccessCode } from '@/helpers/access-code';
import { PromptCallback } from './prompt-modal';
-import { Button, Input, Tooltip } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { Input } from '@nextui-org/input';
+import { Tooltip } from '@nextui-org/tooltip';
import { ArrowPathIcon } from '@heroicons/react/24/outline';
export const promptAccessCode = (prompt: PromptCallback, message: string, onConfirm: (val: string) => void) => {
diff --git a/src/components/prompt-modal.tsx b/src/components/prompt-modal.tsx
index 2799958..fdcc1ae 100644
--- a/src/components/prompt-modal.tsx
+++ b/src/components/prompt-modal.tsx
@@ -1,5 +1,7 @@
import { createContext, ReactNode, useCallback, useContext, useRef, useState } from 'react';
-import { Button, Input, InputProps, Modal, ModalContent, ModalHeader } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { InputProps, Input } from '@nextui-org/input';
+import { Modal, ModalHeader, ModalContent } from '@nextui-org/modal';
import { ModalBody, ModalFooter, ModalProps } from '@nextui-org/modal';
import { useHashNavigation } from '@/helpers/use-hash-navigation';
diff --git a/src/components/select-modal.tsx b/src/components/select-modal.tsx
index 79a6317..1e961e7 100644
--- a/src/components/select-modal.tsx
+++ b/src/components/select-modal.tsx
@@ -2,7 +2,8 @@
import { Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, ModalProps } from '@nextui-org/modal';
import { ReactNode, useEffect, useMemo, useRef, useState } from 'react';
-import { Button, ButtonProps, Input } from '@nextui-org/react';
+import { Button, ButtonProps } from '@nextui-org/button';
+import { Input } from '@nextui-org/input';
import { SearchIcon } from '@nextui-org/shared-icons';
import { useDebounceCallback } from 'usehooks-ts';
import { useRouter } from 'next/navigation';
diff --git a/src/components/theme-switcher.tsx b/src/components/theme-switcher.tsx
index 80be40f..062502b 100644
--- a/src/components/theme-switcher.tsx
+++ b/src/components/theme-switcher.tsx
@@ -1,7 +1,9 @@
'use client';
import { useTheme } from 'next-themes';
-import { Button, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger, Switch, SwitchProps } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { DropdownItem, DropdownTrigger, Dropdown, DropdownMenu } from '@nextui-org/dropdown';
+import { Switch, SwitchProps } from '@nextui-org/switch';
import { MoonIcon, SunIcon } from '@heroicons/react/24/outline';
import { useIsMounted } from 'usehooks-ts';
import { useEffect, useState } from 'react';
diff --git a/src/components/visibility-dropdown.tsx b/src/components/visibility-dropdown.tsx
index 2ccb22e..457b062 100644
--- a/src/components/visibility-dropdown.tsx
+++ b/src/components/visibility-dropdown.tsx
@@ -1,6 +1,7 @@
import { Visibility } from '@/types/privacy-visibility';
import { VisibilityIcon } from './visibility-icon';
-import { Button, Dropdown, DropdownItem, DropdownMenu, DropdownTrigger } from '@nextui-org/react';
+import { Button } from '@nextui-org/button';
+import { DropdownItem, DropdownTrigger, Dropdown, DropdownMenu } from '@nextui-org/dropdown';
import { ChevronDownIcon, GlobeAltIcon, LinkIcon, LockClosedIcon } from '@heroicons/react/24/outline';
type VisibilityDropdownProps = {
diff --git a/src/components/visibility-icon.tsx b/src/components/visibility-icon.tsx
index afe1aa4..c6d7339 100644
--- a/src/components/visibility-icon.tsx
+++ b/src/components/visibility-icon.tsx
@@ -1,6 +1,6 @@
import { GlobeAltIcon, LinkIcon, LockClosedIcon } from '@heroicons/react/24/outline';
import { Visibility } from '@/types/privacy-visibility';
-import { Tooltip } from '@nextui-org/react';
+import { Tooltip } from '@nextui-org/tooltip';
export const VisibilityIcon = ({ visibility, className }: { visibility: Visibility, className?: string; }) => {
if (visibility === Visibility.PUBLIC)
diff --git a/src/helpers/chuni/filter.tsx b/src/helpers/chuni/filter.tsx
index 6fc45da..cd3eef7 100644
--- a/src/helpers/chuni/filter.tsx
+++ b/src/helpers/chuni/filter.tsx
@@ -1,5 +1,5 @@
import { CHUNI_DIFFICULTIES } from '@/helpers/chuni/difficulties';
-import { SelectItem } from '@nextui-org/react';
+import { SelectItem } from '@nextui-org/select';
import { FilterField } from '@/components/filter-sorter';
import { ChuniMusic } from '@/actions/chuni/music';
import { CHUNI_GENRES } from '@/helpers/chuni/genres';