Skip to content

Conversation

@kerrie-wu
Copy link
Contributor

@kerrie-wu kerrie-wu commented Nov 17, 2025

This PR fixes several issues related to keyboard navigation and focus management in BpkAutosuggestV2, specifically improving the "blur to select" behavior and fixing a console warning on mobile devices.

  1. Fixed Keyboard Navigation & Blur Behavior:
  • Implemented logic to auto-select the currently highlighted suggestion when the input loses focus (Blur) on desktop. This ensures that if a user navigates to a suggestion using arrow keys and then clicks away, that suggestion is selected instead of discarded.

  • Enhanced stateReducer to correctly maintain or restore the highlightedIndex when the menu opens or when clicking the input, preventing the highlight state from being lost unexpectedly.

  • Added logic to handle highlightFirstSuggestion correctly when the menu opens.

  1. Fixed Mobile Console Warning:
  • Suppressed the downshift ref warning on mobile devices (The ref prop "ref" from getInputProps was not applied correctly...) by adding { suppressRefError: true } to getInputProps.

Test in GC carhie search control

Carhire search control V1 Carhire search control V2
auto autosuggestV2-v2

Remember to include the following changes:

  • Ensure the PR title includes the name of the component you are changing so it's clear in the release notes for consumers of the changes in the version e.g [Clover-123][BpkButton] Updating the colour
  • README.md (If you have created a new component)
  • Component README.md
  • Tests
  • Accessibility tests
    • The following checks were performed:
      • Ability to navigate using a keyboard only
      • Zoom functionality (Deque University explanation):
        • The page SHOULD be functional AND readable when only the text is magnified to 200% of its initial size
        • Pages must reflow as zoom increases up to 400% so that content continues to be presented in only one column i.e. Content MUST NOT require scrolling in two directions (both vertically and horizontally)
      • Ability to navigate using a screen reader only
  • Storybook examples created/updated
  • For breaking changes or deprecating components/properties, migration guides added to the description of the PR. If the guide has large changes, consider creating a new Markdown page inside the component's docs folder and link it here

Copilot AI review requested due to automatic review settings November 17, 2025 02:28
@kerrie-wu kerrie-wu added the patch Patch production bug label Nov 17, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes keyboard navigation issues in the BpkAutosuggest component, specifically addressing blur behavior when using arrow keys to navigate suggestions. The primary changes ensure that when a user navigates suggestions with the keyboard and then the input loses focus, the highlighted suggestion is automatically selected.

Key Changes:

  • Implements blur handling to auto-select highlighted suggestions on desktop
  • Adds state tracking for committed selections and saved highlighted indices
  • Improves suggestion clearing and fetching logic to prevent stale data

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@kerrie-wu kerrie-wu changed the title [BpkAutosuggest]Fix keyboard up and down blur issue [CLOV-349][BpkAutosuggest]Fix keyboard up and down blur issue Nov 17, 2025
@skyscanner-backpack-bot
Copy link

Visit https://backpack.github.io/storybook-prs/4043 to see this build running in a browser.

@skyscanner-backpack-bot
Copy link

skyscanner-backpack-bot bot commented Nov 17, 2025

Warnings
⚠️

Package source files (e.g. packages/package-name/src/Component.js) were updated, but snapshots weren't. Have you checked that the tests still pass?

Browser support

If this is a visual change, make sure you've tested it in multiple browsers.

Generated by 🚫 dangerJS against 16ed020

@skyscanner-backpack-bot
Copy link

Visit https://backpack.github.io/storybook-prs/4043 to see this build running in a browser.

@skyscanner-backpack-bot
Copy link

Visit https://backpack.github.io/storybook-prs/4043 to see this build running in a browser.

@skyscanner-backpack-bot
Copy link

Visit https://backpack.github.io/storybook-prs/4043 to see this build running in a browser.

@skyscanner-backpack-bot
Copy link

Visit https://backpack.github.io/storybook-prs/4043 to see this build running in a browser.

@skyscanner-backpack-bot
Copy link

Visit https://backpack.github.io/storybook-prs/4043 to see this build running in a browser.

Comment on lines +325 to +326
const newValue = getSuggestionValue(selectedItem);
setInputValue(newValue);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the newValue updated, should inputValue in L330 onSuggestionSelected also updated?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update in 4c16bcd

Comment on lines 540 to 541
const suggestionId = (suggestion as any)?.entityId ?? (suggestion as any)?.id ?? globalIndex;
const suggestionKey = sectionId ? `${sectionId}-${suggestionId}` : `item-${suggestionId}`;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

