diff --git a/site/package.json b/site/package.json index 853710dd2300a..b86b4efea31bd 100644 --- a/site/package.json +++ b/site/package.json @@ -79,7 +79,6 @@ "react-confetti": "6.1.0", "react-date-range": "1.4.0", "react-dom": "18.2.0", - "react-headless-tabs": "6.0.3", "react-helmet-async": "1.3.0", "react-markdown": "8.0.7", "react-router-dom": "6.16.0", @@ -90,7 +89,7 @@ "remark-gfm": "3.0.1", "rollup-plugin-visualizer": "5.9.0", "semver": "7.5.3", - "sourcemapped-stacktrace": "1.1.11", + "ts-proto": "1.158.0", "ts-prune": "0.10.3", "tzdata": "1.0.30", "ua-parser-js": "1.0.33", @@ -161,14 +160,12 @@ "msw": "1.3.0", "prettier": "3.0.0", "protobufjs": "7.2.4", - "resize-observer": "1.0.4", "rxjs": "7.8.1", "ssh2": "1.14.0", "storybook": "7.4.0", "storybook-addon-react-router-v6": "2.0.0", "storybook-react-context": "0.6.0", "ts-node": "10.9.1", - "ts-proto": "1.157.0", "typescript": "5.2.2", "vite-plugin-checker": "0.6.0", "vite-plugin-turbosnap": "1.0.2" diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml index 7e12311a6dd2f..23ee68bb46a89 100644 --- a/site/pnpm-lock.yaml +++ b/site/pnpm-lock.yaml @@ -153,9 +153,6 @@ dependencies: react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) - react-headless-tabs: - specifier: 6.0.3 - version: 6.0.3(react-dom@18.2.0)(react@18.2.0) react-helmet-async: specifier: 1.3.0 version: 1.3.0(react-dom@18.2.0)(react@18.2.0) @@ -186,9 +183,9 @@ dependencies: semver: specifier: 7.5.3 version: 7.5.3 - sourcemapped-stacktrace: - specifier: 1.1.11 - version: 1.1.11 + ts-proto: + specifier: 1.158.0 + version: 1.158.0 ts-prune: specifier: 0.10.3 version: 0.10.3 @@ -395,9 +392,6 @@ devDependencies: protobufjs: specifier: 7.2.4 version: 7.2.4 - resize-observer: - specifier: 1.0.4 - version: 1.0.4 rxjs: specifier: 7.8.1 version: 7.8.1 @@ -416,9 +410,6 @@ devDependencies: ts-node: specifier: 10.9.1 version: 10.9.1(@swc/core@1.3.38)(@types/node@18.17.0)(typescript@5.2.2) - ts-proto: - specifier: 1.157.0 - version: 1.157.0 typescript: specifier: 5.2.2 version: 5.2.2 @@ -3440,46 +3431,36 @@ packages: /@protobufjs/aspromise@1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - dev: true /@protobufjs/base64@1.1.2: resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - dev: true /@protobufjs/codegen@2.0.4: resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - dev: true /@protobufjs/eventemitter@1.1.0: resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - dev: true /@protobufjs/fetch@1.1.0: resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/inquire': 1.1.0 - dev: true /@protobufjs/float@1.0.2: resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - dev: true /@protobufjs/inquire@1.1.0: resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - dev: true /@protobufjs/path@1.1.2: resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - dev: true /@protobufjs/pool@1.1.0: resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - dev: true /@protobufjs/utf8@1.1.0: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - dev: true /@radix-ui/number@1.0.1: resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} @@ -7024,7 +7005,7 @@ packages: /case-anything@2.1.13: resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==} engines: {node: '>=12.13'} - dev: true + dev: false /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -7687,7 +7668,7 @@ packages: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} hasBin: true - dev: true + dev: false /detect-libc@2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} @@ -7797,11 +7778,11 @@ packages: engines: {node: '>=12'} dev: true - /dprint-node@1.0.7: - resolution: {integrity: sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA==} + /dprint-node@1.0.8: + resolution: {integrity: sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==} dependencies: detect-libc: 1.0.3 - dev: true + dev: false /duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} @@ -10606,7 +10587,6 @@ packages: /long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - dev: true /longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -11888,7 +11868,6 @@ packages: '@protobufjs/utf8': 1.1.0 '@types/node': 18.17.0 long: 5.2.3 - dev: true /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -12121,16 +12100,6 @@ packages: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} dev: false - /react-headless-tabs@6.0.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VBkN/P1Mpc/4WPcbl0Is+LvVzlqjWxX3G6kOxGQZX63zKaVpU0WP5NBS43JqqgZTG7nJ3JMYTHVXe79uTmRg7w==} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} peerDependencies: @@ -12598,10 +12567,6 @@ packages: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} dev: false - /resize-observer@1.0.4: - resolution: {integrity: sha512-AQ2MdkWTng9d6JtjHvljiQR949qdae91pjSNugGGeOFzKIuLHvoZIYhUTjePla5hCFDwQHrnkciAIzjzdsTZew==} - dev: true - /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -12735,7 +12700,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.1 + tslib: 2.6.2 dev: true /sade@1.8.1: @@ -12971,12 +12936,6 @@ packages: deprecated: Please use @jridgewell/sourcemap-codec instead dev: false - /sourcemapped-stacktrace@1.1.11: - resolution: {integrity: sha512-O0pcWjJqzQFVsisPlPXuNawJHHg9N9UgpJ/aDmvi9+vnS3x1C0NhwkVFzzZ1VN0Xo+bekyweoqYvBw5ZBKiNnQ==} - dependencies: - source-map: 0.5.6 - dev: false - /space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -13553,28 +13512,28 @@ packages: yn: 3.1.1 dev: true - /ts-poet@6.5.0: - resolution: {integrity: sha512-44jURLT1HG6+NsDcadM826V6Ekux+wk07Go+MX5Gfx+8zcPKfUiFEtnjL9imuRVGSCRtloRLqw4bDGZVJYGZMQ==} + /ts-poet@6.6.0: + resolution: {integrity: sha512-4vEH/wkhcjRPFOdBwIh9ItO6jOoumVLRF4aABDX5JSNEubSqwOulihxQPqai+OkuygJm3WYMInxXQX4QwVNMuw==} dependencies: - dprint-node: 1.0.7 - dev: true + dprint-node: 1.0.8 + dev: false /ts-proto-descriptors@1.15.0: resolution: {integrity: sha512-TYyJ7+H+7Jsqawdv+mfsEpZPTIj9siDHS6EMCzG/z3b/PZiphsX+mWtqFfFVe5/N0Th6V3elK9lQqjnrgTOfrg==} dependencies: long: 5.2.3 protobufjs: 7.2.4 - dev: true + dev: false - /ts-proto@1.157.0: - resolution: {integrity: sha512-0f9rvHb+1aLG66UpFHh1QbZ5SMvKqV5EudUerHRF+C47g2wd8ZYXiVrK3VmsmLcNxmMrdi4vWgFNCH6qRg1SrA==} + /ts-proto@1.158.0: + resolution: {integrity: sha512-t5XcKYvdeeeinP4zBA+YXzRANMXacxPzqhs7hsmnD9RxfP1L+Ip858ii9Zdkp/UYW58N3q4wJKLdZfvnBmAk9w==} hasBin: true dependencies: case-anything: 2.1.13 protobufjs: 7.2.4 - ts-poet: 6.5.0 + ts-poet: 6.6.0 ts-proto-descriptors: 1.15.0 - dev: true + dev: false /ts-prune@0.10.3: resolution: {integrity: sha512-iS47YTbdIcvN8Nh/1BFyziyUqmjXz7GVzWu02RaZXqb+e/3Qe1B7IQ4860krOeCGUeJmterAlaM2FRH0Ue0hjw==} @@ -13602,6 +13561,7 @@ packages: /tslib@2.6.1: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} + dev: false /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} diff --git a/site/src/components/Dashboard/Navbar/UserDropdown/BorderedMenuRow.tsx b/site/src/components/Dashboard/Navbar/UserDropdown/BorderedMenuRow.tsx deleted file mode 100644 index cd1ed285bebbc..0000000000000 --- a/site/src/components/Dashboard/Navbar/UserDropdown/BorderedMenuRow.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import ListItem from "@mui/material/ListItem"; -import { makeStyles } from "@mui/styles"; -import CheckIcon from "@mui/icons-material/Check"; -import { FC } from "react"; -import { NavLink } from "react-router-dom"; -import { ellipsizeText } from "utils/ellipsizeText"; -import { Typography } from "components/Typography/Typography"; - -type BorderedMenuRowVariant = "narrow" | "wide"; - -interface BorderedMenuRowProps { - /** `true` indicates this row is currently selected */ - active?: boolean; - /** Optional description that appears beneath the title */ - description?: string; - /** URL path */ - path: string; - /** Required title of this row */ - title: string; - /** Defaults to `"wide"` */ - variant?: BorderedMenuRowVariant; - /** Callback fired when this row is clicked */ - onClick?: () => void; -} - -export const BorderedMenuRow: FC< - React.PropsWithChildren -> = ({ active, description, path, title, variant, onClick }) => { - const styles = useStyles(); - - return ( - - -
-
- {title} - {active && } -
- - {description && ( - - {ellipsizeText(description)} - - )} -
-
-
- ); -}; - -const iconSize = 20; - -const useStyles = makeStyles((theme) => ({ - root: { - cursor: "pointer", - padding: `0 ${theme.spacing(1)}`, - - "&:hover": { - backgroundColor: "unset", - "& $content": { - backgroundColor: theme.palette.background.default, - }, - }, - - "&[data-status='active']": { - color: theme.palette.secondary.dark, - "& .BorderedMenuRow-description": { - color: theme.palette.text.primary, - }, - "& .BorderedMenuRow-icon": { - color: theme.palette.secondary.dark, - }, - }, - }, - rootGutters: { - padding: `0 ${theme.spacing(1.5)}`, - }, - content: { - borderRadius: theme.shape.borderRadius, - display: "flex", - flexDirection: "column", - padding: theme.spacing(2), - width: 320, - - "&[data-variant='narrow']": { - width: 268, - }, - }, - contentTop: { - alignItems: "center", - display: "flex", - }, - icon: { - color: theme.palette.text.secondary, - height: iconSize, - width: iconSize, - - "& path": { - fill: theme.palette.text.secondary, - }, - }, - link: { - textDecoration: "none", - color: "inherit", - }, - title: { - fontSize: 16, - fontWeight: 500, - lineHeight: 1.5, - marginLeft: theme.spacing(2), - }, - checkMark: { - height: iconSize, - marginLeft: "auto", - width: iconSize, - }, - description: { - marginLeft: theme.spacing(4.5), - marginTop: theme.spacing(0.5), - }, -})); diff --git a/site/src/components/Icons/BuildingIcon.tsx b/site/src/components/Icons/BuildingIcon.tsx deleted file mode 100644 index 70361b6a2383a..0000000000000 --- a/site/src/components/Icons/BuildingIcon.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import SvgIcon, { SvgIconProps } from "@mui/material/SvgIcon"; - -export const BuildingIcon = (props: SvgIconProps): JSX.Element => ( - - - -); diff --git a/site/src/components/Icons/CloseIcon.tsx b/site/src/components/Icons/CloseIcon.tsx deleted file mode 100644 index 1f78727d657ad..0000000000000 --- a/site/src/components/Icons/CloseIcon.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import SvgIcon, { SvgIconProps } from "@mui/material/SvgIcon"; - -export const CloseIcon = (props: SvgIconProps) => ( - - - -); diff --git a/site/src/components/Icons/UsersOutlinedIcon.tsx b/site/src/components/Icons/UsersOutlinedIcon.tsx deleted file mode 100644 index 13240db4954f2..0000000000000 --- a/site/src/components/Icons/UsersOutlinedIcon.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import SvgIcon, { SvgIconProps } from "@mui/material/SvgIcon"; - -export const UsersOutlinedIcon = (props: SvgIconProps) => ( - - - - - - - - -); diff --git a/site/src/components/Markdown/Markdown.tsx b/site/src/components/Markdown/Markdown.tsx index 32b16344fdf00..3abb1838e4c30 100644 --- a/site/src/components/Markdown/Markdown.tsx +++ b/site/src/components/Markdown/Markdown.tsx @@ -14,10 +14,6 @@ import { colors } from "theme/colors"; import { darcula } from "react-syntax-highlighter/dist/cjs/styles/prism"; import { combineClasses } from "utils/combineClasses"; -export interface MarkdownProps { - children: string; -} - export const Markdown: FC<{ children: string; className?: string }> = ({ children, className, diff --git a/site/src/pages/UsersPage/UsersPage.test.tsx b/site/src/pages/UsersPage/UsersPage.test.tsx index 7773f0a251d6e..3b94b634a418a 100644 --- a/site/src/pages/UsersPage/UsersPage.test.tsx +++ b/site/src/pages/UsersPage/UsersPage.test.tsx @@ -9,11 +9,11 @@ import { MockOwnerRole, } from "testHelpers/entities"; import { Language as usersXServiceLanguage } from "xServices/users/usersXService"; -import * as API from "../../api/api"; -import { Role } from "../../api/typesGenerated"; +import * as API from "api/api"; +import { Role } from "api/typesGenerated"; import { Language as ResetPasswordDialogLanguage } from "./ResetPasswordDialog"; -import { renderWithAuth } from "../../testHelpers/renderHelpers"; -import { server } from "../../testHelpers/server"; +import { renderWithAuth } from "testHelpers/renderHelpers"; +import { server } from "testHelpers/server"; import { Language as UsersPageLanguage, UsersPage } from "./UsersPage"; const renderPage = () => { diff --git a/site/src/pages/UsersPage/UsersPageView.tsx b/site/src/pages/UsersPage/UsersPageView.tsx index d1baa2bcbca55..e3d19b3ca8503 100644 --- a/site/src/pages/UsersPage/UsersPageView.tsx +++ b/site/src/pages/UsersPage/UsersPageView.tsx @@ -9,10 +9,6 @@ import { TableToolbar, } from "components/TableToolbar/TableToolbar"; -export const Language = { - activeUsersFilterName: "Active users", - allUsersFilterName: "All users", -}; export interface UsersPageViewProps { users?: TypesGen.User[]; count?: number; diff --git a/site/src/theme/constants.ts b/site/src/theme/constants.ts index eef5b8dab02b4..c8f9ba95afc77 100644 --- a/site/src/theme/constants.ts +++ b/site/src/theme/constants.ts @@ -1,5 +1,4 @@ export const borderRadius = 8; -export const borderRadiusSm = 6; export const MONOSPACE_FONT_FAMILY = "'IBM Plex Mono', 'Lucida Console', 'Lucida Sans Typewriter', 'Liberation Mono', 'Monaco', 'Courier New', Courier, monospace"; export const BODY_FONT_FAMILY = `"Inter", sans-serif`; @@ -7,5 +6,4 @@ export const navHeight = 62; export const containerWidth = 1380; export const containerWidthMedium = 1080; export const sidePadding = 24; -export const CardPadding = 20; export const dashboardContentBottomPadding = 8 * 6; diff --git a/site/src/theme/theme.ts b/site/src/theme/theme.ts index ffe8c485077a8..f0485947cf6ab 100644 --- a/site/src/theme/theme.ts +++ b/site/src/theme/theme.ts @@ -8,10 +8,6 @@ export const BUTTON_MD_HEIGHT = 36; export const BUTTON_SM_HEIGHT = 32; export type PaletteIndex = keyof Theme["palette"]; -export type PaletteStatusIndex = Extract< - PaletteIndex, - "error" | "warning" | "info" | "success" ->; export let dark = createTheme({ palette: { diff --git a/site/src/xServices/auth/authMethodsXService.ts b/site/src/xServices/auth/authMethodsXService.ts deleted file mode 100644 index d2a776b71b007..0000000000000 --- a/site/src/xServices/auth/authMethodsXService.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { assign, createMachine } from "xstate"; -import * as TypeGen from "api/typesGenerated"; -import * as API from "api/api"; - -export interface AuthMethodsContext { - authMethods?: TypeGen.AuthMethods; - error?: unknown; -} - -export const authMethodsXService = createMachine( - { - id: "authMethods", - predictableActionArguments: true, - tsTypes: {} as import("./authMethodsXService.typegen").Typegen0, - schema: { - context: {} as AuthMethodsContext, - services: {} as { - getAuthMethods: { - data: TypeGen.AuthMethods; - }; - }, - }, - context: {}, - initial: "gettingAuthMethods", - states: { - gettingAuthMethods: { - invoke: { - src: "getAuthMethods", - onDone: { - target: "idle", - actions: ["assignAuthMethods"], - }, - onError: { - target: "idle", - actions: ["setError"], - }, - }, - }, - idle: {}, - }, - }, - { - actions: { - assignAuthMethods: assign({ - authMethods: (_, event) => event.data, - }), - setError: assign({ - error: (_, event) => event.data, - }), - }, - services: { - getAuthMethods: () => API.getAuthMethods(), - }, - }, -);