diff --git a/.storybook/storybook.d.ts b/.storybook/storybook.d.ts new file mode 100644 index 00000000..d5cf927a --- /dev/null +++ b/.storybook/storybook.d.ts @@ -0,0 +1 @@ +declare module '*.scss'; diff --git a/eslint.config.js b/eslint.config.js index 098f475d..ca3f2614 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -18,11 +18,11 @@ export default defineConfig([ { files: ['**/*.{js,mjs,ts,tsx}'], extends: [ - configPrettier, eslint.configs.recommended, - pluginTypeScript.configs.recommended, pluginImport.flatConfigs.recommended, pluginImport.flatConfigs.typescript, + pluginTypeScript.configs.recommended, + configPrettier, ], languageOptions: { parser: pluginTypeScript.parser, diff --git a/package.json b/package.json index 7fe98112..3628c354 100644 --- a/package.json +++ b/package.json @@ -81,13 +81,14 @@ "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/eslint": "^9.6.1", + "@types/eslint-plugin-jsx-a11y": "^6.10.1", "@types/jest": "^30.0.0", "@types/jest-axe": "^3.5.9", "@types/node": "^24.12.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "babel-jest": "^30.3.0", - "babel-plugin-module-resolver": "^5.0.2", + "babel-plugin-module-resolver": "^5.0.3", "babel-plugin-replace-import-extension": "^1.1.5", "classnames": "^2.5.1", "eslint": "^9.39.4", @@ -111,8 +112,8 @@ "sass-embedded": "^1.97.2", "storybook": "^10.2.14", "tslib": "^2.8.1", - "typescript": "^5.9.3", - "typescript-eslint": "^8.57.1", + "typescript": "^6.0.2", + "typescript-eslint": "^8.58.0", "vite": "^7.3.1", "vite-tsconfig-paths": "^6.1.1" }, diff --git a/src/components/form-elements/checkboxes/Checkboxes.tsx b/src/components/form-elements/checkboxes/Checkboxes.tsx index 41fafb09..9ec05193 100644 --- a/src/components/form-elements/checkboxes/Checkboxes.tsx +++ b/src/components/form-elements/checkboxes/Checkboxes.tsx @@ -35,7 +35,7 @@ const CheckboxesComponent = forwardRef((props, const [instance, setInstance] = useState(); const _boxReferences: string[] = []; - let _boxCount: number = 0; + let _boxCount = 0; let _boxIds: Record = {}; useImperativeHandle(forwardedRef, () => moduleRef.current!, [moduleRef]); @@ -61,7 +61,7 @@ const CheckboxesComponent = forwardRef((props, }; const leaseReference = (): string => { - let reference: string = ''; + let reference = ''; do { reference = generateRandomName(); } while (_boxReferences.includes(reference)); diff --git a/src/components/form-elements/checkboxes/components/CheckboxesDivider.tsx b/src/components/form-elements/checkboxes/components/CheckboxesDivider.tsx index 9021f5f7..4ffc131a 100644 --- a/src/components/form-elements/checkboxes/components/CheckboxesDivider.tsx +++ b/src/components/form-elements/checkboxes/components/CheckboxesDivider.tsx @@ -1,8 +1,8 @@ import { type FC } from 'react'; -export type CheckboxesDividerProps = { +export interface CheckboxesDividerProps { dividerText?: string; -}; +} export const CheckboxesDivider: FC = ({ dividerText = 'or' }) => (
{dividerText}
diff --git a/src/components/form-elements/date-input/DateInput.tsx b/src/components/form-elements/date-input/DateInput.tsx index 229ed579..1acb2383 100644 --- a/src/components/form-elements/date-input/DateInput.tsx +++ b/src/components/form-elements/date-input/DateInput.tsx @@ -17,11 +17,11 @@ import { DateInputDay, DateInputMonth, DateInputYear } from './components/index. import { FormGroup } from '#components/utils/index.js'; import { type FormElementProps } from '#util/types/FormTypes.js'; -export type DateInputValue = { +export interface DateInputValue { day: string; month: string; year: string; -}; +} export interface DateInputChangeEvent extends Omit< ChangeEvent, diff --git a/src/components/form-elements/date-input/DateInputContext.ts b/src/components/form-elements/date-input/DateInputContext.ts index bce349a2..0b2755d4 100644 --- a/src/components/form-elements/date-input/DateInputContext.ts +++ b/src/components/form-elements/date-input/DateInputContext.ts @@ -2,14 +2,14 @@ import { createContext, type ChangeEvent, type ReactElement } from 'react'; -export type IDateInputContext = { +export interface IDateInputContext { id: string; name: string; error: string | ReactElement | undefined; value?: { day?: string; month?: string; year?: string }; defaultValue?: { day?: string; month?: string; year?: string }; handleChange: (inputType: 'day' | 'month' | 'year', event: ChangeEvent) => void; -}; +} export const DateInputContext = createContext({ id: '', diff --git a/src/components/form-elements/radios/Radios.tsx b/src/components/form-elements/radios/Radios.tsx index 6d7ab07d..905e31ec 100644 --- a/src/components/form-elements/radios/Radios.tsx +++ b/src/components/form-elements/radios/Radios.tsx @@ -35,7 +35,7 @@ const RadiosComponent = forwardRef((props, forwarde const [instance, setInstance] = useState(); const [selectedRadio, setSelectedRadio] = useState(); - const _radioReferences: Array = []; + const _radioReferences: string[] = []; let _radioCount = 0; let _radioIds: Record = {}; @@ -63,7 +63,7 @@ const RadiosComponent = forwardRef((props, forwarde }; const leaseReference = (): string => { - let reference: string = ''; + let reference = ''; do { reference = generateRandomName(); } while (_radioReferences.includes(reference)); diff --git a/src/components/form-elements/radios/RadiosContext.ts b/src/components/form-elements/radios/RadiosContext.ts index c097c2ca..d4193dd2 100644 --- a/src/components/form-elements/radios/RadiosContext.ts +++ b/src/components/form-elements/radios/RadiosContext.ts @@ -2,14 +2,14 @@ import { createContext } from 'react'; -export type IRadiosContext = { +export interface IRadiosContext { name: string; selectedRadio?: string; getRadioId: (reference: string) => string; setSelected: (radioRef: string) => void; leaseReference: () => string; unleaseReference: (reference: string) => void; -}; +} export const RadiosContext = createContext({ name: '', diff --git a/src/components/navigation/breadcrumb/Breadcrumb.tsx b/src/components/navigation/breadcrumb/Breadcrumb.tsx index e63c9792..dbbab42c 100644 --- a/src/components/navigation/breadcrumb/Breadcrumb.tsx +++ b/src/components/navigation/breadcrumb/Breadcrumb.tsx @@ -14,8 +14,8 @@ const BreadcrumbComponent = forwardRef((props, for // Split off any "Item" components const { ItemChildren, OtherChildren } = Children.toArray(children).reduce<{ - ItemChildren: Array; - OtherChildren: Array; + ItemChildren: ReactNode[]; + OtherChildren: ReactNode[]; }>( (prev, child) => { if (childIsOfComponentType(child, BreadcrumbItem)) { diff --git a/src/components/typography/__tests__/Heading.test.tsx b/src/components/typography/__tests__/Heading.test.tsx index 8470e288..c9240c7f 100644 --- a/src/components/typography/__tests__/Heading.test.tsx +++ b/src/components/typography/__tests__/Heading.test.tsx @@ -57,7 +57,7 @@ describe('Heading', () => { }); it('console.warn when headingLevel is invalid', () => { - const consoleSpy = jest.spyOn(console, 'error').mockImplementation(() => {}); + const consoleSpy = jest.spyOn(console, 'error').mockImplementation(); // @ts-expect-error - testing invalid prop render(); diff --git a/src/components/utils/FormGroupContext.ts b/src/components/utils/FormGroupContext.ts index aa3c6514..0862384b 100644 --- a/src/components/utils/FormGroupContext.ts +++ b/src/components/utils/FormGroupContext.ts @@ -2,10 +2,10 @@ import { createContext } from 'react'; -export type IFormGroupContext = { +export interface IFormGroupContext { passError: (componentId: string, error: boolean) => void; registerComponent: (componentId: string, deregister?: boolean) => void; -}; +} export const FormGroupContext = createContext({ passError: () => {}, diff --git a/src/components/utils/__tests__/FormGroup.test.tsx b/src/components/utils/__tests__/FormGroup.test.tsx index 265f2d6d..d9052cef 100644 --- a/src/components/utils/__tests__/FormGroup.test.tsx +++ b/src/components/utils/__tests__/FormGroup.test.tsx @@ -202,7 +202,7 @@ describe('FormGroup', () => { expect(renderProps?.id).toHaveLength(11); expect(renderProps?.id).toContain('input'); - expect(renderProps!['aria-describedby']).toBe(`${renderProps?.id}--error-message`); + expect(renderProps?.['aria-describedby']).toBe(`${renderProps?.id}--error-message`); expect(container.querySelector('.nhsuk-error-message')?.getAttribute('id')).toBe( `${renderProps?.id}--error-message`, @@ -231,7 +231,7 @@ describe('FormGroup', () => { ); expect(renderProps?.id).toBe('testID'); - expect(renderProps!['aria-describedby']).toBe(`testID--error-message`); + expect(renderProps?.['aria-describedby']).toBe(`testID--error-message`); expect(container.querySelector('.nhsuk-error-message')?.getAttribute('id')).toBe( 'testID--error-message', diff --git a/src/patterns/nav-a-z/NavAZ.tsx b/src/patterns/nav-a-z/NavAZ.tsx index 84c90a6c..4a4f1c3e 100644 --- a/src/patterns/nav-a-z/NavAZ.tsx +++ b/src/patterns/nav-a-z/NavAZ.tsx @@ -8,9 +8,9 @@ const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; const processLetters = ( children: ReactNode, fullAlphabet: boolean | undefined, - removedLetters: Array | undefined, - disabledLetters: Array | undefined, - letters: Array | undefined, + removedLetters: string[] | undefined, + disabledLetters: string[] | undefined, + letters: string[] | undefined, ) => { const letterMap = (letter: string) => { if (removedLetters && removedLetters.includes(letter)) { @@ -39,9 +39,9 @@ const processLetters = ( export interface NavAZProps extends ComponentPropsWithoutRef<'div'> { fullAlphabet?: boolean; - removedLetters?: Array; - disabledLetters?: Array; - letters?: Array; + removedLetters?: string[]; + disabledLetters?: string[]; + letters?: string[]; } const NavAZComponent = forwardRef((props, forwardedRef) => { diff --git a/stories/Form Elements/Checkboxes.stories.tsx b/stories/Form Elements/Checkboxes.stories.tsx index 315a7440..6130f780 100644 --- a/stories/Form Elements/Checkboxes.stories.tsx +++ b/stories/Form Elements/Checkboxes.stories.tsx @@ -29,11 +29,11 @@ const meta: Meta = { export default meta; type Story = StoryObj; -type CheckboxState = { +interface CheckboxState { box1: { name?: string; id?: string }; box2: { name?: string; id?: string }; box3: { name?: string; id?: string }; -}; +} export const Standard: Story = { name: 'Checkboxes default', @@ -838,9 +838,9 @@ export const OnChangeAndOnInputHandlers: Story = { }, }, render: function OnChangeAndOnInputHandlersRender() { - const [changeEventLog, setChangeEventLog] = useState>([]); - const [inputEventLog, setInputEventLog] = useState>([]); - const [currentValue, setCurrentValue] = useState>([]); + const [changeEventLog, setChangeEventLog] = useState([]); + const [inputEventLog, setInputEventLog] = useState([]); + const [currentValue, setCurrentValue] = useState([]); const handleChange = (e: ChangeEvent) => { const target = e.target as HTMLInputElement; diff --git a/tsconfig.base.json b/tsconfig.base.json index e274130b..2ebe518f 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -3,12 +3,15 @@ "allowJs": true, "checkJs": true, "esModuleInterop": true, - "module": "NodeNext", + "module": "ESNext", + "moduleResolution": "Bundler", "noEmit": true, + "noImplicitThis": true, "noUnusedLocals": true, "resolveJsonModule": true, + "resolvePackageJsonImports": true, "skipLibCheck": true, - "strict": false, + "strict": true, "strictBindCallApply": true, "strictFunctionTypes": true, "strictNullChecks": true, diff --git a/tsconfig.build.json b/tsconfig.build.json index eeb0a2bd..aec7554e 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -7,7 +7,6 @@ "lib": ["ESNext", "DOM"], "outDir": "./dist", "rootDir": "./src", - "strict": true, "sourceMap": true, "target": "ES2015", "types": ["node"] diff --git a/tsconfig.dev.json b/tsconfig.dev.json index f2af06c8..f4f2022d 100644 --- a/tsconfig.dev.json +++ b/tsconfig.dev.json @@ -2,8 +2,6 @@ "extends": "./tsconfig.base.json", "compilerOptions": { "jsx": "react-jsxdev", - "module": "ESNext", - "moduleResolution": "Node", "types": ["jest", "node"] }, "include": [ diff --git a/yarn.lock b/yarn.lock index 97a3f45c..e8ed61d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3416,6 +3416,15 @@ __metadata: languageName: node linkType: hard +"@types/eslint-plugin-jsx-a11y@npm:^6.10.1": + version: 6.10.1 + resolution: "@types/eslint-plugin-jsx-a11y@npm:6.10.1" + dependencies: + eslint: "npm:^9" + checksum: 10c0/fe2ce003279f046225fc8ce5ea9b621254f0b6cf6577ea03da4cdd436c6780a7e1565308c2b3406851f5bb6abda0e9e2694f75dc462d8915f031854b10824012 + languageName: node + linkType: hard + "@types/eslint@npm:^9.6.1": version: 9.6.1 resolution: "@types/eslint@npm:9.6.1" @@ -3590,138 +3599,138 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/eslint-plugin@npm:8.57.2" +"@typescript-eslint/eslint-plugin@npm:8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.58.0" dependencies: "@eslint-community/regexpp": "npm:^4.12.2" - "@typescript-eslint/scope-manager": "npm:8.57.2" - "@typescript-eslint/type-utils": "npm:8.57.2" - "@typescript-eslint/utils": "npm:8.57.2" - "@typescript-eslint/visitor-keys": "npm:8.57.2" + "@typescript-eslint/scope-manager": "npm:8.58.0" + "@typescript-eslint/type-utils": "npm:8.58.0" + "@typescript-eslint/utils": "npm:8.58.0" + "@typescript-eslint/visitor-keys": "npm:8.58.0" ignore: "npm:^7.0.5" natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^2.4.0" + ts-api-utils: "npm:^2.5.0" peerDependencies: - "@typescript-eslint/parser": ^8.57.2 + "@typescript-eslint/parser": ^8.58.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/92f3a45f6c2104cef5294bfba972c475b1d3fafb6070efa1178b38cb951e7dfbaf89eae50bfd95f4a476fe51783e218b115bd7cbc09fc9bc7c0ca6c5233861d2 + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/ac45c30f6ba9e188a01144708aa845e7ee8bb8a4d4f9aa6d2dce7784852d0821d42b031fee6832069935c3b885feff6d4014e30145b99693d25d7f563266a9f8 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/parser@npm:8.57.2" +"@typescript-eslint/parser@npm:8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/parser@npm:8.58.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.57.2" - "@typescript-eslint/types": "npm:8.57.2" - "@typescript-eslint/typescript-estree": "npm:8.57.2" - "@typescript-eslint/visitor-keys": "npm:8.57.2" + "@typescript-eslint/scope-manager": "npm:8.58.0" + "@typescript-eslint/types": "npm:8.58.0" + "@typescript-eslint/typescript-estree": "npm:8.58.0" + "@typescript-eslint/visitor-keys": "npm:8.58.0" debug: "npm:^4.4.3" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/afd8a30bd42ac56b212f3182d1b60e4556542eb22147b5b7a9a606d3c79ee35e596baf0bd7672d7e236472d246efc86e06265a46be26150ac12b05e4c45d16a6 + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/56c7ec21675cec4730760bfa37c29e42e80b4d6444e2beca55fad9ef53731392270d142797482ea798405be0d7e28ec6c9c16a1ee2ee1c94f73d3bf0ed29763c languageName: node linkType: hard -"@typescript-eslint/project-service@npm:8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/project-service@npm:8.57.2" +"@typescript-eslint/project-service@npm:8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/project-service@npm:8.58.0" dependencies: - "@typescript-eslint/tsconfig-utils": "npm:^8.57.2" - "@typescript-eslint/types": "npm:^8.57.2" + "@typescript-eslint/tsconfig-utils": "npm:^8.58.0" + "@typescript-eslint/types": "npm:^8.58.0" debug: "npm:^4.4.3" peerDependencies: - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/f84e3165b0a214318d4bc119018b87c044170d7638945e84bd4cee2d752b62c1797ce722ca1161cd06f48512d0115ef75500e6c8fc01005ad4bb39fb48dd77bf + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/e6d0cb2f7708ccb31a2ff9eb35817d4999c26e1f1cd3c607539e21d0c73a234daa77c73ee1163bc4e8b139252d619823c444759f1ddabdd138cab4885e9c9794 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/scope-manager@npm:8.57.2" +"@typescript-eslint/scope-manager@npm:8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/scope-manager@npm:8.58.0" dependencies: - "@typescript-eslint/types": "npm:8.57.2" - "@typescript-eslint/visitor-keys": "npm:8.57.2" - checksum: 10c0/532b1a97a5c2fce51400fa1a94e09615b4df84ce1f2d107206a3f3935074cada396a3e30f155582a698981832868e1afea1641ff779ad9456fdc94169b7def64 + "@typescript-eslint/types": "npm:8.58.0" + "@typescript-eslint/visitor-keys": "npm:8.58.0" + checksum: 10c0/bd5c16780f22d62359af0f69909f38a15fa3c55e609124a7cd5c2a04322fe41e586d81066f3ad1dcc3c1eff24dbcb48b78d099626d611fbd680c20c005d48f1d languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.57.2, @typescript-eslint/tsconfig-utils@npm:^8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/tsconfig-utils@npm:8.57.2" +"@typescript-eslint/tsconfig-utils@npm:8.58.0, @typescript-eslint/tsconfig-utils@npm:^8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.58.0" peerDependencies: - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/199dad2d96efc88ce94f5f3e12e97205537bf7a7152e56ef1d84dfbe7bd1babebea9b9f396c01b6c447505a4eb02c1cbbd2c28828c587b51b41b15d017a11d2f + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/0a07fe1a28b2513e625882bc8d4c4e0c5a105cdbcb987beae12fc66dbe71dc9638013e4d1fa8ad10d828a2acd5e3fed987c189c00d41fed0e880009f99adf1b2 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/type-utils@npm:8.57.2" +"@typescript-eslint/type-utils@npm:8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/type-utils@npm:8.58.0" dependencies: - "@typescript-eslint/types": "npm:8.57.2" - "@typescript-eslint/typescript-estree": "npm:8.57.2" - "@typescript-eslint/utils": "npm:8.57.2" + "@typescript-eslint/types": "npm:8.58.0" + "@typescript-eslint/typescript-estree": "npm:8.58.0" + "@typescript-eslint/utils": "npm:8.58.0" debug: "npm:^4.4.3" - ts-api-utils: "npm:^2.4.0" + ts-api-utils: "npm:^2.5.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/9c479cd0e809d26b7da7b31e830520bc016aaf528bc10a8b8279374808cb76a27f1b4adc77c84156417dc70f6a9e8604f47717b555a27293da2b9b5cfda70411 + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/1223733d41f8463be92ef1ad048d546f9663152212b22dc968abbd9f8e4486bd4082e16baa51d2d281e0d4815563bc4b1ecf01684e2940b7897ba17aa26d1196 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.57.2, @typescript-eslint/types@npm:^8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/types@npm:8.57.2" - checksum: 10c0/3cd87dd77d28b3ac2fed56a17909b0d11633628d4d733aa148dfd7af72e2cc3ec0e6114b72fac0ff538e8a47e907b4b10dab4095170ae1bd73719ef0b8eaf2e7 +"@typescript-eslint/types@npm:8.58.0, @typescript-eslint/types@npm:^8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/types@npm:8.58.0" + checksum: 10c0/f2fe1321758a04591c20d77caba956ae76b77cff0b976a0224b37077d80b1ebd826874d15ec79c3a3b7d57ee5679e5d10756db1b082bde3d51addbd3a8431d38 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/typescript-estree@npm:8.57.2" +"@typescript-eslint/typescript-estree@npm:8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.58.0" dependencies: - "@typescript-eslint/project-service": "npm:8.57.2" - "@typescript-eslint/tsconfig-utils": "npm:8.57.2" - "@typescript-eslint/types": "npm:8.57.2" - "@typescript-eslint/visitor-keys": "npm:8.57.2" + "@typescript-eslint/project-service": "npm:8.58.0" + "@typescript-eslint/tsconfig-utils": "npm:8.58.0" + "@typescript-eslint/types": "npm:8.58.0" + "@typescript-eslint/visitor-keys": "npm:8.58.0" debug: "npm:^4.4.3" minimatch: "npm:^10.2.2" semver: "npm:^7.7.3" tinyglobby: "npm:^0.2.15" - ts-api-utils: "npm:^2.4.0" + ts-api-utils: "npm:^2.5.0" peerDependencies: - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/2c5d143f0abbafd07a45f0b956aab5d6487b27f74fe93bee93e0a3f8edc8913f1522faf8d7d5215f3809a8d12f5729910ea522156552f2481b66e6d05ab311ae + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/a8cb94cb765b27740a54f9b5378bd8f0dc49e301ceed99a0791dc9d1f61c2a54e3212f7ed9120c8c2df80104ad3117150cf5e7fe8a0b7eec3ed04969a79b103e languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/utils@npm:8.57.2" +"@typescript-eslint/utils@npm:8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/utils@npm:8.58.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.9.1" - "@typescript-eslint/scope-manager": "npm:8.57.2" - "@typescript-eslint/types": "npm:8.57.2" - "@typescript-eslint/typescript-estree": "npm:8.57.2" + "@typescript-eslint/scope-manager": "npm:8.58.0" + "@typescript-eslint/types": "npm:8.58.0" + "@typescript-eslint/typescript-estree": "npm:8.58.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/5771f3d4206004cc817a6556a472926b4c1c885dc448049c10ffab1d5aac7bd59450a391fb57ce8ef31a8367e9c8ddb3bc9370c4e83fc8b61f50fd5189390e8f + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/457e01a6e6d954dbfe13c49ece3cf8a55e5d8cf19ea9ae7086c0e205d89e3cdbb91153062ab440d2e78ad3f077b174adc42bfb1b6fc24299020a0733e7f9c11c languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.57.2": - version: 8.57.2 - resolution: "@typescript-eslint/visitor-keys@npm:8.57.2" +"@typescript-eslint/visitor-keys@npm:8.58.0": + version: 8.58.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.58.0" dependencies: - "@typescript-eslint/types": "npm:8.57.2" + "@typescript-eslint/types": "npm:8.58.0" eslint-visitor-keys: "npm:^5.0.0" - checksum: 10c0/8ceb8c228bf97b3e4b343bf6e42a91998d2522f459eb6b53c6bfad4898a9df74295660893dee6b698bdbbda537e968bfc13a3c56fc341089ebfba13db766a574 + checksum: 10c0/75f3c9c097a308cc6450822a0f81d44c8b79b524e99dd2c41ded347b12f148ab3bd459ce9cc6bd00f8f0725c5831baab6d2561596ead3394ab76dddbeb32cce1 languageName: node linkType: hard @@ -4261,16 +4270,16 @@ __metadata: languageName: node linkType: hard -"babel-plugin-module-resolver@npm:^5.0.2": - version: 5.0.2 - resolution: "babel-plugin-module-resolver@npm:5.0.2" +"babel-plugin-module-resolver@npm:^5.0.3": + version: 5.0.3 + resolution: "babel-plugin-module-resolver@npm:5.0.3" dependencies: find-babel-config: "npm:^2.1.1" glob: "npm:^9.3.3" pkg-up: "npm:^3.1.0" reselect: "npm:^4.1.7" resolve: "npm:^1.22.8" - checksum: 10c0/ccbb9e673c4219f68937349267521becb72be292cf30bf70b861c3e709d24fbfa589da0bf6c100a0def799d38199299171cb6eac3fb00b1ea740373e2c1fe54c + checksum: 10c0/aa8940ae1eaa7dadbf63b12387ed63ab34a19bf6614ac76e16e4d44af80ae36c4741d307a91f864320c0ad33037b34466854bb9d8de6c1e73936b1af1b6d36a6 languageName: node linkType: hard @@ -5553,7 +5562,7 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^9.39.4": +"eslint@npm:^9, eslint@npm:^9.39.4": version: 9.39.4 resolution: "eslint@npm:9.39.4" dependencies: @@ -7878,13 +7887,14 @@ __metadata: "@testing-library/jest-dom": "npm:^6.9.1" "@testing-library/react": "npm:^16.3.2" "@types/eslint": "npm:^9.6.1" + "@types/eslint-plugin-jsx-a11y": "npm:^6.10.1" "@types/jest": "npm:^30.0.0" "@types/jest-axe": "npm:^3.5.9" "@types/node": "npm:^24.12.0" "@types/react": "npm:^19.2.14" "@types/react-dom": "npm:^19.2.3" babel-jest: "npm:^30.3.0" - babel-plugin-module-resolver: "npm:^5.0.2" + babel-plugin-module-resolver: "npm:^5.0.3" babel-plugin-replace-import-extension: "npm:^1.1.5" classnames: "npm:^2.5.1" eslint: "npm:^9.39.4" @@ -7908,8 +7918,8 @@ __metadata: sass-embedded: "npm:^1.97.2" storybook: "npm:^10.2.14" tslib: "npm:^2.8.1" - typescript: "npm:^5.9.3" - typescript-eslint: "npm:^8.57.1" + typescript: "npm:^6.0.2" + typescript-eslint: "npm:^8.58.0" vite: "npm:^7.3.1" vite-tsconfig-paths: "npm:^6.1.1" peerDependencies: @@ -9826,12 +9836,12 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^2.4.0": - version: 2.4.0 - resolution: "ts-api-utils@npm:2.4.0" +"ts-api-utils@npm:^2.5.0": + version: 2.5.0 + resolution: "ts-api-utils@npm:2.5.0" peerDependencies: typescript: ">=4.8.4" - checksum: 10c0/ed185861aef4e7124366a3f6561113557a57504267d4d452a51e0ba516a9b6e713b56b4aeaab9fa13de9db9ab755c65c8c13a777dba9133c214632cb7b65c083 + checksum: 10c0/767849383c114e7f1971fa976b20e73ac28fd0c70d8d65c0004790bf4d8f89888c7e4cf6d5949f9c1beae9bc3c64835bef77bbe27fddf45a3c7b60cebcf85c8c languageName: node linkType: hard @@ -9962,38 +9972,38 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^8.57.1": - version: 8.57.2 - resolution: "typescript-eslint@npm:8.57.2" +"typescript-eslint@npm:^8.58.0": + version: 8.58.0 + resolution: "typescript-eslint@npm:8.58.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.57.2" - "@typescript-eslint/parser": "npm:8.57.2" - "@typescript-eslint/typescript-estree": "npm:8.57.2" - "@typescript-eslint/utils": "npm:8.57.2" + "@typescript-eslint/eslint-plugin": "npm:8.58.0" + "@typescript-eslint/parser": "npm:8.58.0" + "@typescript-eslint/typescript-estree": "npm:8.58.0" + "@typescript-eslint/utils": "npm:8.58.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/b657195d7f080eae54527354f847af0300f7f3d7126515c692b92f5d4a880bc40b11a350ea98e1decf62846cce085c072005eb867019b3b7e8a76b4f0ec18713 + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/85b56c1d209d0d6e07c09f05d30e1da4fec88285f96edc22a9b09321c41dc0572d686ee33532747bcf40cc071927f5b9a6b91f2fbe14dc1c45111a490394ab41 languageName: node linkType: hard -"typescript@npm:^5.9.3": - version: 5.9.3 - resolution: "typescript@npm:5.9.3" +"typescript@npm:^6.0.2": + version: 6.0.2 + resolution: "typescript@npm:6.0.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 + checksum: 10c0/4b860b0bf87cc0fee0f66d8ef2640b5a8a8a8c74d1129adb82e389e5f97124383823c47946bef8a73ede371461143a3aa8544399d2133c7b2e4f07e81860af7f languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.9.3#optional!builtin": - version: 5.9.3 - resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" +"typescript@patch:typescript@npm%3A^6.0.2#optional!builtin": + version: 6.0.2 + resolution: "typescript@patch:typescript@npm%3A6.0.2#optional!builtin::version=6.0.2&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 + checksum: 10c0/49f0b84fc6ca55653e77752b8a61beabc09ee3dae5d965c31596225aa6ef213c5727b1d2e895b900416dc603854ba0872ac4a812c2a4ed6793a601f9c675de02 languageName: node linkType: hard