�Is it possible avoid any and extract as function for suggestionId and suggestionKey, eg

    type SuggestionWithId<T> = T & {
      entityId?: string | number;
      id?: string | number;
    };

    const getSuggestionIdentifier = <T,>(
      suggestion: T,
      fallbackIndex: number,
    ): string | number => {
      const suggestionWithId = suggestion as SuggestionWithId<T>;
      return suggestionWithId?.entityId ?? suggestionWithId?.id ?? fallbackIndex;
    };

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've refactored this to use a local type assertion within the map function. This avoids any and explicit helpers while keeping the code changes minimal 4c16bcd

Comment on lines 220 to 241
if (isMenuOpening) {
// When menu opens, if highlightFirstSuggestion is true, highlight first item
if (highlightFirstSuggestion && flattenedSuggestions.length > 0) {
targetHighlightedIndex = 0;
} else if (targetHighlightedIndex === null || targetHighlightedIndex < 0) {
// Otherwise, restore saved highlighted index if available
if (
savedHighlightedIndexRef.current !== null &&
savedHighlightedIndexRef.current >= 0
) {
targetHighlightedIndex = savedHighlightedIndexRef.current;
}
}
} else if (targetHighlightedIndex === null || targetHighlightedIndex < 0) {
// Menu already open, restore saved index if current is invalid
if (
savedHighlightedIndexRef.current !== null &&
savedHighlightedIndexRef.current >= 0
) {
targetHighlightedIndex = savedHighlightedIndexRef.current;
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this block about determine highlighted index with targetHighlightedIndex has too many if else and hard to read, could it optimize to make it more reuse and readable

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. Refactored the logic into a getTargetHighlightedIndex helper function to reduce code duplication and improve readability by flattening the nested if-else blocks. 4c16bcd

return {
...changes,
isOpen: forceOpen ? true : changes.isOpen,
highlightedIndex: targetHighlightedIndex ?? changes.highlightedIndex,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the same for default block

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same above.

@skyscanner-backpack-bot
Copy link

Visit https://backpack.github.io/storybook-prs/4043 to see this build running in a browser.

: suggestions;

const getTargetHighlightedIndex = (
currentHighlightedIndex: number | null | undefined,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prioritize highlighting the first item -> Maintain the current valid index -> Restore the saved index

@skyscanner-backpack-bot
Copy link

Visit https://backpack.github.io/storybook-prs/4043 to see this build running in a browser.

@kerrie-wu kerrie-wu merged commit e6c1fc6 into main Nov 26, 2025
11 checks passed
@kerrie-wu kerrie-wu deleted the autosuggest-v2 branch November 26, 2025 08:59
Jimmy cook (jimmycook) pushed a commit that referenced this pull request Jan 6, 2026
* fix up and down blur issue

* fix up down issue

* fix fistHightLight

* suppress the runtime error

* modify comment

* prevent autosuggest flickering on input change

* optimise highlight Index function

* fix typecheck error

* fix test onSuggestionSelected
Faye (Faye-Xiao) added a commit that referenced this pull request Jan 7, 2026
* fix issue with carousel alignment

* Fix issue with carousel alignment on mobile

* optimize mobile left space and the code itself

* Revert "optimize mobile left space and the code itself"

This reverts commit eaf2cbe.

* Revert "Fix issue with carousel alignment on mobile"

This reverts commit 83a293f.

* [CLOV-951][BpkButton] Mark BpkButton v1 as deprecated (#4039)

* [CLOV-964][BpkButton] Export legacy props and types (#4044)

* [CLOV-964] Export legacy props and types

* lint

* [CLOV-30][BpkCheckbox] TS migration for BpkCheckbox (#4040)

* BpkCheckbox is migrated to Typescirpt now and export type BpkCheckboxProps

* [CLOV-950] [BpkButton] Migrate BpkButton to BpkButtonV2 (#4048)

* [CLOV-950] [BpkButton] Migrate BpkButton to BpkButtonV2

* update type order

* update props and other path

* Bump glob (#4046)

Bumps [glob](https://github.com/isaacs/node-glob) to 10.5.0 and updates ancestor dependency . These dependencies need to be updated together.


Updates `glob` from 10.4.5 to 10.5.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](isaacs/node-glob@v10.4.5...v10.5.0)

Updates `glob` from 11.0.3 to 11.1.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](isaacs/node-glob@v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
- dependency-name: glob
  dependency-version: 11.1.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* Bump core-js from 3.45.1 to 3.46.0 (#4028)

Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.45.1 to 3.46.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.46.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.46.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* [CLOV-19][BpkFieldset] BpkFieldset TS Migration (#4045)

* covert BpkFielset to TS

* add check and label type check

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* change any type

* fix typecheck error

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [GOOSE-559][BpkSwapButton] Override padding alignment set by Safari User Agent (#4052)

* Override padding alignment set by Safari User Agent

* simplify

* fix: allow word wrap anywhere when the autosuggest value is joined by _ or long words in general (#4054)

* [CLOV-349][BpkAutosuggest]Fix keyboard up and down blur issue (#4043)

* fix up and down blur issue

* fix up down issue

* fix fistHightLight

* suppress the runtime error

* modify comment

* prevent autosuggest flickering on input change

* optimise highlight Index function

* fix typecheck error

* fix test onSuggestionSelected

* Bump js-yaml from 3.14.1 to 3.14.2 (#4047)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.1...3.14.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* Bump the babel group across 1 directory with 2 updates (#4027)

Bumps the babel group with 2 updates in the / directory: [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) and [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript).


Updates `@babel/preset-react` from 7.27.1 to 7.28.5
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/packages/babel-preset-react)

Updates `@babel/preset-typescript` from 7.27.0 to 7.28.5
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/packages/babel-preset-typescript)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-version: 7.28.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: babel
- dependency-name: "@babel/preset-typescript"
  dependency-version: 7.28.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: babel
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* Bump @skyscanner/eslint-config-skyscanner from 22.5.1 to 22.6.0 (#4026)

Bumps [@skyscanner/eslint-config-skyscanner](https://github.com/Skyscanner/eslint-config-skyscanner) from 22.5.1 to 22.6.0.
- [Release notes](https://github.com/Skyscanner/eslint-config-skyscanner/releases)
- [Changelog](https://github.com/Skyscanner/eslint-config-skyscanner/blob/main/CHANGELOG.md)
- [Commits](Skyscanner/eslint-config-skyscanner@22.5.1...22.6.0)

---
updated-dependencies:
- dependency-name: "@skyscanner/eslint-config-skyscanner"
  dependency-version: 22.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* Bump actions/checkout from 5 to 6 (#4051)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* Bump the artifacts-actions group with 2 updates (#4025)

Bumps the artifacts-actions group with 2 updates: [actions/upload-artifact](https://github.com/actions/upload-artifact) and [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/upload-artifact` from 4.6.2 to 5.0.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v4.6.2...v5.0.0)

Updates `actions/download-artifact` from 5.0.0 to 6.0.0
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v5.0.0...v6.0.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: artifacts-actions
- dependency-name: actions/download-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: artifacts-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* Bump actions/setup-node from 5 to 6 (#4016)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* Bump webpack from 5.101.2 to 5.103.0 (#4059)

Bumps [webpack](https://github.com/webpack/webpack) from 5.101.2 to 5.103.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v5.101.2...v5.103.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.103.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>

* Bump @skyscanner/stylelint-config-skyscanner from 13.1.0 to 14.2.0 (#4060)

* Bump @skyscanner/stylelint-config-skyscanner from 13.1.0 to 14.2.0

Bumps [@skyscanner/stylelint-config-skyscanner](https://github.com/Skyscanner/stylelint-config-skyscanner) from 13.1.0 to 14.2.0.
- [Release notes](https://github.com/Skyscanner/stylelint-config-skyscanner/releases)
- [Changelog](https://github.com/Skyscanner/stylelint-config-skyscanner/blob/main/CHANGELOG.md)
- [Commits](Skyscanner/stylelint-config-skyscanner@13.1.0...14.2.0)

---
updated-dependencies:
- dependency-name: "@skyscanner/stylelint-config-skyscanner"
  dependency-version: 14.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix check error

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kerrie Wu <kerrie.wu@skyscanner.net>

* Bump the storybook group across 1 directory with 5 updates (#4058)

* Bump the storybook group across 1 directory with 5 updates

Bumps the storybook group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) | `9.1.13` | `10.1.2` |
| [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `9.1.13` | `10.1.2` |
| [@storybook/addon-webpack5-compiler-babel](https://github.com/storybookjs/addon-webpack5-compiler-babel) | `3.0.6` | `4.0.0` |
| [@storybook/react-webpack5](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-webpack5) | `9.1.13` | `10.1.2` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `9.1.13` | `10.1.2` |



Updates `@storybook/addon-a11y` from 9.1.13 to 10.1.2
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.1.2/code/addons/a11y)

Updates `@storybook/addon-docs` from 9.1.13 to 10.1.2
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.1.2/code/addons/docs)

Updates `@storybook/addon-webpack5-compiler-babel` from 3.0.6 to 4.0.0
- [Release notes](https://github.com/storybookjs/addon-webpack5-compiler-babel/releases)
- [Changelog](https://github.com/storybookjs/addon-webpack5-compiler-babel/blob/main/CHANGELOG.md)
- [Commits](storybookjs/addon-webpack5-compiler-babel@v3.0.6...v4.0.0)

Updates `@storybook/react-webpack5` from 9.1.13 to 10.1.2
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.1.2/code/frameworks/react-webpack5)

Updates `storybook` from 9.1.13 to 10.1.2
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.1.2/code/core)

---
updated-dependencies:
- dependency-name: "@storybook/addon-a11y"
  dependency-version: 10.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/addon-docs"
  dependency-version: 10.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/addon-webpack5-compiler-babel"
  dependency-version: 4.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/react-webpack5"
  dependency-version: 10.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: storybook
  dependency-version: 10.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix storybook update issue

* fix conflict and issue

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>
Co-authored-by: Kerrie Wu <kerrie.wu@skyscanner.net>

* Bump jws from 3.2.2 to 3.2.3 (#4066)

* Bump jws from 3.2.2 to 3.2.3

Bumps [jws](https://github.com/brianloveswords/node-jws) from 3.2.2 to 3.2.3.
- [Release notes](https://github.com/brianloveswords/node-jws/releases)
- [Changelog](https://github.com/auth0/node-jws/blob/master/CHANGELOG.md)
- [Commits](auth0/node-jws@v3.2.2...v3.2.3)

---
updated-dependencies:
- dependency-name: jws
  dependency-version: 3.2.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* update package-lock.json

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: gc.zhu <gc.zhu@skyscanner.net>

* [CLOV-907][BpkButton] Update BpkButton link and linkOnDark type style (#4076)

* [CLOV-907][BpkButton] Update BpkButton link and linkOnDark type style

* add implicit to BpkPaginationNudger and BpkFloatingNotification and ExpandAccessoryContent

* adjust linkOnDark hover color

* add Links example

* update link on dark hover style

* remove full props in README

* update BpkPaginationNudger to iconOnly

* remove bpk-buttob-link-disabled

* button link aligned

* support inline display svg

* add button-link-type README

* rename bpk-button--link-icon-only-aligned

* rename bpk-button--link-icon-only

* [CLOV-958][BpkButton] Remove BpkButton (v1) code and alias BpkButton to BpkButtonV2 (#4078)

* remove BpkButton code and alias BpkButton to BpkButtonV2

* refine themeAttributes file structure

* update readme

* correct file format

* udpate readme

* update readme

---------

Co-authored-by: Ezreal Yang <supremeyh@126.com>

* [CLOV-907][BpkButton] Fix BpkButton linkOnDark alignment (#4086)

* Bump lint-staged from 16.1.5 to 16.2.7 (#4071)

Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 16.1.5 to 16.2.7.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md)
- [Commits](lint-staged/lint-staged@v16.1.5...v16.2.7)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-version: 16.2.7
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: IrinaWei <irina.wei@skyscanner.net>

* Bump glob from 11.1.0 to 13.0.0 (#4072)

Bumps [glob](https://github.com/isaacs/node-glob) from 11.1.0 to 13.0.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](isaacs/node-glob@v11.1.0...v13.0.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 13.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: IrinaWei <irina.wei@skyscanner.net>

* [BpkLink] Migrate component to TypeScript (#4063)

* Initial plan

* Initial exploration

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* Migrate BpkLink component to TypeScript

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* Add missing semicolon in examples.tsx

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* Remove unused @ts-expect-error directives for bpk-component-link imports

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* Remove duplicate JS files

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* Update packages/bpk-component-link/src/BpkLink.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update examples/bpk-component-link/examples.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/bpk-component-link/src/BpkLink.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix TypeScript errors: convert null to undefined for href and rel attributes

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* Make href prop required in BpkLink to match original Flow type and ensure accessibility

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* Extend AnchorHTMLAttributes instead of using index signature for better Storybook docgen support

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* Extend ButtonHTMLAttributes for BpkButtonLink to match BpkLink pattern and improve Storybook docgen

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>

* omit props

* address rel

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
Co-authored-by: Gert-Jan Vercauteren <gert-jan.vercauteren@skyscanner.net>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ezreal Yang <supremeyh@126.com>

* bump bpk-foundations-web to 24.0.0 (#4092)

Co-authored-by: Flora Cheng <flora.cheng@skyscanner.net>

* feat[BpkPrice]: added variant size medium (#4089)

* feat: added variant size medium to bpkPrice

* fix: fixed spacing issues picked up in PR

* chore: run tests

---------

Co-authored-by: Gert-Jan Vercauteren <gert-jan.vercauteren@skyscanner.net>

* [CLOV-657][BpkLink] Refactor BpkLink with add as prop (#4094)

* [CLOV-657] Add as prop to support BpkLink

* update ref type

* use BpkPanel in storybook examples

* remove BpkButtonLink in README and storybook

* simplify with react type

* introduce const LINK_AS

* update LINK_AS cases

* update as Element

* update snapshots

* ArgTypes specify API

* add href null

* common-types

* update import and export path

* remove LINK_AS

* remove BpkLinkPolymorphicProps

* update  processAnchorProps and getClassNames

* remove LinksAs type

* [CLOV-909][BpkLink] Mark BpkButtonLink deprecated (#4096)

* [CLOV-909][BpkButtonLink] Mark BpkButtonLink deprecated

* type label and pass rest

* [CLOV-957][BpkButton] Replace BpkButtonV2 with BpkButton across codebase (#4097)

* [CLOV-957][BpkButton] Replace BpkButtonV2 with BpkButton across codebase

* update figma path

* [Clov-353][BpkAutosuggest]Export Autosuggest default theme (#4098)

* export default them

* Update packages/bpk-component-autosuggest/index.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Bump storybook from 10.1.2 to 10.1.11 (#4100)

* Bump storybook from 10.1.2 to 10.1.11

Bumps [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) from 10.1.2 to 10.1.11.
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.1.11/code/core)

---
updated-dependencies:
- dependency-name: storybook
  dependency-version: 10.1.11
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update package-lock.json

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Flora Cheng <flora.cheng@skyscanner.net>

* [BpkCode] Migrate component to TypeScript (#4106)

* Initial plan

* Migrate BpkCode component to TypeScript

Co-authored-by: Faye-Xiao <20058385+Faye-Xiao@users.noreply.github.com>

* Refactor BpkCode to use consistent className handling approach

Co-authored-by: Faye-Xiao <20058385+Faye-Xiao@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Replace snapshot tests with Jest expect assertions

Co-authored-by: Faye-Xiao <20058385+Faye-Xiao@users.noreply.github.com>

* Remove unused @ts-expect-error directive for BpkCode import

Co-authored-by: Faye-Xiao <20058385+Faye-Xiao@users.noreply.github.com>

* Update README to tsx and add rest props type support

Co-authored-by: Faye-Xiao <20058385+Faye-Xiao@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Faye-Xiao <20058385+Faye-Xiao@users.noreply.github.com>
Co-authored-by: Faye <faye.xiao@skyscanner.net>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix issue with carousel alignment on mobile

* optimize mobile left space and the code itself

* Revert "optimize mobile left space and the code itself"

This reverts commit eaf2cbe.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Vincent Liu <xiaogliu@outlook.com>
Co-authored-by: Irina-Wei <irina.wei@skyscanner.net>
Co-authored-by: Ezreal Yang <supremeyh@126.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kerrie-wu <52308828+kerrie-wu@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Noel Rajan <14931745+FireRedNinja@users.noreply.github.com>
Co-authored-by: Gert-Jan Vercauteren <gert-jan.vercauteren@skyscanner.net>
Co-authored-by: Kerrie Wu <kerrie.wu@skyscanner.net>
Co-authored-by: gc.zhu <gc.zhu@skyscanner.net>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
Co-authored-by: Flora Cheng <122813126+floracheng292@users.noreply.github.com>
Co-authored-by: Flora Cheng <flora.cheng@skyscanner.net>
Co-authored-by: Nic da Costa <1333205+nicdaCosta@users.noreply.github.com>
Co-authored-by: Faye-Xiao <20058385+Faye-Xiao@users.noreply.github.com>
Co-authored-by: Faye <faye.xiao@skyscanner.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

patch Patch production bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants