From d05ea748f8f5aa008c22cb68c117acef21bdcb90 Mon Sep 17 00:00:00 2001 From: Jake Ruesink Date: Fri, 30 May 2025 17:59:27 -0500 Subject: [PATCH 1/3] chore: update dependencies and refactor Storybook configuration - Removed deprecated dependencies and updated Storybook addons to version 9.0.1 across multiple package.json files. - Refactored imports in Storybook stories to use '@storybook/react-vite' for improved compatibility. - Updated routing imports from 'react-router-dom' to 'react-router' for consistency across components. - Cleaned up external dependencies in Vite configuration for better performance. - Enhanced example components to align with the latest routing practices. --- apps/docs/.storybook/main.ts | 3 +- apps/docs/.storybook/preview.ts | 2 +- apps/docs/package.json | 15 +- apps/docs/src/examples/root-example.tsx | 2 +- .../src/lib/storybook/react-router-stub.tsx | 51 +- .../medusa-forms/ControlledInput.stories.tsx | 2 +- .../checkbox-custom.stories.tsx | 4 +- .../remix-hook-form/checkbox-list.stories.tsx | 4 +- .../src/remix-hook-form/checkbox.stories.tsx | 4 +- .../data-table-router-form.stories.tsx | 2 +- .../remix-hook-form/date-picker.stories.tsx | 4 +- .../dropdown-menu-select.stories.tsx | 4 +- .../src/remix-hook-form/otp-input.stories.tsx | 4 +- .../radio-group-custom.stories.tsx | 4 +- .../remix-hook-form/radio-group.stories.tsx | 4 +- .../remix-hook-form/switch-custom.stories.tsx | 4 +- .../src/remix-hook-form/switch.stories.tsx | 4 +- .../text-field-custom.stories.tsx | 4 +- .../remix-hook-form/text-field.stories.tsx | 4 +- .../textarea-custom.stories.tsx | 4 +- .../src/remix-hook-form/textarea.stories.tsx | 4 +- apps/docs/vite.config.mjs | 2 +- package.json | 3 +- packages/components/package.json | 3 +- .../data-table-router-form.tsx | 2 +- .../use-data-table-url-state.ts | 13 +- .../data-table/data-table-column-header.tsx | 6 +- .../src/ui/data-table/data-table-hooks.ts | 2 +- .../ui/data-table/data-table-pagination.tsx | 10 +- .../src/ui/data-table/data-table-toolbar.tsx | 4 +- packages/components/vite.config.ts | 1 - packages/medusa-forms/vite.config.ts | 1 - yarn.lock | 702 ++++-------------- 33 files changed, 203 insertions(+), 679 deletions(-) diff --git a/apps/docs/.storybook/main.ts b/apps/docs/.storybook/main.ts index fa85d0eb..3ecc947d 100644 --- a/apps/docs/.storybook/main.ts +++ b/apps/docs/.storybook/main.ts @@ -12,8 +12,7 @@ const config: StorybookConfig = { stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], addons: [ getAbsolutePath('@storybook/addon-links'), - getAbsolutePath('@storybook/addon-essentials'), - getAbsolutePath('@storybook/addon-interactions'), + getAbsolutePath("@storybook/addon-docs") ], framework: { name: getAbsolutePath('@storybook/react-vite'), diff --git a/apps/docs/.storybook/preview.ts b/apps/docs/.storybook/preview.ts index e0568f83..ab220a89 100644 --- a/apps/docs/.storybook/preview.ts +++ b/apps/docs/.storybook/preview.ts @@ -1,4 +1,4 @@ -import type { Preview } from '@storybook/react'; +import type { Preview } from '@storybook/react-vite'; import '../src/main.css'; const preview: Preview = { diff --git a/apps/docs/package.json b/apps/docs/package.json index 70ac54fe..30d335ab 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -15,23 +15,18 @@ "@hookform/resolvers": "^3.9.1", "@lambdacurry/forms": "*", "@lambdacurry/medusa-forms": "*", - "@storybook/addon-essentials": "^8.6.7", - "@storybook/addon-interactions": "^8.6.7", - "@storybook/addon-links": "^8.6.7", - "@storybook/blocks": "^8.6.7", - "@storybook/react": "^8.6.7", - "@storybook/react-vite": "^8.6.7", - "@storybook/test": "^8.6.7", + "@storybook/addon-links": "^9.0.1", + "@storybook/react-vite": "^9.0.1", "react": "^19.0.0", "react-hook-form": "^7.51.0", - "react-router": "^7.0.0", - "react-router-dom": "^7.0.0", + "react-router": "^7.6.1", "remix-hook-form": "^7.0.1", - "storybook": "^8.6.7" + "storybook": "^9.0.1" }, "devDependencies": { "@medusajs/ui-preset": "^2.8.3", "@react-router/dev": "^7.0.0", + "@storybook/addon-docs": "^9.0.1", "@storybook/test-runner": "^0.22.0", "@storybook/testing-library": "^0.2.2", "@tailwindcss/postcss": "^4.1.8", diff --git a/apps/docs/src/examples/root-example.tsx b/apps/docs/src/examples/root-example.tsx index 586a1a50..4f5ac01a 100644 --- a/apps/docs/src/examples/root-example.tsx +++ b/apps/docs/src/examples/root-example.tsx @@ -1,6 +1,6 @@ +import { Outlet } from 'react-router'; // Example of setting up the middleware in root.tsx import { unstable_extractFormDataMiddleware } from 'remix-hook-form/middleware'; -import { Outlet } from 'react-router-dom'; // Export the middleware for React Router 7 export const unstable_middleware = [unstable_extractFormDataMiddleware()]; diff --git a/apps/docs/src/lib/storybook/react-router-stub.tsx b/apps/docs/src/lib/storybook/react-router-stub.tsx index 901b3f02..fd50abbf 100644 --- a/apps/docs/src/lib/storybook/react-router-stub.tsx +++ b/apps/docs/src/lib/storybook/react-router-stub.tsx @@ -1,38 +1,25 @@ -import type { Decorator } from '@storybook/react'; +import type { Decorator } from '@storybook/react-vite'; import type { ComponentType } from 'react'; import { type ActionFunction, - type IndexRouteObject, type LinksFunction, type LoaderFunction, type MetaFunction, - type NonIndexRouteObject, - RouterProvider, - createMemoryRouter, -} from 'react-router-dom'; + createRoutesStub, +} from 'react-router'; -export type StubRouteObject = StubIndexRouteObject | StubNonIndexRouteObject; - -interface StubNonIndexRouteObject - extends Omit { +export interface StubRouteObject { + path?: string; + index?: boolean; loader?: LoaderFunction; action?: ActionFunction; - children?: StubRouteObject[]; meta?: MetaFunction; links?: LinksFunction; - // biome-ignore lint/suspicious/noExplicitAny: allow any here + // biome-ignore lint/suspicious/noExplicitAny: allow any here for Storybook compatibility Component?: ComponentType; -} - -interface StubIndexRouteObject - extends Omit { - loader?: LoaderFunction; - action?: ActionFunction; children?: StubRouteObject[]; - meta?: MetaFunction; - links?: LinksFunction; - // biome-ignore lint/suspicious/noExplicitAny: allow any here - Component?: ComponentType; + // biome-ignore lint/suspicious/noExplicitAny: allow any here for Storybook compatibility + errorElement?: any; } interface RemixStubOptions { @@ -42,10 +29,9 @@ interface RemixStubOptions { export const withReactRouterStubDecorator = (options: RemixStubOptions): Decorator => { const { routes, initialPath = '/' } = options; - // This outer function runs once when Storybook loads the story meta return (Story, context) => { - // This inner function runs when the story component actually renders + // Map routes to include the Story component if no Component is provided const mappedRoutes = routes.map((route) => ({ ...route, Component: route.Component ?? (() => ), @@ -53,23 +39,18 @@ export const withReactRouterStubDecorator = (options: RemixStubOptions): Decorat // Get the base path (without existing query params from options) const basePath = initialPath.split('?')[0]; - + // Get the current search string from the actual browser window, if available // If not available, use a default search string with parameters needed for the data table - const currentWindowSearch = typeof window !== 'undefined' - ? window.location.search - : '?page=0&pageSize=10'; - + const currentWindowSearch = typeof window !== 'undefined' ? window.location.search : '?page=0&pageSize=10'; + // Combine them for the initial entry const actualInitialPath = `${basePath}${currentWindowSearch}`; - // Create a memory router, initializing it with the path derived from the window's search params - // biome-ignore lint/suspicious/noExplicitAny: - const router = createMemoryRouter(mappedRoutes as any, { - initialEntries: [actualInitialPath], // Use the path combined with window.location.search - }); + // Use React Router's official createRoutesStub + const Stub = createRoutesStub(mappedRoutes); - return ; + return ; }; }; diff --git a/apps/docs/src/medusa-forms/ControlledInput.stories.tsx b/apps/docs/src/medusa-forms/ControlledInput.stories.tsx index 5624c5e1..66d163e1 100644 --- a/apps/docs/src/medusa-forms/ControlledInput.stories.tsx +++ b/apps/docs/src/medusa-forms/ControlledInput.stories.tsx @@ -1,5 +1,5 @@ import { ControlledInput } from '@lambdacurry/medusa-forms/controlled/ControlledInput'; -import type { Meta, StoryObj } from '@storybook/react'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { FormProvider, useForm } from 'react-hook-form'; const meta = { diff --git a/apps/docs/src/remix-hook-form/checkbox-custom.stories.tsx b/apps/docs/src/remix-hook-form/checkbox-custom.stories.tsx index 08da48f5..223b49fa 100644 --- a/apps/docs/src/remix-hook-form/checkbox-custom.stories.tsx +++ b/apps/docs/src/remix-hook-form/checkbox-custom.stories.tsx @@ -3,8 +3,8 @@ import { Checkbox } from '@lambdacurry/forms/remix-hook-form/checkbox'; import type { FormLabel, FormMessage } from '@lambdacurry/forms/remix-hook-form/form'; import { Button } from '@lambdacurry/forms/ui/button'; import * as CheckboxPrimitive from '@radix-ui/react-checkbox'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import type * as React from 'react'; import type { ActionFunctionArgs } from 'react-router'; import { useFetcher } from 'react-router'; diff --git a/apps/docs/src/remix-hook-form/checkbox-list.stories.tsx b/apps/docs/src/remix-hook-form/checkbox-list.stories.tsx index 706aef83..d4f9e9b4 100644 --- a/apps/docs/src/remix-hook-form/checkbox-list.stories.tsx +++ b/apps/docs/src/remix-hook-form/checkbox-list.stories.tsx @@ -2,8 +2,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { Checkbox } from '@lambdacurry/forms/remix-hook-form/checkbox'; import { Button } from '@lambdacurry/forms/ui/button'; import { FormMessage } from '@lambdacurry/forms/ui/form'; -import type { Meta, StoryContext, StoryObj } from '@storybook/react'; -import { expect, userEvent } from '@storybook/test'; +import type { Meta, StoryContext, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent } from 'storybook/test'; import type {} from '@testing-library/dom'; import { type ActionFunctionArgs, Form, useFetcher } from 'react-router'; import { RemixFormProvider, createFormData, getValidatedFormData, useRemixForm } from 'remix-hook-form'; diff --git a/apps/docs/src/remix-hook-form/checkbox.stories.tsx b/apps/docs/src/remix-hook-form/checkbox.stories.tsx index 3a4b0b86..01ba8ff2 100644 --- a/apps/docs/src/remix-hook-form/checkbox.stories.tsx +++ b/apps/docs/src/remix-hook-form/checkbox.stories.tsx @@ -1,8 +1,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { Checkbox } from '@lambdacurry/forms/remix-hook-form/checkbox'; import { Button } from '@lambdacurry/forms/ui/button'; -import type { Meta, StoryContext, StoryObj } from '@storybook/react'; -import { expect, userEvent } from '@storybook/test'; +import type { Meta, StoryContext, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent } from 'storybook/test'; import { type ActionFunctionArgs, useFetcher } from 'react-router'; import { RemixFormProvider, getValidatedFormData, useRemixForm } from 'remix-hook-form'; import { z } from 'zod'; diff --git a/apps/docs/src/remix-hook-form/data-table-router-form.stories.tsx b/apps/docs/src/remix-hook-form/data-table-router-form.stories.tsx index d24c5b72..31126488 100644 --- a/apps/docs/src/remix-hook-form/data-table-router-form.stories.tsx +++ b/apps/docs/src/remix-hook-form/data-table-router-form.stories.tsx @@ -1,7 +1,7 @@ import { DataTableRouterForm } from '@lambdacurry/forms/remix-hook-form/data-table-router-form'; import { dataTableRouterParsers } from '@lambdacurry/forms/remix-hook-form/data-table-router-parsers'; import { DataTableColumnHeader } from '@lambdacurry/forms/ui/data-table/data-table-column-header'; -import type { Meta, StoryObj } from '@storybook/react'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import type { ColumnDef } from '@tanstack/react-table'; import { type LoaderFunctionArgs, useLoaderData } from 'react-router'; import { z } from 'zod'; diff --git a/apps/docs/src/remix-hook-form/date-picker.stories.tsx b/apps/docs/src/remix-hook-form/date-picker.stories.tsx index c0293447..e6af25a0 100644 --- a/apps/docs/src/remix-hook-form/date-picker.stories.tsx +++ b/apps/docs/src/remix-hook-form/date-picker.stories.tsx @@ -1,8 +1,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { DatePicker } from '@lambdacurry/forms/remix-hook-form/date-picker'; import { Button } from '@lambdacurry/forms/ui/button'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import { type ActionFunctionArgs, Form, useFetcher } from 'react-router'; import { RemixFormProvider, createFormData, getValidatedFormData, useRemixForm } from 'remix-hook-form'; import { z } from 'zod'; diff --git a/apps/docs/src/remix-hook-form/dropdown-menu-select.stories.tsx b/apps/docs/src/remix-hook-form/dropdown-menu-select.stories.tsx index 3d6d5b45..904e4c01 100644 --- a/apps/docs/src/remix-hook-form/dropdown-menu-select.stories.tsx +++ b/apps/docs/src/remix-hook-form/dropdown-menu-select.stories.tsx @@ -2,8 +2,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { DropdownMenuSelect } from '@lambdacurry/forms/remix-hook-form/dropdown-menu-select'; import { Button } from '@lambdacurry/forms/ui/button'; import { DropdownMenuSelectItem } from '@lambdacurry/forms/ui/dropdown-menu-select-field'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, screen, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, screen, userEvent, within } from 'storybook/test'; import { type ActionFunctionArgs, Form, useFetcher } from 'react-router'; import { RemixFormProvider, createFormData, getValidatedFormData, useRemixForm } from 'remix-hook-form'; import { z } from 'zod'; diff --git a/apps/docs/src/remix-hook-form/otp-input.stories.tsx b/apps/docs/src/remix-hook-form/otp-input.stories.tsx index 644585c8..96035467 100644 --- a/apps/docs/src/remix-hook-form/otp-input.stories.tsx +++ b/apps/docs/src/remix-hook-form/otp-input.stories.tsx @@ -1,8 +1,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { OTPInput } from '@lambdacurry/forms/remix-hook-form/otp-input'; import { Button } from '@lambdacurry/forms/ui/button'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import { type ActionFunctionArgs, Form, useFetcher } from 'react-router'; import { RemixFormProvider, createFormData, getValidatedFormData, useRemixForm } from 'remix-hook-form'; import { z } from 'zod'; diff --git a/apps/docs/src/remix-hook-form/radio-group-custom.stories.tsx b/apps/docs/src/remix-hook-form/radio-group-custom.stories.tsx index 31159318..0002f4e5 100644 --- a/apps/docs/src/remix-hook-form/radio-group-custom.stories.tsx +++ b/apps/docs/src/remix-hook-form/radio-group-custom.stories.tsx @@ -5,8 +5,8 @@ import { Button } from '@lambdacurry/forms/ui/button'; import { FormLabel, FormMessage } from '@lambdacurry/forms/ui/form'; import { cn } from '@lambdacurry/forms/ui/utils'; import * as RadioGroupPrimitive from '@radix-ui/react-radio-group'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import type * as React from 'react'; import type { ActionFunctionArgs } from 'react-router'; import { Form, useFetcher } from 'react-router'; diff --git a/apps/docs/src/remix-hook-form/radio-group.stories.tsx b/apps/docs/src/remix-hook-form/radio-group.stories.tsx index bc784422..5a34cc17 100644 --- a/apps/docs/src/remix-hook-form/radio-group.stories.tsx +++ b/apps/docs/src/remix-hook-form/radio-group.stories.tsx @@ -3,8 +3,8 @@ import { RadioGroup, type RadioOption } from '@lambdacurry/forms/remix-hook-form import { RadioGroupItem } from '@lambdacurry/forms/remix-hook-form/radio-group-item'; import { Button } from '@lambdacurry/forms/ui/button'; import { Label } from '@lambdacurry/forms/ui/label'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import type { ComponentPropsWithoutRef, ComponentType } from 'react'; import { type ActionFunctionArgs, Form, useFetcher } from 'react-router'; import { RemixFormProvider, getValidatedFormData, useRemixForm } from 'remix-hook-form'; diff --git a/apps/docs/src/remix-hook-form/switch-custom.stories.tsx b/apps/docs/src/remix-hook-form/switch-custom.stories.tsx index d6fd6d28..1a210894 100644 --- a/apps/docs/src/remix-hook-form/switch-custom.stories.tsx +++ b/apps/docs/src/remix-hook-form/switch-custom.stories.tsx @@ -3,8 +3,8 @@ import { Switch } from '@lambdacurry/forms/remix-hook-form/switch'; import { Button } from '@lambdacurry/forms/ui/button'; import { FormLabel, FormMessage } from '@lambdacurry/forms/ui/form'; import * as SwitchPrimitives from '@radix-ui/react-switch'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import type * as React from 'react'; import type { ActionFunctionArgs } from 'react-router'; import { useFetcher } from 'react-router'; diff --git a/apps/docs/src/remix-hook-form/switch.stories.tsx b/apps/docs/src/remix-hook-form/switch.stories.tsx index 6f410af7..b3f564eb 100644 --- a/apps/docs/src/remix-hook-form/switch.stories.tsx +++ b/apps/docs/src/remix-hook-form/switch.stories.tsx @@ -1,8 +1,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { Switch } from '@lambdacurry/forms/remix-hook-form/switch'; import { Button } from '@lambdacurry/forms/ui/button'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import { type ActionFunctionArgs, useFetcher } from 'react-router'; import { RemixFormProvider, createFormData, getValidatedFormData, useRemixForm } from 'remix-hook-form'; import { z } from 'zod'; diff --git a/apps/docs/src/remix-hook-form/text-field-custom.stories.tsx b/apps/docs/src/remix-hook-form/text-field-custom.stories.tsx index ccf7f5c3..d0522c75 100644 --- a/apps/docs/src/remix-hook-form/text-field-custom.stories.tsx +++ b/apps/docs/src/remix-hook-form/text-field-custom.stories.tsx @@ -2,8 +2,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { TextField } from '@lambdacurry/forms/remix-hook-form/text-field'; import { Button } from '@lambdacurry/forms/ui/button'; import { FormLabel, FormMessage } from '@lambdacurry/forms/ui/form'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import type * as React from 'react'; import type { ActionFunctionArgs } from 'react-router'; import { useFetcher } from 'react-router'; diff --git a/apps/docs/src/remix-hook-form/text-field.stories.tsx b/apps/docs/src/remix-hook-form/text-field.stories.tsx index b1c63649..bdd4d428 100644 --- a/apps/docs/src/remix-hook-form/text-field.stories.tsx +++ b/apps/docs/src/remix-hook-form/text-field.stories.tsx @@ -1,8 +1,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { TextField } from '@lambdacurry/forms/remix-hook-form/text-field'; import { Button } from '@lambdacurry/forms/ui/button'; -import type { Meta, StoryContext, StoryObj } from '@storybook/react'; -import { expect, userEvent } from '@storybook/test'; +import type { Meta, StoryContext, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent } from 'storybook/test'; import { type ActionFunctionArgs, useFetcher } from 'react-router'; import { RemixFormProvider, getValidatedFormData, useRemixForm } from 'remix-hook-form'; import { z } from 'zod'; diff --git a/apps/docs/src/remix-hook-form/textarea-custom.stories.tsx b/apps/docs/src/remix-hook-form/textarea-custom.stories.tsx index 22b71af6..ac8d5308 100644 --- a/apps/docs/src/remix-hook-form/textarea-custom.stories.tsx +++ b/apps/docs/src/remix-hook-form/textarea-custom.stories.tsx @@ -2,8 +2,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { Textarea } from '@lambdacurry/forms/remix-hook-form/textarea'; import { Button } from '@lambdacurry/forms/ui/button'; import { FormControl, FormItem, FormLabel, FormMessage } from '@lambdacurry/forms/ui/form'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import * as React from 'react'; import type { ActionFunctionArgs } from 'react-router'; import { useFetcher } from 'react-router'; diff --git a/apps/docs/src/remix-hook-form/textarea.stories.tsx b/apps/docs/src/remix-hook-form/textarea.stories.tsx index be8fcd58..62938a1e 100644 --- a/apps/docs/src/remix-hook-form/textarea.stories.tsx +++ b/apps/docs/src/remix-hook-form/textarea.stories.tsx @@ -1,8 +1,8 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { Textarea } from '@lambdacurry/forms/remix-hook-form/textarea'; import { Button } from '@lambdacurry/forms/ui/button'; -import type { Meta, StoryObj } from '@storybook/react'; -import { expect, userEvent, within } from '@storybook/test'; +import type { Meta, StoryObj } from '@storybook/react-vite'; +import { expect, userEvent, within } from 'storybook/test'; import { type ActionFunctionArgs, useFetcher } from 'react-router'; import { RemixFormProvider, createFormData, getValidatedFormData, useRemixForm } from 'remix-hook-form'; import { z } from 'zod'; diff --git a/apps/docs/vite.config.mjs b/apps/docs/vite.config.mjs index 133f067c..0bf046e4 100644 --- a/apps/docs/vite.config.mjs +++ b/apps/docs/vite.config.mjs @@ -18,7 +18,7 @@ export default defineConfig({ }, build: { rollupOptions: { - external: ['react-router', 'react-router-dom'], + external: [], }, }, plugins: [tailwindcss()], diff --git a/package.json b/package.json index cefb9275..a93bfa60 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,7 @@ "turbo": "^2.3.3" }, "dependencies": { - "@changesets/cli": "^2.27.11", - "@medusajs/ui-preset": "^2.8.3" + "@changesets/cli": "^2.27.11" }, "packageManager": "yarn@4.9.1" } diff --git a/packages/components/package.json b/packages/components/package.json index 6bdd1ffb..d6de8cf7 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -64,8 +64,7 @@ "next-themes": "^0.4.4", "react-day-picker": "8.10.1", "react-hook-form": "^7.53.1", - "react-router": "^7.0.0", - "react-router-dom": "^7.0.0", + "react-router": "^7.6.1", "remix-hook-form": "7.0.1", "sonner": "^1.7.1", "tailwind-merge": "^2.5.5", diff --git a/packages/components/src/remix-hook-form/data-table-router-form.tsx b/packages/components/src/remix-hook-form/data-table-router-form.tsx index 9535d103..c4b4815b 100644 --- a/packages/components/src/remix-hook-form/data-table-router-form.tsx +++ b/packages/components/src/remix-hook-form/data-table-router-form.tsx @@ -12,7 +12,7 @@ import { useReactTable, } from '@tanstack/react-table'; import { useCallback, useEffect, useMemo, useState } from 'react'; -import { useNavigation } from 'react-router-dom'; +import { useNavigation } from 'react-router'; import { RemixFormProvider, useRemixForm } from 'remix-hook-form'; import { z } from 'zod'; diff --git a/packages/components/src/remix-hook-form/use-data-table-url-state.ts b/packages/components/src/remix-hook-form/use-data-table-url-state.ts index 56d3562b..1da906ca 100644 --- a/packages/components/src/remix-hook-form/use-data-table-url-state.ts +++ b/packages/components/src/remix-hook-form/use-data-table-url-state.ts @@ -1,18 +1,18 @@ import { useCallback } from 'react'; -import { useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router'; import { type DataTableRouterState, dataTableRouterParsers } from './data-table-router-parsers'; /** * Custom hook for managing URL state in data tables - * + * * This hook provides a clean interface for working with URL search parameters * in data table components, replacing the functionality previously provided by nuqs. - * + * * @returns An object containing the current URL state and a function to update it */ export function useDataTableUrlState() { const [searchParams, setSearchParams] = useSearchParams(); - + // Parse URL search parameters using our custom parsers const urlState: DataTableRouterState = { search: dataTableRouterParsers.search.parse(searchParams.get('search')), @@ -24,6 +24,7 @@ export function useDataTableUrlState() { }; // Function to update URL search parameters + // biome-ignore lint/correctness/useExhaustiveDependencies: const setUrlState = useCallback( (newState: Partial) => { const updatedState = { ...urlState, ...newState }; @@ -63,7 +64,7 @@ export function useDataTableUrlState() { // Update the URL with the new search parameters setSearchParams(newParams, { replace: true }); }, - [urlState, setSearchParams] + [setSearchParams], ); // Return the current URL state and the function to update it @@ -72,7 +73,7 @@ export function useDataTableUrlState() { /** * Get the default state values for a data table - * + * * @param defaultStateValues Optional custom default values to override the standard ones * @returns A DataTableRouterState object with default values */ diff --git a/packages/components/src/ui/data-table/data-table-column-header.tsx b/packages/components/src/ui/data-table/data-table-column-header.tsx index dd951a44..4156c766 100644 --- a/packages/components/src/ui/data-table/data-table-column-header.tsx +++ b/packages/components/src/ui/data-table/data-table-column-header.tsx @@ -1,6 +1,6 @@ import type { Column } from '@tanstack/react-table'; import { ArrowDown, ArrowUp, ArrowUpDown, EyeOff } from 'lucide-react'; -import { useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router'; import { Button } from '../button'; import { @@ -24,7 +24,7 @@ export function DataTableColumnHeader({ column, title }: DataTabl const handleSort = () => { const newParams = new URLSearchParams(searchParams); - + if (isSorted) { if (order === 'asc') { newParams.set('sortOrder', 'desc'); @@ -39,7 +39,7 @@ export function DataTableColumnHeader({ column, title }: DataTabl newParams.set('sortOrder', 'asc'); column.toggleSorting(false); } - + setSearchParams(newParams, { replace: true }); }; diff --git a/packages/components/src/ui/data-table/data-table-hooks.ts b/packages/components/src/ui/data-table/data-table-hooks.ts index c7661f90..9cda0275 100644 --- a/packages/components/src/ui/data-table/data-table-hooks.ts +++ b/packages/components/src/ui/data-table/data-table-hooks.ts @@ -1,5 +1,5 @@ import { type ComponentType, useCallback, useEffect, useMemo } from 'react'; -import { useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router'; import { debounce } from '../utils/debounce'; import { type DataTableFilterParams, createFilterSchema } from './data-table-schema'; diff --git a/packages/components/src/ui/data-table/data-table-pagination.tsx b/packages/components/src/ui/data-table/data-table-pagination.tsx index 396b1833..3985c658 100644 --- a/packages/components/src/ui/data-table/data-table-pagination.tsx +++ b/packages/components/src/ui/data-table/data-table-pagination.tsx @@ -1,5 +1,5 @@ import { ChevronLeftIcon, ChevronRightIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon } from '@radix-ui/react-icons'; -import { useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router'; import { Button } from '../button'; import { Select } from '../select'; @@ -10,8 +10,8 @@ interface DataTablePaginationProps { export function DataTablePagination({ pageCount, onPaginationChange }: DataTablePaginationProps) { const [searchParams, setSearchParams] = useSearchParams(); - const page = parseInt(searchParams.get('page') || '0', 10); - const pageSize = parseInt(searchParams.get('pageSize') || '10', 10); + const page = Number.parseInt(searchParams.get('page') || '0', 10); + const pageSize = Number.parseInt(searchParams.get('pageSize') || '10', 10); const updateParams = (newPage: number, newPageSize: number) => { const newParams = new URLSearchParams(searchParams); @@ -23,9 +23,7 @@ export function DataTablePagination({ pageCount, onPaginationChange }: DataTable return (
-
- {pageSize} rows per page -
+
{pageSize} rows per page

Rows per page

diff --git a/packages/components/src/ui/data-table/data-table-toolbar.tsx b/packages/components/src/ui/data-table/data-table-toolbar.tsx index 0a74863f..712e75a6 100644 --- a/packages/components/src/ui/data-table/data-table-toolbar.tsx +++ b/packages/components/src/ui/data-table/data-table-toolbar.tsx @@ -1,7 +1,7 @@ import { Cross2Icon } from '@radix-ui/react-icons'; import type { Table } from '@tanstack/react-table'; -import { useSearchParams } from 'react-router-dom'; import type * as React from 'react'; +import { useSearchParams } from 'react-router'; import { Button } from '../button'; import { TextInput } from '../text-input'; @@ -48,7 +48,7 @@ export function DataTableToolbar({ newParams.delete('search'); } setSearchParams(newParams, { replace: true }); - + searchableColumns.forEach((column) => { table.getColumn(column.id as string)?.setFilterValue(value); }); diff --git a/packages/components/vite.config.ts b/packages/components/vite.config.ts index 1bee3ce0..bc9001d4 100644 --- a/packages/components/vite.config.ts +++ b/packages/components/vite.config.ts @@ -54,7 +54,6 @@ export default defineConfig({ '@radix-ui/react-switch', '@radix-ui/react-tooltip', 'react-router', - 'react-router-dom', '@react-router/node', 'class-variance-authority', 'clsx', diff --git a/packages/medusa-forms/vite.config.ts b/packages/medusa-forms/vite.config.ts index 1bee3ce0..bc9001d4 100644 --- a/packages/medusa-forms/vite.config.ts +++ b/packages/medusa-forms/vite.config.ts @@ -54,7 +54,6 @@ export default defineConfig({ '@radix-ui/react-switch', '@radix-ui/react-tooltip', 'react-router', - 'react-router-dom', '@react-router/node', 'class-variance-authority', 'clsx', diff --git a/yarn.lock b/yarn.lock index bb7def28..d84a7576 100644 --- a/yarn.lock +++ b/yarn.lock @@ -498,7 +498,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.5.5": +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.5.5": version: 7.27.1 resolution: "@babel/runtime@npm:7.27.1" checksum: 10c0/530a7332f86ac5a7442250456823a930906911d895c0b743bf1852efc88a20a016ed4cd26d442d0ca40ae6d5448111e02a08dd638a4f1064b47d080e2875dc05 @@ -1699,12 +1699,12 @@ __metadata: languageName: node linkType: hard -"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.5.0": - version: 0.5.0 - resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.5.0" +"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.6.0": + version: 0.6.0 + resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.6.0" dependencies: glob: "npm:^10.0.0" - magic-string: "npm:^0.27.0" + magic-string: "npm:^0.30.0" react-docgen-typescript: "npm:^2.2.2" peerDependencies: typescript: ">= 4.3.x" @@ -1712,7 +1712,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/dd5bcd01c685c67bcfb4676639f15319937867ad5af0dc083991fe9ae9e66302c72fec53d12e0616a45eadb0ae715bea144d0302f408a44f1eeab14c5160ad4a + checksum: 10c0/cbb76545214929e628de661985f69f9b79f324ad8db0aa19b2937c52730be57eb37848a7b7d5986ccc00f09d8bc0623ec16f83c9c13aaca3ef5afd0bc322da2e languageName: node linkType: hard @@ -1741,7 +1741,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 @@ -1768,13 +1768,9 @@ __metadata: "@lambdacurry/medusa-forms": "npm:*" "@medusajs/ui-preset": "npm:^2.8.3" "@react-router/dev": "npm:^7.0.0" - "@storybook/addon-essentials": "npm:^8.6.7" - "@storybook/addon-interactions": "npm:^8.6.7" - "@storybook/addon-links": "npm:^8.6.7" - "@storybook/blocks": "npm:^8.6.7" - "@storybook/react": "npm:^8.6.7" - "@storybook/react-vite": "npm:^8.6.7" - "@storybook/test": "npm:^8.6.7" + "@storybook/addon-docs": "npm:^9.0.1" + "@storybook/addon-links": "npm:^9.0.1" + "@storybook/react-vite": "npm:^9.0.1" "@storybook/test-runner": "npm:^0.22.0" "@storybook/testing-library": "npm:^0.2.2" "@tailwindcss/postcss": "npm:^4.1.8" @@ -1786,11 +1782,10 @@ __metadata: http-server: "npm:^14.1.1" react: "npm:^19.0.0" react-hook-form: "npm:^7.51.0" - react-router: "npm:^7.0.0" - react-router-dom: "npm:^7.0.0" + react-router: "npm:^7.6.1" remix-hook-form: "npm:^7.0.1" start-server-and-test: "npm:^2.0.11" - storybook: "npm:^8.6.7" + storybook: "npm:^9.0.1" tailwindcss: "npm:^4.0.0" typescript: "npm:^5.7.2" vite: "npm:^6.2.2" @@ -1838,8 +1833,7 @@ __metadata: react: "npm:^19.0.0" react-day-picker: "npm:8.10.1" react-hook-form: "npm:^7.53.1" - react-router: "npm:^7.0.0" - react-router-dom: "npm:^7.0.0" + react-router: "npm:^7.6.1" remix-hook-form: "npm:7.0.1" sonner: "npm:^1.7.1" tailwind-merge: "npm:^2.5.5" @@ -6046,244 +6040,59 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-actions@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - "@types/uuid": "npm:^9.0.1" - dequal: "npm:^2.0.2" - polished: "npm:^4.2.2" - uuid: "npm:^9.0.0" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/f05a876966f170a65d51405f0908e7db74daba033c2468f7de35e17d800960b0201d8edfe822508346c1e7f2f664c9e601cadf9673a17a41e4afafd1af922241 - languageName: node - linkType: hard - -"@storybook/addon-backgrounds@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-backgrounds@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - memoizerific: "npm:^1.11.3" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/220adbe8e5b1120de449eb74a307b8ebe44e018138a676f9bafa7bb7adae00ceee9d0b9619dc55bff2ff9a261f932d992cb43dbe79f25e1fc249e2a0ae02d4e2 - languageName: node - linkType: hard - -"@storybook/addon-controls@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-controls@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - dequal: "npm:^2.0.2" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/6521a98f31d5cd436795428884085b766424e9f71d1add34dc4d5470985500145dd90a7e57282affd3c1b31dfc3e6e4582640347f876acdf0be880b7734aca3b - languageName: node - linkType: hard - -"@storybook/addon-docs@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-docs@npm:8.6.12" +"@storybook/addon-docs@npm:^9.0.1": + version: 9.0.1 + resolution: "@storybook/addon-docs@npm:9.0.1" dependencies: "@mdx-js/react": "npm:^3.0.0" - "@storybook/blocks": "npm:8.6.12" - "@storybook/csf-plugin": "npm:8.6.12" - "@storybook/react-dom-shim": "npm:8.6.12" + "@storybook/csf-plugin": "npm:9.0.1" + "@storybook/icons": "npm:^1.2.12" + "@storybook/react-dom-shim": "npm:9.0.1" react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/6a973bcdb4a1fdf369078d7a2e5b527756f982f6652868bf15f1fc0c7da472d15f385079b1b012ec4cda1c7e7940238a4210d7bd729fee92c20661c8f3ace32c + storybook: ^9.0.1 + checksum: 10c0/0316c1f019990a5d47a9e71192a453b76dccba9c186c097697815eae6949597a3c5af012950af2530bb0737638cd8e38fa3312a41fad23decec65f86daa10257 languageName: node linkType: hard -"@storybook/addon-essentials@npm:^8.6.7": - version: 8.6.12 - resolution: "@storybook/addon-essentials@npm:8.6.12" - dependencies: - "@storybook/addon-actions": "npm:8.6.12" - "@storybook/addon-backgrounds": "npm:8.6.12" - "@storybook/addon-controls": "npm:8.6.12" - "@storybook/addon-docs": "npm:8.6.12" - "@storybook/addon-highlight": "npm:8.6.12" - "@storybook/addon-measure": "npm:8.6.12" - "@storybook/addon-outline": "npm:8.6.12" - "@storybook/addon-toolbars": "npm:8.6.12" - "@storybook/addon-viewport": "npm:8.6.12" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/ce018694d1ee07ab8b8efcebfe3efdf1c2163068a3907b46591b040e1876b84f68fe78bb0a43f23b50b824ea6c410aacef416d03833a77fe359b2e81b3be5b03 - languageName: node - linkType: hard - -"@storybook/addon-highlight@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-highlight@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/c2b31583fff2cd54a85b1138a62c61b86db95704db815f0396e75ca6f1317329cfae1c6ed630914a058da2d386078d7934f21063e6d4e55ed1baf2632cfee3cb - languageName: node - linkType: hard - -"@storybook/addon-interactions@npm:^8.6.7": - version: 8.6.12 - resolution: "@storybook/addon-interactions@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - "@storybook/instrumenter": "npm:8.6.12" - "@storybook/test": "npm:8.6.12" - polished: "npm:^4.2.2" - ts-dedent: "npm:^2.2.0" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/46b4fc1a6e4eef2cbe86055fc09202fea58d6fe264b6ad305c278e2101f7915231b0b9aa59b4b3bdb8a2fdf5e2219f2d37c33ba5e611f6ee6bff37bb2b06b487 - languageName: node - linkType: hard - -"@storybook/addon-links@npm:^8.6.7": - version: 8.6.12 - resolution: "@storybook/addon-links@npm:8.6.12" +"@storybook/addon-links@npm:^9.0.1": + version: 9.0.1 + resolution: "@storybook/addon-links@npm:9.0.1" dependencies: "@storybook/global": "npm:^5.0.0" - ts-dedent: "npm:^2.0.0" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.12 + storybook: ^9.0.1 peerDependenciesMeta: react: optional: true - checksum: 10c0/c90e6e81c486b94a172ebd9fa40d32c02cfe498bc1bb9536fe437842d513668ea015c328a49836de289c20801ee330457868793a7c70fd053dfc7441bf86df61 + checksum: 10c0/9725bb863bd5f1e4e80c7d003c256abf6516c2a051608c70529a4a454f2c7241135226e928f50582432c4631a822ce542d62c7638706bf5fdd96965722139b86 languageName: node linkType: hard -"@storybook/addon-measure@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-measure@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - tiny-invariant: "npm:^1.3.1" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/1247ebf398b6297400d710a00d423c9d285c8af6f9bf7dd98a7734f54cc5689d7d3a3bf5a1e93847f5eb13d7edfe75900ac28b27932555292f09efe0c4093c28 - languageName: node - linkType: hard - -"@storybook/addon-outline@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-outline@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/2e1c448b932dea10d1d13b8375e154d4f8bbd1144d7e4b35a909f773c72dd041995915becfd438c02b6611e57929ee61c4d4b9af59ef6fddb222baa8c9a66e6f - languageName: node - linkType: hard - -"@storybook/addon-toolbars@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-toolbars@npm:8.6.12" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/6a7cde7eb84f8f533e96371bec7a37b55aa3e462518bc37c1762cabbd37e2dc45ff48c9708ca6034ea55d272f8b9b3a28f2e94b63056d2ab3855458b664c60bc - languageName: node - linkType: hard - -"@storybook/addon-viewport@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/addon-viewport@npm:8.6.12" - dependencies: - memoizerific: "npm:^1.11.3" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/72a570f4f45ba5c0d1515a14d2e03d04bb510ffc4b8181237f7c787c8d2a6eb6429e4cd048256dafec75bb9a764c4a155c022eed0d6476e7fd7da27f01949db4 - languageName: node - linkType: hard - -"@storybook/blocks@npm:8.6.12, @storybook/blocks@npm:^8.6.7": - version: 8.6.12 - resolution: "@storybook/blocks@npm:8.6.12" - dependencies: - "@storybook/icons": "npm:^1.2.12" - ts-dedent: "npm:^2.0.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^8.6.12 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 10c0/ce15861061888b73a2f05e2fa1dd8947dd37904e61a978299f96c19f3a45b7a65eca265bd10ba101b2e56dcb24f5ff1871cdaff86640142fe46d8491b7b4ac12 - languageName: node - linkType: hard - -"@storybook/builder-vite@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/builder-vite@npm:8.6.12" +"@storybook/builder-vite@npm:9.0.1": + version: 9.0.1 + resolution: "@storybook/builder-vite@npm:9.0.1" dependencies: - "@storybook/csf-plugin": "npm:8.6.12" - browser-assert: "npm:^1.2.1" + "@storybook/csf-plugin": "npm:9.0.1" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.6.12 - vite: ^4.0.0 || ^5.0.0 || ^6.0.0 - checksum: 10c0/cf02c9095a7cf12ac1e372f5e8dc01193c4ae298f16416538de514687b9776a4eda478ff01e5ba73e87e4f3603d8453a6a374dde1673fa22abea103135524892 - languageName: node - linkType: hard - -"@storybook/components@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/components@npm:8.6.12" - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - checksum: 10c0/f443f41354d382307734f0507989ffd78d9b3fb9413122487d5e01927057d34b9526bb9ee6b5343cee806a650d6eef2aecf5112af5b0817eeb3204b1ac4fdc3d - languageName: node - linkType: hard - -"@storybook/core@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/core@npm:8.6.12" - dependencies: - "@storybook/theming": "npm:8.6.12" - better-opn: "npm:^3.0.2" - browser-assert: "npm:^1.2.1" - esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" - esbuild-register: "npm:^3.5.0" - jsdoc-type-pratt-parser: "npm:^4.0.0" - process: "npm:^0.11.10" - recast: "npm:^0.23.5" - semver: "npm:^7.6.2" - util: "npm:^0.12.5" - ws: "npm:^8.2.3" - peerDependencies: - prettier: ^2 || ^3 - peerDependenciesMeta: - prettier: - optional: true - checksum: 10c0/e21f2408c3fdd125033dbbbdd91d264a9cf0bd60e6f5c047b74306fed2ad8d32e39d3dad3a6bafc4b7a8f0b25451a328569f921d82de5d07b004f150e1973840 + storybook: ^9.0.1 + vite: ^5.0.0 || ^6.0.0 + checksum: 10c0/a516c576bf11618eb633f049e223ce54db9e362d74981f8e2d8e00144e2b280f31d98ab816217427eba7a7ace1dc876cd5603dccd6bf43d5ca34aa0c20f9b72c languageName: node linkType: hard -"@storybook/csf-plugin@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/csf-plugin@npm:8.6.12" +"@storybook/csf-plugin@npm:9.0.1": + version: 9.0.1 + resolution: "@storybook/csf-plugin@npm:9.0.1" dependencies: unplugin: "npm:^1.3.1" peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/8bb5b9612178ff997cb21bd957b7918a6a7cd58fb5f3249e6ec2f3a4a039d3ff4f40b873360f202a56cf64d1235bb88a32ef5e308d3a663f294f925257943472 + storybook: ^9.0.1 + checksum: 10c0/304908a9a4c5c7b674931a81b87b28785f7122cb867c4fe0abd89fb8fddd8747091acfc2fe67d703d2a91a89a8bea50975937284b7702b99bbbaf9f11704cc1a languageName: node linkType: hard @@ -6313,95 +6122,54 @@ __metadata: languageName: node linkType: hard -"@storybook/instrumenter@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/instrumenter@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - "@vitest/utils": "npm:^2.1.1" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/4cf02774bd5fb9dbc095a78eb4ee6848928fc7d17bdec7c656bb5ab21382533c8e0c219c1e253d48b652707d10d2566f1d6fc8bd37196acd21ee342522c007d1 - languageName: node - linkType: hard - -"@storybook/manager-api@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/manager-api@npm:8.6.12" - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - checksum: 10c0/88a0d361c27c53f0f7cd32564d404a5e5a3fa129136449003e8ecaecd63fd8e38ddeeda30f189fffddf24a14b674e7d0400003b4dbbdafedfae7d37bbc32272f - languageName: node - linkType: hard - -"@storybook/preview-api@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/preview-api@npm:8.6.12" - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - checksum: 10c0/38044f40a0ac060ab33ed84eff62da1a99cdb5a2f73e6786b58da4cf5c4295d4ef060373f1fdaa1bfe6cccea8e123768d046555adf98a4acf1abda40fa3e9781 - languageName: node - linkType: hard - -"@storybook/react-dom-shim@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/react-dom-shim@npm:8.6.12" +"@storybook/react-dom-shim@npm:9.0.1": + version: 9.0.1 + resolution: "@storybook/react-dom-shim@npm:9.0.1" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.12 - checksum: 10c0/feb0447599c2728039ed46a0fbd7fa3f8644b80518bc7e94b3687125317ce7c9aa13acb6a8279a50f1cd63aefcc7a1e9cbe64d1a9e71afbe3c3d33656063b814 + storybook: ^9.0.1 + checksum: 10c0/bbd650bb40de9d7c3c154ea0bdc30df14aa1ae4f5f775281bcbc2e81e551b42a29455bd49540723ce540c7264f9e7daa4461732165631b538c84ee41a7c2265e languageName: node linkType: hard -"@storybook/react-vite@npm:^8.6.7": - version: 8.6.12 - resolution: "@storybook/react-vite@npm:8.6.12" +"@storybook/react-vite@npm:^9.0.1": + version: 9.0.1 + resolution: "@storybook/react-vite@npm:9.0.1" dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.5.0" + "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.6.0" "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:8.6.12" - "@storybook/react": "npm:8.6.12" + "@storybook/builder-vite": "npm:9.0.1" + "@storybook/react": "npm:9.0.1" find-up: "npm:^5.0.0" magic-string: "npm:^0.30.0" - react-docgen: "npm:^7.0.0" + react-docgen: "npm:^8.0.0" resolve: "npm:^1.22.8" tsconfig-paths: "npm:^4.2.0" peerDependencies: - "@storybook/test": 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.12 - vite: ^4.0.0 || ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - "@storybook/test": - optional: true - checksum: 10c0/77e8e3c32d2687c2f4a41f0d83a418413cb8b634d63d8092983036f897a06140ad3c06328f80c88815d858c070b5952963004e3d4cc2a748828c0e97339c7d53 + storybook: ^9.0.1 + vite: ^5.0.0 || ^6.0.0 + checksum: 10c0/23a17eef6b8afef9065c0b934b43c0189b2e9907f3bf195290674582fdd6c6b600850a38a8a1ea8b24914f9909e16092bfe5ecf39a049d4a3530fdec302dcae5 languageName: node linkType: hard -"@storybook/react@npm:8.6.12, @storybook/react@npm:^8.6.7": - version: 8.6.12 - resolution: "@storybook/react@npm:8.6.12" +"@storybook/react@npm:9.0.1": + version: 9.0.1 + resolution: "@storybook/react@npm:9.0.1" dependencies: - "@storybook/components": "npm:8.6.12" "@storybook/global": "npm:^5.0.0" - "@storybook/manager-api": "npm:8.6.12" - "@storybook/preview-api": "npm:8.6.12" - "@storybook/react-dom-shim": "npm:8.6.12" - "@storybook/theming": "npm:8.6.12" + "@storybook/react-dom-shim": "npm:9.0.1" peerDependencies: - "@storybook/test": 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.12 - typescript: ">= 4.2.x" + storybook: ^9.0.1 + typescript: ">= 4.9.x" peerDependenciesMeta: - "@storybook/test": - optional: true typescript: optional: true - checksum: 10c0/62d44f6c310577520d1c400cf80001c53d3db995dca6845e1b4e749422705e80825d337d1ba42c196453b2b5d66aa6d402127037546cf9f51afed5fce095e152 + checksum: 10c0/fbabbcb1520130743c1efe116c600f17fa0326082c2a8f02bf8133326820f0747dd5c79c2d4cbe5e9012a6b4285e8e223d414d9bff696bf2c00a1ac403200620 languageName: node linkType: hard @@ -6436,23 +6204,6 @@ __metadata: languageName: node linkType: hard -"@storybook/test@npm:8.6.12, @storybook/test@npm:^8.6.7": - version: 8.6.12 - resolution: "@storybook/test@npm:8.6.12" - dependencies: - "@storybook/global": "npm:^5.0.0" - "@storybook/instrumenter": "npm:8.6.12" - "@testing-library/dom": "npm:10.4.0" - "@testing-library/jest-dom": "npm:6.5.0" - "@testing-library/user-event": "npm:14.5.2" - "@vitest/expect": "npm:2.0.5" - "@vitest/spy": "npm:2.0.5" - peerDependencies: - storybook: ^8.6.12 - checksum: 10c0/3717cc21d840e5900458debe3414b179d088b4973054933d355d6916344cb1857dd02ab8d1ff168f48fb8038f14da99e0a62a7f678e557bdbe3a2c225ce162f3 - languageName: node - linkType: hard - "@storybook/testing-library@npm:^0.2.2": version: 0.2.2 resolution: "@storybook/testing-library@npm:0.2.2" @@ -6464,15 +6215,6 @@ __metadata: languageName: node linkType: hard -"@storybook/theming@npm:8.6.12": - version: 8.6.12 - resolution: "@storybook/theming@npm:8.6.12" - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - checksum: 10c0/cd7033dbc9415d765fd15a60c058ea039ce02a84c7cdbe6d7e597adb418694f28ac7cacf849cccef1e8b4374e7fa0df5010f801e6b55844c2fa391968eecba3c - languageName: node - linkType: hard - "@swc/core-darwin-arm64@npm:1.11.24": version: 1.11.24 resolution: "@swc/core-darwin-arm64@npm:1.11.24" @@ -7003,22 +6745,6 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:10.4.0": - version: 10.4.0 - resolution: "@testing-library/dom@npm:10.4.0" - dependencies: - "@babel/code-frame": "npm:^7.10.4" - "@babel/runtime": "npm:^7.12.5" - "@types/aria-query": "npm:^5.0.1" - aria-query: "npm:5.3.0" - chalk: "npm:^4.1.0" - dom-accessibility-api: "npm:^0.5.9" - lz-string: "npm:^1.5.0" - pretty-format: "npm:^27.0.2" - checksum: 10c0/0352487720ecd433400671e773df0b84b8268fb3fe8e527cdfd7c11b1365b398b4e0eddba6e7e0c85e8d615f48257753283fccec41f6b986fd6c85f15eb5f84f - languageName: node - linkType: hard - "@testing-library/dom@npm:^9.0.0": version: 9.3.4 resolution: "@testing-library/dom@npm:9.3.4" @@ -7035,9 +6761,9 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:6.5.0": - version: 6.5.0 - resolution: "@testing-library/jest-dom@npm:6.5.0" +"@testing-library/jest-dom@npm:^6.6.3": + version: 6.6.3 + resolution: "@testing-library/jest-dom@npm:6.6.3" dependencies: "@adobe/css-tools": "npm:^4.4.0" aria-query: "npm:^5.0.0" @@ -7046,20 +6772,11 @@ __metadata: dom-accessibility-api: "npm:^0.6.3" lodash: "npm:^4.17.21" redent: "npm:^3.0.0" - checksum: 10c0/fd5936a547f04608d8de15a7de3ae26516f21023f8f45169b10c8c8847015fd20ec259b7309f08aa1031bcbc37c6e5e6f532d1bb85ef8f91bad654193ec66a4c + checksum: 10c0/5566b6c0b7b0709bc244aec3aa3dc9e5f4663e8fb2b99d8cd456fc07279e59db6076cbf798f9d3099a98fca7ef4cd50e4e1f4c4dec5a60a8fad8d24a638a5bf6 languageName: node linkType: hard -"@testing-library/user-event@npm:14.5.2": - version: 14.5.2 - resolution: "@testing-library/user-event@npm:14.5.2" - peerDependencies: - "@testing-library/dom": ">=7.21.4" - checksum: 10c0/68a0c2aa28a3c8e6eb05cafee29705438d7d8a9427423ce5064d44f19c29e89b5636de46dd2f28620fb10abba75c67130185bbc3aa23ac1163a227a5f36641e1 - languageName: node - linkType: hard - -"@testing-library/user-event@npm:^14.4.0": +"@testing-library/user-event@npm:^14.4.0, @testing-library/user-event@npm:^14.6.1": version: 14.6.1 resolution: "@testing-library/user-event@npm:14.6.1" peerDependencies: @@ -7264,13 +6981,6 @@ __metadata: languageName: node linkType: hard -"@types/uuid@npm:^9.0.1": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: 10c0/b411b93054cb1d4361919579ef3508a1f12bf15b5fdd97337d3d351bece6c921b52b6daeef89b62340fd73fd60da407878432a1af777f40648cbe53a01723489 - languageName: node - linkType: hard - "@types/wait-on@npm:^5.2.0": version: 5.3.4 resolution: "@types/wait-on@npm:5.3.4" @@ -7434,65 +7144,44 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/expect@npm:2.0.5" - dependencies: - "@vitest/spy": "npm:2.0.5" - "@vitest/utils": "npm:2.0.5" - chai: "npm:^5.1.1" - tinyrainbow: "npm:^1.2.0" - checksum: 10c0/08cb1b0f106d16a5b60db733e3d436fa5eefc68571488eb570dfe4f599f214ab52e4342273b03dbe12331cc6c0cdc325ac6c94f651ad254cd62f3aa0e3d185aa - languageName: node - linkType: hard - -"@vitest/pretty-format@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/pretty-format@npm:2.0.5" - dependencies: - tinyrainbow: "npm:^1.2.0" - checksum: 10c0/236c0798c5170a0b5ad5d4bd06118533738e820b4dd30079d8fbcb15baee949d41c60f42a9f769906c4a5ce366d7ef11279546070646c0efc03128c220c31f37 - languageName: node - linkType: hard - -"@vitest/pretty-format@npm:2.1.9": - version: 2.1.9 - resolution: "@vitest/pretty-format@npm:2.1.9" +"@vitest/expect@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/expect@npm:3.0.9" dependencies: - tinyrainbow: "npm:^1.2.0" - checksum: 10c0/155f9ede5090eabed2a73361094bb35ed4ec6769ae3546d2a2af139166569aec41bb80e031c25ff2da22b71dd4ed51e5468e66a05e6aeda5f14b32e30bc18f00 + "@vitest/spy": "npm:3.0.9" + "@vitest/utils": "npm:3.0.9" + chai: "npm:^5.2.0" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/4e5eef8fbc9c3e47f3fb69dbbd5b51aabdf1b6de2f781556d37d79731678fc83cf4a01d146226b12a27df051a4110153a6172506c9c74ae08e5b924a9c947f08 languageName: node linkType: hard -"@vitest/spy@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/spy@npm:2.0.5" +"@vitest/pretty-format@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/pretty-format@npm:3.0.9" dependencies: - tinyspy: "npm:^3.0.0" - checksum: 10c0/70634c21921eb271b54d2986c21d7ab6896a31c0f4f1d266940c9bafb8ac36237846d6736638cbf18b958bd98e5261b158a6944352742accfde50b7818ff655e + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/56ae7b1f14df2905b3205d4e121727631c4938ec44f76c1e9fa49923919010378f0dad70b1d277672f3ef45ddf6372140c8d1da95e45df8282f70b74328fce47 languageName: node linkType: hard -"@vitest/utils@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/utils@npm:2.0.5" +"@vitest/spy@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/spy@npm:3.0.9" dependencies: - "@vitest/pretty-format": "npm:2.0.5" - estree-walker: "npm:^3.0.3" - loupe: "npm:^3.1.1" - tinyrainbow: "npm:^1.2.0" - checksum: 10c0/0d1de748298f07a50281e1ba058b05dcd58da3280c14e6f016265e950bd79adab6b97822de8f0ea82d3070f585654801a9b1bcf26db4372e51cf7746bf86d73b + tinyspy: "npm:^3.0.2" + checksum: 10c0/993085dbaf9e651ca9516f88e440424d29279def998186628a1ebcab5558a3045fee8562630608f58303507135f6f3bf9970f65639f3b9baa8bf86cab3eb4742 languageName: node linkType: hard -"@vitest/utils@npm:^2.1.1": - version: 2.1.9 - resolution: "@vitest/utils@npm:2.1.9" +"@vitest/utils@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/utils@npm:3.0.9" dependencies: - "@vitest/pretty-format": "npm:2.1.9" - loupe: "npm:^3.1.2" - tinyrainbow: "npm:^1.2.0" - checksum: 10c0/81a346cd72b47941f55411f5df4cc230e5f740d1e97e0d3f771b27f007266fc1f28d0438582f6409ea571bc0030ed37f684c64c58d1947d6298d770c21026fdf + "@vitest/pretty-format": "npm:3.0.9" + loupe: "npm:^3.1.3" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/b966dfb3b926ee9bea59c1fb297abc67adaa23a8a582453ee81167b238446394693617a5e0523eb2791d6983173ef1c07bf28a76bd5a63b49a100610ed6b6a6c languageName: node linkType: hard @@ -7815,15 +7504,6 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.3.0": - version: 5.3.0 - resolution: "aria-query@npm:5.3.0" - dependencies: - dequal: "npm:^2.0.3" - checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469 - languageName: node - linkType: hard - "aria-query@npm:^5.0.0": version: 5.3.2 resolution: "aria-query@npm:5.3.2" @@ -8076,13 +7756,6 @@ __metadata: languageName: node linkType: hard -"browser-assert@npm:^1.2.1": - version: 1.2.1 - resolution: "browser-assert@npm:1.2.1" - checksum: 10c0/902abf999f92c9c951fdb6d7352c09eea9a84706258699655f7e7906e42daa06a1ae286398a755872740e05a6a71c43c5d1a0c0431d67a8cdb66e5d859a3fc0c - languageName: node - linkType: hard - "browserslist@npm:^4.24.0, browserslist@npm:^4.24.4": version: 4.24.4 resolution: "browserslist@npm:4.24.4" @@ -8212,7 +7885,7 @@ __metadata: languageName: node linkType: hard -"chai@npm:^5.1.1": +"chai@npm:^5.2.0": version: 5.2.0 resolution: "chai@npm:5.2.0" dependencies: @@ -8746,13 +8419,6 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.2, dequal@npm:^2.0.3": - version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 - languageName: node - linkType: hard - "detect-indent@npm:^6.0.0": version: 6.1.0 resolution: "detect-indent@npm:6.1.0" @@ -9286,15 +8952,6 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:^3.0.3": - version: 3.0.3 - resolution: "estree-walker@npm:3.0.3" - dependencies: - "@types/estree": "npm:^1.0.0" - checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d - languageName: node - linkType: hard - "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -9800,7 +9457,7 @@ __metadata: languageName: node linkType: hard -"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1": +"get-proto@npm:^1.0.1": version: 1.0.1 resolution: "get-proto@npm:1.0.1" dependencies: @@ -10267,7 +9924,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.1.1": version: 1.2.0 resolution: "is-arguments@npm:1.2.0" dependencies: @@ -10370,18 +10027,6 @@ __metadata: languageName: node linkType: hard -"is-generator-function@npm:^1.0.7": - version: 1.1.0 - resolution: "is-generator-function@npm:1.1.0" - dependencies: - call-bound: "npm:^1.0.3" - get-proto: "npm:^1.0.0" - has-tostringtag: "npm:^1.0.2" - safe-regex-test: "npm:^1.1.0" - checksum: 10c0/fdfa96c8087bf36fc4cd514b474ba2ff404219a4dd4cfa6cf5426404a1eed259bdcdb98f082a71029a48d01f27733e3436ecc6690129a7ec09cb0434bee03a2a - languageName: node - linkType: hard - "is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -10480,15 +10125,6 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.3": - version: 1.1.15 - resolution: "is-typed-array@npm:1.1.15" - dependencies: - which-typed-array: "npm:^1.1.16" - checksum: 10c0/415511da3669e36e002820584e264997ffe277ff136643a3126cc949197e6ca3334d0f12d084e83b1994af2e9c8141275c741cf2b7da5a2ff62dd0cac26f76c4 - languageName: node - linkType: hard - "is-typedarray@npm:^1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -11248,13 +10884,6 @@ __metadata: languageName: node linkType: hard -"jsdoc-type-pratt-parser@npm:^4.0.0": - version: 4.1.0 - resolution: "jsdoc-type-pratt-parser@npm:4.1.0" - checksum: 10c0/7700372d2e733a32f7ea0a1df9cec6752321a5345c11a91b2ab478a031a426e934f16d5c1f15c8566c7b2c10af9f27892a29c2c789039f595470e929a4aa60ea - languageName: node - linkType: hard - "jsesc@npm:3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" @@ -11647,7 +11276,7 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0, loupe@npm:^3.1.1, loupe@npm:^3.1.2": +"loupe@npm:^3.1.0, loupe@npm:^3.1.3": version: 3.1.3 resolution: "loupe@npm:3.1.3" checksum: 10c0/f5dab4144254677de83a35285be1b8aba58b3861439ce4ba65875d0d5f3445a4a496daef63100ccf02b2dbc25bf58c6db84c9cb0b96d6435331e9d0a33b48541 @@ -11711,15 +11340,6 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.27.0": - version: 0.27.0 - resolution: "magic-string@npm:0.27.0" - dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.4.13" - checksum: 10c0/cddacfea14441ca57ae8a307bc3cf90bac69efaa4138dd9a80804cffc2759bf06f32da3a293fb13eaa96334b7d45b7768a34f1d226afae25d2f05b05a3bb37d8 - languageName: node - linkType: hard - "magic-string@npm:^0.30.0, magic-string@npm:^0.30.17": version: 0.30.17 resolution: "magic-string@npm:0.30.17" @@ -11775,13 +11395,6 @@ __metadata: languageName: node linkType: hard -"map-or-similar@npm:^1.5.0": - version: 1.5.0 - resolution: "map-or-similar@npm:1.5.0" - checksum: 10c0/33c6ccfdc272992e33e4e99a69541a3e7faed9de3ac5bc732feb2500a9ee71d3f9d098980a70b7746e7eeb7f859ff7dfb8aa9b5ecc4e34170a32ab78cfb18def - languageName: node - linkType: hard - "map-stream@npm:~0.1.0": version: 0.1.0 resolution: "map-stream@npm:0.1.0" @@ -11796,15 +11409,6 @@ __metadata: languageName: node linkType: hard -"memoizerific@npm:^1.11.3": - version: 1.11.3 - resolution: "memoizerific@npm:1.11.3" - dependencies: - map-or-similar: "npm:^1.5.0" - checksum: 10c0/661bf69b7afbfad57f0208f0c63324f4c96087b480708115b78ee3f0237d86c7f91347f6db31528740b2776c2e34c709bcb034e1e910edee2270c9603a0a469e - languageName: node - linkType: hard - "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -12656,15 +12260,6 @@ __metadata: languageName: node linkType: hard -"polished@npm:^4.2.2": - version: 4.3.1 - resolution: "polished@npm:4.3.1" - dependencies: - "@babel/runtime": "npm:^7.17.8" - checksum: 10c0/45480d4c7281a134281cef092f6ecc202a868475ff66a390fee6e9261386e16f3047b4de46a2f2e1cf7fb7aa8f52d30b4ed631a1e3bcd6f303ca31161d4f07fe - languageName: node - linkType: hard - "portfinder@npm:^1.0.28": version: 1.0.37 resolution: "portfinder@npm:1.0.37" @@ -12784,13 +12379,6 @@ __metadata: languageName: node linkType: hard -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 - languageName: node - linkType: hard - "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -13022,9 +12610,9 @@ __metadata: languageName: node linkType: hard -"react-docgen@npm:^7.0.0": - version: 7.1.1 - resolution: "react-docgen@npm:7.1.1" +"react-docgen@npm:^8.0.0": + version: 8.0.0 + resolution: "react-docgen@npm:8.0.0" dependencies: "@babel/core": "npm:^7.18.9" "@babel/traverse": "npm:^7.18.9" @@ -13036,7 +12624,7 @@ __metadata: doctrine: "npm:^3.0.0" resolve: "npm:^1.22.1" strip-indent: "npm:^4.0.0" - checksum: 10c0/961e69487f6acbd9110afbda31f5a0c7fa7ab8b1ebe09fc0138c17efd297fa0b69518df873e937cac108732cd8125433bf939115d23ff99c1c171844140705a7 + checksum: 10c0/2e3c187bed074895ac3420910129f23b30fe8f7faf984cbf6e210dd3914fa03a910583c5a4c4564edbef7461c37dfd6cd967c3bfc5d83c6f8c02cacedda38014 languageName: node linkType: hard @@ -13151,32 +12739,19 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^7.0.0": - version: 7.5.3 - resolution: "react-router-dom@npm:7.5.3" - dependencies: - react-router: "npm:7.5.3" - peerDependencies: - react: ">=18" - react-dom: ">=18" - checksum: 10c0/56c03d8c31c100db54029df82f7e2d350ec75d301b2ffa9512fbc7659faf492ef6d777115629da89c92d0826f3b8a98271dd8426fd3afd3aaf9ed92763f7deaa - languageName: node - linkType: hard - -"react-router@npm:7.5.3, react-router@npm:^7.0.0": - version: 7.5.3 - resolution: "react-router@npm:7.5.3" +"react-router@npm:^7.6.1": + version: 7.6.1 + resolution: "react-router@npm:7.6.1" dependencies: cookie: "npm:^1.0.1" set-cookie-parser: "npm:^2.6.0" - turbo-stream: "npm:2.4.0" peerDependencies: react: ">=18" react-dom: ">=18" peerDependenciesMeta: react-dom: optional: true - checksum: 10c0/1f98ab5974cbf6696944a3cbe3d5708add6cdb9c765e0952459eb912d388fe361914a94557546dcd45164413fd9bc2fde97302c8daf3951156644232a9e3ce16 + checksum: 10c0/9968dcccc6695671cb216a74a756d717f47d5b8613869be72764966c2dc252ce12aa91a5f74838776b78d65a2297d7d5455c26a3ed78a380897905383b30c7d8 languageName: node linkType: hard @@ -13959,21 +13534,29 @@ __metadata: languageName: node linkType: hard -"storybook@npm:^8.6.7": - version: 8.6.12 - resolution: "storybook@npm:8.6.12" +"storybook@npm:^9.0.1": + version: 9.0.1 + resolution: "storybook@npm:9.0.1" dependencies: - "@storybook/core": "npm:8.6.12" + "@storybook/global": "npm:^5.0.0" + "@testing-library/jest-dom": "npm:^6.6.3" + "@testing-library/user-event": "npm:^14.6.1" + "@vitest/expect": "npm:3.0.9" + "@vitest/spy": "npm:3.0.9" + better-opn: "npm:^3.0.2" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" + esbuild-register: "npm:^3.5.0" + recast: "npm:^0.23.5" + semver: "npm:^7.6.2" + ws: "npm:^8.18.0" peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: prettier: optional: true bin: - getstorybook: ./bin/index.cjs - sb: ./bin/index.cjs storybook: ./bin/index.cjs - checksum: 10c0/9e52fed104fe9b0e8baad84651f5ea13d37ad885f1cfaf3fb27858c928920abbc05f624516545c360975c5bb86c1107ca8cdf484725fc8ddb540e55a6d536cb6 + checksum: 10c0/a9912e758c9cda7f6966e0831b7b80d46dcd7c14663caf36a2cb83567b05284461f2c72de95cc25d56604cf717da5b68332ceaf500518c0bb4a252bbfa355e28 languageName: node linkType: hard @@ -14225,7 +13808,7 @@ __metadata: languageName: node linkType: hard -"tiny-invariant@npm:^1.3.1, tiny-invariant@npm:^1.3.3": +"tiny-invariant@npm:^1.3.3": version: 1.3.3 resolution: "tiny-invariant@npm:1.3.3" checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a @@ -14242,14 +13825,14 @@ __metadata: languageName: node linkType: hard -"tinyrainbow@npm:^1.2.0": - version: 1.2.0 - resolution: "tinyrainbow@npm:1.2.0" - checksum: 10c0/7f78a4b997e5ba0f5ecb75e7ed786f30bab9063716e7dff24dd84013fb338802e43d176cb21ed12480561f5649a82184cf31efb296601a29d38145b1cdb4c192 +"tinyrainbow@npm:^2.0.0": + version: 2.0.0 + resolution: "tinyrainbow@npm:2.0.0" + checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f languageName: node linkType: hard -"tinyspy@npm:^3.0.0": +"tinyspy@npm:^3.0.2": version: 3.0.2 resolution: "tinyspy@npm:3.0.2" checksum: 10c0/55ffad24e346622b59292e097c2ee30a63919d5acb7ceca87fc0d1c223090089890587b426e20054733f97a58f20af2c349fb7cc193697203868ab7ba00bcea0 @@ -14373,13 +13956,6 @@ __metadata: languageName: node linkType: hard -"turbo-stream@npm:2.4.0": - version: 2.4.0 - resolution: "turbo-stream@npm:2.4.0" - checksum: 10c0/e68b2569f1f16e6e9633d090c6024b2ae9f0e97bfeacb572451ca3732e120ebbb546f3bc4afc717c46cb57b5aea6104e04ef497f9912eef6a7641e809518e98a - languageName: node - linkType: hard - "turbo-windows-64@npm:2.5.2": version: 2.5.2 resolution: "turbo-windows-64@npm:2.5.2" @@ -14649,19 +14225,6 @@ __metadata: languageName: node linkType: hard -"util@npm:^0.12.5": - version: 0.12.5 - resolution: "util@npm:0.12.5" - dependencies: - inherits: "npm:^2.0.3" - is-arguments: "npm:^1.0.4" - is-generator-function: "npm:^1.0.7" - is-typed-array: "npm:^1.1.3" - which-typed-array: "npm:^1.1.2" - checksum: 10c0/c27054de2cea2229a66c09522d0fa1415fb12d861d08523a8846bf2e4cbf0079d4c3f725f09dcb87493549bcbf05f5798dce1688b53c6c17201a45759e7253f3 - languageName: node - linkType: hard - "uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -14671,15 +14234,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.1": version: 9.3.0 resolution: "v8-to-istanbul@npm:9.3.0" @@ -14979,7 +14533,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.2": +"which-typed-array@npm:^1.1.13": version: 1.1.19 resolution: "which-typed-array@npm:1.1.19" dependencies: @@ -15100,9 +14654,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.2.3": - version: 8.18.1 - resolution: "ws@npm:8.18.1" +"ws@npm:^8.18.0": + version: 8.18.2 + resolution: "ws@npm:8.18.2" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -15111,7 +14665,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10c0/e498965d6938c63058c4310ffb6967f07d4fa06789d3364829028af380d299fe05762961742971c764973dce3d1f6a2633fe8b2d9410c9b52e534b4b882a99fa + checksum: 10c0/4b50f67931b8c6943c893f59c524f0e4905bbd183016cfb0f2b8653aa7f28dad4e456b9d99d285bbb67cca4fedd9ce90dfdfaa82b898a11414ebd66ee99141e4 languageName: node linkType: hard From 3c4b79834d5c1d1e191ab8b48ff2f3d6fd8b1642 Mon Sep 17 00:00:00 2001 From: Jake Ruesink Date: Fri, 30 May 2025 18:44:43 -0500 Subject: [PATCH 2/3] chore: remove unused dependencies and clean up configuration - Removed @medusajs/ui-preset and related dependencies from package.json and yarn.lock. - Cleaned up Vite configuration by removing unnecessary external dependencies. - Updated Storybook stories to ensure consistent import statements and improved component usage. --- apps/docs/package.json | 1 - .../remix-hook-form/text-field.stories.tsx | 2 +- .../src/remix-hook-form/textarea.stories.tsx | 6 ++-- apps/docs/vite.config.mjs | 5 --- packages/medusa-forms/vite.config.ts | 2 -- yarn.lock | 36 +------------------ 6 files changed, 5 insertions(+), 47 deletions(-) diff --git a/apps/docs/package.json b/apps/docs/package.json index 30d335ab..528e69b0 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -24,7 +24,6 @@ "storybook": "^9.0.1" }, "devDependencies": { - "@medusajs/ui-preset": "^2.8.3", "@react-router/dev": "^7.0.0", "@storybook/addon-docs": "^9.0.1", "@storybook/test-runner": "^0.22.0", diff --git a/apps/docs/src/remix-hook-form/text-field.stories.tsx b/apps/docs/src/remix-hook-form/text-field.stories.tsx index bdd4d428..f49cd2e1 100644 --- a/apps/docs/src/remix-hook-form/text-field.stories.tsx +++ b/apps/docs/src/remix-hook-form/text-field.stories.tsx @@ -2,9 +2,9 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { TextField } from '@lambdacurry/forms/remix-hook-form/text-field'; import { Button } from '@lambdacurry/forms/ui/button'; import type { Meta, StoryContext, StoryObj } from '@storybook/react-vite'; -import { expect, userEvent } from 'storybook/test'; import { type ActionFunctionArgs, useFetcher } from 'react-router'; import { RemixFormProvider, getValidatedFormData, useRemixForm } from 'remix-hook-form'; +import { expect, userEvent } from 'storybook/test'; import { z } from 'zod'; import { withReactRouterStubDecorator } from '../lib/storybook/react-router-stub'; diff --git a/apps/docs/src/remix-hook-form/textarea.stories.tsx b/apps/docs/src/remix-hook-form/textarea.stories.tsx index 62938a1e..7cfdfcf4 100644 --- a/apps/docs/src/remix-hook-form/textarea.stories.tsx +++ b/apps/docs/src/remix-hook-form/textarea.stories.tsx @@ -2,9 +2,9 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { Textarea } from '@lambdacurry/forms/remix-hook-form/textarea'; import { Button } from '@lambdacurry/forms/ui/button'; import type { Meta, StoryObj } from '@storybook/react-vite'; -import { expect, userEvent, within } from 'storybook/test'; import { type ActionFunctionArgs, useFetcher } from 'react-router'; import { RemixFormProvider, createFormData, getValidatedFormData, useRemixForm } from 'remix-hook-form'; +import { expect, userEvent, within } from 'storybook/test'; import { z } from 'zod'; import { withReactRouterStubDecorator } from '../lib/storybook/react-router-stub'; @@ -43,7 +43,7 @@ const ControlledTextareaExample = () => { return ( -
+