diff --git a/site/src/components/PaginationWidget/PageButtons.tsx b/site/src/components/PaginationWidget/PageButtons.tsx
index 1e5f9ff7df18c..666720b62b913 100644
--- a/site/src/components/PaginationWidget/PageButtons.tsx
+++ b/site/src/components/PaginationWidget/PageButtons.tsx
@@ -1,11 +1,9 @@
-import { useTheme } from "@emotion/react";
-import Button from "@mui/material/Button";
+import { Button } from "components/Button/Button";
import type { FC, ReactNode } from "react";
type NumberedPageButtonProps = {
pageNumber: number;
totalPages: number;
-
onClick?: () => void;
highlighted?: boolean;
disabled?: boolean;
@@ -68,23 +66,10 @@ const BasePageButton: FC = ({
highlighted = false,
disabled = false,
}) => {
- const theme = useTheme();
-
return (
);
diff --git a/site/src/modules/resources/PortForwardButton.tsx b/site/src/modules/resources/PortForwardButton.tsx
index a4b8ee8277ebc..026db8601c800 100644
--- a/site/src/modules/resources/PortForwardButton.tsx
+++ b/site/src/modules/resources/PortForwardButton.tsx
@@ -2,15 +2,13 @@ import { type Interpolation, type Theme, useTheme } from "@emotion/react";
import LockIcon from "@mui/icons-material/Lock";
import LockOpenIcon from "@mui/icons-material/LockOpen";
import SensorsIcon from "@mui/icons-material/Sensors";
-import MUIButton from "@mui/material/Button";
-import CircularProgress from "@mui/material/CircularProgress";
import FormControl from "@mui/material/FormControl";
import Link from "@mui/material/Link";
import MenuItem from "@mui/material/MenuItem";
import Select from "@mui/material/Select";
import Stack from "@mui/material/Stack";
import TextField from "@mui/material/TextField";
-import Tooltip from "@mui/material/Tooltip";
+import MUITooltip from "@mui/material/Tooltip";
import { API } from "api/api";
import {
deleteWorkspacePortShare,
@@ -33,6 +31,12 @@ import {
HelpTooltipTitle,
} from "components/HelpTooltip/HelpTooltip";
import { Spinner } from "components/Spinner/Spinner";
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipProvider,
+ TooltipTrigger,
+} from "components/Tooltip/Tooltip";
import {
Popover,
PopoverContent,
@@ -40,7 +44,12 @@ import {
} from "components/deprecated/Popover/Popover";
import { type FormikContextType, useFormik } from "formik";
import { type ClassName, useClassName } from "hooks/useClassName";
-import { ChevronDownIcon, ExternalLinkIcon, X as XIcon } from "lucide-react";
+import {
+ ChevronDownIcon,
+ ExternalLinkIcon,
+ ShareIcon,
+ X as XIcon,
+} from "lucide-react";
import { useDashboard } from "modules/dashboard/useDashboard";
import { type FC, useState } from "react";
import { useMutation, useQuery } from "react-query";
@@ -77,26 +86,13 @@ export const PortForwardButton: FC = (props) => {
return (
- }
- css={{ fontSize: 13, padding: "8px 12px" }}
- startIcon={
- portsQuery.data ? (
-
-
- {portsQuery.data.ports.length}
-
-
- ) : (
-
- )
- }
- >
+
+
+ {portsQuery.data?.ports.length}
+
Open ports
-
+
+
= ({
canSharePorts && template.max_port_share_level === "public";
const disabledPublicMenuItem = (
-
+
{/* Tooltips don't work directly on disabled MenuItem components so you must wrap in div. */}
-
+
);
return (
@@ -297,24 +293,17 @@ export const PortForwardPopoverView: FC = ({
required
css={styles.newPortInput}
/>
-
-
-
+
+
+
+
+
+ Connect to port
+
+
+ Connect to port
+
+
@@ -369,21 +358,29 @@ export const PortForwardPopoverView: FC = ({
alignItems="center"
>
{canSharePorts && (
- {
- await upsertSharedPortMutation.mutateAsync({
- agent_name: agent.name,
- port: port.port,
- protocol: listeningPortProtocol,
- share_level: "authenticated",
- });
- await sharedPortsQuery.refetch();
- }}
- >
- Share
-
+
+
+
+ {
+ await upsertSharedPortMutation.mutateAsync({
+ agent_name: agent.name,
+ port: port.port,
+ protocol: listeningPortProtocol,
+ share_level: "authenticated",
+ });
+ await sharedPortsQuery.refetch();
+ }}
+ >
+
+ Share
+
+
+ Share this port
+
+
)}
@@ -483,10 +480,9 @@ export const PortForwardPopoverView: FC = ({
)}
- {
await deleteSharedPortMutation.mutateAsync({
agent_name: agent.name,
@@ -502,7 +498,7 @@ export const PortForwardPopoverView: FC = ({
color: theme.palette.text.primary,
}}
/>
-
+
);
@@ -617,11 +613,6 @@ const styles = {
},
}),
- deleteButton: () => ({
- minWidth: 30,
- padding: 0,
- }),
-
newPortForm: (theme) => ({
border: `1px solid ${theme.palette.divider}`,
borderRadius: "4px",
diff --git a/site/src/modules/resources/SSHButton/SSHButton.tsx b/site/src/modules/resources/SSHButton/SSHButton.tsx
index 2673d8a8e2241..42e2b3828f3ae 100644
--- a/site/src/modules/resources/SSHButton/SSHButton.tsx
+++ b/site/src/modules/resources/SSHButton/SSHButton.tsx
@@ -1,5 +1,5 @@
import type { Interpolation, Theme } from "@emotion/react";
-import Button from "@mui/material/Button";
+import { Button } from "components/Button/Button";
import { CodeExample } from "components/CodeExample/CodeExample";
import {
HelpTooltipLink,
@@ -34,12 +34,12 @@ export const AgentSSHButton: FC = ({
}
+ size="sm"
+ variant="subtle"
css={{ fontSize: 13, padding: "8px 12px" }}
>
Connect via SSH
+
@@ -96,12 +96,12 @@ export const AgentDevcontainerSSHButton: FC<
}
+ size="sm"
+ variant="subtle"
css={{ fontSize: 13, padding: "8px 12px" }}
>
Connect via SSH
+
diff --git a/site/src/modules/templates/TemplateExampleCard/TemplateExampleCard.tsx b/site/src/modules/templates/TemplateExampleCard/TemplateExampleCard.tsx
index f003a886552e1..bf5c03f96bd2d 100644
--- a/site/src/modules/templates/TemplateExampleCard/TemplateExampleCard.tsx
+++ b/site/src/modules/templates/TemplateExampleCard/TemplateExampleCard.tsx
@@ -1,7 +1,7 @@
import type { Interpolation, Theme } from "@emotion/react";
-import Button from "@mui/material/Button";
import Link from "@mui/material/Link";
import type { TemplateExample } from "api/typesGenerated";
+import { Button } from "components/Button/Button";
import { ExternalImage } from "components/ExternalImage/ExternalImage";
import { Pill } from "components/Pill/Pill";
import type { FC, HTMLAttributes } from "react";
@@ -55,12 +55,10 @@ export const TemplateExampleCard: FC = ({
-
- Use template
+
+
+ Use template
+
diff --git a/site/src/pages/ChatPage/ChatLanding.tsx b/site/src/pages/ChatPage/ChatLanding.tsx
index 9ce232f6b3105..fb49c609e6639 100644
--- a/site/src/pages/ChatPage/ChatLanding.tsx
+++ b/site/src/pages/ChatPage/ChatLanding.tsx
@@ -1,11 +1,11 @@
import { useTheme } from "@emotion/react";
-import Button from "@mui/material/Button";
import IconButton from "@mui/material/IconButton";
import Paper from "@mui/material/Paper";
import Stack from "@mui/material/Stack";
import TextField from "@mui/material/TextField";
import { createChat } from "api/queries/chats";
import type { Chat } from "api/typesGenerated";
+import { Button } from "components/Button/Button";
import { Margins } from "components/Margins/Margins";
import { useAuthenticated } from "hooks";
import { SendIcon } from "lucide-react";
@@ -89,19 +89,19 @@ const ChatLanding: FC = () => {
sx={{ mb: 2 }}
>
setInput("Help me work on issue #...")}
>
Work on Issue
setInput("Help me build a template for...")}
>
Build a Template
setInput("Help me start a new project using...")}
>
Start a Project
diff --git a/site/src/pages/ResetPasswordPage/RequestOTPPage.tsx b/site/src/pages/ResetPasswordPage/RequestOTPPage.tsx
index 2767dff4736ae..f67395b3f732a 100644
--- a/site/src/pages/ResetPasswordPage/RequestOTPPage.tsx
+++ b/site/src/pages/ResetPasswordPage/RequestOTPPage.tsx
@@ -1,5 +1,4 @@
import { type Interpolation, type Theme, useTheme } from "@emotion/react";
-import MuiButton from "@mui/material/Button";
import TextField from "@mui/material/TextField";
import { requestOneTimePassword } from "api/queries/users";
import { ErrorAlert } from "components/Alert/ErrorAlert";
@@ -98,15 +97,9 @@ const RequestOTP: FC = ({
Reset password
-
- Cancel
-
+
+ Cancel
+
@@ -151,9 +144,9 @@ const RequestOTPSuccess: FC<{ email: string }> = ({ email }) => {
Contact your deployment administrator if you encounter issues.
-
- Back to login
-
+
+ Back to login
+
);
diff --git a/site/src/pages/TemplatePage/TemplateInsightsPage/IntervalMenu.tsx b/site/src/pages/TemplatePage/TemplateInsightsPage/IntervalMenu.tsx
index 6f14cb0e38e75..c7da8332a29ab 100644
--- a/site/src/pages/TemplatePage/TemplateInsightsPage/IntervalMenu.tsx
+++ b/site/src/pages/TemplatePage/TemplateInsightsPage/IntervalMenu.tsx
@@ -1,7 +1,7 @@
import ExpandMoreOutlined from "@mui/icons-material/ExpandMoreOutlined";
-import Button from "@mui/material/Button";
import Menu from "@mui/material/Menu";
import MenuItem from "@mui/material/MenuItem";
+import { Button } from "components/Button/Button";
import { CheckIcon } from "lucide-react";
import { type FC, useRef, useState } from "react";
@@ -38,9 +38,10 @@ export const IntervalMenu: FC = ({ value, onChange }) => {
aria-haspopup="true"
aria-expanded={open ? "true" : undefined}
onClick={() => setOpen(true)}
- endIcon={}
+ variant="outline"
>
{insightsIntervals[value].label}
+