"use client";
import type { ReactNode } from "react";
import {
PROTOTYPE_PRODUCT_THEME_MANAGED_ATTR,
PROTOTYPE_SOURCE_SURFACE_ATTR,
} from "@prototype/lib/tool-portal";
import { useComponentLibraryProductTheme } from "@prototype/lib/use-component-library-product-theme";
import { cn } from "@prototype/lib/utils";
/** Flat page wrapper for design-system / component-library content — one scrollable surface. */
export function DesignSystemPage({
className,
children,
}: {
className?: string;
children: ReactNode;
}) {
return (
{children}
);
}
/** Titled section on the flat design-system page (not collapsible). */
export function DesignSystemSection({
id,
title,
children,
}: {
id: string;
title: string;
children: ReactNode;
}) {
if (process.env.NODE_ENV !== "production" && !id) {
console.error("DesignSystemSection: `id` is required for section anchors.");
}
return (
);
}
/** Product-token surface for synced source previews — isolated from tool chrome. */
export function ComponentLibraryPreviewSurface({
children,
className,
}: {
children: ReactNode;
className?: string;
}) {
const { theme } = useComponentLibraryProductTheme();
return (
{children}
);
}
export function PreviewGrid({ children }: { children: ReactNode }) {
return (
{children}
);
}
export function PreviewBlock({
title,
children,
}: {
title: string;
children: ReactNode;
}) {
return (
);
}
export function PreviewStack({
title,
children,
}: {
title: string;
children: ReactNode;
}) {
return (
);
}