- Updated `CardHeader` padding from `pb-3` to `pb-4` in `JiraLogs`, `JiraSync`, `KanbanColumn`, `ObjectivesBoard`, and `DesktopControls` for consistent spacing. - Refactored `DesktopControls` and `KanbanFilters` to utilize new `ControlPanel`, `ControlSection`, and `ControlGroup` components, enhancing layout structure and maintainability. - Replaced button elements with `ToggleButton` and `FilterChip` components in various filter sections for improved UI consistency and usability.
47 lines
976 B
TypeScript
47 lines
976 B
TypeScript
import { ReactNode } from 'react';
|
|
import { cn } from '@/lib/utils';
|
|
|
|
interface ControlPanelProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function ControlPanel({ children, className }: ControlPanelProps) {
|
|
return (
|
|
<div className={cn(
|
|
'bg-[var(--card)]/30 border-b border-[var(--border)]/30 w-full',
|
|
className
|
|
)}>
|
|
<div className="w-full px-6 py-2">
|
|
{children}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
interface ControlSectionProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function ControlSection({ children, className }: ControlSectionProps) {
|
|
return (
|
|
<div className={cn('flex items-center gap-4', className)}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
interface ControlGroupProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function ControlGroup({ children, className }: ControlGroupProps) {
|
|
return (
|
|
<div className={cn('flex items-center gap-2', className)}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|