Phase 1: Style refinements and component tweaks from Storybook review

Theme & styling:
- Add custom "inspector" color palette with dark navy primary
- Change primaryShade to { light: 7, dark: 8 }
- Add Input theme override to apply --inspector-input-background globally
- Add --inspector-input-background token (white in light, dark-9 in dark)
- Override --mantine-color-body in dark mode via cssVariablesResolver
  in both main.tsx and Storybook preview.tsx
- Add dark-mode CSS overrides for Select dropdown and option hover
- Add dark-mode CSS override for Accordion control hover
- Rename CSS variable --inspector-status-failed → --inspector-status-error

Component changes:
- CopyButton: increase icon font size to 24px, use --inspector-text-primary
  for high-contrast color (black/white per theme)
- TaskControls: remove onClearHistory (moved to TaskListPanel), fix Select
  clear button not disappearing by passing null instead of undefined
- TaskListPanel: add onClearCompleted callback, render "Clear" button
  next to Completed section header
- HistoryListPanel: move "Clear" button from toolbar to History section
  header, rename from "Clear All"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
cliffhall 2026-04-17 19:26:21 -04:00
commit 658ef86944
2 changed files with 148 additions and 51 deletions

View file

@ -10,7 +10,6 @@ const meta: Meta<typeof TaskControls> = {
onSearchChange: fn(),
onStatusFilterChange: fn(),
onRefresh: fn(),
onClearHistory: fn(),
},
};

View file

@ -10,7 +10,7 @@ const STATUS_OPTIONS: TaskStatus[] = [
];
const ToolbarButton = Button.withProps({
variant: "light",
variant: "subtle",
size: "sm",
});
@ -20,7 +20,6 @@ export interface TaskControlsProps {
onSearchChange: (text: string) => void;
onStatusFilterChange: (status: string) => void;
onRefresh: () => void;
onClearHistory: () => void;
}
export function TaskControls({
@ -29,12 +28,13 @@ export function TaskControls({
onSearchChange,
onStatusFilterChange,
onRefresh,
onClearHistory,
}: TaskControlsProps) {
return (
<Stack gap="md">
<Title order={4}>Tasks</Title>
<Group flex={1} justify={"space-between"}>
<Title order={4}>Tasks</Title>
<ToolbarButton onClick={onRefresh}>Refresh</ToolbarButton>
</Group>
<Title order={5}>Search</Title>
<TextInput
placeholder="Search..."
@ -46,15 +46,10 @@ export function TaskControls({
<Select
placeholder="All statuses"
data={STATUS_OPTIONS}
value={statusFilter}
value={statusFilter ?? null}
onChange={(value) => onStatusFilterChange(value ?? "")}
clearable
/>
<Group>
<ToolbarButton onClick={onRefresh}>Refresh</ToolbarButton>
<ToolbarButton onClick={onClearHistory}>Clear History</ToolbarButton>
</Group>
</Stack>
);
}