import { type ReactNode } from "react";
import { isElectron } from "~/env";
import {
getPreviewPanelMaxWidth,
type PreviewPanelInlineSize,
usePreviewPanelInlineSize,
} from "~/hooks/usePreviewPanelInlineSize";
export { getPreviewPanelMaxWidth };
import { cn } from "~/lib/utils";
import { RightPanelResizeHandle } from "./RightPanelResizeHandle";
export type PreviewPanelMode = "inline" | "sheet" | "sidebar" | "embedded";
/**
* Shell for the preview panel. In inline mode the panel is user-resizable
* via a drag handle on the left edge; width persists per browser. In
* sheet/sidebar modes the parent owns the size.
*/
interface PreviewPanelShellProps {
mode: PreviewPanelMode;
maximized?: boolean;
inlineSize?: PreviewPanelInlineSize;
children: ReactNode;
}
export function PreviewPanelShell(props: PreviewPanelShellProps) {
if (props.inlineSize) {
return