| ... | ... | @@ -598,15 +598,19 @@ export function ProviderInstanceCard({ |
| 598 | 598 | selected ? "bg-muted/45" : "hover:bg-muted/25", |
| 599 | 599 | )} |
| 600 | 600 | > |
| 601 | | <button |
| 602 | | type="button" |
| 601 | <div |
| 603 | 602 | className={cn( |
| 604 | | "flex min-w-0 flex-1 cursor-pointer items-start gap-3 rounded-md text-left outline-none transition-opacity focus-visible:ring-2 focus-visible:ring-ring", |
| 603 | "pointer-events-none relative flex min-w-0 flex-1 items-start gap-3 rounded-md text-left transition-opacity", |
| 605 | 604 | !enabled && !selected && "opacity-60 group-hover:opacity-100", |
| 606 | 605 | )} |
| 607 | | onClick={onSelect} |
| 608 | | aria-pressed={selected} |
| 609 | 606 | > |
| 607 | <button |
| 608 | type="button" |
| 609 | className="pointer-events-auto absolute inset-0 cursor-pointer rounded-md outline-none focus-visible:ring-2 focus-visible:ring-ring" |
| 610 | onClick={onSelect} |
| 611 | aria-label={`Select ${displayName}`} |
| 612 | aria-pressed={selected} |
| 613 | /> |
| 610 | 614 | {titleIconNode} |
| 611 | 615 | <span className="min-w-0 flex-1"> |
| 612 | 616 | <span className="flex min-w-0 items-center gap-2"> |
| ... | ... | @@ -622,9 +626,31 @@ export function ProviderInstanceCard({ |
| 622 | 626 | </code> |
| 623 | 627 | ) : null} |
| 624 | 628 | {versionAdvisory ? ( |
| 625 | | <span role="img" aria-label="Update available" className="inline-flex shrink-0"> |
| 626 | | <ArrowUpCircleIcon className="size-3.5 text-muted-foreground" /> |
| 627 | | </span> |
| 629 | updateCommand ? ( |
| 630 | <Tooltip> |
| 631 | <TooltipTrigger |
| 632 | render={ |
| 633 | <Button |
| 634 | type="button" |
| 635 | size="icon-micro" |
| 636 | variant="ghost-muted" |
| 637 | className="pointer-events-auto relative shrink-0" |
| 638 | aria-label={`Copy ${displayName} update command`} |
| 639 | onClick={() => |
| 640 | copyToClipboard(updateCommand, { providerName: displayName }) |
| 641 | } |
| 642 | > |
| 643 | <ArrowUpCircleIcon className="size-3.5" /> |
| 644 | </Button> |
| 645 | } |
| 646 | /> |
| 647 | <TooltipPopup side="top">Copy update command</TooltipPopup> |
| 648 | </Tooltip> |
| 649 | ) : ( |
| 650 | <span role="img" aria-label="Update available" className="inline-flex shrink-0"> |
| 651 | <ArrowUpCircleIcon className="size-3.5 text-muted-foreground" /> |
| 652 | </span> |
| 653 | ) |
| 628 | 654 | ) : null} |
| 629 | 655 | </span> |
| 630 | 656 | <span className="mt-0.5 flex items-start gap-1.5 text-[13px] leading-[1.45] text-muted-foreground/80"> |
| ... | ... | @@ -637,7 +663,7 @@ export function ProviderInstanceCard({ |
| 637 | 663 | </span> |
| 638 | 664 | </span> |
| 639 | 665 | </span> |
| 640 | | </button> |
| 666 | </div> |
| 641 | 667 | <span className="flex h-5 shrink-0 items-center"> |
| 642 | 668 | <Switch |
| 643 | 669 | checked={enabled} |