From c4b8fdbc42f5c41e16669da9e419f12591a2f21c Mon Sep 17 00:00:00 2001 From: Jimmy Guzman <30631540+jimmy-guzman@users.noreply.github.com> Date: Thu, 31 Oct 2024 17:56:24 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20bump=20`storybook`=20to=20v?= =?UTF-8?q?8.4.0=20(#123)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .storybook/main.ts | 4 ++-- .storybook/preview.ts | 25 +++++++++++++------------ .vscode/settings.json | 1 + bun.lockb | Bin 441392 -> 396180 bytes e2e/app.spec.ts | 18 +++++++++--------- eslint.config.ts | 2 +- package.json | 26 +++++++++++++------------- playwright.config.ts | 2 +- postcss.config.js | 2 +- src/components/ext-link.stories.ts | 18 +++++++++--------- src/components/ext-link.tsx | 20 ++++++++++---------- src/config/external-links.ts | 14 +++++++------- src/lib/cn.ts | 4 +++- src/pages/error.spec.tsx | 2 +- src/pages/error.tsx | 4 +++- src/pages/home.spec.tsx | 2 +- src/pages/home.stories.tsx | 2 +- src/pages/home.tsx | 4 ++-- src/router.tsx | 4 ++-- src/testing/utils.tsx | 22 ++++++++++++---------- tailwind.config.ts | 13 +++++++------ vite.config.ts | 14 +++++++------- 22 files changed, 106 insertions(+), 97 deletions(-) diff --git a/.storybook/main.ts b/.storybook/main.ts index 1a9ac44..65f22b1 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -1,7 +1,6 @@ import type { StorybookConfig } from "@storybook/react-vite"; const config = { - stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], addons: [ "@storybook/addon-links", "@storybook/addon-essentials", @@ -9,11 +8,12 @@ const config = { "@storybook/addon-themes", "@storybook/addon-a11y", ], + docs: {}, framework: { name: "@storybook/react-vite", options: {}, }, - docs: {}, + stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], } satisfies StorybookConfig; export default config; diff --git a/.storybook/preview.ts b/.storybook/preview.ts index c2d935d..a6be491 100644 --- a/.storybook/preview.ts +++ b/.storybook/preview.ts @@ -1,9 +1,21 @@ import "../src/main.css"; -import { withThemeByDataAttribute } from "@storybook/addon-themes"; import type { Preview } from "@storybook/react"; +import { withThemeByDataAttribute } from "@storybook/addon-themes"; + const preview = { + decorators: [ + withThemeByDataAttribute({ + attributeName: "data-theme", + defaultTheme: "dark", + themes: { + dark: "dark", + light: "light", + }, + }), + ], + parameters: { actions: { argTypesRegex: "^on[A-Z].*" }, controls: { @@ -13,17 +25,6 @@ const preview = { }, }, }, - - decorators: [ - withThemeByDataAttribute({ - themes: { - light: "light", - dark: "dark", - }, - defaultTheme: "dark", - attributeName: "data-theme", - }), - ], } satisfies Preview; export default preview; diff --git a/.vscode/settings.json b/.vscode/settings.json index da3e988..f474eb7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,6 +7,7 @@ "daisyui", "gitzy", "iconify", + "jiti", "knip", "lefthook", "lockb", diff --git a/bun.lockb b/bun.lockb index f417e02167d44c925fc9d717aae5b92573a5d1f6..e50ac5974a628b9901ee68445110f186092061fe 100755 GIT binary patch delta 67495 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 delta 93491 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 qLn@$+=65bExNZY! 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 z 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 HlJ5Ti;c5PJ diff --git a/e2e/app.spec.ts b/e2e/app.spec.ts index 93a7f82..5cea1fb 100644 --- a/e2e/app.spec.ts +++ b/e2e/app.spec.ts @@ -12,7 +12,7 @@ test("not found", async ({ page }) => { await expect(page).toHaveTitle(/React Starter/); await expect( - page.getByRole("heading", { name: "Error", level: 1 }), + page.getByRole("heading", { level: 1, name: "Error" }), ).toBeInViewport(); }); @@ -21,7 +21,7 @@ test.describe("external links", () => { await page.goto("/"); }); - test("opened vite docs", async ({ page, context }) => { + test("opened vite docs", async ({ context, page }) => { const pagePromise = context.waitForEvent("page"); await page.getByRole("link", { name: /vite/i }).click(); @@ -33,10 +33,10 @@ test.describe("external links", () => { await expect(newPage).toHaveURL("https://vite.dev/"); }); - test("opened React docs", async ({ page, context }) => { + test("opened React docs", async ({ context, page }) => { const pagePromise = context.waitForEvent("page"); - await page.getByRole("link", { name: "React", exact: true }).click(); + await page.getByRole("link", { exact: true, name: "React" }).click(); const newPage = await pagePromise; @@ -45,7 +45,7 @@ test.describe("external links", () => { await expect(newPage).toHaveURL("https://react.dev/"); }); - test("opened TypeScript docs", async ({ page, context }) => { + test("opened TypeScript docs", async ({ context, page }) => { const pagePromise = context.waitForEvent("page"); await page.getByRole("link", { name: /TypeScript/i }).click(); @@ -57,7 +57,7 @@ test.describe("external links", () => { await expect(newPage).toHaveURL("https://www.typescriptlang.org/"); }); - test("opened tailwindcss docs", async ({ page, context }) => { + test("opened tailwindcss docs", async ({ context, page }) => { const pagePromise = context.waitForEvent("page"); await page.getByRole("link", { name: /tailwindcss/i }).click(); @@ -69,7 +69,7 @@ test.describe("external links", () => { await expect(newPage).toHaveURL("https://tailwindcss.com/"); }); - test("opened repo", async ({ page, context }) => { + test("opened repo", async ({ context, page }) => { const pagePromise = context.waitForEvent("page"); await page.getByRole("link", { name: "GitHub" }).click(); @@ -83,7 +83,7 @@ test.describe("external links", () => { ); }); - test("opened Bun", async ({ page, context }) => { + test("opened Bun", async ({ context, page }) => { const pagePromise = context.waitForEvent("page"); await page.getByRole("link", { name: "Bun" }).click(); @@ -95,7 +95,7 @@ test.describe("external links", () => { await expect(newPage).toHaveURL("https://bun.sh"); }); - test("opened daisyUI docs", async ({ page, context }) => { + test("opened daisyUI docs", async ({ context, page }) => { const pagePromise = context.waitForEvent("page"); await page.getByRole("link", { name: /daisyUI/i }).click(); diff --git a/eslint.config.ts b/eslint.config.ts index 5a9e17d..6507261 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -5,5 +5,5 @@ import eslintPluginStorybook from "eslint-plugin-storybook"; export default jimmyDotCodes({ autoDetect: true, // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access - overrides: [...eslintPluginStorybook.configs["flat/recommended"]], + configs: [...eslintPluginStorybook.configs["flat/recommended"]], }); diff --git a/package.json b/package.json index f517362..392c879 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "prettier": "@jimmy.codes/prettier-config", "dependencies": { "@tanstack/react-query": "5.59.16", - "@tanstack/react-router": "1.77.8", + "@tanstack/react-router": "1.77.9", "clsx": "2.1.1", "react": "18.3.1", "react-dom": "18.3.1", @@ -36,22 +36,22 @@ "@iconify-json/logos": "1.2.3", "@iconify-json/lucide": "1.2.11", "@iconify/tailwind": "1.1.3", - "@jimmy.codes/eslint-config": "2.0.0", + "@jimmy.codes/eslint-config": "3.2.1", "@jimmy.codes/prettier-config": "1.1.0", "@playwright/test": "1.48.2", - "@storybook/addon-a11y": "8.3.6", - "@storybook/addon-essentials": "8.3.6", - "@storybook/addon-interactions": "8.3.6", - "@storybook/addon-links": "8.3.6", - "@storybook/addon-themes": "8.3.6", - "@storybook/react": "8.3.6", - "@storybook/react-vite": "8.3.6", + "@storybook/addon-a11y": "8.4.0", + "@storybook/addon-essentials": "8.4.0", + "@storybook/addon-interactions": "8.4.0", + "@storybook/addon-links": "8.4.0", + "@storybook/addon-themes": "8.4.0", + "@storybook/react": "8.4.0", + "@storybook/react-vite": "8.4.0", "@tailwindcss/typography": "0.5.15", "@tanstack/react-query-devtools": "5.59.16", - "@tanstack/router-devtools": "1.77.8", + "@tanstack/router-devtools": "1.77.9", "@tanstack/router-vite-plugin": "1.77.7", "@testing-library/dom": "10.4.0", - "@testing-library/jest-dom": "6.6.2", + "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", "@total-typescript/ts-reset": "0.6.1", @@ -69,12 +69,12 @@ "happy-dom": "15.7.4", "is-ci": "3.0.1", "jiti": "2.3.3", - "knip": "5.34.4", + "knip": "5.36.0", "lefthook": "1.8.2", "msw": "2.6.0", "postcss": "8.4.47", "prettier": "3.3.3", - "storybook": "8.3.6", + "storybook": "8.4.0", "tailwindcss": "3.4.14", "turbo": "2.2.3", "typescript": "5.6.3", diff --git a/playwright.config.ts b/playwright.config.ts index d1800b6..34e4e6a 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -26,6 +26,6 @@ export default defineConfig({ reporter: "html", retries: isCI ? 2 : 0, testDir: "./e2e", - use: { trace: "on-first-retry", baseURL }, + use: { baseURL, trace: "on-first-retry" }, ...(isCI && { workers: 1 }), }); diff --git a/postcss.config.js b/postcss.config.js index 5e07b92..30c1146 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,8 +1,8 @@ /** @type {import("postcss").Postcss} */ const config = { plugins: { - tailwindcss: {}, autoprefixer: {}, + tailwindcss: {}, }, }; diff --git a/src/components/ext-link.stories.ts b/src/components/ext-link.stories.ts index 95c98bb..e730478 100644 --- a/src/components/ext-link.stories.ts +++ b/src/components/ext-link.stories.ts @@ -3,12 +3,12 @@ import type { Meta, StoryObj } from "@storybook/react"; import { ExtLink } from "./ext-link"; const meta = { - title: "Components/ExtLink", component: ExtLink, parameters: { layout: "centered", }, tags: ["autodocs"], + title: "Components/ExtLink", } satisfies Meta; export default meta; @@ -17,39 +17,39 @@ type Story = StoryObj; export const Default: Story = { args: { - to: "daisyUI", children: "daisyUI", + to: "daisyUI", }, }; export const Primary: Story = { args: { - to: "React", - color: "primary", children: "React", + color: "primary", + to: "React", }, }; export const Secondary: Story = { args: { - to: "Vite", - color: "secondary", children: "Vite", + color: "secondary", + to: "Vite", }, }; export const Accent: Story = { args: { - to: "tailwindcss", - color: "accent", children: "tailwindcss", + color: "accent", + to: "tailwindcss", }, }; export const Button: Story = { args: { + children: "TypeScript", to: "TypeScript", variant: "button", - children: "TypeScript", }, }; diff --git a/src/components/ext-link.tsx b/src/components/ext-link.tsx index 034d3bd..df1b484 100644 --- a/src/components/ext-link.tsx +++ b/src/components/ext-link.tsx @@ -4,14 +4,14 @@ import { externalLinks } from "@/config/external-links"; import { cn } from "@/lib/cn"; type Color = "accent" | "primary" | "secondary"; -type Variant = "default" | "button"; +type Variant = "button" | "default"; interface ExtLinkProps { + children: ReactNode; className?: string; - to: keyof typeof externalLinks; color?: Color; + to: keyof typeof externalLinks; variant?: Variant; - children: ReactNode; } /** @@ -21,27 +21,27 @@ interface ExtLinkProps { * tailwindcss // https://tailwindcss.com */ export const ExtLink = ({ - to, + children, className, color, + to, variant = "default", - children, }: ExtLinkProps) => { return ( {children} diff --git a/src/config/external-links.ts b/src/config/external-links.ts index 008f372..d51113e 100644 --- a/src/config/external-links.ts +++ b/src/config/external-links.ts @@ -1,12 +1,12 @@ export const externalLinks = { - "Vite": "https://vite.dev", - "React": "https://react.dev", - "TypeScript": "https://www.typescriptlang.org", - "tailwindcss": "https://tailwindcss.com", - "GitHub": "https://github.com/jimmy-guzman/react-starter", + "Bun": "https://bun.sh", + "daisyUI": "https://daisyui.com", "Deploy": "https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fjimmy-guzman%2Freact-starter&project-name=my-awesome-react-project&repository-name=my-awesome-react-project", - "Bun": "https://bun.sh", + "GitHub": "https://github.com/jimmy-guzman/react-starter", + "React": "https://react.dev", + "tailwindcss": "https://tailwindcss.com", "TanStack Router": "https://tanstack.com/router/latest", - "daisyUI": "https://daisyui.com", + "TypeScript": "https://www.typescriptlang.org", + "Vite": "https://vite.dev", } satisfies Record; diff --git a/src/lib/cn.ts b/src/lib/cn.ts index e576ad8..4e14fa3 100644 --- a/src/lib/cn.ts +++ b/src/lib/cn.ts @@ -1,4 +1,6 @@ -import { type ClassValue, clsx } from "clsx"; +import type { ClassValue } from "clsx"; + +import { clsx } from "clsx"; import { twMerge } from "tailwind-merge"; export const cn = (...classes: ClassValue[]) => { diff --git a/src/pages/error.spec.tsx b/src/pages/error.spec.tsx index 1a99fb0..215b8fc 100644 --- a/src/pages/error.spec.tsx +++ b/src/pages/error.spec.tsx @@ -5,7 +5,7 @@ import { Error as ErrorPage } from "./error"; describe("", () => { it('should render "Something went Wrong!" message', async () => { await render( - , + , ); expect(screen.getByText("Something went Wrong!")).toBeInTheDocument(); diff --git a/src/pages/error.tsx b/src/pages/error.tsx index 0b1458b..ec51de3 100644 --- a/src/pages/error.tsx +++ b/src/pages/error.tsx @@ -1,4 +1,6 @@ -import { type ErrorComponentProps, Link } from "@tanstack/react-router"; +import type { ErrorComponentProps } from "@tanstack/react-router"; + +import { Link } from "@tanstack/react-router"; export const Error = ({ error }: ErrorComponentProps) => { return ( diff --git a/src/pages/home.spec.tsx b/src/pages/home.spec.tsx index aa09f61..2c958db 100644 --- a/src/pages/home.spec.tsx +++ b/src/pages/home.spec.tsx @@ -7,7 +7,7 @@ describe("", () => { await render(); expect( - screen.getByRole("heading", { name: "React Starter", level: 1 }), + screen.getByRole("heading", { level: 1, name: "React Starter" }), ).toBeInTheDocument(); }); }); diff --git a/src/pages/home.stories.tsx b/src/pages/home.stories.tsx index 8f59530..0aab620 100644 --- a/src/pages/home.stories.tsx +++ b/src/pages/home.stories.tsx @@ -3,8 +3,8 @@ import type { Meta, StoryObj } from "@storybook/react"; import { Home as HomeComponent } from "./home"; const meta = { - title: "Pages/Home", component: HomeComponent, + title: "Pages/Home", } satisfies Meta; export default meta; diff --git a/src/pages/home.tsx b/src/pages/home.tsx index a211799..93a66f2 100644 --- a/src/pages/home.tsx +++ b/src/pages/home.tsx @@ -24,10 +24,10 @@ export const Home = () => { daisyUI.

- + Deploy - + GitHub
diff --git a/src/router.tsx b/src/router.tsx index 584a172..1f29b05 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -5,9 +5,9 @@ import { NotFound } from "./pages/not-found"; import { routeTree } from "./route-tree.gen"; export const router = createRouter({ - routeTree, - defaultNotFoundComponent: NotFound, defaultErrorComponent: Error, + defaultNotFoundComponent: NotFound, + routeTree, }); declare module "@tanstack/react-router" { diff --git a/src/testing/utils.tsx b/src/testing/utils.tsx index ab201f6..58c8ecd 100644 --- a/src/testing/utils.tsx +++ b/src/testing/utils.tsx @@ -1,3 +1,6 @@ +import type { RenderOptions } from "@testing-library/react"; +import type { ReactElement, ReactNode } from "react"; + import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { createMemoryHistory, @@ -6,10 +9,9 @@ import { createRouter, RouterProvider, } from "@tanstack/react-router"; -import type { RenderOptions } from "@testing-library/react"; import { act, cleanup, render } from "@testing-library/react"; import { userEvent } from "@testing-library/user-event"; -import { type ReactElement, type ReactNode, useMemo } from "react"; +import { useMemo } from "react"; import { afterEach } from "vitest"; import type { FileRoutesById } from "@/route-tree.gen"; @@ -20,12 +22,12 @@ afterEach(() => { interface WrapperProps { children: ReactNode; - path: keyof FileRoutesById; initialEntries: string[]; + path: keyof FileRoutesById; } // eslint-disable-next-line react-refresh/only-export-components -const Wrapper = ({ children, path, initialEntries }: WrapperProps) => { +const Wrapper = ({ children, initialEntries, path }: WrapperProps) => { const { queryClient, router } = useMemo(() => { const queryClient = new QueryClient({ defaultOptions: { @@ -37,21 +39,21 @@ const Wrapper = ({ children, path, initialEntries }: WrapperProps) => { const rootRoute = createRootRoute(); const testingRoute = createRoute({ + component: () => { + return children; + }, getParentRoute: () => { return rootRoute; }, path, - component: () => { - return children; - }, }); return { queryClient, router: createRouter({ - routeTree: rootRoute.addChildren([testingRoute]), - history: createMemoryHistory({ initialEntries }), context: { queryClient }, + history: createMemoryHistory({ initialEntries }), + routeTree: rootRoute.addChildren([testingRoute]), }), }; }, [children, initialEntries, path]); @@ -77,7 +79,7 @@ const customRender = async ( return render(ui, { wrapper: ({ children }) => { return ( - + {children} ); diff --git a/tailwind.config.ts b/tailwind.config.ts index a5b4251..d49e588 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,20 +1,21 @@ +import type { Config } from "tailwindcss"; + import { addDynamicIconSelectors } from "@iconify/tailwind"; import typography from "@tailwindcss/typography"; import daisyui from "daisyui"; -import type { Config } from "tailwindcss"; const config = { content: ["./index.html", "./src/**/*.{ts,tsx}"], - theme: { - extend: {}, - }, daisyui: { + logs: false, + prefix: "dsy-", // see https://daisyui.com/docs/themes/ for further customization themes: ["dark", "light"], - prefix: "dsy-", - logs: false, }, plugins: [typography, daisyui, addDynamicIconSelectors()], + theme: { + extend: {}, + }, } satisfies Config; export default config; diff --git a/vite.config.ts b/vite.config.ts index 6222682..a3dfe24 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -8,25 +8,21 @@ export default defineConfig(({ mode }) => { const { PORT = 5173 } = loadEnv(mode, process.cwd(), ""); return { + entries: ["index.html"], plugins: [ react(), tanStackRouterVite({ + autoCodeSplitting: true, generatedRouteTree: "./src/route-tree.gen.ts", - semicolons: true, quoteStyle: "double", - autoCodeSplitting: true, + semicolons: true, }), tsconfigPaths(), ], server: { port: Number(PORT), }, - entries: ["index.html"], test: { - environment: "happy-dom", - globals: true, - exclude: [...configDefaults.exclude, "e2e/*"], - setupFiles: "./src/testing/setup.ts", coverage: { exclude: [ ...(configDefaults.coverage.exclude ?? []), @@ -39,6 +35,10 @@ export default defineConfig(({ mode }) => { "**/*.gen.*", ], }, + environment: "happy-dom", + exclude: [...configDefaults.exclude, "e2e/*"], + globals: true, + setupFiles: "./src/testing/setup.ts", }, }; });