Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 3, 2025

Migrates BpkLink and BpkButtonLink components from JavaScript (Flow) to TypeScript.

Changes

  • Component files: BpkLink.tsx, BpkButtonLink.tsx, themeAttributes.ts
  • Test files: All test files converted to .tsx with typed refs
  • Package index: index.ts with exported BpkLinkProps and BpkButtonLinkProps types
  • Storybook: examples.tsx and stories.tsx
  • Figma: Added required href prop to example
  • Downstream fixes: Removed unused @ts-expect-error directives from components that import from bpk-component-link (bottom-sheet, breadcrumb, drawer, info-banner, modal, navigation-bar, popover, rtl-toggle, card-list examples)
  • Type fixes:
    • Updated BpkNavigationBarButtonLink to use typeof BpkButtonLink for component props
    • Fixed BpkRtlToggle to use proper React MouseEvent type
    • Changed BpkLink Props to extend AnchorHTMLAttributes<HTMLAnchorElement> instead of using index signature [rest: string]: any for better Storybook documentation generator (react-docgen) compatibility
    • Changed BpkButtonLink Props to extend ButtonHTMLAttributes<HTMLButtonElement> instead of using index signature for consistency and better Storybook docgen
    • Updated className and rel types to match HTML attributes (removing null from union types)
  • Accessibility: Ensured href prop remains required on BpkLink to match original Flow type and prevent accessibility regression (anchor without href is an accessibility issue)
  • Bug fixes: Fixed BpkBreadcrumbItem and BpkInfoBannerInner to provide valid href values when using BpkLink

Usage

import BpkLink, { BpkButtonLink, type BpkLinkProps } from '@skyscanner/backpack-web/bpk-component-link';

<BpkLink href="/path" alternate>Link text</BpkLink>
<BpkButtonLink onClick={handleClick}>Button link</BpkButtonLink>

BpkLink

Before After

BpkButtonLink

Before After

https://www.skyscanner.design/latest/components/link/web-tBkgNmHW


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
Original prompt

This section details on the original issue you should resolve

<issue_title>Migrate BpkLink component to Typescript</issue_title>
<issue_description>I want to migrate BpkLink component and all its tests and storybook examples to Typescript</issue_description>

