From 91b248d395332faca8c0113a54e49422742b28f4 Mon Sep 17 00:00:00 2001 From: ajnart Date: Sat, 22 Aug 2026 18:25:31 +0200 Subject: [PATCH] fix: harden widget editor previews --- .../img/onboarding-edit-item-current.png | Bin 69960 -> 45581 bytes .../src/app/[locale]/widgets/[kind]/page.tsx | 26 ++-- .../board/items/item-content.module.css | 13 -- .../components/board/items/item-content.tsx | 88 ++++--------- .../board/items/lazy-widget-edit-modal.tsx | 39 ++++++ packages/boards/src/context.tsx | 27 +++- packages/widgets/package.json | 3 +- .../src/modals/widget-edit-modal.module.css | 10 -- .../widgets/src/modals/widget-edit-modal.tsx | 117 ++++++++++-------- .../widgets/src/widget-card-shell.module.css | 34 +++++ packages/widgets/src/widget-card-shell.tsx | 94 ++++++++++++++ 11 files changed, 302 insertions(+), 149 deletions(-) create mode 100644 packages/widgets/src/widget-card-shell.module.css create mode 100644 packages/widgets/src/widget-card-shell.tsx diff --git a/apps/docs/docs/getting-started/img/onboarding-edit-item-current.png b/apps/docs/docs/getting-started/img/onboarding-edit-item-current.png index 8fe412aa7f58585b2ae18ad8ac77c4be539ea3ef..b86859e7e491771a651188b219233b3eb6ef1c81 100644 GIT binary patch literal 45581 zcmd?RbyQW+7cP200SSW=X$6rEX^@bR?vzIG(A^D!NQ2Vdozfi!ARM~8>wtj3p$_#H z`up8?|9WG*G48!%yz$N-j>F#jtiAT!Yt8x1Z+_DdB?Za*SR_~w2;{!Bl(-56a@P+6 zLB+U-3XYgneAR?N9zmqVMbz9>7o@PG4RO@){nE%;` zXv{pp#XRkD`?m}ub8YFX>b_nX#xht_&4|oSO|%MABaSMYNZ{u{1^cIW=3alY>Oeoc zu=>G=8|SO=@pMPP z*kT$A2?^QQ*u;*Q;r!>S`47=g5@6#y$Li|ph>@Po&Oi$T0g6F0PAczzcXXo0((3Q; zSKD)NaVak;aeN+tem{GL=+57p`0Zq7WqmLr3Va##OzaaU7gyE^+TRm)dVJv1)Z9EP z6#MT|NRytUBS*%d>)L@Eo$tS~bu|f^>Ad(H8+Grp{b#&TFc_=kez!mPD|hM9 zlpQshf{%&^bZg&RN5&uIau~Qh6Zy%~V$$;YEcdOjMtn>>%Vgd3cW8{=UEBj{Wzife zM&}CAK^ycIKR7FsZ2Zs(2SKSp6?<#nufO-oJZ=6)$d*$sSC;c6Tf?%S_#^c_;sjo( zjDy$5;L!o;C-`rEDoQ6t)5YB5{hi-|-~C3G2_8qv&N8$ALd)uQ2tWP(yaat285s-5 z&&|yj*sLvV@4nxiKuas})5~0F_3A-)Cn{FxTB*^zPIqagg}-x)wjVa?Dt6=;e`cSR zWp5u{V}xd5_;)ru3*Q1TXcg0cFD-rbzHphnrl6ou6gc?!`Y9a~(|f(4T8N80**o#e zn%tj-Y`BY=s*LPBwqFeR=U5NU39CgLd;4V*OpyHs2WHO~=M17-e#gAmNNY9e*)G-4 zq?%EP&JW{pO+h;TP+7Qq9$3VoZ&1ZD7>mh=T4ZIR;`KgQ{HJM?MV^51PM0-ba(wQO zu*7PkO1a#HE2Q?DF@(AOGpaV_xRf^ct2(k)gUeE_5Zq@*tQuu~u(?L(*@YFGmKx

FG3>kORG=)e5?Pf4+_f-rx#y(6NDE5T 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 literal 69960 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 Fe*n-z=zRbH diff --git a/apps/nextjs/src/app/[locale]/widgets/[kind]/page.tsx b/apps/nextjs/src/app/[locale]/widgets/[kind]/page.tsx index 620a7792e..36cf7edf9 100644 --- a/apps/nextjs/src/app/[locale]/widgets/[kind]/page.tsx +++ b/apps/nextjs/src/app/[locale]/widgets/[kind]/page.tsx @@ -1,11 +1,14 @@ import { Suspense } from "react"; -import { notFound } from "next/navigation"; +import { notFound, redirect } from "next/navigation"; import { Center, Loader } from "@mantine/core"; +import { getHomeBoardAsync } from "@homarr/api/board-server"; import { IntegrationProvider } from "@homarr/auth/client"; import { auth } from "@homarr/auth/next"; import { getIntegrationsWithPermissionsAsync } from "@homarr/auth/server"; +import { BoardPreviewProvider } from "@homarr/boards/context"; import type { WidgetKind } from "@homarr/definitions"; +import { ModalProvider } from "@homarr/modals"; import { widgetKinds } from "@homarr/widgets/manifest"; import { WidgetPreviewPageContent } from "./_content"; @@ -19,15 +22,24 @@ export default async function WidgetPreview(props: Props) { if (!widgetKinds.includes(kind as WidgetKind)) { notFound(); } - const integrations = await getIntegrationsWithPermissionsAsync(await auth()); + const session = await auth(); + if (!session) { + redirect(`/auth/login?callbackUrl=${encodeURIComponent(`/widgets/${kind}`)}`); + } + + const [integrations, board] = await Promise.all([getIntegrationsWithPermissionsAsync(session), getHomeBoardAsync()]); return ( -

