diff --git a/package-lock.json b/package-lock.json
index eba05e4..1c31ce1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,10 +9,10 @@
"version": "1.0.0",
"dependencies": {
"@hello-pangea/dnd": "^18.0.1",
- "@mantine/core": "^8.1.2",
- "@mantine/form": "^8.1.2",
- "@mantine/hooks": "^8.1.2",
- "@mantine/notifications": "^8.1.2",
+ "@mantine/core": "^8.1.3",
+ "@mantine/form": "^8.1.3",
+ "@mantine/hooks": "^8.1.3",
+ "@mantine/notifications": "^8.1.3",
"@tanstack/react-query": "^5.81.5",
"@tanstack/react-query-devtools": "^5.81.5",
"@tanstack/react-query-persist-client": "^5.81.5",
@@ -32,7 +32,7 @@
"@vitest/coverage-v8": "^3.2.4",
"@vitest/ui": "^3.2.4",
"typescript": "^5.8.3",
- "vite": "^7.0.1",
+ "vite": "^7.0.2",
"vite-plugin-dts": "~4.5.4",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.2.4"
@@ -931,9 +931,9 @@
}
},
"node_modules/@mantine/core": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.1.2.tgz",
- "integrity": "sha512-+maX0a1+fxh6Lvnzi0qb0AZsCnnHlIiTE/hFC+dd3eRfUW2PEKJ5/wTpmrX8IGyxa+NS+fXjZD/cU4Yt9xNjdg==",
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.1.3.tgz",
+ "integrity": "sha512-2WOPC8GSN3MApet0MccSn6LaXRhcP6SVtZnbuHoqJ/atrfK7kLE66ILr4OXov7JAj1ASJ4Xk0bOXmu5fBExAvQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/react": "^0.26.28",
@@ -944,15 +944,15 @@
"type-fest": "^4.27.0"
},
"peerDependencies": {
- "@mantine/hooks": "8.1.2",
+ "@mantine/hooks": "8.1.3",
"react": "^18.x || ^19.x",
"react-dom": "^18.x || ^19.x"
}
},
"node_modules/@mantine/form": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/@mantine/form/-/form-8.1.2.tgz",
- "integrity": "sha512-w+PWUQPE3JDiK4ZBWN+WtfixWtt/+KavHjsSjCxIuUodzygdkV/4bWtPKYx7dFQTozWhfMVqxtORhn3no28Qwg==",
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@mantine/form/-/form-8.1.3.tgz",
+ "integrity": "sha512-OoSVv2cyjKRZ+C4Rw63VsnO3qjKGZHJkd6DSJTVRQHXfDr10hxmC5yXgxGKsxGQ+xFd4ZCdtzPUU2BoWbHfZAA==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -963,34 +963,34 @@
}
},
"node_modules/@mantine/hooks": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.1.2.tgz",
- "integrity": "sha512-BrriTsiazqZ2fLuL7UDasNTQJSaoJ7mN2qYVkdsiYI158lxJdUaFWHhd6BDyzK+W6thvBx2D+R/hh1rsWWefdQ==",
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.1.3.tgz",
+ "integrity": "sha512-yL4SbyYjrkmtIhscswajNz9RL0iO2+V8CMtOi0KISch2rPNvTAJNumFuZaXgj4UHeDc0JQYSmcZ+EW8NGm7xcQ==",
"license": "MIT",
"peerDependencies": {
"react": "^18.x || ^19.x"
}
},
"node_modules/@mantine/notifications": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-8.1.2.tgz",
- "integrity": "sha512-9yqMRz9KlU0rXYc2xB+gfKwm6wt5e05B2eCAx0QcSDaxUl2EIfDINqdD+rTTvuWDxiQoN16wF/VJvFHn9wj3Xw==",
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-8.1.3.tgz",
+ "integrity": "sha512-Xy6f/l1yLTo77hz8X80sOuY+HW80e1rn8ucygx9TAexK5+XtyriOv26TQ3EJ6Ej5jlchtZRFEUJ4tJGRWjGCNg==",
"license": "MIT",
"dependencies": {
- "@mantine/store": "8.1.2",
+ "@mantine/store": "8.1.3",
"react-transition-group": "4.4.5"
},
"peerDependencies": {
- "@mantine/core": "8.1.2",
- "@mantine/hooks": "8.1.2",
+ "@mantine/core": "8.1.3",
+ "@mantine/hooks": "8.1.3",
"react": "^18.x || ^19.x",
"react-dom": "^18.x || ^19.x"
}
},
"node_modules/@mantine/store": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/@mantine/store/-/store-8.1.2.tgz",
- "integrity": "sha512-Dt7NJc2+kvtpWkTXR5Mwmwo5zluFM9n6UYaIn4i726PPoABCAvQU4wwkw9GkOEdPNkRcnRdNg5SxWa+QZY/4ag==",
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@mantine/store/-/store-8.1.3.tgz",
+ "integrity": "sha512-rO72LfSJqSNCwufqJxTWiHMyOR6sR3mqAcnBcw/f5aTvyOYoHZzlm4q4+TL8/2vYGRVsr9YM2Ez6HQ1vk/RR8g==",
"license": "MIT",
"peerDependencies": {
"react": "^18.x || ^19.x"
@@ -4517,9 +4517,9 @@
}
},
"node_modules/vite": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.1.tgz",
- "integrity": "sha512-BiKOQoW5HGR30E6JDeNsati6HnSPMVEKbkIWbCiol+xKeu3g5owrjy7kbk/QEMuzCV87dSUTvycYKmlcfGKq3Q==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.2.tgz",
+ "integrity": "sha512-hxdyZDY1CM6SNpKI4w4lcUc3Mtkd9ej4ECWVHSMrOdSinVc2zYOAppHeGc/hzmRo3pxM5blMzkuWHOJA/3NiFw==",
"dev": true,
"license": "MIT",
"dependencies": {
diff --git a/package.json b/package.json
index c4a430a..eaaecc5 100644
--- a/package.json
+++ b/package.json
@@ -11,10 +11,10 @@
},
"dependencies": {
"@hello-pangea/dnd": "^18.0.1",
- "@mantine/core": "^8.1.2",
- "@mantine/form": "^8.1.2",
- "@mantine/hooks": "^8.1.2",
- "@mantine/notifications": "^8.1.2",
+ "@mantine/core": "^8.1.3",
+ "@mantine/form": "^8.1.3",
+ "@mantine/hooks": "^8.1.3",
+ "@mantine/notifications": "^8.1.3",
"@tanstack/react-query": "^5.81.5",
"@tanstack/react-query-devtools": "^5.81.5",
"@tanstack/react-query-persist-client": "^5.81.5",
@@ -34,7 +34,7 @@
"@vitest/coverage-v8": "^3.2.4",
"@vitest/ui": "^3.2.4",
"typescript": "^5.8.3",
- "vite": "^7.0.1",
+ "vite": "^7.0.2",
"vite-plugin-dts": "~4.5.4",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.2.4"
diff --git a/src/pages/homepage/components/Applications/AppItem.tsx b/src/pages/homepage/components/Applications/AppItem.tsx
index 7e7295d..69b9352 100644
--- a/src/pages/homepage/components/Applications/AppItem.tsx
+++ b/src/pages/homepage/components/Applications/AppItem.tsx
@@ -4,7 +4,7 @@ import { useState } from 'react';
import * as fa6 from 'react-icons/fa6';
import * as si from 'react-icons/si';
import * as vsc from 'react-icons/vsc';
-import { stackClasses, textClasses } from 'styles';
+import { boxClasses, textClasses } from 'styles';
function AppItem({ url, icon, name }: { url: string; icon: string; name: string }) {
const allIcons: any = { ...fa6, ...vsc, ...si };
@@ -26,7 +26,8 @@ function AppItem({ url, icon, name }: { url: string; icon: string; name: string
setTextDecoration('none');
setHover(false);
}}
- className={stackClasses.appItemBox}
+ className={boxClasses.appItemBox}
+ h={'64px'}
>
{hover && (
}
diff --git a/src/pages/homepage/components/Applications/Applications.tsx b/src/pages/homepage/components/Applications/Applications.tsx
index 6dfcd12..5a9bea0 100644
--- a/src/pages/homepage/components/Applications/Applications.tsx
+++ b/src/pages/homepage/components/Applications/Applications.tsx
@@ -41,20 +41,15 @@ function Applications({ contentType }: { contentType: string[] }) {
return (
<>
{applications.length > 0 && contentType.length > 0 && (
-
+
Applications
{applications
diff --git a/src/pages/homepage/components/Bookmarks/BookmarkGroups.tsx b/src/pages/homepage/components/Bookmarks/BookmarkGroups.tsx
index c37b9db..500ad8d 100644
--- a/src/pages/homepage/components/Bookmarks/BookmarkGroups.tsx
+++ b/src/pages/homepage/components/Bookmarks/BookmarkGroups.tsx
@@ -13,9 +13,7 @@ function BookmarkGroups({
return (
0 &&
contentType.length > 0 && (
-
+
Bookmarks
{groups
diff --git a/src/pages/homepage/components/Header/Header.tsx b/src/pages/homepage/components/Header/Header.tsx
index a64c1eb..3be6fbb 100644
--- a/src/pages/homepage/components/Header/Header.tsx
+++ b/src/pages/homepage/components/Header/Header.tsx
@@ -71,20 +71,10 @@ function Header({
return (
-
+
-
+
{current.temperature}°F
-
+
{`${
time.getHours() === 0
? 12
diff --git a/src/pages/homepage/components/Header/LargeHeader.tsx b/src/pages/homepage/components/Header/LargeHeader.tsx
index 76dca07..50095f6 100644
--- a/src/pages/homepage/components/Header/LargeHeader.tsx
+++ b/src/pages/homepage/components/Header/LargeHeader.tsx
@@ -87,13 +87,7 @@ function LargeHeader({
>
{date}
-
+
{`${
time.getHours() === 0
? 12
diff --git a/src/pages/homepage/components/Search/Search.tsx b/src/pages/homepage/components/Search/Search.tsx
index 21cf4db..7c81e52 100644
--- a/src/pages/homepage/components/Search/Search.tsx
+++ b/src/pages/homepage/components/Search/Search.tsx
@@ -323,7 +323,7 @@ export default function Search({
return (
<>
- {dropdownOpened && }
+ {dropdownOpened && }
-
+
-
+
-
+
}
onClick={() => navigate(`/${import.meta.env.VITE_BASE_URL}/settings`)}
diff --git a/src/pages/homepage/components/SettingsButton/SettingsCard.tsx b/src/pages/homepage/components/SettingsButton/SettingsCard.tsx
index 8adb551..21fc44c 100644
--- a/src/pages/homepage/components/SettingsButton/SettingsCard.tsx
+++ b/src/pages/homepage/components/SettingsButton/SettingsCard.tsx
@@ -31,7 +31,6 @@ function SettingsCard({
return (
setDensity(value)}
min={1}
diff --git a/src/pages/homepage/components/SettingsButton/ThemingCard.tsx b/src/pages/homepage/components/SettingsButton/ThemingCard.tsx
index 0075279..c8fee62 100644
--- a/src/pages/homepage/components/SettingsButton/ThemingCard.tsx
+++ b/src/pages/homepage/components/SettingsButton/ThemingCard.tsx
@@ -29,6 +29,7 @@ function ThemingCard() {
}
}, [allThemeData, allThemeDataIsFetched]);
const {
+ isMobile,
currentTheme,
setCurrentTheme,
setThemeName,
@@ -40,10 +41,9 @@ function ThemingCard() {
return (
Themes
diff --git a/src/pages/homepage/components/SettingsButton/WakeOnLanCard.tsx b/src/pages/homepage/components/SettingsButton/WakeOnLanCard.tsx
index ceddc34..352f004 100644
--- a/src/pages/homepage/components/SettingsButton/WakeOnLanCard.tsx
+++ b/src/pages/homepage/components/SettingsButton/WakeOnLanCard.tsx
@@ -1,4 +1,5 @@
import { Button, type ComboboxItem, Menu, Select, Stack } from '@mantine/core';
+import { useCommonHooks } from 'hooks';
import { FiPower } from 'react-icons/fi';
import { buttonClasses, selectClasses, stackClasses } from 'styles';
import type { WolClient } from 'types';
@@ -14,13 +15,13 @@ function WakeOnLan({
setSelectedClient: any;
handleWakeRequest: () => void;
}) {
+ const { isMobile } = useCommonHooks();
return (
Wake on LAN
{
/>
{dragging ? (
-
+
{(provided) => (
{
) : (
-
+
{groups.length > 0 ? (
groups?.map((group: BookmarkGroup) => (
@@ -303,9 +293,7 @@ const BookmarkSettings = () => {
/>
))
) : (
-
-
-
+
)}
diff --git a/src/pages/settings/components/Messages/Messages.tsx b/src/pages/settings/components/Messages/Messages.tsx
index 5ae388b..18aa7ea 100644
--- a/src/pages/settings/components/Messages/Messages.tsx
+++ b/src/pages/settings/components/Messages/Messages.tsx
@@ -80,7 +80,7 @@ const MessageSettings = () => {
handleClose={handleClose}
title={'Add a new message'}
body={
-
+
{
}
/>
-
+
{messages.length > 0 ? (
messages?.map((message: Message) => (
@@ -138,11 +133,7 @@ const MessageSettings = () => {
))
) : (
-
+
)}
diff --git a/src/pages/settings/components/Personalization/Personalization.tsx b/src/pages/settings/components/Personalization/Personalization.tsx
index 6c521ac..34dfa10 100644
--- a/src/pages/settings/components/Personalization/Personalization.tsx
+++ b/src/pages/settings/components/Personalization/Personalization.tsx
@@ -66,11 +66,8 @@ const PersonalizationSettings = () => {
isLoading={false}
setIsLoading={() => {}}
/>
-
-
+
+
{personalIsFetching && (
{
isLoading={isLoading}
setIsLoading={setIsLoading}
/>
-
+
{providers.length > 0 ? (
providers?.map((provider: Provider) => (
diff --git a/src/pages/settings/components/Shared/SettingsHeader.tsx b/src/pages/settings/components/Shared/SettingsHeader.tsx
index af8dc17..e86c152 100644
--- a/src/pages/settings/components/Shared/SettingsHeader.tsx
+++ b/src/pages/settings/components/Shared/SettingsHeader.tsx
@@ -58,10 +58,6 @@ function SettingsHeader({
paddingTop: '1.5rem',
paddingBottom: '1.5rem',
paddingLeft: '1rem',
- height: 'min-content',
- width: '100%',
- marginTop: 0,
- position: 'absolute',
}}
>
diff --git a/src/pages/settings/components/Theming/ThemeExampleApp.tsx b/src/pages/settings/components/Theming/ThemeExampleApp.tsx
index b32f6b9..e815945 100644
--- a/src/pages/settings/components/Theming/ThemeExampleApp.tsx
+++ b/src/pages/settings/components/Theming/ThemeExampleApp.tsx
@@ -1,7 +1,7 @@
import { Box, Stack, Text } from '@mantine/core';
import { useState } from 'react';
import { FiCheck } from 'react-icons/fi';
-import { stackClasses } from 'styles';
+import { boxClasses, textClasses } from 'styles';
import type { Theme } from 'types';
function ExampleApp({ selectedTheme }: { selectedTheme: Theme }) {
@@ -12,50 +12,33 @@ function ExampleApp({ selectedTheme }: { selectedTheme: Theme }) {
component='a'
onMouseOver={() => setTextDecoration('underline')}
onMouseOut={() => setTextDecoration('none')}
- className={stackClasses.appItemBox}
+ className={boxClasses.appItemBox}
+ h={'64px'}
>
-
+
-
+
{'Example App'}
diff --git a/src/pages/settings/components/Theming/ThemeModalContent.tsx b/src/pages/settings/components/Theming/ThemeModalContent.tsx
index 28029c5..0dcdd77 100644
--- a/src/pages/settings/components/Theming/ThemeModalContent.tsx
+++ b/src/pages/settings/components/Theming/ThemeModalContent.tsx
@@ -141,7 +141,6 @@ export default function ThemeModalContent({ selectedTheme }: { selectedTheme: Th
{
openModal();
}}
>
-
+
)}
-
-
+
+
{allThemeData && (
<>
-
+
+
-
-
- {allThemes.length > 0 ? (
- allThemes.map((cardTheme: Theme) => (
-
- {cardTheme.name === currentTheme && (
-
+
+
+ {allThemes.length > 0 ? (
+ allThemes.map((cardTheme: Theme) => (
+
+ {cardTheme.name === currentTheme && (
+
+ )}
+
+ t.name.toLowerCase() === currentThemePlaylist.toLowerCase(),
+ )[0]
+ ?.themeList.includes(`${cardTheme.id}`) ||
+ cardTheme.name === theme.name)
+ ? 195
+ : 0,
}}
- />
- )}
-
- t.name.toLowerCase() === currentThemePlaylist.toLowerCase(),
- )[0]
- ?.themeList.includes(`${cardTheme.id}`) ||
- cardTheme.name === theme.name)
- ? 195
- : 0,
- }}
- >
-
-
+ >
+
+
+
+ ))
+ ) : (
+
+
- ))
- ) : (
-
-
-
- )}
-
+ )}
+
+
-
+
{
isLoading={isLoading}
setIsLoading={setIsLoading}
/>
-
+
{wolClients.length > 0 ? (
wolClients?.map((client: WolClient) => (
diff --git a/src/styles/Box.module.css b/src/styles/Box.module.css
index 0ed496b..0d7052f 100644
--- a/src/styles/Box.module.css
+++ b/src/styles/Box.module.css
@@ -13,15 +13,14 @@
.appItemBox {
display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- height: 128px;
+ flex: 1;
margin: 0;
backdrop-filter: blur(5px) brightness(1.2);
border-radius: 6px;
font-size: 2rem;
- font-weight: 400;
text-transform: uppercase;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
.appItemBox rect {
diff --git a/src/styles/ScrollArea.module.css b/src/styles/ScrollArea.module.css
index 93ff581..3f66561 100644
--- a/src/styles/ScrollArea.module.css
+++ b/src/styles/ScrollArea.module.css
@@ -1,4 +1,5 @@
.default {
+ height: 100%;
.thumb {
background-color: var(--mantine-color-primary-0);
z-index: 1000;
diff --git a/src/styles/Stack.module.css b/src/styles/Stack.module.css
index 9bfdef3..6cdfe0b 100644
--- a/src/styles/Stack.module.css
+++ b/src/styles/Stack.module.css
@@ -12,45 +12,11 @@
height: auto;
}
-.appItemBox {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- height: 64px;
- margin: 0;
- backdrop-filter: blur(5px) brightness(1.2);
- border-radius: 6px;
- font-size: 1rem;
- font-weight: 400;
- text-transform: uppercase;
-}
-
-.appItemBox rect {
- border-radius: 6px;
- stroke-dasharray: 260;
- stroke-width: 10px;
- fill: transparent;
- stroke: var(--mantine-color-search-0);
- animation: svgAnimation 1.5s linear infinite;
-}
-
-.appItemBox rect::after {
- filter: blur(5px);
-}
-
-@keyframes svgAnimation {
- from {
- stroke-dashoffset: 0;
- }
- to {
- stroke-dashoffset: 1000;
- }
-}
-
.menuStack {
height: 150px;
background-color: var(--mantine-color-search-0);
border-radius: 10px;
+ align-items: center !important;
}
.fadeAway {
diff --git a/src/styles/Text.module.css b/src/styles/Text.module.css
index fec97ae..9c48ffe 100644
--- a/src/styles/Text.module.css
+++ b/src/styles/Text.module.css
@@ -6,7 +6,6 @@
padding: 0;
text-align: left;
font-size: 3.5rem;
- font-weight: 400;
width: max-content;
color: var(--mantine-color-accent-0);
}
@@ -49,7 +48,6 @@
.appName {
&.root {
- font-weight: 400;
font-size: .6875rem;
font-style: normal;
color: var(--mantine-color-primary-0);
@@ -61,7 +59,6 @@
.appUrl {
&.root {
font-size: .6875rem;
- font-weight: 400;
font-style: italic;
text-transform: uppercase;
color: var(--mantine-color-accent-0);
@@ -72,15 +69,11 @@
.bookmarkCategory {
&.root {
font-size: .875rem;
- font-weight: 400;
color: var(--mantine-color-accent-0);
text-transform: uppercase;
- margin-top: 1.25rem;
- margin-bottom: .625rem;
+ margin-top: 1rem;
text-overflow: ellipsis;
overflow: hidden;
- width: 100%;
- height: fit-content;
}
}
@@ -92,7 +85,6 @@
color: var(--mantine-color-primary-0);
text-overflow: ellipsis;
overflow: hidden;
- width: 100%;
&:hover {
text-decoration: underline;
}