Comments on the Issue (you are Copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@skyscanner-backpack-bot
Copy link

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

Copilot AI and others added 3 commits December 3, 2025 08:49
Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
Copilot AI changed the title [WIP] Migrate BpkLink component and tests to Typescript [BpkLink] Migrate component to TypeScript Dec 3, 2025
@skyscanner-backpack-bot
Copy link

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

@gert-janvercauteren

Copilot can you address the build failures? They seem to be about ts-ignore which is no longer needed.

Copilot AI and others added 2 commits December 3, 2025 09:44
Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 3, 2025

Copilot can you address the build failures? They seem to be about ts-ignore which is no longer needed.

Fixed in d3f2554. Removed all unused @ts-expect-error directives from files that import from bpk-component-link, since the component is now typed. Also fixed type usage in BpkNavigationBarButtonLink (using typeof BpkButtonLink) and BpkRtlToggle (using proper React MouseEvent type).

@skyscanner-backpack-bot
Copy link

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

@skyscanner-backpack-bot
Copy link

skyscanner-backpack-bot bot commented Dec 3, 2025

Warnings
⚠️ These new files implement overriding className which is restricted: packages/bpk-component-link/src/BpkLink.tsx. Please update this component to remove the className prop.

Browser support

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

Generated by 🚫 dangerJS against 74971ba

@gert-janvercauteren Gert-Jan Vercauteren (gert-janvercauteren) marked this pull request as ready for review December 3, 2025 10:20
Copilot AI review requested due to automatic review settings December 3, 2025 10:20
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 migrates the BpkLink component from JavaScript (Flow) to TypeScript, including both BpkLink and BpkButtonLink components, along with comprehensive updates to tests, Storybook examples, and downstream components that consume these components.

Key changes:

  • Converted BpkLink and BpkButtonLink from Flow-typed JavaScript to TypeScript with proper type definitions
  • Updated all test files to use TypeScript with typed refs
  • Removed @ts-expect-error suppressions from downstream components that import from bpk-component-link

Reviewed changes

Copilot reviewed 23 out of 26 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/bpk-component-link/src/BpkLink.tsx New TypeScript implementation of BpkLink with Props type export
packages/bpk-component-link/src/BpkButtonLink.tsx Migrated BpkButtonLink to TypeScript with exported Props type
packages/bpk-component-link/index.ts Updated exports to include BpkLinkProps and BpkButtonLinkProps types
packages/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.tsx Fixed Props type to use typeof BpkButtonLink for component props
packages/bpk-component-rtl-toggle/src/BpkRtlToggle.tsx Updated MouseEvent import and type definition with HTMLButtonElement generic
packages/bpk-component-link/src/BpkLink.figma.tsx Added required href prop to Figma example
examples/bpk-component-link/stories.tsx Updated VisualTestWithZoom to use object syntax instead of bind
examples/bpk-component-link/examples.tsx Added ts-ignore for untyped storybook utils import
Multiple downstream components Removed ts-expect-error directives for now-typed BpkLink imports

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

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

# Conflicts:
#	package-lock.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@skyscanner-backpack-bot
Copy link

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

…sure accessibility

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
@skyscanner-backpack-bot
Copy link

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

rel?: string | null;
alternate?: boolean;
implicit?: boolean;
[rest: string]: any; // Inexact rest. See decisions/inexact-rest.md
Copy link
Contributor

Choose a reason for hiding this comment

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

Could we extend AnchorHTMLAttributes instead of using [rest: string]: any because the combination of forwardRef and an index signature causes Storybook's
documentation generator (react-docgen) to fail to extract props correctly.

Copy link
Contributor

Choose a reason for hiding this comment

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

Like this :

export interface Props extends AnchorHTMLAttributes<HTMLAnchorElement> {
 hildren: ReactNode;
  href: string; 
  className?: string | null;
  onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
  blank?: boolean;
  rel?: string; 
  alternate?: boolean;
  implicit?: boolean;
}

Choose a reason for hiding this comment

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

Copilot can you handle this for me please

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 56962c6. Changed Props to extend AnchorHTMLAttributes<HTMLAnchorElement> instead of using the index signature. This allows Storybook's react-docgen to properly extract prop documentation. Also updated className and rel types to match AnchorHTMLAttributes (removing null from the union types), and fixed downstream components that were passing invalid href values.

Copy link
Contributor

@kerrie-wu kerrie-wu Dec 12, 2025

Choose a reason for hiding this comment

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

I see the explanation for removing null in BpkLink to match AnchorHTMLAttributes. That makes sense. While this is technically a breaking change for consumers who explicitly pass this prop null, should we consider it a major change?

…er Storybook docgen support

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
* main:
  Bump jws from 3.2.2 to 3.2.3 (#4066)
  Bump the storybook group across 1 directory with 5 updates (#4058)

# Conflicts:
#	package-lock.json
@skyscanner-backpack-bot
Copy link

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

className?: string | null;
alternate?: boolean;
implicit?: boolean;
[rest: string]: any; // Inexact rest. See decisions/inexact-rest.md
Copy link
Contributor

Choose a reason for hiding this comment

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

Hi as you've changed the props according to this conversation #4063 (comment), would you do the same to this BpkButtonLink?

Choose a reason for hiding this comment

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

Copilot can you address the comment please? Keep in mind that BpkButtonLink should be a not an

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 90cb40c. Updated BpkButtonLink to extend ButtonHTMLAttributes<HTMLButtonElement> instead of using the index signature, matching the pattern applied to BpkLink. This ensures consistent type definitions and improves Storybook's documentation generator (react-docgen) compatibility for both components.

…n and improve Storybook docgen

Co-authored-by: gert-janvercauteren <728889+gert-janvercauteren@users.noreply.github.com>
IrinaWei
IrinaWei previously approved these changes Dec 12, 2025
@skyscanner-backpack-bot
Copy link

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

@skyscanner-backpack-bot
Copy link

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

onClick: (event: SyntheticEvent<>) => mixed,
alternate: boolean,
export interface Props extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'className' | 'onClick'> {
/** The content of the link. */
Copy link
Contributor

Choose a reason for hiding this comment

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

After adding JSDoc comments, react-docgen-typescript will recognize children as props with custom documentation, and they should appear in the API documentation

const getClassName = cssModules(STYLES);

export interface Props
extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'className' | 'rel'> {
Copy link
Contributor

Choose a reason for hiding this comment

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

Use Omit to exclude the properties in the parent interface so that redefine them and make href also support null without TS error

@skyscanner-backpack-bot
Copy link

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

Copy link
Contributor

@kerrie-wu kerrie-wu left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@IrinaWei IrinaWei left a comment

Choose a reason for hiding this comment

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

LGTM

@Supremeyh Ezreal Yang (Supremeyh) merged commit f7e83d3 into main Dec 18, 2025
11 checks passed
@Supremeyh Ezreal Yang (Supremeyh) deleted the copilot/migrate-bpklink-to-typescript branch December 18, 2025 04:45
Faye (Faye-Xiao) pushed a commit that referenced this pull request Dec 23, 2025
* 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>
Jimmy cook (jimmycook) pushed a commit that referenced this pull request Jan 6, 2026
* 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>
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

minor Non breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate BpkLink component to Typescript

5 participants