chore(repo): initialize planarchy workspace
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
"use client";
|
||||
|
||||
import { clsx } from "clsx";
|
||||
|
||||
interface BatchAction {
|
||||
label: string;
|
||||
onClick: () => void;
|
||||
variant?: "default" | "danger";
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
interface BatchActionBarProps {
|
||||
count: number;
|
||||
actions: BatchAction[];
|
||||
onClear: () => void;
|
||||
}
|
||||
|
||||
export function BatchActionBar({ count, actions, onClear }: BatchActionBarProps) {
|
||||
if (count === 0) return null;
|
||||
|
||||
return (
|
||||
<div className="fixed bottom-6 left-72 right-6 z-40 flex items-center gap-4 bg-gray-900 text-white px-5 py-3 rounded-xl shadow-2xl border border-gray-700">
|
||||
<span className="text-sm font-medium shrink-0">
|
||||
{count} selected
|
||||
</span>
|
||||
<div className="flex items-center gap-2 flex-1">
|
||||
{actions.map((action) => (
|
||||
<button
|
||||
key={action.label}
|
||||
type="button"
|
||||
onClick={action.onClick}
|
||||
disabled={action.disabled}
|
||||
className={clsx(
|
||||
"px-3 py-1.5 text-sm font-medium rounded-lg transition-colors disabled:opacity-50",
|
||||
action.variant === "danger"
|
||||
? "bg-red-600 hover:bg-red-700 text-white"
|
||||
: "bg-white/10 hover:bg-white/20 text-white",
|
||||
)}
|
||||
>
|
||||
{action.label}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
onClick={onClear}
|
||||
className="text-sm text-gray-400 hover:text-white transition-colors"
|
||||
>
|
||||
Clear
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user