37 lines
855 B
TypeScript
37 lines
855 B
TypeScript
'use client';
|
|
|
|
import { Card } from '@/ui/Card';
|
|
import { Stack } from '@/ui/primitives/Stack';
|
|
import React from 'react';
|
|
|
|
interface AdminToolbarProps {
|
|
children: React.ReactNode;
|
|
leftContent?: React.ReactNode;
|
|
}
|
|
|
|
/**
|
|
* AdminToolbar
|
|
*
|
|
* Semantic toolbar for admin pages.
|
|
* Used for filters, search, and secondary actions.
|
|
*/
|
|
export function AdminToolbar({
|
|
children,
|
|
leftContent
|
|
}: AdminToolbarProps) {
|
|
return (
|
|
<Card p={3} bg="bg-charcoal/50" borderColor="border-charcoal-outline">
|
|
<Stack direction="row" align="center" justify="between" gap={4} wrap>
|
|
{leftContent && (
|
|
<Stack flexGrow={1}>
|
|
{leftContent}
|
|
</Stack>
|
|
)}
|
|
<Stack direction="row" align="center" gap={3} flexGrow={leftContent ? 0 : 1} wrap>
|
|
{children}
|
|
</Stack>
|
|
</Stack>
|
|
</Card>
|
|
);
|
|
}
|