- Rename ResourceTemplateInput to ResourceTemplatePanel with panel layout (title header, URI with live variable preview, labeled inputs, Read Resource button) - ResourceTemplatePanel manages its own variable state via useState; single onReadResource(uri) callback returns fully resolved URI - Extract ResourceSubscribedItem group component with name, timestamp, and subtle Unsubscribe button - Add hover state to listItem variant via theme classNames + App.css pseudo-selector - Add Refresh button to ResourcePreviewPanel - Refactor ResourcesScreen callbacks: onSelectUri, onSelectTemplate, onReadResource, onSubscribeResource, onUnsubscribeResource replace per-item onClick/onUnsubscribe props; screen wires callbacks to children - Define data-only types (ResourceItem, TemplateListItem, SubscriptionItem, SelectedResource, SelectedTemplate) separating data from callbacks - Extract named .withProps() subcomponents (FooterRow, AnnotationGroup, ActionGroup, Spacer) for AGENTS.md compliance - Update all stories (ResourceTemplatePanel, ResourcesScreen, ConnectedView) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
14 lines
411 B
TypeScript
14 lines
411 B
TypeScript
import { UnstyledButton } from "@mantine/core";
|
|
|
|
export const ThemeUnstyledButton = UnstyledButton.extend({
|
|
classNames: (_theme, props) => {
|
|
if (props.variant === "listItem") return { root: "list-item" };
|
|
return {};
|
|
},
|
|
styles: (_theme, props) => {
|
|
if (props.variant === "listItem") {
|
|
return { root: { borderRadius: "var(--mantine-radius-md)" } };
|
|
}
|
|
return { root: {} };
|
|
},
|
|
});
|