Detailed changes
@@ -9,7 +9,7 @@ import {
useBugStatusOpenMutation,
BugDetailDocument,
} from "@/__generated__/graphql";
-import { Markdown } from "@/components/content/Markdown";
+import { Markdown } from "@/components/content/markdown";
import { Button } from "@/components/ui/button";
import * as CommentCard from "@/components/shared/comment-card";
import { Textarea } from "@/components/ui/textarea";
@@ -6,7 +6,7 @@ import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover
import { useAuth } from "@/lib/auth";
import { cn } from "@/lib/utils";
-import { LabelBadge } from "@/components/shared/LabelBadge";
+import { LabelBadge } from "@/components/shared/label-badge";
// Max authors shown in the non-searching state. We intentionally cap this to
// avoid a giant list — the current-user + recently-seen pattern covers the
@@ -5,7 +5,7 @@ import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover
import { SectionHeading } from "@/components/shared/section-heading";
import { useAuth } from "@/lib/auth";
-import { LabelBadge } from "@/components/shared/LabelBadge";
+import { LabelBadge } from "@/components/shared/label-badge";
interface LabelEditorProps {
bugPrefix: string;
@@ -9,13 +9,13 @@ import {
useBugEditCommentMutation,
BugDetailDocument,
} from "@/__generated__/graphql";
-import { Markdown } from "@/components/content/Markdown";
+import { Markdown } from "@/components/content/markdown";
import { Button } from "@/components/ui/button";
import * as CommentCard from "@/components/shared/comment-card";
import { Textarea } from "@/components/ui/textarea";
import { useAuth } from "@/lib/auth";
-import { LabelBadge } from "@/components/shared/LabelBadge";
+import { LabelBadge } from "@/components/shared/label-badge";
type TimelineNode = NonNullable<
NonNullable<NonNullable<BugDetailQuery["repository"]>["bug"]>["timeline"]["nodes"][number]
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite";
import { withRouter } from "@/../.storybook/decorators";
-import { CodeBreadcrumb } from "./CodeBreadcrumb";
+import { CodeBreadcrumb } from "./code-breadcrumb";
const meta = {
component: CodeBreadcrumb,
@@ -1,7 +1,7 @@
import { composeStories } from "@storybook/react-vite";
import { expect, test } from "vitest";
-import * as stories from "./CodeBreadcrumb.stories";
+import * as stories from "./code-breadcrumb.stories";
const composed = composeStories(stories);
@@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite";
import { GitObjectType } from "@/__generated__/graphql";
import { withRouter } from "@/../.storybook/decorators";
-import { FileTree } from "./FileTree";
+import { FileTree } from "./file-tree";
const meta = {
component: FileTree,
@@ -1,7 +1,7 @@
import { composeStories } from "@storybook/react-vite";
import { expect, test } from "vitest";
-import * as stories from "./FileTree.stories";
+import * as stories from "./file-tree.stories";
const composed = composeStories(stories);
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
-import { FileViewer } from "./FileViewer";
+import { FileViewer } from "./file-viewer";
const meta = {
component: FileViewer,
@@ -1,7 +1,7 @@
import { composeStories } from "@storybook/react-vite";
import { expect, test } from "vitest";
-import * as stories from "./FileViewer.stories";
+import * as stories from "./file-viewer.stories";
const composed = composeStories(stories);
@@ -3,7 +3,7 @@ import { fn } from "storybook/test";
import { GitRefType } from "@/__generated__/graphql";
-import { RefSelector } from "./RefSelector";
+import { RefSelector } from "./ref-selector";
const meta = {
component: RefSelector,
@@ -1,7 +1,7 @@
import { composeStories } from "@storybook/react-vite";
import { expect, test } from "vitest";
-import * as stories from "./RefSelector.stories";
+import * as stories from "./ref-selector.stories";
const composed = composeStories(stories);
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite";
import { withRouter } from "@/../.storybook/decorators";
-import { Markdown } from "./Markdown";
+import { Markdown } from "./markdown";
const meta = {
component: Markdown,
@@ -1,7 +1,7 @@
import { composeStories } from "@storybook/react-vite";
import { expect, test } from "vitest";
-import * as stories from "./Markdown.stories";
+import * as stories from "./markdown.stories";
const composed = composeStories(stories);
@@ -1,6 +1,6 @@
import { Outlet } from "@tanstack/react-router";
-import { Header } from "./Header";
+import { Header } from "./header";
// Top-level page wrapper used as the root layout in App.tsx. Renders the
// Header above the current route's page component via <Outlet>.
@@ -5,8 +5,8 @@ import type { BugSummaryFragment } from "@/__generated__/graphql";
import { Status } from "@/__generated__/graphql";
import { withRouter } from "@/../.storybook/decorators";
-import * as IssueRow from "./IssueRow";
-import { LabelBadge } from "./LabelBadge";
+import * as IssueRow from "./issue-row";
+import { LabelBadge } from "./label-badge";
const meta = {
component: IssueRow.Root,
@@ -1,7 +1,7 @@
import { composeStories } from "@storybook/react-vite";
import { expect, test } from "vitest";
-import * as stories from "./IssueRow.stories";
+import * as stories from "./issue-row.stories";
const composed = composeStories(stories);
@@ -3,7 +3,7 @@ import { fn } from "storybook/test";
import type { LabelFieldsFragment } from "@/__generated__/graphql";
-import { LabelBadge } from "./LabelBadge";
+import { LabelBadge } from "./label-badge";
const meta = {
component: LabelBadge,
@@ -1,7 +1,7 @@
import { composeStories } from "@storybook/react-vite";
import { expect, test } from "vitest";
-import * as stories from "./LabelBadge.stories";
+import * as stories from "./label-badge.stories";
const composed = composeStories(stories);
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from "@storybook/react-vite";
import { Status } from "@/__generated__/graphql";
-import { StatusBadge } from "./StatusBadge";
+import { StatusBadge } from "./status-badge";
const meta = {
component: StatusBadge,
@@ -1,7 +1,7 @@
import { composeStories } from "@storybook/react-vite";
import { expect, test } from "vitest";
-import * as stories from "./StatusBadge.stories";
+import * as stories from "./status-badge.stories";
const composed = composeStories(stories);
@@ -1,7 +1,7 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { useState } from "react";
-import { Markdown } from "@/components/content/Markdown";
+import { Markdown } from "@/components/content/markdown";
import { Textarea } from "@/components/ui/textarea";
import { withRouter } from "@/../.storybook/decorators";
@@ -13,8 +13,8 @@ import {
import { GitCommit } from "lucide-react";
import type { GitRef } from "@/__generated__/graphql";
-import { CodeBreadcrumb } from "@/components/code/CodeBreadcrumb";
-import { RefSelector } from "@/components/code/RefSelector";
+import { CodeBreadcrumb } from "@/components/code/code-breadcrumb";
+import { RefSelector } from "@/components/code/ref-selector";
import { ButtonLink } from "@/components/ui/button-link";
import { Skeleton } from "@/components/ui/skeleton";
@@ -5,7 +5,7 @@ import { useReadQuery } from "@apollo/client/react";
import { createFileRoute } from "@tanstack/react-router";
import type { GitBlob } from "@/__generated__/graphql";
-import { FileViewer } from "@/components/code/FileViewer";
+import { FileViewer } from "@/components/code/file-viewer";
import { Skeleton } from "@/components/ui/skeleton";
const BLOB_QUERY = gql`
@@ -2,7 +2,7 @@
import { createFileRoute } from "@tanstack/react-router";
-import { CommitList } from "@/components/code/CommitList";
+import { CommitList } from "@/components/code/commit-list";
export const Route = createFileRoute("/$repo/_code/commits/$ref")({
component: CommitsView,
@@ -10,9 +10,9 @@ import {
type GitLastCommit,
type GitBlob,
} from "@/__generated__/graphql";
-import { FileTree } from "@/components/code/FileTree";
-import type { TreeEntryWithCommit } from "@/components/code/FileTree";
-import { Markdown } from "@/components/content/Markdown";
+import { FileTree } from "@/components/code/file-tree";
+import type { TreeEntryWithCommit } from "@/components/code/file-tree";
+import { Markdown } from "@/components/content/markdown";
import { Skeleton } from "@/components/ui/skeleton";
const TREE_QUERY = gql`
@@ -3,11 +3,11 @@ import { createFileRoute, Link } from "@tanstack/react-router";
import { formatDistanceToNow } from "date-fns";
import { type BugDetailQuery, BugDetailDocument } from "@/__generated__/graphql";
-import { CommentBox } from "@/components/bugs/CommentBox";
-import { LabelEditor } from "@/components/bugs/LabelEditor";
-import { StatusBadge } from "@/components/shared/StatusBadge";
-import { Timeline } from "@/components/bugs/Timeline";
-import { TitleEditor } from "@/components/bugs/TitleEditor";
+import { CommentBox } from "@/components/bugs/comment-box";
+import { LabelEditor } from "@/components/bugs/label-editor";
+import { StatusBadge } from "@/components/shared/status-badge";
+import { Timeline } from "@/components/bugs/timeline";
+import { TitleEditor } from "@/components/bugs/title-editor";
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import { BackLink } from "@/components/ui/back-link";
import { EmptyState } from "@/components/shared/empty-state";
@@ -6,10 +6,10 @@ import { useMemo, useState } from "react";
import * as v from "valibot";
import { type BugListQuery, BugListDocument } from "@/__generated__/graphql";
-import { IssueFilters } from "@/components/bugs/IssueFilters";
-import type { SortValue } from "@/components/bugs/IssueFilters";
-import * as IssueRow from "@/components/shared/IssueRow";
-import { LabelBadgeLink } from "@/components/shared/LabelBadge";
+import { IssueFilters } from "@/components/bugs/issue-filters";
+import type { SortValue } from "@/components/bugs/issue-filters";
+import * as IssueRow from "@/components/shared/issue-row";
+import { LabelBadgeLink } from "@/components/shared/label-badge";
import { Button } from "@/components/ui/button";
import { EmptyState } from "@/components/shared/empty-state";
import * as Pagination from "@/components/shared/pagination";
@@ -2,7 +2,7 @@ import { createFileRoute, useNavigate } from "@tanstack/react-router";
import { useState } from "react";
import { useBugCreateMutation } from "@/__generated__/graphql";
-import { Markdown } from "@/components/content/Markdown";
+import { Markdown } from "@/components/content/markdown";
import { BackLink } from "@/components/ui/back-link";
import { Button } from "@/components/ui/button";
import { ButtonLink } from "@/components/ui/button-link";
@@ -14,8 +14,8 @@ import {
import * as v from "valibot";
import { type UserProfileQuery, UserProfileDocument } from "@/__generated__/graphql";
-import * as IssueRow from "@/components/shared/IssueRow";
-import { LabelBadge } from "@/components/shared/LabelBadge";
+import * as IssueRow from "@/components/shared/issue-row";
+import { LabelBadge } from "@/components/shared/label-badge";
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import { BackLink } from "@/components/ui/back-link";
import { EmptyState } from "@/components/shared/empty-state";
@@ -7,7 +7,7 @@ import { createFileRoute, Link } from "@tanstack/react-router";
import { format } from "date-fns";
import { GitCommit } from "lucide-react";
-import { FileDiffView } from "@/components/code/FileDiffView";
+import { FileDiffView } from "@/components/code/file-diff-view";
import { BackLink } from "@/components/ui/back-link";
import { Skeleton } from "@/components/ui/skeleton";
@@ -1,7 +1,7 @@
import { createRootRouteWithContext, useRouter } from "@tanstack/react-router";
import { AlertTriangle } from "lucide-react";
-import { Shell } from "@/components/layout/Shell";
+import { Shell } from "@/components/layout/shell";
import { Button } from "@/components/ui/button";
import { ButtonLink } from "@/components/ui/button-link";
import type { preloadQuery } from "@/lib/apollo";