refactor(LOY-497): hide profiling consent behind feature flag
* refactor(LOY-497): hide profiling consent behind feature flag
* chore(LOY-497): up to date consent readme
Approved-by: Matilda Landström
Feat/LOY-495 Scroll to Top Functionality in Previous Stays Sidepeek
* feat(LOY-495): enable scroll to top functionality for past stays sidepeek
Approved-by: Emma Zettervall
Approved-by: Matilda Landström
fix: add years to getDaysUntilText + confirmation number in upcoming stay card
* fix: add years to getDaysUntilText + confirmation number in upcoming stay card
Approved-by: Erik Tiekstra
Approved-by: Matilda Landström
feat(LOY-424): Load More Past Stays via Sidepeek
* feat(LOY-424): Load More Past Stays via Sidepeek
* chore(LOY-424): use new section header
* fix(LOY-424): remove uneeded nextCursor check
Approved-by: Emma Zettervall
feat(LOY-422): Upcoming Stays Redesign
* feat(LOY-422): Upcoming Stays Redesign
* feat(LOY-422): Carousel next/previous arrows
* chore(LOY-422): add new material icon
* refactor(LOY-422): restructure new and old upcoming stays
* fix(LOY-422): handle less than 1 case
* chore(LOY-422): remove uneeded id
* chore(LOY-422): remove intl label for date edge case
Approved-by: Matilda Landström
Feat(LOY-421): Next Stay
* feat(LOY-421): Next stay WIP
* fix(LOY-421): clean upp css and jsx
* chore(LOY-421): css cleanup
* fix(LOY-421): fix test
* only show button if isWebAppOrigin is true
* chore(LOY-421): update section header component
* chore(LOY-421): remove redundant test case
Approved-by: Matilda Landström
fix(LOY-442): correct font for expirationDate in expiring points table
* fix(LOY-422): correct font for expirationDate in expiring points table
Approved-by: Matilda Landström
fix(LOY-408): Make auth parts of promohero client components
* fix(LOY-408): Move auth parts of promohero client side
* chore(LOY-408): remove unused code
Approved-by: Linus Flood
Approved-by: Matilda Landström
fix(LOY-359): Revert back to allow non-native loyalty level in overview cards
* fix(LOY-359): Revert back to allow non-native loyalty level in overview cards
Approved-by: Erik Tiekstra
feat(LOY-365): Add support for eligible levels for promo campaign pages
* feat(LOY-365): Add support for eligible levels for promo campaign pages
* fix(LOY-365): update to most recent copy
* fix(LOY-365): cleanup css
* fix(LOY-365): Move ineligible message to the bottom
* fix(LOY-365): remove uneeded type
Approved-by: Erik Tiekstra
Approved-by: Matilda Landström
fix(LOY-359): Always use scandic native tier data for all level related data
* fix(LOY-359): Always use scandic native tier data for all level related data
Approved-by: Erik Tiekstra
Approved-by: Matilda Landström
fix(LOY-369): Able to redeem tier rewards
* fix(LOY-369): able to redeem on site tier rewards
* fix(LOY-369): single mutation call
* fix(LOY-369): apply coupon check for all tier rewards
Approved-by: Linus Flood
Approved-by: Matilda Landström
fix(LOY-360): improve text for retired employees
* fix(LOY-360): improve text for retired employees
Approved-by: Erik Tiekstra
Approved-by: Matilda Landström
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