diff --git a/packages/fern-docs/bundle/src/mdx/components/files/File.tsx b/packages/fern-docs/bundle/src/mdx/components/files/File.tsx index 11c80d9f94..42364f7360 100644 --- a/packages/fern-docs/bundle/src/mdx/components/files/File.tsx +++ b/packages/fern-docs/bundle/src/mdx/components/files/File.tsx @@ -5,37 +5,48 @@ export interface FileProps { name: string; className?: string; href?: string; + highlighted?: boolean; + comment?: string; } -export function File({ name, className, href }: FileProps) { +export function File({ name, className, href, highlighted = false, comment }: FileProps) { + const formattedComment = comment && !comment.trimStart().startsWith("#") ? `# ${comment}` : comment; + const content = ( <> - - {name} +
+
+
+ +
+
+ {name} + {formattedComment && ( + + {formattedComment} + + )} +
+
); + const rowClassName = cn( + "group flex items-center gap-2 p-1 rounded-3/2 transition-colors", + highlighted ? "bg-(color:--accent-a4)" : "hover:bg-(color:--grayscale-a4) hover:transition-none", + className + ); + if (href) { return ( - + {content} ); } return ( -
+
{content}
); diff --git a/packages/fern-docs/bundle/src/mdx/components/files/Folder.tsx b/packages/fern-docs/bundle/src/mdx/components/files/Folder.tsx index 98a3a95cde..e00e6a3e6a 100644 --- a/packages/fern-docs/bundle/src/mdx/components/files/Folder.tsx +++ b/packages/fern-docs/bundle/src/mdx/components/files/Folder.tsx @@ -9,11 +9,23 @@ export interface FolderProps { children?: React.ReactNode; className?: string; href?: string; + highlighted?: boolean; + comment?: string; } -export function Folder({ name, defaultOpen = false, children, className, href }: FolderProps) { +export function Folder({ + name, + defaultOpen = false, + children, + className, + href, + highlighted = false, + comment +}: FolderProps) { const [isOpen, setIsOpen] = useState(defaultOpen); + const formattedComment = comment && !comment.trimStart().startsWith("#") ? `# ${comment}` : comment; + const folderIcon = isOpen ? ( ) : ( @@ -24,29 +36,48 @@ export function Folder({ name, defaultOpen = false, children, className, href }:
setIsOpen(!isOpen)} className={cn( - "fern-accordion-trigger group w-full text-left flex items-center gap-2 p-1 rounded-3/2 transition-colors hover:bg-(color:--grayscale-a4) hover:transition-none" + "fern-accordion-trigger group w-full text-left flex items-center gap-2 p-1 rounded-3/2 transition-colors cursor-pointer", + highlighted ? "bg-(color:--accent-a4)" : "hover:bg-(color:--grayscale-a4) hover:transition-none" )} > - {folderIcon} - {href ? ( - - {name} - - ) : ( - {name} - )} +
+
{folderIcon}
+
+ {href ? ( + e.stopPropagation()} + className={cn("text-default break-words", "underline")} + > + {name} + + ) : ( + {name} + )} + {formattedComment && ( + + {formattedComment} + + )} +
+
{isOpen && children && ( -
+
{children}
)}