diff --git a/package.json b/package.json index 5a251b94f2..64e948344c 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.21.0", "@babel/preset-env": "^7.26.0", - "@babel/preset-react": "^7.25.9", + "@babel/preset-react": "^7.26.3", "@babel/preset-typescript": "^7.26.0", "@chromatic-com/storybook": "^3", "@csstools/postcss-sass": "^5.1.1", @@ -69,7 +69,7 @@ "@storybook/addon-queryparams": "^7.0.1", "@storybook/addon-webpack5-compiler-babel": "^3.0.3", "@storybook/react": "^8.2.9", - "@storybook/react-webpack5": "^8.4.6", + "@storybook/react-webpack5": "^8.4.7", "@testing-library/dom": "^9.3.4", "@testing-library/react": "^14.2.2", "@testing-library/react-hooks": "^8.0.1", @@ -81,13 +81,13 @@ "@types/react-redux": "^7.1.24", "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^7.16.0", - "@vitest/coverage-istanbul": "^2.1.6", + "@vitest/coverage-istanbul": "^2.1.8", "autoprefixer": "^10.4.20", "babel-loader": "^9.2.1", "babel-plugin-istanbul": "^7.0.0", "babel-plugin-lodash": "^3.3.4", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "caniuse-lite": "^1.0.30001684", + "caniuse-lite": "^1.0.30001687", "change-case-all": "^2.1.0", "chokidar-cli": "^3.0.0", "concurrently": "^9.1.0", @@ -95,7 +95,7 @@ "css-loader": "^7.1.2", "cssnano": "^7.0.6", "cypress": "^13.0.0", - "dotenv": "^16.4.5", + "dotenv": "^16.4.7", "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^18.0.0", @@ -107,7 +107,7 @@ "eslint-plugin-no-only-tests": "^3.3.0", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-react": "^7.37.2", - "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-hooks": "^5.1.0", "eslint-webpack-plugin": "^4.2.0", "glob": "^8.0.1", "happy-dom": "^14.12.3", @@ -122,9 +122,9 @@ "postcss-scss": "^4.0.9", "prettier": "^2.6.2", "replace-in-file": "^6.3.2", - "sass": "^1.81.0", + "sass": "^1.82.0", "source-map-support": "^0.5.21", - "storybook": "^8.4.6", + "storybook": "^8.4.7", "style-loader": "^4.0.0", "stylelint": "^15.11.0", "stylelint-config-prettier": "^9.0.5", diff --git a/src/components/facet-browser/helper.ts b/src/components/facet-browser/helper.ts index 4019272327..f6d392b609 100644 --- a/src/components/facet-browser/helper.ts +++ b/src/components/facet-browser/helper.ts @@ -135,8 +135,7 @@ export const getFacetFieldTranslation = (name: FacetFieldEnum) => { return "facetWorkTypesText"; case FacetFieldEnum.Year.toLowerCase(): return "facetYearText"; - // TODO: Replace this case when FBI API specs have updated - case "gameplatform": + case FacetFieldEnum.Gameplatform.toLowerCase(): return "facetGamePlatformText"; default: return invalidSwitchCase(name as never); diff --git a/src/components/find-on-shelf/FindOnShelfManifestationListItem.tsx b/src/components/find-on-shelf/FindOnShelfManifestationListItem.tsx index a14a78d2e5..9b4519df3c 100644 --- a/src/components/find-on-shelf/FindOnShelfManifestationListItem.tsx +++ b/src/components/find-on-shelf/FindOnShelfManifestationListItem.tsx @@ -42,7 +42,7 @@ const FindOnShelfManifestationListItem: FC< {locationArrayWithShelfmark.length - ? getFindOnShelfLocationText(locationArray, author) + ? getFindOnShelfLocationText(locationArrayWithShelfmark, author) : t("findOnShelfModalNoLocationSpecifiedText")} diff --git a/src/core/dbc-gateway/generated/graphql.schema.json b/src/core/dbc-gateway/generated/graphql.schema.json index f00f76c1fb..29db834d52 100644 --- a/src/core/dbc-gateway/generated/graphql.schema.json +++ b/src/core/dbc-gateway/generated/graphql.schema.json @@ -1445,6 +1445,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "traceId", + "description": "A unique identifier for tracking user interactions with this suggestion. \nIt is generated in the response and should be included in subsequent\nAPI calls when this suggestion is selected.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "type", "description": "The type of suggestion", @@ -5065,6 +5081,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "marc", + "description": "Field for presenting bibliographic records in MARC format", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MarcRecord", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "materialTypes", "description": "The type of material of the manifestation based on bibliotek.dk types", @@ -5353,6 +5381,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "traceId", + "description": "A unique identifier for tracking user interactions with this manifestation. \nIt is generated in the response and should be included in subsequent\nAPI calls when this manifestation is selected.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "unit", "description": "id of the manifestaion unit", @@ -6059,6 +6103,155 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "Marc", + "description": null, + "isOneOf": null, + "fields": [ + { + "name": "getMarcByRecordId", + "description": "Gets the MARC record collection for the given record identifier, containing either standalone or head and/or section and volume records.", + "args": [ + { + "name": "recordId", + "description": "The marc record identifier", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "OBJECT", + "name": "MarcRecord", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MarcRecord", + "description": null, + "isOneOf": null, + "fields": [ + { + "name": "agencyId", + "description": "The library agency", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bibliographicRecordId", + "description": "The bibliographic record identifier", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "content", + "description": "The MARC record collection content as marcXchange XML string", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "contentSerializationFormat", + "description": "The serialization format of the MARC record content. Defaults to 'marcXchange'", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deleted", + "description": "Flag indicating whether or not the record is deleted", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "The marc record identifier", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "MaterialType", @@ -7508,6 +7701,12 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "EXPECTED_PUBLICATION_DATE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "FREQUENCY", "description": null, @@ -8510,6 +8709,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "marc", + "description": "Field for presenting bibliographic records in MARC format", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Marc", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "mood", "description": null, @@ -10463,6 +10678,26 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "gamePlatform", + "description": null, + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "generalAudience", "description": null, @@ -12681,6 +12916,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "traceId", + "description": "A unique identifier for tracking user interactions with this suggestion. \nIt is generated in the response and should be included in subsequent\nAPI calls when this suggestion is selected.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "type", "description": "The type of suggestion: creator, subject or title", @@ -13736,6 +13987,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "marc", + "description": "Field for presenting bibliographic records in MARC format", + "args": [], + "type": { + "kind": "OBJECT", + "name": "MarcRecord", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "materialTypes", "description": "The type of material of the manifestation based on bibliotek.dk types", @@ -13832,6 +14095,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "traceId", + "description": "A unique identifier for tracking user interactions with this work.\nIt is generated in the response and should be included in subsequent\nAPI calls when this work is selected.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "universes", "description": "Literary/movie universes this work is part of, e.g. Wizarding World, Marvel Universe", diff --git a/src/core/dbc-gateway/generated/graphql.tsx b/src/core/dbc-gateway/generated/graphql.tsx index b0fe8d1ff2..df78059f83 100644 --- a/src/core/dbc-gateway/generated/graphql.tsx +++ b/src/core/dbc-gateway/generated/graphql.tsx @@ -252,6 +252,12 @@ export type ComplexSearchSuggestion = { __typename?: "ComplexSearchSuggestion"; /** The suggested term which can be searched for */ term: Scalars["String"]["output"]; + /** + * A unique identifier for tracking user interactions with this suggestion. + * It is generated in the response and should be included in subsequent + * API calls when this suggestion is selected. + */ + traceId: Scalars["String"]["output"]; /** The type of suggestion */ type: Scalars["String"]["output"]; /** A work related to the term */ @@ -803,6 +809,8 @@ export type Manifestation = { latestPrinting?: Maybe; /** Tracks on music album, sheet music content, or articles/short stories etc. in this manifestation */ manifestationParts?: Maybe; + /** Field for presenting bibliographic records in MARC format */ + marc?: Maybe; /** The type of material of the manifestation based on bibliotek.dk types */ materialTypes: Array; /** Notes about the manifestation */ @@ -835,6 +843,12 @@ export type Manifestation = { tableOfContents?: Maybe; /** Different kinds of titles for this work */ titles: ManifestationTitles; + /** + * A unique identifier for tracking user interactions with this manifestation. + * It is generated in the response and should be included in subsequent + * API calls when this manifestation is selected. + */ + traceId: Scalars["String"]["output"]; /** id of the manifestaion unit */ unit?: Maybe; /** Universes for this manifestation */ @@ -923,6 +937,32 @@ export type Manifestations = { mostRelevant: Array; }; +export type Marc = { + __typename?: "Marc"; + /** Gets the MARC record collection for the given record identifier, containing either standalone or head and/or section and volume records. */ + getMarcByRecordId?: Maybe; +}; + +export type MarcGetMarcByRecordIdArgs = { + recordId: Scalars["String"]["input"]; +}; + +export type MarcRecord = { + __typename?: "MarcRecord"; + /** The library agency */ + agencyId: Scalars["String"]["output"]; + /** The bibliographic record identifier */ + bibliographicRecordId: Scalars["String"]["output"]; + /** The MARC record collection content as marcXchange XML string */ + content: Scalars["String"]["output"]; + /** The serialization format of the MARC record content. Defaults to 'marcXchange' */ + contentSerializationFormat: Scalars["String"]["output"]; + /** Flag indicating whether or not the record is deleted */ + deleted: Scalars["Boolean"]["output"]; + /** The marc record identifier */ + id: Scalars["String"]["output"]; +}; + export type MaterialType = { __typename?: "MaterialType"; /** jed 1.1 - the general materialtype */ @@ -1124,6 +1164,7 @@ export enum NoteTypeEnum { Dissertation = "DISSERTATION", Edition = "EDITION", EstimatedPlayingTimeForGames = "ESTIMATED_PLAYING_TIME_FOR_GAMES", + ExpectedPublicationDate = "EXPECTED_PUBLICATION_DATE", Frequency = "FREQUENCY", MusicalEnsembleOrCast = "MUSICAL_ENSEMBLE_OR_CAST", NotSpecified = "NOT_SPECIFIED", @@ -1241,6 +1282,8 @@ export type Query = { localSuggest: LocalSuggestResponse; manifestation?: Maybe; manifestations: Array>; + /** Field for presenting bibliographic records in MARC format */ + marc: Marc; mood: MoodQueries; ors: OrsQuery; /** Get recommendations */ @@ -1495,6 +1538,7 @@ export type SearchFiltersInput = { dk5?: InputMaybe>; fictionNonfiction?: InputMaybe>; fictionalCharacters?: InputMaybe>; + gamePlatform?: InputMaybe>; generalAudience?: InputMaybe>; genreAndForm?: InputMaybe>; letRange?: InputMaybe>; @@ -1802,6 +1846,12 @@ export type Suggestion = { __typename?: "Suggestion"; /** The suggested term which can be searched for */ term: Scalars["String"]["output"]; + /** + * A unique identifier for tracking user interactions with this suggestion. + * It is generated in the response and should be included in subsequent + * API calls when this suggestion is selected. + */ + traceId: Scalars["String"]["output"]; /** The type of suggestion: creator, subject or title */ type: SuggestionTypeEnum; /** A work related to the term */ @@ -1951,6 +2001,8 @@ export type Work = { mainLanguages: Array; /** Details about the manifestations of this work */ manifestations: Manifestations; + /** Field for presenting bibliographic records in MARC format */ + marc?: Maybe; /** The type of material of the manifestation based on bibliotek.dk types */ materialTypes: Array; /** Relations to other manifestations */ @@ -1960,6 +2012,12 @@ export type Work = { /** Subjects for this work */ subjects: SubjectContainer; titles: WorkTitles; + /** + * A unique identifier for tracking user interactions with this work. + * It is generated in the response and should be included in subsequent + * API calls when this work is selected. + */ + traceId: Scalars["String"]["output"]; /** Literary/movie universes this work is part of, e.g. Wizarding World, Marvel Universe */ universes: Array; /** Unique identification of the work based on work-presentation id e.g work-of:870970-basis:54029519 */ diff --git a/yarn.lock b/yarn.lock index acb66de829..15c2cd480e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1059,10 +1059,10 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.16.0", "@babel/preset-react@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.25.9.tgz#5f473035dc2094bcfdbc7392d0766bd42dce173e" - integrity sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw== +"@babel/preset-react@^7.16.0", "@babel/preset-react@^7.26.3": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.26.3.tgz#7c5e028d623b4683c1f83a0bd4713b9100560caa" + integrity sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/helper-validator-option" "^7.25.9" @@ -2927,12 +2927,12 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack5@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-8.4.6.tgz#4e650fb61d4d4e5161918c8f383ba8e4da2a7664" - integrity sha512-/ZInCFk2myJZinnAU05bATe+9iJn3+YRoxl+CUpYljxzsjoqb7iAwaNaMNolZCDOnMj24Kg2Pt87WtzAhu+ilw== +"@storybook/builder-webpack5@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-8.4.7.tgz#5bc15568716bbf4f45a88fc389e25fa2ce50a8c2" + integrity sha512-O8LpsQ+4g2x5kh7rI9+jEUdX8k1a5egBQU1lbudmHchqsV0IKiVqBD9LL5Gj3wpit4vB8coSW4ZWTFBw8FQb4Q== dependencies: - "@storybook/core-webpack" "8.4.6" + "@storybook/core-webpack" "8.4.7" "@types/node" "^22.0.0" "@types/semver" "^7.3.4" browser-assert "^1.2.1" @@ -2958,23 +2958,23 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.6.0" -"@storybook/components@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.4.6.tgz#2c406a709189008172c8cf4f55d05254954bae4d" - integrity sha512-9tKSJJCyFT5RZMRGyozTBJkr9C9Yfk1nuOE9XbDEE1Z+3/IypKR9+iwc5mfNBStDNY+rxtYWNLKBb5GPR2yhzA== +"@storybook/components@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-8.4.7.tgz#09eeffa07aa672ad3966ca1764a43003731b1d30" + integrity sha512-uyJIcoyeMWKAvjrG9tJBUCKxr2WZk+PomgrgrUwejkIfXMO76i6jw9BwLa0NZjYdlthDv30r9FfbYZyeNPmF0g== -"@storybook/core-webpack@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-8.4.6.tgz#5cedabc15e00043a532ff6a61ec4041a653e3bda" - integrity sha512-5NE4pUy0iHKc8UKHm7A7SikxSMOO92udl7kcBUlQKwcAgrAk1rFpvfXGodDb48AVgfK+07qAOSjBm7GcZ7X1jw== +"@storybook/core-webpack@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/core-webpack/-/core-webpack-8.4.7.tgz#660d1cbd03a91fee27b65e6acc2f9269ed1fbfc8" + integrity sha512-Tj+CjQLpFyBJxhhMms+vbPT3+gTRAiQlrhY3L1IEVwBa3wtRMS0qjozH26d1hK4G6mUIEdwu13L54HMU/w33Sg== dependencies: "@types/node" "^22.0.0" ts-dedent "^2.0.0" -"@storybook/core@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-8.4.6.tgz#78a3155f428635be808c4ef2912eeb79140228c8" - integrity sha512-WeojVtHy0/t50tzw/15S+DLzKsj8BN9yWdo3vJMvm+nflLFvfq1XvD9WGOWeaFp8E/o3AP+4HprXG0r42KEJtA== +"@storybook/core@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-8.4.7.tgz#af9cbb3f26f0b6c98c679a134ce776c202570d66" + integrity sha512-7Z8Z0A+1YnhrrSXoKKwFFI4gnsLbWzr8fnDCU6+6HlDukFYh8GHRcZ9zKfqmy6U3hw2h8H5DrHsxWfyaYUUOoA== dependencies: "@storybook/csf" "^0.1.11" better-opn "^3.0.2" @@ -3012,18 +3012,18 @@ resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-1.2.12.tgz#3e4c939113b67df7ab17b78f805dbb57f4acf0db" integrity sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q== -"@storybook/manager-api@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.4.6.tgz#844a8b71de7eae44998a83b96666a05e6e49156c" - integrity sha512-TsXlQ5m5rTl2KNT9icPFyy822AqXrx1QplZBt/L7cFn7SpqQKDeSta21FH7MG0piAvzOweXebVSqKngJ6cCWWQ== +"@storybook/manager-api@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-8.4.7.tgz#4e13debf645c9300d7d6d49195e720d0c7ecd261" + integrity sha512-ELqemTviCxAsZ5tqUz39sDmQkvhVAvAgiplYy9Uf15kO0SP2+HKsCMzlrm2ue2FfkUNyqbDayCPPCB0Cdn/mpQ== -"@storybook/preset-react-webpack@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-8.4.6.tgz#6df6255af7063284b01f55840fb98343f27c62c6" - integrity sha512-4AdsRug6NaWras/bbcFx7KEnJY5GLt3REPlSqMtZwhdY3f7LF0W++Wyo/F2ly82f57welquGURyL+YxjQ9yFkA== +"@storybook/preset-react-webpack@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/preset-react-webpack/-/preset-react-webpack-8.4.7.tgz#7b303f464228035a919ea18a3cd6193f6776c2bc" + integrity sha512-geTSBKyrBagVihil5MF7LkVFynbfHhCinvnbCZZqXW7M1vgcxvatunUENB+iV8eWg/0EJ+8O7scZL+BAxQ/2qg== dependencies: - "@storybook/core-webpack" "8.4.6" - "@storybook/react" "8.4.6" + "@storybook/core-webpack" "8.4.7" + "@storybook/react" "8.4.7" "@storybook/react-docgen-typescript-plugin" "1.0.6--canary.9.0c3f3b7.0" "@types/node" "^22.0.0" "@types/semver" "^7.3.4" @@ -3035,10 +3035,10 @@ tsconfig-paths "^4.2.0" webpack "5" -"@storybook/preview-api@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.4.6.tgz#5c167e5c0fceed1010da27bcf08c81e2449cb538" - integrity sha512-LbD+lR1FGvWaJBXteVx5xdgs1x1D7tyidBg2CsW2ex+cP0iJ176JgjPfutZxlWOfQnhfRYNnJ3WKoCIfxFOTKA== +"@storybook/preview-api@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-8.4.7.tgz#85e01a97f4182b974581765d725f6c7a7d190013" + integrity sha512-0QVQwHw+OyZGHAJEXo6Knx+6/4er7n2rTDE5RYJ9F2E2Lg42E19pfdLlq2Jhoods2Xrclo3wj6GWR//Ahi39Eg== "@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0": version "1.0.6--canary.9.0c3f3b7.0" @@ -3058,37 +3058,37 @@ resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.3.3.tgz#0a23588f507c5c69b1153e43f16c37dbf38b82f1" integrity sha512-0dPC9K7+K5+X/bt3GwYmh+pCpisUyKVjWsI+PkzqGnWqaXFakzFakjswowIAIO1rf7wYZR591x3ehUAyL2bJiQ== -"@storybook/react-dom-shim@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.4.6.tgz#526fa7a7c754cbb5e42f2ade4b167f210a4fd70e" - integrity sha512-f7RM8GO++fqMxbjNdEzeGS1P821jXuwRnAraejk5hyjB5SqetauFxMwoFYEYfJXPaLX2qIubnIJ78hdJ/IBaEA== +"@storybook/react-dom-shim@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-8.4.7.tgz#f0dd5bbf2fc185def72d9d08a11c8de22f152c2a" + integrity sha512-6bkG2jvKTmWrmVzCgwpTxwIugd7Lu+2btsLAqhQSzDyIj2/uhMNp8xIMr/NBDtLgq3nomt9gefNa9xxLwk/OMg== -"@storybook/react-webpack5@^8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-8.4.6.tgz#babd1c0fdc6f60f27d6c3737c7fbd1a52d2a1335" - integrity sha512-qUCOUoYW09voRhk0PzEZpZz6F5Ek9aHvVto8KW3lyYEuk6qujqUTNO6Y/X7hMraVt/C3l0+Ds4D5LEmxNBvd8g== +"@storybook/react-webpack5@^8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/react-webpack5/-/react-webpack5-8.4.7.tgz#b0c48caffd658912bd10f4f9960edb229e990b4b" + integrity sha512-T9GLqlsP4It4El7cC8rSkBPRWvORAsTDULeWlO36RST2TrYnmBOUytsi22mk7cAAAVhhD6rTrs1YdqWRMpfa1w== dependencies: - "@storybook/builder-webpack5" "8.4.6" - "@storybook/preset-react-webpack" "8.4.6" - "@storybook/react" "8.4.6" + "@storybook/builder-webpack5" "8.4.7" + "@storybook/preset-react-webpack" "8.4.7" + "@storybook/react" "8.4.7" "@types/node" "^22.0.0" -"@storybook/react@8.4.6", "@storybook/react@^8.2.9": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-8.4.6.tgz#6e8f2b93bf044db123a9d49a17e867afab02e806" - integrity sha512-QAT23beoYNLhFGAXPimtuMErvpcI7eZbZ4AlLqW1fhiTZrRYw06cjC1bs9H3tODMcHH9LS5p3Wz9b29jtV2XGw== +"@storybook/react@8.4.7", "@storybook/react@^8.2.9": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-8.4.7.tgz#e2cf62b3c1d8e4bfe5eff82ced07ec473d4e4fd1" + integrity sha512-nQ0/7i2DkaCb7dy0NaT95llRVNYWQiPIVuhNfjr1mVhEP7XD090p0g7eqUmsx8vfdHh2BzWEo6CoBFRd3+EXxw== dependencies: - "@storybook/components" "8.4.6" + "@storybook/components" "8.4.7" "@storybook/global" "^5.0.0" - "@storybook/manager-api" "8.4.6" - "@storybook/preview-api" "8.4.6" - "@storybook/react-dom-shim" "8.4.6" - "@storybook/theming" "8.4.6" + "@storybook/manager-api" "8.4.7" + "@storybook/preview-api" "8.4.7" + "@storybook/react-dom-shim" "8.4.7" + "@storybook/theming" "8.4.7" -"@storybook/theming@8.4.6": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.4.6.tgz#40b03d72b014cc0bb6530aba0652b49e176b0c0e" - integrity sha512-q7vDPN/mgj7cXIVQ9R1/V75hrzNgKkm2G0LjMo57//9/djQ+7LxvBsR1iScbFIRSEqppvMiBFzkts+2uXidySA== +"@storybook/theming@8.4.7": + version "8.4.7" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-8.4.7.tgz#c308f6a883999bd35e87826738ab8a76515932b5" + integrity sha512-99rgLEjf7iwfSEmdqlHkSG3AyLcK0sfExcr0jnc6rLiAkBhzuIsvcHjjUwkR210SOCgXqBPW0ZA6uhnuyppHLw== "@testing-library/dom@^9.0.0", "@testing-library/dom@^9.3.4": version "9.3.4" @@ -3592,10 +3592,10 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@vitest/coverage-istanbul@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@vitest/coverage-istanbul/-/coverage-istanbul-2.1.6.tgz#1d17366b57623853afa83b95bc59d4906758e8db" - integrity sha512-tJBsODJ8acDxwt4J+HERV0+FxOhjOXn+yVYWHQ25iFqcbQNyvptQLBFxEoRvaMbqJqSaYatGOg0/ctiQdB3mSg== +"@vitest/coverage-istanbul@^2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/coverage-istanbul/-/coverage-istanbul-2.1.8.tgz#72fed37ad79d256209a8fc8678039422a94eadc3" + integrity sha512-cSaCd8KcWWvgDwEJSXm0NEWZ1YTiJzjicKHy+zOEbUm0gjbbkz+qJf1p8q71uBzSlS7vdnZA8wRLeiwVE3fFTA== dependencies: "@istanbuljs/schema" "^0.1.3" debug "^4.3.7" @@ -4911,10 +4911,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001663, caniuse-lite@^1.0.30001669, caniuse-lite@^1.0.30001684: - version "1.0.30001684" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz#0eca437bab7d5f03452ff0ef9de8299be6b08e16" - integrity sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001663, caniuse-lite@^1.0.30001669, caniuse-lite@^1.0.30001687: + version "1.0.30001687" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz#d0ac634d043648498eedf7a3932836beba90ebae" + integrity sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ== capital-case@^1.0.4: version "1.0.4" @@ -6111,10 +6111,10 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dotenv@^16.0.0, dotenv@^16.4.5: - version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== +dotenv@^16.0.0, dotenv@^16.4.7: + version "16.4.7" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26" + integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== downshift@^9.0.8: version "9.0.8" @@ -6658,10 +6658,10 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz#72e2eefbac4b694f5324154619fee44f5f60f101" - integrity sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw== +eslint-plugin-react-hooks@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz#3d34e37d5770866c34b87d5b499f5f0b53bf0854" + integrity sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw== eslint-plugin-react@^7.37.2: version "7.37.2" @@ -11631,10 +11631,10 @@ safe-stable-stringify@^1.1: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.69.5, sass@^1.81.0: - version "1.81.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.81.0.tgz#a9010c0599867909dfdbad057e4a6fbdd5eec941" - integrity sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA== +sass@^1.69.5, sass@^1.82.0: + version "1.82.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.82.0.tgz#30da277af3d0fa6042e9ceabd0d984ed6d07df70" + integrity sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -12098,12 +12098,12 @@ stop-iteration-iterator@^1.0.0: dependencies: internal-slot "^1.0.4" -storybook@^8.4.6: - version "8.4.6" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.4.6.tgz#6a25899fc4a58657e3a66c0b0d9066f3c201f8cc" - integrity sha512-J6juZSZT2u3PUW0QZYZZYxBq6zU5O0OrkSgkMXGMg/QrS9to9IHmt4FjEMEyACRbXo8POcB/fSXa3VpGe7bv3g== +storybook@^8.4.7: + version "8.4.7" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-8.4.7.tgz#a3068787a58074cec1b4197eed1c4427ec644b3f" + integrity sha512-RP/nMJxiWyFc8EVMH5gp20ID032Wvk+Yr3lmKidoegto5Iy+2dVQnUoElZb2zpbVXNHWakGuAkfI0dY1Hfp/vw== dependencies: - "@storybook/core" "8.4.6" + "@storybook/core" "8.4.7" stream-browserify@^2.0.0: version "2.0.2" @@ -12162,7 +12162,7 @@ string-env-interpolation@^1.0.1: resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -12180,6 +12180,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -12274,7 +12283,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -12288,6 +12297,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -13643,7 +13659,7 @@ wildcard@^2.0.0: resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -13670,6 +13686,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"