+ );
+}
diff --git a/apps/web/src/components/file-browser/BinEmptyState.tsx b/apps/web/src/components/file-browser/BinEmptyState.tsx
new file mode 100644
index 000000000..ee0fa494a
--- /dev/null
+++ b/apps/web/src/components/file-browser/BinEmptyState.tsx
@@ -0,0 +1,31 @@
+/**
+ * Terminal-style ASCII art for bin empty state.
+ */
+const binEmptyArt = `\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510
+\u2502 $ ls ~/bin \u2502
+\u2502 total 0 \u2502
+\u2502 $ \u2588 \u2502
+\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518`;
+
+type BinEmptyStateProps = {
+ /** Retention period in days for display */
+ retentionDays: number;
+};
+
+/**
+ * Empty state shown when the recycle bin has no items.
+ * Follows the same terminal aesthetic as EmptyState.tsx.
+ */
+export function BinEmptyState({ retentionDays }: BinEmptyStateProps) {
+ return (
+
+
+
+ {binEmptyArt}
+
+
{'// BIN IS EMPTY'}
+
deleted items will appear here for {retentionDays} days