diff --git a/package.json b/package.json index 0d514fc0..9aafe23d 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "eslint-plugin-react-hooks": "^4.3.0", "git-rev-sync": "^3.0.2", "graphql": "^16.8.0", - "hds-react": "^2.17.0", + "hds-react": "^3.1.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.6.2", "jest-axe": "^8.0.0", @@ -133,8 +133,8 @@ "webpack": "^5.70.0" }, "dependencies": { - "hds-core": "^2.17.0", - "hds-design-tokens": "^2.17.0", + "hds-core": "^3.1.0", + "hds-design-tokens": "^3.1.0", "html-entities": "^2.4.0", "html-react-parser": "^4.2.1", "isomorphic-dompurify": "^1.8.0", diff --git a/src/common/components/icons/index.tsx b/src/common/components/icons/index.tsx index af189024..688b4702 100644 --- a/src/common/components/icons/index.tsx +++ b/src/common/components/icons/index.tsx @@ -1,160 +1,199 @@ export { - IconZoomOut, - IconZoomIn, - IconYouth, - IconWifiCrossed, - IconWifi, - IconVolumePlus, - IconVolumeMute, - IconVolumeMinus, - IconVolumeLow, - IconVolumeHigh, - IconVirus, - IconVideocameraCrossed, - IconVideocamera, - IconVaccine, - IconUploadCloud, - IconTraveler, - IconTrash, - IconThumbsUp, - IconThumbsUpFill, + IconAlertCircle, + IconAlertCircleFill, + IconAngleDown, + IconAngleLeft, + IconAngleRight, + IconAngleUp, + IconArrowBottomLeft, + IconArrowBottomRight, + IconArrowDown, + IconArrowLeft, + IconArrowRedo, + IconArrowRight, + IconArrowRightDashed, + IconArrowTopLeft, + IconArrowTopRight, + IconArrowUndo, + IconArrowUp, + IconAtSign as IconGlyphAt, // @deprecated Use IconAtSign instead + IconAtSign, + IconBagCogwheel, + IconBell, + IconBellCrossed, + IconBinoculars, + IconCake, + IconCalendar, + IconCalendarClock, + IconCalendarCross, + IconCalendarEvent as IconEvent, // @deprecated Use IconCalendarEvent instead + IconCalendarEvent, + IconCalendarPlus, + IconCalendarRecurring, + IconCamera, + IconCheck, + IconCheckCircle, + IconCheckCircleFill, + IconChildren, + IconClock, + IconClockCross, + IconClockPlus, + IconCoffeeCupSaucer, + IconCogwheel, + IconCogwheels, + IconCollapse, + IconCompany, + IconCopy, + IconCross, + IconCrossCircle, + IconCrossCircleFill, + IconCustomerBotNegative, + IconCustomerBotNeutral, + IconCustomerBotPositive, + IconDiscord, + IconDisplay, + IconDocument, + IconDownload, + IconDownloadCloud, + IconDrag, + IconEntrepreneur, + IconEnvelope, + IconError, + IconErrorFill, + IconEuroSign as IconGlyphEuro, // @deprecated Use IconEuroSign instead + IconEuroSign, + IconEye, + IconEyeCrossed, + IconFacebook, + IconFaceNeutral, + IconFaceSad, + IconFaceSmile, + IconFamily, + IconGlobe, + IconGoogle, + IconGraphColumns, + IconGroup, + IconHammers, + IconHeadphones, + IconHeart, + IconHeartFill, + IconHistory, + IconHome, + IconHomeSmoke, + IconInfoCircle, + IconInfoCircleFill, + IconInstagram, + IconKey, + IconLayers, + IconLightbulb, + IconLink, + IconLinkedin, + IconLinkExternal, + IconLocate, + IconLocation, + IconLock, + IconLockOpen, + IconMap, + IconMenuDots, + IconMenuHamburger, + IconMicrophone, + IconMicrophoneCrossed, + IconMinus, + IconMinusCircle, + IconMinusCircleFill, + IconMobile, + IconMoneyBag, + IconMoneyBagFill, + IconMover, + IconOccupation, + IconPaperclip, + IconPen, + IconPenLine, + IconPersonFemale, + IconPersonGenderless, + IconPersonMale, + IconPersonWheelchair, + IconPhone, + IconPhoto, + IconPhotoPlus, + IconPlaybackFastforward, + IconPlaybackNext, + IconPlaybackPause, + IconPlaybackPlay, + IconPlaybackPrevious, + IconPlaybackRecord, + IconPlaybackRewind, + IconPlaybackStop, + IconPlus, + IconPlusCircle, + IconPlusCircleFill, + IconPodcast, + IconPrinter, + IconQuestionCircle, + IconQuestionCircleFill, + IconRefresh, + IconRestaurant, + IconRss, + IconSaveDiskette, + IconSaveDisketteFill, + IconScroll, + IconScrollCogwheel, + IconScrollContent, + IconScrollGroup, + IconSearch, + IconSenior, + IconShare, + IconShield, + IconShoppingCart, + IconSignin, + IconSignout, + IconSitemap, + IconSliders, + IconSnapchat, + IconSort, + IconSortAlphabeticalAscending, + IconSortAlphabeticalDescending, + IconSortAscending, + IconSortDescending, + IconSpeechbubble, + IconSpeechbubbleText, + IconStar, + IconStarFill, + IconSwapUser, + IconTextBold, + IconTextItalic, + IconTextTool, IconThumbsDown, IconThumbsDownFill, + IconThumbsUp, + IconThumbsUpFill, IconTicket, - IconTextTool, - IconTextItalic, - IconTextBold, - IconSwapUser, - IconStarFill, - IconStar, - IconSpeechbubbleText, - IconSpeechbubble, - IconSliders, - IconSitemap, - IconSignout, - IconShoppingCart, - IconShare, - IconSenior, - IconShield, - IconScroll, - IconScrollGroup, - IconScrollContent, - IconScrollCogwheel, - IconSaveDisketteFill, - IconSaveDiskette, - IconRestaurant, - IconRefresh, - IconQuestionCircleFill, - IconPrinter, - IconPodcast, - IconPlusCircleFill, - IconPlusCircle, - IconPlaybackStop, - IconPlaybackRewind, - IconPlaybackRecord, - IconPlaybackPrevious, - IconPlaybackPlay, - IconPlaybackNext, - IconPlaybackFastforward, - IconPhotoPlus, - IconPhone, - IconPersonWheelchair, - IconPersonMale, - IconPersonGenderless, - IconPersonFemale, - IconPenLine, - IconPen, - IconPaperclip, - IconOccupation, - IconMover, - IconMoneyBag, - IconMoneyBagFill, - IconMobile, - IconMinusCircleFill, - IconMinusCircle, - IconMicrophoneCrossed, - IconMicrophone, - IconMenuDots, - IconMap, - IconLockOpen, - IconLock, - IconLocation, - IconLocate, - IconLink, - IconLightbulb, - IconLayers, - IconKey, - IconInfoCircle, - IconHomeSmoke, - IconHome, - IconHistory, - IconHeartFill, - IconHeart, - IconHeadphones, - IconHammers, - IconGroup, - IconGraphColumns, - IconGlyphEuro, - IconGlyphAt, - IconGlobe, - IconFamily, - IconFaceSmile, - IconFaceSad, - IconFaceNeutral, - IconEvent, - IconEnvelope, - IconEntrepreneur, - IconDrag, - IconDownloadCloud, - IconDownload, - IconDisplay, - IconCustomerBotPositive, - IconCustomerBotNeutral, - IconCustomerBotNegative, - IconCopy, - IconCompany, - IconCollapse, - IconCogwheels, - IconCogwheel, - IconCoffeeCupSaucer, - IconClockPlus, - IconClockCross, - IconClock, - IconChildren, - IconCheckCircle, - IconCamera, - IconCalendarRecurring, - IconCalendarPlus, - IconCalendarCross, - IconCalendarClock, - IconCake, - IconBellCrossed, - IconBell, - IconBinoculars, - IconBagCogwheel, - IconArrowUndo, - IconArrowTopRight, - IconArrowTopLeft, - IconArrowRightDashed, - IconArrowRedo, - IconArrowLeft, - IconArrowDown, - IconArrowBottomRight, - IconArrowBottomLeft, - IconAlertCircle, - IconYoutube, - IconYle, - IconWhatsApp, - IconVimeo, - IconTwitter, - IconTwitch, IconTiktok, - IconSnapchat, - IconRss, - IconLinkedin, - IconInstagram, - IconGoogle, - IconFacebook, - IconDiscord, + IconTrash, + IconTraveler, + IconTwitch, + IconTwitter, + IconUpload, + IconUploadCloud, + IconUser, + IconVaccine, + IconVideocamera, + IconVideocameraCrossed, + IconVimeo, + IconVirus, + IconVolumeHigh, + IconVolumeLow, + IconVolumeMinus, + IconVolumeMute, + IconVolumePlus, + IconWhatsapp as IconWhatsApp, // @deprecated Use IconWhatsapp instead + IconWhatsapp, + IconWifi, + IconWifiCrossed, + IconYle, + IconYouth, + IconYoutube, + IconZoomIn, + IconZoomOut, IconZoomText, } from 'hds-react'; diff --git a/src/common/components/tag/Tag.tsx b/src/common/components/tag/Tag.tsx index 9744e54c..e34e7c71 100644 --- a/src/common/components/tag/Tag.tsx +++ b/src/common/components/tag/Tag.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; // eslint-disable-next-line import/no-extraneous-dependencies import classNames from 'classnames'; -import { RoundedTag as HDSTag } from 'hds-react'; +import { Tag as HDSTag } from 'hds-react'; import styles from './tag.module.scss'; import { theme1, theme2 } from './tagThemes'; diff --git a/src/core/hero/Hero.tsx b/src/core/hero/Hero.tsx index 4bb8e15b..c4f29110 100644 --- a/src/core/hero/Hero.tsx +++ b/src/core/hero/Hero.tsx @@ -150,7 +150,7 @@ export default function Hero({ korosType && styles[korosType], )} type={korosType} - flipHorizontal={!imageUrl} + flipVertical={!imageUrl} style={{ fill: `var(--${ // eslint-disable-next-line no-nested-ternary diff --git a/src/core/hero/hero.module.scss b/src/core/hero/hero.module.scss index 9343ae61..a514d549 100644 --- a/src/core/hero/hero.module.scss +++ b/src/core/hero/hero.module.scss @@ -10,12 +10,12 @@ margin-bottom: $spacing-s; &.pulse, - &.storm { + &.wave { margin-bottom: $spacing-l; } &.beat, - &.wave { + &.vibration { margin-bottom: $spacing-4-xl; } } @@ -25,7 +25,7 @@ bottom: -15px; &.pulse, - &.storm { + &.wave { bottom: -35px; } @@ -33,7 +33,7 @@ bottom: -70px; } - &.wave { + &.vibration { bottom: -53px; } @@ -43,7 +43,7 @@ } &.pulse, - &.storm { + &.wave { bottom: -50px; } @@ -51,7 +51,7 @@ bottom: -15px; } - &.wave { + &.vibration { bottom: -32px; } } diff --git a/src/core/navigation/Navigation.module.scss b/src/core/navigation/Navigation.module.scss new file mode 100644 index 00000000..6c06feea --- /dev/null +++ b/src/core/navigation/Navigation.module.scss @@ -0,0 +1,9 @@ +@import 'breakpoints'; +@import 'spacing'; + +.header { + @include respond_above(xl) { + margin: 0 auto; + max-width: var(--breakpoint-xl); + } +} diff --git a/src/core/navigation/Navigation.tsx b/src/core/navigation/Navigation.tsx index 76d50305..c3102e6d 100644 --- a/src/core/navigation/Navigation.tsx +++ b/src/core/navigation/Navigation.tsx @@ -1,10 +1,13 @@ import React from 'react'; -import { Navigation as HDSNavigation } from 'hds-react'; +import { Header, LanguageOption, Logo, logoFi, logoSv } from 'hds-react'; +// eslint-disable-next-line import/no-extraneous-dependencies +import classNames from 'classnames'; +import styles from './Navigation.module.scss'; import { - Menu, Language, LanguageCodeEnum, + Menu, } from '../../common/headlessService/types'; import { useConfig } from '../configProvider/useConfig'; import { MAIN_CONTENT_ID } from '../../common/constants'; @@ -23,9 +26,28 @@ export type NavigationProps = { allLanguages: Language[], ) => string; getIsItemActive?: (menuItem: MenuItem) => boolean; + /** @deprecated Not used anymore i.e. does nothing after HDS 3 was taken into use. */ variant?: 'default' | 'inline'; }; +const LOGO_ARIA_LABELS = { + EN: 'City of Helsinki', + FI: 'Helsingin kaupunki', + SV: 'Helsingfors stad', +} as const satisfies Record; + +const LOGO_LABELS = { + EN: 'Helsinki', + FI: 'Helsinki', + SV: 'Helsingfors', +} as const satisfies Record; + +const LOGO_SOURCES = { + EN: logoFi, + FI: logoFi, + SV: logoSv, +} as const satisfies Record; + export function Navigation({ menu, languages, @@ -34,7 +56,7 @@ export function Navigation({ onTitleClick, getPathnameForLanguage, getIsItemActive, - variant, + variant, // eslint-disable-line @typescript-eslint/no-unused-vars }: NavigationProps) { const { siteName, @@ -44,10 +66,17 @@ export function Navigation({ utils: { getRoutedInternalHref }, } = useConfig(); - const currentLanguage = languages?.find( - (language) => - language.code?.toLowerCase() === currentLanguageCode?.toLowerCase(), - ); + // Language selection is required + if (!languages || !languages.length) { + return null; + } + + const findLanguage = (languageCode: string) => + languages.find( + (language) => language.code?.toLowerCase() === languageCode.toLowerCase(), + ); + + const currentLanguage = findLanguage(currentLanguageCode); // Error out if language props are inconsistent if (languages && !currentLanguage) { @@ -56,47 +85,62 @@ export function Navigation({ ); } + const languageOptions: LanguageOption[] = languages.map((language) => ({ + label: language.name, + value: language.code?.toLowerCase(), + isPrimary: true, + })); + + const onDidChangeLanguage = (newLanguageCode: string) => { + const newLanguage = findLanguage(newLanguageCode); + const url = getPathnameForLanguage(newLanguage, currentLanguage, languages); + if (url && window) { + window.location.href = url; + } + }; + return ( - - + + + } + logoAriaLabel={LOGO_ARIA_LABELS[currentLanguageCode]} + > + + {userNavigation && userNavigation} + + {menu?.menuItems?.nodes?.map((navigationItem) => ( - ))} - - - {userNavigation && userNavigation} - - {languages?.map((language) => ( - - ))} - - - + + ); } diff --git a/src/core/pageContent/PageContent.stories.tsx b/src/core/pageContent/PageContent.stories.tsx index 6fd860c4..a769a24f 100644 --- a/src/core/pageContent/PageContent.stories.tsx +++ b/src/core/pageContent/PageContent.stories.tsx @@ -49,7 +49,7 @@ const KorosWrapperComponent = ({ children = null }) => (
{children} {korosTop && ( )} diff --git a/yarn.lock b/yarn.lock index 11035c7d..54be1a79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1136,7 +1136,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.20.7", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.20.7", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== @@ -2547,42 +2547,43 @@ resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.2.0.tgz#d7a6013b8aafcc64c778a0ccb83355a11204d3b2" integrity sha512-Ba7HmkFgfQxZqqaeIWWkNK0rEhpxVQHIoVyW1YDSkGsGIXzcaW4deC8B0pZrNSSyLTdIk7y+5olKt5+g0GmFIQ== -"@react-aria/interactions@^3.2.0": - version "3.17.0" - resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.17.0.tgz#a2f51115963fbc4b82212fb4209879fac88748d1" - integrity sha512-v4BI5Nd8gi8s297fHpgjDDXOyufX+FPHJ31rkMwY6X1nR5gtI0+2jNOL4lh7s+cWzszpA0wpwIrKUPGhhLyUjQ== +"@react-aria/interactions@^3.15.0": + version "3.19.1" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.19.1.tgz#b17b1f9dc84624d4222c7fa0a4fa6b4c14fe125a" + integrity sha512-2QFOvq/rJfMGEezmtYcGcJmfaD16kHKcSTLFrZ8aeBK6hYFddGVZJZk+dXf+G7iNaffa8rMt6uwzVe/malJPBA== dependencies: - "@react-aria/ssr" "^3.7.1" - "@react-aria/utils" "^3.19.0" - "@react-types/shared" "^3.19.0" + "@react-aria/ssr" "^3.8.0" + "@react-aria/utils" "^3.21.1" + "@react-types/shared" "^3.21.0" "@swc/helpers" "^0.5.0" -"@react-aria/ssr@^3.7.1": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.7.1.tgz#11d0fac17e50028459aad325c2d093dbb2960f68" - integrity sha512-ovVPSD1WlRpZHt7GI9DqJrWG3OIYS+NXQ9y5HIewMJpSe+jPQmMQfyRmgX4EnvmxSlp0u04Wg/7oItcoSIb/RA== +"@react-aria/ssr@^3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.8.0.tgz#e7f467ac42f72504682724304ce221f785d70d49" + integrity sha512-Y54xs483rglN5DxbwfCPHxnkvZ+gZ0LbSYmR72LyWPGft8hN/lrl1VRS1EW2SMjnkEWlj+Km2mwvA3kEHDUA0A== dependencies: "@swc/helpers" "^0.5.0" -"@react-aria/utils@^3.19.0", "@react-aria/utils@^3.2.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.19.0.tgz#ee7fe77b37181fdf09fdd2e50ae818e4be858f47" - integrity sha512-5GXqTCrUQtr78aiLVHZoeeGPuAxO4lCM+udWbKpSCh5xLfCZ7zFlZV9Q9FS0ea+IQypUcY8ngXCLsf22nSu/yg== +"@react-aria/utils@^3.16.0", "@react-aria/utils@^3.21.1": + version "3.21.1" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.21.1.tgz#35f5d545757ea38f05a0d2f5492f13217ebb03ce" + integrity sha512-tySfyWHXOhd/b6JSrSOl7krngEXN3N6pi1hCAXObRu3+MZlaZOMDf/j18aoteaIF2Jpv8HMWUJUJtQKGmBJGRA== dependencies: - "@react-aria/ssr" "^3.7.1" - "@react-stately/utils" "^3.7.0" - "@react-types/shared" "^3.19.0" + "@react-aria/ssr" "^3.8.0" + "@react-stately/utils" "^3.8.0" + "@react-types/shared" "^3.21.0" "@swc/helpers" "^0.5.0" clsx "^1.1.1" -"@react-aria/visually-hidden@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.2.0.tgz#740730368c8572de397c9d82ff5700fd7e034907" - integrity sha512-eqLfU4ISWyRb8UM1YFRnxXdjNpjQNixj0sHT8usWJNuQrZt0ebDdu/Kv2Ir3VUYr+GldoeKGYMDFHKwFLll1Hg== +"@react-aria/visually-hidden@3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.8.0.tgz#9bdcf708e4e628041d8fbac66c7dcb98b9529da9" + integrity sha512-Ox7VcO8vfdA1rCHPcUuP9DWfCI9bNFVlvN/u66AfjwBLH40MnGGdob5hZswQnbxOY4e0kwkMQDmZwNPYzBQgsg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/interactions" "^3.2.0" - "@react-aria/utils" "^3.2.0" + "@react-aria/interactions" "^3.15.0" + "@react-aria/utils" "^3.16.0" + "@react-types/shared" "^3.18.0" + "@swc/helpers" "^0.4.14" clsx "^1.1.1" "@react-spring/animated@~9.3.0": @@ -2670,17 +2671,17 @@ "@react-spring/shared" "~9.3.0" "@react-spring/types" "~9.3.0" -"@react-stately/utils@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.7.0.tgz#ea99c2c4b5fba7e5079434a1de1ef53fbb21f6a8" - integrity sha512-VbApRiUV2rhozOfk0Qj9xt0qjVbQfLTgAzXLdrfeZSBnyIgo1bFRnjDpnDZKZUUCeGQcJJI03I9niaUtY+kwJQ== +"@react-stately/utils@^3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.8.0.tgz#88a45742c58bde804f6cbecb20ea3833915cfdf0" + integrity sha512-wCIoFDbt/uwNkWIBF+xV+21k8Z8Sj5qGO3uptTcVmjYcZngOaGGyB4NkiuZhmhG70Pkv+yVrRwoC1+4oav9cCg== dependencies: "@swc/helpers" "^0.5.0" -"@react-types/shared@^3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.19.0.tgz#060e547d6e8c3ec84043d62f61cada1a00df1348" - integrity sha512-h852l8bWhqUxbXIG8vH3ab7gE19nnP3U1kuWf6SNSMvgmqjiRN9jXKPIFxF/PbfdvnXXm0yZSgSMWfUCARF0Cg== +"@react-types/shared@^3.18.0", "@react-types/shared@^3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.21.0.tgz#1af41fdf7dfbdbd33bbc1210617c43ed0d4ef20c" + integrity sha512-wJA2cUF8dP4LkuNUt9Vh2kkfiQb2NLnV2pPXxVnKJZ7d4x2/7VPccN+LYPnH8m0X3+rt50cxWuPKQmjxSsCFOg== "@repeaterjs/repeater@^3.0.4": version "3.0.4" @@ -3599,6 +3600,14 @@ "@swc/core-win32-ia32-msvc" "1.3.78" "@swc/core-win32-x64-msvc" "1.3.78" +"@swc/helpers@^0.4.14": + version "0.4.36" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.36.tgz#fcfff76ed52c214f357e8e9d3f37b568908072d9" + integrity sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q== + dependencies: + legacy-swc-helpers "npm:@swc/helpers@=0.4.14" + tslib "^2.4.0" + "@swc/helpers@^0.5.0": version "0.5.1" resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" @@ -4854,6 +4863,11 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +await-to-js@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/await-to-js/-/await-to-js-3.0.0.tgz#70929994185616f4675a91af6167eb61cc92868f" + integrity sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g== + axe-core@4.7.2, axe-core@^4.6.2: version "4.7.2" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" @@ -5758,6 +5772,11 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== + crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -7648,35 +7667,39 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hds-core@2.17.0, hds-core@^2.17.0: - version "2.17.0" - resolved "https://registry.yarnpkg.com/hds-core/-/hds-core-2.17.0.tgz#05bb9febbaea6314df86e6930dfd485950daf37f" - integrity sha512-OKYAU3bGsogDXAuJ40WMaGDxNfSXPp4zvgIrHM/O/f2lenQTqVjdL2zJTMcIFufXevwxdiY1bmJ1qXyksMmtBw== +hds-core@3.1.0, hds-core@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hds-core/-/hds-core-3.1.0.tgz#7b1112f9e30ce21cd49e8bd4f902ad01c510d5e5" + integrity sha512-md+b+2dlTABN3VVTWzbsUyOmXjCzBhzZkH8ANu+H0sSTHXBbEOWFkrdMwwvKSEWNeXoVMf5pHo/NDAURubepMA== -hds-design-tokens@^2.17.0: - version "2.17.0" - resolved "https://registry.yarnpkg.com/hds-design-tokens/-/hds-design-tokens-2.17.0.tgz#13e755728424b6cb91fee30e72202b7911630866" - integrity sha512-Ad3PJ6ta4ALStt8rDjZxb4SMu/IBkr6vl1ZWY7hp2TfyIFpXrzB/Q0TWcaH99MUgO0S1OuFwhAp70ZzCwpkI/Q== +hds-design-tokens@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hds-design-tokens/-/hds-design-tokens-3.1.0.tgz#e363d22860ac4179231a046ea4c5392222b7386a" + integrity sha512-QWCTBCe2k5R7glcyR4uVXrLMBGuyIKs2TwYKpPnow0KYkJ9CZoHT1UKPI0VU9Jz+3VXpY4VbEsKiKuRjw0zwMQ== -hds-react@^2.17.0: - version "2.17.0" - resolved "https://registry.yarnpkg.com/hds-react/-/hds-react-2.17.0.tgz#7dfffc7dc6673bb59bd222699c2893cbaa0b0557" - integrity sha512-nfN6sCCGGkZpv9++9qf0X3Dn+grTI5hPNXFGbFWCrV0dlTYBrDEzV2P3rsJiT6uYs5Yl0kqGBbr+uxQWw3s3wg== +hds-react@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hds-react/-/hds-react-3.1.0.tgz#4a8e7bebe5d735bf70f7b12bd33747fdbce86a74" + integrity sha512-N6QZe4XP9CYDfmWbVd6khQ0QwrlDAKZnhryr3SBWfI3wsXgRGa1cYAdJQ4+Vh08sXkg55M15bPHJgsi9Mn0fww== dependencies: "@babel/runtime" "7.17.9" "@emotion/styled-base" "^11.0.0" "@hookform/resolvers" "^2.9.11" "@juggle/resize-observer" "3.2.0" "@popperjs/core" "2.11.5" - "@react-aria/visually-hidden" "3.2.0" + "@react-aria/visually-hidden" "3.8.0" "@types/cookie" "^0.4.1" "@typescript-eslint/parser" "^5.56.0" + await-to-js "^3.0.0" cookie "^0.4.1" crc-32 "1.2.0" date-fns "2.16.1" downshift "6.0.6" - hds-core "2.17.0" + hds-core "3.1.0" + http-status-typed "^1.0.1" + jwt-decode "^3.1.2" kashe "1.0.4" + lodash.flatten "^4.4.0" lodash.get "^4.4.2" lodash.isequal "4.5.0" lodash.isfunction "3.0.9" @@ -7688,6 +7711,7 @@ hds-react@^2.17.0: lodash.uniqueid "4.0.1" lodash.xor "^4.5.0" memoize-one "5.2.1" + oidc-client-ts "^2.2.2" react-hook-form "^7.43.3" react-merge-refs "1.1.0" react-popper "2.2.5" @@ -7839,6 +7863,11 @@ http-proxy-agent@^7.0.0: agent-base "^7.1.0" debug "^4.3.4" +http-status-typed@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/http-status-typed/-/http-status-typed-1.0.1.tgz#25a8b08efb4dfc6711c0214b575adb4974616d1a" + integrity sha512-U8jF221dmNNZbdBiOoK2HduguCwparnsP0z11PQZaDtaHBHuxG3gCimxQi8Cfb8VECave4yoVbONSByQU6z0Ew== + https-proxy-agent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" @@ -9112,6 +9141,11 @@ jsonify@^0.0.1: object.assign "^4.1.4" object.values "^1.1.6" +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + kashe@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/kashe/-/kashe-1.0.4.tgz#72f538d641f220eb4533a050f1f39b3acac7fafb" @@ -9151,6 +9185,13 @@ lazy-universal-dotenv@^4.0.0: dotenv "^16.0.0" dotenv-expand "^10.0.0" +"legacy-swc-helpers@npm:@swc/helpers@=0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -9251,6 +9292,11 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -9881,6 +9927,14 @@ objectorarray@^1.0.5: resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.5.tgz#2c05248bbefabd8f43ad13b41085951aac5e68a5" integrity sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg== +oidc-client-ts@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/oidc-client-ts/-/oidc-client-ts-2.4.0.tgz#764c8a33de542026e2798de9849ce8049047d7e5" + integrity sha512-WijhkTrlXK2VvgGoakWJiBdfIsVGz6CFzgjNNqZU1hPKV2kyeEaJgLs7RwuiSp2WhLfWBQuLvr2SxVlZnk3N1w== + dependencies: + crypto-js "^4.2.0" + jwt-decode "^3.1.2" + on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"