From a630513967e0f8b5fd6548710aa88ff3c16435c5 Mon Sep 17 00:00:00 2001 From: snowopsdev <6538071+snowopsdev@users.noreply.github.com> Date: Sat, 28 Feb 2026 12:09:16 -0500 Subject: [PATCH] feat: add TerminalBreadcrumbs component --- app/playground/page.tsx | 28 ++++++++++- components/terminal-breadcrumbs.tsx | 75 +++++++++++++++++++++++++++++ components/terminal.tsx | 1 + 3 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 components/terminal-breadcrumbs.tsx diff --git a/app/playground/page.tsx b/app/playground/page.tsx index f6a7bde..9b12bc2 100644 --- a/app/playground/page.tsx +++ b/app/playground/page.tsx @@ -1,5 +1,5 @@ import { TerminalApp } from '@/components/terminal-app' -import { Terminal, TerminalCommand, TerminalDiff, TerminalOutput, TerminalSpinner, TerminalBadge, ThemeSwitcher } from '@/components/terminal' +import { Terminal, TerminalCommand, TerminalDiff, TerminalOutput, TerminalSpinner, TerminalBadge, ThemeSwitcher, TerminalBreadcrumbs } from '@/components/terminal' import { TerminalProgress } from '@/components/terminal-progress' import { LogDemo } from './log-demo' import { PromptDemo } from './prompt-demo' @@ -161,6 +161,32 @@ export default function PlaygroundPage() { +
+

+ TerminalBreadcrumbs +

+ + pwd + + + +
+ cat config.json + + + + +
+

Typing Animation diff --git a/components/terminal-breadcrumbs.tsx b/components/terminal-breadcrumbs.tsx new file mode 100644 index 0000000..959a704 --- /dev/null +++ b/components/terminal-breadcrumbs.tsx @@ -0,0 +1,75 @@ +'use client' + +import { Fragment } from 'react' + +export interface BreadcrumbItem { + label: string + href?: string + active?: boolean +} + +export interface TerminalBreadcrumbsProps { + /** Array of breadcrumb segments */ + items: BreadcrumbItem[] + /** Separator string between items (default: '/') */ + separator?: string + /** Additional classes applied to the root element */ + className?: string +} + +/** + * Displays a directory path or navigation trail in a terminal style. + * + * @param items - Array of breadcrumb segments + * @param separator - Separator string between items (default: '/') + * @param className - Additional classes applied to the root element + * + * @example + * ```tsx + * + * ``` + */ +export function TerminalBreadcrumbs({ + items, + separator = '/', + className = '', +}: TerminalBreadcrumbsProps) { + return ( + + ) +} diff --git a/components/terminal.tsx b/components/terminal.tsx index 56c9e1f..628e8a0 100644 --- a/components/terminal.tsx +++ b/components/terminal.tsx @@ -264,3 +264,4 @@ export { TerminalAutocomplete, useAutocomplete, COMMON_COMMANDS, COMMON_FLAGS, f export { TerminalGhosttyTheme, GhosttyThemePicker } from './terminal-ghostty' export { ThemeSwitcher } from './theme-switcher' export { TerminalBadge } from './terminal-badge' +export { TerminalBreadcrumbs } from './terminal-breadcrumbs'