diff --git a/src/components/Home/PipelineSection/PipelineRow.tsx b/src/components/Home/PipelineSection/PipelineRow.tsx
index ae71d66e2..eeb024727 100644
--- a/src/components/Home/PipelineSection/PipelineRow.tsx
+++ b/src/components/Home/PipelineSection/PipelineRow.tsx
@@ -1,4 +1,4 @@
-import { Link, useNavigate } from "@tanstack/react-router";
+import { useNavigate } from "@tanstack/react-router";
import { type MouseEvent, useCallback, useMemo } from "react";
import { ConfirmationDialog } from "@/components/shared/Dialogs";
@@ -86,15 +86,6 @@ const PipelineRow = ({
return formatDate(modificationTime.toISOString());
}, [modificationTime]);
- const linkProps = {
- to: `${EDITOR_PATH}/$name`,
- params: { name: name ?? "" },
- className: "hover:underline",
- onClick: (e: MouseEvent) => {
- e.stopPropagation();
- },
- };
-
return (
<>
- {name}
+ {name}
diff --git a/src/components/Home/RunSection/RunRow.tsx b/src/components/Home/RunSection/RunRow.tsx
index da817b76a..77435f5f3 100644
--- a/src/components/Home/RunSection/RunRow.tsx
+++ b/src/components/Home/RunSection/RunRow.tsx
@@ -1,4 +1,4 @@
-import { Link, useNavigate } from "@tanstack/react-router";
+import { useNavigate } from "@tanstack/react-router";
import { type MouseEvent, useCallback } from "react";
import type { PipelineRunResponse } from "@/api/types.gen";
@@ -15,6 +15,7 @@ import {
TooltipContent,
TooltipTrigger,
} from "@/components/ui/tooltip";
+import { Paragraph } from "@/components/ui/typography";
import useToastNotification from "@/hooks/useToastNotification";
import { APP_ROUTES } from "@/routes/router";
import {
@@ -50,14 +51,6 @@ const RunRow = ({ run }: { run: PipelineRunResponse }) => {
const clickThroughUrl = `${APP_ROUTES.RUNS}/${runId}`;
- const LinkProps = {
- to: clickThroughUrl,
- className: "underline hover:text-blue-500 text-black",
- onClick: (e: MouseEvent) => {
- e.stopPropagation(); // Prevent triggering the row click handler
- },
- };
-
const createdByButton = (
)}
)}
diff --git a/src/components/shared/ReactFlow/FlowSidebar/sections/FileActions.tsx b/src/components/shared/ReactFlow/FlowSidebar/sections/FileActions.tsx
index 5e7b0203d..ca85f5224 100644
--- a/src/components/shared/ReactFlow/FlowSidebar/sections/FileActions.tsx
+++ b/src/components/shared/ReactFlow/FlowSidebar/sections/FileActions.tsx
@@ -5,6 +5,7 @@ import { PipelineNameDialog } from "@/components/shared/Dialogs";
import ImportPipeline from "@/components/shared/ImportPipeline";
import { Icon } from "@/components/ui/icon";
import { InlineStack } from "@/components/ui/layout";
+import { Link } from "@/components/ui/link";
import {
SidebarContent,
SidebarGroup,
@@ -166,12 +167,13 @@ const FileActions = ({ isOpen }: { isOpen: boolean }) => {
tooltipPosition={tooltipPosition}
asChild
>
-
-
+
diff --git a/src/components/shared/Submitters/GoogleCloud/GoogleCloudSubmitter.tsx b/src/components/shared/Submitters/GoogleCloud/GoogleCloudSubmitter.tsx
index cb41da8e2..da62523ca 100644
--- a/src/components/shared/Submitters/GoogleCloud/GoogleCloudSubmitter.tsx
+++ b/src/components/shared/Submitters/GoogleCloud/GoogleCloudSubmitter.tsx
@@ -2,6 +2,7 @@ import { type ChangeEvent, useCallback } from "react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
+import { Link } from "@/components/ui/link";
import { useGoogleCloudSubmitter } from "@/hooks/useGoogleCloudSubmitter";
import type { ComponentSpec } from "@/utils/componentSpec";
@@ -73,14 +74,14 @@ const GoogleCloudSubmitter = ({ componentSpec }: GoogleCloudSubmitterProps) => {
Submit pipeline job
{jobWebUrl && (
-
Job
-
+
)}
{jsonBlobUrl && (
diff --git a/src/components/shared/Submitters/GoogleCloud/ManualSubmissionInstructions.tsx b/src/components/shared/Submitters/GoogleCloud/ManualSubmissionInstructions.tsx
index f04d98aba..294958171 100644
--- a/src/components/shared/Submitters/GoogleCloud/ManualSubmissionInstructions.tsx
+++ b/src/components/shared/Submitters/GoogleCloud/ManualSubmissionInstructions.tsx
@@ -1,3 +1,5 @@
+import { Link } from "@/components/ui/link";
+
import { InfoBox } from "../../InfoBox";
interface ManualSubmissionInstructionsProps {
@@ -15,31 +17,17 @@ export const ManualSubmissionInstructions = ({
return (
Download{" "}
-
+
pipeline_job.json
-
+
, then go to{" "}
-
+
Vertex Pipelines
- {" "}
+ {" "}
and{" "}
-
+
create a new run
-
+
.
);
diff --git a/src/components/shared/TaskDetails/Details.tsx b/src/components/shared/TaskDetails/Details.tsx
index a40383ed4..9d6a7d57d 100644
--- a/src/components/shared/TaskDetails/Details.tsx
+++ b/src/components/shared/TaskDetails/Details.tsx
@@ -2,7 +2,6 @@ import {
ChevronsUpDown,
ClipboardIcon,
DownloadIcon,
- ExternalLink,
TrashIcon,
} from "lucide-react";
import { type ReactNode, useCallback, useState } from "react";
@@ -14,6 +13,7 @@ import {
CollapsibleContent,
CollapsibleTrigger,
} from "@/components/ui/collapsible";
+import { Link } from "@/components/ui/link";
import {
Tooltip,
TooltipContent,
@@ -337,54 +337,54 @@ function LinkBlock({
{url && (
<>
>
)}
{canonicalUrl && (
<>
>
)}
diff --git a/src/components/ui/link.tsx b/src/components/ui/link.tsx
index 8cd4f7d82..97bd36c3b 100644
--- a/src/components/ui/link.tsx
+++ b/src/components/ui/link.tsx
@@ -1,34 +1,36 @@
import { cva } from "class-variance-authority";
-import { DownloadIcon, ExternalLink } from "lucide-react";
import { type AnchorHTMLAttributes } from "react";
import { cn } from "@/lib/utils";
+import { Icon } from "./icon";
+import { InlineStack } from "./layout";
+
const linkVariants = cva("items-center inline-flex cursor-pointer", {
variants: {
variant: {
- default: "text-primary",
- link: "text-primary hover:underline",
+ primary: "text-primary hover:underline",
disabled: "text-muted-foreground cursor-not-allowed pointer-events-none",
+ classic: "text-sky-500 hover:text-sky-600 hover:underline",
+ block: "text-inherit",
},
size: {
- default: "",
+ xs: "text-xs",
sm: "text-sm",
+ md: "text-md",
lg: "text-lg",
},
},
defaultVariants: {
- variant: "default",
- size: "default",
+ variant: "classic",
+ size: "md",
},
});
interface LinkProps extends AnchorHTMLAttributes {
external?: boolean;
- download?: boolean;
- iconClassName?: string;
- variant?: "default" | "link" | "disabled";
- size?: "default" | "sm" | "lg";
+ variant?: "primary" | "disabled" | "classic" | "block";
+ size?: "xs" | "sm" | "md" | "lg";
}
function Link({
@@ -36,7 +38,6 @@ function Link({
children,
className,
download,
- iconClassName,
variant,
size,
...props
@@ -48,12 +49,14 @@ function Link({
- {children}
- {external && }
- {download && }
+
+ {children}
+ {external && }
+
);
}