chore: additional typescript import modernization (#23536)

This commit is contained in:
Kayla はな
2026-03-24 16:04:39 -06:00
committed by GitHub
parent b45ec388d4
commit e045f8c9e4
537 changed files with 2893 additions and 2825 deletions
+1 -1
View File
@@ -1,6 +1,5 @@
import "./theme/globalFonts";
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
import { TooltipProvider } from "components/Tooltip/Tooltip";
import {
type FC,
type ReactNode,
@@ -10,6 +9,7 @@ import {
} from "react";
import { QueryClient, QueryClientProvider } from "react-query";
import { RouterProvider } from "react-router";
import { TooltipProvider } from "#/components/Tooltip/Tooltip";
import { Toaster } from "./components/Toaster/Toaster";
import { AuthProvider } from "./contexts/auth/AuthProvider";
import { DiffsWorkerPoolProvider } from "./contexts/DiffsWorkerPoolProvider";
+1 -1
View File
@@ -1,7 +1,7 @@
import { API } from "api/api";
import type { AIBridgeListInterceptionsResponse } from "api/typesGenerated";
import { useFilterParamsKey } from "components/Filter/Filter";
import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery";
import { useFilterParamsKey } from "#/components/Filter/Filter";
export const paginatedInterceptions = (
searchParams: URLSearchParams,
+1 -1
View File
@@ -1,7 +1,7 @@
import { API } from "api/api";
import type { AuditLogResponse } from "api/typesGenerated";
import { useFilterParamsKey } from "components/Filter/Filter";
import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery";
import { useFilterParamsKey } from "#/components/Filter/Filter";
export function paginatedAudits(
searchParams: URLSearchParams,
+1 -1
View File
@@ -1,7 +1,7 @@
import { API } from "api/api";
import type { ConnectionLogResponse } from "api/typesGenerated";
import { useFilterParamsKey } from "components/Filter/Filter";
import type { UsePaginatedQueryOptions } from "hooks/usePaginatedQuery";
import { useFilterParamsKey } from "#/components/Filter/Filter";
export function paginatedConnectionLogs(
searchParams: URLSearchParams,
@@ -1,19 +1,19 @@
import type { FC } from "react";
import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts";
import { formatDate } from "utils/time";
import {
type ChartConfig,
ChartContainer,
ChartTooltip,
ChartTooltipContent,
} from "components/Chart/Chart";
} from "#/components/Chart/Chart";
import {
HelpTooltip,
HelpTooltipContent,
HelpTooltipIconTrigger,
HelpTooltipText,
HelpTooltipTitle,
} from "components/HelpTooltip/HelpTooltip";
import type { FC } from "react";
import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts";
import { formatDate } from "utils/time";
} from "#/components/HelpTooltip/HelpTooltip";
const chartConfig = {
amount: {
+1 -1
View File
@@ -1,5 +1,5 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { Button } from "#/components/Button/Button";
import { Alert } from "./Alert";
const meta: Meta<typeof Alert> = {
+1 -1
View File
@@ -1,5 +1,4 @@
import { cva } from "class-variance-authority";
import { Button } from "components/Button/Button";
import {
CircleAlertIcon,
CircleCheckIcon,
@@ -9,6 +8,7 @@ import {
} from "lucide-react";
import { type FC, type ReactNode, useState } from "react";
import { cn } from "utils/cn";
import { Button } from "#/components/Button/Button";
const alertVariants = cva(
"relative w-full rounded-lg border border-solid p-4 text-left",
@@ -1,6 +1,6 @@
import { mockApiError } from "testHelpers/entities";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { Button } from "#/components/Button/Button";
import { ErrorAlert } from "./ErrorAlert";
const mockError = mockApiError({
@@ -1,9 +1,9 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Avatar } from "components/Avatar/Avatar";
import { AvatarData } from "components/Avatar/AvatarData";
import { Check } from "lucide-react";
import { useState } from "react";
import { expect, fn, screen, userEvent, waitFor, within } from "storybook/test";
import { Avatar } from "#/components/Avatar/Avatar";
import { AvatarData } from "#/components/Avatar/AvatarData";
import { Autocomplete } from "./Autocomplete";
const meta: Meta<typeof Autocomplete> = {
@@ -1,18 +1,3 @@
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import {
Command,
CommandEmpty,
CommandGroup,
CommandInput,
CommandItem,
CommandList,
} from "components/Command/Command";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "components/Popover/Popover";
import { Spinner } from "components/Spinner/Spinner";
import { Check, X } from "lucide-react";
import {
type KeyboardEvent,
@@ -21,6 +6,21 @@ import {
useState,
} from "react";
import { cn } from "utils/cn";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
import {
Command,
CommandEmpty,
CommandGroup,
CommandInput,
CommandItem,
CommandList,
} from "#/components/Command/Command";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "#/components/Popover/Popover";
import { Spinner } from "#/components/Spinner/Spinner";
interface AutocompleteProps<TOption> {
value: TOption | null;
+1 -1
View File
@@ -1,6 +1,6 @@
import { type CSSObject, useTheme } from "@emotion/react";
import { Avatar } from "components/Avatar/Avatar";
import type { FC, ReactNode } from "react";
import { Avatar } from "#/components/Avatar/Avatar";
type AvatarCardProps = {
header: string;
+1 -1
View File
@@ -1,5 +1,5 @@
import { Avatar } from "components/Avatar/Avatar";
import type { FC, ReactNode } from "react";
import { Avatar } from "#/components/Avatar/Avatar";
interface AvatarDataProps {
title: ReactNode;
+2 -2
View File
@@ -1,5 +1,5 @@
import { Badge } from "components/Badge/Badge";
import { Stack } from "components/Stack/Stack";
import { Badge } from "#/components/Badge/Badge";
import { Stack } from "#/components/Stack/Stack";
export const EnabledBadge: React.FC = () => {
return (
@@ -8,7 +8,7 @@ import {
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from "components/Breadcrumb/Breadcrumb";
} from "#/components/Breadcrumb/Breadcrumb";
const meta: Meta<typeof Breadcrumb> = {
title: "components/Breadcrumb",
@@ -1,5 +1,4 @@
import { useLexicalNodeSelection } from "@lexical/react/useLexicalNodeSelection";
import { FileIcon } from "components/FileIcon/FileIcon";
import {
$getNodeByKey,
DecoratorNode,
@@ -12,6 +11,7 @@ import {
import { XIcon } from "lucide-react";
import { type FC, memo, type ReactNode } from "react";
import { cn } from "utils/cn";
import { FileIcon } from "#/components/FileIcon/FileIcon";
type SerializedFileReferenceNode = Spread<
{
@@ -1,13 +1,13 @@
import type { Interpolation, Theme } from "@emotion/react";
import { Button } from "components/Button/Button";
import { EyeIcon, EyeOffIcon } from "lucide-react";
import { type FC, useState } from "react";
import { MONOSPACE_FONT_FAMILY } from "theme/constants";
import { Button } from "#/components/Button/Button";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { EyeIcon, EyeOffIcon } from "lucide-react";
import { type FC, useState } from "react";
import { MONOSPACE_FONT_FAMILY } from "theme/constants";
} from "#/components/Tooltip/Tooltip";
import { CopyButton } from "../CopyButton/CopyButton";
interface CodeExampleProps {
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { ChevronsUpDown } from "lucide-react";
import { Button } from "#/components/Button/Button";
import {
Collapsible,
CollapsibleContent,
@@ -1,7 +1,7 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import type { SelectFilterOption } from "components/Filter/SelectFilter";
import { useState } from "react";
import { expect, screen, userEvent, waitFor, within } from "storybook/test";
import type { SelectFilterOption } from "#/components/Filter/SelectFilter";
import {
Combobox,
ComboboxButton,
+9 -9
View File
@@ -1,22 +1,22 @@
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import { Button } from "components/Button/Button";
import { CheckIcon } from "lucide-react";
import type React from "react";
import { createContext, useContext, useState } from "react";
import { cn } from "utils/cn";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
import { Button } from "#/components/Button/Button";
import {
Command,
CommandEmpty,
CommandInput,
CommandItem,
CommandList,
} from "components/Command/Command";
import type { SelectFilterOption } from "components/Filter/SelectFilter";
} from "#/components/Command/Command";
import type { SelectFilterOption } from "#/components/Filter/SelectFilter";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "components/Popover/Popover";
import { CheckIcon } from "lucide-react";
import type React from "react";
import { createContext, useContext, useState } from "react";
import { cn } from "utils/cn";
} from "#/components/Popover/Popover";
type ComboboxContextProps = {
open: boolean;
@@ -1,13 +1,13 @@
import { CheckIcon } from "components/AnimatedIcons/Check";
import { Button, type ButtonProps } from "components/Button/Button";
import { useClipboard } from "hooks/useClipboard";
import { CopyIcon } from "lucide-react";
import type { FC } from "react";
import { CheckIcon } from "#/components/AnimatedIcons/Check";
import { Button, type ButtonProps } from "#/components/Button/Button";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { useClipboard } from "hooks/useClipboard";
import { CopyIcon } from "lucide-react";
import type { FC } from "react";
} from "#/components/Tooltip/Tooltip";
type CopyButtonProps = ButtonProps & {
text: string;
@@ -1,12 +1,12 @@
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { useClickable } from "hooks/useClickable";
import { useClipboard } from "hooks/useClipboard";
import { type FC, type HTMLAttributes, useState } from "react";
import { cn } from "utils/cn";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "#/components/Tooltip/Tooltip";
type TooltipSide = "top" | "right" | "bottom" | "left";
@@ -1,7 +1,7 @@
import type { Interpolation, Theme } from "@emotion/react";
import { CoderIcon } from "components/Icons/CoderIcon";
import type { FC } from "react";
import { getApplicationName, getLogoURL } from "utils/appearance";
import { CoderIcon } from "#/components/Icons/CoderIcon";
/**
* Enterprise customers can set a custom logo for their Coder application. Use
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { userEvent, within } from "storybook/test";
import { Button } from "#/components/Button/Button";
import {
Dialog,
DialogContent,
+2 -2
View File
@@ -1,7 +1,7 @@
import MuiDialog, { type DialogProps } from "@mui/material/Dialog";
import { Button } from "components/Button/Button";
import { Spinner } from "components/Spinner/Spinner";
import type { FC, ReactNode } from "react";
import { Button } from "#/components/Button/Button";
import { Spinner } from "#/components/Spinner/Spinner";
import type { ConfirmDialogType } from "./types";
export interface DialogActionButtonsProps {
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { userEvent, within } from "storybook/test";
import { Button } from "#/components/Button/Button";
import {
DropdownMenu,
DropdownMenuContent,
@@ -1,5 +1,5 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { Button } from "#/components/Button/Button";
import { EmptyState } from "./EmptyState";
const meta: Meta<typeof EmptyState> = {
@@ -1,6 +1,3 @@
import { Button } from "components/Button/Button";
import { CoderIcon } from "components/Icons/CoderIcon";
import { Link } from "components/Link/Link";
import { useEmbeddedMetadata } from "hooks/useEmbeddedMetadata";
import { type FC, useState } from "react";
import {
@@ -9,6 +6,9 @@ import {
useLocation,
useRouteError,
} from "react-router";
import { Button } from "#/components/Button/Button";
import { CoderIcon } from "#/components/Icons/CoderIcon";
import { Link } from "#/components/Link/Link";
const errorPageTitle = "Something went wrong";
+3 -3
View File
@@ -1,10 +1,10 @@
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import type { FC, ReactNode } from "react";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
import {
Collapsible,
CollapsibleContent,
CollapsibleTrigger,
} from "components/Collapsible/Collapsible";
import type { FC, ReactNode } from "react";
} from "#/components/Collapsible/Collapsible";
interface ExpanderProps {
expanded: boolean;
@@ -1,12 +1,12 @@
import { Link } from "components/Link/Link";
import type { FC, HTMLAttributes, ReactNode } from "react";
import { cn } from "utils/cn";
import { docs } from "utils/docs";
import { Link } from "#/components/Link/Link";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import type { FC, HTMLAttributes, ReactNode } from "react";
import { cn } from "utils/cn";
import { docs } from "utils/docs";
} from "#/components/Tooltip/Tooltip";
/**
* All types of feature that we are currently supporting. Defined as record to
+12 -12
View File
@@ -1,10 +1,10 @@
import { css, type Interpolation, type Theme } from "@emotion/react";
import CircularProgress from "@mui/material/CircularProgress";
import IconButton from "@mui/material/IconButton";
import { Stack } from "components/Stack/Stack";
import { useClickable } from "hooks/useClickable";
import { CloudUploadIcon, FolderIcon, TrashIcon } from "lucide-react";
import { type DragEvent, type FC, type ReactNode, useRef } from "react";
import { Stack } from "#/components/Stack/Stack";
interface FileUploadProps {
isUploading: boolean;
@@ -137,18 +137,18 @@ const useFileDrop = (
const styles = {
root: (theme) => css`
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
border: 2px dashed ${theme.palette.divider};
padding: 48px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8px;
border: 2px dashed ${theme.palette.divider};
padding: 48px;
cursor: pointer;
&:hover {
background-color: ${theme.palette.background.paper};
}
`,
&:hover {
background-color: ${theme.palette.background.paper};
}
`,
disabled: {
pointerEvents: "none",
+6 -6
View File
@@ -6,7 +6,10 @@ import {
hasError,
isApiValidationError,
} from "api/errors";
import { Button } from "components/Button/Button";
import { useDebouncedFunction } from "hooks/debounce";
import { ExternalLinkIcon, SlidersHorizontal } from "lucide-react";
import { type FC, type ReactNode, useEffect, useRef, useState } from "react";
import { Button } from "#/components/Button/Button";
import {
DropdownMenu,
DropdownMenuContent,
@@ -15,11 +18,8 @@ import {
DropdownMenuRadioItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "components/DropdownMenu/DropdownMenu";
import { SearchField } from "components/SearchField/SearchField";
import { useDebouncedFunction } from "hooks/debounce";
import { ExternalLinkIcon, SlidersHorizontal } from "lucide-react";
import { type FC, type ReactNode, useEffect, useRef, useState } from "react";
} from "#/components/DropdownMenu/DropdownMenu";
import { SearchField } from "#/components/SearchField/SearchField";
type PresetFilter = {
name: string;
@@ -1,9 +1,9 @@
import { withDesktopViewport } from "testHelpers/storybook";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Avatar } from "components/Avatar/Avatar";
import { ComboboxInput } from "components/Combobox/Combobox";
import { useState } from "react";
import { expect, screen, userEvent, within } from "storybook/test";
import { Avatar } from "#/components/Avatar/Avatar";
import { ComboboxInput } from "#/components/Combobox/Combobox";
import { SelectFilter, type SelectFilterOption } from "./SelectFilter";
const options: SelectFilterOption[] = Array.from({ length: 50 }, (_, i) => ({
+4 -4
View File
@@ -1,3 +1,5 @@
import type { FC, ReactNode } from "react";
import { cn } from "utils/cn";
import {
Combobox,
ComboboxButton,
@@ -6,10 +8,8 @@ import {
ComboboxItem,
ComboboxList,
ComboboxTrigger,
} from "components/Combobox/Combobox";
import { Spinner } from "components/Spinner/Spinner";
import type { FC, ReactNode } from "react";
import { cn } from "utils/cn";
} from "#/components/Combobox/Combobox";
import { Spinner } from "#/components/Spinner/Spinner";
const BASE_WIDTH = 200;
+5 -5
View File
@@ -1,12 +1,12 @@
import { API } from "api/api";
import { Avatar } from "components/Avatar/Avatar";
import { ComboboxInput } from "components/Combobox/Combobox";
import { useAuthenticated } from "hooks";
import type { FC } from "react";
import { Avatar } from "#/components/Avatar/Avatar";
import { ComboboxInput } from "#/components/Combobox/Combobox";
import {
SelectFilter,
type SelectFilterOption,
} from "components/Filter/SelectFilter";
import { useAuthenticated } from "hooks";
import type { FC } from "react";
} from "#/components/Filter/SelectFilter";
import { type UseFilterMenuOptions, useFilterMenu } from "./menu";
export const DEFAULT_USER_FILTER_WIDTH = 175;
+10 -6
View File
@@ -1,15 +1,19 @@
import { Filter, MenuSkeleton, type useFilter } from "components/Filter/Filter";
import type { FC } from "react";
import { docs } from "utils/docs";
import {
Filter,
MenuSkeleton,
type useFilter,
} from "#/components/Filter/Filter";
import {
type UseFilterMenuOptions,
useFilterMenu,
} from "components/Filter/menu";
} from "#/components/Filter/menu";
import {
SelectFilter,
type SelectFilterOption,
} from "components/Filter/SelectFilter";
import { StatusIndicatorDot } from "components/StatusIndicator/StatusIndicator";
import type { FC } from "react";
import { docs } from "utils/docs";
} from "#/components/Filter/SelectFilter";
import { StatusIndicatorDot } from "#/components/StatusIndicator/StatusIndicator";
const userFilterQuery = {
active: "status:active",
+1 -1
View File
@@ -1,6 +1,6 @@
import type { SelectFilterOption } from "components/Filter/SelectFilter";
import { useMemo, useRef, useState } from "react";
import { keepPreviousData, useQuery } from "react-query";
import type { SelectFilterOption } from "#/components/Filter/SelectFilter";
export type UseFilterMenuOptions = {
id: string;
+2 -2
View File
@@ -1,6 +1,4 @@
import { type Interpolation, type Theme, useTheme } from "@emotion/react";
import { AlphaBadge, DeprecatedBadge } from "components/Badges/Badges";
import { Stack } from "components/Stack/Stack";
import {
type ComponentProps,
createContext,
@@ -10,6 +8,8 @@ import {
useContext,
} from "react";
import { cn } from "utils/cn";
import { AlphaBadge, DeprecatedBadge } from "#/components/Badges/Badges";
import { Stack } from "#/components/Stack/Stack";
type FormContextValue = { direction?: "horizontal" | "vertical" };
+2 -2
View File
@@ -1,8 +1,8 @@
import { Input } from "components/Input/Input";
import { Label } from "components/Label/Label";
import { type FC, type ReactNode, useId } from "react";
import { cn } from "utils/cn";
import type { FormHelpers } from "utils/formUtils";
import { Input } from "#/components/Input/Input";
import { Label } from "#/components/Label/Label";
type FormFieldProps = React.ComponentPropsWithRef<"input"> & {
field: FormHelpers;
@@ -1,8 +1,8 @@
import TextField from "@mui/material/TextField";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { FormFooter } from "components/Form/Form";
import type { FC } from "react";
import { Button } from "#/components/Button/Button";
import { FormFooter } from "#/components/Form/Form";
import { Stack } from "../Stack/Stack";
import { FullPageForm, type FullPageFormProps } from "./FullPageForm";
@@ -1,10 +1,10 @@
import { Margins } from "components/Margins/Margins";
import type { FC, ReactNode } from "react";
import { Margins } from "#/components/Margins/Margins";
import {
PageHeader,
PageHeaderSubtitle,
PageHeaderTitle,
} from "components/PageHeader/PageHeader";
import type { FC, ReactNode } from "react";
} from "#/components/PageHeader/PageHeader";
export interface FullPageFormProps {
title: string;
detail?: ReactNode;
@@ -1,11 +1,11 @@
import { Button } from "components/Button/Button";
import { Margins } from "components/Margins/Margins";
import type { FC, ReactNode } from "react";
import { Button } from "#/components/Button/Button";
import { Margins } from "#/components/Margins/Margins";
import {
PageHeader,
PageHeaderSubtitle,
PageHeaderTitle,
} from "components/PageHeader/PageHeader";
import type { FC, ReactNode } from "react";
} from "#/components/PageHeader/PageHeader";
interface FullPageHorizontalFormProps {
title: string;
@@ -1,7 +1,5 @@
import { useTheme } from "@emotion/react";
import IconButton, { type IconButtonProps } from "@mui/material/IconButton";
import { Avatar, type AvatarProps } from "components/Avatar/Avatar";
import { Button, type ButtonProps } from "components/Button/Button";
import {
cloneElement,
type FC,
@@ -10,6 +8,8 @@ import {
type Ref,
} from "react";
import { cn } from "utils/cn";
import { Avatar, type AvatarProps } from "#/components/Avatar/Avatar";
import { Button, type ButtonProps } from "#/components/Button/Button";
export const Topbar: FC<HTMLAttributes<HTMLElement>> = ({
className,
@@ -4,10 +4,10 @@ import Link from "@mui/material/Link";
import type { ApiErrorResponse } from "api/errors";
import type { ExternalAuthDevice } from "api/typesGenerated";
import { isAxiosError } from "axios";
import { Alert, AlertDescription, AlertTitle } from "components/Alert/Alert";
import { CopyButton } from "components/CopyButton/CopyButton";
import { ExternalLinkIcon } from "lucide-react";
import type { FC } from "react";
import { Alert, AlertDescription, AlertTitle } from "#/components/Alert/Alert";
import { CopyButton } from "#/components/CopyButton/CopyButton";
interface GitDeviceAuthProps {
externalAuthDevice?: ExternalAuthDevice;
@@ -1,13 +1,13 @@
import { CircleHelpIcon, ExternalLinkIcon } from "lucide-react";
import type { FC, HTMLAttributes, PropsWithChildren, ReactNode } from "react";
import { cn } from "utils/cn";
import {
Tooltip,
TooltipContent,
type TooltipContentProps,
type TooltipProps,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleHelpIcon, ExternalLinkIcon } from "lucide-react";
import type { FC, HTMLAttributes, PropsWithChildren, ReactNode } from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
type Icon = typeof CircleHelpIcon;
+6 -6
View File
@@ -1,16 +1,16 @@
import { css, Global, useTheme } from "@emotion/react";
import InputAdornment from "@mui/material/InputAdornment";
import TextField, { type TextFieldProps } from "@mui/material/TextField";
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import { Button } from "components/Button/Button";
import { ExternalImage } from "components/ExternalImage/ExternalImage";
import { Loader } from "components/Loader/Loader";
import { type FC, lazy, Suspense, useState } from "react";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
import { Button } from "#/components/Button/Button";
import { ExternalImage } from "#/components/ExternalImage/ExternalImage";
import { Loader } from "#/components/Loader/Loader";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "components/Popover/Popover";
import { type FC, lazy, Suspense, useState } from "react";
} from "#/components/Popover/Popover";
type IconFieldProps = TextFieldProps & {
onPickEmoji: (value: string) => void;
@@ -1,3 +1,6 @@
import type { FC, ReactNode } from "react";
import type { ThemeRole } from "theme/roles";
import { cn } from "utils/cn";
import {
HelpTooltip,
HelpTooltipContent,
@@ -5,10 +8,7 @@ import {
HelpTooltipIconTrigger,
HelpTooltipText,
HelpTooltipTitle,
} from "components/HelpTooltip/HelpTooltip";
import type { FC, ReactNode } from "react";
import type { ThemeRole } from "theme/roles";
import { cn } from "utils/cn";
} from "#/components/HelpTooltip/HelpTooltip";
interface InfoTooltipProps {
type?: ThemeRole;
@@ -1,7 +1,7 @@
import { cva, type VariantProps } from "class-variance-authority";
import { Button, type ButtonProps } from "components/Button/Button";
import { Input } from "components/Input/Input";
import { cn } from "utils/cn";
import { Button, type ButtonProps } from "#/components/Button/Button";
import { Input } from "#/components/Input/Input";
export const InputGroup: React.FC<React.ComponentProps<"div">> = ({
className,
+6 -6
View File
@@ -1,14 +1,14 @@
import CircularProgress from "@mui/material/CircularProgress";
import { Abbr } from "components/Abbr/Abbr";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleHelpIcon } from "lucide-react";
import type { FC } from "react";
import { cn } from "utils/cn";
import { getLatencyColor } from "utils/latency";
import { Abbr } from "#/components/Abbr/Abbr";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "#/components/Tooltip/Tooltip";
interface LatencyProps {
latency?: number;
+1 -1
View File
@@ -1,6 +1,6 @@
import { Spinner } from "components/Spinner/Spinner";
import type { FC, HTMLAttributes } from "react";
import { cn } from "utils/cn";
import { Spinner } from "#/components/Spinner/Spinner";
interface LoaderProps extends HTMLAttributes<HTMLDivElement> {
fullscreen?: boolean;
+7 -7
View File
@@ -1,12 +1,5 @@
import type { Interpolation, Theme } from "@emotion/react";
import Link from "@mui/material/Link";
import {
Table,
TableBody,
TableCell,
TableHeader,
TableRow,
} from "components/Table/Table";
import isEqual from "lodash/isEqual";
import {
type FC,
@@ -22,6 +15,13 @@ import { dracula } from "react-syntax-highlighter/dist/cjs/styles/prism";
import gfm from "remark-gfm";
import colors from "theme/tailwindColors";
import { cn } from "utils/cn";
import {
Table,
TableBody,
TableCell,
TableHeader,
TableRow,
} from "#/components/Table/Table";
interface MarkdownProps {
/**
+2 -2
View File
@@ -1,8 +1,8 @@
import type { FC } from "react";
import {
SearchField,
type SearchFieldProps,
} from "components/SearchField/SearchField";
import type { FC } from "react";
} from "#/components/SearchField/SearchField";
export const MenuSearch: FC<SearchFieldProps> = (props) => {
return <SearchField className="w-full [&_input]:rounded-none" {...props} />;
};
@@ -3,20 +3,6 @@
* @see {@link https://shadcnui-expansions.typeart.cc/docs/multiple-selector}
*/
import { Command as CommandPrimitive, useCommandState } from "cmdk";
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import { Avatar } from "components/Avatar/Avatar";
import { Badge } from "components/Badge/Badge";
import {
Command,
CommandGroup,
CommandItem,
CommandList,
} from "components/Command/Command";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { useDebouncedValue } from "hooks/debounce";
import { Info, X } from "lucide-react";
import {
@@ -32,6 +18,20 @@ import {
useState,
} from "react";
import { cn } from "utils/cn";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
import { Avatar } from "#/components/Avatar/Avatar";
import { Badge } from "#/components/Badge/Badge";
import {
Command,
CommandGroup,
CommandItem,
CommandList,
} from "#/components/Command/Command";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "#/components/Tooltip/Tooltip";
export interface Option {
value: string;
@@ -1,9 +1,12 @@
import { checkAuthorization } from "api/queries/authCheck";
import { organizations } from "api/queries/organizations";
import type { AuthorizationCheck, Organization } from "api/typesGenerated";
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import { Avatar } from "components/Avatar/Avatar";
import { Button } from "components/Button/Button";
import { Check } from "lucide-react";
import { type FC, useEffect, useState } from "react";
import { useQuery } from "react-query";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
import { Avatar } from "#/components/Avatar/Avatar";
import { Button } from "#/components/Button/Button";
import {
Command,
CommandEmpty,
@@ -11,15 +14,12 @@ import {
CommandInput,
CommandItem,
CommandList,
} from "components/Command/Command";
} from "#/components/Command/Command";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "components/Popover/Popover";
import { Check } from "lucide-react";
import { type FC, useEffect, useState } from "react";
import { useQuery } from "react-query";
} from "#/components/Popover/Popover";
type OrganizationAutocompleteProps = {
onChange: (organization: Organization | null) => void;
@@ -1,5 +1,5 @@
import { Button } from "components/Button/Button";
import type { FC, ReactNode } from "react";
import { Button } from "#/components/Button/Button";
type NumberedPageButtonProps = {
pageNumber: number;
@@ -1,5 +1,5 @@
import { Button } from "components/Button/Button";
import type { ButtonHTMLAttributes, ReactNode } from "react";
import { Button } from "#/components/Button/Button";
type PaginationNavButtonProps = Omit<
ButtonHTMLAttributes<HTMLButtonElement>,
@@ -1,5 +1,5 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { PremiumBadge } from "components/Badges/Badges";
import { PremiumBadge } from "#/components/Badges/Badges";
import {
Paywall,
PaywallContent,
+1 -1
View File
@@ -1,8 +1,8 @@
import { Button } from "components/Button/Button";
import { CircleCheckBigIcon } from "lucide-react";
import type React from "react";
import type { FC } from "react";
import { cn } from "utils/cn";
import { Button } from "#/components/Button/Button";
export const Paywall = ({
className,
@@ -1,5 +1,5 @@
import { PremiumBadge } from "components/Badges/Badges";
import { docs } from "utils/docs";
import { PremiumBadge } from "#/components/Badges/Badges";
import {
Paywall,
PaywallContent,
@@ -1,6 +1,6 @@
import { PremiumBadge } from "components/Badges/Badges";
import type { ReactNode } from "react";
import { cn } from "utils/cn";
import { PremiumBadge } from "#/components/Badges/Badges";
import {
Paywall,
PaywallContent,
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { expect, screen, userEvent, waitFor, within } from "storybook/test";
import { Button } from "#/components/Button/Button";
import { Popover, PopoverContent, PopoverTrigger } from "./Popover";
const meta: Meta<typeof Popover> = {
@@ -6,22 +6,22 @@ import Radio from "@mui/material/Radio";
import RadioGroup from "@mui/material/RadioGroup";
import TextField, { type TextFieldProps } from "@mui/material/TextField";
import type { TemplateVersionParameter } from "api/typesGenerated";
import { Button } from "components/Button/Button";
import { ExternalImage } from "components/ExternalImage/ExternalImage";
import { MemoizedMarkdown } from "components/Markdown/Markdown";
import { Pill } from "components/Pill/Pill";
import { Stack } from "components/Stack/Stack";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, SettingsIcon } from "lucide-react";
import { type FC, type ReactNode, useState } from "react";
import type {
AutofillBuildParameter,
AutofillSource,
} from "utils/richParameters";
import { Button } from "#/components/Button/Button";
import { ExternalImage } from "#/components/ExternalImage/ExternalImage";
import { MemoizedMarkdown } from "#/components/Markdown/Markdown";
import { Pill } from "#/components/Pill/Pill";
import { Stack } from "#/components/Stack/Stack";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "#/components/Tooltip/Tooltip";
import { TagInput } from "../TagInput/TagInput";
const isBoolean = (parameter: TemplateVersionParameter) => {
@@ -1,17 +1,17 @@
import { useEffectEvent } from "hooks/hookPolyfills";
import { SearchIcon, XIcon } from "lucide-react";
import { type Ref, useLayoutEffect, useRef } from "react";
import {
InputGroup,
InputGroupAddon,
InputGroupButton,
InputGroupInput,
} from "components/InputGroup/InputGroup";
} from "#/components/InputGroup/InputGroup";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { useEffectEvent } from "hooks/hookPolyfills";
import { SearchIcon, XIcon } from "lucide-react";
import { type Ref, useLayoutEffect, useRef } from "react";
} from "#/components/Tooltip/Tooltip";
export type SearchFieldProps = {
value: string;
+1 -1
View File
@@ -3,13 +3,13 @@
* @see {@link https://ui.shadcn.com/docs/components/select}
*/
import * as SelectPrimitive from "@radix-ui/react-select";
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import {
Check,
ChevronUp,
ChevronDown as LucideChevronDown,
} from "lucide-react";
import { cn } from "utils/cn";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
export const Select = SelectPrimitive.Root;
@@ -1,8 +1,8 @@
import { withDesktopViewport } from "testHelpers/storybook";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Avatar } from "components/Avatar/Avatar";
import { action } from "storybook/actions";
import { userEvent, within } from "storybook/test";
import { Avatar } from "#/components/Avatar/Avatar";
import {
SelectMenu,
SelectMenuButton,
+13 -13
View File
@@ -1,18 +1,5 @@
import MenuItem, { type MenuItemProps } from "@mui/material/MenuItem";
import MenuList, { type MenuListProps } from "@mui/material/MenuList";
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import { Button, type ButtonProps } from "components/Button/Button";
import {
Popover,
PopoverContent,
type PopoverContentProps,
PopoverTrigger,
type PopoverTriggerProps,
} from "components/Popover/Popover";
import {
SearchField,
type SearchFieldProps,
} from "components/SearchField/SearchField";
import { CheckIcon } from "lucide-react";
import {
Children,
@@ -23,6 +10,19 @@ import {
useMemo,
} from "react";
import { cn } from "utils/cn";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
import { Button, type ButtonProps } from "#/components/Button/Button";
import {
Popover,
PopoverContent,
type PopoverContentProps,
PopoverTrigger,
type PopoverTriggerProps,
} from "#/components/Popover/Popover";
import {
SearchField,
type SearchFieldProps,
} from "#/components/SearchField/SearchField";
export const SelectMenu = Popover;
@@ -1,8 +1,8 @@
import { cva, type VariantProps } from "class-variance-authority";
import { Button } from "components/Button/Button";
import { SquareArrowOutUpRightIcon } from "lucide-react";
import type { FC, PropsWithChildren, ReactNode } from "react";
import { cn } from "utils/cn";
import { Button } from "#/components/Button/Button";
type SettingsHeaderProps = Readonly<
PropsWithChildren<{
@@ -1,5 +1,4 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Avatar } from "components/Avatar/Avatar";
import {
CalendarCogIcon,
FingerprintIcon,
@@ -8,6 +7,7 @@ import {
UserIcon,
} from "lucide-react";
import { Outlet } from "react-router";
import { Avatar } from "#/components/Avatar/Avatar";
import { Sidebar, SidebarHeader, SidebarNavItem } from "./Sidebar";
const meta: Meta<typeof Sidebar> = {
+1 -1
View File
@@ -1,7 +1,7 @@
import { Stack } from "components/Stack/Stack";
import type { ElementType, FC, ReactNode } from "react";
import { Link, NavLink } from "react-router";
import { cn } from "utils/cn";
import { Stack } from "#/components/Stack/Stack";
interface SidebarProps {
children?: ReactNode;
@@ -1,9 +1,9 @@
import FormHelperText, {
type FormHelperTextProps,
} from "@mui/material/FormHelperText";
import { Stack } from "components/Stack/Stack";
import type { ComponentProps, FC } from "react";
import { cn } from "utils/cn";
import { Stack } from "#/components/Stack/Stack";
/**
* Use these components as the label in FormControlLabel when implementing radio
@@ -1,11 +1,11 @@
import { cva, type VariantProps } from "class-variance-authority";
import { createContext, type FC, useContext } from "react";
import { cn } from "utils/cn";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { createContext, type FC, useContext } from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
const statusIndicatorVariants = cva(
"font-medium inline-flex items-center gap-2",
@@ -1,11 +1,11 @@
import { Pill } from "components/Pill/Pill";
import type { FC } from "react";
import { httpStatusColor } from "utils/http";
import { Pill } from "#/components/Pill/Pill";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import type { FC } from "react";
import { httpStatusColor } from "utils/http";
} from "#/components/Tooltip/Tooltip";
interface StatusPillProps {
code: number;
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { CodeExample } from "components/CodeExample/CodeExample";
import { Table, TableBody } from "components/Table/Table";
import { CodeExample } from "#/components/CodeExample/CodeExample";
import { Table, TableBody } from "#/components/Table/Table";
import { TableEmpty } from "./TableEmpty";
const meta: Meta<typeof TableEmpty> = {
@@ -1,9 +1,9 @@
import type { FC } from "react";
import {
EmptyState,
type EmptyStateProps,
} from "components/EmptyState/EmptyState";
import { TableCell, TableRow } from "components/Table/Table";
import type { FC } from "react";
} from "#/components/EmptyState/EmptyState";
import { TableCell, TableRow } from "#/components/Table/Table";
type TableEmptyProps = EmptyStateProps;
@@ -1,5 +1,5 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Table, TableBody } from "components/Table/Table";
import { Table, TableBody } from "#/components/Table/Table";
import { TableLoader } from "./TableLoader";
const meta: Meta<typeof TableLoader> = {
@@ -1,9 +1,9 @@
import { cloneElement, type FC, isValidElement, type ReactNode } from "react";
import {
TableCell,
TableRow,
type TableRowProps,
} from "components/Table/Table";
import { cloneElement, type FC, isValidElement, type ReactNode } from "react";
} from "#/components/Table/Table";
import { Loader } from "../Loader/Loader";
export const TableLoader: FC = () => {
+2 -2
View File
@@ -1,7 +1,7 @@
import { Badge } from "components/Badge/Badge";
import { Button } from "components/Button/Button";
import { X } from "lucide-react";
import { type FC, useId, useMemo } from "react";
import { Badge } from "#/components/Badge/Badge";
import { Button } from "#/components/Button/Button";
type TagInputProps = {
label: string;
+1 -1
View File
@@ -1,5 +1,5 @@
import { TimelineDateRow } from "components/Timeline/TimelineDateRow";
import { Fragment, type JSX } from "react";
import { TimelineDateRow } from "#/components/Timeline/TimelineDateRow";
type GetDateFn<TData> = (data: TData) => Date;
@@ -1,7 +1,7 @@
import { css, useTheme } from "@emotion/react";
import { TableCell, TableRow } from "components/Table/Table";
import type { FC } from "react";
import { formatDate } from "utils/time";
import { TableCell, TableRow } from "#/components/Table/Table";
import { createDisplayDate } from "./utils";
export interface TimelineDateRow {
@@ -14,10 +14,10 @@ export const TimelineDateRow: FC<TimelineDateRow> = ({ date }) => {
return (
<TableRow
css={css`
&:not(:first-of-type) td {
border-top: 1px solid ${theme.palette.divider};
}
`}
&:not(:first-of-type) td {
border-top: 1px solid ${theme.palette.divider};
}
`}
>
<TableCell
css={{
@@ -1,5 +1,5 @@
import { TableRow, type TableRowProps } from "components/Table/Table";
import { cn } from "utils/cn";
import { TableRow, type TableRowProps } from "#/components/Table/Table";
interface TimelineEntryProps extends TableRowProps {
ref?: React.Ref<HTMLTableRowElement>;
+1 -1
View File
@@ -1,4 +1,3 @@
import { Spinner } from "components/Spinner/Spinner";
import {
CheckIcon,
InfoIcon,
@@ -8,6 +7,7 @@ import {
} from "lucide-react";
import { Toaster as Sonner, type ToasterProps as SonnerProps } from "sonner";
import { cn } from "utils/cn";
import { Spinner } from "#/components/Spinner/Spinner";
export const Toaster = ({ ...props }: SonnerProps) => {
return (
@@ -1,5 +1,5 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { Button } from "components/Button/Button";
import { Button } from "#/components/Button/Button";
import {
Tooltip,
TooltipContent,
@@ -6,10 +6,15 @@ import type {
OrganizationMemberWithUserData,
User,
} from "api/typesGenerated";
import { ChevronDownIcon } from "components/AnimatedIcons/ChevronDown";
import { Avatar } from "components/Avatar/Avatar";
import { AvatarData } from "components/Avatar/AvatarData";
import { Button } from "components/Button/Button";
import { useDebouncedFunction, useDebouncedValue } from "hooks/debounce";
import { type FC, useId, useState } from "react";
import { keepPreviousData, useQuery } from "react-query";
import { cn } from "utils/cn";
import { prepareQuery } from "utils/filters";
import { ChevronDownIcon } from "#/components/AnimatedIcons/ChevronDown";
import { Avatar } from "#/components/Avatar/Avatar";
import { AvatarData } from "#/components/Avatar/AvatarData";
import { Button } from "#/components/Button/Button";
import {
Combobox,
ComboboxContent,
@@ -18,14 +23,9 @@ import {
ComboboxItem,
ComboboxList,
ComboboxTrigger,
} from "components/Combobox/Combobox";
import { Label } from "components/Label/Label";
import { Spinner } from "components/Spinner/Spinner";
import { useDebouncedFunction, useDebouncedValue } from "hooks/debounce";
import { type FC, useId, useState } from "react";
import { keepPreviousData, useQuery } from "react-query";
import { cn } from "utils/cn";
import { prepareQuery } from "utils/filters";
} from "#/components/Combobox/Combobox";
import { Label } from "#/components/Label/Label";
import { Spinner } from "#/components/Spinner/Spinner";
// The common properties between users and org members that we need.
type SelectedUser = {
@@ -1,3 +1,5 @@
import type { FC } from "react";
import { cn } from "utils/cn";
import {
Select,
SelectContent,
@@ -5,15 +7,13 @@ import {
SelectItem,
SelectTrigger,
SelectValue,
} from "components/Select/Select";
} from "#/components/Select/Select";
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import type { FC } from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
export interface ModelSelectorOption {
id: string;
@@ -1,12 +1,12 @@
import { ScrollArea } from "components/ScrollArea/ScrollArea";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
import { ScrollArea } from "#/components/ScrollArea/ScrollArea";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
import { Response } from "../response";
import { ToolCollapsible } from "./ToolCollapsible";
import type { ToolStatus } from "./utils";
@@ -1,11 +1,11 @@
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
import { ToolCollapsible } from "./ToolCollapsible";
import type { ToolStatus } from "./utils";
@@ -1,12 +1,12 @@
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, ExternalLinkIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { Link } from "react-router";
import { cn } from "utils/cn";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "#/components/Tooltip/Tooltip";
import { asRecord, asString, type ToolStatus } from "./utils";
/**
@@ -1,15 +1,15 @@
import { useTheme } from "@emotion/react";
import type { FileDiffMetadata } from "@pierre/diffs";
import { FileDiff } from "@pierre/diffs/react";
import { ScrollArea } from "components/ScrollArea/ScrollArea";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
import { ScrollArea } from "#/components/ScrollArea/ScrollArea";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
import { ToolCollapsible } from "./ToolCollapsible";
import {
DIFFS_FONT_STYLE,
@@ -1,6 +1,3 @@
import { Button } from "components/Button/Button";
import { CopyButton } from "components/CopyButton/CopyButton";
import { ScrollArea } from "components/ScrollArea/ScrollArea";
import {
CheckIcon,
ChevronDownIcon,
@@ -11,6 +8,9 @@ import {
import type React from "react";
import { useRef, useState } from "react";
import { cn } from "utils/cn";
import { Button } from "#/components/Button/Button";
import { CopyButton } from "#/components/CopyButton/CopyButton";
import { ScrollArea } from "#/components/ScrollArea/ScrollArea";
import {
BORDER_BG_STYLE,
COLLAPSED_OUTPUT_HEIGHT,
@@ -1,12 +1,12 @@
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, ExternalLinkIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { Link } from "react-router";
import { cn } from "utils/cn";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "#/components/Tooltip/Tooltip";
import { ToolCollapsible } from "./ToolCollapsible";
import { asRecord, asString, type ToolStatus } from "./utils";
@@ -1,9 +1,9 @@
import { CopyButton } from "components/CopyButton/CopyButton";
import { ScrollArea } from "components/ScrollArea/ScrollArea";
import { ChevronDownIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { useRef, useState } from "react";
import { cn } from "utils/cn";
import { CopyButton } from "#/components/CopyButton/CopyButton";
import { ScrollArea } from "#/components/ScrollArea/ScrollArea";
import { COLLAPSED_OUTPUT_HEIGHT } from "./utils";
/**
@@ -1,13 +1,13 @@
import { API } from "api/api";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { useQuery } from "react-query";
import { cn } from "utils/cn";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "#/components/Tooltip/Tooltip";
import { Response } from "../response";
import type { ToolStatus } from "./utils";
@@ -1,14 +1,14 @@
import { useTheme } from "@emotion/react";
import { File as FileViewer } from "@pierre/diffs/react";
import { ScrollArea } from "components/ScrollArea/ScrollArea";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
import { ScrollArea } from "#/components/ScrollArea/ScrollArea";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
import { ToolCollapsible } from "./ToolCollapsible";
import {
DIFFS_FONT_STYLE,
@@ -1,11 +1,11 @@
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
import type { ToolStatus } from "./utils";
/**
@@ -1,4 +1,3 @@
import { ScrollArea } from "components/ScrollArea/ScrollArea";
import {
BotIcon,
ChevronDownIcon,
@@ -10,6 +9,7 @@ import type React from "react";
import { useState } from "react";
import { Link } from "react-router";
import { cn } from "utils/cn";
import { ScrollArea } from "#/components/ScrollArea/ScrollArea";
import { Response } from "../response";
import {
isSubagentSuccessStatus,
@@ -1,9 +1,9 @@
import { useTheme } from "@emotion/react";
import { FileDiff, File as FileViewer } from "@pierre/diffs/react";
import type * as TypesGen from "api/typesGenerated";
import { ScrollArea } from "components/ScrollArea/ScrollArea";
import { type ComponentPropsWithRef, type FC, memo } from "react";
import { cn } from "utils/cn";
import { ScrollArea } from "#/components/ScrollArea/ScrollArea";
import { ChatSummarizedTool } from "./ChatSummarizedTool";
import { ComputerTool } from "./ComputerTool";
import { CreateWorkspaceTool } from "./CreateWorkspaceTool";
@@ -1,4 +1,3 @@
import { ExternalImage } from "components/ExternalImage/ExternalImage";
import {
BotIcon,
ClipboardListIcon,
@@ -12,6 +11,7 @@ import {
import type React from "react";
import { useState } from "react";
import { cn } from "utils/cn";
import { ExternalImage } from "#/components/ExternalImage/ExternalImage";
export const ToolIcon: React.FC<{
name: string;
@@ -1,15 +1,15 @@
import { useTheme } from "@emotion/react";
import type { FileDiffMetadata } from "@pierre/diffs";
import { FileDiff } from "@pierre/diffs/react";
import { ScrollArea } from "components/ScrollArea/ScrollArea";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
import { ScrollArea } from "#/components/ScrollArea/ScrollArea";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "components/Tooltip/Tooltip";
import { CircleAlertIcon, LoaderIcon } from "lucide-react";
import type React from "react";
import { cn } from "utils/cn";
} from "#/components/Tooltip/Tooltip";
import { ToolCollapsible } from "./ToolCollapsible";
import {
DIFFS_FONT_STYLE,
+1 -1
View File
@@ -1,11 +1,11 @@
import { API } from "api/api";
import { isApiError } from "api/errors";
import { Loader } from "components/Loader/Loader";
import { ProxyProvider as ProductionProxyProvider } from "contexts/ProxyContext";
import { DashboardProvider as ProductionDashboardProvider } from "modules/dashboard/DashboardProvider";
import { type FC, useEffect } from "react";
import { Navigate, Outlet, useLocation } from "react-router";
import { embedRedirect } from "utils/redirect";
import { Loader } from "#/components/Loader/Loader";
import { useAuthContext } from "./AuthProvider";
type RequireAuthProps = Readonly<{
@@ -1,7 +1,7 @@
import {
type AuthContextValue,
useAuthContext,
} from "contexts/auth/AuthProvider";
} from "#/contexts/auth/AuthProvider";
type RequireKeys<T, R extends keyof T> = Omit<T, R> & {
[K in keyof Pick<T, R>]-?: NonNullable<T[K]>;
+1 -1
View File
@@ -1,4 +1,4 @@
import { DEFAULT_RECORDS_PER_PAGE } from "components/PaginationWidget/utils";
import { DEFAULT_RECORDS_PER_PAGE } from "#/components/PaginationWidget/utils";
const paginationKey = "page";

Some files were not shown because too many files have changed in this diff Show More