Merge remote-tracking branch 'origin/release/v2' into feat/pr-6691-hardening

# Conflicts:
#	apps/nextjs/src/app/[locale]/layout.tsx
#	packages/api/src/router/widgets/anchor-notes.ts
#	packages/api/src/router/widgets/archive-team-warrior.ts
#	packages/api/src/router/widgets/audio-stats.ts
#	packages/api/src/router/widgets/bazarr.ts
#	packages/api/src/router/widgets/coolify.ts
#	packages/api/src/router/widgets/firewall.ts
#	packages/api/src/router/widgets/immich.ts
#	packages/api/src/router/widgets/paperless-ngx.ts
#	packages/api/src/router/widgets/patchmon.ts
#	packages/api/src/router/widgets/speedtest-tracker.ts
#	packages/api/src/router/widgets/tracearr.ts
#	packages/api/src/router/widgets/traefik.ts
#	packages/api/src/router/widgets/umami.ts
#	packages/api/src/router/widgets/uptime-kuma.ts
#	packages/api/src/router/widgets/vpn.ts
#	packages/api/src/router/widgets/wud.ts
#	packages/definitions/src/widget-integration-map.ts
#	packages/widgets/src/anchor-note/index.ts
#	packages/widgets/src/archive-team-warrior/index.ts
#	packages/widgets/src/audio-stats/index.ts
#	packages/widgets/src/bazarr/index.ts
#	packages/widgets/src/coolify/index.ts
#	packages/widgets/src/firewall/index.ts
#	packages/widgets/src/immich/album-carousel/index.ts
#	packages/widgets/src/immich/server-stats/index.ts
#	packages/widgets/src/paperless-ngx/index.ts
#	packages/widgets/src/patchmon/index.ts
#	packages/widgets/src/speedtest-tracker/index.ts
#	packages/widgets/src/system-disks/index.ts
#	packages/widgets/src/system-resources/index.ts
#	packages/widgets/src/tracearr/index.ts
#	packages/widgets/src/traefik/index.ts
#	packages/widgets/src/umami/index.ts
#	packages/widgets/src/uptime-kuma/index.ts
#	packages/widgets/src/vpn/index.ts
#	packages/widgets/src/wud/index.ts
This commit is contained in:
ajnart committed 2026-08-26 15:12:49 +02:00
commit ac7e3f2ef4
201 files changed
+13795 -981

No files matched your search

@@ -0,0 +1,66 @@
"use client";
import { Box, SimpleGrid, Stack, Text } from "@mantine/core";
import { SelectableCard } from "./selectable-card";
export const cornerStyleValues = ["xs", "sm", "md", "lg", "xl"] as const;
export type CornerStyle = (typeof cornerStyleValues)[number];
interface CornerStylePickerProps {
label: string;
description?: string;
value: CornerStyle;
labels: Record<CornerStyle, string>;
onChange: (value: CornerStyle) => void;
compact?: boolean;
}
export const CornerStylePicker = ({
label,
description,
value,
labels,
onChange,
compact = false,
}: CornerStylePickerProps) => {
const previewHeight = compact ? 24 : 34;
return (
<Box component="fieldset" m={0} p={0} style={{ border: 0, minWidth: 0 }}>
<Text component="legend" fw={500} size="sm" p={0}>
{label}
</Text>
<Stack gap="xs" mt={2}>
{description ? (
<Text size="sm" c="dimmed">
{description}
</Text>
) : null}
<SimpleGrid cols={{ base: 3, xs: 5 }} spacing="xs">
{cornerStyleValues.map((cornerStyle) => (
<SelectableCard
key={cornerStyle}
selected={value === cornerStyle}
onClick={() => onChange(cornerStyle)}
radius={cornerStyle}
p="xs"
aria-label={labels[cornerStyle]}
style={compact ? { minHeight: "auto", height: "auto" } : undefined}
>
<Box
h={previewHeight}
bg="var(--mantine-color-default-hover)"
style={{ borderRadius: `var(--mantine-radius-${cornerStyle})` }}
/>
<Text size="xs" ta="center" mt="xs">
{labels[cornerStyle]}
</Text>
</SelectableCard>
))}
</SimpleGrid>
</Stack>
</Box>
);
};
+2
View File
@@ -27,6 +27,8 @@ export { LanguageIcon } from "./language-icon";
export { LanguageCombobox } from "./language-combobox";
export { ColorSchemeCombobox } from "./color-scheme-combobox";
export { BoardColorInput } from "./board-color-input";
export { CornerStylePicker, cornerStyleValues } from "./corner-style-picker";
export type { CornerStyle } from "./corner-style-picker";
export { IntegrationMarquee } from "./integration-marquee";
export { Link } from "./link";
export {