diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index eb0660506..000000000
--- a/.eslintignore
+++ /dev/null
@@ -1,10 +0,0 @@
-node_modules
-package.json
-pnpm-lock.yaml
-.next
-.github
-bin
-static
-cypress-coverage
-vitest-coverage
-.storybook-dist
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 8f59b3990..000000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,305 +0,0 @@
-/**
- * @type {import("eslint").Linter.Config}
- */
-module.exports = {
- ignorePatterns: ['next-env.d.ts'],
- extends: [
- 'plugin:@typescript-eslint/eslint-recommended',
- 'plugin:react/recommended',
- 'plugin:jsx-a11y/recommended',
- 'plugin:storybook/recommended',
- 'plugin:prettier/recommended',
- 'prettier',
- ],
- env: {
- browser: true,
- commonjs: true,
- es6: true,
- node: true,
- },
- parser: '@typescript-eslint/parser',
- plugins: ['unicorn', '@operation_code/custom-rules', 'import', 'lodash', '@typescript-eslint'],
- rules: {
- // Import Rules
- 'import/extensions': [
- 'error',
- 'never',
- {
- css: 'always',
- jpg: 'always',
- json: 'always',
- png: 'always',
- svg: 'always',
- stories: 'always',
- },
- ],
- 'import/no-unresolved': 'off',
- 'import/no-extraneous-dependencies': ['error', { devDependencies: true }],
- 'import/order': [
- 'error',
- { groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'] },
- ],
- 'import/prefer-default-export': 'off',
-
- // OC eslint Plugin Rules
- '@operation_code/custom-rules/proptype-definition-above-fn': 'error',
-
- // JSX-A11Y Plugin Rules
- 'jsx-a11y/anchor-is-valid': [
- 'error',
- {
- components: ['Link'],
- specialLink: ['hrefLeft', 'hrefRight'],
- aspects: ['invalidHref', 'preferButton'],
- },
- ],
- 'jsx-a11y/label-has-associated-control': [
- 2,
- {
- labelComponents: ['Label'],
- labelAttributes: ['for'],
- controlComponents: ['Input', 'Select'],
- },
- ],
-
- // Lodash Plugin Rules
- 'lodash/import-scope': ['error', 'method'],
-
- // React Plugin Rules
- 'react/function-component-definition': [
- 'error',
- {
- namedComponents: ['arrow-function', 'function-declaration'],
- unnamedComponents: ['arrow-function', 'function-expression'],
- },
- ],
- 'react/forbid-prop-types': ['error', { forbid: ['any'] }],
- 'react/jsx-curly-brace-presence': ['error', { props: 'never', children: 'never' }],
- 'react/jsx-filename-extension': ['error', { extensions: ['.js', '.tsx'] }],
- 'react/jsx-max-props-per-line': ['error', { maximum: 1, when: 'multiline' }],
- 'react/no-unescaped-entities': 'off',
- 'react/jsx-no-target-blank': 'off', // browsers protect against this vulnerability now
- 'react/jsx-no-useless-fragment': ['error', { allowExpressions: true }],
- 'react/jsx-one-expression-per-line': 'off',
- 'react/jsx-props-no-spreading': ['off'],
- 'react/no-did-mount-set-state': 'off',
- 'react/no-unused-prop-types': 'error',
- 'react/no-unused-state': 'error',
- 'react/prefer-stateless-function': ['off'],
- 'react/react-in-jsx-scope': 'off',
- 'react/state-in-constructor': ['error', 'never'],
- 'react/static-property-placement': ['off'],
-
- // Unicorn Plugin Rules
- 'unicorn/catch-error-name': 'error',
- 'unicorn/error-message': 'error',
- 'unicorn/no-abusive-eslint-disable': 'error',
- 'unicorn/no-fn-reference-in-iterator': 'error',
- 'unicorn/no-for-loop': 'error',
- 'unicorn/no-unreadable-array-destructuring': 'error',
- 'unicorn/no-zero-fractions': 'error',
- 'unicorn/prefer-includes': 'error',
- 'unicorn/prefer-node-append': 'error',
- 'unicorn/prefer-node-remove': 'error',
- 'unicorn/prefer-query-selector': 'error',
- 'unicorn/prefer-spread': 'error',
- 'unicorn/prefer-starts-ends-with': 'error',
- 'unicorn/prefer-text-content': 'error',
- 'unicorn/prefer-type-error': 'error',
- 'unicorn/throw-new-error': 'error',
-
- // Vanilla ESLint Rules
- 'arrow-body-style': 'off',
- 'class-methods-use-this': 'off',
- 'comma-dangle': ['error', 'only-multiline'],
- 'implicit-arrow-linebreak': 'off',
- 'multiline-ternary': 'off',
- 'no-console': 'warn',
- 'no-extra-boolean-cast': 'off',
- 'no-promise-executor-return': 'off',
- 'no-restricted-imports': [
- 'error',
- {
- paths: [
- {
- name: 'react-select',
- message: 'Please use `components/Form/Select/ThemedReactSelect` instead.',
- },
- {
- name: 'prop-types',
- importNames: ['default'],
- message: `Please use named imports of "prop-types".\n Example: "import { func } from 'prop-types';"`,
- },
- {
- name: 'formik',
- importNames: ['Form'],
- message: `Please use our Form component to have good defaults defined.\n "import Form from 'components/Form/Form';"`,
- },
- {
- name: 'react',
- importNames: ['default'],
- message: 'React is globally availble for all page files.',
- },
- {
- name: 'tailwind-merge',
- importNames: ['twMerge'],
- message:
- 'Please import `cx` from `common/utils/cva.ts` instead of directly from tailwind-merge.',
- },
- {
- name: 'class-variance-authority',
- importNames: ['cx', 'cva'],
- message:
- 'Please import from `common/utils/cva.ts` instead of directly from class-variance-authority.',
- },
- ],
- },
- ],
- 'no-use-before-define': 'off',
- },
- overrides: [
- {
- files: ['./**/*.test.js', './**/*.test.jsx', './**/*.test.ts', './**/*.test.tsx'],
- plugins: ['vitest'],
- extends: ['plugin:vitest-globals/recommended', 'plugin:vitest/recommended'],
- env: {
- 'vitest-globals/env': true,
- },
- rules: {
- 'vitest/consistent-test-it': ['error', { fn: 'it', withinDescribe: 'it' }],
- 'vitest/expect-expect': [
- 'error',
- { assertFunctionNames: ['expect', 'createSnapshotTest'] },
- ],
- 'vitest/prefer-lowercase-title': ['error', { ignore: ['describe'] }],
- 'vitest/no-test-prefixes': 'error',
- 'vitest/no-test-return-statement': 'error',
- 'vitest/prefer-strict-equal': 'error',
- 'vitest/valid-describe-callback': 'error',
- },
- },
- {
- files: ['./**/*.ts', './**/*.tsx'],
- parser: '@typescript-eslint/parser',
- parserOptions: {
- project: true,
- },
- extends: ['plugin:@typescript-eslint/strict', 'plugin:@typescript-eslint/stylistic'],
- rules: {
- // Deactivate rules not meant for TS
- 'no-restricted-imports': 'off',
-
- // React Plugin Rules
- 'react/prop-types': 'off', // https://github.com/jsx-eslint/eslint-plugin-react/issues/3651
- 'react/no-array-index-key': 'off',
- 'react/require-default-props': 'off',
-
- // Typescript Rules
- '@typescript-eslint/consistent-type-imports': ['error'],
- '@typescript-eslint/explicit-module-boundary-types': 'off',
- '@typescript-eslint/naming-convention': [
- 'error',
- {
- selector: 'variable',
- types: ['boolean'],
- format: ['PascalCase', 'UPPER_CASE'],
- prefix: [
- 'is',
- 'are',
- 'was',
- 'should',
- 'has',
- 'can',
- 'did',
- 'will',
- 'IS_',
- 'ARE_',
- 'WAS_',
- 'SHOULD_',
- 'HAS_',
- 'CAN_',
- 'DID_',
- 'WILL_',
- ],
- },
- ],
- '@typescript-eslint/no-empty-interface': ['error', { allowSingleExtends: true }],
- '@typescript-eslint/no-explicit-any': 'error',
- '@typescript-eslint/no-restricted-imports': [
- 'error',
- {
- paths: [
- {
- name: 'react-select',
- message: 'Please use `components/Form/Select/ThemedReactSelect` instead.',
- },
- {
- name: 'formik',
- importNames: ['Form'],
- message: `Please use our Form component to have good defaults defined.\n "import { Form } from 'components/Form/Form';"`,
- },
- {
- name: 'react',
- importNames: ['default'],
- message: 'React is globally availble for all page files.',
- },
- {
- name: 'tailwind-merge',
- importNames: ['twMerge'],
- message:
- 'Please import `cx` from `common/utils/cva.ts` instead of directly from tailwind-merge.',
- },
- {
- name: 'class-variance-authority',
- importNames: ['cx', 'cva'],
- message:
- 'Please import from `common/utils/cva.ts` instead of directly from class-variance-authority.',
- },
- ],
- },
- ],
- '@typescript-eslint/no-unused-vars': ['error', { vars: 'all', varsIgnorePattern: '_' }],
- '@typescript-eslint/unbound-method': 'off', // gives false negatives in arrow funcs
- },
- },
- {
- files: ['./e2e/**/*.spec.ts'],
- extends: 'plugin:playwright/recommended',
- rules: {
- 'func-names': 'off',
- 'vitest/expect-expect': 'off',
- 'vitest/valid-expect': 'off',
- 'no-unused-expressions': ['off'],
- 'playwright/expect-expect': [
- 'warn',
- {
- assertFunctionNames: ['expect', 'assertError', 'assertFailedLogin'],
- },
- ],
- },
- },
- {
- files: ['./**/*.test.ts', './**/*.test.tsx'],
- rules: {
- '@typescript-eslint/no-non-null-assertion': 'off',
- },
- },
- {
- files: ['./app/api/**/*.ts'],
- rules: {
- 'no-console': 'off',
- },
- },
- {
- files: ['components/nav.js', 'components/Timeline/historyData.js'],
- rules: {
- 'react/react-in-jsx-scope': 'off',
- },
- },
- {
- files: ['components/nav.js', 'components/Footer/Footer.js'],
- rules: { 'jsx-a11y/anchor-is-valid': 'off' },
- },
- ],
- root: true,
-};
diff --git a/.lintstagedrc b/.lintstagedrc
index 49717b314..ec5bddca6 100644
--- a/.lintstagedrc
+++ b/.lintstagedrc
@@ -1,4 +1,4 @@
{
- "*.{js,jsx,ts,tsx}": ["prettier --write", "eslint --fix"],
+ "*.{js,jsx,ts,tsx}": ["prettier --write", "eslint --fix --no-warn-ignored"],
"*.css": ["prettier --write"]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 62e7c2cad..4e22e86ac 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,11 +1,6 @@
{
- "typescript.tsdk": "node_modules/typescript/lib",
+ "js/ts.tsdk.path": "node_modules/typescript/lib",
"tailwindCSS.classAttributes": ["className"],
"tailwindCSS.classFunctions": ["cx", "cva", "clsx", "classMerge", "twMerge"],
- "tailwindCSS.lint.cssConflict": "ignore",
- "typescript.preferences.autoImportFileExcludePatterns": [
- "class-variance-authority",
- "clsx",
- "tailwind-merge"
- ]
+ "tailwindCSS.lint.cssConflict": "ignore"
}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9706f3954..c9437a6fd 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -124,48 +124,38 @@ You can see interactive documentation on all of our components via [![Storybook]
### File Structure
```
-├── common
-| ├── config # This is just a folder for configuration shared by more than one tool.
-| ├── constants # This is a folder that contain simple, but unpreventable uniform data.
-| ├── styles # Contains global styles, CSS variables, and a JS export of those CSS variables (used in Storybook)
-| └── utils
+├── src
+| ├── app # Next.js App Router pages, layouts, and API routes
+| | ├── layout.tsx # Root layout
+| | ├── page.tsx # Landing page
+| | └── */page.tsx # All other pages
+| |
+| ├── common
+| | ├── config # Configuration shared by more than one tool
+| | ├── constants # Simple, uniform data (testIDs, messages, URLs, etc.)
+| | ├── styles # Global styles (Tailwind CSS)
+| | └── utils # Shared utility functions
+| |
+| ├── components
+| | └── * # Reusable UI components (imported via @/components/*)
+| |
+| ├── decorators
+| | └── * # Higher-order components that wrap components to add functionality
+| |
+| ├── e2e # Playwright end-to-end tests
+| |
+| ├── static
+| | └── images # SVG icons, sponsor logos, and other imported assets
+| |
+| └── test-utils
+| ├── mocks # Commonly mocked data for testing
+| ├── mockGenerators # Functions to generate test data
+| └── createSnapshotTest.js
|
-├── components
-| ├── ReusableSections # These sections get used many times throughout our pages, but are not necessarily composable or reusable.
-| ├── * # Most components act as reusable lego blocks that form the foundation of many components. One-off use components may also exist simply to modularize the codebase (not put everything in one big file).
-| ├── head.js # Next.js-specific component to handle a page's meta info (and the rest of it's
tag) dynamically
-| └── nav.js
-|
-├── cypress
-| └── * # Houses all e2e/integration tests and configuration of cypress.
-|
-├── decorators
-| └── * # This is filled with higher-order components that wrap components to add little bits of functionality.
-|
-├── pages
-| ├── styles
-| ├── _app.js # Next.js-specific file used to customize the client-side routing of the application.
-| ├── _document.js # Next.js-specific file used to customize the initial rendering of the application.
-| ├── _error.js # Next.js-specific file used to override/customize the traditional error code views (such as 404 and 503)
-| ├── index.js # Landing page
-| └── *.js # All the other pages
-|
-├── static
-| ├── fonts
-| └── images
-| └── icons # SVG icons only
-|
-├── test-utils
-| ├── mocks # Contains commonly mocked components, functions, and classes for testing purposes
-| ├── createComponentInstance.js
-| ├── createShallowSnapshotTest.js
-| ├── createSnapshotTest.js
-| └── setupTests.js
-|
-├── internationalized-documentation
-| └ * # Folders per language plus an English-only README to describe how to contribute translations of documentation.
+├── public # Static files served at the root URL
|
* - Root-level files are configuration and documentation.
+* - All source imports use the @/* path alias (e.g., @/components/Button/Button).
```
### pnpm Scripts With Explanations
@@ -213,7 +203,7 @@ pnpm test:watch
# You can use the name of the file at the end of any non-e2e test command to run it against a single file
pnpm test $fileName
-# Opens up a Cypress browser with which you can check e2e tests locally. Be sure the local dev server is running before this command!
+# Run Playwright e2e tests (dev server starts automatically)
pnpm test:e2e
```
diff --git a/README.md b/README.md
index b9a06ddbc..882197e35 100644
--- a/README.md
+++ b/README.md
@@ -41,14 +41,8 @@ pnpm storybook
# Run all unit tests
pnpm test
-# Run all Cypress tests (make sure your dev server is running)
+# Run all Playwright e2e tests
pnpm test:e2e
-
-# Create all the necessary files/folders for a new, reusable component
-pnpm create-component $ComponentName
-
-# Create the necessary file with a small boilerplate for a new page
-pnpm create-page $PageName
```
## Open Source Gratitude
@@ -69,7 +63,7 @@ Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testi
### LogRocket
-
+
Thanks to [LogRocket](https://logrocket.com/) for providing time-saving context on every error and insight into our user's behavior,
@@ -77,7 +71,7 @@ Thanks to [LogRocket](https://logrocket.com/) for providing time-saving context
### Sentry
-
+
Thanks to [Sentry](https://getsentry.io) for a wonderful experience with cataloguing and managing errors.
@@ -85,6 +79,6 @@ Thanks to [Sentry](https://getsentry.io) for a wonderful experience with catalog
### Vercel
-
+
Thanks to [Vercel](https://vercel.com) for hosting and continuous deployment of all our web applications.
diff --git a/common/constants/api.ts b/common/constants/api.ts
deleted file mode 100644
index e3fbd570a..000000000
--- a/common/constants/api.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { patch, post } from 'common/utils/api-utils';
-import type { RegistrationFormValues } from 'components/Forms/RegistrationForm/RegistrationForm';
-import type { MilitaryDetailsFormShape } from 'components/Forms/UpdateProfileForm/steps/MilitaryDetails';
-import type { MilitaryStatusFormShape } from 'components/Forms/UpdateProfileForm/steps/MilitaryStatus';
-import type { PersonalDetailsFormShape } from 'components/Forms/UpdateProfileForm/steps/PersonalDetails';
-import type { ProfessionalDetailsFormShape } from 'components/Forms/UpdateProfileForm/steps/ProfessionalDetails';
-
-export const registerUser = (values: RegistrationFormValues) =>
- post('/api/registration/new', values);
-
-type FormShape =
- | PersonalDetailsFormShape
- | ProfessionalDetailsFormShape
- | MilitaryStatusFormShape
- | MilitaryDetailsFormShape;
-
-export const updateUser = (values: FormShape & { finalize?: boolean }) =>
- patch('/api/registration/update', values);
diff --git a/components/Branding/FontSection/FontSection.tsx b/components/Branding/FontSection/FontSection.tsx
deleted file mode 100644
index 7082fce5b..000000000
--- a/components/Branding/FontSection/FontSection.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import Content from 'components/Content/Content';
-
-const fonts = [
- { name: 'DIN Condensed Bold', className: 'font-din-condensed' },
- { name: 'Encode Sans', className: 'font-encode-sans' },
-];
-
-function FontSection() {
- const demoText = 'Sphinx of black quartz, judge my vow!';
-
- return (
-
- {fonts.map(font => (
-
- p]:${font.className} [&>h6]:${font.className}`}>
-
{font.name}
-
{demoText}
-
-
- ))}
- ,
- ]}
- />
- );
-}
-
-export default FontSection;
diff --git a/components/Cards/ImageCard/__tests__/__snapshots__/ImageCard.test.tsx.snap b/components/Cards/ImageCard/__tests__/__snapshots__/ImageCard.test.tsx.snap
deleted file mode 100644
index 3c4f0f469..000000000
--- a/components/Cards/ImageCard/__tests__/__snapshots__/ImageCard.test.tsx.snap
+++ /dev/null
@@ -1,49 +0,0 @@
-// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
-
-exports[`ImageCard > should render with many props assigned 1`] = `
-
-
-
-
-

-
-
-
-`;
-
-exports[`ImageCard > should render with required props 1`] = `
-
-
-
-

-
-
-
-
-`;
diff --git a/components/Press/index.ts b/components/Press/index.ts
deleted file mode 100644
index 47a3ffa1f..000000000
--- a/components/Press/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import Photos from './PressPhotos/PressPhotos';
-import Videos from './PressVideos/PressVideos';
-import Links from './PressLinks/PressLinks';
-
-export { Photos, Videos, Links };
diff --git a/components/Timeline/TimelineNav/__tests__/__snapshots__/TimelineNav.test.tsx.snap b/components/Timeline/TimelineNav/__tests__/__snapshots__/TimelineNav.test.tsx.snap
deleted file mode 100644
index 3588eccd6..000000000
--- a/components/Timeline/TimelineNav/__tests__/__snapshots__/TimelineNav.test.tsx.snap
+++ /dev/null
@@ -1,59 +0,0 @@
-// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
-
-exports[`TimelineNav > should render with no props passed passed 1`] = `
-
-`;
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 000000000..7cdf2c949
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,479 @@
+import { defineConfig, globalIgnores } from 'eslint/config';
+import tseslint from 'typescript-eslint';
+import eslint from '@eslint/js';
+import { FlatCompat } from '@eslint/eslintrc';
+import eslintPluginUnicorn from 'eslint-plugin-unicorn';
+import eslintPluginReact from 'eslint-plugin-react';
+import eslintPluginReactHooks from 'eslint-plugin-react-hooks';
+import eslintPluginJsxA11y from 'eslint-plugin-jsx-a11y';
+import eslintPluginVitest from '@vitest/eslint-plugin';
+import eslintPluginImportX from 'eslint-plugin-import-x';
+import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
+import eslintPluginBetterTailwindcss from 'eslint-plugin-better-tailwindcss';
+import { getDefaultCallees } from 'eslint-plugin-better-tailwindcss/defaults';
+import noBarrelFiles from 'eslint-plugin-no-barrel-files';
+import eslintPluginLodash from 'eslint-plugin-lodash';
+import eslintPluginPlaywright from 'eslint-plugin-playwright';
+import eslintPluginStorybook from 'eslint-plugin-storybook';
+
+const compat = new FlatCompat({
+ baseDirectory: import.meta.dirname,
+});
+
+/** @type {import("eslint").Linter.Config['languageOptions']} */
+const languageOptions = {
+ parserOptions: {
+ project: true,
+ tsconfigRootDir: import.meta.dirname,
+ },
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+};
+
+export default defineConfig(
+ // ── Global ignores (replaces .eslintignore) ──
+ globalIgnores([
+ 'next-env.d.ts',
+ 'node_modules/**',
+ '.next/**',
+ '.github/**',
+ 'bin/**',
+ 'static/**',
+ 'cypress-coverage/**',
+ 'vitest-coverage/**',
+ 'src/.storybook/**',
+ '.storybook-dist/**',
+ 'storybook-static/**',
+ 'playwright-report/**',
+ 'test-results/**',
+ 'public/**',
+ '*.svg',
+ 'vitest.setup.tsx',
+ 'vitest.config.mts',
+ 'prettier.config.js',
+ 'postcss.config.js',
+ 'next-sitemap.config.js',
+ 'next.config.ts',
+ 'next.config.js',
+ 'playwright.config.ts',
+ 'sentry.client.config.js',
+ 'sentry.server.config.js',
+ ]),
+
+ // ── Base configs ──
+ eslint.configs.recommended,
+ ...tseslint.configs.strict,
+ ...tseslint.configs.stylistic,
+ { languageOptions },
+
+ // ── Next.js (via FlatCompat — @next/eslint-plugin-next doesn't export flat configs yet) ──
+ ...compat.plugins('@next/next').map((config) => ({
+ ...config,
+ files: ['**/*.{ts,tsx,js,jsx}'],
+ })),
+ {
+ files: ['**/*.{ts,tsx,js,jsx}'],
+ rules: {
+ '@next/next/google-font-display': 'warn',
+ '@next/next/google-font-preconnect': 'warn',
+ '@next/next/next-script-for-ga': 'warn',
+ '@next/next/no-async-client-component': 'error',
+ '@next/next/no-before-interactive-script-outside-document': 'warn',
+ '@next/next/no-css-tags': 'warn',
+ '@next/next/no-head-element': 'warn',
+ '@next/next/no-img-element': 'warn',
+ '@next/next/no-page-custom-font': 'warn',
+ '@next/next/no-styled-jsx-in-document': 'warn',
+ '@next/next/no-title-in-document-head': 'warn',
+ '@next/next/no-typos': 'warn',
+ '@next/next/no-unwanted-polyfillio': 'warn',
+ '@next/next/inline-script-id': 'error',
+ '@next/next/no-assign-module-variable': 'error',
+ '@next/next/no-document-import-in-page': 'error',
+ '@next/next/no-duplicate-head': 'error',
+ '@next/next/no-head-import-in-document': 'error',
+ '@next/next/no-html-link-for-pages': 'error',
+ '@next/next/no-script-component-in-head': 'error',
+ '@next/next/no-sync-scripts': 'error',
+ },
+ },
+
+ // ── React ──
+ eslintPluginReact.configs.flat['jsx-runtime'],
+ {
+ plugins: { 'react-hooks': eslintPluginReactHooks },
+ rules: eslintPluginReactHooks.configs.recommended.rules,
+ },
+ {
+ files: ['**/*.{ts,tsx,js,jsx}'],
+ settings: { react: { version: 'detect' } },
+ rules: {
+ 'react/function-component-definition': [
+ 'error',
+ {
+ namedComponents: ['arrow-function', 'function-declaration'],
+ unnamedComponents: ['arrow-function', 'function-expression'],
+ },
+ ],
+ 'react/forbid-prop-types': ['error', { forbid: ['any'] }],
+ 'react/jsx-curly-brace-presence': ['error', { props: 'never', children: 'never' }],
+ 'react/jsx-filename-extension': ['error', { extensions: ['.js', '.tsx'] }],
+ 'react/jsx-max-props-per-line': ['error', { maximum: 1, when: 'multiline' }],
+ 'react/no-unescaped-entities': 'off',
+ 'react/jsx-no-target-blank': 'off',
+ 'react/jsx-no-useless-fragment': ['error', { allowExpressions: true }],
+ 'react/jsx-one-expression-per-line': 'off',
+ 'react/jsx-props-no-spreading': 'off',
+ 'react/no-did-mount-set-state': 'off',
+ 'react/no-unused-prop-types': 'error',
+ 'react/no-unused-state': 'error',
+ 'react/prefer-stateless-function': 'off',
+ 'react/react-in-jsx-scope': 'off',
+ 'react/state-in-constructor': ['error', 'never'],
+ 'react/static-property-placement': 'off',
+ },
+ },
+
+ // ── JSX Accessibility ──
+ eslintPluginJsxA11y.flatConfigs.recommended,
+ {
+ files: ['**/*.{ts,tsx,js,jsx}'],
+ rules: {
+ 'jsx-a11y/anchor-is-valid': [
+ 'error',
+ {
+ components: ['Link'],
+ specialLink: ['hrefLeft', 'hrefRight'],
+ aspects: ['invalidHref', 'preferButton'],
+ },
+ ],
+ 'jsx-a11y/label-has-associated-control': [
+ 2,
+ {
+ labelComponents: ['Label'],
+ labelAttributes: ['for'],
+ controlComponents: ['Input', 'Select'],
+ },
+ ],
+ },
+ },
+
+ // ── Import-X (replaces eslint-plugin-import) ──
+ eslintPluginImportX.flatConfigs.recommended,
+ eslintPluginImportX.flatConfigs.typescript,
+ {
+ files: ['**/*.{ts,tsx,js,jsx}'],
+ rules: {
+ 'import-x/extensions': [
+ 'error',
+ 'never',
+ {
+ css: 'always',
+ jpg: 'always',
+ json: 'always',
+ png: 'always',
+ svg: 'always',
+ stories: 'always',
+ },
+ ],
+ 'import-x/no-unresolved': 'off',
+ 'import-x/no-extraneous-dependencies': ['error', { devDependencies: true }],
+ 'import-x/order': [
+ 'error',
+ { groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'] },
+ ],
+ 'import-x/prefer-default-export': 'off',
+ 'import-x/no-named-as-default': 'off',
+ 'import-x/namespace': 'off',
+ },
+ },
+
+ // ── Unicorn (individual rules, updated names from v43→v63) ──
+ {
+ files: ['**/*.{ts,tsx,js,jsx}'],
+ plugins: { unicorn: eslintPluginUnicorn },
+ rules: {
+ 'unicorn/catch-error-name': 'error',
+ 'unicorn/error-message': 'error',
+ 'unicorn/no-abusive-eslint-disable': 'error',
+ 'unicorn/no-array-callback-reference': 'error',
+ 'unicorn/no-for-loop': 'error',
+ 'unicorn/no-unreadable-array-destructuring': 'error',
+ 'unicorn/no-zero-fractions': 'error',
+ 'unicorn/prefer-includes': 'error',
+ 'unicorn/prefer-dom-node-append': 'error',
+ 'unicorn/prefer-dom-node-remove': 'error',
+ 'unicorn/prefer-query-selector': 'error',
+ 'unicorn/prefer-spread': 'error',
+ 'unicorn/prefer-string-starts-ends-with': 'error',
+ 'unicorn/prefer-dom-node-text-content': 'error',
+ 'unicorn/prefer-type-error': 'error',
+ 'unicorn/throw-new-error': 'error',
+ },
+ },
+
+ // ── Lodash (v8 supports ESLint 9 natively) ──
+ {
+ files: ['**/*.{ts,tsx,js,jsx}'],
+ plugins: { lodash: eslintPluginLodash },
+ rules: {
+ 'lodash/import-scope': ['error', 'method'],
+ },
+ },
+
+ // ── Better Tailwind CSS ──
+ {
+ files: ['**/*.{ts,tsx}'],
+ ignores: ['**/*.test.{ts,tsx}'],
+ plugins: { 'better-tailwindcss': eslintPluginBetterTailwindcss },
+ rules: {
+ ...eslintPluginBetterTailwindcss.configs.recommended.rules,
+ 'better-tailwindcss/enforce-consistent-line-wrapping': 'off',
+ },
+ settings: {
+ 'better-tailwindcss': {
+ entryPoint: './src/common/styles/globals.css',
+ callees: [...getDefaultCallees(), 'cx', 'cva'],
+ },
+ },
+ },
+
+ // ── No Barrel Files ──
+ noBarrelFiles.flat,
+
+ // ── Storybook (flat config) ──
+ ...eslintPluginStorybook.configs['flat/recommended'],
+
+ // ── CommonJS files ──
+ {
+ files: ['**/*.js'],
+ languageOptions: {
+ sourceType: 'commonjs',
+ globals: {
+ module: 'readonly',
+ require: 'readonly',
+ exports: 'readonly',
+ __dirname: 'readonly',
+ __filename: 'readonly',
+ Buffer: 'readonly',
+ window: 'readonly',
+ document: 'readonly',
+ console: 'readonly',
+ process: 'readonly',
+ },
+ },
+ rules: {
+ '@typescript-eslint/no-unsafe-argument': 'off',
+ '@typescript-eslint/no-unsafe-assignment': 'off',
+ '@typescript-eslint/no-unsafe-call': 'off',
+ '@typescript-eslint/no-unsafe-member-access': 'off',
+ '@typescript-eslint/no-unsafe-return': 'off',
+ },
+ },
+
+ // ── Vanilla ESLint rules ──
+ {
+ files: ['**/*.{ts,tsx,js,jsx}'],
+ rules: {
+ 'arrow-body-style': 'off',
+ 'class-methods-use-this': 'off',
+ 'implicit-arrow-linebreak': 'off',
+ 'multiline-ternary': 'off',
+ 'no-console': 'warn',
+ 'no-extra-boolean-cast': 'off',
+ 'no-promise-executor-return': 'off',
+ 'no-restricted-imports': [
+ 'error',
+ {
+ paths: [
+ {
+ name: 'react-select',
+ message: 'Please use `@/components/Form/Select/ThemedReactSelect` instead.',
+ },
+ {
+ name: 'prop-types',
+ importNames: ['default'],
+ message:
+ 'Please use named imports of "prop-types".\n Example: "import { func } from \'prop-types\';"',
+ },
+ {
+ name: 'formik',
+ importNames: ['Form'],
+ message:
+ 'Please use our Form component to have good defaults defined.\n "import Form from \'@/components/Form/Form\';"',
+ },
+ {
+ name: 'react',
+ importNames: ['default'],
+ message: 'React is globally available for all page files.',
+ },
+ {
+ name: 'tailwind-merge',
+ importNames: ['twMerge'],
+ message:
+ 'Please import `cx` from `@/common/utils/cva.ts` instead of directly from tailwind-merge.',
+ },
+ {
+ name: 'class-variance-authority',
+ importNames: ['cx', 'cva'],
+ message:
+ 'Please import from `@/common/utils/cva.ts` instead of directly from class-variance-authority.',
+ },
+ ],
+ },
+ ],
+ 'no-use-before-define': 'off',
+ },
+ },
+
+ // ── TypeScript files override ──
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ rules: {
+ 'no-restricted-imports': 'off',
+
+ 'react/prop-types': 'off',
+ 'react/no-array-index-key': 'off',
+ 'react/require-default-props': 'off',
+
+ '@typescript-eslint/consistent-type-imports': 'error',
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
+ '@typescript-eslint/naming-convention': [
+ 'error',
+ {
+ selector: 'variable',
+ types: ['boolean'],
+ format: ['PascalCase', 'UPPER_CASE'],
+ prefix: [
+ 'is',
+ 'are',
+ 'was',
+ 'should',
+ 'has',
+ 'can',
+ 'did',
+ 'will',
+ 'IS_',
+ 'ARE_',
+ 'WAS_',
+ 'SHOULD_',
+ 'HAS_',
+ 'CAN_',
+ 'DID_',
+ 'WILL_',
+ ],
+ },
+ ],
+ '@typescript-eslint/no-empty-object-type': [
+ 'error',
+ { allowInterfaces: 'with-single-extends' },
+ ],
+ '@typescript-eslint/no-explicit-any': 'error',
+ '@typescript-eslint/no-restricted-imports': [
+ 'error',
+ {
+ paths: [
+ {
+ name: 'react-select',
+ message: 'Please use `@/components/Form/Select/ThemedReactSelect` instead.',
+ },
+ {
+ name: 'formik',
+ importNames: ['Form'],
+ message:
+ 'Please use our Form component to have good defaults defined.\n "import { Form } from \'@/components/Form/Form\';"',
+ },
+ {
+ name: 'react',
+ importNames: ['default'],
+ message: 'React is globally available for all page files.',
+ },
+ {
+ name: 'tailwind-merge',
+ importNames: ['twMerge'],
+ message:
+ 'Please import `cx` from `@/common/utils/cva.ts` instead of directly from tailwind-merge.',
+ },
+ {
+ name: 'class-variance-authority',
+ importNames: ['cx', 'cva'],
+ message:
+ 'Please import from `@/common/utils/cva.ts` instead of directly from class-variance-authority.',
+ },
+ ],
+ },
+ ],
+ '@typescript-eslint/no-unused-vars': ['error', { vars: 'all', varsIgnorePattern: '_' }],
+ '@typescript-eslint/unbound-method': 'off',
+ '@typescript-eslint/no-misused-promises': 'off',
+ '@typescript-eslint/no-unsafe-assignment': 'off',
+ '@typescript-eslint/no-unsafe-argument': 'off',
+ '@typescript-eslint/no-unsafe-call': 'off',
+ '@typescript-eslint/no-unsafe-member-access': 'off',
+ '@typescript-eslint/no-unsafe-return': 'off',
+ '@typescript-eslint/no-floating-promises': 'off',
+ '@typescript-eslint/require-await': 'off',
+ '@typescript-eslint/no-redundant-type-constituents': 'off',
+ '@typescript-eslint/ban-ts-comment': 'off',
+ },
+ },
+
+ // ── Test files (Vitest) ──
+ {
+ files: [
+ '**/*.test.ts',
+ '**/*.test.tsx',
+ '**/*.test.js',
+ '**/*.test.jsx',
+ 'src/test-utils/**/*.{ts,js}',
+ ],
+ plugins: { vitest: eslintPluginVitest },
+ languageOptions: {
+ globals: eslintPluginVitest.environments.env.globals,
+ },
+ rules: {
+ ...eslintPluginVitest.configs.recommended.rules,
+ 'vitest/consistent-test-it': ['error', { fn: 'it', withinDescribe: 'it' }],
+ 'vitest/expect-expect': ['error', { assertFunctionNames: ['expect', 'createSnapshotTest'] }],
+ 'vitest/prefer-lowercase-title': ['error', { ignore: ['describe'] }],
+ 'vitest/no-test-prefixes': 'error',
+ 'vitest/no-test-return-statement': 'error',
+ 'vitest/prefer-strict-equal': 'error',
+ 'vitest/valid-describe-callback': 'error',
+ },
+ },
+
+ // ── TypeScript test files (relaxed rules) ──
+ {
+ files: ['**/*.test.ts', '**/*.test.tsx'],
+ rules: {
+ '@typescript-eslint/no-non-null-assertion': 'off',
+ },
+ },
+
+ // ── Playwright E2E tests ──
+ {
+ files: ['src/e2e/**/*.spec.ts'],
+ ...eslintPluginPlaywright.configs['flat/recommended'],
+ rules: {
+ ...eslintPluginPlaywright.configs['flat/recommended'].rules,
+ 'func-names': 'off',
+ 'no-unused-expressions': 'off',
+ 'playwright/expect-expect': [
+ 'warn',
+ { assertFunctionNames: ['expect', 'assertError', 'assertFailedLogin'] },
+ ],
+ },
+ },
+
+ // ── API routes: allow console ──
+ {
+ files: ['src/app/api/**/*.ts'],
+ rules: {
+ 'no-console': 'off',
+ },
+ },
+
+ // ── Prettier (must be last) ──
+ eslintPluginPrettierRecommended,
+);
diff --git a/jsconfig.json b/jsconfig.json
deleted file mode 100644
index 65ae901c1..000000000
--- a/jsconfig.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "compilerOptions": {
- "jsx": "react",
- "checkJs": false,
- "target": "esnext",
- "allowSyntheticDefaultImports": true,
- "experimentalDecorators": true,
- "baseUrl": ".",
- "paths": {
- // Ensure intellisense continues to operate - match with webpack aliases
- "common/*": ["./common/*"],
- "components/*": ["./components/*"],
- "pages/*": ["./pages/*"],
- "public/*": ["./public/*"],
- "scripts/*": ["./scripts/*"],
- "static/*": ["./public/static/*"],
- "styles/*": ["./styles/*"],
- "test-utils/*": ["./test-utils/*"]
- }
- }
-}
diff --git a/next.config.js b/next.config.js
index 38c6cd13e..6d5517851 100644
--- a/next.config.js
+++ b/next.config.js
@@ -2,7 +2,7 @@
const hasBundleAnalyzer = process.env.ANALYZE === 'true';
const { withSentryConfig } = require('@sentry/nextjs');
const withBundleAnalyzer = require('@next/bundle-analyzer')({ enabled: hasBundleAnalyzer });
-const svgoConfig = require('./common/config/svgo');
+const svgoConfig = require('./src/common/config/svgo');
/**
* @see https://nextjs.org/docs/basic-features/typescript#type-checking-nextconfigjs
@@ -94,7 +94,7 @@ const nextConfig = {
];
},
- webpack: config => {
+ webpack: (config) => {
config.module.rules.push({
test: /\.svg$/,
use: [
diff --git a/package.json b/package.json
index 7e701084c..7451177df 100644
--- a/package.json
+++ b/package.json
@@ -10,13 +10,13 @@
"format": "prettier --write \"**/*\"",
"format:md": "prettier --write \"**/*.md\"",
"lint": "pnpm lint:scripts && pnpm format:md",
- "lint:ci": "pnpm eslint \"**/*.{js,jsx,ts,tsx}\"",
- "lint:scripts": "eslint --fix \"**/*.{js,jsx,ts,tsx}\"",
+ "lint:ci": "eslint src",
+ "lint:scripts": "eslint --fix src",
"postbuild": "next-sitemap",
"prepare": "husky",
"start": "next start -p 3000",
- "storybook": "storybook dev -p 9001 -c .storybook",
- "storybook:build": "storybook build -c .storybook -o .storybook-dist",
+ "storybook": "storybook dev -p 9001 -c src/.storybook",
+ "storybook:build": "storybook build -c src/.storybook -o .storybook-dist",
"test:e2e": "export LOCAL_PLAYWRIGHT=true && playwright test --headed",
"test:e2e:debug": "pnpm test:e2e --debug",
"test:e2e:dev": "export LOCAL_PLAYWRIGHT=true && playwright test --ui",
@@ -62,65 +62,70 @@
"yup": "^1.7.1"
},
"devDependencies": {
- "@operation_code/eslint-plugin-custom-rules": "^1.0.1",
+ "@eslint/eslintrc": "^3.3.5",
+ "@eslint/js": "^9.39.4",
+ "@faker-js/faker": "^10.3.0",
+ "@next/eslint-plugin-next": "^16.2.1",
"@playwright/test": "^1.56.1",
"@storybook/addon-docs": "^10.3.1",
"@storybook/nextjs": "^10.3.1",
"@svgr/webpack": "^8.1.0",
- "@tailwindcss/postcss": "^4.1.17",
+ "@tailwindcss/postcss": "^4.2.2",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/fingerprintjs2": "2",
"@types/fontfaceobserver": "^2.1.3",
- "@types/lodash": "^4.17.20",
+ "@types/lodash": "^4.17.24",
"@types/logrocket-react": "^3.0.3",
"@types/node": "^24.9.1",
"@types/object-hash": "^3.0.0",
"@types/prop-types": "^15.7.15",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
- "@typescript-eslint/eslint-plugin": "^6.21.0",
- "@typescript-eslint/parser": "^6.21.0",
"@vitejs/plugin-react": "^4.4.1",
"@vitest/coverage-v8": "^3.1.2",
+ "@vitest/eslint-plugin": "^1.6.13",
"@vitest/ui": "^3.1.2",
"axios-mock-adapter": "^2.1.0",
"chromatic": "^15.3.0",
"cross-env": "^7.0.3",
"css-loader": "^6.7.1",
"dotenv": "^17.2.3",
- "eslint": "^8.56.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-import": "^2.32.0",
+ "eslint": "^9.39.4",
+ "eslint-config-prettier": "^10.1.8",
+ "eslint-import-resolver-typescript": "^4.4.4",
+ "eslint-plugin-better-tailwindcss": "^4.3.2",
+ "eslint-plugin-import-x": "^4.16.2",
"eslint-plugin-jsx-a11y": "^6.10.2",
- "eslint-plugin-lodash": "^7.4.0",
- "eslint-plugin-playwright": "^2.2.2",
- "eslint-plugin-prettier": "^5.5.4",
+ "eslint-plugin-lodash": "^8.0.0",
+ "eslint-plugin-no-barrel-files": "^1.2.2",
+ "eslint-plugin-playwright": "^2.10.1",
+ "eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-react": "^7.37.5",
- "eslint-plugin-storybook": "^10.3.1",
- "eslint-plugin-unicorn": "^43.0.2",
- "eslint-plugin-vitest": "^0.3.22",
- "eslint-plugin-vitest-globals": "^1.5.0",
+ "eslint-plugin-react-hooks": "^7.0.1",
+ "eslint-plugin-storybook": "^10.3.2",
+ "eslint-plugin-unicorn": "^63.0.0",
"express": "^4.18.1",
- "faker": "^5.5.3",
"file-loader": "^6.2.0",
"husky": "^9.1.7",
"identity-obj-proxy": "^3.0.0",
"jsdom": "^26.1.0",
"lint-staged": "13.0.3",
"postcss": "^8.5.6",
- "prettier": "^3.6.2",
+ "prettier": "^3.8.1",
+ "prettier-plugin-tailwindcss": "^0.7.2",
"process": "0.11.10",
"react-is": "^19.2.4",
"require-context.macro": "^1.2.2",
"start-server-and-test": "^1.14.0",
"storybook": "^10.3.1",
"style-loader": "^3.3.1",
- "tailwindcss": "^4.1.17",
+ "tailwindcss": "^4.2.2",
"typescript": "^5.9.3",
+ "typescript-eslint": "^8.57.1",
"url-loader": "^4.1.1",
- "vite-plugin-magical-svg": "^1.8.0",
- "vite-tsconfig-paths": "^5.1.4",
+ "vite-plugin-magical-svg": "^1.9.0",
+ "vite-tsconfig-paths": "^6.1.1",
"vitest": "^3.1.2",
"webpack": "^5.102.1"
},
diff --git a/pathAliases.js b/pathAliases.js
deleted file mode 100644
index 7b9c8b189..000000000
--- a/pathAliases.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const path = require('path');
-
-module.exports = {
- common: path.resolve('./common'),
- components: path.resolve('./components'),
- pages: path.resolve('./pages'),
- public: path.resolve('./public'),
- scripts: path.resolve('./scripts'),
- static: path.resolve('./public/static'),
- 'test-utils': path.resolve('./test-utils'),
-};
diff --git a/playwright.config.ts b/playwright.config.ts
index 4c93d8e88..f24dcc2c5 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -8,7 +8,7 @@ dotenv.config({ path: path.resolve(__dirname, '.env') });
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
- testDir: './e2e',
+ testDir: './src/e2e',
/* Run tests in files in parallel */
fullyParallel: true,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b3d3394b5..a75f4b9fe 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -90,24 +90,33 @@ importers:
specifier: ^1.7.1
version: 1.7.1
devDependencies:
- '@operation_code/eslint-plugin-custom-rules':
- specifier: ^1.0.1
- version: 1.0.1(lodash@4.17.21)
+ '@eslint/eslintrc':
+ specifier: ^3.3.5
+ version: 3.3.5
+ '@eslint/js':
+ specifier: ^9.39.4
+ version: 9.39.4
+ '@faker-js/faker':
+ specifier: ^10.3.0
+ version: 10.3.0
+ '@next/eslint-plugin-next':
+ specifier: ^16.2.1
+ version: 16.2.1
'@playwright/test':
specifier: ^1.56.1
version: 1.56.1
'@storybook/addon-docs':
specifier: ^10.3.1
- version: 10.3.1(@types/react@19.2.14)(esbuild@0.25.12)(rollup@4.53.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(webpack@5.102.1(esbuild@0.25.12))
+ version: 10.3.1(@types/react@19.2.14)(esbuild@0.25.12)(rollup@4.53.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))(webpack@5.102.1(esbuild@0.25.12))
'@storybook/nextjs':
specifier: ^10.3.1
- version: 10.3.1(babel-plugin-macros@3.1.0)(esbuild@0.25.12)(next@16.2.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(type-fest@2.19.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1)(webpack@5.102.1(esbuild@0.25.12))
+ version: 10.3.1(babel-plugin-macros@3.1.0)(esbuild@0.25.12)(next@16.2.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(type-fest@2.19.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1)(webpack@5.102.1(esbuild@0.25.12))
'@svgr/webpack':
specifier: ^8.1.0
version: 8.1.0(typescript@5.9.3)
'@tailwindcss/postcss':
- specifier: ^4.1.17
- version: 4.1.17
+ specifier: ^4.2.2
+ version: 4.2.2
'@testing-library/jest-dom':
specifier: ^6.9.1
version: 6.9.1
@@ -121,8 +130,8 @@ importers:
specifier: ^2.1.3
version: 2.1.3
'@types/lodash':
- specifier: ^4.17.20
- version: 4.17.20
+ specifier: ^4.17.24
+ version: 4.17.24
'@types/logrocket-react':
specifier: ^3.0.3
version: 3.0.3
@@ -141,18 +150,15 @@ importers:
'@types/react-dom':
specifier: ^19.2.3
version: 19.2.3(@types/react@19.2.14)
- '@typescript-eslint/eslint-plugin':
- specifier: ^6.21.0
- version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)
- '@typescript-eslint/parser':
- specifier: ^6.21.0
- version: 6.21.0(eslint@8.57.1)(typescript@5.9.3)
'@vitejs/plugin-react':
specifier: ^4.4.1
- version: 4.7.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))
+ version: 4.7.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))
'@vitest/coverage-v8':
specifier: ^3.1.2
version: 3.2.4(vitest@3.2.4)
+ '@vitest/eslint-plugin':
+ specifier: ^1.6.13
+ version: 1.6.13(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4)
'@vitest/ui':
specifier: ^3.1.2
version: 3.2.4(vitest@3.2.4)
@@ -172,47 +178,50 @@ importers:
specifier: ^17.2.3
version: 17.2.3
eslint:
- specifier: ^8.56.0
- version: 8.57.1
+ specifier: ^9.39.4
+ version: 9.39.4(jiti@2.6.1)
eslint-config-prettier:
- specifier: ^9.1.0
- version: 9.1.2(eslint@8.57.1)
- eslint-plugin-import:
- specifier: ^2.32.0
- version: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)
+ specifier: ^10.1.8
+ version: 10.1.8(eslint@9.39.4(jiti@2.6.1))
+ eslint-import-resolver-typescript:
+ specifier: ^4.4.4
+ version: 4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-better-tailwindcss:
+ specifier: ^4.3.2
+ version: 4.3.2(eslint@9.39.4(jiti@2.6.1))(tailwindcss@4.2.2)(typescript@5.9.3)
+ eslint-plugin-import-x:
+ specifier: ^4.16.2
+ version: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))
eslint-plugin-jsx-a11y:
specifier: ^6.10.2
- version: 6.10.2(eslint@8.57.1)
+ version: 6.10.2(eslint@9.39.4(jiti@2.6.1))
eslint-plugin-lodash:
- specifier: ^7.4.0
- version: 7.4.0(eslint@8.57.1)
+ specifier: ^8.0.0
+ version: 8.0.0(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-no-barrel-files:
+ specifier: ^1.2.2
+ version: 1.2.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
eslint-plugin-playwright:
- specifier: ^2.2.2
- version: 2.3.0(eslint@8.57.1)
+ specifier: ^2.10.1
+ version: 2.10.1(eslint@9.39.4(jiti@2.6.1))
eslint-plugin-prettier:
- specifier: ^5.5.4
- version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2)
+ specifier: ^5.5.5
+ version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1))(prettier@3.8.1)
eslint-plugin-react:
specifier: ^7.37.5
- version: 7.37.5(eslint@8.57.1)
+ version: 7.37.5(eslint@9.39.4(jiti@2.6.1))
+ eslint-plugin-react-hooks:
+ specifier: ^7.0.1
+ version: 7.0.1(eslint@9.39.4(jiti@2.6.1))
eslint-plugin-storybook:
- specifier: ^10.3.1
- version: 10.3.1(eslint@8.57.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)
+ specifier: ^10.3.2
+ version: 10.3.2(eslint@9.39.4(jiti@2.6.1))(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)
eslint-plugin-unicorn:
- specifier: ^43.0.2
- version: 43.0.2(eslint@8.57.1)
- eslint-plugin-vitest:
- specifier: ^0.3.22
- version: 0.3.26(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)(vitest@3.2.4)
- eslint-plugin-vitest-globals:
- specifier: ^1.5.0
- version: 1.5.0
+ specifier: ^63.0.0
+ version: 63.0.0(eslint@9.39.4(jiti@2.6.1))
express:
specifier: ^4.18.1
version: 4.21.2
- faker:
- specifier: ^5.5.3
- version: 5.5.3
file-loader:
specifier: ^6.2.0
version: 6.2.0(webpack@5.102.1(esbuild@0.25.12))
@@ -232,8 +241,11 @@ importers:
specifier: ^8.5.6
version: 8.5.6
prettier:
- specifier: ^3.6.2
- version: 3.6.2
+ specifier: ^3.8.1
+ version: 3.8.1
+ prettier-plugin-tailwindcss:
+ specifier: ^0.7.2
+ version: 0.7.2(prettier@3.8.1)
process:
specifier: 0.11.10
version: 0.11.10
@@ -248,28 +260,31 @@ importers:
version: 1.15.5
storybook:
specifier: ^10.3.1
- version: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ version: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
style-loader:
specifier: ^3.3.1
version: 3.3.4(webpack@5.102.1(esbuild@0.25.12))
tailwindcss:
- specifier: ^4.1.17
- version: 4.1.17
+ specifier: ^4.2.2
+ version: 4.2.2
typescript:
specifier: ^5.9.3
version: 5.9.3
+ typescript-eslint:
+ specifier: ^8.57.1
+ version: 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
url-loader:
specifier: ^4.1.1
version: 4.1.1(file-loader@6.2.0(webpack@5.102.1(esbuild@0.25.12)))(webpack@5.102.1(esbuild@0.25.12))
vite-plugin-magical-svg:
- specifier: ^1.8.0
- version: 1.8.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))
+ specifier: ^1.9.0
+ version: 1.9.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))
vite-tsconfig-paths:
- specifier: ^5.1.4
- version: 5.1.4(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))
+ specifier: ^6.1.1
+ version: 6.1.1(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))
vitest:
specifier: ^3.1.2
- version: 3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ version: 3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
webpack:
specifier: ^5.102.1
version: 5.102.1(esbuild@0.25.12)
@@ -294,6 +309,10 @@ packages:
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@7.29.0':
+ resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/compat-data@7.28.5':
resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==}
engines: {node: '>=6.9.0'}
@@ -861,6 +880,10 @@ packages:
resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
engines: {node: '>=6.9.0'}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
+ engines: {node: '>=6.9.0'}
+
'@babel/template@7.27.2':
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
engines: {node: '>=6.9.0'}
@@ -912,9 +935,15 @@ packages:
resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
engines: {node: '>=10.0.0'}
+ '@emnapi/core@1.9.1':
+ resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==}
+
'@emnapi/runtime@1.9.1':
resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==}
+ '@emnapi/wasi-threads@1.2.0':
+ resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==}
+
'@emotion/babel-plugin@11.13.5':
resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==}
@@ -1112,12 +1141,6 @@ packages:
cpu: [x64]
os: [win32]
- '@eslint-community/eslint-utils@4.9.0':
- resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
-
'@eslint-community/eslint-utils@4.9.1':
resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1128,13 +1151,41 @@ packages:
resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/eslintrc@2.1.4':
- resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/config-array@0.21.2':
+ resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@8.57.1':
- resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/config-helpers@0.4.2':
+ resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.17.0':
+ resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/css-tree@3.6.9':
+ resolution: {integrity: sha512-3D5/OHibNEGk+wKwNwMbz63NMf367EoR4mVNNpxddCHKEb2Nez7z62J2U6YjtErSsZDoY0CsccmoUpdEbkogNA==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+
+ '@eslint/eslintrc@3.3.5':
+ resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.39.4':
+ resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.7':
+ resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.4.1':
+ resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@faker-js/faker@10.3.0':
+ resolution: {integrity: sha512-It0Sne6P3szg7JIi6CgKbvTZoMjxBZhcv91ZrqrNuaZQfB5WoqYYbzCUOq89YR+VY8juY9M1vDWmDDa2TzfXCw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0, npm: '>=10'}
'@fastify/otel@0.17.1':
resolution: {integrity: sha512-K4wyxfUZx2ux5o+b6BtTqouYFVILohLZmSbA2tKUueJstNcBnoGPVhllCaOvbQ3ZrXdUxUC/fyrSWSCqHhdOPg==}
@@ -1156,18 +1207,21 @@ packages:
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
- '@humanwhocodes/config-array@0.13.0':
- resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
- engines: {node: '>=10.10.0'}
- deprecated: Use @eslint/config-array instead
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.7':
+ resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
+ engines: {node: '>=18.18.0'}
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
- '@humanwhocodes/object-schema@2.0.3':
- resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
- deprecated: Use @eslint/object-schema instead
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
'@img/colour@1.1.0':
resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
@@ -1355,6 +1409,9 @@ packages:
'@types/react': '>=16'
react: '>=16'
+ '@napi-rs/wasm-runtime@0.2.12':
+ resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
+
'@next/bundle-analyzer@16.2.1':
resolution: {integrity: sha512-fbj2WE6dnCyG8CvQnrBfpHyxdOIyZ4aEHJY0bSqAmamRiIXDqunFQPDvuSOPo24mJE9zQHw7TY6d+sGrXO98TQ==}
@@ -1364,6 +1421,9 @@ packages:
'@next/env@16.2.1':
resolution: {integrity: sha512-n8P/HCkIWW+gVal2Z8XqXJ6aB3J0tuM29OcHpCsobWlChH/SITBs1DFBk/HajgrwDkqqBXPbuUuzgDvUekREPg==}
+ '@next/eslint-plugin-next@16.2.1':
+ resolution: {integrity: sha512-r0epZGo24eT4g08jJlg2OEryBphXqO8aL18oajoTKLzHJ6jVr6P6FI58DLMug04MwD3j8Fj0YK0slyzneKVyzA==}
+
'@next/swc-darwin-arm64@16.2.1':
resolution: {integrity: sha512-BwZ8w8YTaSEr2HIuXLMLxIdElNMPvY9fLqb20LX9A9OMGtJilhHLbCL3ggyd0TwjmMcTxi0XXt+ur1vWUoxj2Q==}
engines: {node: '>= 10'}
@@ -1632,10 +1692,8 @@ packages:
peerDependencies:
'@opentelemetry/api': ^1.1.0
- '@operation_code/eslint-plugin-custom-rules@1.0.1':
- resolution: {integrity: sha512-LYzWhUD6Nz+0adFgyNNoT7qxg2C3FfuU+QWJ8dcDf3K5aFCYdNKncHANcbfRwfPiDuxwA1ruednaRhDD7y0UQw==}
- peerDependencies:
- lodash: '>=4'
+ '@package-json/types@0.0.12':
+ resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==}
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
@@ -2045,9 +2103,6 @@ packages:
cpu: [x64]
os: [win32]
- '@rtsao/scc@1.1.0':
- resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
-
'@sentry-internal/browser-utils@10.45.0':
resolution: {integrity: sha512-ZPZpeIarXKScvquGx2AfNKcYiVNDA4wegMmjyGVsTA2JPmP0TrJoO3UybJS6KGDeee8V3I3EfD/ruauMm7jOFQ==}
engines: {node: '>=18'}
@@ -2381,69 +2436,69 @@ packages:
'@swc/helpers@0.5.15':
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
- '@tailwindcss/node@4.1.17':
- resolution: {integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==}
+ '@tailwindcss/node@4.2.2':
+ resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==}
- '@tailwindcss/oxide-android-arm64@4.1.17':
- resolution: {integrity: sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-android-arm64@4.2.2':
+ resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [android]
- '@tailwindcss/oxide-darwin-arm64@4.1.17':
- resolution: {integrity: sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-darwin-arm64@4.2.2':
+ resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [darwin]
- '@tailwindcss/oxide-darwin-x64@4.1.17':
- resolution: {integrity: sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-darwin-x64@4.2.2':
+ resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [darwin]
- '@tailwindcss/oxide-freebsd-x64@4.1.17':
- resolution: {integrity: sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-freebsd-x64@4.2.2':
+ resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [freebsd]
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17':
- resolution: {integrity: sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2':
+ resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==}
+ engines: {node: '>= 20'}
cpu: [arm]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.17':
- resolution: {integrity: sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm64-gnu@4.2.2':
+ resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@tailwindcss/oxide-linux-arm64-musl@4.1.17':
- resolution: {integrity: sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm64-musl@4.2.2':
+ resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@tailwindcss/oxide-linux-x64-gnu@4.1.17':
- resolution: {integrity: sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-x64-gnu@4.2.2':
+ resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@tailwindcss/oxide-linux-x64-musl@4.1.17':
- resolution: {integrity: sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-x64-musl@4.2.2':
+ resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@tailwindcss/oxide-wasm32-wasi@4.1.17':
- resolution: {integrity: sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==}
+ '@tailwindcss/oxide-wasm32-wasi@4.2.2':
+ resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
@@ -2454,24 +2509,24 @@ packages:
- '@emnapi/wasi-threads'
- tslib
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.17':
- resolution: {integrity: sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-win32-arm64-msvc@4.2.2':
+ resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [win32]
- '@tailwindcss/oxide-win32-x64-msvc@4.1.17':
- resolution: {integrity: sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-win32-x64-msvc@4.2.2':
+ resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [win32]
- '@tailwindcss/oxide@4.1.17':
- resolution: {integrity: sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide@4.2.2':
+ resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==}
+ engines: {node: '>= 20'}
- '@tailwindcss/postcss@4.1.17':
- resolution: {integrity: sha512-+nKl9N9mN5uJ+M7dBOOCzINw94MPstNR/GtIhz1fpZysxL/4a+No64jCBD6CPN+bIHWFx3KWuu8XJRrj/572Dw==}
+ '@tailwindcss/postcss@4.2.2':
+ resolution: {integrity: sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==}
'@testing-library/dom@8.20.1':
resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==}
@@ -2502,6 +2557,9 @@ packages:
peerDependencies:
'@testing-library/dom': '>=7.21.4'
+ '@tybys/wasm-util@0.10.1':
+ resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
+
'@types/airtable@0.10.5':
resolution: {integrity: sha512-7d/sxOUdNrS/OTK7712qUqvb3GH8Y8ts/G2rxgVCZRw9MvfWRvX4yOs794q+WlUqYEdnkrYIPiule9+bYMslhg==}
deprecated: This is a stub types definition. airtable provides its own type definitions, so you do not need this installed.
@@ -2559,11 +2617,8 @@ packages:
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
- '@types/json5@0.0.29':
- resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
-
- '@types/lodash@4.17.20':
- resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
+ '@types/lodash@4.17.24':
+ resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==}
'@types/logrocket-react@3.0.3':
resolution: {integrity: sha512-fGpJV4ccwfWAL0293EQx5HrS4PGMvXBpTQOXpA/SLXSCm7fC2O19w7Y3CcgWDmyawQnqbzd8faKAL12VhPdZKA==}
@@ -2580,9 +2635,6 @@ packages:
'@types/node@24.10.0':
resolution: {integrity: sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==}
- '@types/normalize-package-data@2.4.4':
- resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
-
'@types/object-hash@3.0.6':
resolution: {integrity: sha512-fOBV8C1FIu2ELinoILQ+ApxcUKz4ngq+IWUYrxSGjXzzjUALijilampwkMgEtJ+h2njAW3pi853QpzNVCHB73w==}
@@ -2623,26 +2675,20 @@ packages:
'@types/webpack-env@1.18.8':
resolution: {integrity: sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A==}
- '@typescript-eslint/eslint-plugin@6.21.0':
- resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ '@typescript-eslint/eslint-plugin@8.57.1':
+ resolution: {integrity: sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
- eslint: ^7.0.0 || ^8.0.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
+ '@typescript-eslint/parser': ^8.57.1
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@6.21.0':
- resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ '@typescript-eslint/parser@8.57.1':
+ resolution: {integrity: sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/project-service@8.57.1':
resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==}
@@ -2650,14 +2696,6 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@6.21.0':
- resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
- engines: {node: ^16.0.0 || >=18.0.0}
-
- '@typescript-eslint/scope-manager@7.18.0':
- resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
- engines: {node: ^18.18.0 || >=20.0.0}
-
'@typescript-eslint/scope-manager@8.57.1':
resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2668,64 +2706,23 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@6.21.0':
- resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==}
- engines: {node: ^16.0.0 || >=18.0.0}
+ '@typescript-eslint/type-utils@8.57.1':
+ resolution: {integrity: sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- '@typescript-eslint/types@6.21.0':
- resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
- engines: {node: ^16.0.0 || >=18.0.0}
-
- '@typescript-eslint/types@7.18.0':
- resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/types@8.57.1':
resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@6.21.0':
- resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
- engines: {node: ^16.0.0 || >=18.0.0}
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- '@typescript-eslint/typescript-estree@7.18.0':
- resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
- engines: {node: ^18.18.0 || >=20.0.0}
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
'@typescript-eslint/typescript-estree@8.57.1':
resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/utils@6.21.0':
- resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==}
- engines: {node: ^16.0.0 || >=18.0.0}
- peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
-
- '@typescript-eslint/utils@7.18.0':
- resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
- engines: {node: ^18.18.0 || >=20.0.0}
- peerDependencies:
- eslint: ^8.56.0
-
'@typescript-eslint/utils@8.57.1':
resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2733,20 +2730,117 @@ packages:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/visitor-keys@6.21.0':
- resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
- engines: {node: ^16.0.0 || >=18.0.0}
-
- '@typescript-eslint/visitor-keys@7.18.0':
- resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
- engines: {node: ^18.18.0 || >=20.0.0}
-
'@typescript-eslint/visitor-keys@8.57.1':
resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@ungap/structured-clone@1.3.0':
- resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
+ '@unrs/resolver-binding-android-arm-eabi@1.11.1':
+ resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
+ cpu: [arm]
+ os: [android]
+
+ '@unrs/resolver-binding-android-arm64@1.11.1':
+ resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==}
+ cpu: [arm64]
+ os: [android]
+
+ '@unrs/resolver-binding-darwin-arm64@1.11.1':
+ resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@unrs/resolver-binding-darwin-x64@1.11.1':
+ resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@unrs/resolver-binding-freebsd-x64@1.11.1':
+ resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
+ resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
+ resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
+ resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
+ resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
+ resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
+ resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
+ resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
+ resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
+ resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@unrs/resolver-binding-linux-x64-musl@1.11.1':
+ resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@unrs/resolver-binding-wasm32-wasi@1.11.1':
+ resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
+ resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
+ resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
+ resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==}
+ cpu: [x64]
+ os: [win32]
+
+ '@valibot/to-json-schema@1.6.0':
+ resolution: {integrity: sha512-d6rYyK5KVa2XdqamWgZ4/Nr+cXhxjy7lmpe6Iajw15J/jmU+gyxl2IEd1Otg1d7Rl3gOQL5reulnSypzBtYy1A==}
+ peerDependencies:
+ valibot: ^1.3.0
'@vitejs/plugin-react@4.7.0':
resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==}
@@ -2763,6 +2857,22 @@ packages:
'@vitest/browser':
optional: true
+ '@vitest/eslint-plugin@1.6.13':
+ resolution: {integrity: sha512-ui7JGWBoQpS5NKKW0FDb1eTuFEZ5EupEv2Psemuyfba7DfA5K52SeDLelt6P4pQJJ/4UGkker/BgMk/KrjH3WQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': '*'
+ eslint: '>=8.57.0'
+ typescript: '>=5.0.0'
+ vitest: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+ typescript:
+ optional: true
+ vitest:
+ optional: true
+
'@vitest/expect@3.2.4':
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
@@ -2925,6 +3035,9 @@ packages:
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@6.14.0:
+ resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==}
+
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
@@ -2990,18 +3103,10 @@ packages:
resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==}
engines: {node: '>= 0.4'}
- array-union@2.1.0:
- resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
- engines: {node: '>=8'}
-
array.prototype.findlast@1.2.5:
resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
engines: {node: '>= 0.4'}
- array.prototype.findlastindex@1.2.6:
- resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==}
- engines: {node: '>= 0.4'}
-
array.prototype.flat@1.3.3:
resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
engines: {node: '>= 0.4'}
@@ -3187,9 +3292,9 @@ packages:
buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
- builtin-modules@3.3.0:
- resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
- engines: {node: '>=6'}
+ builtin-modules@5.0.0:
+ resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==}
+ engines: {node: '>=18.20'}
builtin-status-codes@3.0.0:
resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==}
@@ -3244,6 +3349,9 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ change-case@5.4.4:
+ resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
+
check-error@2.1.1:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
@@ -3272,8 +3380,8 @@ packages:
resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
engines: {node: '>=6.0'}
- ci-info@3.9.0:
- resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ ci-info@4.4.0:
+ resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==}
engines: {node: '>=8'}
cipher-base@1.0.7:
@@ -3350,6 +3458,10 @@ packages:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
+ comment-parser@1.4.5:
+ resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==}
+ engines: {node: '>= 12.0.0'}
+
common-path-prefix@3.0.0:
resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==}
@@ -3480,8 +3592,8 @@ packages:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
- css-tree@3.1.0:
- resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
+ css-tree@3.2.1:
+ resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
css-what@6.2.2:
@@ -3548,14 +3660,6 @@ packages:
supports-color:
optional: true
- debug@3.2.7:
- resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -3644,10 +3748,6 @@ packages:
diffie-hellman@5.0.3:
resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==}
- dir-glob@3.0.1:
- resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
- engines: {node: '>=8'}
-
doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
@@ -3750,6 +3850,10 @@ packages:
resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==}
engines: {node: '>=10.13.0'}
+ enhanced-resolve@5.20.1:
+ resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==}
+ engines: {node: '>=10.13.0'}
+
entities@2.2.0:
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
@@ -3833,44 +3937,58 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eslint-config-prettier@9.1.2:
- resolution: {integrity: sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==}
+ eslint-config-prettier@10.1.8:
+ resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
- eslint-import-resolver-node@0.3.9:
- resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+ eslint-import-context@0.1.9:
+ resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ unrs-resolver: ^1.0.0
+ peerDependenciesMeta:
+ unrs-resolver:
+ optional: true
- eslint-module-utils@2.12.1:
- resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==}
- engines: {node: '>=4'}
+ eslint-import-resolver-typescript@4.4.4:
+ resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==}
+ engines: {node: ^16.17.0 || >=18.6.0}
peerDependencies:
- '@typescript-eslint/parser': '*'
eslint: '*'
- eslint-import-resolver-node: '*'
- eslint-import-resolver-typescript: '*'
- eslint-import-resolver-webpack: '*'
+ eslint-plugin-import: '*'
+ eslint-plugin-import-x: '*'
peerDependenciesMeta:
- '@typescript-eslint/parser':
- optional: true
- eslint:
+ eslint-plugin-import:
optional: true
- eslint-import-resolver-node:
+ eslint-plugin-import-x:
optional: true
- eslint-import-resolver-typescript:
+
+ eslint-plugin-better-tailwindcss@4.3.2:
+ resolution: {integrity: sha512-1DLX2QmHmOj3u667f8vEI0zKoRc0Y1qJt33tfIeIkpTyzWaz9b2GzWBLD4bR+WJ/kxzC0Skcbx7cMerRWQ6OYg==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=23.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0
+ oxlint: ^1.35.0
+ tailwindcss: ^3.3.0 || ^4.1.17
+ peerDependenciesMeta:
+ eslint:
optional: true
- eslint-import-resolver-webpack:
+ oxlint:
optional: true
- eslint-plugin-import@2.32.0:
- resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==}
- engines: {node: '>=4'}
+ eslint-plugin-import-x@4.16.2:
+ resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': '*'
- eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
+ '@typescript-eslint/utils': ^8.56.0
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ eslint-import-resolver-node: '*'
peerDependenciesMeta:
- '@typescript-eslint/parser':
+ '@typescript-eslint/utils':
+ optional: true
+ eslint-import-resolver-node:
optional: true
eslint-plugin-jsx-a11y@6.10.2:
@@ -3879,20 +3997,23 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
- eslint-plugin-lodash@7.4.0:
- resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==}
+ eslint-plugin-lodash@8.0.0:
+ resolution: {integrity: sha512-7DA8485FolmWRzh+8t4S8Pzin2TTuWfb0ZW3j/2fYElgk82ZanFz8vDcvc4BBPceYdX1p/za+tkbO68maDBGGw==}
engines: {node: '>=10'}
peerDependencies:
- eslint: '>=2'
+ eslint: '>=9.0.0'
+
+ eslint-plugin-no-barrel-files@1.2.2:
+ resolution: {integrity: sha512-DF2bnHuEHClmL1+maBO5TD2HnnRsLj8J69FFtVkjObkELyjCXaWBsk+URJkqBpdOWURlL+raGX9AEpWCAiOV0g==}
- eslint-plugin-playwright@2.3.0:
- resolution: {integrity: sha512-7UeUuIb5SZrNkrUGb2F+iwHM97kn33/huajcVtAaQFCSMUYGNFvjzRPil5C0OIppslPfuOV68M/zsisXx+/ZvQ==}
+ eslint-plugin-playwright@2.10.1:
+ resolution: {integrity: sha512-qea3UxBOb8fTwJ77FMApZKvRye5DOluDHcev0LDJwID3RELeun0JlqzrNIXAB/SXCyB/AesCW/6sZfcT9q3Edg==}
engines: {node: '>=16.9.0'}
peerDependencies:
eslint: '>=8.40.0'
- eslint-plugin-prettier@5.5.4:
- resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==}
+ eslint-plugin-prettier@5.5.5:
+ resolution: {integrity: sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
'@types/eslint': '>=8.0.0'
@@ -3905,83 +4026,71 @@ packages:
eslint-config-prettier:
optional: true
+ eslint-plugin-react-hooks@7.0.1:
+ resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+
eslint-plugin-react@7.37.5:
resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
engines: {node: '>=4'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- eslint-plugin-storybook@10.3.1:
- resolution: {integrity: sha512-zWE8cQTJo2Wuw6I/Ag73rP5rLbaypm5p3G2BV74Y7Lc8NwNclAwNi5u+yl9qBQLW2aSXotDW9fjj3Mx+GeEgfA==}
+ eslint-plugin-storybook@10.3.2:
+ resolution: {integrity: sha512-1FYhA7K2BcLpeuhjddFKhzNW7ttg+6u9EPQlcjBL7ami4vpqRn1r5f2/WcB5GjP0x5i0C7t+0n0yCw83Y7ZHYQ==}
peerDependencies:
eslint: '>=8'
- storybook: ^10.3.1
-
- eslint-plugin-unicorn@43.0.2:
- resolution: {integrity: sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg==}
- engines: {node: '>=14.18'}
- peerDependencies:
- eslint: '>=8.18.0'
-
- eslint-plugin-vitest-globals@1.5.0:
- resolution: {integrity: sha512-ZSsVOaOIig0oVLzRTyk8lUfBfqzWxr/J3/NFMfGGRIkGQPejJYmDH3gXmSJxAojts77uzAGB/UmVrwi2DC4LYA==}
+ storybook: ^10.3.2
- eslint-plugin-vitest@0.3.26:
- resolution: {integrity: sha512-oxe5JSPgRjco8caVLTh7Ti8PxpwJdhSV0hTQAmkFcNcmy/9DnqLB/oNVRA11RmVRP//2+jIIT6JuBEcpW3obYg==}
- engines: {node: ^18.0.0 || >= 20.0.0}
+ eslint-plugin-unicorn@63.0.0:
+ resolution: {integrity: sha512-Iqecl9118uQEXYh7adylgEmGfkn5es3/mlQTLLkd4pXkIk9CTGrAbeUux+YljSa2ohXCBmQQ0+Ej1kZaFgcfkA==}
+ engines: {node: ^20.10.0 || >=21.0.0}
peerDependencies:
- '@typescript-eslint/eslint-plugin': '*'
- eslint: '>=8.0.0'
- vitest: '*'
- peerDependenciesMeta:
- '@typescript-eslint/eslint-plugin':
- optional: true
- vitest:
- optional: true
+ eslint: '>=9.38.0'
eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'}
- eslint-scope@7.2.2:
- resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- eslint-utils@3.0.0:
- resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
- engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
- peerDependencies:
- eslint: '>=5'
-
- eslint-visitor-keys@2.1.0:
- resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
- engines: {node: '>=10'}
+ eslint-scope@8.4.0:
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-visitor-keys@4.2.1:
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
eslint-visitor-keys@5.0.1:
resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- eslint@8.57.1:
- resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ eslint@9.39.4:
+ resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
- espree@9.6.1:
- resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ espree@10.4.0:
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
- esquery@1.6.0:
- resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
engines: {node: '>=0.10'}
esrecurse@4.3.0:
@@ -4040,15 +4149,16 @@ packages:
resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
engines: {node: '>= 0.10.0'}
- faker@5.5.3:
- resolution: {integrity: sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==}
-
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
fast-diff@1.3.0:
resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+ fast-glob@3.3.1:
+ resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+ engines: {node: '>=8.6.0'}
+
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
@@ -4084,9 +4194,9 @@ packages:
fflate@0.8.2:
resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
- file-entry-cache@6.0.1:
- resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
- engines: {node: ^10.12.0 || >=12.0.0}
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
file-loader@6.2.0:
resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
@@ -4117,6 +4227,10 @@ packages:
find-root@1.1.0:
resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
+ find-up-simple@1.0.1:
+ resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
+ engines: {node: '>=18'}
+
find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
@@ -4137,9 +4251,16 @@ packages:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
flatted@3.3.3:
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+ flatted@3.4.2:
+ resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
+
follow-redirects@1.15.11:
resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
engines: {node: '>=4.0'}
@@ -4248,6 +4369,9 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
+ get-tsconfig@4.13.7:
+ resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==}
+
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -4271,22 +4395,22 @@ packages:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
- globals@13.24.0:
- resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
- engines: {node: '>=8'}
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
globals@16.5.0:
resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==}
engines: {node: '>=18'}
+ globals@17.4.0:
+ resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==}
+ engines: {node: '>=18'}
+
globalthis@1.0.4:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines: {node: '>= 0.4'}
- globby@11.1.0:
- resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
- engines: {node: '>=10'}
-
globrex@0.1.2:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
@@ -4297,9 +4421,6 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- graphemer@1.4.0:
- resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
-
gzip-size@6.0.0:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
@@ -4349,15 +4470,18 @@ packages:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
+ hermes-estree@0.25.1:
+ resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==}
+
+ hermes-parser@0.25.1:
+ resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==}
+
hmac-drbg@1.0.1:
resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==}
hoist-non-react-statics@3.3.2:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
- hosted-git-info@2.8.9:
- resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
-
html-encoding-sniffer@4.0.0:
resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
engines: {node: '>=18'}
@@ -4445,6 +4569,10 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
image-size@0.5.5:
resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
engines: {node: '>=0.10.0'}
@@ -4474,6 +4602,10 @@ packages:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
+ indent-string@5.0.0:
+ resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
+ engines: {node: '>=12'}
+
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
@@ -4523,9 +4655,12 @@ packages:
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
engines: {node: '>=4'}
- is-builtin-module@3.2.1:
- resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
- engines: {node: '>=6'}
+ is-builtin-module@5.0.0:
+ resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==}
+ engines: {node: '>=18.20'}
+
+ is-bun-module@2.0.0:
+ resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==}
is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
@@ -4597,10 +4732,6 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
- is-path-inside@3.0.3:
- resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
- engines: {node: '>=8'}
-
is-plain-object@5.0.0:
resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
engines: {node: '>=0.10.0'}
@@ -4715,6 +4846,10 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
+ hasBin: true
+
jsdom@26.1.0:
resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
engines: {node: '>=18'}
@@ -4744,10 +4879,6 @@ packages:
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
- json5@1.0.2:
- resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
- hasBin: true
-
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
@@ -4783,78 +4914,78 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
- lightningcss-android-arm64@1.30.2:
- resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==}
+ lightningcss-android-arm64@1.32.0:
+ resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [android]
- lightningcss-darwin-arm64@1.30.2:
- resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==}
+ lightningcss-darwin-arm64@1.32.0:
+ resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
- lightningcss-darwin-x64@1.30.2:
- resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==}
+ lightningcss-darwin-x64@1.32.0:
+ resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
- lightningcss-freebsd-x64@1.30.2:
- resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==}
+ lightningcss-freebsd-x64@1.32.0:
+ resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
- lightningcss-linux-arm-gnueabihf@1.30.2:
- resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==}
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
- lightningcss-linux-arm64-gnu@1.30.2:
- resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==}
+ lightningcss-linux-arm64-gnu@1.32.0:
+ resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- lightningcss-linux-arm64-musl@1.30.2:
- resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
+ lightningcss-linux-arm64-musl@1.32.0:
+ resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
- lightningcss-linux-x64-gnu@1.30.2:
- resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
+ lightningcss-linux-x64-gnu@1.32.0:
+ resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
- lightningcss-linux-x64-musl@1.30.2:
- resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
+ lightningcss-linux-x64-musl@1.32.0:
+ resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
- lightningcss-win32-arm64-msvc@1.30.2:
- resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
+ lightningcss-win32-arm64-msvc@1.32.0:
+ resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [win32]
- lightningcss-win32-x64-msvc@1.30.2:
- resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==}
+ lightningcss-win32-x64-msvc@1.32.0:
+ resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
- lightningcss@1.30.2:
- resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==}
+ lightningcss@1.32.0:
+ resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
engines: {node: '>= 12.0.0'}
lilconfig@2.0.5:
@@ -4992,8 +5123,11 @@ packages:
mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
- mdn-data@2.12.2:
- resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
+ mdn-data@2.23.0:
+ resolution: {integrity: sha512-786vq1+4079JSeu2XdcDjrhi/Ry7BWtjDl9WtGPWLiIHb2T66GvIVflZTBoSNZ5JqTtJGYEVMuFA/lbQlMOyDQ==}
+
+ mdn-data@2.27.1:
+ resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==}
media-typer@0.3.0:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
@@ -5069,9 +5203,8 @@ packages:
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
- minimatch@9.0.3:
- resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
- engines: {node: '>=16 || 14 >=14.17'}
+ minimatch@3.1.5:
+ resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
minimatch@9.0.5:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
@@ -5109,11 +5242,16 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ napi-postinstall@0.3.4:
+ resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ hasBin: true
+
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
- needle@3.3.1:
- resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==}
+ needle@3.5.0:
+ resolution: {integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==}
engines: {node: '>= 4.4.x'}
hasBin: true
@@ -5176,9 +5314,6 @@ packages:
node-releases@2.0.27:
resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
- normalize-package-data@2.5.0:
- resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
-
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
@@ -5229,10 +5364,6 @@ packages:
resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
engines: {node: '>= 0.4'}
- object.groupby@1.0.3:
- resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
- engines: {node: '>= 0.4'}
-
object.values@1.2.1:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
@@ -5528,12 +5659,67 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier-linter-helpers@1.0.0:
- resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ prettier-linter-helpers@1.0.1:
+ resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==}
engines: {node: '>=6.0.0'}
- prettier@3.6.2:
- resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
+ prettier-plugin-tailwindcss@0.7.2:
+ resolution: {integrity: sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==}
+ engines: {node: '>=20.19'}
+ peerDependencies:
+ '@ianvs/prettier-plugin-sort-imports': '*'
+ '@prettier/plugin-hermes': '*'
+ '@prettier/plugin-oxc': '*'
+ '@prettier/plugin-pug': '*'
+ '@shopify/prettier-plugin-liquid': '*'
+ '@trivago/prettier-plugin-sort-imports': '*'
+ '@zackad/prettier-plugin-twig': '*'
+ prettier: ^3.0
+ prettier-plugin-astro: '*'
+ prettier-plugin-css-order: '*'
+ prettier-plugin-jsdoc: '*'
+ prettier-plugin-marko: '*'
+ prettier-plugin-multiline-arrays: '*'
+ prettier-plugin-organize-attributes: '*'
+ prettier-plugin-organize-imports: '*'
+ prettier-plugin-sort-imports: '*'
+ prettier-plugin-svelte: '*'
+ peerDependenciesMeta:
+ '@ianvs/prettier-plugin-sort-imports':
+ optional: true
+ '@prettier/plugin-hermes':
+ optional: true
+ '@prettier/plugin-oxc':
+ optional: true
+ '@prettier/plugin-pug':
+ optional: true
+ '@shopify/prettier-plugin-liquid':
+ optional: true
+ '@trivago/prettier-plugin-sort-imports':
+ optional: true
+ '@zackad/prettier-plugin-twig':
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+ prettier-plugin-css-order:
+ optional: true
+ prettier-plugin-jsdoc:
+ optional: true
+ prettier-plugin-marko:
+ optional: true
+ prettier-plugin-multiline-arrays:
+ optional: true
+ prettier-plugin-organize-attributes:
+ optional: true
+ prettier-plugin-organize-imports:
+ optional: true
+ prettier-plugin-sort-imports:
+ optional: true
+ prettier-plugin-svelte:
+ optional: true
+
+ prettier@3.8.1:
+ resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==}
engines: {node: '>=14'}
hasBin: true
@@ -5707,14 +5893,6 @@ packages:
resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==}
engines: {node: '>=0.10.0'}
- read-pkg-up@7.0.1:
- resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
- engines: {node: '>=8'}
-
- read-pkg@5.2.0:
- resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
- engines: {node: '>=8'}
-
readable-stream@2.3.8:
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
@@ -5795,6 +5973,9 @@ packages:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
resolve-url-loader@5.0.0:
resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==}
engines: {node: '>=12'}
@@ -5864,9 +6045,6 @@ packages:
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
engines: {node: '>= 0.4'}
- safe-regex@2.1.1:
- resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
-
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -5891,9 +6069,6 @@ packages:
webpack:
optional: true
- sax@1.4.3:
- resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==}
-
sax@1.6.0:
resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==}
engines: {node: '>=11.0.0'}
@@ -6006,10 +6181,6 @@ packages:
resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==}
engines: {node: '>=18'}
- slash@3.0.0:
- resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
- engines: {node: '>=8'}
-
slice-ansi@3.0.0:
resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
engines: {node: '>=8'}
@@ -6044,21 +6215,13 @@ packages:
resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
engines: {node: '>= 12'}
- spdx-correct@3.2.0:
- resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
-
- spdx-exceptions@2.5.0:
- resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
-
- spdx-expression-parse@3.0.1:
- resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
-
- spdx-license-ids@3.0.22:
- resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==}
-
split@0.3.3:
resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==}
+ stable-hash-x@0.2.0:
+ resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==}
+ engines: {node: '>=12.0.0'}
+
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
@@ -6231,23 +6394,32 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
- svgo@4.0.0:
- resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==}
+ svgo@4.0.1:
+ resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==}
engines: {node: '>=16'}
hasBin: true
symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
- synckit@0.11.11:
- resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
+ synckit@0.11.12:
+ resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==}
engines: {node: ^14.18.0 || >=16.0.0}
+ tailwind-csstree@0.1.5:
+ resolution: {integrity: sha512-ZHCKXz+TcBj7CJYStiuAtNenPpdHMrhgotOSNJ3UQTSTgwTfAyoyTA2SNW4oD8+2T6xt6awM7CZSU2+PXx9V3w==}
+ engines: {node: '>=18.18'}
+ peerDependencies:
+ '@eslint/css': '>=1.0.0'
+ peerDependenciesMeta:
+ '@eslint/css':
+ optional: true
+
tailwind-merge@3.3.1:
resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==}
- tailwindcss@4.1.17:
- resolution: {integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==}
+ tailwindcss@4.2.2:
+ resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==}
tapable@2.3.0:
resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
@@ -6278,9 +6450,6 @@ packages:
resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==}
engines: {node: '>=18'}
- text-table@0.2.0:
- resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
-
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
@@ -6356,12 +6525,6 @@ packages:
resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
engines: {node: '>=18'}
- ts-api-utils@1.4.3:
- resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
- engines: {node: '>=16'}
- peerDependencies:
- typescript: '>=4.2.0'
-
ts-api-utils@2.5.0:
resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
engines: {node: '>=18.12'}
@@ -6386,9 +6549,6 @@ packages:
resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==}
engines: {node: '>=10.13.0'}
- tsconfig-paths@3.15.0:
- resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
-
tsconfig-paths@4.2.0:
resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
engines: {node: '>=6'}
@@ -6403,26 +6563,14 @@ packages:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
- type-fest@0.20.2:
- resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
- engines: {node: '>=10'}
-
type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
- type-fest@0.6.0:
- resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
- engines: {node: '>=8'}
-
type-fest@0.7.1:
resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
engines: {node: '>=8'}
- type-fest@0.8.1:
- resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
- engines: {node: '>=8'}
-
type-fest@2.19.0:
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
engines: {node: '>=12.20'}
@@ -6447,6 +6595,13 @@ packages:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
+ typescript-eslint@8.57.1:
+ resolution: {integrity: sha512-fLvZWf+cAGw3tqMCYzGIU6yR8K+Y9NT2z23RwOjlNFF2HwSB3KhdEFI5lSBv8tNmFkkBShSjsCjzx1vahZfISA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
@@ -6487,6 +6642,9 @@ packages:
resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==}
engines: {node: '>=18.12.0'}
+ unrs-resolver@1.11.1:
+ resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
+
update-browserslist-db@1.1.4:
resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==}
hasBin: true
@@ -6564,8 +6722,13 @@ packages:
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
hasBin: true
- validate-npm-package-license@3.0.4:
- resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ valibot@1.3.1:
+ resolution: {integrity: sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==}
+ peerDependencies:
+ typescript: '>=5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
@@ -6576,18 +6739,15 @@ packages:
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
- vite-plugin-magical-svg@1.8.0:
- resolution: {integrity: sha512-bctv+fZ3I5eUE/WSeEr0/O1htrVtdAtG6h8FUwTzZNUPD+2BuDkaEvHaBA+/+REikGMqSOuQ8lxL+hjEQ0My5Q==}
+ vite-plugin-magical-svg@1.9.0:
+ resolution: {integrity: sha512-A0oWe+3PX7+tHcIH2kZz9CeOK1/GKy0aUFLtRbstL9QAstZju4VGiJCh/jidRQgWLRmALMpUe9KRFjJcOYUd4g==}
peerDependencies:
vite: '>= 3.0.0'
- vite-tsconfig-paths@5.1.4:
- resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==}
+ vite-tsconfig-paths@6.1.1:
+ resolution: {integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==}
peerDependencies:
vite: '*'
- peerDependenciesMeta:
- vite:
- optional: true
vite@7.2.2:
resolution: {integrity: sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==}
@@ -6745,6 +6905,10 @@ packages:
resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
engines: {node: '>= 0.4'}
+ which-typed-array@1.1.20:
+ resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
+ engines: {node: '>= 0.4'}
+
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
@@ -6844,6 +7008,15 @@ packages:
yup@1.7.1:
resolution: {integrity: sha512-GKHFX2nXul2/4Dtfxhozv701jLQHdf6J34YDh2cEkpqoo8le5Mg6/LrdseVLrFarmFygZTlfIhHx/QKfb/QWXw==}
+ zod-validation-error@4.0.2:
+ resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ zod: ^3.25.0 || ^4.0.0
+
+ zod@4.3.6:
+ resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==}
+
snapshots:
'@adobe/css-tools@4.4.4': {}
@@ -6869,6 +7042,12 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
+ '@babel/code-frame@7.29.0':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.28.5
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
'@babel/compat-data@7.28.5': {}
'@babel/core@7.28.5':
@@ -7604,6 +7783,8 @@ snapshots:
'@babel/runtime@7.28.4': {}
+ '@babel/runtime@7.29.2': {}
+
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
@@ -7653,11 +7834,22 @@ snapshots:
'@discoveryjs/json-ext@0.5.7': {}
+ '@emnapi/core@1.9.1':
+ dependencies:
+ '@emnapi/wasi-threads': 1.2.0
+ tslib: 2.8.1
+ optional: true
+
'@emnapi/runtime@1.9.1':
dependencies:
tslib: 2.8.1
optional: true
+ '@emnapi/wasi-threads@1.2.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@emotion/babel-plugin@11.13.5':
dependencies:
'@babel/helper-module-imports': 7.27.1
@@ -7800,33 +7992,58 @@ snapshots:
'@esbuild/win32-x64@0.25.12':
optional: true
- '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)':
+ '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.6.1))':
dependencies:
- eslint: 8.57.1
+ eslint: 9.39.4(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
- '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)':
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/config-array@0.21.2':
dependencies:
- eslint: 8.57.1
- eslint-visitor-keys: 3.4.3
+ '@eslint/object-schema': 2.1.7
+ debug: 4.4.3
+ minimatch: 3.1.5
+ transitivePeerDependencies:
+ - supports-color
- '@eslint-community/regexpp@4.12.2': {}
+ '@eslint/config-helpers@0.4.2':
+ dependencies:
+ '@eslint/core': 0.17.0
- '@eslint/eslintrc@2.1.4':
+ '@eslint/core@0.17.0':
dependencies:
- ajv: 6.12.6
+ '@types/json-schema': 7.0.15
+
+ '@eslint/css-tree@3.6.9':
+ dependencies:
+ mdn-data: 2.23.0
+ source-map-js: 1.2.1
+
+ '@eslint/eslintrc@3.3.5':
+ dependencies:
+ ajv: 6.14.0
debug: 4.4.3
- espree: 9.6.1
- globals: 13.24.0
+ espree: 10.4.0
+ globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.1
- js-yaml: 4.1.0
- minimatch: 3.1.2
+ js-yaml: 4.1.1
+ minimatch: 3.1.5
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
- '@eslint/js@8.57.1': {}
+ '@eslint/js@9.39.4': {}
+
+ '@eslint/object-schema@2.1.7': {}
+
+ '@eslint/plugin-kit@0.4.1':
+ dependencies:
+ '@eslint/core': 0.17.0
+ levn: 0.4.1
+
+ '@faker-js/faker@10.3.0': {}
'@fastify/otel@0.17.1(@opentelemetry/api@1.9.0)':
dependencies:
@@ -7855,17 +8072,16 @@ snapshots:
dependencies:
'@hapi/hoek': 9.3.0
- '@humanwhocodes/config-array@0.13.0':
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.7':
dependencies:
- '@humanwhocodes/object-schema': 2.0.3
- debug: 4.4.3
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.4.3
'@humanwhocodes/module-importer@1.0.1': {}
- '@humanwhocodes/object-schema@2.0.3': {}
+ '@humanwhocodes/retry@0.4.3': {}
'@img/colour@1.1.0':
optional: true
@@ -8005,6 +8221,13 @@ snapshots:
'@types/react': 19.2.14
react: 19.2.4
+ '@napi-rs/wasm-runtime@0.2.12':
+ dependencies:
+ '@emnapi/core': 1.9.1
+ '@emnapi/runtime': 1.9.1
+ '@tybys/wasm-util': 0.10.1
+ optional: true
+
'@next/bundle-analyzer@16.2.1':
dependencies:
webpack-bundle-analyzer: 4.10.1
@@ -8016,6 +8239,10 @@ snapshots:
'@next/env@16.2.1': {}
+ '@next/eslint-plugin-next@16.2.1':
+ dependencies:
+ fast-glob: 3.3.1
+
'@next/swc-darwin-arm64@16.2.1':
optional: true
@@ -8315,9 +8542,7 @@ snapshots:
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
- '@operation_code/eslint-plugin-custom-rules@1.0.1(lodash@4.17.21)':
- dependencies:
- lodash: 4.17.21
+ '@package-json/types@0.0.12': {}
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -8634,8 +8859,6 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.53.1':
optional: true
- '@rtsao/scc@1.1.0': {}
-
'@sentry-internal/browser-utils@10.45.0':
dependencies:
'@sentry/core': 10.45.0
@@ -8840,15 +9063,15 @@ snapshots:
'@sideway/pinpoint@2.0.0': {}
- '@storybook/addon-docs@10.3.1(@types/react@19.2.14)(esbuild@0.25.12)(rollup@4.53.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(webpack@5.102.1(esbuild@0.25.12))':
+ '@storybook/addon-docs@10.3.1(@types/react@19.2.14)(esbuild@0.25.12)(rollup@4.53.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))(webpack@5.102.1(esbuild@0.25.12))':
dependencies:
'@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.4)
- '@storybook/csf-plugin': 10.3.1(esbuild@0.25.12)(rollup@4.53.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(webpack@5.102.1(esbuild@0.25.12))
+ '@storybook/csf-plugin': 10.3.1(esbuild@0.25.12)(rollup@4.53.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))(webpack@5.102.1(esbuild@0.25.12))
'@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- '@storybook/react-dom-shim': 10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))
+ '@storybook/react-dom-shim': 10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
@@ -8857,9 +9080,9 @@ snapshots:
- vite
- webpack
- '@storybook/builder-webpack5@10.3.1(esbuild@0.25.12)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)':
+ '@storybook/builder-webpack5@10.3.1(esbuild@0.25.12)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)':
dependencies:
- '@storybook/core-webpack': 10.3.1(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))
+ '@storybook/core-webpack': 10.3.1(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))
case-sensitive-paths-webpack-plugin: 2.4.0
cjs-module-lexer: 1.4.3
css-loader: 7.1.4(webpack@5.102.1(esbuild@0.25.12))
@@ -8867,7 +9090,7 @@ snapshots:
fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.102.1(esbuild@0.25.12))
html-webpack-plugin: 5.6.4(webpack@5.102.1(esbuild@0.25.12))
magic-string: 0.30.21
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
style-loader: 4.0.0(webpack@5.102.1(esbuild@0.25.12))
terser-webpack-plugin: 5.3.14(esbuild@0.25.12)(webpack@5.102.1(esbuild@0.25.12))
ts-dedent: 2.2.0
@@ -8884,19 +9107,19 @@ snapshots:
- uglify-js
- webpack-cli
- '@storybook/core-webpack@10.3.1(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))':
+ '@storybook/core-webpack@10.3.1(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))':
dependencies:
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
ts-dedent: 2.2.0
- '@storybook/csf-plugin@10.3.1(esbuild@0.25.12)(rollup@4.53.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))(webpack@5.102.1(esbuild@0.25.12))':
+ '@storybook/csf-plugin@10.3.1(esbuild@0.25.12)(rollup@4.53.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))(webpack@5.102.1(esbuild@0.25.12))':
dependencies:
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
unplugin: 2.3.11
optionalDependencies:
esbuild: 0.25.12
rollup: 4.53.1
- vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
webpack: 5.102.1(esbuild@0.25.12)
'@storybook/global@5.0.0': {}
@@ -8906,7 +9129,7 @@ snapshots:
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
- '@storybook/nextjs@10.3.1(babel-plugin-macros@3.1.0)(esbuild@0.25.12)(next@16.2.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(type-fest@2.19.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1)(webpack@5.102.1(esbuild@0.25.12))':
+ '@storybook/nextjs@10.3.1(babel-plugin-macros@3.1.0)(esbuild@0.25.12)(next@16.2.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(type-fest@2.19.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1)(webpack@5.102.1(esbuild@0.25.12))':
dependencies:
'@babel/core': 7.28.5
'@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5)
@@ -8922,9 +9145,9 @@ snapshots:
'@babel/preset-typescript': 7.28.5(@babel/core@7.28.5)
'@babel/runtime': 7.28.4
'@pmmmwh/react-refresh-webpack-plugin': 0.5.17(react-refresh@0.14.2)(type-fest@2.19.0)(webpack-hot-middleware@2.26.1)(webpack@5.102.1(esbuild@0.25.12))
- '@storybook/builder-webpack5': 10.3.1(esbuild@0.25.12)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)
- '@storybook/preset-react-webpack': 10.3.1(esbuild@0.25.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)
- '@storybook/react': 10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)
+ '@storybook/builder-webpack5': 10.3.1(esbuild@0.25.12)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)
+ '@storybook/preset-react-webpack': 10.3.1(esbuild@0.25.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)
+ '@storybook/react': 10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)
'@types/semver': 7.7.1
babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.102.1(esbuild@0.25.12))
css-loader: 6.11.0(webpack@5.102.1(esbuild@0.25.12))
@@ -8940,7 +9163,7 @@ snapshots:
resolve-url-loader: 5.0.0
sass-loader: 16.0.7(webpack@5.102.1(esbuild@0.25.12))
semver: 7.7.3
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
style-loader: 3.3.4(webpack@5.102.1(esbuild@0.25.12))
styled-jsx: 5.1.6(@babel/core@7.28.5)(babel-plugin-macros@3.1.0)(react@19.2.4)
tsconfig-paths: 4.2.0
@@ -8966,9 +9189,9 @@ snapshots:
- webpack-hot-middleware
- webpack-plugin-serve
- '@storybook/preset-react-webpack@10.3.1(esbuild@0.25.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)':
+ '@storybook/preset-react-webpack@10.3.1(esbuild@0.25.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)':
dependencies:
- '@storybook/core-webpack': 10.3.1(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))
+ '@storybook/core-webpack': 10.3.1(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))
'@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.102.1(esbuild@0.25.12))
'@types/semver': 7.7.1
magic-string: 0.30.21
@@ -8977,7 +9200,7 @@ snapshots:
react-dom: 19.2.4(react@19.2.4)
resolve: 1.22.11
semver: 7.7.3
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
tsconfig-paths: 4.2.0
webpack: 5.102.1(esbuild@0.25.12)
optionalDependencies:
@@ -9003,21 +9226,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@storybook/react-dom-shim@10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))':
+ '@storybook/react-dom-shim@10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))':
dependencies:
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- '@storybook/react@10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)':
+ '@storybook/react@10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/react-dom-shim': 10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))
+ '@storybook/react-dom-shim': 10.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))
react: 19.2.4
react-docgen: 8.0.3
react-docgen-typescript: 2.4.0(typescript@5.9.3)
react-dom: 19.2.4(react@19.2.4)
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
optionalDependencies:
typescript: 5.9.3
transitivePeerDependencies:
@@ -9120,79 +9343,79 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@tailwindcss/node@4.1.17':
+ '@tailwindcss/node@4.2.2':
dependencies:
'@jridgewell/remapping': 2.3.5
- enhanced-resolve: 5.18.3
+ enhanced-resolve: 5.20.1
jiti: 2.6.1
- lightningcss: 1.30.2
+ lightningcss: 1.32.0
magic-string: 0.30.21
source-map-js: 1.2.1
- tailwindcss: 4.1.17
+ tailwindcss: 4.2.2
- '@tailwindcss/oxide-android-arm64@4.1.17':
+ '@tailwindcss/oxide-android-arm64@4.2.2':
optional: true
- '@tailwindcss/oxide-darwin-arm64@4.1.17':
+ '@tailwindcss/oxide-darwin-arm64@4.2.2':
optional: true
- '@tailwindcss/oxide-darwin-x64@4.1.17':
+ '@tailwindcss/oxide-darwin-x64@4.2.2':
optional: true
- '@tailwindcss/oxide-freebsd-x64@4.1.17':
+ '@tailwindcss/oxide-freebsd-x64@4.2.2':
optional: true
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17':
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2':
optional: true
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.17':
+ '@tailwindcss/oxide-linux-arm64-gnu@4.2.2':
optional: true
- '@tailwindcss/oxide-linux-arm64-musl@4.1.17':
+ '@tailwindcss/oxide-linux-arm64-musl@4.2.2':
optional: true
- '@tailwindcss/oxide-linux-x64-gnu@4.1.17':
+ '@tailwindcss/oxide-linux-x64-gnu@4.2.2':
optional: true
- '@tailwindcss/oxide-linux-x64-musl@4.1.17':
+ '@tailwindcss/oxide-linux-x64-musl@4.2.2':
optional: true
- '@tailwindcss/oxide-wasm32-wasi@4.1.17':
+ '@tailwindcss/oxide-wasm32-wasi@4.2.2':
optional: true
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.17':
+ '@tailwindcss/oxide-win32-arm64-msvc@4.2.2':
optional: true
- '@tailwindcss/oxide-win32-x64-msvc@4.1.17':
+ '@tailwindcss/oxide-win32-x64-msvc@4.2.2':
optional: true
- '@tailwindcss/oxide@4.1.17':
+ '@tailwindcss/oxide@4.2.2':
optionalDependencies:
- '@tailwindcss/oxide-android-arm64': 4.1.17
- '@tailwindcss/oxide-darwin-arm64': 4.1.17
- '@tailwindcss/oxide-darwin-x64': 4.1.17
- '@tailwindcss/oxide-freebsd-x64': 4.1.17
- '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.17
- '@tailwindcss/oxide-linux-arm64-gnu': 4.1.17
- '@tailwindcss/oxide-linux-arm64-musl': 4.1.17
- '@tailwindcss/oxide-linux-x64-gnu': 4.1.17
- '@tailwindcss/oxide-linux-x64-musl': 4.1.17
- '@tailwindcss/oxide-wasm32-wasi': 4.1.17
- '@tailwindcss/oxide-win32-arm64-msvc': 4.1.17
- '@tailwindcss/oxide-win32-x64-msvc': 4.1.17
-
- '@tailwindcss/postcss@4.1.17':
+ '@tailwindcss/oxide-android-arm64': 4.2.2
+ '@tailwindcss/oxide-darwin-arm64': 4.2.2
+ '@tailwindcss/oxide-darwin-x64': 4.2.2
+ '@tailwindcss/oxide-freebsd-x64': 4.2.2
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2
+ '@tailwindcss/oxide-linux-arm64-musl': 4.2.2
+ '@tailwindcss/oxide-linux-x64-gnu': 4.2.2
+ '@tailwindcss/oxide-linux-x64-musl': 4.2.2
+ '@tailwindcss/oxide-wasm32-wasi': 4.2.2
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2
+ '@tailwindcss/oxide-win32-x64-msvc': 4.2.2
+
+ '@tailwindcss/postcss@4.2.2':
dependencies:
'@alloc/quick-lru': 5.2.0
- '@tailwindcss/node': 4.1.17
- '@tailwindcss/oxide': 4.1.17
+ '@tailwindcss/node': 4.2.2
+ '@tailwindcss/oxide': 4.2.2
postcss: 8.5.6
- tailwindcss: 4.1.17
+ tailwindcss: 4.2.2
'@testing-library/dom@8.20.1':
dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/runtime': 7.28.4
+ '@babel/code-frame': 7.29.0
+ '@babel/runtime': 7.29.2
'@types/aria-query': 5.0.4
aria-query: 5.1.3
chalk: 4.1.2
@@ -9223,6 +9446,11 @@ snapshots:
dependencies:
'@testing-library/dom': 8.20.1
+ '@tybys/wasm-util@0.10.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@types/airtable@0.10.5':
dependencies:
airtable: 0.12.2
@@ -9290,9 +9518,7 @@ snapshots:
'@types/json-schema@7.0.15': {}
- '@types/json5@0.0.29': {}
-
- '@types/lodash@4.17.20': {}
+ '@types/lodash@4.17.24': {}
'@types/logrocket-react@3.0.3':
dependencies:
@@ -9310,8 +9536,6 @@ snapshots:
dependencies:
undici-types: 7.16.0
- '@types/normalize-package-data@2.4.4': {}
-
'@types/object-hash@3.0.6': {}
'@types/parse-json@4.0.2': {}
@@ -9350,35 +9574,30 @@ snapshots:
'@types/webpack-env@1.18.8': {}
- '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)':
+ '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 6.21.0
- '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3)
- '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 6.21.0
- debug: 4.4.3
- eslint: 8.57.1
- graphemer: 1.4.0
- ignore: 5.3.2
+ '@typescript-eslint/parser': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.57.1
+ '@typescript-eslint/type-utils': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.57.1
+ eslint: 9.39.4(jiti@2.6.1)
+ ignore: 7.0.5
natural-compare: 1.4.0
- semver: 7.7.3
- ts-api-utils: 1.4.3(typescript@5.9.3)
- optionalDependencies:
+ ts-api-utils: 2.5.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/scope-manager': 6.21.0
- '@typescript-eslint/types': 6.21.0
- '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 6.21.0
+ '@typescript-eslint/scope-manager': 8.57.1
+ '@typescript-eslint/types': 8.57.1
+ '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.57.1
debug: 4.4.3
- eslint: 8.57.1
- optionalDependencies:
+ eslint: 9.39.4(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -9392,16 +9611,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@6.21.0':
- dependencies:
- '@typescript-eslint/types': 6.21.0
- '@typescript-eslint/visitor-keys': 6.21.0
-
- '@typescript-eslint/scope-manager@7.18.0':
- dependencies:
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/visitor-keys': 7.18.0
-
'@typescript-eslint/scope-manager@8.57.1':
dependencies:
'@typescript-eslint/types': 8.57.1
@@ -9411,54 +9620,20 @@ snapshots:
dependencies:
typescript: 5.9.3
- '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)':
+ '@typescript-eslint/type-utils@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3)
- '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3)
+ '@typescript-eslint/types': 8.57.1
+ '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
debug: 4.4.3
- eslint: 8.57.1
- ts-api-utils: 1.4.3(typescript@5.9.3)
- optionalDependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+ ts-api-utils: 2.5.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@6.21.0': {}
-
- '@typescript-eslint/types@7.18.0': {}
-
'@typescript-eslint/types@8.57.1': {}
- '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/types': 6.21.0
- '@typescript-eslint/visitor-keys': 6.21.0
- debug: 4.4.3
- globby: 11.1.0
- is-glob: 4.0.3
- minimatch: 9.0.3
- semver: 7.7.3
- ts-api-utils: 1.4.3(typescript@5.9.3)
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/visitor-keys': 7.18.0
- debug: 4.4.3
- globby: 11.1.0
- is-glob: 4.0.3
- minimatch: 9.0.5
- semver: 7.7.3
- ts-api-utils: 1.4.3(typescript@5.9.3)
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
'@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)':
dependencies:
'@typescript-eslint/project-service': 8.57.1(typescript@5.9.3)
@@ -9474,60 +9649,86 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1)
- '@types/json-schema': 7.0.15
- '@types/semver': 7.7.1
- '@typescript-eslint/scope-manager': 6.21.0
- '@typescript-eslint/types': 6.21.0
- '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3)
- eslint: 8.57.1
- semver: 7.7.3
- transitivePeerDependencies:
- - supports-color
- - typescript
+ '@typescript-eslint/utils@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.57.1
+ '@typescript-eslint/types': 8.57.1
+ '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@8.57.1':
+ dependencies:
+ '@typescript-eslint/types': 8.57.1
+ eslint-visitor-keys: 5.0.1
+
+ '@unrs/resolver-binding-android-arm-eabi@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-android-arm64@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-darwin-arm64@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-darwin-x64@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-freebsd-x64@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
+ optional: true
+
+ '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
+ optional: true
- '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.9.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1)
- '@typescript-eslint/scope-manager': 7.18.0
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3)
- eslint: 8.57.1
- transitivePeerDependencies:
- - supports-color
- - typescript
+ '@unrs/resolver-binding-linux-x64-musl@1.11.1':
+ optional: true
- '@typescript-eslint/utils@8.57.1(eslint@8.57.1)(typescript@5.9.3)':
+ '@unrs/resolver-binding-wasm32-wasi@1.11.1':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1)
- '@typescript-eslint/scope-manager': 8.57.1
- '@typescript-eslint/types': 8.57.1
- '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3)
- eslint: 8.57.1
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
+ '@napi-rs/wasm-runtime': 0.2.12
+ optional: true
- '@typescript-eslint/visitor-keys@6.21.0':
- dependencies:
- '@typescript-eslint/types': 6.21.0
- eslint-visitor-keys: 3.4.3
+ '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
+ optional: true
- '@typescript-eslint/visitor-keys@7.18.0':
- dependencies:
- '@typescript-eslint/types': 7.18.0
- eslint-visitor-keys: 3.4.3
+ '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
+ optional: true
- '@typescript-eslint/visitor-keys@8.57.1':
- dependencies:
- '@typescript-eslint/types': 8.57.1
- eslint-visitor-keys: 5.0.1
+ '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
+ optional: true
- '@ungap/structured-clone@1.3.0': {}
+ '@valibot/to-json-schema@1.6.0(valibot@1.3.1(typescript@5.9.3))':
+ dependencies:
+ valibot: 1.3.1(typescript@5.9.3)
- '@vitejs/plugin-react@4.7.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))':
+ '@vitejs/plugin-react@4.7.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))':
dependencies:
'@babel/core': 7.28.5
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5)
@@ -9535,7 +9736,7 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-beta.27
'@types/babel__core': 7.20.5
react-refresh: 0.17.0
- vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -9554,7 +9755,19 @@ snapshots:
std-env: 3.10.0
test-exclude: 7.0.1
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ vitest: 3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vitest/eslint-plugin@1.6.13(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.57.1
+ '@typescript-eslint/utils': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
+ optionalDependencies:
+ '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ typescript: 5.9.3
+ vitest: 3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -9566,13 +9779,13 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/mocker@3.2.4(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))':
+ '@vitest/mocker@3.2.4(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))':
dependencies:
'@vitest/spy': 3.2.4
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -9603,7 +9816,7 @@ snapshots:
sirv: 3.0.2
tinyglobby: 0.2.15
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ vitest: 3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
'@vitest/utils@3.2.4':
dependencies:
@@ -9768,6 +9981,13 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ajv@6.14.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
ajv@8.17.1:
dependencies:
fast-deep-equal: 3.1.3
@@ -9827,8 +10047,6 @@ snapshots:
is-string: 1.1.1
math-intrinsics: 1.1.0
- array-union@2.1.0: {}
-
array.prototype.findlast@1.2.5:
dependencies:
call-bind: 1.0.8
@@ -9838,16 +10056,6 @@ snapshots:
es-object-atoms: 1.1.1
es-shim-unscopables: 1.1.0
- array.prototype.findlastindex@1.2.6:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- es-shim-unscopables: 1.1.0
-
array.prototype.flat@1.3.3:
dependencies:
call-bind: 1.0.8
@@ -10097,7 +10305,7 @@ snapshots:
base64-js: 1.5.1
ieee754: 1.2.1
- builtin-modules@3.3.0: {}
+ builtin-modules@5.0.0: {}
builtin-status-codes@3.0.0: {}
@@ -10152,6 +10360,8 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ change-case@5.4.4: {}
+
check-error@2.1.1: {}
check-more-types@2.24.0: {}
@@ -10164,7 +10374,7 @@ snapshots:
chrome-trace-event@1.0.4: {}
- ci-info@3.9.0: {}
+ ci-info@4.4.0: {}
cipher-base@1.0.7:
dependencies:
@@ -10226,6 +10436,8 @@ snapshots:
commander@9.5.0: {}
+ comment-parser@1.4.5: {}
+
common-path-prefix@3.0.0: {}
commondir@1.0.1: {}
@@ -10388,9 +10600,9 @@ snapshots:
mdn-data: 2.0.30
source-map-js: 1.2.1
- css-tree@3.1.0:
+ css-tree@3.2.1:
dependencies:
- mdn-data: 2.12.2
+ mdn-data: 2.27.1
source-map-js: 1.2.1
css-what@6.2.2: {}
@@ -10449,10 +10661,6 @@ snapshots:
dependencies:
ms: 2.0.0
- debug@3.2.7:
- dependencies:
- ms: 2.1.3
-
debug@4.3.4:
dependencies:
ms: 2.1.2
@@ -10486,7 +10694,7 @@ snapshots:
side-channel: 1.1.0
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.19
+ which-typed-array: 1.1.20
deep-is@0.1.4: {}
@@ -10536,10 +10744,6 @@ snapshots:
miller-rabin: 4.0.1
randombytes: 2.1.0
- dir-glob@3.0.1:
- dependencies:
- path-type: 4.0.0
-
doctrine@2.1.0:
dependencies:
esutils: 2.0.3
@@ -10651,6 +10855,11 @@ snapshots:
graceful-fs: 4.2.11
tapable: 2.3.0
+ enhanced-resolve@5.20.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.3.0
+
entities@2.2.0: {}
entities@4.5.0: {}
@@ -10824,58 +11033,68 @@ snapshots:
escape-string-regexp@4.0.0: {}
- eslint-config-prettier@9.1.2(eslint@8.57.1):
+ eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.6.1)):
dependencies:
- eslint: 8.57.1
+ eslint: 9.39.4(jiti@2.6.1)
- eslint-import-resolver-node@0.3.9:
+ eslint-import-context@0.1.9(unrs-resolver@1.11.1):
dependencies:
- debug: 3.2.7
- is-core-module: 2.16.1
- resolve: 1.22.11
+ get-tsconfig: 4.13.7
+ stable-hash-x: 0.2.0
+ optionalDependencies:
+ unrs-resolver: 1.11.1
+
+ eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ debug: 4.4.3
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-import-context: 0.1.9(unrs-resolver@1.11.1)
+ get-tsconfig: 4.13.7
+ is-bun-module: 2.0.0
+ stable-hash-x: 0.2.0
+ tinyglobby: 0.2.15
+ unrs-resolver: 1.11.1
+ optionalDependencies:
+ eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1):
+ eslint-plugin-better-tailwindcss@4.3.2(eslint@9.39.4(jiti@2.6.1))(tailwindcss@4.2.2)(typescript@5.9.3):
dependencies:
- debug: 3.2.7
+ '@eslint/css-tree': 3.6.9
+ '@valibot/to-json-schema': 1.6.0(valibot@1.3.1(typescript@5.9.3))
+ enhanced-resolve: 5.20.1
+ jiti: 2.6.1
+ synckit: 0.11.12
+ tailwind-csstree: 0.1.5
+ tailwindcss: 4.2.2
+ tsconfig-paths-webpack-plugin: 4.2.0
+ valibot: 1.3.1(typescript@5.9.3)
optionalDependencies:
- '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3)
- eslint: 8.57.1
- eslint-import-resolver-node: 0.3.9
+ eslint: 9.39.4(jiti@2.6.1)
transitivePeerDependencies:
- - supports-color
+ - '@eslint/css'
+ - typescript
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1):
+ eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)):
dependencies:
- '@rtsao/scc': 1.1.0
- array-includes: 3.1.9
- array.prototype.findlastindex: 1.2.6
- array.prototype.flat: 1.3.3
- array.prototype.flatmap: 1.3.3
- debug: 3.2.7
- doctrine: 2.1.0
- eslint: 8.57.1
- eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1)
- hasown: 2.0.2
- is-core-module: 2.16.1
+ '@package-json/types': 0.0.12
+ '@typescript-eslint/types': 8.57.1
+ comment-parser: 1.4.5
+ debug: 4.4.3
+ eslint: 9.39.4(jiti@2.6.1)
+ eslint-import-context: 0.1.9(unrs-resolver@1.11.1)
is-glob: 4.0.3
- minimatch: 3.1.2
- object.fromentries: 2.0.8
- object.groupby: 1.0.3
- object.values: 1.2.1
- semver: 6.3.1
- string.prototype.trimend: 1.0.9
- tsconfig-paths: 3.15.0
+ minimatch: 10.2.4
+ semver: 7.7.3
+ stable-hash-x: 0.2.0
+ unrs-resolver: 1.11.1
optionalDependencies:
- '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- supports-color
- eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1):
+ eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.4(jiti@2.6.1)):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.9
@@ -10885,7 +11104,7 @@ snapshots:
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
- eslint: 8.57.1
+ eslint: 9.39.4(jiti@2.6.1)
hasown: 2.0.2
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@@ -10894,27 +11113,46 @@ snapshots:
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
- eslint-plugin-lodash@7.4.0(eslint@8.57.1):
+ eslint-plugin-lodash@8.0.0(eslint@9.39.4(jiti@2.6.1)):
dependencies:
- eslint: 8.57.1
+ eslint: 9.39.4(jiti@2.6.1)
lodash: 4.17.21
- eslint-plugin-playwright@2.3.0(eslint@8.57.1):
+ eslint-plugin-no-barrel-files@1.2.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3):
dependencies:
- eslint: 8.57.1
- globals: 16.5.0
+ '@typescript-eslint/utils': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ transitivePeerDependencies:
+ - eslint
+ - supports-color
+ - typescript
- eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.6.2):
+ eslint-plugin-playwright@2.10.1(eslint@9.39.4(jiti@2.6.1)):
dependencies:
- eslint: 8.57.1
- prettier: 3.6.2
- prettier-linter-helpers: 1.0.0
- synckit: 0.11.11
+ eslint: 9.39.4(jiti@2.6.1)
+ globals: 17.4.0
+
+ eslint-plugin-prettier@5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1))(prettier@3.8.1):
+ dependencies:
+ eslint: 9.39.4(jiti@2.6.1)
+ prettier: 3.8.1
+ prettier-linter-helpers: 1.0.1
+ synckit: 0.11.12
optionalDependencies:
'@types/eslint': 9.6.1
- eslint-config-prettier: 9.1.2(eslint@8.57.1)
+ eslint-config-prettier: 10.1.8(eslint@9.39.4(jiti@2.6.1))
+
+ eslint-plugin-react-hooks@7.0.1(eslint@9.39.4(jiti@2.6.1)):
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/parser': 7.28.5
+ eslint: 9.39.4(jiti@2.6.1)
+ hermes-parser: 0.25.1
+ zod: 4.3.6
+ zod-validation-error: 4.0.2(zod@4.3.6)
+ transitivePeerDependencies:
+ - supports-color
- eslint-plugin-react@7.37.5(eslint@8.57.1):
+ eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.6.1)):
dependencies:
array-includes: 3.1.9
array.prototype.findlast: 1.2.5
@@ -10922,11 +11160,11 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
- eslint: 8.57.1
+ eslint: 9.39.4(jiti@2.6.1)
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
- minimatch: 3.1.2
+ minimatch: 3.1.5
object.entries: 1.1.9
object.fromentries: 2.0.8
object.values: 1.2.1
@@ -10936,119 +11174,101 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
- eslint-plugin-storybook@10.3.1(eslint@8.57.1)(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3):
+ eslint-plugin-storybook@10.3.2(eslint@9.39.4(jiti@2.6.1))(storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/utils': 8.57.1(eslint@8.57.1)(typescript@5.9.3)
- eslint: 8.57.1
- storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@typescript-eslint/utils': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
+ storybook: 10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-unicorn@43.0.2(eslint@8.57.1):
+ eslint-plugin-unicorn@63.0.0(eslint@9.39.4(jiti@2.6.1)):
dependencies:
'@babel/helper-validator-identifier': 7.28.5
- ci-info: 3.9.0
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
+ change-case: 5.4.4
+ ci-info: 4.4.0
clean-regexp: 1.0.0
- eslint: 8.57.1
- eslint-utils: 3.0.0(eslint@8.57.1)
- esquery: 1.6.0
- indent-string: 4.0.0
- is-builtin-module: 3.2.1
- lodash: 4.17.21
+ core-js-compat: 3.46.0
+ eslint: 9.39.4(jiti@2.6.1)
+ find-up-simple: 1.0.1
+ globals: 16.5.0
+ indent-string: 5.0.0
+ is-builtin-module: 5.0.0
+ jsesc: 3.1.0
pluralize: 8.0.0
- read-pkg-up: 7.0.1
regexp-tree: 0.1.27
- safe-regex: 2.1.1
+ regjsparser: 0.13.0
semver: 7.7.3
- strip-indent: 3.0.0
-
- eslint-plugin-vitest-globals@1.5.0: {}
-
- eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)(vitest@3.2.4):
- dependencies:
- '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3)
- eslint: 8.57.1
- optionalDependencies:
- '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)
- vitest: 3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
- transitivePeerDependencies:
- - supports-color
- - typescript
+ strip-indent: 4.1.1
eslint-scope@5.1.1:
dependencies:
esrecurse: 4.3.0
estraverse: 4.3.0
- eslint-scope@7.2.2:
+ eslint-scope@8.4.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
- eslint-utils@3.0.0(eslint@8.57.1):
- dependencies:
- eslint: 8.57.1
- eslint-visitor-keys: 2.1.0
-
- eslint-visitor-keys@2.1.0: {}
-
eslint-visitor-keys@3.4.3: {}
+ eslint-visitor-keys@4.2.1: {}
+
eslint-visitor-keys@5.0.1: {}
- eslint@8.57.1:
+ eslint@9.39.4(jiti@2.6.1):
dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1)
+ '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.2
- '@eslint/eslintrc': 2.1.4
- '@eslint/js': 8.57.1
- '@humanwhocodes/config-array': 0.13.0
+ '@eslint/config-array': 0.21.2
+ '@eslint/config-helpers': 0.4.2
+ '@eslint/core': 0.17.0
+ '@eslint/eslintrc': 3.3.5
+ '@eslint/js': 9.39.4
+ '@eslint/plugin-kit': 0.4.1
+ '@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
- '@nodelib/fs.walk': 1.2.8
- '@ungap/structured-clone': 1.3.0
- ajv: 6.12.6
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
+ ajv: 6.14.0
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.3
- doctrine: 3.0.0
escape-string-regexp: 4.0.0
- eslint-scope: 7.2.2
- eslint-visitor-keys: 3.4.3
- espree: 9.6.1
- esquery: 1.6.0
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ esquery: 1.7.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
- file-entry-cache: 6.0.1
+ file-entry-cache: 8.0.0
find-up: 5.0.0
glob-parent: 6.0.2
- globals: 13.24.0
- graphemer: 1.4.0
ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
- is-path-inside: 3.0.3
- js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
- levn: 0.4.1
lodash.merge: 4.6.2
- minimatch: 3.1.2
+ minimatch: 3.1.5
natural-compare: 1.4.0
optionator: 0.9.4
- strip-ansi: 6.0.1
- text-table: 0.2.0
+ optionalDependencies:
+ jiti: 2.6.1
transitivePeerDependencies:
- supports-color
- espree@9.6.1:
+ espree@10.4.0:
dependencies:
acorn: 8.15.0
acorn-jsx: 5.3.2(acorn@8.15.0)
- eslint-visitor-keys: 3.4.3
+ eslint-visitor-keys: 4.2.1
esprima@4.0.1: {}
- esquery@1.6.0:
+ esquery@1.7.0:
dependencies:
estraverse: 5.3.0
@@ -11151,12 +11371,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
- faker@5.5.3: {}
-
fast-deep-equal@3.1.3: {}
fast-diff@1.3.0: {}
+ fast-glob@3.3.1:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -11187,9 +11413,9 @@ snapshots:
fflate@0.8.2: {}
- file-entry-cache@6.0.1:
+ file-entry-cache@8.0.0:
dependencies:
- flat-cache: 3.2.0
+ flat-cache: 4.0.1
file-loader@6.2.0(webpack@5.102.1(esbuild@0.25.12)):
dependencies:
@@ -11228,6 +11454,8 @@ snapshots:
find-root@1.1.0: {}
+ find-up-simple@1.0.1: {}
+
find-up@4.1.0:
dependencies:
locate-path: 5.0.0
@@ -11251,8 +11479,15 @@ snapshots:
keyv: 4.5.4
rimraf: 3.0.2
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.4.2
+ keyv: 4.5.4
+
flatted@3.3.3: {}
+ flatted@3.4.2: {}
+
follow-redirects@1.15.11(debug@4.3.4):
optionalDependencies:
debug: 4.3.4
@@ -11376,6 +11611,10 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
+ get-tsconfig@4.13.7:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
@@ -11406,38 +11645,27 @@ snapshots:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
- minimatch: 3.1.2
+ minimatch: 3.1.5
once: 1.4.0
path-is-absolute: 1.0.1
- globals@13.24.0:
- dependencies:
- type-fest: 0.20.2
+ globals@14.0.0: {}
globals@16.5.0: {}
+ globals@17.4.0: {}
+
globalthis@1.0.4:
dependencies:
define-properties: 1.2.1
gopd: 1.2.0
- globby@11.1.0:
- dependencies:
- array-union: 2.1.0
- dir-glob: 3.0.1
- fast-glob: 3.3.3
- ignore: 5.3.2
- merge2: 1.4.1
- slash: 3.0.0
-
globrex@0.1.2: {}
gopd@1.2.0: {}
graceful-fs@4.2.11: {}
- graphemer@1.4.0: {}
-
gzip-size@6.0.0:
dependencies:
duplexer: 0.1.2
@@ -11485,6 +11713,12 @@ snapshots:
he@1.2.0: {}
+ hermes-estree@0.25.1: {}
+
+ hermes-parser@0.25.1:
+ dependencies:
+ hermes-estree: 0.25.1
+
hmac-drbg@1.0.1:
dependencies:
hash.js: 1.1.7
@@ -11495,8 +11729,6 @@ snapshots:
dependencies:
react-is: 16.13.1
- hosted-git-info@2.8.9: {}
-
html-encoding-sniffer@4.0.0:
dependencies:
whatwg-encoding: 3.1.1
@@ -11589,6 +11821,8 @@ snapshots:
ignore@5.3.2: {}
+ ignore@7.0.5: {}
+
image-size@0.5.5:
optional: true
@@ -11617,6 +11851,8 @@ snapshots:
indent-string@4.0.0: {}
+ indent-string@5.0.0: {}
+
inflight@1.0.6:
dependencies:
once: 1.4.0
@@ -11668,9 +11904,13 @@ snapshots:
is-buffer@2.0.5: {}
- is-builtin-module@3.2.1:
+ is-builtin-module@5.0.0:
+ dependencies:
+ builtin-modules: 5.0.0
+
+ is-bun-module@2.0.0:
dependencies:
- builtin-modules: 3.3.0
+ semver: 7.7.3
is-callable@1.2.7: {}
@@ -11733,8 +11973,6 @@ snapshots:
is-number@7.0.0: {}
- is-path-inside@3.0.3: {}
-
is-plain-object@5.0.0: {}
is-potential-custom-element-name@1.0.1: {}
@@ -11859,6 +12097,10 @@ snapshots:
dependencies:
argparse: 2.0.1
+ js-yaml@4.1.1:
+ dependencies:
+ argparse: 2.0.1
+
jsdom@26.1.0:
dependencies:
cssstyle: 4.6.0
@@ -11898,10 +12140,6 @@ snapshots:
json-stable-stringify-without-jsonify@1.0.1: {}
- json5@1.0.2:
- dependencies:
- minimist: 1.2.8
-
json5@2.2.3: {}
jsonfile@6.2.0:
@@ -11940,7 +12178,7 @@ snapshots:
image-size: 0.5.5
make-dir: 2.1.0
mime: 1.6.0
- needle: 3.3.1
+ needle: 3.5.0
source-map: 0.6.1
optional: true
@@ -11949,54 +12187,54 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
- lightningcss-android-arm64@1.30.2:
+ lightningcss-android-arm64@1.32.0:
optional: true
- lightningcss-darwin-arm64@1.30.2:
+ lightningcss-darwin-arm64@1.32.0:
optional: true
- lightningcss-darwin-x64@1.30.2:
+ lightningcss-darwin-x64@1.32.0:
optional: true
- lightningcss-freebsd-x64@1.30.2:
+ lightningcss-freebsd-x64@1.32.0:
optional: true
- lightningcss-linux-arm-gnueabihf@1.30.2:
+ lightningcss-linux-arm-gnueabihf@1.32.0:
optional: true
- lightningcss-linux-arm64-gnu@1.30.2:
+ lightningcss-linux-arm64-gnu@1.32.0:
optional: true
- lightningcss-linux-arm64-musl@1.30.2:
+ lightningcss-linux-arm64-musl@1.32.0:
optional: true
- lightningcss-linux-x64-gnu@1.30.2:
+ lightningcss-linux-x64-gnu@1.32.0:
optional: true
- lightningcss-linux-x64-musl@1.30.2:
+ lightningcss-linux-x64-musl@1.32.0:
optional: true
- lightningcss-win32-arm64-msvc@1.30.2:
+ lightningcss-win32-arm64-msvc@1.32.0:
optional: true
- lightningcss-win32-x64-msvc@1.30.2:
+ lightningcss-win32-x64-msvc@1.32.0:
optional: true
- lightningcss@1.30.2:
+ lightningcss@1.32.0:
dependencies:
detect-libc: 2.1.2
optionalDependencies:
- lightningcss-android-arm64: 1.30.2
- lightningcss-darwin-arm64: 1.30.2
- lightningcss-darwin-x64: 1.30.2
- lightningcss-freebsd-x64: 1.30.2
- lightningcss-linux-arm-gnueabihf: 1.30.2
- lightningcss-linux-arm64-gnu: 1.30.2
- lightningcss-linux-arm64-musl: 1.30.2
- lightningcss-linux-x64-gnu: 1.30.2
- lightningcss-linux-x64-musl: 1.30.2
- lightningcss-win32-arm64-msvc: 1.30.2
- lightningcss-win32-x64-msvc: 1.30.2
+ lightningcss-android-arm64: 1.32.0
+ lightningcss-darwin-arm64: 1.32.0
+ lightningcss-darwin-x64: 1.32.0
+ lightningcss-freebsd-x64: 1.32.0
+ lightningcss-linux-arm-gnueabihf: 1.32.0
+ lightningcss-linux-arm64-gnu: 1.32.0
+ lightningcss-linux-arm64-musl: 1.32.0
+ lightningcss-linux-x64-gnu: 1.32.0
+ lightningcss-linux-x64-musl: 1.32.0
+ lightningcss-win32-arm64-msvc: 1.32.0
+ lightningcss-win32-x64-msvc: 1.32.0
lilconfig@2.0.5: {}
@@ -12139,7 +12377,9 @@ snapshots:
mdn-data@2.0.30: {}
- mdn-data@2.12.2: {}
+ mdn-data@2.23.0: {}
+
+ mdn-data@2.27.1: {}
media-typer@0.3.0: {}
@@ -12195,9 +12435,9 @@ snapshots:
dependencies:
brace-expansion: 1.1.12
- minimatch@9.0.3:
+ minimatch@3.1.5:
dependencies:
- brace-expansion: 2.0.2
+ brace-expansion: 1.1.12
minimatch@9.0.5:
dependencies:
@@ -12221,9 +12461,11 @@ snapshots:
nanoid@3.3.11: {}
+ napi-postinstall@0.3.4: {}
+
natural-compare@1.4.0: {}
- needle@3.3.1:
+ needle@3.5.0:
dependencies:
iconv-lite: 0.6.3
sax: 1.6.0
@@ -12309,13 +12551,6 @@ snapshots:
node-releases@2.0.27: {}
- normalize-package-data@2.5.0:
- dependencies:
- hosted-git-info: 2.8.9
- resolve: 1.22.11
- semver: 5.7.2
- validate-npm-package-license: 3.0.4
-
normalize-path@3.0.0: {}
npm-run-path@4.0.1:
@@ -12368,12 +12603,6 @@ snapshots:
es-abstract: 1.24.0
es-object-atoms: 1.1.1
- object.groupby@1.0.3:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
-
object.values@1.2.1:
dependencies:
call-bind: 1.0.8
@@ -12653,11 +12882,15 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier-linter-helpers@1.0.0:
+ prettier-linter-helpers@1.0.1:
dependencies:
fast-diff: 1.3.0
- prettier@3.6.2: {}
+ prettier-plugin-tailwindcss@0.7.2(prettier@3.8.1):
+ dependencies:
+ prettier: 3.8.1
+
+ prettier@3.8.1: {}
pretty-error@4.0.0:
dependencies:
@@ -12858,19 +13091,6 @@ snapshots:
react@19.2.4: {}
- read-pkg-up@7.0.1:
- dependencies:
- find-up: 4.1.0
- read-pkg: 5.2.0
- type-fest: 0.8.1
-
- read-pkg@5.2.0:
- dependencies:
- '@types/normalize-package-data': 2.4.4
- normalize-package-data: 2.5.0
- parse-json: 5.2.0
- type-fest: 0.6.0
-
readable-stream@2.3.8:
dependencies:
core-util-is: 1.0.3
@@ -12981,6 +13201,8 @@ snapshots:
resolve-from@4.0.0: {}
+ resolve-pkg-maps@1.0.0: {}
+
resolve-url-loader@5.0.0:
dependencies:
adjust-sourcemap-loader: 4.0.0
@@ -13082,10 +13304,6 @@ snapshots:
es-errors: 1.3.0
is-regex: 1.2.1
- safe-regex@2.1.1:
- dependencies:
- regexp-tree: 0.1.27
-
safer-buffer@2.1.2: {}
sass-loader@16.0.7(webpack@5.102.1(esbuild@0.25.12)):
@@ -13094,8 +13312,6 @@ snapshots:
optionalDependencies:
webpack: 5.102.1(esbuild@0.25.12)
- sax@1.4.3: {}
-
sax@1.6.0: {}
saxes@6.0.0:
@@ -13117,7 +13333,8 @@ snapshots:
ajv-formats: 2.1.1(ajv@8.17.1)
ajv-keywords: 5.1.0(ajv@8.17.1)
- semver@5.7.2: {}
+ semver@5.7.2:
+ optional: true
semver@6.3.1: {}
@@ -13270,8 +13487,6 @@ snapshots:
mrmime: 2.0.1
totalist: 3.0.1
- slash@3.0.0: {}
-
slice-ansi@3.0.0:
dependencies:
ansi-styles: 4.3.0
@@ -13307,24 +13522,12 @@ snapshots:
source-map@0.7.6: {}
- spdx-correct@3.2.0:
- dependencies:
- spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.22
-
- spdx-exceptions@2.5.0: {}
-
- spdx-expression-parse@3.0.1:
- dependencies:
- spdx-exceptions: 2.5.0
- spdx-license-ids: 3.0.22
-
- spdx-license-ids@3.0.22: {}
-
split@0.3.3:
dependencies:
through: 2.3.8
+ stable-hash-x@0.2.0: {}
+
stackback@0.0.2: {}
stackframe@1.3.4: {}
@@ -13355,7 +13558,7 @@ snapshots:
es-errors: 1.3.0
internal-slot: 1.1.0
- storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.6.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
+ storybook@10.3.1(@testing-library/dom@8.20.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
dependencies:
'@storybook/global': 5.0.0
'@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -13370,7 +13573,7 @@ snapshots:
use-sync-external-store: 1.6.0(react@19.2.4)
ws: 8.18.3
optionalDependencies:
- prettier: 3.6.2
+ prettier: 3.8.1
transitivePeerDependencies:
- '@testing-library/dom'
- bufferutil
@@ -13534,25 +13737,27 @@ snapshots:
picocolors: 1.1.1
sax: 1.6.0
- svgo@4.0.0:
+ svgo@4.0.1:
dependencies:
commander: 11.1.0
css-select: 5.2.2
- css-tree: 3.1.0
+ css-tree: 3.2.1
css-what: 6.2.2
csso: 5.0.5
picocolors: 1.1.1
- sax: 1.4.3
+ sax: 1.6.0
symbol-tree@3.2.4: {}
- synckit@0.11.11:
+ synckit@0.11.12:
dependencies:
'@pkgr/core': 0.2.9
+ tailwind-csstree@0.1.5: {}
+
tailwind-merge@3.3.1: {}
- tailwindcss@4.1.17: {}
+ tailwindcss@4.2.2: {}
tapable@2.3.0: {}
@@ -13580,8 +13785,6 @@ snapshots:
glob: 10.4.5
minimatch: 9.0.5
- text-table@0.2.0: {}
-
through@2.3.8: {}
timers-browserify@2.0.12:
@@ -13641,10 +13844,6 @@ snapshots:
dependencies:
punycode: 2.3.1
- ts-api-utils@1.4.3(typescript@5.9.3):
- dependencies:
- typescript: 5.9.3
-
ts-api-utils@2.5.0(typescript@5.9.3):
dependencies:
typescript: 5.9.3
@@ -13662,13 +13861,6 @@ snapshots:
tapable: 2.3.0
tsconfig-paths: 4.2.0
- tsconfig-paths@3.15.0:
- dependencies:
- '@types/json5': 0.0.29
- json5: 1.0.2
- minimist: 1.2.8
- strip-bom: 3.0.0
-
tsconfig-paths@4.2.0:
dependencies:
json5: 2.2.3
@@ -13683,16 +13875,10 @@ snapshots:
dependencies:
prelude-ls: 1.2.1
- type-fest@0.20.2: {}
-
type-fest@0.21.3: {}
- type-fest@0.6.0: {}
-
type-fest@0.7.1: {}
- type-fest@0.8.1: {}
-
type-fest@2.19.0: {}
type-is@1.6.18:
@@ -13733,6 +13919,17 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
+ typescript-eslint@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3):
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.57.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.4(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
typescript@5.9.3: {}
unbox-primitive@1.1.0:
@@ -13766,6 +13963,30 @@ snapshots:
picomatch: 4.0.3
webpack-virtual-modules: 0.6.2
+ unrs-resolver@1.11.1:
+ dependencies:
+ napi-postinstall: 0.3.4
+ optionalDependencies:
+ '@unrs/resolver-binding-android-arm-eabi': 1.11.1
+ '@unrs/resolver-binding-android-arm64': 1.11.1
+ '@unrs/resolver-binding-darwin-arm64': 1.11.1
+ '@unrs/resolver-binding-darwin-x64': 1.11.1
+ '@unrs/resolver-binding-freebsd-x64': 1.11.1
+ '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1
+ '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1
+ '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-arm64-musl': 1.11.1
+ '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1
+ '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-x64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-x64-musl': 1.11.1
+ '@unrs/resolver-binding-wasm32-wasi': 1.11.1
+ '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1
+ '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
+ '@unrs/resolver-binding-win32-x64-msvc': 1.11.1
+
update-browserslist-db@1.1.4(browserslist@4.27.0):
dependencies:
browserslist: 4.27.0
@@ -13835,20 +14056,19 @@ snapshots:
uuid@9.0.1: {}
- validate-npm-package-license@3.0.4:
- dependencies:
- spdx-correct: 3.2.0
- spdx-expression-parse: 3.0.1
+ valibot@1.3.1(typescript@5.9.3):
+ optionalDependencies:
+ typescript: 5.9.3
vary@1.1.2: {}
- vite-node@3.2.4(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1):
+ vite-node@3.2.4(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1):
dependencies:
cac: 6.7.14
debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -13863,25 +14083,24 @@ snapshots:
- tsx
- yaml
- vite-plugin-magical-svg@1.8.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)):
+ vite-plugin-magical-svg@1.9.0(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)):
dependencies:
magic-string: 0.30.21
- svgo: 4.0.0
- vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ svgo: 4.0.1
+ vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
xml2js: 0.6.2
- vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)):
+ vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)):
dependencies:
debug: 4.4.3
globrex: 0.1.2
tsconfck: 3.1.6(typescript@5.9.3)
- optionalDependencies:
- vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
- typescript
- vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1):
+ vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3)
@@ -13894,15 +14113,15 @@ snapshots:
fsevents: 2.3.3
jiti: 2.6.1
less: 4.4.2
- lightningcss: 1.30.2
+ lightningcss: 1.32.0
terser: 5.44.1
yaml: 2.8.1
- vitest@3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1):
+ vitest@3.2.4(@types/node@24.10.0)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@26.1.0)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1):
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1))
+ '@vitest/mocker': 3.2.4(vite@7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -13920,8 +14139,8 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
- vite-node: 3.2.4(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.1)
+ vite: 7.2.2(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
+ vite-node: 3.2.4(@types/node@24.10.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(terser@5.44.1)(yaml@2.8.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 24.10.0
@@ -14094,6 +14313,16 @@ snapshots:
gopd: 1.2.0
has-tostringtag: 1.0.2
+ which-typed-array@1.1.20:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
which@2.0.2:
dependencies:
isexe: 2.0.0
@@ -14137,7 +14366,7 @@ snapshots:
xml2js@0.6.2:
dependencies:
- sax: 1.4.3
+ sax: 1.6.0
xmlbuilder: 11.0.1
xmlbuilder@11.0.1: {}
@@ -14162,3 +14391,9 @@ snapshots:
tiny-case: 1.0.3
toposort: 2.0.2
type-fest: 2.19.0
+
+ zod-validation-error@4.0.2(zod@4.3.6):
+ dependencies:
+ zod: 4.3.6
+
+ zod@4.3.6: {}
diff --git a/prettier.config.js b/prettier.config.js
index 6a3f39c9f..dcf8a77b3 100644
--- a/prettier.config.js
+++ b/prettier.config.js
@@ -1,6 +1,10 @@
module.exports = {
- arrowParens: 'avoid',
+ plugins: ['prettier-plugin-tailwindcss'],
+ tailwindStylesheet: './src/common/styles/globals.css',
+ tailwindFunctions: ['cx'],
+ arrowParens: 'always',
printWidth: 100,
+ semi: true,
singleQuote: true,
trailingComma: 'all',
};
diff --git a/.storybook/OCTheme.js b/src/.storybook/OCTheme.js
similarity index 100%
rename from .storybook/OCTheme.js
rename to src/.storybook/OCTheme.js
diff --git a/.storybook/main.ts b/src/.storybook/main.ts
similarity index 91%
rename from .storybook/main.ts
rename to src/.storybook/main.ts
index e6ef8e523..4f973911f 100644
--- a/.storybook/main.ts
+++ b/src/.storybook/main.ts
@@ -6,16 +6,16 @@ const config: StorybookConfig = {
'../components/**/__stories__/*.mdx',
'../components/**/__stories__/*.stories.@(js|jsx|mjs|ts|tsx)',
],
- staticDirs: ['../public'],
+ staticDirs: ['../../public'],
addons: ['@storybook/addon-docs'],
framework: {
name: '@storybook/nextjs',
options: {},
},
- webpackFinal: async config => {
+ webpackFinal: async (config) => {
// Find the Storybook Webpack rule relevant to SVG files.
// @ts-expect-error => 'config.module' is possibly 'undefined'.ts(18048)
- const imageRule = config.module.rules.find(rule => {
+ const imageRule = config.module.rules.find((rule) => {
// @ts-expect-error => 'rule' is possibly 'null' or 'undefined'.ts(18049)
if (rule.test && rule.test.test('.svg')) {
console.log({ rule });
diff --git a/.storybook/manager.js b/src/.storybook/manager.js
similarity index 100%
rename from .storybook/manager.js
rename to src/.storybook/manager.js
diff --git a/.storybook/preview-head.html b/src/.storybook/preview-head.html
similarity index 100%
rename from .storybook/preview-head.html
rename to src/.storybook/preview-head.html
diff --git a/.storybook/preview.js b/src/.storybook/preview.js
similarity index 88%
rename from .storybook/preview.js
rename to src/.storybook/preview.js
index d88ee72f8..9791f47f5 100644
--- a/.storybook/preview.js
+++ b/src/.storybook/preview.js
@@ -1,8 +1,8 @@
-import 'common/styles/globals.css';
+import '@/common/styles/globals.css';
import { MINIMAL_VIEWPORTS, INITIAL_VIEWPORTS } from 'storybook/viewport';
export const decorators = [
- Story => (
+ (Story) => (
diff --git a/app/about/page.tsx b/src/app/about/page.tsx
similarity index 94%
rename from app/about/page.tsx
rename to src/app/about/page.tsx
index a73168041..f50e5b9c6 100644
--- a/app/about/page.tsx
+++ b/src/app/about/page.tsx
@@ -1,11 +1,11 @@
import Link from 'next/link';
import type { Metadata } from 'next';
-import HeroBanner from 'components/HeroBanner/HeroBanner';
-import Content from 'components/Content/Content';
-import ImageCard from 'components/Cards/ImageCard/ImageCard';
-import ValueCard from 'components/Cards/ValueCard/ValueCard';
-import OutboundLink from 'components/OutboundLink/OutboundLink';
-import { s3 } from 'common/constants/urls';
+import HeroBanner from '@/components/HeroBanner/HeroBanner';
+import Content from '@/components/Content/Content';
+import ImageCard from '@/components/Cards/ImageCard/ImageCard';
+import ValueCard from '@/components/Cards/ValueCard/ValueCard';
+import OutboundLink from '@/components/OutboundLink/OutboundLink';
+import { s3 } from '@/common/constants/urls';
export const metadata: Metadata = { title: 'About Us' };
@@ -16,7 +16,7 @@ function About() {
diff --git a/app/api/registration/new/route.ts b/src/app/api/registration/new/route.ts
similarity index 87%
rename from app/api/registration/new/route.ts
rename to src/app/api/registration/new/route.ts
index dce91cbd1..708f39f7f 100644
--- a/app/api/registration/new/route.ts
+++ b/src/app/api/registration/new/route.ts
@@ -1,7 +1,7 @@
import { NextResponse, type NextRequest } from 'next/server';
import Airtable from 'airtable';
-import { AIR_TABLE_BASE_ID, AIR_TABLE_TABLE_NAME } from 'common/config/environment';
-import type { RegistrationFormValues } from 'components/Forms/RegistrationForm/RegistrationForm';
+import { AIR_TABLE_BASE_ID, AIR_TABLE_TABLE_NAME } from '@/common/config/environment';
+import type { RegistrationFormValues } from '@/components/Forms/RegistrationForm/RegistrationForm';
const base = new Airtable({ apiKey: process.env.AIRTABLE_PAT }).base(AIR_TABLE_BASE_ID);
diff --git a/app/api/registration/update/route.ts b/src/app/api/registration/update/route.ts
similarity index 88%
rename from app/api/registration/update/route.ts
rename to src/app/api/registration/update/route.ts
index 7073b1077..fdfc97b6e 100644
--- a/app/api/registration/update/route.ts
+++ b/src/app/api/registration/update/route.ts
@@ -1,7 +1,7 @@
import { NextResponse, type NextRequest } from 'next/server';
import Airtable from 'airtable';
-import { AIR_TABLE_BASE_ID, AIR_TABLE_TABLE_NAME } from 'common/config/environment';
-import type { UpdateProfileFormShape } from 'components/Forms/UpdateProfileForm/UpdateProfileForm';
+import { AIR_TABLE_BASE_ID, AIR_TABLE_TABLE_NAME } from '@/common/config/environment';
+import type { UpdateProfileFormShape } from '@/components/Forms/UpdateProfileForm/UpdateProfileForm';
const base = new Airtable({ apiKey: process.env.AIRTABLE_PAT }).base(AIR_TABLE_BASE_ID);
@@ -34,9 +34,9 @@ export async function PATCH(request: NextRequest) {
finalize: shouldFinalize,
} = (await request.json()) as Partial
& { finalize?: boolean };
- const branchOfService = selectedBranchOfServiceOptions?.map(option => option.value) ?? [];
- const ethnicity = selectedEthnicityOptions?.map(option => option.value) ?? [];
- const joinReason = selectedJoinReasonOptions?.map(option => option.value) ?? [];
+ const branchOfService = selectedBranchOfServiceOptions?.map((option) => option.value) ?? [];
+ const ethnicity = selectedEthnicityOptions?.map((option) => option.value) ?? [];
+ const joinReason = selectedJoinReasonOptions?.map((option) => option.value) ?? [];
let militaryBranch = branchOfService;
if (militaryAffiliation?.includes('spouse')) {
diff --git a/app/blog/page.tsx b/src/app/blog/page.tsx
similarity index 78%
rename from app/blog/page.tsx
rename to src/app/blog/page.tsx
index a4da39534..6766f1aa6 100644
--- a/app/blog/page.tsx
+++ b/src/app/blog/page.tsx
@@ -1,5 +1,5 @@
import type { Metadata } from 'next';
-import HeroBanner from 'components/HeroBanner/HeroBanner';
+import HeroBanner from '@/components/HeroBanner/HeroBanner';
export const metadata: Metadata = { title: 'Blog' };
diff --git a/app/branding/page.tsx b/src/app/branding/page.tsx
similarity index 80%
rename from app/branding/page.tsx
rename to src/app/branding/page.tsx
index d8d87dea4..ad7f3a26f 100644
--- a/app/branding/page.tsx
+++ b/src/app/branding/page.tsx
@@ -1,11 +1,11 @@
import type { Metadata } from 'next';
-import HeroBanner from 'components/HeroBanner/HeroBanner';
-import LogoSection from 'components/Branding/LogoSection/LogoSection';
-import ColorSection from 'components/Branding/ColorSection/ColorSection';
-import FontSection from 'components/Branding/FontSection/FontSection';
-import OutboundLink from 'components/OutboundLink/OutboundLink';
-import { s3 } from 'common/constants/urls';
-import LinkButton from 'components/Buttons/LinkButton/LinkButton';
+import HeroBanner from '@/components/HeroBanner/HeroBanner';
+import LogoSection from '@/components/Branding/LogoSection/LogoSection';
+import ColorSection from '@/components/Branding/ColorSection/ColorSection';
+import FontSection from '@/components/Branding/FontSection/FontSection';
+import OutboundLink from '@/components/OutboundLink/OutboundLink';
+import { s3 } from '@/common/constants/urls';
+import LinkButton from '@/components/Buttons/LinkButton/LinkButton';
export const metadata: Metadata = { title: 'Branding Guide' };
@@ -16,7 +16,7 @@ function Branding() {
<>
-