- }> - - -
+ + +
+ }> + + +
+
+
); } diff --git a/apps/nextjs/src/components/board/items/item-content.module.css b/apps/nextjs/src/components/board/items/item-content.module.css index 7ec4b3a16..3e4a93a20 100644 --- a/apps/nextjs/src/components/board/items/item-content.module.css +++ b/apps/nextjs/src/components/board/items/item-content.module.css @@ -1,16 +1,3 @@ -.badge { - @mixin dark { - --background-color: rgb(from var(--mantine-color-dark-6) r g b / var(--opacity)); - --border-color: rgb(from var(--mantine-color-dark-4) r g b / var(--opacity)); - } - @mixin light { - --background-color: rgb(from var(--mantine-color-white) r g b / var(--opacity)); - --border-color: rgb(from var(--mantine-color-gray-3) r g b / var(--opacity)); - } - background-color: var(--background-color) !important; - border-color: var(--border-color) !important; -} - .settingsButton { opacity: 0; pointer-events: none; diff --git a/apps/nextjs/src/components/board/items/item-content.tsx b/apps/nextjs/src/components/board/items/item-content.tsx index 4a771e769..f695dc002 100644 --- a/apps/nextjs/src/components/board/items/item-content.tsx +++ b/apps/nextjs/src/components/board/items/item-content.tsx @@ -1,9 +1,8 @@ -import type { ComponentType, CSSProperties, MutableRefObject } from "react"; +import type { ComponentType, CSSProperties, MutableRefObject, PropsWithChildren } from "react"; import { memo, Suspense, use, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { createPortal } from "react-dom"; import dynamic from "next/dynamic"; -import type { CardProps } from "@mantine/core"; -import { Badge, Box, Button, Card, Center, Loader, Portal } from "@mantine/core"; +import { Box, Button, Center, Loader, Portal } from "@mantine/core"; import { useElementSize, useIsomorphicEffect } from "@mantine/hooks"; import { QueryErrorResetBoundary, useQueryClient } from "@tanstack/react-query"; import combineClasses from "clsx"; @@ -24,6 +23,7 @@ import { } from "@homarr/widgets/definition"; import type { WidgetComponentProps, WidgetDefinition, WidgetRuntimeRef } from "@homarr/widgets/definition"; import { loadWidgetResources, reduceWidgetOptionsWithDefinition } from "@homarr/widgets/manifest"; +import { WidgetCardShell, WidgetTitleBadge } from "@homarr/widgets/widget-card-shell"; import type { SectionItem } from "~/app/[locale]/boards/_types"; import { getLogicalTrackSize } from "~/components/board/layout"; @@ -35,7 +35,6 @@ import { getAdvancedFocusClosePosition, getAdvancedFocusRect } from "../advanced import { AdvancedFocusManualSurface } from "../advanced-focus/manual-surface"; import { redirectShiftWheel } from "../advanced-focus/wheel"; import { useBoardGridPortalHost } from "../sections/grid/grid-portal-host"; -import classes from "../sections/item.module.css"; import { useItemActions } from "./item-actions"; import itemContentClasses from "./item-content.module.css"; import { WidgetContextMenu } from "./widget-context-menu"; @@ -49,47 +48,28 @@ interface BoardItemContentProps { item: SectionItem; } -const getOverflowFromKind = (kind: SectionItem["kind"], hasCustomCssClasses: boolean) => { - if (kind === "systemResources") return { overflowX: "visible", overflowY: "visible" } as const; - if (kind === "iframe" || kind === "assistant") return { overflowX: "hidden", overflowY: "hidden" } as const; - if (hasCustomCssClasses) return {}; - return { overflowX: "hidden", overflowY: "auto" } as const; -}; - -type BoardItemCardProps = CardProps & { +type BoardItemCardProps = PropsWithChildren<{ item: SectionItem; innerRef: (element: HTMLDivElement | null) => void; -}; +}>; -const BoardItemCard = ({ item, innerRef, children, ...cardProps }: BoardItemCardProps) => { +const BoardItemCard = ({ item, innerRef, children }: BoardItemCardProps) => { const board = useRequiredBoard(); return ( - 0), - "--border-color": item.advancedOptions.borderColor !== "" ? item.advancedOptions.borderColor : undefined, - }, - }} p={0} > {children} - + ); }; @@ -297,8 +277,11 @@ const LoadedBoardItemContent = ({ : undefined; const widgetCard = ( - 0), - "--border-color": item.advancedOptions.borderColor !== "" ? item.advancedOptions.borderColor : undefined, - }, - }} style={previewStyle} > @@ -351,7 +322,7 @@ const LoadedBoardItemContent = ({ /> - + ); return ( @@ -425,25 +396,12 @@ const LoadedBoardItemContent = ({ )} - {!isAdvanced && item.advancedOptions.title?.trim() && ( - - {item.advancedOptions.title} - + /> )} ); diff --git a/apps/nextjs/src/components/board/items/lazy-widget-edit-modal.tsx b/apps/nextjs/src/components/board/items/lazy-widget-edit-modal.tsx index 0e869a544..53d601561 100644 --- a/apps/nextjs/src/components/board/items/lazy-widget-edit-modal.tsx +++ b/apps/nextjs/src/components/board/items/lazy-widget-edit-modal.tsx @@ -1,5 +1,6 @@ "use client"; +import type { PropsWithChildren } from "react"; import { Suspense, use, useCallback, useMemo, useState } from "react"; import { Center, Loader } from "@mantine/core"; import { ErrorBoundary } from "react-error-boundary"; @@ -7,6 +8,7 @@ import type { FallbackProps } from "react-error-boundary"; import { clientApi } from "@homarr/api/client"; import type { WidgetKind } from "@homarr/definitions"; +import { widgetDefaultSizes } from "@homarr/definitions"; import { createModal, useModalAction } from "@homarr/modals"; import { WidgetError } from "@homarr/widgets/errors"; import type * as WidgetModalsModule from "@homarr/widgets/modals"; @@ -14,10 +16,37 @@ import type { WidgetEditModalProps } from "@homarr/widgets/modals"; import { loadWidgetComponent } from "@homarr/widgets/manifest"; import type { IntegrationSelectOption } from "@homarr/widgets/widget-integration-select"; +import { AssistantContext, useOptionalHomarrAssistant } from "~/components/assistant/assistant-context"; +import { getLogicalTrackSize } from "~/components/board/layout"; import { IntegrationSelectModal } from "~/components/integration/integration-select-modal"; import type * as IntegrationEditFormModule from "~/components/integration/embedded-integration-edit-form"; import type { EmbeddedIntegrationEditFormProps } from "~/components/integration/embedded-integration-edit-form"; +const defaultWidgetSize = { width: 1, height: 1 }; +const ignoreAssistantAction = () => undefined; +const ignoreAssistantPrompt = () => false; +const ignoreAssistantRefresh = () => Promise.resolve(); + +const PreviewRuntimeWrapper = ({ children }: PropsWithChildren) => { + const assistant = useOptionalHomarrAssistant(); + const previewAssistant = useMemo(() => { + if (!assistant) return null; + return { + ...assistant, + open: ignoreAssistantAction, + close: ignoreAssistantAction, + toggle: ignoreAssistantAction, + sendPrompt: ignoreAssistantPrompt, + refreshCurrentView: ignoreAssistantRefresh, + setWidgetVisible: ignoreAssistantAction, + activateWidget: ignoreAssistantAction, + }; + }, [assistant]); + + if (!previewAssistant) return children; + return {children}; +}; + let widgetEditModalPromise: Promise | undefined; export const loadWidgetEditModal = () => { @@ -116,6 +145,14 @@ const LazyWidgetEditModalContent = (props: LazyWidgetEditModalContentProps) => { const additional = createdIntegrations.filter((c) => !existing.some((e) => e.id === c.id)); return [...existing, ...additional]; }, [props.innerProps.integrationData, createdIntegrations]); + const previewDimensions = useMemo(() => { + if (props.innerProps.previewDimensions) return props.innerProps.previewDimensions; + const size = widgetDefaultSizes[props.innerProps.kind] ?? defaultWidgetSize; + return { + width: getLogicalTrackSize(size.width), + height: getLogicalTrackSize(size.height), + }; + }, [props.innerProps.kind, props.innerProps.previewDimensions]); return ( { integrationData: combinedIntegrationData, integrationEditForm: LazyIntegrationEditForm, previewComponent: PreviewComponent, + previewDimensions, + previewWrapper: PreviewRuntimeWrapper, onOpenNewIntegration: supportedKinds.length > 0 ? handleOpenNewIntegration : undefined, }} /> diff --git a/packages/boards/src/context.tsx b/packages/boards/src/context.tsx index 2e8137b5e..e777217e6 100644 --- a/packages/boards/src/context.tsx +++ b/packages/boards/src/context.tsx @@ -10,12 +10,16 @@ import { clientApi } from "@homarr/api/client"; import { boardViewportWidthCookieName, getLayoutIdForViewportWidth } from "./layout-selection"; import { updateBoardName } from "./updater"; -const BoardContext = createContext<{ - board: RouterOutputs["board"]["getBoardByName"]; +type Board = RouterOutputs["board"]["getBoardByName"]; + +interface BoardContextValue { + board: Board; layoutOverrideId: string | null; currentLayout: string; initialViewportWidth: number; -} | null>(null); +} + +const BoardContext = createContext(null); const subscribeToViewport = (onStoreChange: () => void) => { if (typeof window === "undefined") return () => undefined; @@ -37,6 +41,23 @@ const subscribeToViewport = (onStoreChange: () => void) => { }; }; +export const BoardPreviewProvider = ({ children, board }: PropsWithChildren<{ board: Board }>) => { + const currentLayout = board.layouts[0]?.id ?? ""; + + return ( + + {children} + + ); +}; + export const BoardProvider = ({ children, initialBoard, diff --git a/packages/widgets/package.json b/packages/widgets/package.json index c54a4ebae..2daffc1b5 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -30,7 +30,8 @@ "./widget-integration-select": "./src/widget-integration-select.tsx", "./modals": "./src/modals/index.ts", "./prefetch": "./src/prefetch.ts", - "./refetch-intervals": "./src/refetch-intervals.ts" + "./refetch-intervals": "./src/refetch-intervals.ts", + "./widget-card-shell": "./src/widget-card-shell.tsx" }, "scripts": { "clean": "rm -rf .turbo node_modules", diff --git a/packages/widgets/src/modals/widget-edit-modal.module.css b/packages/widgets/src/modals/widget-edit-modal.module.css index 25afd728d..7c6793542 100644 --- a/packages/widgets/src/modals/widget-edit-modal.module.css +++ b/packages/widgets/src/modals/widget-edit-modal.module.css @@ -56,19 +56,9 @@ position: absolute; top: 0; left: 0; - overflow: hidden; - box-shadow: var(--mantine-shadow-lg); transform-origin: top left; } -.previewTitle { - position: absolute; - z-index: 2; - top: var(--mantine-spacing-xs); - left: var(--mantine-spacing-xs); - max-width: calc(100% - var(--mantine-spacing-md)); -} - .previewContent { width: 100%; height: 100%; diff --git a/packages/widgets/src/modals/widget-edit-modal.tsx b/packages/widgets/src/modals/widget-edit-modal.tsx index 8922f0d6a..d45fc2f60 100644 --- a/packages/widgets/src/modals/widget-edit-modal.tsx +++ b/packages/widgets/src/modals/widget-edit-modal.tsx @@ -3,13 +3,12 @@ /* eslint-disable react/no-unstable-nested-components -- Widget modules and definition-bound fallbacks are loaded dynamically. */ import { useEffect, useId, useRef, useState } from "react"; -import type { ComponentType, FormEvent } from "react"; -import { Alert, Badge, Box, Button, Card, Center, Divider, Group, SimpleGrid, Stack, Tabs, Text } from "@mantine/core"; +import type { ComponentType, FormEvent, PropsWithChildren } from "react"; +import { Alert, Badge, Box, Button, Center, Divider, Group, SimpleGrid, Stack, Tabs, Text } from "@mantine/core"; import { schemaResolver } from "@mantine/form"; import { useElementSize } from "@mantine/hooks"; import { IconArrowLeft, IconEye, IconPencil, IconSettings } from "@tabler/icons-react"; import { QueryErrorResetBoundary } from "@tanstack/react-query"; -import combineClasses from "clsx"; import { ErrorBoundary } from "react-error-boundary"; import { z } from "zod/v4"; @@ -17,8 +16,9 @@ import { objectEntries } from "@homarr/common"; import { IntegrationProvider, useSession } from "@homarr/auth/client"; import { useOptionalBoard } from "@homarr/boards/context"; import type { WidgetKind } from "@homarr/definitions"; -import { createModal, useModalAction } from "@homarr/modals"; +import { createModal, modalSizeForm, useModalAction } from "@homarr/modals"; import type { SettingsContextProps } from "@homarr/settings/creator"; +import { SpotlightProvider } from "@homarr/spotlight"; import { useI18n } from "@homarr/translation/client"; import { IntegrationAvatar } from "@homarr/ui"; import { zodErrorMap } from "@homarr/validation/form/i18n"; @@ -32,6 +32,7 @@ import { WidgetError } from "../errors/component"; import { OPTIONS_SUPER_REFINE } from "../options"; import type { IntegrationSelectOption } from "../widget-integration-select"; import { WidgetIntegrationSelect } from "../widget-integration-select"; +import { WidgetCardShell, WidgetTitleBadge } from "../widget-card-shell"; import { WidgetAdvancedOptionsModal } from "./widget-advanced-options-modal"; import type { EmbeddedAppEditFormHandle } from "./embedded-app-edit-form"; import { EmbeddedAppEditForm } from "./embedded-app-edit-form"; @@ -69,6 +70,7 @@ export interface WidgetEditModalProps { onOpenNewIntegration?: (onCreated?: (id: string) => void) => void; previewComponent?: ComponentType>; previewDimensions?: { width: number; height: number; scale?: number }; + previewWrapper?: ComponentType; } interface WidgetEditPreviewProps { @@ -81,8 +83,17 @@ interface WidgetEditPreviewProps { dimensions?: { width: number; height: number; scale?: number }; integrationData: IntegrationSelectOption[]; onChangeOptions: (newOptions: Record) => void; + PreviewWrapper?: ComponentType; } +const PreviewRuntimeBoundary = ({ + Wrapper, + children, +}: PropsWithChildren<{ Wrapper?: ComponentType }>) => { + if (!Wrapper) return children; + return {children}; +}; + const WidgetEditPreview = ({ kind, Component, @@ -93,8 +104,11 @@ const WidgetEditPreview = ({ dimensions = { width: 400, height: 240 }, integrationData, onChangeOptions, + PreviewWrapper, }: WidgetEditPreviewProps) => { const tItem = useI18n("item.edit"); + const board = useOptionalBoard(); + const generatedPreviewId = useId().replaceAll(":", ""); const { ref, width: availableWidth, height: availableHeight } = useElementSize(); const sourceWidth = Math.max(dimensions.width, 1); const sourceHeight = Math.max(dimensions.height, 1); @@ -111,14 +125,20 @@ const WidgetEditPreview = ({ const hasIntegrationSupport = "supportedIntegrations" in definition; const integrationRequired = hasIntegrationSupport && definition.integrationsRequired !== false; const isMissingIntegration = integrationRequired && state.integrationIds.length === 0; - const previewIntegrations = integrationData.map((integration) => ({ - id: integration.id, - permissions: integration.permissions ?? { - hasFullAccess: false, - hasInteractAccess: false, - hasUseAccess: false, - }, - })); + const previewIntegrations = integrationData + .filter((integration) => state.integrationIds.includes(integration.id)) + .map((integration) => ({ + id: integration.id, + permissions: integration.permissions ?? { + hasFullAccess: false, + hasInteractAccess: false, + hasUseAccess: false, + }, + })); + let componentItemId = itemId; + if (kind === "assistant") componentItemId = `widget-preview-${generatedPreviewId}`; + const isPendingCustomWidget = kind === "customApi" && !itemId; + const previewOpacity = (board?.opacity ?? 100) / 100; return ( @@ -132,27 +152,23 @@ const WidgetEditPreview = ({ ) : ( - - {state.advancedOptions.title && ( - - {state.advancedOptions.title} - - )} + {({ reset }) => ( )} > - -
- onChangeOptions(newOptions as Record)} - /> -
-
+ + + +
+ onChangeOptions(newOptions as Record)} + /> +
+
+
+
)}
-
+
)} @@ -398,6 +418,7 @@ export const WidgetEditModal = createModal>(({ dimensions={innerProps.previewDimensions} integrationData={innerProps.integrationData} onChangeOptions={handlePreviewOptionsChange} + PreviewWrapper={innerProps.previewWrapper} /> )} {innerProps.previewComponent && hasWidgetSettings && ( @@ -602,10 +623,6 @@ export const WidgetEditModal = createModal>(({ defaultTitle(t) { return t("item.edit.title"); }, - size: "100rem", - transitionProps: { - transition: "pop", - duration: 180, - }, + size: modalSizeForm, closeOnClickOutside: false, }); diff --git a/packages/widgets/src/widget-card-shell.module.css b/packages/widgets/src/widget-card-shell.module.css new file mode 100644 index 000000000..55b76af7f --- /dev/null +++ b/packages/widgets/src/widget-card-shell.module.css @@ -0,0 +1,34 @@ +.card { + @mixin dark { + --background-color: rgb(from var(--mantine-color-dark-6) r g b / var(--opacity)); + --default-border-color: rgb(from var(--mantine-color-dark-4) r g b / var(--opacity)); + } + + @mixin light { + --background-color: rgb(from var(--mantine-color-white) r g b / var(--opacity)); + --default-border-color: rgb(from var(--mantine-color-gray-3) r g b / var(--opacity)); + } + + background-color: var(--background-color) !important; + border-color: var(--border-color, var(--default-border-color)) !important; +} + +.card:global(.iframe-wrapper) { + background-color: transparent !important; + border-color: transparent !important; +} + +.title { + @mixin dark { + --background-color: rgb(from var(--mantine-color-dark-6) r g b / var(--opacity)); + --default-border-color: rgb(from var(--mantine-color-dark-4) r g b / var(--opacity)); + } + + @mixin light { + --background-color: rgb(from var(--mantine-color-white) r g b / var(--opacity)); + --default-border-color: rgb(from var(--mantine-color-gray-3) r g b / var(--opacity)); + } + + background-color: var(--background-color) !important; + border-color: var(--border-color, var(--default-border-color)) !important; +} diff --git a/packages/widgets/src/widget-card-shell.tsx b/packages/widgets/src/widget-card-shell.tsx new file mode 100644 index 000000000..9c965c78a --- /dev/null +++ b/packages/widgets/src/widget-card-shell.tsx @@ -0,0 +1,94 @@ +"use client"; + +import type { AriaRole, CSSProperties, PropsWithChildren, Ref } from "react"; +import type { CardProps } from "@mantine/core"; +import { Badge, Card } from "@mantine/core"; +import combineClasses from "clsx"; + +import type { WidgetKind } from "@homarr/definitions"; +import type { BoardItemAdvancedOptions } from "@homarr/validation/shared"; + +import classes from "./widget-card-shell.module.css"; + +const getOverflow = (kind: WidgetKind, hasCustomCssClasses: boolean): CSSProperties => { + if (kind === "systemResources") return { overflowX: "visible", overflowY: "visible" }; + if (kind === "iframe" || kind === "assistant") return { overflowX: "hidden", overflowY: "hidden" }; + if (hasCustomCssClasses) return {}; + return { overflowX: "hidden", overflowY: "auto" }; +}; + +interface WidgetCardShellProps extends PropsWithChildren> { + kind: WidgetKind; + advancedOptions: BoardItemAdvancedOptions; + opacity: number; + className?: string; + innerRef?: Ref; + id?: string; + role?: AriaRole; + "aria-label"?: string; + "data-advanced-focus-surface"?: boolean; + "data-grid-item-content"?: boolean; +} + +export const WidgetCardShell = ({ + kind, + advancedOptions, + opacity, + className, + innerRef, + children, + ...cardProps +}: WidgetCardShellProps) => ( + 0), + } as CSSProperties, + }} + > + {children} + +); + +interface WidgetTitleBadgeProps { + advancedOptions: BoardItemAdvancedOptions; + opacity: number; + radius: CardProps["radius"]; +} + +export const WidgetTitleBadge = ({ advancedOptions, opacity, radius }: WidgetTitleBadgeProps) => { + if (!advancedOptions.title?.trim()) return null; + + return ( + + {advancedOptions.title} + + ); +};