Feat(LOY-311) Create avatar design system component
* feat(LOY-311): Creat & use New Avatar Design System Component
* refactor(LOY-311): replace avatar used in app header with design system component
* fix(LOY-311): use correct space vars
Approved-by: Erik Tiekstra
fix(LOY-307): disable prefetch on DTMC Link employment button
* fix(LOY-307): Add external link support to ButtonLink component
* fix(LOY-307): set prefetch to false in dtmc link btn cta
Approved-by: Anton Gunnarsson
feat(LOY-294): Empty Stay description if 0 nights and and non-transactional confirmationNumber
* feat(LOY-294): Empty Stay description if 0 nights and and non-transactional confirmationNumber
Approved-by: Matilda Landström
feat(LOY-285): SAS Link Account Banner for My Pages (Part 1)
* feat(LOY-285): SAS Link Account Banner for My Pages
* fix(LOY-285): )use new space variable
* fix(LOY-285): add alt to images
Approved-by: Matilda Landström
feat(LOY-203): Enable Opening Team Member Card from Employee Benefits Page When Connected
* feat(LOY-203): add support for opening team member card modal from employee benefits page when connected
* fix(LOY-203): add id_card to material symbol icons
* fix(LOY-203): remove uneeded dtmc btb style
Approved-by: Erik Tiekstra
Approved-by: Linus Flood
feat(LOY-232): DTMC API Integration
* feat(LOY-232): DTMC API Integration
* feat(LOY-232): use employment data in team member card
* refactor(LOY-232): remove static data, return employment details in parsed response & fix tests
* refactor(LOY-232): improve DTMC API Linking error control flow + make res type safe
* fix(LOY-232): remove unused utils
* fix(LOY-232): error vars
Approved-by: Christian Andolf
Approved-by: Erik Tiekstra
Feat/LOY-261 Remove Sidebar From MyPages
* feat(LOY-261): remove sidebar from my pages
* refactor(LOY-261): move SASLevelUpgradeCheck to my-pages layout and remove unused code
* chore(LOY-261): remove console logs
* fix(LOY-261): remove sidebar and center content in Loyalty Pages when logged in
* fix(LOY-261): better class naming for content width
Approved-by: Christian Andolf
Approved-by: Erik Tiekstra
Feat(LOY-230): DTMC Routes with Entra ID Auth & Error Page Handling
* feat(LOY-230): Link Scandic Friends and Azure accounts
* fix(LOY-230): remove employee id param setting
* fix(LOY-230): return token in jwt callback for auth.dtmc.ts
Approved-by: Michael Zetterberg
Approved-by: Christian Andolf
feat(LOY-233): create success banner for successful DTMC linking
* feat(LOY-233): create success banner for successful DTMC linking
* fix(LOY-233): code cleanup
* fix(LOY-233): use new design vars for alert bg colors
Approved-by: Erik Tiekstra
fix: Allow component to be nullish in dynamic content schemas
* fix: Allow component to be nullish in dynamic content schemas
Approved-by: Erik Tiekstra
feat(LOY-188): dynamic content support in content pages headers & use in DTMC employee benefits page
* feat(LOY-188): add dynamic content handling for DTMC employee benefits page header
* fix(LOY-188): change section to div in EmployeeBenefitsCallToActions component
* refactor(LOY-188): switch to ButtonLink
* refactor(LOY-188): replace enum with as const objects in DynamicContentEnum
* chore(LOY-188): change ComponentValue type exports to internal scope in DynamicContentEnum
* fix(EmployeeBenefitsCallToActions): replace div with fragment
* chore(LOY-188): update translations
Approved-by: Christian Andolf
fix(LOY-235): update pagination params for getPreviousStays and getUpcomingStays
* fix(LOY-235): update pagination parameters for getPreviousStays and getUpcomingStays functions
Approved-by: Erik Tiekstra
Refactor(SW-2177): Use react aria RadioGroup & Radio for payment options
* fix(SW-SW-2177): enhance accessibility for payment options
* Added keyboard navigation support to payment options.
* Updated CSS to improve focus styles for payment option labels.
* refactor: use RadioGroup & Radio from react aria for payment options
* refactor(SW-2177): replace setValue and watch with useController for payment method handling
* fix(SW-2177): remove comment and use cx for styles on PaymentOption
* fix(SW-2177): Add keyboard focus indicator to payment option
Approved-by: Michael Zetterberg
Approved-by: Erik Tiekstra
fix(LOY-227): use new getErrorMessage for PasswordInput
* fix(LOY-227): improve error message handling in PasswordInput component
Approved-by: Christian Andolf
Approved-by: Linus Flood
Fix(LOY-222): Find my booking url handling
* fix(LOY-222): adapt findMyBooking url based on HIDE_FOR_NEXT_RELEASE
* feat(LOY-222): add current web paths for findMyBooking in multiple languages
* refactor(LOY-222): better env and new url constructions
* refactor(LOY-222): decouple env var handling from getCurrentWebUrl
* fix(LOY-222): update findMyBooking URL construction to use baseUrl
* fix(LOY-222): simplify findMyBooking URL handling for new web urls
* fix(LOY-222): Update Finnish path for hotel reservation lookup
* refactor(LOY-222): rename PUBLIC_URL to NEXT_PUBLIC_PUBLIC_URL for consistency
Approved-by: Christian Andolf
Approved-by: Linus Flood
fix(SW-2197): Properly hide benefits message element when isMemberRate is false
* fix(SW-2197): correct hiding of benefit text
Approved-by: Christian Andolf
fix(SW-2166): enhance FilterCheckbox accessibility
* fix(SW-2166): enhance FilterCheckbox accessibility
- Added cursor pointer to the checkbox container.
- Introduced focus outline for when the checkbox is focused.
- Wrapped checkbox name in Typography component.
Approved-by: Christian Andolf
fix(SW-2222): update next stay url to use PUBLIC_URL and adapt based on release flag
* fix(SW-2222): update next stay url to use PUBLIC_URL and adapt based on release flag
* refactor(SW-2222): change promoUrl variable to const
Approved-by: Michael Zetterberg
Approved-by: Christian Andolf
fix(SW-2204): Selected room alignment
* refactor(SW-2204): remove unused icon wrapper and related styles from SelectedRoom component
Approved-by: Christian Andolf
fix(SW-2138): include hotel content descriptions in hotel data retrieval
* fix(SW-2138): include hotel content descriptions in hotel data retrieval
* fix(SW-2136 ): simplify hotel description handling
* refactor(SW-2136): replace Body component with Typography for hotel descriptions in HotelListingItem
Approved-by: Christian Andolf
fix: Fix SVG placement of DoubleRow and SingleRow ScandicFriends icons
* fix: Fix SVG placement of DoubleRow and SingleRow ScandicFriends components
Approved-by: Christian Andolf
feat(SW-2068): Link to Correct Public URL from within My Stays Overview Page
* feat(SW-2068): Link to Correct Public URL from within My Stays Overview Page
- Added language parameter to previous and upcoming stays queries.
- Updated Client components to utilize the new language hook.
- Refactored EmptyUpcomingStays component to dynamically generate links based on the current language.
- Adjusted user input validation to include optional language parameter.
* refactor(SW-2068): Update EmptyUpcomingStays components to use PUBLIC_URL + add utility to handle TLD based on language
* chore(SW-2068): Clarify TLD
* feat(SW-2068): documentation for getTldForLanguage
* refactor(SW-2068): Simplify booking URL construction in updateStaysBookingUrl
* refactor(SW-2068): Remove incorrect TLD update logic from booking URL construction
* refactor(SW-2068): Centralize booking URL paths using myBookingPath constant
* refactor(SW-2068): Streamline search params in booking URL construction logic in updateStaysBookingUrl
Approved-by: Christian Andolf
Feat/SW-1890 New Breakfast Component Design
* refactor(SW-1890): Replace BreakfastChoiceCard with RadioCard component and update styles
- Removed BreakfastChoiceCard component and its associated styles.
- extemded RadioCard component to additional UI.
- Updated breakfast.module.css to adjust container width.
- Added new properties for subtitleSecondary and description in RadioCard.
- Updated translations for breakfast-related messages in en.json.
* feat(SW-1890): Add hover state to RadioCard
* chore(SW1890): Update translation for breakfast cost message to clarify age range
* chore(SW-1890): Updated breakfast cost display to use formatPrice utility
* fix(SW-1890): Set fixed size for CoffeeIcon component
* fix(SW-1890): Add missing translations for breakfast-related messages
* feat(SW-1890): Introduce new breakfast icons and update Breakfast component
- Replaced CoffeeIcon with BreakfastBuffetIcon and NoBreakfastBuffetIcon in the Breakfast component.
- Added new BreakfastBuffetIcon and NoBreakfastBuffetIcon components to the design system.
- Updated imports in the Breakfast component to reflect the new icons.
Approved-by: Christian Andolf
fix(LOY-181): add max-width to sidebar on tablet layouts in static pages
* fix(LOY-181): add max-width to sidebar in static pages
Approved-by: Christian Andolf
feat(LOY-183): Make Current & Retype Password Inputs Maskable in My Profile Edit Form
* feat(LOY-183): implement PasswordInput and PasswordToggleButton components
- Added PasswordInput component for password fields with visibility toggle.
- Introduced PasswordToggleButton for toggling password visibility.
- Updated NewPassword component to utilize the new PasswordInput.
* refactor(LOY-183): replace NewPassword component with PasswordInput
Approved-by: Christian Andolf
fix(LOY-173): update translations for "next level" in multiple languages
* fix(LOY-173): update translations for "next level" in multiple languages
Approved-by: Christian Andolf
refactor(SW-1941): clean up custom Carousel component centering
* refactor: clean up custom Carousel component centering
- Removed unused centerContent class from carousel.module.css.
- Simplified CarouselContent component by eliminating unnecessary state and effect hooks.
- Updated HotelCardCarousel to include responsive breakpoints for scrolling behavior.
* refactor: simplify scrolling options in HotelCardCarousel
- Updated the HotelCardCarousel component to streamline scrolling options by removing responsive breakpoints and setting containScroll to false.
Approved-by: Matilda Landström
feat(LOY-155): Localize language options in edit profile form
* feat(LOY-155): Localize language options in edit profile form
* feat(LOY-155): Capitalize first letter of localized language options
Approved-by: Christian Andolf
feat(LOY-156): Improve language handling and localization in profile page
* feat(LOY-156): Improve language handling and localization in profile page
* refactor(LOY-156): Improve language display using Intl.DisplayNames
* feat(LOY-156): Enhance country display with localized country names
* refactor(LOY-156): Move countries data to a dedicated constants file & more type safe country mapping
* feat(LOY-156): Update isValidLang to use languageSchema + German translation for membership terms and conditions
* chore(LOY-156): language handling in profile component
Approved-by: Christian Andolf
Feat/LOY-158 signup with existing email error handling
* feat(LOY-158): Add handling for email conflict during signup
- Implement specific error handling for email conflict in signup form
- Add localized error message for existing email accounts across language dictionaries
- Introduce new error type `conflictError` in trpc error handling
* fix(LOY-158): revert translation changes
* fix(LOY-158): Correct Finnish translation for cancellation message
Approved-by: Christian Andolf
feat(SW-1697): more tilted scripted text for FullWidthCampaign component
* feat(SW-1697): more tilted scripted text for FullWidthCampaign component
* feat(SW-1697): add text transform to FullWidthCampaign title
Approved-by: Christian Andolf
feat(SW-1679): Add key prop to Carousel to reset on filter change
* feat(SW-1679): Enhance SectionHeader and Carousel component in CarouselCards
* Add headingLevel and headingAs props to SectionHeader
* Add key prop to Carousel to reset on filter change
Approved-by: Christian Andolf
feat(SW-1525): Add theme support for InfoCard component
* feat(1525): Add theme support for InfoCard component
* refactor(1525): Update InfoCard theme typing
Approved-by: Christian Andolf
feat(SW-1384): add CarouselCards block to start page
* feat(SW-1384): add filterable carousel cards block to start page
* fix(SW-1384): remove unnecessary link prop from SectionHeader
* fix(SW-1384): remove uneeded undefined
* fix(SW-1384): better type safety
* feat(SW-1384): Add see all link to filterable carousel cards section header
* refactor(SW-1384): Replace FilterableCarouselCards with CarouselCards block
* fix(SW-1384): Remove CardsEnumType type definition
* fix(SW-1384):Implement code review feedback to CarouselCards
* refactor(SW-1384): Convert CarouselCardFilterEnum to const enum with type
Approved-by: Christian Andolf
fix: handle optional web property in extended page link schema
* fix: handle optional web property in page link transformation
Approved-by: Christian Andolf
fix: remove InfoCardBlock references from Content Page CardsGrid fragment
* fix: remove InfoCardBlock references from CardsGrid fragment
Approved-by: Erik Tiekstra