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 f417e02..e50ac59 100755
Binary files a/bun.lockb and b/bun.lockb differ
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