'use client' import * as React from 'react' import { cn, Tabs, TabsContent, TabsList, TabsTrigger } from 'ui' import { // CopyButton, CopyWithClassNames, } from '@/components/copy-button' interface ComponentExampleProps extends React.HTMLAttributes { extractClassname?: boolean extractedClassNames?: string align?: 'center' | 'start' | 'end' src?: string } export function ComponentExample({ children, className, extractClassname, extractedClassNames, align = 'center', src: _, ...props }: ComponentExampleProps) { const [Example, Code, ...Children] = React.Children.toArray(children) as React.ReactElement<{ children: React.ReactNode 'data-rehype-pretty-code-fragment'?: unknown }>[] const codeString = React.useMemo(() => { if (typeof Code?.props['data-rehype-pretty-code-fragment'] !== 'undefined') { const [, Button] = React.Children.toArray(Code.props.children) as React.ReactElement<{ value?: string __rawString__?: string }>[] return Button?.props?.value || Button?.props?.__rawString__ || null } }, [Code]) return (
Preview Code { extractedClassNames && codeString ? ( ) : undefined // codeString && }
{Example}
{Code}
{Children?.length ? (
{Children}
) : null}
) }