From b78d32b81c6075a3d04abf0e8e7631e8ce6ef49c Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Thu, 25 Apr 2024 22:06:15 +0200 Subject: [PATCH] fix: nextjs is slow dev server (#364) * fix: nextjs slow compile time * fix: change optimized package imports and transpile packages * fix: format issue --- apps/nextjs/next.config.mjs | 23 +++------ .../(main)/apps/_app-delete-button.tsx | 3 +- .../src/app/[locale]/(main)/apps/_form.tsx | 2 +- .../[locale]/(main)/apps/edit/[id]/page.tsx | 3 +- .../src/app/[locale]/(main)/apps/new/page.tsx | 2 +- .../src/app/[locale]/(main)/apps/page.tsx | 13 +++-- .../integrations/_integration-avatar.tsx | 5 +- .../integrations/_integration-buttons.tsx | 3 +- .../integrations/_integration-secret-card.tsx | 19 ++++--- .../integrations/_integration-secret-icons.ts | 3 +- .../_integration-secret-inputs.tsx | 2 +- .../_integration-test-connection.tsx | 11 +---- .../edit/[id]/_integration-edit-form.tsx | 2 +- .../(main)/integrations/edit/[id]/page.tsx | 3 +- .../new/_integration-new-dropdown.tsx | 11 +---- .../new/_integration-new-form.tsx | 16 +++--- .../[locale]/(main)/integrations/new/page.tsx | 2 +- .../app/[locale]/(main)/integrations/page.tsx | 21 ++++---- .../nextjs/src/app/[locale]/(main)/layout.tsx | 3 +- apps/nextjs/src/app/[locale]/(main)/page.tsx | 2 +- .../app/[locale]/auth/login/_login-form.tsx | 12 ++--- .../src/app/[locale]/auth/login/page.tsx | 3 +- .../boards/[name]/@headeractions/page.tsx | 23 +++++---- .../[name]/@headeractions/settings/page.tsx | 2 +- .../boards/[name]/settings/_access.tsx | 33 +++++++------ .../boards/[name]/settings/_background.tsx | 9 ++-- .../boards/[name]/settings/_colors.tsx | 10 ++-- .../boards/[name]/settings/_danger.tsx | 2 +- .../boards/[name]/settings/_general.tsx | 20 ++++---- .../boards/[name]/settings/_layout.tsx | 3 +- .../[locale]/boards/[name]/settings/page.tsx | 22 +++++---- .../src/app/[locale]/boards/_client.tsx | 2 +- .../src/app/[locale]/boards/_creator.tsx | 2 +- .../nextjs/src/app/[locale]/boards/_theme.tsx | 5 +- .../[locale]/init/user/_init-user-form.tsx | 2 +- .../src/app/[locale]/init/user/page.tsx | 2 +- apps/nextjs/src/app/[locale]/layout.tsx | 5 +- apps/nextjs/src/app/[locale]/loading.tsx | 2 +- .../[locale]/manage/[...not-found]/page.tsx | 3 +- .../_components/board-card-menu-dropdown.tsx | 3 +- .../_components/create-board-button.tsx | 3 +- .../src/app/[locale]/manage/boards/page.tsx | 14 +++--- .../nextjs/src/app/[locale]/manage/layout.tsx | 8 +-- apps/nextjs/src/app/[locale]/manage/page.tsx | 3 +- apps/nextjs/src/app/[locale]/manage/test.tsx | 2 +- .../app/[locale]/manage/tools/logs/page.tsx | 3 +- .../[locale]/manage/tools/logs/terminal.tsx | 2 +- .../_components/dangerZone.accordion.tsx | 2 +- .../_components/profile.accordion.tsx | 3 +- .../_components/security.accordion.tsx | 3 +- .../[locale]/manage/users/[userId]/page.tsx | 16 +++--- .../users/_components/user-list.component.tsx | 11 +---- .../_components/create-user-stepper.tsx | 12 ++--- .../stepper-navigation.component.tsx | 10 ++-- apps/nextjs/src/app/[locale]/not-found.tsx | 2 +- .../app/[locale]/widgets/[kind]/_content.tsx | 16 +++--- .../widgets/[kind]/_dimension-modal.tsx | 3 +- .../src/app/[locale]/widgets/[kind]/page.tsx | 2 +- .../src/components/active-tab-accordion.tsx | 5 +- .../board/items/item-select-modal.tsx | 3 +- .../board/modals/board-rename-modal.tsx | 3 +- .../board/sections/category-section.tsx | 8 ++- .../sections/category/category-edit-modal.tsx | 3 +- .../board/sections/category/category-menu.tsx | 13 +++-- .../src/components/board/sections/content.tsx | 16 +++--- .../src/components/layout/background.tsx | 3 +- apps/nextjs/src/components/layout/header.tsx | 2 +- .../src/components/layout/header/burger.tsx | 3 +- .../src/components/layout/header/button.tsx | 5 +- .../src/components/layout/header/search.tsx | 4 +- .../src/components/layout/header/user.tsx | 2 +- .../src/components/layout/logo/logo.tsx | 5 +- .../src/components/layout/navigation-link.tsx | 3 +- .../src/components/layout/navigation.tsx | 3 +- apps/nextjs/src/components/layout/shell.tsx | 3 +- .../manage/boards/add-board-modal.tsx | 2 +- .../src/components/user-avatar-menu.tsx | 9 ++-- apps/nextjs/src/components/user-avatar.tsx | 5 +- package.json | 6 +++ packages/modals/src/confirm-modal.tsx | 4 +- packages/modals/src/index.tsx | 2 +- packages/modals/src/type.ts | 2 +- packages/notifications/src/index.tsx | 3 +- packages/spotlight/src/chip-group.tsx | 3 +- packages/spotlight/src/component.tsx | 11 +---- packages/spotlight/src/web-search-engines.ts | 2 +- packages/ui/index.ts | 3 -- packages/ui/package.json | 8 +-- .../widgets/src/_inputs/widget-app-input.tsx | 5 +- .../src/_inputs/widget-location-input.tsx | 15 +++--- .../src/_inputs/widget-multiselect-input.tsx | 2 +- .../src/_inputs/widget-number-input.tsx | 2 +- .../src/_inputs/widget-select-input.tsx | 2 +- .../src/_inputs/widget-slider-input.tsx | 2 +- .../src/_inputs/widget-switch-input.tsx | 2 +- .../widgets/src/_inputs/widget-text-input.tsx | 2 +- packages/widgets/src/app/component.tsx | 12 ++--- packages/widgets/src/app/index.ts | 2 +- packages/widgets/src/clock/component.tsx | 3 +- packages/widgets/src/clock/index.ts | 3 +- packages/widgets/src/iframe/component.tsx | 4 +- packages/widgets/src/iframe/index.ts | 2 +- packages/widgets/src/index.tsx | 2 +- .../widgets/src/modals/widget-edit-modal.tsx | 3 +- packages/widgets/src/notebook/index.ts | 2 +- packages/widgets/src/video/component.tsx | 11 +---- packages/widgets/src/video/index.ts | 2 +- packages/widgets/src/weather/component.tsx | 14 ++---- packages/widgets/src/weather/icon.tsx | 12 ++--- packages/widgets/src/weather/index.ts | 3 +- .../widgets/src/widget-integration-select.tsx | 10 ++-- pnpm-lock.yaml | 49 +++++++++---------- 112 files changed, 345 insertions(+), 394 deletions(-) diff --git a/apps/nextjs/next.config.mjs b/apps/nextjs/next.config.mjs index f7d2d05a9..26bb9d9c1 100644 --- a/apps/nextjs/next.config.mjs +++ b/apps/nextjs/next.config.mjs @@ -6,17 +6,6 @@ import "@homarr/auth/env.mjs"; const config = { output: "standalone", reactStrictMode: true, - /** Enables hot reloading for local packages without a build step */ - transpilePackages: [ - "@homarr/api", - "@homarr/auth", - "@homarr/db", - "@homarr/ui", - "@homarr/validation", - "@homarr/form", - "@homarr/notifications", - "@homarr/spotlight", - ], /** We already do linting and typechecking as separate tasks in CI */ eslint: { ignoreDuringBuilds: true }, typescript: { ignoreBuildErrors: true }, @@ -24,12 +13,16 @@ const config = { optimizePackageImports: [ "@mantine/core", "@mantine/hooks", - "@mantine/dates", - "@mantine/notifications", - "@mantine/form", - "@mantine/spotlight", + "@tabler/icons-react", ], }, + transpilePackages: [ + "@homarr/ui", + "@homarr/notifications", + "@homarr/modals", + "@homarr/spotlight", + "@homarr/widgets", + ], images: { domains: ["cdn.jsdelivr.net"], }, diff --git a/apps/nextjs/src/app/[locale]/(main)/apps/_app-delete-button.tsx b/apps/nextjs/src/app/[locale]/(main)/apps/_app-delete-button.tsx index 5494e7386..0d0181891 100644 --- a/apps/nextjs/src/app/[locale]/(main)/apps/_app-delete-button.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/apps/_app-delete-button.tsx @@ -1,6 +1,8 @@ "use client"; import { useCallback } from "react"; +import { ActionIcon } from "@mantine/core"; +import { IconTrash } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; @@ -10,7 +12,6 @@ import { showSuccessNotification, } from "@homarr/notifications"; import { useScopedI18n } from "@homarr/translation/client"; -import { ActionIcon, IconTrash } from "@homarr/ui"; import { revalidatePathAction } from "../../../revalidatePathAction"; diff --git a/apps/nextjs/src/app/[locale]/(main)/apps/_form.tsx b/apps/nextjs/src/app/[locale]/(main)/apps/_form.tsx index ca73e3f4a..7e897ba30 100644 --- a/apps/nextjs/src/app/[locale]/(main)/apps/_form.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/apps/_form.tsx @@ -1,11 +1,11 @@ "use client"; import Link from "next/link"; +import { Button, Group, Stack, Textarea, TextInput } from "@mantine/core"; import { useForm, zodResolver } from "@homarr/form"; import type { TranslationFunction } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; -import { Button, Group, Stack, Textarea, TextInput } from "@homarr/ui"; import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; diff --git a/apps/nextjs/src/app/[locale]/(main)/apps/edit/[id]/page.tsx b/apps/nextjs/src/app/[locale]/(main)/apps/edit/[id]/page.tsx index 96ae57035..eddb8bb3b 100644 --- a/apps/nextjs/src/app/[locale]/(main)/apps/edit/[id]/page.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/apps/edit/[id]/page.tsx @@ -1,6 +1,7 @@ +import { Container, Stack, Title } from "@mantine/core"; + import { api } from "@homarr/api/server"; import { getI18n } from "@homarr/translation/server"; -import { Container, Stack, Title } from "@homarr/ui"; import { AppEditForm } from "./_app-edit-form"; diff --git a/apps/nextjs/src/app/[locale]/(main)/apps/new/page.tsx b/apps/nextjs/src/app/[locale]/(main)/apps/new/page.tsx index e208f599e..5087a5b66 100644 --- a/apps/nextjs/src/app/[locale]/(main)/apps/new/page.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/apps/new/page.tsx @@ -1,4 +1,4 @@ -import { Container, Stack, Title } from "@homarr/ui"; +import { Container, Stack, Title } from "@mantine/core"; import { AppNewForm } from "./_app-new-form"; diff --git a/apps/nextjs/src/app/[locale]/(main)/apps/page.tsx b/apps/nextjs/src/app/[locale]/(main)/apps/page.tsx index e07263db6..0fab48eab 100644 --- a/apps/nextjs/src/app/[locale]/(main)/apps/page.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/apps/page.tsx @@ -1,8 +1,4 @@ import Link from "next/link"; - -import type { RouterOutputs } from "@homarr/api"; -import { api } from "@homarr/api/server"; -import { getI18n } from "@homarr/translation/server"; import { ActionIcon, ActionIconGroup, @@ -12,12 +8,15 @@ import { Card, Container, Group, - IconApps, - IconPencil, Stack, Text, Title, -} from "@homarr/ui"; +} from "@mantine/core"; +import { IconApps, IconPencil } from "@tabler/icons-react"; + +import type { RouterOutputs } from "@homarr/api"; +import { api } from "@homarr/api/server"; +import { getI18n } from "@homarr/translation/server"; import { AppDeleteButton } from "./_app-delete-button"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-avatar.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-avatar.tsx index 0d9eb5fdf..f443569da 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-avatar.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-avatar.tsx @@ -1,7 +1,8 @@ +import { Avatar } from "@mantine/core"; +import type { MantineSize } from "@mantine/core"; + import { getIconUrl } from "@homarr/definitions"; import type { IntegrationKind } from "@homarr/definitions"; -import { Avatar } from "@homarr/ui"; -import type { MantineSize } from "@homarr/ui"; interface IntegrationAvatarProps { size: MantineSize; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-buttons.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-buttons.tsx index 9c2f53405..909dfc1bf 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-buttons.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-buttons.tsx @@ -1,6 +1,8 @@ "use client"; import { useRouter } from "next/navigation"; +import { ActionIcon } from "@mantine/core"; +import { IconTrash } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; import { useConfirmModal } from "@homarr/modals"; @@ -9,7 +11,6 @@ import { showSuccessNotification, } from "@homarr/notifications"; import { useScopedI18n } from "@homarr/translation/client"; -import { ActionIcon, IconTrash } from "@homarr/ui"; import { revalidatePathAction } from "../../../revalidatePathAction"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-card.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-card.tsx index eecc4b6c1..2c8b77b4f 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-card.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-card.tsx @@ -2,13 +2,6 @@ import { useState } from "react"; import { useParams } from "next/navigation"; -import { useDisclosure } from "@mantine/hooks"; -import dayjs from "dayjs"; -import relativeTime from "dayjs/plugin/relativeTime"; - -import type { RouterOutputs } from "@homarr/api"; -import { integrationSecretKindObject } from "@homarr/definitions"; -import { useI18n } from "@homarr/translation/client"; import { ActionIcon, Avatar, @@ -16,12 +9,18 @@ import { Card, Collapse, Group, - IconEye, - IconEyeOff, Kbd, Stack, Text, -} from "@homarr/ui"; +} from "@mantine/core"; +import { useDisclosure } from "@mantine/hooks"; +import { IconEye, IconEyeOff } from "@tabler/icons-react"; +import dayjs from "dayjs"; +import relativeTime from "dayjs/plugin/relativeTime"; + +import type { RouterOutputs } from "@homarr/api"; +import { integrationSecretKindObject } from "@homarr/definitions"; +import { useI18n } from "@homarr/translation/client"; import { integrationSecretIcons } from "./_integration-secret-icons"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-icons.ts b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-icons.ts index 32b528f9a..b2593aaf7 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-icons.ts +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-icons.ts @@ -1,6 +1,7 @@ +import { IconKey, IconPassword, IconUser } from "@tabler/icons-react"; + import type { IntegrationSecretKind } from "@homarr/definitions"; import type { TablerIcon } from "@homarr/ui"; -import { IconKey, IconPassword, IconUser } from "@homarr/ui"; export const integrationSecretIcons = { username: IconUser, diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-inputs.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-inputs.tsx index 4cac34e01..f68997943 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-inputs.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-secret-inputs.tsx @@ -1,11 +1,11 @@ "use client"; import type { ChangeEventHandler, FocusEventHandler } from "react"; +import { PasswordInput, TextInput } from "@mantine/core"; import { integrationSecretKindObject } from "@homarr/definitions"; import type { IntegrationSecretKind } from "@homarr/definitions"; import { useI18n } from "@homarr/translation/client"; -import { PasswordInput, TextInput } from "@homarr/ui"; import { integrationSecretIcons } from "./_integration-secret-icons"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-test-connection.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-test-connection.tsx index afa7ec195..e3181828b 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-test-connection.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/_integration-test-connection.tsx @@ -1,6 +1,8 @@ "use client"; import { useRef, useState } from "react"; +import { Alert, Anchor, Group, Loader } from "@mantine/core"; +import { IconCheck, IconInfoCircle, IconX } from "@tabler/icons-react"; import type { RouterInputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; @@ -9,15 +11,6 @@ import { showSuccessNotification, } from "@homarr/notifications"; import { useI18n, useScopedI18n } from "@homarr/translation/client"; -import { - Alert, - Anchor, - Group, - IconCheck, - IconInfoCircle, - IconX, - Loader, -} from "@homarr/ui"; interface UseTestConnectionDirtyProps { defaultDirty: boolean; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/_integration-edit-form.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/_integration-edit-form.tsx index bd804bc91..a5d97ba10 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/_integration-edit-form.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/_integration-edit-form.tsx @@ -2,6 +2,7 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; +import { Button, Fieldset, Group, Stack, TextInput } from "@mantine/core"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; @@ -16,7 +17,6 @@ import { showSuccessNotification, } from "@homarr/notifications"; import { useI18n } from "@homarr/translation/client"; -import { Button, Fieldset, Group, Stack, TextInput } from "@homarr/ui"; import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/page.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/page.tsx index 61ec435cd..9a2d1293a 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/page.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/edit/[id]/page.tsx @@ -1,7 +1,8 @@ +import { Container, Group, Stack, Title } from "@mantine/core"; + import { api } from "@homarr/api/server"; import { getIntegrationName } from "@homarr/definitions"; import { getScopedI18n } from "@homarr/translation/server"; -import { Container, Group, Stack, Title } from "@homarr/ui"; import { IntegrationAvatar } from "../../_integration-avatar"; import { EditIntegrationForm } from "./_integration-edit-form"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-dropdown.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-dropdown.tsx index da953177d..4d278a70e 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-dropdown.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-dropdown.tsx @@ -2,18 +2,11 @@ import { useMemo, useState } from "react"; import Link from "next/link"; +import { Group, Menu, ScrollArea, Stack, Text, TextInput } from "@mantine/core"; +import { IconSearch } from "@tabler/icons-react"; import { getIntegrationName, integrationKinds } from "@homarr/definitions"; import { useI18n } from "@homarr/translation/client"; -import { - Group, - IconSearch, - Menu, - ScrollArea, - Stack, - Text, - TextInput, -} from "@homarr/ui"; import { IntegrationAvatar } from "../_integration-avatar"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-form.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-form.tsx index 701a0b741..5b626fe00 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-form.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/new/_integration-new-form.tsx @@ -3,6 +3,14 @@ import { useCallback } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; +import { + Button, + Fieldset, + Group, + SegmentedControl, + Stack, + TextInput, +} from "@mantine/core"; import { clientApi } from "@homarr/api/client"; import type { @@ -17,14 +25,6 @@ import { showSuccessNotification, } from "@homarr/notifications"; import { useI18n, useScopedI18n } from "@homarr/translation/client"; -import { - Button, - Fieldset, - Group, - SegmentedControl, - Stack, - TextInput, -} from "@homarr/ui"; import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/new/page.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/new/page.tsx index 8df0cad7b..83f2e11bb 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/new/page.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/new/page.tsx @@ -1,9 +1,9 @@ import { notFound } from "next/navigation"; +import { Container, Group, Stack, Title } from "@mantine/core"; import type { IntegrationKind } from "@homarr/definitions"; import { getIntegrationName, integrationKinds } from "@homarr/definitions"; import { getScopedI18n } from "@homarr/translation/server"; -import { Container, Group, Stack, Title } from "@homarr/ui"; import type { validation } from "@homarr/validation"; import { z } from "@homarr/validation"; diff --git a/apps/nextjs/src/app/[locale]/(main)/integrations/page.tsx b/apps/nextjs/src/app/[locale]/(main)/integrations/page.tsx index 04aabf1c0..06909f66f 100644 --- a/apps/nextjs/src/app/[locale]/(main)/integrations/page.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/integrations/page.tsx @@ -1,11 +1,4 @@ import Link from "next/link"; - -import type { RouterOutputs } from "@homarr/api"; -import { api } from "@homarr/api/server"; -import { objectEntries } from "@homarr/common"; -import type { IntegrationKind } from "@homarr/definitions"; -import { getIntegrationName } from "@homarr/definitions"; -import { getScopedI18n } from "@homarr/translation/server"; import { AccordionControl, AccordionItem, @@ -15,10 +8,7 @@ import { Anchor, Button, Container, - CountBadge, Group, - IconChevronDown, - IconPencil, Menu, MenuDropdown, MenuTarget, @@ -31,7 +21,16 @@ import { TableTr, Text, Title, -} from "@homarr/ui"; +} from "@mantine/core"; +import { IconChevronDown, IconPencil } from "@tabler/icons-react"; + +import type { RouterOutputs } from "@homarr/api"; +import { api } from "@homarr/api/server"; +import { objectEntries } from "@homarr/common"; +import type { IntegrationKind } from "@homarr/definitions"; +import { getIntegrationName } from "@homarr/definitions"; +import { getScopedI18n } from "@homarr/translation/server"; +import { CountBadge } from "@homarr/ui"; import { ActiveTabAccordion } from "../../../../components/active-tab-accordion"; import { IntegrationAvatar } from "./_integration-avatar"; diff --git a/apps/nextjs/src/app/[locale]/(main)/layout.tsx b/apps/nextjs/src/app/[locale]/(main)/layout.tsx index 06e6f91fb..ba273b157 100644 --- a/apps/nextjs/src/app/[locale]/(main)/layout.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/layout.tsx @@ -1,6 +1,5 @@ import type { PropsWithChildren } from "react"; - -import { AppShellMain } from "@homarr/ui"; +import { AppShellMain } from "@mantine/core"; import { MainHeader } from "~/components/layout/header"; import { ClientShell } from "~/components/layout/shell"; diff --git a/apps/nextjs/src/app/[locale]/(main)/page.tsx b/apps/nextjs/src/app/[locale]/(main)/page.tsx index 884e79fd8..26c718534 100644 --- a/apps/nextjs/src/app/[locale]/(main)/page.tsx +++ b/apps/nextjs/src/app/[locale]/(main)/page.tsx @@ -1,4 +1,4 @@ -import { Stack, Title } from "@homarr/ui"; +import { Stack, Title } from "@mantine/core"; export default function HomePage() { return ( diff --git a/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx b/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx index 057268992..308bd7d4a 100644 --- a/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx +++ b/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx @@ -2,19 +2,19 @@ import { useState } from "react"; import { useRouter } from "next/navigation"; - -import { signIn } from "@homarr/auth/client"; -import { useForm, zodResolver } from "@homarr/form"; -import { useScopedI18n } from "@homarr/translation/client"; import { Alert, Button, - IconAlertTriangle, PasswordInput, rem, Stack, TextInput, -} from "@homarr/ui"; +} from "@mantine/core"; +import { IconAlertTriangle } from "@tabler/icons-react"; + +import { signIn } from "@homarr/auth/client"; +import { useForm, zodResolver } from "@homarr/form"; +import { useScopedI18n } from "@homarr/translation/client"; import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; diff --git a/apps/nextjs/src/app/[locale]/auth/login/page.tsx b/apps/nextjs/src/app/[locale]/auth/login/page.tsx index 4ad6bd3f8..00de2f2f3 100644 --- a/apps/nextjs/src/app/[locale]/auth/login/page.tsx +++ b/apps/nextjs/src/app/[locale]/auth/login/page.tsx @@ -1,5 +1,6 @@ +import { Card, Center, Stack, Text, Title } from "@mantine/core"; + import { getScopedI18n } from "@homarr/translation/server"; -import { Card, Center, Stack, Text, Title } from "@homarr/ui"; import { HomarrLogoWithTitle } from "~/components/layout/logo/homarr-logo"; import { LoginForm } from "./_login-form"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/@headeractions/page.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/@headeractions/page.tsx index ab2715041..7b92c442b 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/@headeractions/page.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/@headeractions/page.tsx @@ -1,6 +1,17 @@ "use client"; import { useCallback } from "react"; +import { Group, Menu } from "@mantine/core"; +import { + IconBox, + IconBoxAlignTop, + IconChevronDown, + IconPackageImport, + IconPencil, + IconPencilOff, + IconPlus, + IconSettings, +} from "@tabler/icons-react"; import { useAtom, useAtomValue } from "jotai"; import { clientApi } from "@homarr/api/client"; @@ -10,18 +21,6 @@ import { showSuccessNotification, } from "@homarr/notifications"; import { useI18n, useScopedI18n } from "@homarr/translation/client"; -import { - Group, - IconBox, - IconBoxAlignTop, - IconChevronDown, - IconPackageImport, - IconPencil, - IconPencilOff, - IconPlus, - IconSettings, - Menu, -} from "@homarr/ui"; import { revalidatePathAction } from "~/app/revalidatePathAction"; import { editModeAtom } from "~/components/board/editMode"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/@headeractions/settings/page.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/@headeractions/settings/page.tsx index 8651981c7..d373a1186 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/@headeractions/settings/page.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/@headeractions/settings/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { IconLayoutBoard } from "@homarr/ui"; +import { IconLayoutBoard } from "@tabler/icons-react"; import { HeaderButton } from "~/components/layout/header/button"; import { useRequiredBoard } from "../../../_context"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_access.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_access.tsx index c64bc01fb..1874d43eb 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_access.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_access.tsx @@ -1,24 +1,11 @@ "use client"; import { useCallback } from "react"; - -import type { RouterOutputs } from "@homarr/api"; -import { clientApi } from "@homarr/api/client"; -import type { BoardPermission } from "@homarr/definitions"; -import { boardPermissions } from "@homarr/definitions"; -import { useForm } from "@homarr/form"; -import { createModal, useModalAction } from "@homarr/modals"; -import { useI18n } from "@homarr/translation/client"; -import type { SelectProps, TablerIcon } from "@homarr/ui"; +import type { SelectProps } from "@mantine/core"; import { Button, Flex, Group, - IconCheck, - IconEye, - IconPencil, - IconPlus, - IconSettings, Select, Stack, Table, @@ -28,7 +15,23 @@ import { TableThead, TableTr, Text, -} from "@homarr/ui"; +} from "@mantine/core"; +import { + IconCheck, + IconEye, + IconPencil, + IconPlus, + IconSettings, +} from "@tabler/icons-react"; + +import type { RouterOutputs } from "@homarr/api"; +import { clientApi } from "@homarr/api/client"; +import type { BoardPermission } from "@homarr/definitions"; +import { boardPermissions } from "@homarr/definitions"; +import { useForm } from "@homarr/form"; +import { createModal, useModalAction } from "@homarr/modals"; +import { useI18n } from "@homarr/translation/client"; +import type { TablerIcon } from "@homarr/ui"; import type { Board } from "../../_types"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_background.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_background.tsx index fa314a4e0..b87161268 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_background.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_background.tsx @@ -1,5 +1,7 @@ "use client"; +import { Button, Grid, Group, Stack, TextInput } from "@mantine/core"; + import { backgroundImageAttachments, backgroundImageRepeats, @@ -8,14 +10,9 @@ import { import { useForm } from "@homarr/form"; import type { TranslationObject } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; -import type { SelectItemWithDescriptionBadge } from "@homarr/ui"; import { - Button, - Grid, - Group, + SelectItemWithDescriptionBadge, SelectWithDescriptionBadge, - Stack, - TextInput, } from "@homarr/ui"; import type { Board } from "../../_types"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_colors.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_colors.tsx index 99b314af6..1666945f2 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_colors.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_colors.tsx @@ -1,9 +1,5 @@ "use client"; -import { useDisclosure } from "@mantine/hooks"; - -import { useForm } from "@homarr/form"; -import { useI18n } from "@homarr/translation/client"; import { Anchor, Button, @@ -18,7 +14,11 @@ import { Stack, Text, useMantineTheme, -} from "@homarr/ui"; +} from "@mantine/core"; +import { useDisclosure } from "@mantine/hooks"; + +import { useForm } from "@homarr/form"; +import { useI18n } from "@homarr/translation/client"; import { generateColors } from "../../_theme"; import type { Board } from "../../_types"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_danger.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_danger.tsx index fe4c60a16..b77d68f25 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_danger.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_danger.tsx @@ -2,11 +2,11 @@ import { useCallback } from "react"; import { useRouter } from "next/navigation"; +import { Button, Divider, Group, Stack, Text } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; import { useConfirmModal, useModalAction } from "@homarr/modals"; import { useScopedI18n } from "@homarr/translation/client"; -import { Button, Divider, Group, Stack, Text } from "@homarr/ui"; import { BoardRenameModal } from "~/components/board/modals/board-rename-modal"; import { useRequiredBoard } from "../../_context"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx index 4b900dcbf..71b9c3cd6 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx @@ -1,24 +1,24 @@ "use client"; import { useEffect, useRef } from "react"; +import { + Button, + Grid, + Group, + Loader, + Stack, + TextInput, + Tooltip, +} from "@mantine/core"; import { useDebouncedValue, useDocumentTitle, useFavicon, } from "@mantine/hooks"; +import { IconAlertTriangle } from "@tabler/icons-react"; import { useForm } from "@homarr/form"; import { useI18n } from "@homarr/translation/client"; -import { - Button, - Grid, - Group, - IconAlertTriangle, - Loader, - Stack, - TextInput, - Tooltip, -} from "@homarr/ui"; import { useUpdateBoard } from "../../_client"; import type { Board } from "../../_types"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx index 6494def03..ea8865a7e 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx @@ -1,8 +1,9 @@ "use client"; +import { Button, Grid, Group, Input, Slider, Stack } from "@mantine/core"; + import { useForm } from "@homarr/form"; import { useI18n } from "@homarr/translation/client"; -import { Button, Grid, Group, Input, Slider, Stack } from "@homarr/ui"; import type { Board } from "../../_types"; import { useSavePartialSettingsMutation } from "./_shared"; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx index dcfdcaca0..5bb1f4be9 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx @@ -1,15 +1,14 @@ import type { PropsWithChildren } from "react"; - -import { api } from "@homarr/api/server"; -import { capitalize } from "@homarr/common"; -import type { TranslationObject } from "@homarr/translation"; -import { getScopedI18n } from "@homarr/translation/server"; -import type { TablerIcon } from "@homarr/ui"; import { AccordionControl, AccordionItem, AccordionPanel, Container, + Stack, + Text, + Title, +} from "@mantine/core"; +import { IconAlertTriangle, IconBrush, IconFileTypeCss, @@ -17,10 +16,13 @@ import { IconPhoto, IconSettings, IconUser, - Stack, - Text, - Title, -} from "@homarr/ui"; +} from "@tabler/icons-react"; + +import { api } from "@homarr/api/server"; +import { capitalize } from "@homarr/common"; +import type { TranslationObject } from "@homarr/translation"; +import { getScopedI18n } from "@homarr/translation/server"; +import type { TablerIcon } from "@homarr/ui"; import { ActiveTabAccordion } from "../../../../../components/active-tab-accordion"; import { AccessSettingsContent } from "./_access"; diff --git a/apps/nextjs/src/app/[locale]/boards/_client.tsx b/apps/nextjs/src/app/[locale]/boards/_client.tsx index 707c5bda1..555d9c6a3 100644 --- a/apps/nextjs/src/app/[locale]/boards/_client.tsx +++ b/apps/nextjs/src/app/[locale]/boards/_client.tsx @@ -1,10 +1,10 @@ "use client"; import { useCallback, useRef } from "react"; +import { Box, LoadingOverlay, Stack } from "@mantine/core"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; -import { Box, LoadingOverlay, Stack } from "@homarr/ui"; import { BoardCategorySection } from "~/components/board/sections/category-section"; import { BoardEmptySection } from "~/components/board/sections/empty-section"; diff --git a/apps/nextjs/src/app/[locale]/boards/_creator.tsx b/apps/nextjs/src/app/[locale]/boards/_creator.tsx index 3aea61e0c..cf916a8ee 100644 --- a/apps/nextjs/src/app/[locale]/boards/_creator.tsx +++ b/apps/nextjs/src/app/[locale]/boards/_creator.tsx @@ -1,8 +1,8 @@ import type { PropsWithChildren, ReactNode } from "react"; import type { Metadata } from "next"; +import { AppShellMain } from "@mantine/core"; import { capitalize } from "@homarr/common"; -import { AppShellMain } from "@homarr/ui"; import { MainHeader } from "~/components/layout/header"; import { BoardLogoWithTitle } from "~/components/layout/logo/board-logo"; diff --git a/apps/nextjs/src/app/[locale]/boards/_theme.tsx b/apps/nextjs/src/app/[locale]/boards/_theme.tsx index 870b215c6..48c8a829d 100644 --- a/apps/nextjs/src/app/[locale]/boards/_theme.tsx +++ b/apps/nextjs/src/app/[locale]/boards/_theme.tsx @@ -1,9 +1,8 @@ "use client"; import type { PropsWithChildren } from "react"; - -import type { MantineColorsTuple } from "@homarr/ui"; -import { createTheme, darken, lighten, MantineProvider } from "@homarr/ui"; +import type { MantineColorsTuple } from "@mantine/core"; +import { createTheme, darken, lighten, MantineProvider } from "@mantine/core"; import { useRequiredBoard } from "./_context"; diff --git a/apps/nextjs/src/app/[locale]/init/user/_init-user-form.tsx b/apps/nextjs/src/app/[locale]/init/user/_init-user-form.tsx index ab730019a..417a209fa 100644 --- a/apps/nextjs/src/app/[locale]/init/user/_init-user-form.tsx +++ b/apps/nextjs/src/app/[locale]/init/user/_init-user-form.tsx @@ -1,6 +1,7 @@ "use client"; import { useRouter } from "next/navigation"; +import { Button, PasswordInput, Stack, TextInput } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; import { useForm, zodResolver } from "@homarr/form"; @@ -9,7 +10,6 @@ import { showSuccessNotification, } from "@homarr/notifications"; import { useScopedI18n } from "@homarr/translation/client"; -import { Button, PasswordInput, Stack, TextInput } from "@homarr/ui"; import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; diff --git a/apps/nextjs/src/app/[locale]/init/user/page.tsx b/apps/nextjs/src/app/[locale]/init/user/page.tsx index 1537c2970..95fdaa145 100644 --- a/apps/nextjs/src/app/[locale]/init/user/page.tsx +++ b/apps/nextjs/src/app/[locale]/init/user/page.tsx @@ -1,8 +1,8 @@ import { notFound } from "next/navigation"; +import { Card, Center, Stack, Text, Title } from "@mantine/core"; import { db } from "@homarr/db"; import { getScopedI18n } from "@homarr/translation/server"; -import { Card, Center, Stack, Text, Title } from "@homarr/ui"; import { HomarrLogoWithTitle } from "~/components/layout/logo/homarr-logo"; import { InitUserForm } from "./_init-user-form"; diff --git a/apps/nextjs/src/app/[locale]/layout.tsx b/apps/nextjs/src/app/[locale]/layout.tsx index 67b1b7e4d..071d1dc71 100644 --- a/apps/nextjs/src/app/[locale]/layout.tsx +++ b/apps/nextjs/src/app/[locale]/layout.tsx @@ -3,12 +3,13 @@ import { Inter } from "next/font/google"; import "@homarr/notifications/styles.css"; import "@homarr/spotlight/styles.css"; -import "@homarr/ui/styles.css"; +import "@mantine/core/styles.css"; + +import { ColorSchemeScript, createTheme, MantineProvider } from "@mantine/core"; import { auth } from "@homarr/auth"; import { ModalProvider } from "@homarr/modals"; import { Notifications } from "@homarr/notifications"; -import { ColorSchemeScript, createTheme, MantineProvider } from "@homarr/ui"; import { JotaiProvider } from "./_client-providers/jotai"; import { NextInternationalProvider } from "./_client-providers/next-international"; diff --git a/apps/nextjs/src/app/[locale]/loading.tsx b/apps/nextjs/src/app/[locale]/loading.tsx index 219a9658c..201f429d0 100644 --- a/apps/nextjs/src/app/[locale]/loading.tsx +++ b/apps/nextjs/src/app/[locale]/loading.tsx @@ -1,4 +1,4 @@ -import { Center, Loader } from "@homarr/ui"; +import { Center, Loader } from "@mantine/core"; export default function CommonLoading() { return ( diff --git a/apps/nextjs/src/app/[locale]/manage/[...not-found]/page.tsx b/apps/nextjs/src/app/[locale]/manage/[...not-found]/page.tsx index 8bc3bd558..8579e45c4 100644 --- a/apps/nextjs/src/app/[locale]/manage/[...not-found]/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/[...not-found]/page.tsx @@ -1,5 +1,6 @@ +import { Center, Stack, Text, Title } from "@mantine/core"; + import { getScopedI18n } from "@homarr/translation/server"; -import { Center, Stack, Text, Title } from "@homarr/ui"; export default async function NotFound() { const t = await getScopedI18n("management.notFound"); diff --git a/apps/nextjs/src/app/[locale]/manage/boards/_components/board-card-menu-dropdown.tsx b/apps/nextjs/src/app/[locale]/manage/boards/_components/board-card-menu-dropdown.tsx index 106189c64..78b0dda70 100644 --- a/apps/nextjs/src/app/[locale]/manage/boards/_components/board-card-menu-dropdown.tsx +++ b/apps/nextjs/src/app/[locale]/manage/boards/_components/board-card-menu-dropdown.tsx @@ -2,12 +2,13 @@ import { useCallback } from "react"; import Link from "next/link"; +import { Menu } from "@mantine/core"; +import { IconSettings, IconTrash } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { useConfirmModal } from "@homarr/modals"; import { useScopedI18n } from "@homarr/translation/client"; -import { IconSettings, IconTrash, Menu } from "@homarr/ui"; import { revalidatePathAction } from "~/app/revalidatePathAction"; diff --git a/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx b/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx index 7fce4f975..a3678be26 100644 --- a/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx +++ b/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx @@ -1,11 +1,12 @@ "use client"; import { useCallback } from "react"; +import { Button } from "@mantine/core"; +import { IconCategoryPlus } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; import { useModalAction } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; -import { Button, IconCategoryPlus } from "@homarr/ui"; import { revalidatePathAction } from "~/app/revalidatePathAction"; import { AddBoardModal } from "~/components/manage/boards/add-board-modal"; diff --git a/apps/nextjs/src/app/[locale]/manage/boards/page.tsx b/apps/nextjs/src/app/[locale]/manage/boards/page.tsx index 4979c45ca..8a4b27253 100644 --- a/apps/nextjs/src/app/[locale]/manage/boards/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/boards/page.tsx @@ -1,8 +1,4 @@ import Link from "next/link"; - -import type { RouterOutputs } from "@homarr/api"; -import { api } from "@homarr/api/server"; -import { getScopedI18n } from "@homarr/translation/server"; import { ActionIcon, Button, @@ -11,15 +7,17 @@ import { Grid, GridCol, Group, - IconDotsVertical, - IconLock, - IconWorld, Menu, MenuTarget, Text, Title, Tooltip, -} from "@homarr/ui"; +} from "@mantine/core"; +import { IconDotsVertical, IconLock, IconWorld } from "@tabler/icons-react"; + +import type { RouterOutputs } from "@homarr/api"; +import { api } from "@homarr/api/server"; +import { getScopedI18n } from "@homarr/translation/server"; import { BoardCardMenuDropdown } from "./_components/board-card-menu-dropdown"; import { CreateBoardButton } from "./_components/create-board-button"; diff --git a/apps/nextjs/src/app/[locale]/manage/layout.tsx b/apps/nextjs/src/app/[locale]/manage/layout.tsx index 243ccda5a..c9ff7bed4 100644 --- a/apps/nextjs/src/app/[locale]/manage/layout.tsx +++ b/apps/nextjs/src/app/[locale]/manage/layout.tsx @@ -1,8 +1,6 @@ import type { PropsWithChildren } from "react"; - -import { getScopedI18n } from "@homarr/translation/server"; +import { AppShellMain } from "@mantine/core"; import { - AppShellMain, IconBook2, IconBrandDiscord, IconBrandDocker, @@ -17,7 +15,9 @@ import { IconTool, IconUser, IconUsers, -} from "@homarr/ui"; +} from "@tabler/icons-react"; + +import { getScopedI18n } from "@homarr/translation/server"; import { MainHeader } from "~/components/layout/header"; import type { NavigationLink } from "~/components/layout/navigation"; diff --git a/apps/nextjs/src/app/[locale]/manage/page.tsx b/apps/nextjs/src/app/[locale]/manage/page.tsx index a625622ce..658797c6c 100644 --- a/apps/nextjs/src/app/[locale]/manage/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/page.tsx @@ -1,5 +1,6 @@ +import { Title } from "@mantine/core"; + import { getScopedI18n } from "@homarr/translation/server"; -import { Title } from "@homarr/ui"; import { Test } from "./test"; diff --git a/apps/nextjs/src/app/[locale]/manage/test.tsx b/apps/nextjs/src/app/[locale]/manage/test.tsx index 3fd419cf1..de6f55090 100644 --- a/apps/nextjs/src/app/[locale]/manage/test.tsx +++ b/apps/nextjs/src/app/[locale]/manage/test.tsx @@ -2,9 +2,9 @@ import { useCallback, useState } from "react"; import type { ChangeEvent } from "react"; +import { Button, Stack, Text, TextInput } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; -import { Button, Stack, Text, TextInput } from "@homarr/ui"; export const Test = () => { const [value, setValue] = useState(""); diff --git a/apps/nextjs/src/app/[locale]/manage/tools/logs/page.tsx b/apps/nextjs/src/app/[locale]/manage/tools/logs/page.tsx index 915142a3c..f290e4e85 100644 --- a/apps/nextjs/src/app/[locale]/manage/tools/logs/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/tools/logs/page.tsx @@ -1,5 +1,6 @@ +import { Box } from "@mantine/core"; + import { getScopedI18n } from "@homarr/translation/server"; -import { Box } from "@homarr/ui"; import "@xterm/xterm/css/xterm.css"; diff --git a/apps/nextjs/src/app/[locale]/manage/tools/logs/terminal.tsx b/apps/nextjs/src/app/[locale]/manage/tools/logs/terminal.tsx index 5258aa684..43b105156 100644 --- a/apps/nextjs/src/app/[locale]/manage/tools/logs/terminal.tsx +++ b/apps/nextjs/src/app/[locale]/manage/tools/logs/terminal.tsx @@ -1,12 +1,12 @@ "use client"; import { useEffect, useRef } from "react"; +import { Box } from "@mantine/core"; import { CanvasAddon } from "@xterm/addon-canvas"; import { FitAddon } from "@xterm/addon-fit"; import { Terminal } from "@xterm/xterm"; import { clientApi } from "@homarr/api/client"; -import { Box } from "@homarr/ui"; import classes from "./terminal.module.css"; diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/dangerZone.accordion.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/dangerZone.accordion.tsx index 0484390ec..94cf52259 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/dangerZone.accordion.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/dangerZone.accordion.tsx @@ -2,11 +2,11 @@ import React from "react"; import { useRouter } from "next/navigation"; +import { Button, Divider, Group, Stack, Text } from "@mantine/core"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { useScopedI18n } from "@homarr/translation/client"; -import { Button, Divider, Group, Stack, Text } from "@homarr/ui"; interface DangerZoneAccordionProps { user: NonNullable; diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/profile.accordion.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/profile.accordion.tsx index ca3a9eff8..831a64a40 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/profile.accordion.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/profile.accordion.tsx @@ -1,10 +1,11 @@ "use client"; +import { Button, Stack, TextInput } from "@mantine/core"; + import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { useForm, zodResolver } from "@homarr/form"; import { useScopedI18n } from "@homarr/translation/client"; -import { Button, Stack, TextInput } from "@homarr/ui"; import { validation } from "@homarr/validation"; import { revalidatePathAction } from "~/app/revalidatePathAction"; diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/security.accordion.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/security.accordion.tsx index b95289e35..aaeecaae5 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/security.accordion.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/_components/security.accordion.tsx @@ -1,11 +1,12 @@ "use client"; +import { Button, PasswordInput, Stack, Title } from "@mantine/core"; + import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { useForm, zodResolver } from "@homarr/form"; import { showSuccessNotification } from "@homarr/notifications"; import { useI18n } from "@homarr/translation/client"; -import { Button, PasswordInput, Stack, Title } from "@homarr/ui"; import { validation } from "@homarr/validation"; import { revalidatePathAction } from "~/app/revalidatePathAction"; diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/page.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/page.tsx index 301e9da1e..2133828bc 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/page.tsx @@ -1,7 +1,4 @@ import { notFound } from "next/navigation"; - -import { api } from "@homarr/api/server"; -import { getScopedI18n } from "@homarr/translation/server"; import { Accordion, AccordionControl, @@ -9,14 +6,19 @@ import { AccordionPanel, Avatar, Group, + Stack, + Text, + Title, +} from "@mantine/core"; +import { IconAlertTriangleFilled, IconSettingsFilled, IconShieldLockFilled, IconUserFilled, - Stack, - Text, - Title, -} from "@homarr/ui"; +} from "@tabler/icons-react"; + +import { api } from "@homarr/api/server"; +import { getScopedI18n } from "@homarr/translation/server"; import { DangerZoneAccordion } from "./_components/dangerZone.accordion"; import { ProfileAccordion } from "./_components/profile.accordion"; diff --git a/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.component.tsx b/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.component.tsx index d99f635d6..ce7d771a6 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.component.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.component.tsx @@ -2,21 +2,14 @@ import { useMemo } from "react"; import Link from "next/link"; +import { Avatar, Button, Group, Text, ThemeIcon, Title } from "@mantine/core"; +import { IconCheck } from "@tabler/icons-react"; import type { MRT_ColumnDef } from "mantine-react-table"; import { MantineReactTable, useMantineReactTable } from "mantine-react-table"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { useScopedI18n } from "@homarr/translation/client"; -import { - Avatar, - Button, - Group, - IconCheck, - Text, - ThemeIcon, - Title, -} from "@homarr/ui"; interface UserListComponentProps { initialUserList: RouterOutputs["user"]["getAll"]; diff --git a/apps/nextjs/src/app/[locale]/manage/users/create/_components/create-user-stepper.tsx b/apps/nextjs/src/app/[locale]/manage/users/create/_components/create-user-stepper.tsx index 2654d3b25..654443af8 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/create/_components/create-user-stepper.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/create/_components/create-user-stepper.tsx @@ -1,21 +1,21 @@ "use client"; import { useCallback, useMemo, useState } from "react"; - -import { clientApi } from "@homarr/api/client"; -import { useForm, zodResolver } from "@homarr/form"; -import { useScopedI18n } from "@homarr/translation/client"; import { Avatar, Card, - IconUserCheck, PasswordInput, Stack, Stepper, Text, TextInput, Title, -} from "@homarr/ui"; +} from "@mantine/core"; +import { IconUserCheck } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import { useForm, zodResolver } from "@homarr/form"; +import { useScopedI18n } from "@homarr/translation/client"; import { validation, z } from "@homarr/validation"; import { StepperNavigationComponent } from "./stepper-navigation.component"; diff --git a/apps/nextjs/src/app/[locale]/manage/users/create/_components/stepper-navigation.component.tsx b/apps/nextjs/src/app/[locale]/manage/users/create/_components/stepper-navigation.component.tsx index 8d45c1442..1bbcee297 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/create/_components/stepper-navigation.component.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/create/_components/stepper-navigation.component.tsx @@ -1,15 +1,13 @@ import Link from "next/link"; - -import { useI18n } from "@homarr/translation/client"; +import { Button, Card, Group } from "@mantine/core"; import { - Button, - Card, - Group, IconArrowBackUp, IconArrowLeft, IconArrowRight, IconRotate, -} from "@homarr/ui"; +} from "@tabler/icons-react"; + +import { useI18n } from "@homarr/translation/client"; interface StepperNavigationComponentProps { hasPrevious: boolean; diff --git a/apps/nextjs/src/app/[locale]/not-found.tsx b/apps/nextjs/src/app/[locale]/not-found.tsx index c8544f231..2bffa0ff0 100644 --- a/apps/nextjs/src/app/[locale]/not-found.tsx +++ b/apps/nextjs/src/app/[locale]/not-found.tsx @@ -1,4 +1,4 @@ -import { Center } from "@homarr/ui"; +import { Center } from "@mantine/core"; export default function CommonNotFound() { return
404
; diff --git a/apps/nextjs/src/app/[locale]/widgets/[kind]/_content.tsx b/apps/nextjs/src/app/[locale]/widgets/[kind]/_content.tsx index bb86b44c9..049067f69 100644 --- a/apps/nextjs/src/app/[locale]/widgets/[kind]/_content.tsx +++ b/apps/nextjs/src/app/[locale]/widgets/[kind]/_content.tsx @@ -1,20 +1,18 @@ "use client"; import { useCallback, useMemo, useState } from "react"; +import { ActionIcon, Affix, Card } from "@mantine/core"; +import { + IconDimensions, + IconPencil, + IconToggleLeft, + IconToggleRight, +} from "@tabler/icons-react"; import type { IntegrationKind, WidgetKind } from "@homarr/definitions"; import { useModalAction } from "@homarr/modals"; import { showSuccessNotification } from "@homarr/notifications"; import { useScopedI18n } from "@homarr/translation/client"; -import { - ActionIcon, - Affix, - Card, - IconDimensions, - IconPencil, - IconToggleLeft, - IconToggleRight, -} from "@homarr/ui"; import { loadWidgetDynamic, reduceWidgetOptionsWithDefaultValues, diff --git a/apps/nextjs/src/app/[locale]/widgets/[kind]/_dimension-modal.tsx b/apps/nextjs/src/app/[locale]/widgets/[kind]/_dimension-modal.tsx index 17bd28fe7..964330fe7 100644 --- a/apps/nextjs/src/app/[locale]/widgets/[kind]/_dimension-modal.tsx +++ b/apps/nextjs/src/app/[locale]/widgets/[kind]/_dimension-modal.tsx @@ -1,9 +1,10 @@ "use client"; +import { Button, Group, InputWrapper, Slider, Stack } from "@mantine/core"; + import { useForm } from "@homarr/form"; import { createModal } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; -import { Button, Group, InputWrapper, Slider, Stack } from "@homarr/ui"; interface InnerProps { dimensions: Dimensions; diff --git a/apps/nextjs/src/app/[locale]/widgets/[kind]/page.tsx b/apps/nextjs/src/app/[locale]/widgets/[kind]/page.tsx index d00dbc8fe..87be98a9b 100644 --- a/apps/nextjs/src/app/[locale]/widgets/[kind]/page.tsx +++ b/apps/nextjs/src/app/[locale]/widgets/[kind]/page.tsx @@ -1,8 +1,8 @@ import { notFound } from "next/navigation"; +import { Center } from "@mantine/core"; import { db } from "@homarr/db"; import type { WidgetKind } from "@homarr/definitions"; -import { Center } from "@homarr/ui"; import { widgetImports } from "@homarr/widgets"; import { env } from "~/env.mjs"; diff --git a/apps/nextjs/src/components/active-tab-accordion.tsx b/apps/nextjs/src/components/active-tab-accordion.tsx index 9e416da06..bd000a0df 100644 --- a/apps/nextjs/src/components/active-tab-accordion.tsx +++ b/apps/nextjs/src/components/active-tab-accordion.tsx @@ -3,11 +3,10 @@ import type { PropsWithChildren } from "react"; import { useCallback } from "react"; import { usePathname } from "next/navigation"; +import type { AccordionProps } from "@mantine/core"; +import { Accordion } from "@mantine/core"; import { useShallowEffect } from "@mantine/hooks"; -import type { AccordionProps } from "@homarr/ui"; -import { Accordion } from "@homarr/ui"; - type ActiveTabAccordionProps = PropsWithChildren< Omit, "onChange"> >; diff --git a/apps/nextjs/src/components/board/items/item-select-modal.tsx b/apps/nextjs/src/components/board/items/item-select-modal.tsx index 1d5c86b7b..f01b09322 100644 --- a/apps/nextjs/src/components/board/items/item-select-modal.tsx +++ b/apps/nextjs/src/components/board/items/item-select-modal.tsx @@ -1,7 +1,8 @@ +import { Button, Card, Center, Grid, Stack, Text } from "@mantine/core"; + import type { WidgetKind } from "@homarr/definitions"; import { createModal } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; -import { Button, Card, Center, Grid, Stack, Text } from "@homarr/ui"; import { objectEntries } from "../../../../../../packages/common/src"; import { widgetImports } from "../../../../../../packages/widgets/src"; diff --git a/apps/nextjs/src/components/board/modals/board-rename-modal.tsx b/apps/nextjs/src/components/board/modals/board-rename-modal.tsx index e22ab8333..ef882be1e 100644 --- a/apps/nextjs/src/components/board/modals/board-rename-modal.tsx +++ b/apps/nextjs/src/components/board/modals/board-rename-modal.tsx @@ -1,10 +1,11 @@ "use client"; +import { Button, Group, Stack, TextInput } from "@mantine/core"; + import { clientApi } from "@homarr/api/client"; import { useForm } from "@homarr/form"; import { createModal } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; -import { Button, Group, Stack, TextInput } from "@homarr/ui"; import type { validation, z } from "@homarr/validation"; interface InnerProps { diff --git a/apps/nextjs/src/components/board/sections/category-section.tsx b/apps/nextjs/src/components/board/sections/category-section.tsx index 3397b045d..bbf9f54de 100644 --- a/apps/nextjs/src/components/board/sections/category-section.tsx +++ b/apps/nextjs/src/components/board/sections/category-section.tsx @@ -1,16 +1,14 @@ import type { RefObject } from "react"; -import { useDisclosure } from "@mantine/hooks"; - import { Card, Collapse, Group, - IconChevronDown, - IconChevronUp, Stack, Title, UnstyledButton, -} from "@homarr/ui"; +} from "@mantine/core"; +import { useDisclosure } from "@mantine/hooks"; +import { IconChevronDown, IconChevronUp } from "@tabler/icons-react"; import type { CategorySection } from "~/app/[locale]/boards/_types"; import { CategoryMenu } from "./category/category-menu"; diff --git a/apps/nextjs/src/components/board/sections/category/category-edit-modal.tsx b/apps/nextjs/src/components/board/sections/category/category-edit-modal.tsx index 119a95903..31fa67cad 100644 --- a/apps/nextjs/src/components/board/sections/category/category-edit-modal.tsx +++ b/apps/nextjs/src/components/board/sections/category/category-edit-modal.tsx @@ -1,7 +1,8 @@ +import { Button, Group, Stack, TextInput } from "@mantine/core"; + import { useForm } from "@homarr/form"; import { createModal } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; -import { Button, Group, Stack, TextInput } from "@homarr/ui"; interface Category { id: string; diff --git a/apps/nextjs/src/components/board/sections/category/category-menu.tsx b/apps/nextjs/src/components/board/sections/category/category-menu.tsx index a14189224..e82326cda 100644 --- a/apps/nextjs/src/components/board/sections/category/category-menu.tsx +++ b/apps/nextjs/src/components/board/sections/category/category-menu.tsx @@ -1,12 +1,8 @@ "use client"; import React, { useMemo } from "react"; -import { useAtomValue } from "jotai"; - -import { useScopedI18n } from "@homarr/translation/client"; -import type { TablerIcon } from "@homarr/ui"; +import { ActionIcon, Menu } from "@mantine/core"; import { - ActionIcon, IconDotsVertical, IconEdit, IconRowInsertBottom, @@ -14,8 +10,11 @@ import { IconTransitionBottom, IconTransitionTop, IconTrash, - Menu, -} from "@homarr/ui"; +} from "@tabler/icons-react"; +import { useAtomValue } from "jotai"; + +import { useScopedI18n } from "@homarr/translation/client"; +import type { TablerIcon } from "@homarr/ui"; import type { CategorySection } from "~/app/[locale]/boards/_types"; import { editModeAtom } from "../../editMode"; diff --git a/apps/nextjs/src/components/board/sections/content.tsx b/apps/nextjs/src/components/board/sections/content.tsx index a11192bdc..0c31c015d 100644 --- a/apps/nextjs/src/components/board/sections/content.tsx +++ b/apps/nextjs/src/components/board/sections/content.tsx @@ -2,21 +2,19 @@ // Ignored because of gridstack attributes import type { RefObject } from "react"; +import { ActionIcon, Card, Menu } from "@mantine/core"; import { useElementSize } from "@mantine/hooks"; +import { + IconDotsVertical, + IconLayoutKanban, + IconPencil, + IconTrash, +} from "@tabler/icons-react"; import combineClasses from "clsx"; import { useAtomValue } from "jotai"; import { useConfirmModal, useModalAction } from "@homarr/modals"; import { useScopedI18n } from "@homarr/translation/client"; -import { - ActionIcon, - Card, - IconDotsVertical, - IconLayoutKanban, - IconPencil, - IconTrash, - Menu, -} from "@homarr/ui"; import { loadWidgetDynamic, reduceWidgetOptionsWithDefaultValues, diff --git a/apps/nextjs/src/components/layout/background.tsx b/apps/nextjs/src/components/layout/background.tsx index 763d49324..262f977db 100644 --- a/apps/nextjs/src/components/layout/background.tsx +++ b/apps/nextjs/src/components/layout/background.tsx @@ -1,6 +1,5 @@ import { usePathname } from "next/navigation"; - -import type { AppShellProps } from "@homarr/ui"; +import type { AppShellProps } from "@mantine/core"; import { useOptionalBoard } from "~/app/[locale]/boards/_context"; diff --git a/apps/nextjs/src/components/layout/header.tsx b/apps/nextjs/src/components/layout/header.tsx index 65b9e76a5..996d78ab5 100644 --- a/apps/nextjs/src/components/layout/header.tsx +++ b/apps/nextjs/src/components/layout/header.tsx @@ -1,8 +1,8 @@ import type { ReactNode } from "react"; import Link from "next/link"; +import { AppShellHeader, Group, UnstyledButton } from "@mantine/core"; import { Spotlight } from "@homarr/spotlight"; -import { AppShellHeader, Group, UnstyledButton } from "@homarr/ui"; import { ClientBurger } from "./header/burger"; import { DesktopSearchInput, MobileSearchButton } from "./header/search"; diff --git a/apps/nextjs/src/components/layout/header/burger.tsx b/apps/nextjs/src/components/layout/header/burger.tsx index dd270a2be..3622ba116 100644 --- a/apps/nextjs/src/components/layout/header/burger.tsx +++ b/apps/nextjs/src/components/layout/header/burger.tsx @@ -1,10 +1,9 @@ "use client"; import { useCallback } from "react"; +import { Burger } from "@mantine/core"; import { atom, useAtom } from "jotai"; -import { Burger } from "@homarr/ui"; - export const navigationCollapsedAtom = atom(true); export const ClientBurger = () => { diff --git a/apps/nextjs/src/components/layout/header/button.tsx b/apps/nextjs/src/components/layout/header/button.tsx index 967dd837a..20636d8a3 100644 --- a/apps/nextjs/src/components/layout/header/button.tsx +++ b/apps/nextjs/src/components/layout/header/button.tsx @@ -1,9 +1,8 @@ import type { ForwardedRef, ReactNode } from "react"; import { forwardRef } from "react"; import Link from "next/link"; - -import type { ActionIconProps } from "@homarr/ui"; -import { ActionIcon } from "@homarr/ui"; +import type { ActionIconProps } from "@mantine/core"; +import { ActionIcon } from "@mantine/core"; type HeaderButtonProps = ( | { diff --git a/apps/nextjs/src/components/layout/header/search.tsx b/apps/nextjs/src/components/layout/header/search.tsx index 9cdf5b56e..4dad0404f 100644 --- a/apps/nextjs/src/components/layout/header/search.tsx +++ b/apps/nextjs/src/components/layout/header/search.tsx @@ -1,8 +1,10 @@ "use client"; +import { TextInput, UnstyledButton } from "@mantine/core"; +import { IconSearch } from "@tabler/icons-react"; + import { openSpotlight } from "@homarr/spotlight"; import { useScopedI18n } from "@homarr/translation/client"; -import { IconSearch, TextInput, UnstyledButton } from "@homarr/ui"; import { HeaderButton } from "./button"; import classes from "./search.module.css"; diff --git a/apps/nextjs/src/components/layout/header/user.tsx b/apps/nextjs/src/components/layout/header/user.tsx index 7bbc7fee1..5b5590bc7 100644 --- a/apps/nextjs/src/components/layout/header/user.tsx +++ b/apps/nextjs/src/components/layout/header/user.tsx @@ -1,4 +1,4 @@ -import { UnstyledButton } from "@homarr/ui"; +import { UnstyledButton } from "@mantine/core"; import { UserAvatar } from "~/components/user-avatar"; import { UserAvatarMenu } from "~/components/user-avatar-menu"; diff --git a/apps/nextjs/src/components/layout/logo/logo.tsx b/apps/nextjs/src/components/layout/logo/logo.tsx index 6c1af8aac..f8ba3757e 100644 --- a/apps/nextjs/src/components/layout/logo/logo.tsx +++ b/apps/nextjs/src/components/layout/logo/logo.tsx @@ -1,7 +1,6 @@ import Image from "next/image"; - -import type { TitleOrder } from "@homarr/ui"; -import { Group, Title } from "@homarr/ui"; +import type { TitleOrder } from "@mantine/core"; +import { Group, Title } from "@mantine/core"; interface LogoProps { size: number; diff --git a/apps/nextjs/src/components/layout/navigation-link.tsx b/apps/nextjs/src/components/layout/navigation-link.tsx index 5b325e8b7..e0a9f5c60 100644 --- a/apps/nextjs/src/components/layout/navigation-link.tsx +++ b/apps/nextjs/src/components/layout/navigation-link.tsx @@ -3,8 +3,7 @@ import type { ReactNode } from "react"; import Link from "next/link"; import { usePathname } from "next/navigation"; - -import { NavLink } from "@homarr/ui"; +import { NavLink } from "@mantine/core"; export const CommonNavLink = (props: ClientNavigationLink) => "href" in props ? ( diff --git a/apps/nextjs/src/components/layout/navigation.tsx b/apps/nextjs/src/components/layout/navigation.tsx index dab33742d..751c55cb1 100644 --- a/apps/nextjs/src/components/layout/navigation.tsx +++ b/apps/nextjs/src/components/layout/navigation.tsx @@ -1,5 +1,6 @@ +import { AppShellNavbar, AppShellSection, ScrollArea } from "@mantine/core"; + import type { TablerIcon } from "@homarr/ui"; -import { AppShellNavbar, AppShellSection, ScrollArea } from "@homarr/ui"; import type { ClientNavigationLink } from "./navigation-link"; import { CommonNavLink } from "./navigation-link"; diff --git a/apps/nextjs/src/components/layout/shell.tsx b/apps/nextjs/src/components/layout/shell.tsx index 9e5f73f90..b51cf3220 100644 --- a/apps/nextjs/src/components/layout/shell.tsx +++ b/apps/nextjs/src/components/layout/shell.tsx @@ -1,10 +1,9 @@ "use client"; import type { PropsWithChildren } from "react"; +import { AppShell } from "@mantine/core"; import { useAtomValue } from "jotai"; -import { AppShell } from "@homarr/ui"; - import { useOptionalBackgroundProps } from "./background"; import { navigationCollapsedAtom } from "./header/burger"; diff --git a/apps/nextjs/src/components/manage/boards/add-board-modal.tsx b/apps/nextjs/src/components/manage/boards/add-board-modal.tsx index 0966e45d9..9c9662866 100644 --- a/apps/nextjs/src/components/manage/boards/add-board-modal.tsx +++ b/apps/nextjs/src/components/manage/boards/add-board-modal.tsx @@ -1,9 +1,9 @@ +import { Button, Group, Stack, TextInput } from "@mantine/core"; import { boardSchemas } from "node_modules/@homarr/validation/src/board"; import { useForm, zodResolver } from "@homarr/form"; import { createModal } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; -import { Button, Group, Stack, TextInput } from "@homarr/ui"; import { z } from "@homarr/validation"; interface InnerProps { diff --git a/apps/nextjs/src/components/user-avatar-menu.tsx b/apps/nextjs/src/components/user-avatar-menu.tsx index 1745eb847..a71efb16c 100644 --- a/apps/nextjs/src/components/user-avatar-menu.tsx +++ b/apps/nextjs/src/components/user-avatar-menu.tsx @@ -2,17 +2,16 @@ import type { ReactNode } from "react"; import Link from "next/link"; - -import { useScopedI18n } from "@homarr/translation/client"; +import { Menu, useMantineColorScheme } from "@mantine/core"; import { IconDashboard, IconLogout, IconMoon, IconSun, IconTool, - Menu, - useMantineColorScheme, -} from "@homarr/ui"; +} from "@tabler/icons-react"; + +import { useScopedI18n } from "@homarr/translation/client"; interface UserAvatarMenuProps { children: ReactNode; diff --git a/apps/nextjs/src/components/user-avatar.tsx b/apps/nextjs/src/components/user-avatar.tsx index 0a4db570e..76a4025f1 100644 --- a/apps/nextjs/src/components/user-avatar.tsx +++ b/apps/nextjs/src/components/user-avatar.tsx @@ -1,6 +1,7 @@ +import type { AvatarProps, MantineSize } from "@mantine/core"; +import { Avatar } from "@mantine/core"; + import { auth } from "@homarr/auth"; -import type { AvatarProps, MantineSize } from "@homarr/ui"; -import { Avatar } from "@homarr/ui"; interface UserAvatarProps { size: MantineSize; diff --git a/package.json b/package.json index bc5b858be..cb4ca0eb8 100644 --- a/package.json +++ b/package.json @@ -40,5 +40,11 @@ "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.5.0" }, + "dependencies": { + "@mantine/core": "^7.8.0", + "@mantine/dates": "^7.8.0", + "@tabler/icons-react": "^3.2.0", + "mantine-react-table": "2.0.0-beta.1" + }, "prettier": "@homarr/prettier-config" } \ No newline at end of file diff --git a/packages/modals/src/confirm-modal.tsx b/packages/modals/src/confirm-modal.tsx index 4b90893af..6beef3a46 100644 --- a/packages/modals/src/confirm-modal.tsx +++ b/packages/modals/src/confirm-modal.tsx @@ -1,5 +1,7 @@ import { useCallback } from "react"; import type { ComponentPropsWithoutRef, ReactNode } from "react"; +import type { ButtonProps, GroupProps } from "@mantine/core"; +import { Box, Button, Group } from "@mantine/core"; import type { stringOrTranslation, @@ -7,8 +9,6 @@ import type { } from "@homarr/translation"; import { translateIfNecessary } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; -import type { ButtonProps, GroupProps } from "@homarr/ui"; -import { Box, Button, Group } from "@homarr/ui"; import { createModal } from "./creator"; diff --git a/packages/modals/src/index.tsx b/packages/modals/src/index.tsx index 01b476082..461dec4ee 100644 --- a/packages/modals/src/index.tsx +++ b/packages/modals/src/index.tsx @@ -8,12 +8,12 @@ import { useReducer, useRef, } from "react"; +import { getDefaultZIndex, Modal } from "@mantine/core"; import { randomId } from "@mantine/hooks"; import type { stringOrTranslation } from "@homarr/translation"; import { translateIfNecessary } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; -import { getDefaultZIndex, Modal } from "@homarr/ui"; import type { ConfirmModalProps } from "./confirm-modal"; import { ConfirmModal } from "./confirm-modal"; diff --git a/packages/modals/src/type.ts b/packages/modals/src/type.ts index a97e9a577..a5f2040e8 100644 --- a/packages/modals/src/type.ts +++ b/packages/modals/src/type.ts @@ -1,7 +1,7 @@ import type { ReactNode } from "react"; +import type { ModalProps } from "@mantine/core"; import type { stringOrTranslation } from "@homarr/translation"; -import type { ModalProps } from "@homarr/ui"; export type ModalComponent = (props: { actions: { closeModal: () => void }; diff --git a/packages/notifications/src/index.tsx b/packages/notifications/src/index.tsx index d0bf3514c..f63139abe 100644 --- a/packages/notifications/src/index.tsx +++ b/packages/notifications/src/index.tsx @@ -1,7 +1,6 @@ import type { NotificationData } from "@mantine/notifications"; import { notifications } from "@mantine/notifications"; - -import { IconCheck, IconX } from "@homarr/ui"; +import { IconCheck, IconX } from "@tabler/icons-react"; type CommonNotificationProps = Pick; diff --git a/packages/spotlight/src/chip-group.tsx b/packages/spotlight/src/chip-group.tsx index 3c3d83dcf..36437f348 100644 --- a/packages/spotlight/src/chip-group.tsx +++ b/packages/spotlight/src/chip-group.tsx @@ -1,5 +1,6 @@ +import { Chip } from "@mantine/core"; + import { useScopedI18n } from "@homarr/translation/client"; -import { Chip } from "@homarr/ui"; import { selectNextAction, diff --git a/packages/spotlight/src/component.tsx b/packages/spotlight/src/component.tsx index 6ed210a13..2f8a729b7 100644 --- a/packages/spotlight/src/component.tsx +++ b/packages/spotlight/src/component.tsx @@ -2,23 +2,16 @@ import { useCallback, useState } from "react"; import Link from "next/link"; +import { Center, Chip, Divider, Flex, Group, Text } from "@mantine/core"; import { Spotlight as MantineSpotlight, SpotlightAction, } from "@mantine/spotlight"; +import { IconSearch } from "@tabler/icons-react"; import { useAtomValue } from "jotai"; import type { TranslationFunction } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; -import { - Center, - Chip, - Divider, - Flex, - Group, - IconSearch, - Text, -} from "@homarr/ui"; import { GroupChip } from "./chip-group"; import classes from "./component.module.css"; diff --git a/packages/spotlight/src/web-search-engines.ts b/packages/spotlight/src/web-search-engines.ts index 79ade4068..870e4a96f 100644 --- a/packages/spotlight/src/web-search-engines.ts +++ b/packages/spotlight/src/web-search-engines.ts @@ -1,4 +1,4 @@ -import { IconDownload } from "@homarr/ui"; +import { IconDownload } from "@tabler/icons-react"; import { useRegisterSpotlightActions } from "./data-store"; diff --git a/packages/ui/index.ts b/packages/ui/index.ts index e1b845631..5b2133dba 100644 --- a/packages/ui/index.ts +++ b/packages/ui/index.ts @@ -1,8 +1,5 @@ import type { Icon123 } from "@tabler/icons-react"; -export * from "@mantine/core"; -export * from "@mantine/dates"; -export * from "@tabler/icons-react"; export * from "./src"; export type TablerIcon = typeof Icon123; diff --git a/packages/ui/package.json b/packages/ui/package.json index 31551daaf..e42396439 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -33,11 +33,5 @@ "@homarr/eslint-config/base" ] }, - "prettier": "@homarr/prettier-config", - "dependencies": { - "@mantine/core": "^7.8.0", - "@mantine/dates": "^7.8.0", - "@tabler/icons-react": "^3.2.0", - "mantine-react-table": "2.0.0-beta.1" - } + "prettier": "@homarr/prettier-config" } diff --git a/packages/widgets/src/_inputs/widget-app-input.tsx b/packages/widgets/src/_inputs/widget-app-input.tsx index e26c2215d..2ff70eb28 100644 --- a/packages/widgets/src/_inputs/widget-app-input.tsx +++ b/packages/widgets/src/_inputs/widget-app-input.tsx @@ -1,11 +1,12 @@ "use client"; import { memo, useMemo } from "react"; +import type { SelectProps } from "@mantine/core"; +import { Group, Loader, Select } from "@mantine/core"; +import { IconCheck } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; -import type { SelectProps } from "@homarr/ui"; -import { Group, IconCheck, Loader, Select } from "@homarr/ui"; import type { CommonWidgetInputProps } from "./common"; import { useWidgetInputTranslation } from "./common"; diff --git a/packages/widgets/src/_inputs/widget-location-input.tsx b/packages/widgets/src/_inputs/widget-location-input.tsx index 61dd4961a..9b035c515 100644 --- a/packages/widgets/src/_inputs/widget-location-input.tsx +++ b/packages/widgets/src/_inputs/widget-location-input.tsx @@ -2,19 +2,12 @@ import type { ChangeEvent } from "react"; import { useCallback } from "react"; - -import type { RouterOutputs } from "@homarr/api"; -import { clientApi } from "@homarr/api/client"; -import { createModal, useModalAction } from "@homarr/modals"; -import { useScopedI18n } from "@homarr/translation/client"; import { ActionIcon, Anchor, Button, Fieldset, Group, - IconClick, - IconListSearch, Loader, NumberInput, Stack, @@ -22,7 +15,13 @@ import { Text, TextInput, Tooltip, -} from "@homarr/ui"; +} from "@mantine/core"; +import { IconClick, IconListSearch } from "@tabler/icons-react"; + +import type { RouterOutputs } from "@homarr/api"; +import { clientApi } from "@homarr/api/client"; +import { createModal, useModalAction } from "@homarr/modals"; +import { useScopedI18n } from "@homarr/translation/client"; import type { OptionLocation } from "../options"; import type { CommonWidgetInputProps } from "./common"; diff --git a/packages/widgets/src/_inputs/widget-multiselect-input.tsx b/packages/widgets/src/_inputs/widget-multiselect-input.tsx index 745d33369..584c44117 100644 --- a/packages/widgets/src/_inputs/widget-multiselect-input.tsx +++ b/packages/widgets/src/_inputs/widget-multiselect-input.tsx @@ -1,6 +1,6 @@ "use client"; -import { MultiSelect } from "@homarr/ui"; +import { MultiSelect } from "@mantine/core"; import type { CommonWidgetInputProps } from "./common"; import { useWidgetInputTranslation } from "./common"; diff --git a/packages/widgets/src/_inputs/widget-number-input.tsx b/packages/widgets/src/_inputs/widget-number-input.tsx index eed76f112..116a0cc6b 100644 --- a/packages/widgets/src/_inputs/widget-number-input.tsx +++ b/packages/widgets/src/_inputs/widget-number-input.tsx @@ -1,6 +1,6 @@ "use client"; -import { NumberInput } from "@homarr/ui"; +import { NumberInput } from "@mantine/core"; import type { CommonWidgetInputProps } from "./common"; import { useWidgetInputTranslation } from "./common"; diff --git a/packages/widgets/src/_inputs/widget-select-input.tsx b/packages/widgets/src/_inputs/widget-select-input.tsx index 253350328..721c1ef98 100644 --- a/packages/widgets/src/_inputs/widget-select-input.tsx +++ b/packages/widgets/src/_inputs/widget-select-input.tsx @@ -1,6 +1,6 @@ "use client"; -import { Select } from "@homarr/ui"; +import { Select } from "@mantine/core"; import type { CommonWidgetInputProps } from "./common"; import { useWidgetInputTranslation } from "./common"; diff --git a/packages/widgets/src/_inputs/widget-slider-input.tsx b/packages/widgets/src/_inputs/widget-slider-input.tsx index 767f84f02..654f9d782 100644 --- a/packages/widgets/src/_inputs/widget-slider-input.tsx +++ b/packages/widgets/src/_inputs/widget-slider-input.tsx @@ -1,6 +1,6 @@ "use client"; -import { InputWrapper, Slider } from "@homarr/ui"; +import { InputWrapper, Slider } from "@mantine/core"; import type { CommonWidgetInputProps } from "./common"; import { useWidgetInputTranslation } from "./common"; diff --git a/packages/widgets/src/_inputs/widget-switch-input.tsx b/packages/widgets/src/_inputs/widget-switch-input.tsx index 7d18fab4a..369fd161d 100644 --- a/packages/widgets/src/_inputs/widget-switch-input.tsx +++ b/packages/widgets/src/_inputs/widget-switch-input.tsx @@ -1,6 +1,6 @@ "use client"; -import { Switch } from "@homarr/ui"; +import { Switch } from "@mantine/core"; import type { CommonWidgetInputProps } from "./common"; import { useWidgetInputTranslation } from "./common"; diff --git a/packages/widgets/src/_inputs/widget-text-input.tsx b/packages/widgets/src/_inputs/widget-text-input.tsx index 1d251c872..67f368a6f 100644 --- a/packages/widgets/src/_inputs/widget-text-input.tsx +++ b/packages/widgets/src/_inputs/widget-text-input.tsx @@ -1,6 +1,6 @@ "use client"; -import { TextInput } from "@homarr/ui"; +import { TextInput } from "@mantine/core"; import type { CommonWidgetInputProps } from "./common"; import { useWidgetInputTranslation } from "./common"; diff --git a/packages/widgets/src/app/component.tsx b/packages/widgets/src/app/component.tsx index df69f8e6a..98c67dde1 100644 --- a/packages/widgets/src/app/component.tsx +++ b/packages/widgets/src/app/component.tsx @@ -1,20 +1,20 @@ "use client"; import type { PropsWithChildren } from "react"; - -import { clientApi } from "@homarr/api/client"; -import { useRegisterSpotlightActions } from "@homarr/spotlight"; -import { useScopedI18n } from "@homarr/translation/client"; import { Center, Flex, - IconDeviceDesktopX, Loader, Stack, Text, Tooltip, UnstyledButton, -} from "@homarr/ui"; +} from "@mantine/core"; +import { IconDeviceDesktopX } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import { useRegisterSpotlightActions } from "@homarr/spotlight"; +import { useScopedI18n } from "@homarr/translation/client"; import type { WidgetComponentProps } from "../definition"; import classes from "./app.module.css"; diff --git a/packages/widgets/src/app/index.ts b/packages/widgets/src/app/index.ts index 848e08fc9..f6e2d7026 100644 --- a/packages/widgets/src/app/index.ts +++ b/packages/widgets/src/app/index.ts @@ -1,4 +1,4 @@ -import { IconApps } from "@homarr/ui"; +import { IconApps } from "@tabler/icons-react"; import { createWidgetDefinition } from "../definition"; import { optionsBuilder } from "../options"; diff --git a/packages/widgets/src/clock/component.tsx b/packages/widgets/src/clock/component.tsx index 2b649955b..466a3fb9b 100644 --- a/packages/widgets/src/clock/component.tsx +++ b/packages/widgets/src/clock/component.tsx @@ -1,13 +1,12 @@ "use client"; import { useEffect, useMemo, useRef, useState } from "react"; +import { Flex, Stack, Text } from "@mantine/core"; import dayjs from "dayjs"; import advancedFormat from "dayjs/plugin/advancedFormat"; import timezones from "dayjs/plugin/timezone"; import utc from "dayjs/plugin/utc"; -import { Flex, Stack, Text } from "@homarr/ui"; - import type { WidgetComponentProps } from "../definition"; dayjs.extend(advancedFormat); diff --git a/packages/widgets/src/clock/index.ts b/packages/widgets/src/clock/index.ts index 7f8a7c988..fed269b9b 100644 --- a/packages/widgets/src/clock/index.ts +++ b/packages/widgets/src/clock/index.ts @@ -1,7 +1,6 @@ +import { IconClock } from "@tabler/icons-react"; import dayjs from "dayjs"; -import { IconClock } from "@homarr/ui"; - import { createWidgetDefinition } from "../definition"; import { optionsBuilder } from "../options"; diff --git a/packages/widgets/src/iframe/component.tsx b/packages/widgets/src/iframe/component.tsx index df8a54244..31205fb8d 100644 --- a/packages/widgets/src/iframe/component.tsx +++ b/packages/widgets/src/iframe/component.tsx @@ -1,6 +1,8 @@ +import { Box, Stack, Text, Title } from "@mantine/core"; +import { IconBrowserOff } from "@tabler/icons-react"; + import { objectEntries } from "@homarr/common"; import { useI18n } from "@homarr/translation/client"; -import { Box, IconBrowserOff, Stack, Text, Title } from "@homarr/ui"; import type { WidgetComponentProps } from "../definition"; import classes from "./component.module.css"; diff --git a/packages/widgets/src/iframe/index.ts b/packages/widgets/src/iframe/index.ts index 2af7c5587..5da19beeb 100644 --- a/packages/widgets/src/iframe/index.ts +++ b/packages/widgets/src/iframe/index.ts @@ -1,4 +1,4 @@ -import { IconBrowser } from "@homarr/ui"; +import { IconBrowser } from "@tabler/icons-react"; import { createWidgetDefinition } from "../definition"; import { optionsBuilder } from "../options"; diff --git a/packages/widgets/src/index.tsx b/packages/widgets/src/index.tsx index dfa38b1ba..93d106117 100644 --- a/packages/widgets/src/index.tsx +++ b/packages/widgets/src/index.tsx @@ -1,9 +1,9 @@ import type { ComponentType } from "react"; import type { Loader } from "next/dynamic"; import dynamic from "next/dynamic"; +import { Loader as UiLoader } from "@mantine/core"; import type { WidgetKind } from "@homarr/definitions"; -import { Loader as UiLoader } from "@homarr/ui"; import * as app from "./app"; import * as clock from "./clock"; diff --git a/packages/widgets/src/modals/widget-edit-modal.tsx b/packages/widgets/src/modals/widget-edit-modal.tsx index 9bfad6d0b..ec8abc118 100644 --- a/packages/widgets/src/modals/widget-edit-modal.tsx +++ b/packages/widgets/src/modals/widget-edit-modal.tsx @@ -1,9 +1,10 @@ "use client"; +import { Button, Group, Stack } from "@mantine/core"; + import type { WidgetKind } from "@homarr/definitions"; import { createModal } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; -import { Button, Group, Stack } from "@homarr/ui"; import { widgetImports } from ".."; import { getInputForType } from "../_inputs"; diff --git a/packages/widgets/src/notebook/index.ts b/packages/widgets/src/notebook/index.ts index 81f6ff0f8..36ef69660 100644 --- a/packages/widgets/src/notebook/index.ts +++ b/packages/widgets/src/notebook/index.ts @@ -1,4 +1,4 @@ -import { IconNotes } from "@homarr/ui"; +import { IconNotes } from "@tabler/icons-react"; import { createWidgetDefinition } from "../definition"; import { optionsBuilder } from "../options"; diff --git a/packages/widgets/src/video/component.tsx b/packages/widgets/src/video/component.tsx index 689b66ba3..e9b373bf7 100644 --- a/packages/widgets/src/video/component.tsx +++ b/packages/widgets/src/video/component.tsx @@ -1,19 +1,12 @@ "use client"; import { useEffect, useRef } from "react"; +import { Anchor, Center, Group, Stack, Title } from "@mantine/core"; +import { IconBrandYoutube, IconDeviceCctvOff } from "@tabler/icons-react"; import combineClasses from "clsx"; import videojs from "video.js"; import { useI18n } from "@homarr/translation/client"; -import { - Anchor, - Center, - Group, - IconBrandYoutube, - IconDeviceCctvOff, - Stack, - Title, -} from "@homarr/ui"; import type { WidgetComponentProps } from "../definition"; import classes from "./component.module.css"; diff --git a/packages/widgets/src/video/index.ts b/packages/widgets/src/video/index.ts index c95278bf1..616ca62ba 100644 --- a/packages/widgets/src/video/index.ts +++ b/packages/widgets/src/video/index.ts @@ -1,4 +1,4 @@ -import { IconDeviceCctv } from "@homarr/ui"; +import { IconDeviceCctv } from "@tabler/icons-react"; import { createWidgetDefinition } from "../definition"; import { optionsBuilder } from "../options"; diff --git a/packages/widgets/src/weather/component.tsx b/packages/widgets/src/weather/component.tsx index aecbbc2af..f6c41a7c6 100644 --- a/packages/widgets/src/weather/component.tsx +++ b/packages/widgets/src/weather/component.tsx @@ -1,16 +1,12 @@ -import type { RouterOutputs } from "@homarr/api"; -import { clientApi } from "@homarr/api/client"; +import { Card, Flex, Group, Stack, Text, Title } from "@mantine/core"; import { - Card, - Flex, - Group, IconArrowDownRight, IconArrowUpRight, IconMapPin, - Stack, - Text, - Title, -} from "@homarr/ui"; +} from "@tabler/icons-react"; + +import type { RouterOutputs } from "@homarr/api"; +import { clientApi } from "@homarr/api/client"; import type { WidgetComponentProps } from "../definition"; import { WeatherIcon } from "./icon"; diff --git a/packages/widgets/src/weather/icon.tsx b/packages/widgets/src/weather/icon.tsx index 3aba71a0f..5c2839b8c 100644 --- a/packages/widgets/src/weather/icon.tsx +++ b/packages/widgets/src/weather/icon.tsx @@ -1,8 +1,5 @@ -import type { TranslationObject } from "@homarr/translation"; -import { useScopedI18n } from "@homarr/translation/client"; -import type { TablerIcon } from "@homarr/ui"; +import { Box, Tooltip } from "@mantine/core"; import { - Box, IconCloud, IconCloudFog, IconCloudRain, @@ -11,8 +8,11 @@ import { IconQuestionMark, IconSnowflake, IconSun, - Tooltip, -} from "@homarr/ui"; +} from "@tabler/icons-react"; + +import type { TranslationObject } from "@homarr/translation"; +import { useScopedI18n } from "@homarr/translation/client"; +import type { TablerIcon } from "@homarr/ui"; interface WeatherIconProps { code: number; diff --git a/packages/widgets/src/weather/index.ts b/packages/widgets/src/weather/index.ts index ba441fb97..28805cc1e 100644 --- a/packages/widgets/src/weather/index.ts +++ b/packages/widgets/src/weather/index.ts @@ -1,4 +1,5 @@ -import { IconCloud } from "@homarr/ui"; +import { IconCloud } from "@tabler/icons-react"; + import { z } from "@homarr/validation"; import { createWidgetDefinition } from "../definition"; diff --git a/packages/widgets/src/widget-integration-select.tsx b/packages/widgets/src/widget-integration-select.tsx index 5074e83b6..f59a0c9db 100644 --- a/packages/widgets/src/widget-integration-select.tsx +++ b/packages/widgets/src/widget-integration-select.tsx @@ -1,10 +1,6 @@ "use client"; import type { FocusEventHandler } from "react"; - -import type { IntegrationKind } from "@homarr/definitions"; -import { getIconUrl } from "@homarr/definitions"; -import { useI18n } from "@homarr/translation/client"; import { Avatar, CheckIcon, @@ -17,7 +13,11 @@ import { Stack, Text, useCombobox, -} from "@homarr/ui"; +} from "@mantine/core"; + +import type { IntegrationKind } from "@homarr/definitions"; +import { getIconUrl } from "@homarr/definitions"; +import { useI18n } from "@homarr/translation/client"; import classes from "./widget-integration-select.module.css"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1472d46a4..de1968f27 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,13 +7,26 @@ settings: importers: .: + dependencies: + '@mantine/core': + specifier: ^7.8.0 + version: 7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mantine/dates': + specifier: ^7.8.0 + version: 7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react@18.2.0) + '@tabler/icons-react': + specifier: ^3.2.0 + version: 3.2.0(react@18.2.0) + mantine-react-table: + specifier: 2.0.0-beta.1 + version: 2.0.0-beta.1(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mantine/dates@7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(@tabler/icons-react@3.2.0(react@18.2.0))(clsx@2.1.0)(dayjs@1.11.10)(react@18.2.0) devDependencies: '@homarr/prettier-config': specifier: workspace:^0.1.0 version: link:tooling/prettier '@testing-library/react-hooks': specifier: ^8.0.1 - version: 8.0.1(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 8.0.1(@types/react@18.2.79)(react@18.2.0) '@turbo/gen': specifier: ^1.13.2 version: 1.13.2(@types/node@20.12.7)(typescript@5.4.5) @@ -711,19 +724,6 @@ importers: version: 5.4.5 packages/ui: - dependencies: - '@mantine/core': - specifier: ^7.8.0 - version: 7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mantine/dates': - specifier: ^7.8.0 - version: 7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@tabler/icons-react': - specifier: ^3.2.0 - version: 3.2.0(react@18.2.0) - mantine-react-table: - specifier: 2.0.0-beta.1 - version: 2.0.0-beta.1(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/dates@7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(@tabler/icons-react@3.2.0(react@18.2.0))(clsx@2.1.0)(dayjs@1.11.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -6361,14 +6361,13 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@mantine/dates@7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@mantine/dates@7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react@18.2.0)': dependencies: '@mantine/core': 7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mantine/hooks': 7.8.0(react@18.2.0) clsx: 2.1.0 dayjs: 1.11.10 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) '@mantine/form@7.8.0(react@18.2.0)': dependencies: @@ -6607,30 +6606,27 @@ snapshots: '@tanstack/query-core': 5.29.0 react: 18.2.0 - '@tanstack/react-table@8.15.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@tanstack/react-table@8.15.0(react@18.2.0)': dependencies: '@tanstack/table-core': 8.14.0 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - '@tanstack/react-virtual@3.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@tanstack/react-virtual@3.2.0(react@18.2.0)': dependencies: '@tanstack/virtual-core': 3.2.0 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) '@tanstack/table-core@8.14.0': {} '@tanstack/virtual-core@3.2.0': {} - '@testing-library/react-hooks@8.0.1(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@testing-library/react-hooks@8.0.1(@types/react@18.2.79)(react@18.2.0)': dependencies: '@babel/runtime': 7.23.9 react: 18.2.0 react-error-boundary: 3.1.4(react@18.2.0) optionalDependencies: '@types/react': 18.2.79 - react-dom: 18.2.0(react@18.2.0) '@tiptap/core@2.2.6(@tiptap/pm@2.2.4)': dependencies: @@ -9153,19 +9149,18 @@ snapshots: make-error@1.3.6: {} - mantine-react-table@2.0.0-beta.1(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/dates@7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(@tabler/icons-react@3.2.0(react@18.2.0))(clsx@2.1.0)(dayjs@1.11.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + mantine-react-table@2.0.0-beta.1(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mantine/dates@7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(@tabler/icons-react@3.2.0(react@18.2.0))(clsx@2.1.0)(dayjs@1.11.10)(react@18.2.0): dependencies: '@mantine/core': 7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@mantine/dates': 7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mantine/dates': 7.8.0(@mantine/core@7.8.0(@mantine/hooks@7.8.0(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mantine/hooks@7.8.0(react@18.2.0))(dayjs@1.11.10)(react@18.2.0) '@mantine/hooks': 7.8.0(react@18.2.0) '@tabler/icons-react': 3.2.0(react@18.2.0) '@tanstack/match-sorter-utils': 8.11.8 - '@tanstack/react-table': 8.15.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@tanstack/react-virtual': 3.2.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@tanstack/react-table': 8.15.0(react@18.2.0) + '@tanstack/react-virtual': 3.2.0(react@18.2.0) clsx: 2.1.0 dayjs: 1.11.10 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) markdown-it@14.0.0: dependencies: