diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7dccc38c..72048948 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,7 +16,7 @@ permissions:
jobs:
- pr:
+ pr_title_check:
runs-on: ubuntu-latest
if: github.actor != 'dependabot[bot]'
steps:
@@ -51,22 +51,18 @@ jobs:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-node
+ - name: Build Setup
+ run: nr -C scripts ci:env-copy
+
- name: Build
- run: |
- nr -r ci:env-copy
- nr build
- nr -r ci:env-delete
- nr -r build:check
+ run: nr build
- coverage:
- runs-on: ubuntu-latest
- needs: [build]
- steps:
- - uses: actions/checkout@v3
- - uses: ./.github/actions/setup-node
+ - name: Build Check
+ run: |
+ nr build:check
- - name: Coverage
- run: nr coverage
+ - name: Cleanup
+ run: nr -C scripts ci:env-delete
lint:
runs-on: ubuntu-latest
@@ -95,9 +91,9 @@ jobs:
- name: Test
run: nr test
+
+ # - name: Storybook test
+ # run: nr test-storybook:ci
- action-timeline:
- needs: [build, lint, pr, test, trivy_scan, triage]
- runs-on: ubuntu-latest
- steps:
- - uses: Kesin11/actions-timeline@v1
+ - name: Coverage
+ run: nr test:coverage
diff --git a/eslint.config.js b/eslint.config.js
index 1e0e02f2..509575c3 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -2,9 +2,14 @@ import antfu from '@antfu/eslint-config'
export default antfu({
stylistic: true,
+ javascript: true,
typescript: true,
+ json: true,
jsonc: true,
+ html: true,
markdown: true,
+ yaml: true,
+ toml: true,
}, {
ignores: ['**/app/{docs,web}', '**/fixtures', '**/templates'],
rules: {
diff --git a/generator/package.json b/generator/package.json
index 652f35f2..23a6497f 100644
--- a/generator/package.json
+++ b/generator/package.json
@@ -36,7 +36,7 @@
"giget": "^1.2.1",
"globby": "^14.0.1",
"latest-version": "^9.0.0",
- "recast": "^0.23.4",
+ "recast": "^0.23.5",
"replace-string": "^4.0.0",
"slash": "^5.1.0"
},
diff --git a/knip.config.ts b/knip.config.ts
index 2ad87a66..29ff4930 100644
--- a/knip.config.ts
+++ b/knip.config.ts
@@ -1,17 +1,22 @@
-const config = {
+import type { KnipConfig } from 'knip'
+
+const config: KnipConfig = {
+ 'rules': {
+ dependencies: 'off',
+ },
'ignoreBinaries': ['templ-cli', 'test-storybook'],
'ignoreDependencies': ['typecheck'],
'workspaces': {
'.': {
entry: ['eslint.config.js'],
- ignore: ['**/templates/**', '**/example/**', '**/.config/**'],
+ ignore: ['**/.config/**', '**/generator/**', '**/templates/**'],
},
'packages/*': {
- entry: ['src/**/*.{ts,tsx}', 'test/**/*.test.{ts,tsx}', '**/*.load.ts', '**/.storybook/*.{js,ts}'],
+ entry: ['src/**/*.{ts,tsx}', 'test/**/*.test.{ts,tsx}', '**/*.load.ts', '**/.storybook/*.{js,ts}', '**/*.config.{js,ts}', '**/*setupTests.{js,ts}'],
ignore: ['**/test/**', '**/*.story.{ts,tsx}'],
},
'apps/*': {
- entry: ['src/**/*.{ts,tsx}', 'test/**/*.test.{ts,tsx}', '**/*.config.js'],
+ entry: ['src/**/*.{ts,tsx}', 'test/**/*.test.{ts,tsx}', '**/*.config.{js,ts}'],
},
},
'eslint': {
@@ -26,15 +31,6 @@ const config = {
'github-actions': {
config: ['.github/workflows/*.{yml,yaml}', '.github/**/action.{yml,yaml}'],
},
- 'lefthook': {
- config: [
- 'lefthook.yml',
- '.git/hooks/prepare-commit-msg',
- '.git/hooks/commit-msg',
- '.git/hooks/pre-{applypatch,commit,merge-commit,push,rebase,receive}',
- '.git/hooks/post-{checkout,commit,merge,rewrite}',
- ],
- },
'next': {
entry: [
'next.config.{js,ts,cjs,mjs}',
diff --git a/package.json b/package.json
index 762a102e..04e1cd07 100644
--- a/package.json
+++ b/package.json
@@ -26,23 +26,26 @@
},
"scripts": {
"prepare": "husky",
- "all": "ni && nr deps:update && nr build && nr lint && nr test",
- "build": "nr clean && turbo run build && knip && nr -C scripts build:check && nr -r typecheck",
+ "all": "ni && nr deps:update && nr clean && nr build && nr lint && nr test",
+ "build": "turbo run build",
+ "build:check": "knip --production && nr -C scripts build:check",
"clean": "nr -C scripts clean",
- "coverage": "vitest run --coverage",
"deps:update": "taze -r -w -i -f -l",
- "lint": "eslint . --fix && nr -C scripts automd",
+ "lint": "eslint . --fix && nr -C scripts automd && nr typecheck",
"release": "changeset version && npm publish && git push --follow-tags",
- "test": "turbo run test"
+ "test": "turbo run test",
+ "test:coverage": "vitest run --coverage",
+ "typecheck": "nr -C scripts typecheck"
},
"devDependencies": {
"@antfu/eslint-config": "2.7.0",
"@antfu/ni": "^0.21.12",
"@changesets/cli": "^2.27.1",
+ "@storybook/blocks": "^7.6.17",
"@vitest/coverage-v8": "^1.3.1",
"eslint": "^8.57.0",
"husky": "^9.0.11",
- "knip": "^5.0.2",
+ "knip": "^5.0.3",
"pnpm": "^8.15.4",
"taze": "^0.13.3",
"turbo": "^1.12.4",
diff --git a/packages/api/package.json b/packages/api/package.json
index d7be4d0d..65fb24e9 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -40,9 +40,9 @@
"dependencies": {
"@hono/node-server": "^1.8.2",
"@hono/zod-openapi": "^0.9.6",
- "@scalar/hono-api-reference": "^0.3.64",
+ "@scalar/hono-api-reference": "^0.3.66",
"consola": "^3.2.3",
- "hono": "^4.0.8"
+ "hono": "^4.0.9"
},
"devDependencies": {
"@templ/config": "workspace:*",
diff --git a/packages/config/example/index.ts b/packages/config/example/index.ts
deleted file mode 100644
index 2b388116..00000000
--- a/packages/config/example/index.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { cwd } from 'node:process'
-import { resolve } from 'node:path'
-import consola from 'consola'
-
-import { loadConfig } from '../src'
-
-async function main() {
- const result = await loadConfig({
- cwd: resolve(cwd(), '..', '..', '.config'),
- config: true,
- env: true,
- flag: true,
- })
-
- consola.log({ result })
-}
-
-main().catch(consola.error)
diff --git a/packages/ui/.storybook/main.ts b/packages/ui/.storybook/main.ts
index 434eab3b..5dd40e7e 100644
--- a/packages/ui/.storybook/main.ts
+++ b/packages/ui/.storybook/main.ts
@@ -5,13 +5,16 @@ const config: StorybookConfig = {
stories: ['../stories/**/*.mdx', '../registry/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
addons: [
'@geometricpanda/storybook-addon-badges',
+ '@storybook/addon-a11y',
+ '@storybook/addon-coverage',
'@storybook/addon-essentials',
// '@storybook/addon-interactions',
'@storybook/addon-links',
'@storybook/addon-storysource',
- 'storybook-dark-mode',
+ 'storybook-addon-rtl',
'storybook-addon-performance',
'storybook-addon-pseudo-states',
+ 'storybook-dark-mode',
],
framework: '@storybook/react-vite',
async viteFinal(config) {
diff --git a/packages/ui/.storybook/preview.ts b/packages/ui/.storybook/preview.ts
index 52866bb9..56e66e93 100644
--- a/packages/ui/.storybook/preview.ts
+++ b/packages/ui/.storybook/preview.ts
@@ -9,6 +9,28 @@ import '../styles/global.css'
export const preview: Preview = {
parameters: {
actions: { argTypesRegex: '^on[A-Z].*' },
+ a11y: {
+ // Optional selector to inspect
+ element: '#storybook-root',
+ config: {
+ rules: [
+ {
+ // The autocomplete rule will not run based on the CSS selector provided
+ id: 'autocomplete-valid',
+ selector: '*:not([autocomplete="nope"])',
+ },
+ {
+ // Setting the enabled option to false will disable checks for this particular rule on all stories.
+ id: 'image-alt',
+ enabled: false,
+ },
+ ],
+ },
+ // Axe's options parameter
+ options: {},
+ // Optional flag to prevent the automatic check
+ manual: true,
+ },
controls: {
matchers: {
color: /(background|color)$/i,
diff --git a/packages/ui/esbuild.config.ts b/packages/ui/esbuild.config.ts
index ed4501c2..37c4c51e 100644
--- a/packages/ui/esbuild.config.ts
+++ b/packages/ui/esbuild.config.ts
@@ -4,8 +4,8 @@ import type { BuildOptions } from 'esbuild'
import { getBuildConfig } from '@templ/config'
import { globby } from 'globby'
-const entryPoints = await globby(['index.ts', 'components/**/*.{ts,tsx}', 'lib/**/*.ts', 'registry/**/*.{ts,tsx}'], {
- ignore: ['registry/**/*.stories.tsx'],
+const entryPoints = await globby(['index.ts', 'components/**/*.{ts,tsx,js,jsx}', 'lib/**/*.ts', 'registry/**/*.{ts,tsx,js,jsx}'], {
+ ignore: ['registry/**/*.stories.{ts,tsx,js,jsx}', 'registry/**/*.test.{ts,tsx,js,jsx}'],
})
const config: BuildOptions = {
diff --git a/packages/ui/package.json b/packages/ui/package.json
index d98a2870..d08bd1bd 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -52,14 +52,13 @@
"npm": ">=8"
},
"scripts": {
- "postinstall": "pnpm exec playwright install",
"build": "tsx esbuild.config.ts",
- "build-storybook": "storybook build",
+ "build:storybook": "storybook build -o dist/storybook",
"dev": "tsx esbuild.config.ts --watch",
"storybook": "storybook dev -p 6006",
"test": "vitest run",
"test:storybook": "test-storybook",
- "test:storybook:ci": "test-storybook --ci",
+ "test-storybook:ci": "concurrently -k -s first -n \"Storybook,Test\" -c \"magenta,blue\" \"nr build:storybook --quiet && npx http-server storybook-static --port 6006 --silent\" \"wait-on tcp:6006 && nr test:storybook --ci\"",
"typecheck": "tsc --noEmit"
},
"dependencies": {
@@ -102,7 +101,7 @@
"postcss": "^8.4.35",
"react": "^18.2.0",
"react-day-picker": "^8.10.0",
- "react-hook-form": "^7.50.1",
+ "react-hook-form": "^7.51.0",
"sonner": "^1.4.3",
"tailwind-merge": "^2.2.1",
"tailwindcss": "^3.4.1",
@@ -111,35 +110,46 @@
"devDependencies": {
"@geometricpanda/storybook-addon-badges": "^2.0.2",
"@hookform/resolvers": "^3.3.4",
+ "@storybook/addon-a11y": "^7.6.17",
"@storybook/addon-actions": "^7.6.17",
+ "@storybook/addon-coverage": "^1.0.1",
"@storybook/addon-essentials": "^7.6.17",
"@storybook/addon-highlight": "^7.6.17",
+ "@storybook/addon-interactions": "^7.6.17",
"@storybook/addon-links": "^7.6.17",
"@storybook/addon-storysource": "^7.6.17",
+ "@storybook/addon-themes": "^7.6.17",
"@storybook/blocks": "^7.6.17",
"@storybook/manager-api": "^7.6.17",
"@storybook/preview-api": "^7.6.17",
"@storybook/react": "^7.6.17",
"@storybook/react-vite": "^7.6.17",
"@storybook/test-runner": "^0.16.0",
+ "@storybook/testing-library": "^0.2.2",
"@storybook/theming": "^7.6.17",
"@templ/config": "workspace:*",
"@templ/tsconfig": "workspace:*",
+ "@testing-library/react": "^14.2.1",
"@types/node": "^20.11.24",
"@types/react": "^18.2.61",
+ "concurrently": "^8.2.2",
"date-fns": "^3.3.1",
"esbuild": "^0.20.1",
"globby": "^14.0.1",
+ "happy-dom": "^13.6.2",
+ "http-server": "^14.1.1",
"lucide-react": "0.344.0",
- "playwright": "^1.42.0",
"storybook": "^7.6.17",
"storybook-addon-performance": "^0.17.3",
- "storybook-addon-pseudo-states": "^2.1.2",
+ "storybook-addon-pseudo-states": "^2.2.0",
+ "storybook-addon-rtl": "^1.0.0",
"storybook-dark-mode": "^3.0.3",
"tsx": "^4.7.1",
"typescript": "^5.3.3",
"vite": "^5.1.4",
"vitest": "^1.3.1",
+ "vitest-axe": "^0.1.0",
+ "wait-on": "^7.2.0",
"zod": "^3.22.4"
},
"size-limit": "65 KB"
diff --git a/packages/ui/registry/accordion/__snapshots__/accordion.test.tsx.snap b/packages/ui/registry/accordion/__snapshots__/accordion.test.tsx.snap
new file mode 100644
index 00000000..5b6caac3
--- /dev/null
+++ b/packages/ui/registry/accordion/__snapshots__/accordion.test.tsx.snap
@@ -0,0 +1,157 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`accordion component > should render properly 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/packages/ui/registry/accordion/accordion.stories.tsx b/packages/ui/registry/accordion/accordion.stories.tsx
index 502b7811..15bef45f 100644
--- a/packages/ui/registry/accordion/accordion.stories.tsx
+++ b/packages/ui/registry/accordion/accordion.stories.tsx
@@ -1,5 +1,6 @@
import * as React from 'react'
import type { Meta, StoryObj } from '@storybook/react'
+import { within } from '@storybook/testing-library'
import {
Accordion,
AccordionContent,
@@ -25,12 +26,11 @@ const meta = {
collapsible: true,
},
parameters: {
+ direction: 'ltr',
badges: ['beta', 'stable'],
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -60,4 +60,10 @@ export const Default: Story = {
),
-}
+ play: async ({ canvasElement }) => {
+ const canvas = within(canvasElement)
+ await canvas.getByText('Is it accessible?')
+ },
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/accordion/accordion.test.tsx b/packages/ui/registry/accordion/accordion.test.tsx
new file mode 100644
index 00000000..5976c484
--- /dev/null
+++ b/packages/ui/registry/accordion/accordion.test.tsx
@@ -0,0 +1,62 @@
+import { cleanup, fireEvent, render, screen } from '@testing-library/react'
+import React from 'react'
+import { afterEach, beforeEach, describe, expect, it } from 'vitest'
+import { axe } from 'vitest-axe'
+import {
+ Accordion,
+ AccordionContent,
+ AccordionItem,
+ AccordionTrigger,
+} from './accordion'
+
+function renderAccordion({ args }: any) {
+ const { container } = render(
+
+
+ Is it accessible?
+
+ Yes. It adheres to the WAI-ARIA design pattern.
+
+
+
+ Is it styled?
+
+ Yes. It comes with default styles that matches the other components'
+ aesthetic.
+
+
+
+ Is it animated?
+
+ Yes. It's animated by default, but you can disable it if you prefer.
+
+
+ ,
+ )
+ return container
+}
+
+const { getByText } = screen
+
+describe('accordion component', () => {
+ let container: HTMLElement
+
+ beforeEach(() => {
+ container = renderAccordion({})
+ })
+
+ afterEach(() => cleanup())
+
+ it('should render properly', () => {
+ expect(container).toMatchSnapshot()
+ })
+ it('should validate a11y violations for accordion', async () => {
+ expect(await axe(container)).toHaveNoViolations()
+ })
+
+ it('should render content when accordion element is clicked', async () => {
+ const ele = getByText(/Is it accessible?/)
+ expect(ele).toBeDefined()
+ fireEvent.click(ele)
+ })
+})
diff --git a/packages/ui/registry/alert-dialog/alert-dialog.stories.tsx b/packages/ui/registry/alert-dialog/alert-dialog.stories.tsx
index 31d84927..b4c34a5a 100644
--- a/packages/ui/registry/alert-dialog/alert-dialog.stories.tsx
+++ b/packages/ui/registry/alert-dialog/alert-dialog.stories.tsx
@@ -26,8 +26,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -52,4 +50,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/alert/alert.stories.tsx b/packages/ui/registry/alert/alert.stories.tsx
index ac9e3963..a7ff0aa5 100644
--- a/packages/ui/registry/alert/alert.stories.tsx
+++ b/packages/ui/registry/alert/alert.stories.tsx
@@ -29,8 +29,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
* The default form of the alert.
@@ -63,3 +61,5 @@ export const Destructive: Story = {
variant: 'destructive',
},
}
+
+export default meta
diff --git a/packages/ui/registry/aspect/aspect-ratio.stories.tsx b/packages/ui/registry/aspect/aspect-ratio.stories.tsx
index f38d8ad7..1e2681e0 100644
--- a/packages/ui/registry/aspect/aspect-ratio.stories.tsx
+++ b/packages/ui/registry/aspect/aspect-ratio.stories.tsx
@@ -23,8 +23,6 @@ const meta: Meta = {
],
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -98,3 +96,5 @@ export const Cinemascope: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/avatar/avatar.stories.tsx b/packages/ui/registry/avatar/avatar.stories.tsx
index 66b95ef3..8b082c0d 100644
--- a/packages/ui/registry/avatar/avatar.stories.tsx
+++ b/packages/ui/registry/avatar/avatar.stories.tsx
@@ -20,8 +20,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -35,3 +33,5 @@ export const Default: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/badge/badge.stories.tsx b/packages/ui/registry/badge/badge.stories.tsx
index aa09739c..3421a182 100644
--- a/packages/ui/registry/badge/badge.stories.tsx
+++ b/packages/ui/registry/badge/badge.stories.tsx
@@ -22,14 +22,11 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
-/**
- * The default form of the badge.
- */
-export const Default: Story = {}
+export const Default: Story = {
+ args: {},
+}
/**
* Use the `secondary` badge to call for less urgent information, blending
@@ -60,3 +57,5 @@ export const Outline: Story = {
variant: 'outline',
},
}
+
+export default meta
diff --git a/packages/ui/registry/button/button.stories.tsx b/packages/ui/registry/button/button.stories.tsx
index c58df186..0b2aa886 100644
--- a/packages/ui/registry/button/button.stories.tsx
+++ b/packages/ui/registry/button/button.stories.tsx
@@ -12,7 +12,6 @@ const meta: Meta = {
badges: ['beta', 'stable'],
},
}
-export default meta
type Story = StoryObj
@@ -67,3 +66,5 @@ export const WithIcon: Story = {
variant: 'secondary',
},
}
+
+export default meta
diff --git a/packages/ui/registry/calendar/calendar.stories.tsx b/packages/ui/registry/calendar/calendar.stories.tsx
index a1075019..7de9fa27 100644
--- a/packages/ui/registry/calendar/calendar.stories.tsx
+++ b/packages/ui/registry/calendar/calendar.stories.tsx
@@ -23,14 +23,13 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
-/**
- * The default form of the calendar.
- */
-export const Default: Story = {}
+export const Default: Story = {
+ args: {
+ min: 1,
+ },
+}
/**
* Use the `multiple` mode to select multiple dates.
@@ -79,3 +78,5 @@ export const MultipleMonths: Story = {
showOutsideDays: false,
},
}
+
+export default meta
diff --git a/packages/ui/registry/card/card.stories.tsx b/packages/ui/registry/card/card.stories.tsx
index 60352180..f810b2aa 100644
--- a/packages/ui/registry/card/card.stories.tsx
+++ b/packages/ui/registry/card/card.stories.tsx
@@ -42,8 +42,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -72,4 +70,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/carousel/carousel.stories.tsx b/packages/ui/registry/carousel/carousel.stories.tsx
index 7aaaa35a..54f43df4 100644
--- a/packages/ui/registry/carousel/carousel.stories.tsx
+++ b/packages/ui/registry/carousel/carousel.stories.tsx
@@ -25,8 +25,6 @@ const meta: Meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -48,7 +46,7 @@ export const Default: Story = {
),
-}
+} satisfies Meta
/**
* Use the `basis` utility class to change the size of the carousel.
@@ -73,3 +71,5 @@ export const Size: Story = {
className: 'mx-12 w-full max-w-xs',
},
}
+
+export default meta
diff --git a/packages/ui/registry/checkbox/checkbox.stories.tsx b/packages/ui/registry/checkbox/checkbox.stories.tsx
index e29b2d44..f13021fc 100644
--- a/packages/ui/registry/checkbox/checkbox.stories.tsx
+++ b/packages/ui/registry/checkbox/checkbox.stories.tsx
@@ -20,8 +20,6 @@ const meta: Meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -50,3 +48,4 @@ export const Disabled: Story = {
disabled: true,
},
}
+export default meta
diff --git a/packages/ui/registry/collapsible/collapsible.stories.tsx b/packages/ui/registry/collapsible/collapsible.stories.tsx
index 99f965ea..89f614de 100644
--- a/packages/ui/registry/collapsible/collapsible.stories.tsx
+++ b/packages/ui/registry/collapsible/collapsible.stories.tsx
@@ -25,8 +25,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -45,7 +43,7 @@ export const Default: Story = {
),
-}
+} satisfies Meta
/**
* Use the `disabled` prop to disable the interaction.
@@ -55,3 +53,5 @@ export const Disabled: Story = {
disabled: true,
},
}
+
+export default meta
diff --git a/packages/ui/registry/command/command.stories.tsx b/packages/ui/registry/command/command.stories.tsx
index 9f223ce7..c8f55f7c 100644
--- a/packages/ui/registry/command/command.stories.tsx
+++ b/packages/ui/registry/command/command.stories.tsx
@@ -27,8 +27,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -54,4 +52,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/context/context-menu.stories.tsx b/packages/ui/registry/context/context-menu.stories.tsx
index 4149e38c..cb4b3f56 100644
--- a/packages/ui/registry/context/context-menu.stories.tsx
+++ b/packages/ui/registry/context/context-menu.stories.tsx
@@ -32,8 +32,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -53,7 +51,7 @@ export const Default: Story = {
),
-}
+} satisfies Meta
/**
* A context menu with shortcuts.
@@ -153,3 +151,5 @@ export const WithRadioGroup: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/dialog/dialog.stories.tsx b/packages/ui/registry/dialog/dialog.stories.tsx
index a429ef84..94cceb94 100644
--- a/packages/ui/registry/dialog/dialog.stories.tsx
+++ b/packages/ui/registry/dialog/dialog.stories.tsx
@@ -26,8 +26,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -56,4 +54,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/dropdown/dropdown-menu.stories.tsx b/packages/ui/registry/dropdown/dropdown-menu.stories.tsx
index 795ca7fa..345e5fb8 100644
--- a/packages/ui/registry/dropdown/dropdown-menu.stories.tsx
+++ b/packages/ui/registry/dropdown/dropdown-menu.stories.tsx
@@ -40,8 +40,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -61,7 +59,7 @@ export const Default: Story = {
),
-}
+} satisfies Meta
/**
* A dropdown menu with shortcuts.
@@ -165,3 +163,5 @@ export const WithCheckboxes: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/form/form.stories.tsx b/packages/ui/registry/form/form.stories.tsx
index 4ee81a4f..6b0f0101 100644
--- a/packages/ui/registry/form/form.stories.tsx
+++ b/packages/ui/registry/form/form.stories.tsx
@@ -27,8 +27,6 @@ const meta: Meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
const formSchema = z.object({
@@ -81,9 +79,8 @@ function ProfileForm(args: Story['args']) {
)
}
-/**
- * The default form of the form.
- */
export const Default: Story = {
render: args => ,
}
+
+export default meta
diff --git a/packages/ui/registry/hover-card/hover-card.stories.tsx b/packages/ui/registry/hover-card/hover-card.stories.tsx
index 7b1003b4..9c916e9b 100644
--- a/packages/ui/registry/hover-card/hover-card.stories.tsx
+++ b/packages/ui/registry/hover-card/hover-card.stories.tsx
@@ -21,8 +21,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -49,3 +47,5 @@ export const Instant: Story = {
closeDelay: 0,
},
}
+
+export default meta
diff --git a/packages/ui/registry/input/input.stories.tsx b/packages/ui/registry/input/input.stories.tsx
index 9f6fe0e1..66b49c4c 100644
--- a/packages/ui/registry/input/input.stories.tsx
+++ b/packages/ui/registry/input/input.stories.tsx
@@ -22,14 +22,11 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
-/**
- * The default form of the input field.
- */
-export const Default: Story = {}
+export const Default: Story = {
+ args: { },
+}
/**
* Use the `disabled` prop to make the input non-interactive and appears faded,
@@ -83,3 +80,5 @@ export const WithButton: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/label/label.stories.tsx b/packages/ui/registry/label/label.stories.tsx
index 31db41cd..4e23ca05 100644
--- a/packages/ui/registry/label/label.stories.tsx
+++ b/packages/ui/registry/label/label.stories.tsx
@@ -22,11 +22,11 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
* The default form of the label.
*/
export const Default: Story = {}
+
+export default meta
diff --git a/packages/ui/registry/menu/menubar.stories.tsx b/packages/ui/registry/menu/menubar.stories.tsx
index fd6f1894..4971f564 100644
--- a/packages/ui/registry/menu/menubar.stories.tsx
+++ b/packages/ui/registry/menu/menubar.stories.tsx
@@ -33,8 +33,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -60,7 +58,7 @@ export const Default: Story = {
),
-}
+} satisfies Meta
/**
* A menubar with a submenu.
@@ -127,3 +125,5 @@ export const WithCheckboxItems: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/navigation/navigation.stories.tsx b/packages/ui/registry/navigation/navigation.stories.tsx
index c8af9bbb..b6de8153 100644
--- a/packages/ui/registry/navigation/navigation.stories.tsx
+++ b/packages/ui/registry/navigation/navigation.stories.tsx
@@ -24,8 +24,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -78,4 +76,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/popover/popover.stories.tsx b/packages/ui/registry/popover/popover.stories.tsx
index 05fcd9be..fe7fbc71 100644
--- a/packages/ui/registry/popover/popover.stories.tsx
+++ b/packages/ui/registry/popover/popover.stories.tsx
@@ -20,8 +20,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -35,3 +33,5 @@ export const Default: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/progress/progress.stories.tsx b/packages/ui/registry/progress/progress.stories.tsx
index 30e741e0..75d2514b 100644
--- a/packages/ui/registry/progress/progress.stories.tsx
+++ b/packages/ui/registry/progress/progress.stories.tsx
@@ -19,14 +19,11 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
-/**
- * The default form of the progress.
- */
-export const Default: Story = {}
+export const Default: Story = {
+ args: {},
+}
/**
* When the progress is indeterminate.
@@ -45,3 +42,5 @@ export const Completed: Story = {
value: 100,
},
}
+
+export default meta
diff --git a/packages/ui/registry/radio-group/radio-group.stories.tsx b/packages/ui/registry/radio-group/radio-group.stories.tsx
index 66e8fda9..1828e0b0 100644
--- a/packages/ui/registry/radio-group/radio-group.stories.tsx
+++ b/packages/ui/registry/radio-group/radio-group.stories.tsx
@@ -20,8 +20,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -38,4 +36,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/scroll-area/scroll-area.stories.tsx b/packages/ui/registry/scroll-area/scroll-area.stories.tsx
index 453236d8..b1a76f01 100644
--- a/packages/ui/registry/scroll-area/scroll-area.stories.tsx
+++ b/packages/ui/registry/scroll-area/scroll-area.stories.tsx
@@ -25,14 +25,13 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
-/**
- * The default form of the scroll area.
- */
-export const Default: Story = {}
+export const Default: Story = {
+ args: {
+ type: 'always',
+ },
+}
/**
* Use the `type` prop with `always` to always show the scroll area.
@@ -60,3 +59,5 @@ export const Scroll: Story = {
type: 'scroll',
},
}
+
+export default meta
diff --git a/packages/ui/registry/select/select.stories.tsx b/packages/ui/registry/select/select.stories.tsx
index d0245132..7470b323 100644
--- a/packages/ui/registry/select/select.stories.tsx
+++ b/packages/ui/registry/select/select.stories.tsx
@@ -25,8 +25,6 @@ const meta: Meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -69,4 +67,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/separator/separator.stories.tsx b/packages/ui/registry/separator/separator.stories.tsx
index 0f5e9225..d737dbdc 100644
--- a/packages/ui/registry/separator/separator.stories.tsx
+++ b/packages/ui/registry/separator/separator.stories.tsx
@@ -15,10 +15,18 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
+export const Default: Story = {
+ render: () => (
+
+ ),
+}
+
/**
* The default form of the separator.
*/
@@ -44,3 +52,5 @@ export const Vertical: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/sheet/sheet.stories.tsx b/packages/ui/registry/sheet/sheet.stories.tsx
index 31d74226..938f5416 100644
--- a/packages/ui/registry/sheet/sheet.stories.tsx
+++ b/packages/ui/registry/sheet/sheet.stories.tsx
@@ -36,8 +36,6 @@ const meta: Meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -66,4 +64,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/skeleton/skeleton.stories.tsx b/packages/ui/registry/skeleton/skeleton.stories.tsx
index 3f91c252..8b532dd7 100644
--- a/packages/ui/registry/skeleton/skeleton.stories.tsx
+++ b/packages/ui/registry/skeleton/skeleton.stories.tsx
@@ -16,8 +16,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -34,3 +32,5 @@ export const Default: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/slider/slider.stories.tsx b/packages/ui/registry/slider/slider.stories.tsx
index 497ca03a..7391ae5c 100644
--- a/packages/ui/registry/slider/slider.stories.tsx
+++ b/packages/ui/registry/slider/slider.stories.tsx
@@ -19,14 +19,11 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
-/**
- * The default form of the slider.
- */
-export const Default: Story = {}
+export const Default: Story = {
+ args: {},
+}
/**
* Use the `inverted` prop to have the slider fill from right to left.
@@ -45,3 +42,5 @@ export const Disabled: Story = {
disabled: true,
},
}
+
+export default meta
diff --git a/packages/ui/registry/sonner/sonner.stories.tsx b/packages/ui/registry/sonner/sonner.stories.tsx
index 0d67a2d5..b33d6a88 100644
--- a/packages/ui/registry/sonner/sonner.stories.tsx
+++ b/packages/ui/registry/sonner/sonner.stories.tsx
@@ -21,8 +21,6 @@ const meta: Meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -47,3 +45,5 @@ export const Default: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/switch/switch.stories.tsx b/packages/ui/registry/switch/switch.stories.tsx
index 63bf5a33..e4880bcf 100644
--- a/packages/ui/registry/switch/switch.stories.tsx
+++ b/packages/ui/registry/switch/switch.stories.tsx
@@ -16,8 +16,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -54,3 +52,5 @@ export const Disabled: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/table/table.stories.tsx b/packages/ui/registry/table/table.stories.tsx
index f5f7adc8..9c18757d 100644
--- a/packages/ui/registry/table/table.stories.tsx
+++ b/packages/ui/registry/table/table.stories.tsx
@@ -50,8 +50,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -81,4 +79,6 @@ export const Default: Story = {
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/tabs/tabs.stories.tsx b/packages/ui/registry/tabs/tabs.stories.tsx
index 42055fd5..7172900e 100644
--- a/packages/ui/registry/tabs/tabs.stories.tsx
+++ b/packages/ui/registry/tabs/tabs.stories.tsx
@@ -26,8 +26,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -46,4 +44,6 @@ export const Default: Story = {
Change your password here.
),
-}
+} satisfies Meta
+
+export default meta
diff --git a/packages/ui/registry/textarea/textarea.stories.tsx b/packages/ui/registry/textarea/textarea.stories.tsx
index ca4f34a7..b6444177 100644
--- a/packages/ui/registry/textarea/textarea.stories.tsx
+++ b/packages/ui/registry/textarea/textarea.stories.tsx
@@ -19,14 +19,17 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
-/**
- * The default form of the textarea.
- */
-export const Default: Story = {}
+export const Default: Story = {
+ args: {},
+ render: args => (
+
+
+
+
+ ),
+}
/**
* Use the `disabled` prop to disable the textarea.
@@ -89,3 +92,5 @@ export const WithButton: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/toast/toast.stories.tsx b/packages/ui/registry/toast/toast.stories.tsx
index 49ec964b..abc9a736 100644
--- a/packages/ui/registry/toast/toast.stories.tsx
+++ b/packages/ui/registry/toast/toast.stories.tsx
@@ -25,8 +25,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = Omit, 'args'> & {
args: Omit
}
@@ -99,3 +97,5 @@ export const Destructive: Story = {
},
render: args => ,
}
+
+export default meta
diff --git a/packages/ui/registry/toggle-group/toggle-group.stories.tsx b/packages/ui/registry/toggle-group/toggle-group.stories.tsx
index 14f3f164..26b9f61c 100644
--- a/packages/ui/registry/toggle-group/toggle-group.stories.tsx
+++ b/packages/ui/registry/toggle-group/toggle-group.stories.tsx
@@ -31,8 +31,6 @@ const meta = {
},
} satisfies Meta
-export default meta
-
type Story = StoryObj
/**
@@ -167,3 +165,5 @@ export const Disabled: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/registry/toggle/toggle.stories.tsx b/packages/ui/registry/toggle/toggle.stories.tsx
index fa88c30b..d47a0b38 100644
--- a/packages/ui/registry/toggle/toggle.stories.tsx
+++ b/packages/ui/registry/toggle/toggle.stories.tsx
@@ -24,14 +24,12 @@ const meta: Meta = {
layout: 'centered',
},
}
-export default meta
type Story = StoryObj
-/**
- * The default form of the toggle.
- */
-export const Default: Story = {}
+export const Default: Story = {
+ args: {},
+}
/**
* Use the `outline` variant for a distinct outline, emphasizing the boundary
@@ -86,3 +84,5 @@ export const Disabled: Story = {
disabled: true,
},
}
+
+export default meta
diff --git a/packages/ui/registry/tooltip/tooltip.stories.tsx b/packages/ui/registry/tooltip/tooltip.stories.tsx
index fdbf33bf..74b1a396 100644
--- a/packages/ui/registry/tooltip/tooltip.stories.tsx
+++ b/packages/ui/registry/tooltip/tooltip.stories.tsx
@@ -1,6 +1,5 @@
import type { Meta, StoryObj } from '@storybook/react'
import { Plus } from 'lucide-react'
-
import React from 'react'
import {
Tooltip,
@@ -37,10 +36,6 @@ const meta: Meta = {
},
} satisfies Meta
-export default meta
-
-type Story = StoryObj
-
/**
* The default form of the tooltip.
*/
@@ -76,7 +71,9 @@ export const Bottom: Story = {
),
-}
+} satisfies Meta
+
+type Story = StoryObj
/**
* Use the `left` side to display the tooltip to the left of the element.
@@ -117,3 +114,5 @@ export const Right: Story = {
),
}
+
+export default meta
diff --git a/packages/ui/setupTests.ts b/packages/ui/setupTests.ts
new file mode 100644
index 00000000..6539eb8c
--- /dev/null
+++ b/packages/ui/setupTests.ts
@@ -0,0 +1,4 @@
+import * as matchers from 'vitest-axe/matchers'
+import { expect } from 'vitest'
+
+expect.extend(matchers)
diff --git a/packages/ui/stories/Colors.mdx b/packages/ui/stories/Colors.mdx
deleted file mode 100644
index edeb3a8d..00000000
--- a/packages/ui/stories/Colors.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Meta, ColorPalette, ColorItem } from '@storybook/blocks';
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/ui/ui.d.ts b/packages/ui/ui.d.ts
index c3a3d2be..14e3c71c 100644
--- a/packages/ui/ui.d.ts
+++ b/packages/ui/ui.d.ts
@@ -1 +1,8 @@
+import 'vitest'
+import type { AxeMatchers } from 'vitest-axe/matchers'
+
+declare module 'vitest' {
+ export interface Assertion extends AxeMatchers {}
+ export interface AsymmetricMatchersContaining extends AxeMatchers {}
+}
declare module '*.mdx'
diff --git a/packages/ui/vitest.config.js b/packages/ui/vitest.config.js
index be1d98d6..30b0aeef 100644
--- a/packages/ui/vitest.config.js
+++ b/packages/ui/vitest.config.js
@@ -1,7 +1,21 @@
+import { resolve } from 'node:path'
import { defineConfig, mergeConfig } from 'vitest/config'
import { getVitestConfig } from '@templ/config'
export default mergeConfig(
getVitestConfig(),
- defineConfig({}),
+ defineConfig({
+ test: {
+ alias: {
+ '@': resolve('./'),
+ },
+ environment: 'happy-dom',
+ exclude: [
+ 'registry/**/*.stories.{jsx,tsx}',
+ ],
+ include: ['registry/**/*.test.{jsx,tsx}'],
+ setupFiles: ['./setupTests.ts'],
+ threads: false,
+ },
+ }),
)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b0bb1f01..21197ed5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,6 +17,9 @@ importers:
'@changesets/cli':
specifier: ^2.27.1
version: 2.27.1
+ '@storybook/blocks':
+ specifier: ^7.6.17
+ version: 7.6.17(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0)
'@vitest/coverage-v8':
specifier: ^1.3.1
version: 1.3.1(vitest@1.3.1)
@@ -27,8 +30,8 @@ importers:
specifier: ^9.0.11
version: 9.0.11
knip:
- specifier: ^5.0.2
- version: 5.0.2(@types/node@20.11.24)(typescript@5.3.3)
+ specifier: ^5.0.3
+ version: 5.0.3(@types/node@20.11.24)(typescript@5.3.3)
pnpm:
specifier: ^8.15.4
version: 8.15.4
@@ -40,7 +43,7 @@ importers:
version: 1.12.4
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
apps/desktop:
devDependencies:
@@ -64,7 +67,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
apps/docs:
devDependencies:
@@ -88,7 +91,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
apps/web:
dependencies:
@@ -163,8 +166,8 @@ importers:
specifier: ^9.0.0
version: 9.0.0
recast:
- specifier: ^0.23.4
- version: 0.23.4
+ specifier: ^0.23.5
+ version: 0.23.5
replace-string:
specifier: ^4.0.0
version: 4.0.0
@@ -195,7 +198,7 @@ importers:
version: 20.11.24
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
generator/templates/basic-ts:
devDependencies:
@@ -219,7 +222,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
packages/api:
dependencies:
@@ -228,16 +231,16 @@ importers:
version: 1.8.2
'@hono/zod-openapi':
specifier: ^0.9.6
- version: 0.9.6(hono@4.0.8)(zod@3.22.4)
+ version: 0.9.6(hono@4.0.9)(zod@3.22.4)
'@scalar/hono-api-reference':
- specifier: ^0.3.64
- version: 0.3.64(hono@4.0.8)(postcss@8.4.35)(typescript@5.3.3)(unified@11.0.4)(vue@3.4.15)(yjs@13.6.11)
+ specifier: ^0.3.66
+ version: 0.3.66(hono@4.0.9)(postcss@8.4.35)(typescript@5.3.3)(unified@11.0.4)(vue@3.4.15)(yjs@13.6.11)
consola:
specifier: ^3.2.3
version: 3.2.3
hono:
- specifier: ^4.0.8
- version: 4.0.8
+ specifier: ^4.0.9
+ version: 4.0.9
devDependencies:
'@templ/config':
specifier: workspace:*
@@ -265,7 +268,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
packages/cli:
dependencies:
@@ -339,7 +342,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
packages/core:
devDependencies:
@@ -363,7 +366,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
packages/flags:
dependencies:
@@ -391,7 +394,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
packages/storage:
dependencies:
@@ -425,7 +428,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
packages/tsconfig: {}
@@ -549,8 +552,8 @@ importers:
specifier: ^8.10.0
version: 8.10.0(date-fns@3.3.1)(react@18.2.0)
react-hook-form:
- specifier: ^7.50.1
- version: 7.50.1(react@18.2.0)
+ specifier: ^7.51.0
+ version: 7.51.0(react@18.2.0)
sonner:
specifier: ^1.4.3
version: 1.4.3(react-dom@18.2.0)(react@18.2.0)
@@ -569,22 +572,34 @@ importers:
version: 2.0.2(@storybook/blocks@7.6.17)(@storybook/components@7.6.17)(@storybook/core-events@7.6.17)(@storybook/manager-api@7.6.17)(@storybook/preview-api@7.6.17)(@storybook/theming@7.6.17)(@storybook/types@7.6.17)(react-dom@18.2.0)(react@18.2.0)
'@hookform/resolvers':
specifier: ^3.3.4
- version: 3.3.4(react-hook-form@7.50.1)
+ version: 3.3.4(react-hook-form@7.51.0)
+ '@storybook/addon-a11y':
+ specifier: ^7.6.17
+ version: 7.6.17
'@storybook/addon-actions':
specifier: ^7.6.17
version: 7.6.17
+ '@storybook/addon-coverage':
+ specifier: ^1.0.1
+ version: 1.0.1
'@storybook/addon-essentials':
specifier: ^7.6.17
version: 7.6.17(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0)
'@storybook/addon-highlight':
specifier: ^7.6.17
version: 7.6.17
+ '@storybook/addon-interactions':
+ specifier: ^7.6.17
+ version: 7.6.17
'@storybook/addon-links':
specifier: ^7.6.17
version: 7.6.17(react@18.2.0)
'@storybook/addon-storysource':
specifier: ^7.6.17
version: 7.6.17
+ '@storybook/addon-themes':
+ specifier: ^7.6.17
+ version: 7.6.17
'@storybook/blocks':
specifier: ^7.6.17
version: 7.6.17(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0)
@@ -603,6 +618,9 @@ importers:
'@storybook/test-runner':
specifier: ^0.16.0
version: 0.16.0(@types/node@20.11.24)
+ '@storybook/testing-library':
+ specifier: ^0.2.2
+ version: 0.2.2
'@storybook/theming':
specifier: ^7.6.17
version: 7.6.17(react-dom@18.2.0)(react@18.2.0)
@@ -612,12 +630,18 @@ importers:
'@templ/tsconfig':
specifier: workspace:*
version: link:../tsconfig
+ '@testing-library/react':
+ specifier: ^14.2.1
+ version: 14.2.1(react-dom@18.2.0)(react@18.2.0)
'@types/node':
specifier: ^20.11.24
version: 20.11.24
'@types/react':
specifier: ^18.2.61
version: 18.2.61
+ concurrently:
+ specifier: ^8.2.2
+ version: 8.2.2
date-fns:
specifier: ^3.3.1
version: 3.3.1
@@ -627,12 +651,15 @@ importers:
globby:
specifier: ^14.0.1
version: 14.0.1
+ happy-dom:
+ specifier: ^13.6.2
+ version: 13.6.2
+ http-server:
+ specifier: ^14.1.1
+ version: 14.1.1
lucide-react:
specifier: 0.344.0
version: 0.344.0(react@18.2.0)
- playwright:
- specifier: ^1.42.0
- version: 1.42.0
storybook:
specifier: ^7.6.17
version: 7.6.17
@@ -640,8 +667,11 @@ importers:
specifier: ^0.17.3
version: 0.17.3(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0)
storybook-addon-pseudo-states:
- specifier: ^2.1.2
- version: 2.1.2(@storybook/components@7.6.17)(@storybook/core-events@7.6.17)(@storybook/manager-api@7.6.17)(@storybook/preview-api@7.6.17)(@storybook/theming@7.6.17)(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^2.2.0
+ version: 2.2.0(@storybook/components@7.6.17)(@storybook/core-events@7.6.17)(@storybook/manager-api@7.6.17)(@storybook/preview-api@7.6.17)(@storybook/theming@7.6.17)(react-dom@18.2.0)(react@18.2.0)
+ storybook-addon-rtl:
+ specifier: ^1.0.0
+ version: 1.0.0
storybook-dark-mode:
specifier: ^3.0.3
version: 3.0.3(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0)
@@ -656,7 +686,13 @@ importers:
version: 5.1.4(@types/node@20.11.24)
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
+ vitest-axe:
+ specifier: ^0.1.0
+ version: 0.1.0(vitest@1.3.1)
+ wait-on:
+ specifier: ^7.2.0
+ version: 7.2.0
zod:
specifier: ^3.22.4
version: 3.22.4
@@ -690,7 +726,7 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.3.1
- version: 1.3.1(@types/node@20.11.24)
+ version: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
scripts:
dependencies:
@@ -3284,7 +3320,7 @@ packages:
engines: {node: '>=18.14.1'}
dev: false
- /@hono/zod-openapi@0.9.6(hono@4.0.8)(zod@3.22.4):
+ /@hono/zod-openapi@0.9.6(hono@4.0.9)(zod@3.22.4):
resolution: {integrity: sha512-MLF8xpd4fEwbEaylFqAt1qci4wOTXu3oq3BKb01trccapYfodP50VCO0YDNBQTyMT/Iapq6GMO4+RAIFBgG5WQ==}
engines: {node: '>=16.0.0'}
peerDependencies:
@@ -3292,27 +3328,27 @@ packages:
zod: 3.*
dependencies:
'@asteasolutions/zod-to-openapi': 5.5.0(zod@3.22.4)
- '@hono/zod-validator': 0.1.11(hono@4.0.8)(zod@3.22.4)
- hono: 4.0.8
+ '@hono/zod-validator': 0.1.11(hono@4.0.9)(zod@3.22.4)
+ hono: 4.0.9
zod: 3.22.4
dev: false
- /@hono/zod-validator@0.1.11(hono@4.0.8)(zod@3.22.4):
+ /@hono/zod-validator@0.1.11(hono@4.0.9)(zod@3.22.4):
resolution: {integrity: sha512-PQXeHUP0+36qpRt8yfeD7N2jbK3ETlGvSN6dMof/HwUC/APRokQRjpXZm4rrlG71Ft0aWE01+Bm4XejqPie5Uw==}
peerDependencies:
hono: '>=3.9.0'
zod: ^3.19.1
dependencies:
- hono: 4.0.8
+ hono: 4.0.9
zod: 3.22.4
dev: false
- /@hookform/resolvers@3.3.4(react-hook-form@7.50.1):
+ /@hookform/resolvers@3.3.4(react-hook-form@7.51.0):
resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==}
peerDependencies:
react-hook-form: ^7.0.0
dependencies:
- react-hook-form: 7.50.1(react@18.2.0)
+ react-hook-form: 7.51.0(react@18.2.0)
dev: true
/@humanwhocodes/config-array@0.11.14:
@@ -3575,6 +3611,17 @@ packages:
- supports-color
dev: true
+ /@jest/types@27.5.1:
+ resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 20.11.24
+ '@types/yargs': 16.0.9
+ chalk: 4.1.2
+ dev: true
+
/@jest/types@29.6.3:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -3636,6 +3683,18 @@ packages:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
+ /@jsdevtools/coverage-istanbul-loader@3.0.5:
+ resolution: {integrity: sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==}
+ dependencies:
+ convert-source-map: 1.9.0
+ istanbul-lib-instrument: 4.0.3
+ loader-utils: 2.0.4
+ merge-source-map: 1.1.0
+ schema-utils: 2.7.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@jsdevtools/ono@7.1.3:
resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
dev: false
@@ -6032,14 +6091,14 @@ packages:
requiresBuild: true
optional: true
- /@scalar/api-client@0.12.13(typescript@5.3.3)(vue@3.4.15)(yjs@13.6.11):
- resolution: {integrity: sha512-plOs+WInn57fhAVDKVJdtgHPjFyqDx9rmnfaKcy7w7fuJAyeH5t4LRwxsKkTKzHRal8MFK9T4zPsp99suYJ1Gg==}
+ /@scalar/api-client@0.12.14(typescript@5.3.3)(vue@3.4.15)(yjs@13.6.11):
+ resolution: {integrity: sha512-0YyV6IX9/3QTCHLawTD0Avakvf76qFnoITVjXX8LWAxu9KuuLTzvC65VL7KKQ/NejqNuA2HlhO91iWfy4Ju4TA==}
engines: {node: '>=18'}
peerDependencies:
vue: ^3.3.0
dependencies:
'@headlessui/vue': 1.7.17(vue@3.4.15)
- '@scalar/components': 0.4.1(typescript@5.3.3)
+ '@scalar/components': 0.4.2(typescript@5.3.3)
'@scalar/themes': 0.5.10(vue@3.4.15)
'@scalar/use-codemirror': 0.8.8(vue@3.4.15)(yjs@13.6.11)
'@scalar/use-modal': 0.2.8(@headlessui/vue@1.7.17)(vue@3.4.15)
@@ -6057,8 +6116,8 @@ packages:
- yjs
dev: false
- /@scalar/api-reference@1.17.13(postcss@8.4.35)(typescript@5.3.3)(unified@11.0.4)(vue@3.4.15)(yjs@13.6.11):
- resolution: {integrity: sha512-o0DAW4I20QwGnyKVCOb/nwEP5w2n1B8xMKSBYuyyrL/cqBrvaSzvsMiAlgsSP0AqmKiIJGfq/sCpH02Bd3sQMw==}
+ /@scalar/api-reference@1.17.15(postcss@8.4.35)(typescript@5.3.3)(unified@11.0.4)(vue@3.4.15)(yjs@13.6.11):
+ resolution: {integrity: sha512-Jtr1Pye+DLQ7ng3Rv3/2WrEvHEGqGCqmk5/IURhAwI6oam5Sd/4t9Qk0ActeK8ufnjhXVbWj88qCmlBSBPtkGg==}
engines: {node: '>=18'}
peerDependencies:
unified: ^11.0.0
@@ -6066,11 +6125,11 @@ packages:
dependencies:
'@floating-ui/vue': 1.0.5(vue@3.4.15)
'@headlessui/vue': 1.7.17(vue@3.4.15)
- '@scalar/api-client': 0.12.13(typescript@5.3.3)(vue@3.4.15)(yjs@13.6.11)
- '@scalar/components': 0.4.1(typescript@5.3.3)
+ '@scalar/api-client': 0.12.14(typescript@5.3.3)(vue@3.4.15)(yjs@13.6.11)
+ '@scalar/components': 0.4.2(typescript@5.3.3)
'@scalar/snippetz': 0.1.5
- '@scalar/swagger-editor': 0.10.14(typescript@5.3.3)(vue@3.4.15)(yjs@13.6.11)
- '@scalar/swagger-parser': 0.5.19(openapi-types@12.1.3)
+ '@scalar/swagger-editor': 0.10.15(typescript@5.3.3)(vue@3.4.15)(yjs@13.6.11)
+ '@scalar/swagger-parser': 0.5.20(openapi-types@12.1.3)
'@scalar/themes': 0.5.10(vue@3.4.15)
'@scalar/use-modal': 0.2.8(@headlessui/vue@1.7.17)(vue@3.4.15)
'@scalar/use-tooltip': 0.5.11(vue@3.4.15)
@@ -6108,8 +6167,8 @@ packages:
- yjs
dev: false
- /@scalar/components@0.4.1(typescript@5.3.3):
- resolution: {integrity: sha512-VgMBVvoS0427EDIexFaHzrS4lA0RKCzRMGFlyElOXpnVCdqS6Ujed6X9ZE1IH4DiC74t9hN+CQPt9X6KKxU2oA==}
+ /@scalar/components@0.4.2(typescript@5.3.3):
+ resolution: {integrity: sha512-GIeqj0m1vXuALf/mhKIIeGiqnWv7VVFKrt2Wfl6hBosrXJ02noTivAHDsHhqSIks5p6WCO0nz5jnI4dqMW+LDw==}
engines: {node: '>=18'}
dependencies:
'@headlessui/vue': 1.7.17(vue@3.4.15)
@@ -6126,14 +6185,14 @@ packages:
- typescript
dev: false
- /@scalar/hono-api-reference@0.3.64(hono@4.0.8)(postcss@8.4.35)(typescript@5.3.3)(unified@11.0.4)(vue@3.4.15)(yjs@13.6.11):
- resolution: {integrity: sha512-NCFAsyJSokpVDJMnOKk6xbTEKDwuo68gYyBOSUITQqnxkhlrfmqFRL5598j33VritJXC6vwBwoGDVB3WGGsGFw==}
+ /@scalar/hono-api-reference@0.3.66(hono@4.0.9)(postcss@8.4.35)(typescript@5.3.3)(unified@11.0.4)(vue@3.4.15)(yjs@13.6.11):
+ resolution: {integrity: sha512-08uRIWoaVyfLRXgl7GCnmglUwlP9AF/CtoT4+3pQEhhUHzl/3rt6tjcHBau38742JyUEgMV25IHmqG7daKiPwQ==}
engines: {node: '>=18'}
peerDependencies:
hono: ^3.0.0 || ^4.0.0
dependencies:
- '@scalar/api-reference': 1.17.13(postcss@8.4.35)(typescript@5.3.3)(unified@11.0.4)(vue@3.4.15)(yjs@13.6.11)
- hono: 4.0.8
+ '@scalar/api-reference': 1.17.15(postcss@8.4.35)(typescript@5.3.3)(unified@11.0.4)(vue@3.4.15)(yjs@13.6.11)
+ hono: 4.0.9
transitivePeerDependencies:
- '@vue/composition-api'
- debug
@@ -6178,13 +6237,13 @@ packages:
'@scalar/snippetz-plugin-node-undici': 0.1.5
dev: false
- /@scalar/swagger-editor@0.10.14(typescript@5.3.3)(vue@3.4.15)(yjs@13.6.11):
- resolution: {integrity: sha512-NUPc/qNjCQtn7H6lc2WGDdbBucrbWPTQdubr926dUtHtiRJeS4fEkPf6HMelC7ym9sSvMsV0OuDUXw11C4NEcA==}
+ /@scalar/swagger-editor@0.10.15(typescript@5.3.3)(vue@3.4.15)(yjs@13.6.11):
+ resolution: {integrity: sha512-bVgo+n0ZHF+8bxs6kYkom2GBfxcapBX+XSEHLJtztrUVnQgG0xN6PuUIDl01bMiBwkQW1gAXAB6rPJrAWU8LEA==}
engines: {node: '>=18'}
peerDependencies:
vue: ^3.3.0
dependencies:
- '@scalar/components': 0.4.1(typescript@5.3.3)
+ '@scalar/components': 0.4.2(typescript@5.3.3)
'@scalar/themes': 0.5.10(vue@3.4.15)
'@scalar/use-codemirror': 0.8.8(vue@3.4.15)(yjs@13.6.11)
'@vueuse/core': 10.7.2(vue@3.4.15)
@@ -6195,8 +6254,8 @@ packages:
- yjs
dev: false
- /@scalar/swagger-parser@0.5.19(openapi-types@12.1.3):
- resolution: {integrity: sha512-HO9XN5F90nsZ7L3h+9eirwoTrdFckxTnkrr2aT4WL1z+rYyLDJYAuVtuPfkfsaxbdgDkhkrSkNs0mpIrA5wDDg==}
+ /@scalar/swagger-parser@0.5.20(openapi-types@12.1.3):
+ resolution: {integrity: sha512-EnmjfbLoFcj0aEG0gHUrg1YtqJMDM+QfhetdfmbHFM17ErlXjLpW2hyP2DUx3K5zNNi/EMl+5VXmzzimcl0OXA==}
engines: {node: '>=18'}
dependencies:
'@apidevtools/swagger-parser': 10.1.0(openapi-types@12.1.3)
@@ -6352,6 +6411,13 @@ packages:
p-map: 4.0.0
dev: true
+ /@storybook/addon-a11y@7.6.17:
+ resolution: {integrity: sha512-UYHJAKQpJMCu4X4O/325UqozYrkhPn2VyQdwPgC+uiOKZvrtni4uRbpOspeyjC0wXH1tDbY8WZvxwvwQryYkpA==}
+ dependencies:
+ '@storybook/addon-highlight': 7.6.17
+ axe-core: 4.8.4
+ dev: true
+
/@storybook/addon-actions@7.6.17:
resolution: {integrity: sha512-TBphs4v6LRfyTpFo/WINF0TkMaE3rrNog7wW5mbz6n0j8o53kDN4o9ZEcygSL5zQX43CAaghQTeDCss7ueG7ZQ==}
dependencies:
@@ -6386,6 +6452,22 @@ packages:
- supports-color
dev: true
+ /@storybook/addon-coverage@1.0.1:
+ resolution: {integrity: sha512-jGDYPBbh3+LXMDw0Nmw+fUEDH3kuHvHSOjE1fqi4ac00CnwHnyD5PD6RFSpVxR4Fw/tCDPmKEubbOzQCSZGyJg==}
+ dependencies:
+ '@istanbuljs/load-nyc-config': 1.1.0
+ '@jsdevtools/coverage-istanbul-loader': 3.0.5
+ '@types/istanbul-lib-coverage': 2.0.6
+ convert-source-map: 2.0.0
+ espree: 9.6.1
+ istanbul-lib-instrument: 6.0.2
+ source-map: 0.7.4
+ test-exclude: 6.0.0
+ vite-plugin-istanbul: 3.0.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@storybook/addon-docs@7.6.17(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-FKa4Mdy7nhgvEVZJHpMkHriDzpVHbohn87zv9NCL+Ctjs1iAmzGwxEm0culszyDS1HN2ToVoY0h8CSi2RSSZqA==}
peerDependencies:
@@ -6455,6 +6537,16 @@ packages:
'@storybook/global': 5.0.0
dev: true
+ /@storybook/addon-interactions@7.6.17:
+ resolution: {integrity: sha512-6zlX+RDQ1PlA6fp7C+hun8t7h2RXfCGs5dGrhEenp2lqnR/rYuUJRC0tmKpkZBb8kZVcbSChzkB/JYkBjBCzpQ==}
+ dependencies:
+ '@storybook/global': 5.0.0
+ '@storybook/types': 7.6.17
+ jest-mock: 27.5.1
+ polished: 4.3.1
+ ts-dedent: 2.2.0
+ dev: true
+
/@storybook/addon-links@7.6.17(react@18.2.0):
resolution: {integrity: sha512-iFUwKObRn0EKI0zMETsil2p9a/81rCuSMEWECsi+khkCAs1FUnD2cT6Ag5ydcNcBXsdtdfDJdtXQrkw+TSoStQ==}
peerDependencies:
@@ -6473,7 +6565,7 @@ packages:
resolution: {integrity: sha512-O5vnHZNkduvZ95jf1UssbOl6ivIxzl5tv+4EpScPYId7w700bxWsJH+QX7ip6KlrCf2o3iUhmPe8bm05ghG2KA==}
dependencies:
'@storybook/global': 5.0.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
dev: true
/@storybook/addon-outline@7.6.17:
@@ -6491,6 +6583,12 @@ packages:
tiny-invariant: 1.3.1
dev: true
+ /@storybook/addon-themes@7.6.17:
+ resolution: {integrity: sha512-i/dI3GKlJmQv0Di9HM3fKJvFIab55kvva0vXCGBkqSw3wYoZuq++npkWeDnjjZUvggV12H2RTdGqYwMCXB/GHg==}
+ dependencies:
+ ts-dedent: 2.2.0
+ dev: true
+
/@storybook/addon-toolbars@7.6.17:
resolution: {integrity: sha512-UMrchbUHiyWrh6WuGnpy34Jqzkx/63B+MSgb3CW7YsQaXz64kE0Rol0TNSznnB+mYXplcqH+ndI4r4kFsmgwDg==}
dev: true
@@ -6620,7 +6718,7 @@ packages:
'@storybook/global': 5.0.0
qs: 6.11.2
telejson: 7.2.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
dev: true
/@storybook/cli@7.6.17:
@@ -6696,7 +6794,7 @@ packages:
jscodeshift: 0.15.1(@babel/preset-env@7.23.9)
lodash: 4.17.21
prettier: 2.8.8
- recast: 0.23.4
+ recast: 0.23.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -6806,7 +6904,7 @@ packages:
read-pkg-up: 7.0.1
semver: 7.6.0
telejson: 7.2.0
- tiny-invariant: 1.3.1
+ tiny-invariant: 1.3.3
ts-dedent: 2.2.0
util: 0.12.5
util-deprecate: 1.0.2
@@ -6838,7 +6936,7 @@ packages:
'@storybook/csf': 0.1.2
'@storybook/types': 7.6.17
fs-extra: 11.2.0
- recast: 0.23.4
+ recast: 0.23.5
ts-dedent: 2.2.0
transitivePeerDependencies:
- supports-color
@@ -7074,7 +7172,7 @@ packages:
jest-serializer-html: 7.1.0
jest-watch-typeahead: 2.2.2(jest@29.7.0)
node-fetch: 2.7.0
- playwright: 1.42.0
+ playwright: 1.42.1
read-pkg-up: 7.0.1
tempy: 1.0.1
ts-dedent: 2.2.0
@@ -7089,6 +7187,14 @@ packages:
- ts-node
dev: true
+ /@storybook/testing-library@0.2.2:
+ resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==}
+ dependencies:
+ '@testing-library/dom': 9.3.4
+ '@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4)
+ ts-dedent: 2.2.0
+ dev: true
+
/@storybook/theming@7.6.17(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-ZbaBt3KAbmBtfjNqgMY7wPMBshhSJlhodyMNQypv+95xLD/R+Az6aBYbpVAOygLaUQaQk4ar7H/Ww6lFIoiFbA==}
peerDependencies:
@@ -7338,6 +7444,43 @@ packages:
vue: 3.4.15(typescript@5.3.3)
dev: false
+ /@testing-library/dom@9.3.4:
+ resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ '@babel/runtime': 7.23.9
+ '@types/aria-query': 5.0.4
+ aria-query: 5.1.3
+ chalk: 4.1.2
+ dom-accessibility-api: 0.5.16
+ lz-string: 1.5.0
+ pretty-format: 27.5.1
+ dev: true
+
+ /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@testing-library/dom': 9.3.4
+ '@types/react-dom': 18.2.19
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
+ /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4):
+ resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==}
+ engines: {node: '>=12', npm: '>=6'}
+ peerDependencies:
+ '@testing-library/dom': '>=7.21.4'
+ dependencies:
+ '@testing-library/dom': 9.3.4
+ dev: true
+
/@tufjs/canonical-json@2.0.0:
resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -7351,6 +7494,10 @@ packages:
minimatch: 9.0.3
dev: true
+ /@types/aria-query@5.0.4:
+ resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
+ dev: true
+
/@types/autocannon@7.12.5:
resolution: {integrity: sha512-IGxnlq0ip0DTDOpShCDOjsBW+lclASdli1Jep+YSEOeUwylwyMai3WCVLi0mnXjHPD1cIziz3eiVyX6i7toB7Q==}
dependencies:
@@ -7607,6 +7754,12 @@ packages:
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
dev: true
+ /@types/react-dom@18.2.19:
+ resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==}
+ dependencies:
+ '@types/react': 18.2.61
+ dev: true
+
/@types/react@18.2.61:
resolution: {integrity: sha512-NURTN0qNnJa7O/k4XUkEW2yfygA+NxS0V5h1+kp9jPwhzZy95q3ADoGMP0+JypMhrZBTTgjKAUlTctde1zzeQA==}
dependencies:
@@ -7669,6 +7822,12 @@ packages:
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
dev: true
+ /@types/yargs@16.0.9:
+ resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==}
+ dependencies:
+ '@types/yargs-parser': 21.0.3
+ dev: true
+
/@types/yargs@17.0.32:
resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
dependencies:
@@ -8023,7 +8182,7 @@ packages:
std-env: 3.7.0
test-exclude: 6.0.0
v8-to-istanbul: 9.2.0
- vitest: 1.3.1(@types/node@20.11.24)
+ vitest: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
transitivePeerDependencies:
- supports-color
dev: true
@@ -8319,6 +8478,14 @@ packages:
ajv: 8.12.0
dev: false
+ /ajv-keywords@3.5.2(ajv@6.12.6):
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+ dependencies:
+ ajv: 6.12.6
+ dev: true
+
/ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -8432,6 +8599,18 @@ packages:
dependencies:
tslib: 2.6.2
+ /aria-query@5.1.3:
+ resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
+ dependencies:
+ deep-equal: 2.2.3
+ dev: true
+
+ /aria-query@5.3.0:
+ resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
+ dependencies:
+ dequal: 2.0.3
+ dev: true
+
/arity-n@1.0.4:
resolution: {integrity: sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ==}
dev: true
@@ -8495,6 +8674,7 @@ packages:
object-is: 1.1.5
object.assign: 4.1.5
util: 0.12.5
+ dev: true
/assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
@@ -8515,6 +8695,12 @@ packages:
resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
dev: true
+ /async@2.6.4:
+ resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==}
+ dependencies:
+ lodash: 4.17.21
+ dev: true
+
/async@3.2.5:
resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
dev: true
@@ -8594,6 +8780,12 @@ packages:
/available-typed-arrays@1.0.5:
resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
engines: {node: '>= 0.4'}
+ dev: true
+
+ /axe-core@4.8.4:
+ resolution: {integrity: sha512-CZLSKisu/bhJ2awW4kJndluz2HLZYIHh5Uy1+ZwDRkJi69811xgIXXfdU9HSLX0Th+ILrHj8qfL/5wzamsFtQg==}
+ engines: {node: '>=4'}
+ dev: true
/axios@1.6.7:
resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==}
@@ -8736,6 +8928,13 @@ packages:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
dev: true
+ /basic-auth@2.0.1:
+ resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: true
+
/better-opn@3.0.2:
resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==}
engines: {node: '>=12.0.0'}
@@ -8755,6 +8954,10 @@ packages:
engines: {node: '>=0.6'}
dev: true
+ /big.js@5.2.2:
+ resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+ dev: true
+
/binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
@@ -8952,6 +9155,7 @@ packages:
function-bind: 1.1.2
get-intrinsic: 1.2.2
set-function-length: 1.2.0
+ dev: true
/call-me-maybe@1.0.2:
resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
@@ -9388,6 +9592,22 @@ packages:
typedarray: 0.0.6
dev: true
+ /concurrently@8.2.2:
+ resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==}
+ engines: {node: ^14.13.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ chalk: 4.1.2
+ date-fns: 2.30.0
+ lodash: 4.17.21
+ rxjs: 7.8.1
+ shell-quote: 1.8.1
+ spawn-command: 0.0.2
+ supports-color: 8.1.1
+ tree-kill: 1.2.2
+ yargs: 17.7.2
+ dev: true
+
/confbox@0.1.3:
resolution: {integrity: sha512-eH3ZxAihl1PhKfpr4VfEN6/vUd87fmgb6JkldHgg/YR6aEBhW63qUDgzP2Y6WM0UumdsYp5H3kibalXAdHfbgg==}
dev: false
@@ -9452,6 +9672,11 @@ packages:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
dev: true
+ /corser@2.0.1:
+ resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==}
+ engines: {node: '>= 0.4.0'}
+ dev: true
+
/cpy@11.0.0:
resolution: {integrity: sha512-vA71mFQyIxCrqvP/9JBLCj05UJV/+WpvAxZK2/EiK5ndD090cjuChfJ3ExVVuZXHoTJ/3HLedOPYDWyxnNHjrg==}
engines: {node: '>=18'}
@@ -9571,6 +9796,13 @@ packages:
engines: {node: '>= 6'}
dev: true
+ /date-fns@2.30.0:
+ resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
+ engines: {node: '>=0.11'}
+ dependencies:
+ '@babel/runtime': 7.23.9
+ dev: true
+
/date-fns@3.3.1:
resolution: {integrity: sha512-y8e109LYGgoQDveiEBD3DYXKba1jWf5BA8YU1FL5Tvm0BTdEfy54WLCwnuYWZNnzzvALy/QQ4Hov+Q9RVRv+Zw==}
@@ -9642,6 +9874,30 @@ packages:
type-detect: 4.0.8
dev: true
+ /deep-equal@2.2.3:
+ resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ call-bind: 1.0.5
+ es-get-iterator: 1.1.3
+ get-intrinsic: 1.2.2
+ is-arguments: 1.1.1
+ is-array-buffer: 3.0.2
+ is-date-object: 1.0.5
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.2
+ isarray: 2.0.5
+ object-is: 1.1.5
+ object-keys: 1.1.1
+ object.assign: 4.1.5
+ regexp.prototype.flags: 1.5.1
+ side-channel: 1.0.4
+ which-boxed-primitive: 1.0.2
+ which-collection: 1.0.1
+ which-typed-array: 1.1.13
+ dev: true
+
/deep-extend@0.6.0:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
@@ -9689,6 +9945,7 @@ packages:
get-intrinsic: 1.2.2
gopd: 1.0.1
has-property-descriptors: 1.0.1
+ dev: true
/define-lazy-prop@2.0.0:
resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
@@ -9702,6 +9959,7 @@ packages:
define-data-property: 1.1.1
has-property-descriptors: 1.0.1
object-keys: 1.1.1
+ dev: true
/defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
@@ -9851,6 +10109,10 @@ packages:
esutils: 2.0.3
dev: true
+ /dom-accessibility-api@0.5.16:
+ resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
+ dev: true
+
/dom-serializer@0.2.2:
resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==}
dependencies:
@@ -9967,6 +10229,11 @@ packages:
/emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ /emojis-list@3.0.0:
+ resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
+ engines: {node: '>= 4'}
+ dev: true
+
/encode-registry@3.0.1:
resolution: {integrity: sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==}
engines: {node: '>=10'}
@@ -10079,6 +10346,20 @@ packages:
which-typed-array: 1.1.13
dev: true
+ /es-get-iterator@1.1.3:
+ resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ has-symbols: 1.0.3
+ is-arguments: 1.1.1
+ is-map: 2.0.2
+ is-set: 2.0.2
+ is-string: 1.0.7
+ isarray: 2.0.5
+ stop-iteration-iterator: 1.0.0
+ dev: true
+
/es-module-lexer@0.9.3:
resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
dev: true
@@ -10556,7 +10837,7 @@ packages:
'@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3)
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
eslint: 8.57.0
- vitest: 1.3.1(@types/node@20.11.24)
+ vitest: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
transitivePeerDependencies:
- supports-color
- typescript
@@ -10723,6 +11004,10 @@ packages:
engines: {node: '>= 0.6'}
dev: true
+ /eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+ dev: true
+
/execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
@@ -11079,6 +11364,7 @@ packages:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
dependencies:
is-callable: 1.2.7
+ dev: true
/foreground-child@2.0.0:
resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==}
@@ -11260,6 +11546,7 @@ packages:
has-proto: 1.0.1
has-symbols: 1.0.3
hasown: 2.0.0
+ dev: true
/get-nonce@1.0.1:
resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
@@ -11458,6 +11745,7 @@ packages:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
get-intrinsic: 1.2.2
+ dev: true
/graceful-fs@4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
@@ -11513,6 +11801,15 @@ packages:
uglify-js: 3.17.4
dev: true
+ /happy-dom@13.6.2:
+ resolution: {integrity: sha512-Ku+wDqcF/KwFA0dI+xIMZd9Jn020RXjuSil/Vz7gu2yhDC3FsDYZ55qqV9k+SGC4opwb4acisXqVSRxUJMlPbQ==}
+ engines: {node: '>=16.0.0'}
+ dependencies:
+ entities: 4.5.0
+ webidl-conversions: 7.0.0
+ whatwg-mimetype: 3.0.0
+ dev: true
+
/hard-rejection@2.1.0:
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
engines: {node: '>=6'}
@@ -11543,20 +11840,24 @@ packages:
resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
dependencies:
get-intrinsic: 1.2.2
+ dev: true
/has-proto@1.0.1:
resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
engines: {node: '>= 0.4'}
+ dev: true
/has-symbols@1.0.3:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
engines: {node: '>= 0.4'}
+ dev: true
/has-tostringtag@1.0.0:
resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
engines: {node: '>= 0.4'}
dependencies:
has-symbols: 1.0.3
+ dev: true
/hasha@5.2.2:
resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==}
@@ -11719,6 +12020,11 @@ packages:
resolution: {integrity: sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==}
dev: true
+ /he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+ dev: true
+
/highlight.js@11.9.0:
resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==}
engines: {node: '>=12.0.0'}
@@ -11731,8 +12037,8 @@ packages:
parse-passwd: 1.0.0
dev: true
- /hono@4.0.8:
- resolution: {integrity: sha512-zhTXu32vXeEXajsqZVjPfoyO0/fgAKLLmPBpSDzRBMr7zZ5N8yV1FmsfWl2MYtm+MD8hD7knLCovx8Oaqubd4w==}
+ /hono@4.0.9:
+ resolution: {integrity: sha512-XkFx6y6jAl08bGmoy53oGtHl8eHUixvmBulfcghrSySoJD3cW4UfFUa7JDGLOsIeJUv/a9d2pBFQUX7rzRnjvA==}
engines: {node: '>=16.0.0'}
dev: false
@@ -11758,6 +12064,13 @@ packages:
lru-cache: 10.2.0
dev: true
+ /html-encoding-sniffer@3.0.0:
+ resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
+ engines: {node: '>=12'}
+ dependencies:
+ whatwg-encoding: 2.0.0
+ dev: true
+
/html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
dev: true
@@ -11815,6 +12128,40 @@ packages:
- supports-color
dev: true
+ /http-proxy@1.18.1:
+ resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ eventemitter3: 4.0.7
+ follow-redirects: 1.15.5
+ requires-port: 1.0.0
+ transitivePeerDependencies:
+ - debug
+ dev: true
+
+ /http-server@14.1.1:
+ resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==}
+ engines: {node: '>=12'}
+ hasBin: true
+ dependencies:
+ basic-auth: 2.0.1
+ chalk: 4.1.2
+ corser: 2.0.1
+ he: 1.2.0
+ html-encoding-sniffer: 3.0.0
+ http-proxy: 1.18.1
+ mime: 1.6.0
+ minimist: 1.2.8
+ opener: 1.5.2
+ portfinder: 1.0.32
+ secure-compare: 3.0.1
+ union: 0.5.0
+ url-join: 4.0.1
+ transitivePeerDependencies:
+ - debug
+ - supports-color
+ dev: true
+
/http-shutdown@1.2.2:
resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
@@ -11890,7 +12237,6 @@ packages:
dependencies:
safer-buffer: 2.1.2
dev: true
- optional: true
/identity-function@1.0.0:
resolution: {integrity: sha512-kNrgUK0qI+9qLTBidsH85HjDLpZfrrS0ElquKKe/fJFdB3D7VeKdXXEvOPDUHSHOzdZKCAAaQIWWyp0l2yq6pw==}
@@ -12039,6 +12385,7 @@ packages:
dependencies:
call-bind: 1.0.5
has-tostringtag: 1.0.0
+ dev: true
/is-array-buffer@3.0.2:
resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
@@ -12082,6 +12429,7 @@ packages:
/is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
+ dev: true
/is-core-module@2.13.1:
resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
@@ -12133,6 +12481,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
+ dev: true
/is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
@@ -12171,12 +12520,17 @@ packages:
resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
dev: true
+ /is-map@2.0.2:
+ resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
+ dev: true
+
/is-nan@1.3.2:
resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.5
define-properties: 1.2.1
+ dev: true
/is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
@@ -12259,6 +12613,10 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
+ /is-set@2.0.2:
+ resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
+ dev: true
+
/is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
@@ -12300,6 +12658,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
which-typed-array: 1.1.13
+ dev: true
/is-typedarray@1.0.0:
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
@@ -12310,12 +12669,23 @@ packages:
engines: {node: '>=10'}
dev: true
+ /is-weakmap@2.0.1:
+ resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
+ dev: true
+
/is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
call-bind: 1.0.5
dev: true
+ /is-weakset@2.0.2:
+ resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
+ dependencies:
+ call-bind: 1.0.5
+ get-intrinsic: 1.2.2
+ dev: true
+
/is-windows@0.2.0:
resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==}
engines: {node: '>=0.10.0'}
@@ -12699,6 +13069,14 @@ packages:
stack-utils: 2.0.6
dev: true
+ /jest-mock@27.5.1:
+ resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ '@jest/types': 27.5.1
+ '@types/node': 20.11.24
+ dev: true
+
/jest-mock@29.7.0:
resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -13030,7 +13408,7 @@ packages:
micromatch: 4.0.5
neo-async: 2.6.2
node-dir: 0.1.17
- recast: 0.23.4
+ recast: 0.23.5
temp: 0.8.4
write-file-atomic: 2.4.3
transitivePeerDependencies:
@@ -13150,8 +13528,8 @@ packages:
engines: {node: '>=6'}
dev: true
- /knip@5.0.2(@types/node@20.11.24)(typescript@5.3.3):
- resolution: {integrity: sha512-ylmXi/CaR1rjOl8KqLsei7075cCsHttMNFwoYlBM7WMvd2Rd4oOfic9KqJFkDONXedsEsiiwnI3+u6GT6KOUuw==}
+ /knip@5.0.3(@types/node@20.11.24)(typescript@5.3.3):
+ resolution: {integrity: sha512-U4bCIkf4aZ3zZSrBaNE8xIdqX1QVhIHXpwUoAW7odx7oajMwa76hUDd9KjlFlb6qAPjdUuTGHjDszIgpfg+Ndg==}
engines: {node: '>=18.6.0'}
hasBin: true
peerDependencies:
@@ -13285,6 +13663,15 @@ packages:
strip-bom: 3.0.0
dev: true
+ /loader-utils@2.0.4:
+ resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
+ engines: {node: '>=8.9.0'}
+ dependencies:
+ big.js: 5.2.2
+ emojis-list: 3.0.0
+ json5: 2.2.3
+ dev: true
+
/local-pkg@0.5.0:
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
engines: {node: '>=14'}
@@ -13321,6 +13708,10 @@ packages:
dependencies:
p-locate: 6.0.0
+ /lodash-es@4.17.21:
+ resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+ dev: true
+
/lodash.chunk@4.2.0:
resolution: {integrity: sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==}
dev: true
@@ -13434,6 +13825,11 @@ packages:
dependencies:
react: 18.2.0
+ /lz-string@1.5.0:
+ resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
+ hasBin: true
+ dev: true
+
/magic-string@0.16.0:
resolution: {integrity: sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ==}
dependencies:
@@ -13778,6 +14174,12 @@ packages:
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
dev: true
+ /merge-source-map@1.1.0:
+ resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==}
+ dependencies:
+ source-map: 0.6.1
+ dev: true
+
/merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -14611,10 +15013,12 @@ packages:
dependencies:
call-bind: 1.0.5
define-properties: 1.2.1
+ dev: true
/object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
+ dev: true
/object-pairs@0.1.0:
resolution: {integrity: sha512-3ECr6K831I4xX/Mduxr9UC+HPOz/d6WKKYj9p4cmC8Lg8p7g8gitzsxNX5IWlSIgFWN/a4JgrJaoAMKn20oKwA==}
@@ -14633,6 +15037,7 @@ packages:
define-properties: 1.2.1
has-symbols: 1.0.3
object-keys: 1.1.1
+ dev: true
/ofetch@1.3.3:
resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==}
@@ -14699,6 +15104,11 @@ packages:
yaml: 2.3.4
dev: false
+ /opener@1.5.2:
+ resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
+ hasBin: true
+ dev: true
+
/optionator@0.9.3:
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
engines: {node: '>= 0.8.0'}
@@ -15128,12 +15538,18 @@ packages:
hasBin: true
dev: true
- /playwright@1.42.0:
- resolution: {integrity: sha512-Ko7YRUgj5xBHbntrgt4EIw/nE//XBHOKVKnBjO1KuZkmkhlbgyggTe5s9hjqQ1LpN+Xg+kHsQyt5Pa0Bw5XpvQ==}
+ /playwright-core@1.42.1:
+ resolution: {integrity: sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dev: true
+
+ /playwright@1.42.1:
+ resolution: {integrity: sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==}
engines: {node: '>=16'}
hasBin: true
dependencies:
- playwright-core: 1.42.0
+ playwright-core: 1.42.1
optionalDependencies:
fsevents: 2.3.2
dev: true
@@ -15156,6 +15572,17 @@ packages:
'@babel/runtime': 7.23.9
dev: true
+ /portfinder@1.0.32:
+ resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==}
+ engines: {node: '>= 0.12.0'}
+ dependencies:
+ async: 2.6.4
+ debug: 3.2.7
+ mkdirp: 0.5.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/postcss-import@15.1.0(postcss@8.4.35):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
@@ -15259,6 +15686,15 @@ packages:
engines: {node: ^14.13.1 || >=16.0.0}
dev: false
+ /pretty-format@27.5.1:
+ resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ ansi-regex: 5.0.1
+ ansi-styles: 5.2.0
+ react-is: 17.0.2
+ dev: true
+
/pretty-format@29.7.0:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -15555,8 +15991,8 @@ packages:
react-is: 18.1.0
dev: true
- /react-hook-form@7.50.1(react@18.2.0):
- resolution: {integrity: sha512-3PCY82oE0WgeOgUtIr3nYNNtNvqtJ7BZjsbxh6TnYNbXButaD5WpjOmTjdxZfheuHKR68qfeFnEDVYoSSFPMTQ==}
+ /react-hook-form@7.51.0(react@18.2.0):
+ resolution: {integrity: sha512-BggOy5j58RdhdMzzRUHGOYhSz1oeylFAv6jUSG86OvCIvlAvS7KvnRY7yoAf2pfEiPN7BesnR0xx73nEk3qIiw==}
engines: {node: '>=12.22.0'}
peerDependencies:
react: ^16.8.0 || ^17 || ^18
@@ -15567,6 +16003,10 @@ packages:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
dev: true
+ /react-is@17.0.2:
+ resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+ dev: true
+
/react-is@18.1.0:
resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==}
dev: true
@@ -15733,14 +16173,14 @@ packages:
dependencies:
picomatch: 2.3.1
- /recast@0.23.4:
- resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==}
+ /recast@0.23.5:
+ resolution: {integrity: sha512-M67zIddJiwXdfPQRYKJ0qZO1SLdH1I0hYeb0wzxA+pNOvAZiQHulWzuk+fYsEWRQ8VfZrgjyucqsCOtCyM01/A==}
engines: {node: '>= 4'}
dependencies:
- assert: 2.1.0
ast-types: 0.16.1
esprima: 4.0.1
source-map: 0.6.1
+ tiny-invariant: 1.3.3
tslib: 2.6.2
/redent@3.0.0:
@@ -16002,6 +16442,10 @@ packages:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
dev: true
+ /requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+ dev: true
+
/resolve-cwd@3.0.0:
resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
engines: {node: '>=8'}
@@ -16171,10 +16615,23 @@ packages:
dependencies:
loose-envify: 1.4.0
+ /schema-utils@2.7.1:
+ resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==}
+ engines: {node: '>= 8.9.0'}
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2(ajv@6.12.6)
+ dev: true
+
/scule@1.3.0:
resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
dev: false
+ /secure-compare@3.0.1:
+ resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==}
+ dev: true
+
/semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
hasBin: true
@@ -16249,6 +16706,7 @@ packages:
get-intrinsic: 1.2.2
gopd: 1.0.1
has-property-descriptors: 1.0.1
+ dev: true
/set-function-name@2.0.1:
resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
@@ -16296,6 +16754,10 @@ packages:
resolution: {integrity: sha512-lT297f1WLAdq0A4O+AknIFRP6kkiI3s8C913eJ0XqBxJbZPGWUNkRQk2u8zk4bEAjUJ5i+fSLwB6z1HzeT+DEg==}
dev: true
+ /shell-quote@1.8.1:
+ resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
+ dev: true
+
/side-channel@1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
@@ -16430,6 +16892,11 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ /source-map@0.7.4:
+ resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
+ engines: {node: '>= 8'}
+ dev: true
+
/space-separated-tokens@1.1.5:
resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
dev: true
@@ -16438,6 +16905,10 @@ packages:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
dev: false
+ /spawn-command@0.0.2:
+ resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==}
+ dev: true
+
/spawn-wrap@2.0.0:
resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==}
engines: {node: '>=8'}
@@ -16536,6 +17007,13 @@ packages:
/std-env@3.7.0:
resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
+ /stop-iteration-iterator@1.0.0:
+ resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ internal-slot: 1.0.6
+ dev: true
+
/store2@2.14.2:
resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==}
dev: true
@@ -16559,8 +17037,8 @@ packages:
- '@xstate/fsm'
dev: true
- /storybook-addon-pseudo-states@2.1.2(@storybook/components@7.6.17)(@storybook/core-events@7.6.17)(@storybook/manager-api@7.6.17)(@storybook/preview-api@7.6.17)(@storybook/theming@7.6.17)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-AHv6q1JiQEUnMyZE3729iV6cNmBW7bueeytc4Lga4+8W1En8YNea5VjqAdrDNJhXVU0QEEIGtxkD3EoC9aVWLw==}
+ /storybook-addon-pseudo-states@2.2.0(@storybook/components@7.6.17)(@storybook/core-events@7.6.17)(@storybook/manager-api@7.6.17)(@storybook/preview-api@7.6.17)(@storybook/theming@7.6.17)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-9hgTXfK3dS3Q3mIuXEjseHrE9QeJnHOIiFg5URsPt+9mpmL/4iTLBR1msdaE94c+l5dZJHsK46M87BRixfcEIg==}
peerDependencies:
'@storybook/components': ^7.4.6
'@storybook/core-events': ^7.4.6
@@ -16584,6 +17062,10 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
+ /storybook-addon-rtl@1.0.0:
+ resolution: {integrity: sha512-pGbNx0KhzqxDfjJQ/IOJYKOmLD0tVV0vjEtTcPmU5mgwzlWxLcbiEGn6q73yvSwV/KIzpH8zNNJVWYRrdWPNEQ==}
+ dev: true
+
/storybook-dark-mode@3.0.3(@types/react@18.2.61)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-ZLBLVpkuKTdtUv3DTuOjeP/bE7DHhOxVpDROKc0NtEYq9JHLUu6z05LLZinE3v6QPXQZ9TMQPm3Xe/0BcLEZlw==}
peerDependencies:
@@ -17084,6 +17566,9 @@ packages:
resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==}
dev: true
+ /tiny-invariant@1.3.3:
+ resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+
/tinybench@2.6.0:
resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==}
dev: true
@@ -17506,6 +17991,13 @@ packages:
vfile: 6.0.1
dev: false
+ /union@0.5.0:
+ resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ qs: 6.11.2
+ dev: true
+
/unique-filename@3.0.0:
resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -17741,6 +18233,10 @@ packages:
dependencies:
punycode: 2.3.1
+ /url-join@4.0.1:
+ resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
+ dev: true
+
/use-callback-ref@1.3.1(@types/react@18.2.61)(react@18.2.0):
resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==}
engines: {node: '>=10'}
@@ -17813,6 +18309,7 @@ packages:
is-generator-function: 1.0.10
is-typed-array: 1.1.12
which-typed-array: 1.1.13
+ dev: true
/utils-merge@1.0.1:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
@@ -17918,6 +18415,17 @@ packages:
- terser
dev: true
+ /vite-plugin-istanbul@3.0.4:
+ resolution: {integrity: sha512-DJy3cq6yOFbsM3gLQf/3zeuaJNJsfBv5dLFdZdv8sUV30xLtZI+66QeYfHUyP/5vBUYyLA+xNUCSG5uHY6w+5g==}
+ dependencies:
+ '@istanbuljs/load-nyc-config': 1.1.0
+ istanbul-lib-instrument: 5.2.1
+ picocolors: 1.0.0
+ test-exclude: 6.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/vite@5.1.4(@types/node@20.11.24):
resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -17954,7 +18462,21 @@ packages:
fsevents: 2.3.3
dev: true
- /vitest@1.3.1(@types/node@20.11.24):
+ /vitest-axe@0.1.0(vitest@1.3.1):
+ resolution: {integrity: sha512-jvtXxeQPg8R/2ANTY8QicA5pvvdRP4F0FsVUAHANJ46YCDASie/cuhlSzu0DGcLmZvGBSBNsNuK3HqfaeknyvA==}
+ peerDependencies:
+ vitest: '>=0.16.0'
+ dependencies:
+ aria-query: 5.3.0
+ axe-core: 4.8.4
+ chalk: 5.3.0
+ dom-accessibility-api: 0.5.16
+ lodash-es: 4.17.21
+ redent: 3.0.0
+ vitest: 1.3.1(@types/node@20.11.24)(happy-dom@13.6.2)
+ dev: true
+
+ /vitest@1.3.1(@types/node@20.11.24)(happy-dom@13.6.2):
resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -17989,6 +18511,7 @@ packages:
chai: 4.4.1
debug: 4.3.4
execa: 8.0.1
+ happy-dom: 13.6.2
local-pkg: 0.5.0
magic-string: 0.30.7
pathe: 1.1.2
@@ -18134,6 +18657,11 @@ packages:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
dev: true
+ /webidl-conversions@7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
+ dev: true
+
/webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
@@ -18143,6 +18671,18 @@ packages:
resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==}
dev: true
+ /whatwg-encoding@2.0.0:
+ resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
+ engines: {node: '>=12'}
+ dependencies:
+ iconv-lite: 0.6.3
+ dev: true
+
+ /whatwg-mimetype@3.0.0:
+ resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
+ engines: {node: '>=12'}
+ dev: true
+
/whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
dependencies:
@@ -18160,6 +18700,15 @@ packages:
is-symbol: 1.0.4
dev: true
+ /which-collection@1.0.1:
+ resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
+ dependencies:
+ is-map: 2.0.2
+ is-set: 2.0.2
+ is-weakmap: 2.0.1
+ is-weakset: 2.0.2
+ dev: true
+
/which-module@2.0.1:
resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
dev: true
@@ -18181,6 +18730,7 @@ packages:
for-each: 0.3.3
gopd: 1.0.1
has-tostringtag: 1.0.0
+ dev: true
/which@1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
diff --git a/vitest.config.js b/vitest.config.js
deleted file mode 100644
index 346b1ff4..00000000
--- a/vitest.config.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { defineConfig } from 'vitest/config'
-
-export default defineConfig({
- test: {
- coverage: {
- // TODO: remove UI from exclude list when UI tests are added
- exclude: ['**/.config/**', '**/.next/**', '**/.storybook/**', '**/coverage/**', '**/dist/**', '**/ui/**', '**/fixtures/**', '**/scripts/**', '**/*.stories.{jsx,tsx}', '**/*.config.{js,ts}'],
- },
- },
-})
diff --git a/vitest.workspace.ts b/vitest.workspace.ts
new file mode 100644
index 00000000..ef8bce00
--- /dev/null
+++ b/vitest.workspace.ts
@@ -0,0 +1,3 @@
+export default [
+ 'packages/*/vitest.config.{js,ts}',
+]