@skyscanner/backpack-web 33.3.1 → 33.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/bpk-component-accordion/index.js +1 -1
  2. package/bpk-component-accordion/src/BpkAccordionItem.js +12 -13
  3. package/bpk-component-accordion/src/BpkAccordionItem.module.css +1 -1
  4. package/bpk-component-autosuggest/src/BpkAutosuggestSuggestion.js +5 -3
  5. package/bpk-component-banner-alert/index.js +1 -1
  6. package/bpk-component-banner-alert/src/AnimateAndFade.js +37 -35
  7. package/bpk-component-banner-alert/src/BpkBannerAlertInner.js +12 -6
  8. package/bpk-component-barchart/src/BpkBarchart.js +9 -10
  9. package/bpk-component-barchart/src/BpkBarchartBar.js +1 -2
  10. package/bpk-component-barchart/src/BpkBarchartBars.js +2 -2
  11. package/bpk-component-barchart/src/BpkBarchartDefs.js +1 -2
  12. package/bpk-component-barchart/src/BpkChartAxis.js +1 -2
  13. package/bpk-component-barchart/src/BpkChartDataTable.js +1 -2
  14. package/bpk-component-bottom-sheet/src/BpkBottomSheet.js +4 -6
  15. package/bpk-component-breadcrumb/src/BpkBreadcrumb.js +1 -2
  16. package/bpk-component-breadcrumb/src/BpkBreadcrumbItem.js +18 -14
  17. package/bpk-component-breadcrumb/src/BpkBreadcrumbItem.module.css +1 -1
  18. package/bpk-component-breakpoint/index.d.ts +2 -1
  19. package/bpk-component-breakpoint/src/BpkBreakpoint.js +7 -5
  20. package/bpk-component-breakpoint/src/useMediaQuery.js +7 -6
  21. package/bpk-component-button/index.js +5 -5
  22. package/bpk-component-button/src/BpkButtonDestructive.js +10 -9
  23. package/bpk-component-button/src/BpkButtonFeatured.js +10 -9
  24. package/bpk-component-button/src/BpkButtonLink.js +11 -10
  25. package/bpk-component-button/src/BpkButtonLinkOnDark.js +11 -10
  26. package/bpk-component-button/src/BpkButtonPrimary.js +2 -2
  27. package/bpk-component-button/src/BpkButtonPrimaryOnDark.js +10 -9
  28. package/bpk-component-button/src/BpkButtonPrimaryOnLight.js +10 -9
  29. package/bpk-component-button/src/BpkButtonSecondary.js +10 -10
  30. package/bpk-component-button/src/BpkButtonSecondaryOnDark.js +10 -9
  31. package/bpk-component-calendar/index.js +1 -1
  32. package/bpk-component-calendar/src/BpkCalendarContainer.js +3 -3
  33. package/bpk-component-calendar/src/BpkCalendarGrid.js +3 -2
  34. package/bpk-component-calendar/src/BpkCalendarGrid.module.css +1 -1
  35. package/bpk-component-calendar/src/BpkCalendarGridHeader.js +4 -1
  36. package/bpk-component-calendar/src/BpkCalendarGridTransition.js +6 -4
  37. package/bpk-component-calendar/src/BpkCalendarNav.js +10 -5
  38. package/bpk-component-calendar/src/Week.js +6 -3
  39. package/bpk-component-calendar/src/composeCalendar.js +9 -4
  40. package/bpk-component-calendar/src/date-utils.js +14 -14
  41. package/bpk-component-card/src/BpkCardWrapper.js +1 -2
  42. package/bpk-component-card/src/BpkDividedCard.js +19 -15
  43. package/bpk-component-card-button/src/BpkSaveButton.js +14 -6
  44. package/bpk-component-checkbox/src/BpkCheckbox.js +1 -2
  45. package/bpk-component-chip/index.d.ts +3 -5
  46. package/bpk-component-chip/index.js +3 -2
  47. package/bpk-component-chip/src/BpkDismissibleChip.js +7 -2
  48. package/bpk-component-chip/src/BpkIconChip.d.ts +25 -0
  49. package/bpk-component-chip/src/BpkIconChip.js +31 -0
  50. package/bpk-component-chip/src/BpkSelectableChip.d.ts +0 -2
  51. package/bpk-component-chip/src/BpkSelectableChip.js +5 -6
  52. package/bpk-component-chip/src/BpkSelectableChip.module.css +1 -1
  53. package/bpk-component-chip/src/commonTypes.d.ts +1 -1
  54. package/bpk-component-chip/src/commonTypes.js +1 -24
  55. package/bpk-component-close-button/src/BpkCloseButton.js +9 -5
  56. package/bpk-component-close-button/src/BpkCloseButton.module.css +1 -1
  57. package/bpk-component-content-cards/src/BpkContentCard.js +9 -4
  58. package/bpk-component-content-cards/src/BpkContentCards.js +2 -7
  59. package/bpk-component-content-cards/src/BpkContentCards.module.css +1 -1
  60. package/bpk-component-datatable/src/BpkDataTable.js +4 -4
  61. package/bpk-component-datatable/src/BpkDataTableHeader.js +14 -11
  62. package/bpk-component-datatable/src/BpkDataTableHeader.module.css +1 -1
  63. package/bpk-component-datepicker/src/BpkDatepicker.js +3 -5
  64. package/bpk-component-description-list/index.js +1 -1
  65. package/bpk-component-description-list/src/ComponentFactory.js +10 -5
  66. package/bpk-component-dialog/src/BpkDialog.js +7 -6
  67. package/bpk-component-dialog/src/BpkDialog.module.css +1 -1
  68. package/bpk-component-dialog/src/BpkDialogInner.js +7 -5
  69. package/bpk-component-drawer/src/BpkDrawer.js +1 -4
  70. package/bpk-component-drawer/src/BpkDrawerContent.js +8 -7
  71. package/bpk-component-fieldset/src/BpkFieldset.js +10 -9
  72. package/bpk-component-flare/index.js +2 -2
  73. package/bpk-component-flare/src/BpkContentBubble.js +5 -3
  74. package/bpk-component-flare/src/BpkFlareBar.js +15 -7
  75. package/bpk-component-floating-notification/src/BpkFloatingNotification.js +10 -4
  76. package/bpk-component-form-validation/src/BpkFormValidation.js +6 -6
  77. package/bpk-component-graphic-promotion/src/BpkGraphicPromo.js +10 -14
  78. package/bpk-component-graphic-promotion/src/BpkGraphicPromo.module.css +1 -1
  79. package/bpk-component-grid-toggle/src/BpkGridToggle.js +8 -6
  80. package/bpk-component-horizontal-nav/src/BpkHorizontalNav.js +16 -14
  81. package/bpk-component-horizontal-nav/src/BpkHorizontalNav.module.css +1 -1
  82. package/bpk-component-horizontal-nav/src/BpkHorizontalNavItem.js +2 -2
  83. package/bpk-component-icon/index.js +1 -1
  84. package/bpk-component-icon/lg/ai.js +1 -2
  85. package/bpk-component-icon/lg/aircraft.js +1 -2
  86. package/bpk-component-icon/lg/beach.js +1 -2
  87. package/bpk-component-icon/lg/call-back.js +1 -2
  88. package/bpk-component-icon/lg/camper-van.js +1 -2
  89. package/bpk-component-icon/lg/car-wash.js +1 -2
  90. package/bpk-component-icon/lg/cars.js +1 -2
  91. package/bpk-component-icon/lg/clean.js +1 -2
  92. package/bpk-component-icon/lg/cloakroom.js +1 -2
  93. package/bpk-component-icon/lg/content--copy.js +1 -2
  94. package/bpk-component-icon/lg/data.js +1 -2
  95. package/bpk-component-icon/lg/depart.js +1 -2
  96. package/bpk-component-icon/lg/dot.js +20 -0
  97. package/bpk-component-icon/lg/download.js +1 -2
  98. package/bpk-component-icon/lg/education.js +1 -2
  99. package/bpk-component-icon/lg/explore.js +1 -2
  100. package/bpk-component-icon/lg/fast-track.js +1 -2
  101. package/bpk-component-icon/lg/fast-train.js +1 -2
  102. package/bpk-component-icon/lg/flight-landing.js +1 -2
  103. package/bpk-component-icon/lg/flight-takeoff.js +1 -2
  104. package/bpk-component-icon/lg/flight.js +1 -2
  105. package/bpk-component-icon/lg/legroom--extra.js +1 -2
  106. package/bpk-component-icon/lg/legroom--normal.js +1 -2
  107. package/bpk-component-icon/lg/legroom--reduced.js +1 -2
  108. package/bpk-component-icon/lg/logout.js +1 -2
  109. package/bpk-component-icon/lg/lounge.js +1 -2
  110. package/bpk-component-icon/lg/mail.js +1 -2
  111. package/bpk-component-icon/lg/mileage.js +1 -2
  112. package/bpk-component-icon/lg/new-window.js +1 -2
  113. package/bpk-component-icon/lg/plane-seat.js +1 -2
  114. package/bpk-component-icon/lg/return.js +1 -2
  115. package/bpk-component-icon/lg/scales.js +1 -2
  116. package/bpk-component-icon/lg/share--ios.js +1 -2
  117. package/bpk-component-icon/lg/social-distancing.js +1 -2
  118. package/bpk-component-icon/lg/speaker.js +1 -2
  119. package/bpk-component-icon/lg/taxi.js +1 -2
  120. package/bpk-component-icon/lg/unmute.js +1 -2
  121. package/bpk-component-icon/lg/wallet.js +1 -2
  122. package/bpk-component-icon/lg/weather--cloudy.js +1 -2
  123. package/bpk-component-icon/lg/weather--partly-cloudy.js +1 -2
  124. package/bpk-component-icon/lg/weather--rain.js +1 -2
  125. package/bpk-component-icon/lg/weather--thunderstorm.js +1 -2
  126. package/bpk-component-icon/lg/window--reduce.js +1 -2
  127. package/bpk-component-icon/lg/world--emea.js +1 -2
  128. package/bpk-component-icon/sm/ai.js +1 -2
  129. package/bpk-component-icon/sm/aircraft.js +1 -2
  130. package/bpk-component-icon/sm/beach.js +1 -2
  131. package/bpk-component-icon/sm/bus.js +1 -2
  132. package/bpk-component-icon/sm/call-back.js +1 -2
  133. package/bpk-component-icon/sm/camper-van.js +1 -2
  134. package/bpk-component-icon/sm/car-wash.js +1 -2
  135. package/bpk-component-icon/sm/cars.js +1 -2
  136. package/bpk-component-icon/sm/chauffeur.js +1 -2
  137. package/bpk-component-icon/sm/clean.js +1 -2
  138. package/bpk-component-icon/sm/content--copy.js +1 -2
  139. package/bpk-component-icon/sm/data.js +1 -2
  140. package/bpk-component-icon/sm/depart.js +1 -2
  141. package/bpk-component-icon/sm/direct.js +1 -2
  142. package/bpk-component-icon/sm/dot.js +20 -0
  143. package/bpk-component-icon/sm/download.js +1 -2
  144. package/bpk-component-icon/sm/education.js +1 -2
  145. package/bpk-component-icon/sm/explore.js +1 -2
  146. package/bpk-component-icon/sm/fast-track.js +1 -2
  147. package/bpk-component-icon/sm/fast-train.js +1 -2
  148. package/bpk-component-icon/sm/flight-landing.js +1 -2
  149. package/bpk-component-icon/sm/flight-takeoff.js +1 -2
  150. package/bpk-component-icon/sm/flight.js +1 -2
  151. package/bpk-component-icon/sm/hotels--jacuzzi.js +1 -2
  152. package/bpk-component-icon/sm/infant.js +1 -2
  153. package/bpk-component-icon/sm/legroom--extra.js +1 -2
  154. package/bpk-component-icon/sm/legroom--normal.js +1 -2
  155. package/bpk-component-icon/sm/legroom--reduced.js +1 -2
  156. package/bpk-component-icon/sm/logout.js +1 -2
  157. package/bpk-component-icon/sm/mail.js +1 -2
  158. package/bpk-component-icon/sm/mileage.js +1 -2
  159. package/bpk-component-icon/sm/new-window.js +1 -2
  160. package/bpk-component-icon/sm/onsen.js +1 -2
  161. package/bpk-component-icon/sm/plane-seat.js +1 -2
  162. package/bpk-component-icon/sm/return.js +1 -2
  163. package/bpk-component-icon/sm/share--ios.js +1 -2
  164. package/bpk-component-icon/sm/social-distancing.js +1 -2
  165. package/bpk-component-icon/sm/taxi.js +1 -2
  166. package/bpk-component-icon/sm/unmute.js +1 -2
  167. package/bpk-component-icon/sm/weather--cloudy.js +1 -2
  168. package/bpk-component-icon/sm/weather--rain.js +1 -2
  169. package/bpk-component-icon/sm/weather--thunderstorm.js +1 -2
  170. package/bpk-component-icon/sm/weather--wind.js +1 -2
  171. package/bpk-component-icon/sm/window--reduce.js +1 -2
  172. package/bpk-component-icon/src/classNameModifierHOCFactory.js +3 -0
  173. package/bpk-component-icon/src/withDescription.js +1 -2
  174. package/bpk-component-icon/src/withRtlSupport.js +1 -1
  175. package/bpk-component-image/index.js +2 -2
  176. package/bpk-component-image/src/BpkBackgroundImage.js +4 -3
  177. package/bpk-component-image/src/BpkImage.js +6 -4
  178. package/bpk-component-infinite-scroll/src/withInfiniteScroll.js +4 -5
  179. package/bpk-component-info-banner/src/AnimateAndFade.js +37 -35
  180. package/bpk-component-info-banner/src/BpkInfoBanner.module.css +1 -1
  181. package/bpk-component-info-banner/src/BpkInfoBannerInner.js +17 -14
  182. package/bpk-component-input/index.js +1 -1
  183. package/bpk-component-input/src/BpkClearButton.js +3 -1
  184. package/bpk-component-input/src/BpkInput.js +6 -4
  185. package/bpk-component-input/src/withOpenEvents.js +4 -1
  186. package/bpk-component-label/src/BpkLabel.js +1 -2
  187. package/bpk-component-link/index.js +2 -2
  188. package/bpk-component-list/src/BpkList.js +2 -2
  189. package/bpk-component-loading-button/src/BpkLoadingButton.js +7 -5
  190. package/bpk-component-map/index.js +4 -4
  191. package/bpk-component-map/src/BpkIconMarker.js +2 -3
  192. package/bpk-component-map/src/BpkMap.js +2 -2
  193. package/bpk-component-map/src/BpkPriceMarker.js +8 -7
  194. package/bpk-component-map/src/BpkPriceMarkerV2/BpkPriceMarker.js +2 -3
  195. package/bpk-component-mobile-scroll-container/src/BpkMobileScrollContainer.js +1 -9
  196. package/bpk-component-mobile-scroll-container/src/BpkMobileScrollContainer.module.css +1 -1
  197. package/bpk-component-modal/index.js +4 -3
  198. package/bpk-component-modal/src/BpkModal.d.ts +2 -1
  199. package/bpk-component-modal/src/BpkModal.js +4 -2
  200. package/bpk-component-modal/src/BpkModalInner.d.ts +2 -0
  201. package/bpk-component-modal/src/BpkModalInner.js +25 -10
  202. package/bpk-component-modal/src/BpkModalInner.module.css +1 -1
  203. package/bpk-component-modal/src/BpkModalV2/BpKModal.module.css +1 -1
  204. package/bpk-component-modal/src/BpkModalV2/BpkModal.d.ts +2 -0
  205. package/bpk-component-modal/src/BpkModalV2/BpkModal.js +20 -10
  206. package/bpk-component-navigation-bar/index.js +1 -1
  207. package/bpk-component-navigation-bar/src/BpkNavigationBar.js +8 -7
  208. package/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.js +7 -7
  209. package/bpk-component-navigation-bar/src/BpkNavigationBarIconButton.js +8 -8
  210. package/bpk-component-nudger/index.js +1 -1
  211. package/bpk-component-nudger/src/BpkConfigurableNudger.js +17 -6
  212. package/bpk-component-nudger/src/BpkNudger.js +16 -10
  213. package/bpk-component-nudger/src/BpkNudger.module.css +1 -1
  214. package/bpk-component-overlay/src/BpkOverlay.js +1 -2
  215. package/bpk-component-page-indicator/src/BpkPageIndicator.js +1 -2
  216. package/bpk-component-page-indicator/src/BpkPageIndicator.module.css +1 -1
  217. package/bpk-component-page-indicator/src/NavButton.js +1 -1
  218. package/bpk-component-pagination/src/BpkPagination.js +1 -2
  219. package/bpk-component-pagination/src/BpkPaginationList.js +1 -1
  220. package/bpk-component-pagination/src/BpkPaginationNudger.js +14 -6
  221. package/bpk-component-pagination/src/BpkPaginationPage.js +4 -1
  222. package/bpk-component-phone-input/src/BpkPhoneInput.js +16 -6
  223. package/bpk-component-popover/src/BpkPopover.js +8 -6
  224. package/bpk-component-popover/src/BpkPopoverPortal.js +8 -7
  225. package/bpk-component-popover/src/keyboardFocusScope.js +1 -1
  226. package/bpk-component-price/src/BpkPrice.js +19 -8
  227. package/bpk-component-progress/src/BpkProgress.js +1 -2
  228. package/bpk-component-radio/src/BpkRadio.js +1 -2
  229. package/bpk-component-rating/src/BpkRating.js +19 -8
  230. package/bpk-component-rtl-toggle/src/BpkRtlToggle.js +0 -4
  231. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGrid.js +7 -5
  232. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGridList.js +7 -4
  233. package/bpk-component-section-header/src/BpkSectionHeader.js +7 -7
  234. package/bpk-component-section-header/src/BpkSectionHeader.module.css +1 -1
  235. package/bpk-component-section-list/index.js +1 -1
  236. package/bpk-component-section-list/src/BpkSectionListItem.js +9 -8
  237. package/bpk-component-section-list/src/BpkSectionListItem.module.css +1 -1
  238. package/bpk-component-section-list/src/BpkSectionListSection.js +2 -3
  239. package/bpk-component-select/src/BpkSelect.js +1 -2
  240. package/bpk-component-skeleton/index.js +21 -0
  241. package/bpk-component-skeleton/src/BpkBaseSkeleton.js +30 -0
  242. package/bpk-component-skeleton/src/BpkBaseSkeleton.module.css +18 -0
  243. package/bpk-component-skeleton/src/BpkSkeleton.js +38 -0
  244. package/bpk-component-skeleton/src/BpkSkeleton.module.css +18 -0
  245. package/bpk-component-skeleton/src/common-types.js +33 -0
  246. package/bpk-component-slider/src/BpkSlider.js +2 -1
  247. package/bpk-component-spinner/index.js +3 -3
  248. package/bpk-component-spinner/src/BpkExtraLargeSpinner.js +8 -7
  249. package/bpk-component-spinner/src/BpkLargeSpinner.js +8 -7
  250. package/bpk-component-spinner/src/BpkSpinner.js +8 -7
  251. package/bpk-component-split-input/src/BpkInputField.js +2 -2
  252. package/bpk-component-split-input/src/BpkSplitInput.js +3 -3
  253. package/bpk-component-star-rating/index.js +4 -4
  254. package/bpk-component-star-rating/src/BpkInteractiveStar.js +6 -3
  255. package/bpk-component-star-rating/src/BpkInteractiveStarRating.js +1 -1
  256. package/bpk-component-star-rating/src/BpkStar.js +18 -18
  257. package/bpk-component-star-rating/src/BpkStar.module.css +1 -1
  258. package/bpk-component-swap-button/src/BpkSwapButton.js +2 -1
  259. package/bpk-component-switch/src/BpkSwitch.js +1 -2
  260. package/bpk-component-table/index.js +2 -2
  261. package/bpk-component-text/src/BpkText.js +10 -5
  262. package/bpk-component-theme-toggle/src/BpkThemeToggle.js +7 -6
  263. package/bpk-component-theme-toggle/src/updateOnThemeChange.js +1 -1
  264. package/bpk-component-tooltip/src/BpkTooltip.js +2 -3
  265. package/bpk-component-tooltip/src/BpkTooltipPortal.js +7 -6
  266. package/bpk-mixins/_chips.scss +9 -0
  267. package/bpk-react-utils/index.js +3 -3
  268. package/bpk-react-utils/src/BpkDialogWrapper/BpkDialogWrapper.js +2 -2
  269. package/bpk-react-utils/src/Portal.js +1 -0
  270. package/bpk-react-utils/src/withDefaultProps.js +4 -1
  271. package/bpk-scrim-utils/src/withScrim.js +3 -3
  272. package/bpk-scrim-utils/src/withScrimmedPortal.js +1 -1
  273. package/bpk-theming/src/BpkThemeProvider.js +1 -1
  274. package/package.json +2 -2
  275. package/unstable__bpk-mixins/_chips.scss +9 -0
  276. package/bpk-component-button/src/commonButtonTests.js +0 -133
  277. package/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.module.css +0 -18
@@ -16,16 +16,19 @@
16
16
  * limitations under the License.
17
17
  */
18
18
 
19
- // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
20
- import { BpkButtonLink } from "../../bpk-component-link";
21
19
  // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
22
20
  import BpkCloseButton from "../../bpk-component-close-button";
23
- import BpkNavigationBar from "../../bpk-component-navigation-bar";
21
+ // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
22
+ import { BpkButtonLink } from "../../bpk-component-link";
23
+ import BpkNavigationBar, { BAR_STYLES } from "../../bpk-component-navigation-bar";
24
24
  import { TransitionInitialMount, cssModules } from "../../bpk-react-utils";
25
25
  import STYLES from "./BpkModalInner.module.css";
26
- import { jsx as _jsx } from "react/jsx-runtime";
27
- import { jsxs as _jsxs } from "react/jsx-runtime";
26
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
27
  const getClassName = cssModules(STYLES);
28
+ export const MODAL_STYLING = {
29
+ default: 'default',
30
+ surfaceContrast: 'surface-contrast'
31
+ };
29
32
  const BpkModalInner = ({
30
33
  accessoryView = null,
31
34
  children,
@@ -38,6 +41,7 @@ const BpkModalInner = ({
38
41
  fullScreenOnMobile = true,
39
42
  id,
40
43
  isIphone,
44
+ modalStyle = MODAL_STYLING.default,
41
45
  onClose = () => null,
42
46
  padded = true,
43
47
  showHeader = true,
@@ -47,6 +51,7 @@ const BpkModalInner = ({
47
51
  const classNames = [getClassName('bpk-modal')];
48
52
  const contentClassNames = [getClassName('bpk-modal__content')];
49
53
  const navigationStyles = [getClassName('bpk-modal__navigation')];
54
+ classNames.push(getClassName(`bpk-modal__modal-style--${modalStyle}`));
50
55
  if (wide) {
51
56
  classNames.push(getClassName('bpk-modal--wide'));
52
57
  }
@@ -83,7 +88,11 @@ const BpkModalInner = ({
83
88
  children: [showHeader && /*#__PURE__*/_jsx("header", {
84
89
  className: getClassName('bpk-modal__header'),
85
90
  children: /*#__PURE__*/_jsx(BpkNavigationBar, {
86
- id: headingId,
91
+ barStyle: modalStyle === MODAL_STYLING.surfaceContrast ? BAR_STYLES.onDark : BAR_STYLES.default,
92
+ id: headingId
93
+ // TODO: className to be removed
94
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
95
+ ,
87
96
  className: navigationStyles.join(' '),
88
97
  title: /*#__PURE__*/_jsx("h2", {
89
98
  id: headingId,
@@ -91,12 +100,18 @@ const BpkModalInner = ({
91
100
  children: title
92
101
  }),
93
102
  leadingButton: accessoryViewFinal,
94
- trailingButton: closeText ? /*#__PURE__*/_jsx(BpkButtonLink, {
95
- className: getClassName('bpk-modal__close-button'),
103
+ trailingButton: closeText ? /*#__PURE__*/_jsx(BpkButtonLink
104
+ // TODO: className to be removed
105
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
106
+ , {
107
+ className: [getClassName('bpk-modal__close-button'), getClassName(`bpk-modal__close-button-style--${modalStyle}`)].join(' '),
96
108
  onClick: onClose,
97
109
  children: closeText
98
- }) : /*#__PURE__*/_jsx(BpkCloseButton, {
99
- className: getClassName('bpk-modal__close-button'),
110
+ }) : /*#__PURE__*/_jsx(BpkCloseButton
111
+ // TODO: className to be removed
112
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
113
+ , {
114
+ className: [getClassName('bpk-modal__close-button'), getClassName(`bpk-modal__close-button-style--${modalStyle}`)].join(' '),
100
115
  label: closeLabel,
101
116
  onClick: onClose
102
117
  })
@@ -15,4 +15,4 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */
18
- .bpk-modal{z-index:1100;width:100%;max-width:32rem;margin:auto;transform:scale(1);transition:opacity 200ms ease-in-out,transform 200ms ease-in-out;outline:0;background-color:#fff;opacity:1;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0px 12px 50px 0px rgba(37,32,31,.25);border-radius:.5rem}@media(max-width: 32rem){.bpk-modal--full-screen-mobile{display:flex;margin:0;flex-direction:column;border-radius:0;box-shadow:none}}.bpk-modal--full-screen{max-width:none;display:flex;margin:0;flex-direction:column;border-radius:0;box-shadow:none}@media(min-width: 32.0625rem){.bpk-modal--wide{max-width:64rem}}.bpk-modal--appear{transform:scale(0.9);opacity:0}.bpk-modal--appear-active{transform:scale(1);opacity:1}.bpk-modal__header{box-shadow:0 -1px 0 0 #c1c7cf inset}.bpk-modal__navigation{display:flex;justify-content:space-between;background-color:#fff}.bpk-modal__heading{margin:0;font-size:1rem;line-height:1.5rem;font-weight:700}.bpk-modal__close-button{position:relative;right:auto;margin-left:1rem;margin-right:0}html[dir=rtl] .bpk-modal__close-button{margin-left:0;margin-right:1rem}html[dir=rtl] .bpk-modal__close-button{left:auto}.bpk-modal__accessory-view{position:relative;left:auto;margin-right:1rem}html[dir=rtl] .bpk-modal__accessory-view{right:auto;margin-left:1rem}.bpk-modal__content{flex:1;overflow-y:auto}.bpk-modal__content--padded{padding:1rem}
18
+ .bpk-modal{z-index:1100;width:100%;max-width:32rem;margin:auto;transform:scale(1);transition:opacity 200ms ease-in-out,transform 200ms ease-in-out;outline:0;background-color:#fff;opacity:1;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0px 12px 50px 0px rgba(37,32,31,.25);border-radius:.5rem}@media(max-width: 32rem){.bpk-modal--full-screen-mobile{display:flex;margin:0;flex-direction:column;border-radius:0;box-shadow:none}}.bpk-modal--full-screen{max-width:none;display:flex;margin:0;flex-direction:column;border-radius:0;box-shadow:none}@media(min-width: 32.0625rem){.bpk-modal--wide{max-width:64rem}}.bpk-modal--appear{transform:scale(0.9);opacity:0}.bpk-modal--appear-active{transform:scale(1);opacity:1}.bpk-modal__modal-style--surface-contrast{background-color:#05203c;color:#fff}.bpk-modal__header{box-shadow:0 -1px 0 0 #c1c7cf inset}.bpk-modal__navigation{display:flex;justify-content:space-between}.bpk-modal__heading{margin:0;font-size:1rem;line-height:1.5rem;font-weight:700}.bpk-modal__close-button{position:relative;right:auto;margin-left:1rem;margin-right:0}html[dir=rtl] .bpk-modal__close-button{margin-left:0;margin-right:1rem}html[dir=rtl] .bpk-modal__close-button{left:auto}.bpk-modal__close-button-style--surface-contrast{background-color:#05203c;color:#fff}.bpk-no-touch-support .bpk-modal__close-button-style--surface-contrast:hover:not(:active):not(:disabled){color:#fff}:global(.bpk-no-touch-support) .bpk-modal__close-button-style--surface-contrast:hover:not(:active):not(:disabled){color:#fff}.bpk-modal__accessory-view{position:relative;left:auto;margin-right:1rem}html[dir=rtl] .bpk-modal__accessory-view{right:auto;margin-left:1rem}.bpk-modal__content{flex:1;overflow-y:auto}.bpk-modal__content--padded{padding:1rem}
@@ -15,4 +15,4 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */
18
- @keyframes bpk-modal-scrim{0%{opacity:0}100%{opacity:1}}@keyframes bpk-modal-scale{0%{transform:scale(0.9)}100%{transform:scale(1)}}.bpk-modal-wrapper.bpk-modal-polyfill .bpk-modal-backdrop{position:fixed;z-index:0;margin:0 auto;background-color:rgba(0,0,0,.7);animation:bpk-modal-scrim 200ms ease-in-out;inset:0;inset-block-end:0;inset-inline:0;inset-inline-end:0}.bpk-modal-wrapper.bpk-modal-polyfill .bpk-modal{position:fixed;top:50%;left:50%;display:block;z-index:1;transform:translate(-50%, -50%) scale(1);transition:transform 200ms ease-in-out 200ms}.bpk-modal-wrapper.bpk-modal-polyfill .bpk-modal:not([data-open=true]),.bpk-modal-wrapper.bpk-modal-polyfill .bpk-modal-backdrop:not([data-open=true]){display:none}.bpk-modal{width:100%;max-width:none;height:100%;max-height:100%;padding:0;border:none;background:#fff;overflow-y:scroll;scrollbar-width:none;box-shadow:0px 12px 50px 0px rgba(37,32,31,.25)}@media(min-width: 32.0625rem){.bpk-modal{width:32rem;max-width:none;height:fit-content;max-height:90%;border-radius:.75rem}.bpk-modal--full-screen-desktop{width:100%;height:100%;max-height:100%;border-radius:0}.bpk-modal--wide{width:64rem;max-width:100%}}.bpk-modal[open]{animation:bpk-modal-scale 200ms ease-in-out}.bpk-modal--no-full-screen-mobile{width:90%;max-width:none;height:fit-content;max-height:90%}@media(min-width: 32.0625rem){.bpk-modal--no-full-screen-mobile{width:32rem;max-width:none}}.bpk-modal::backdrop{position:fixed;background-color:rgba(0,0,0,.7);animation:bpk-modal-scrim 200ms ease-in-out;inset:0;inset-block-end:0;inset-inline:0;inset-inline-end:0}.bpk-modal::-webkit-scrollbar{display:none}.bpk-modal__header-title{padding:1rem;display:flex;min-height:1.5rem;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.bpk-modal__header-title-container{display:flex;width:100%;justify-content:flex-start}.bpk-modal__title{padding-inline-end:1rem;font-size:1rem;line-height:1.5rem;font-weight:700}.bpk-modal__button-container{padding-block-start:1rem;padding-inline-end:1rem;display:flex;min-height:1.5rem;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.bpk-modal__container{min-height:100%;padding:1rem}.bpk-modal__container--padded{padding:0}.bpk-modal__container--full-screen-desktop{height:100%}
18
+ @keyframes bpk-modal-scrim{0%{opacity:0}100%{opacity:1}}@keyframes bpk-modal-scale{0%{transform:scale(0.9)}100%{transform:scale(1)}}.bpk-modal-wrapper.bpk-modal-polyfill .bpk-modal-backdrop{position:fixed;z-index:0;margin:0 auto;background-color:rgba(0,0,0,.7);animation:bpk-modal-scrim 200ms ease-in-out;inset:0;inset-block-end:0;inset-inline:0;inset-inline-end:0}.bpk-modal-wrapper.bpk-modal-polyfill .bpk-modal{position:fixed;top:50%;left:50%;display:block;z-index:1;transform:translate(-50%, -50%) scale(1);transition:transform 200ms ease-in-out 200ms}.bpk-modal-wrapper.bpk-modal-polyfill .bpk-modal:not([data-open=true]),.bpk-modal-wrapper.bpk-modal-polyfill .bpk-modal-backdrop:not([data-open=true]){display:none}.bpk-modal{width:100%;max-width:none;height:100%;max-height:100%;padding:0;border:none;background:#fff;overflow-y:scroll;scrollbar-width:none;box-shadow:0px 12px 50px 0px rgba(37,32,31,.25)}@media(min-width: 32.0625rem){.bpk-modal{width:32rem;max-width:none;height:fit-content;max-height:90%;border-radius:.75rem}.bpk-modal--full-screen-desktop{width:100%;height:100%;max-height:100%;border-radius:0}.bpk-modal--wide{width:64rem;max-width:100%}}.bpk-modal[open]{animation:bpk-modal-scale 200ms ease-in-out}.bpk-modal--no-full-screen-mobile{width:90%;max-width:none;height:fit-content;max-height:90%}@media(min-width: 32.0625rem){.bpk-modal--no-full-screen-mobile{width:32rem;max-width:none}}.bpk-modal::backdrop{position:fixed;background-color:rgba(0,0,0,.7);animation:bpk-modal-scrim 200ms ease-in-out;inset:0;inset-block-end:0;inset-inline:0;inset-inline-end:0}.bpk-modal::-webkit-scrollbar{display:none}.bpk-modal__header-title{padding:1rem;display:flex;min-height:1.5rem;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.bpk-modal__header-title-style--surface-contrast{background-color:#05203c;color:#fff}.bpk-modal__close-button-style--surface-contrast{color:#fff}.bpk-no-touch-support .bpk-modal__close-button-style--surface-contrast:hover:not(:active):not(:disabled){color:#fff}:global(.bpk-no-touch-support) .bpk-modal__close-button-style--surface-contrast:hover:not(:active):not(:disabled){color:#fff}.bpk-modal__header-title-container{display:flex;width:100%;justify-content:flex-start}.bpk-modal__button-container{padding-block-start:1rem;padding-inline-end:1rem;display:flex;min-height:1.5rem;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.bpk-modal__button-container-style--surface-contrast{background-color:#05203c;color:#fff}.bpk-modal__container{min-height:100%;padding:1rem}.bpk-modal__container--padded{padding:0}.bpk-modal__container--full-screen-desktop{height:100%}.bpk-modal__container--surface-contrast{background-color:#05203c;color:#fff}
@@ -18,6 +18,7 @@
18
18
 
19
19
  /// <reference types="react" />
20
20
  import type { ReactNode } from 'react';
21
+ import { ModalStyle } from '../BpkModalInner';
21
22
 
22
23
  export type Props = {
23
24
  id: string | undefined;
@@ -32,5 +33,6 @@ export type Props = {
32
33
  showHeader?: boolean;
33
34
  title?: string | null;
34
35
  wide?: boolean;
36
+ modalStyle?: ModalStyle;
35
37
  };
36
38
  export declare const BpkModalV2: (props: Props) => JSX.Element | null;
@@ -22,34 +22,43 @@ import { useEffect, useRef } from 'react';
22
22
  import BpkCloseButton from "../../../bpk-component-close-button";
23
23
  import BpkText, { TEXT_STYLES } from "../../../bpk-component-text";
24
24
  import { cssModules, withDefaultProps } from "../../../bpk-react-utils";
25
+ import { MODAL_STYLING } from "../BpkModalInner";
25
26
  import STYLES from "./BpKModal.module.css";
26
- import { jsx as _jsx } from "react/jsx-runtime";
27
- import { jsxs as _jsxs } from "react/jsx-runtime";
27
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
28
  const getClassName = cssModules(STYLES);
29
29
  const Header = ({
30
30
  closeLabel,
31
31
  id,
32
+ modalStyle,
32
33
  onClose,
33
34
  title
34
35
  }) => {
35
36
  if (title) {
36
37
  return /*#__PURE__*/_jsxs("div", {
37
38
  id: id,
38
- className: getClassName('bpk-modal__header-title'),
39
+ className: [getClassName('bpk-modal__header-title'), getClassName(`bpk-modal__header-title-style--${modalStyle}`)].join(' '),
39
40
  children: [/*#__PURE__*/_jsx("div", {
40
41
  className: getClassName('bpk-modal__header-title-container'),
41
42
  children: /*#__PURE__*/_jsx(Heading, {
42
43
  children: title
43
44
  })
44
- }), /*#__PURE__*/_jsx(BpkCloseButton, {
45
+ }), /*#__PURE__*/_jsx(BpkCloseButton
46
+ // TODO: className to be removed
47
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
48
+ , {
49
+ className: getClassName(`bpk-modal__close-button-style--${modalStyle}`),
45
50
  label: closeLabel,
46
51
  onClick: onClose
47
52
  })]
48
53
  });
49
54
  }
50
55
  return /*#__PURE__*/_jsx("div", {
51
- className: getClassName('bpk-modal__button-container'),
52
- children: /*#__PURE__*/_jsx(BpkCloseButton, {
56
+ className: [getClassName('bpk-modal__button-container'), getClassName(`bpk-modal__button-container-style--${modalStyle}`)].join(' '),
57
+ children: /*#__PURE__*/_jsx(BpkCloseButton
58
+ // TODO: className to be removed
59
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
60
+ , {
61
+ className: getClassName(`bpk-modal__close-button-style--${modalStyle}`),
53
62
  label: closeLabel,
54
63
  onClick: onClose
55
64
  })
@@ -57,8 +66,7 @@ const Header = ({
57
66
  };
58
67
  const Heading = withDefaultProps(BpkText, {
59
68
  textStyle: TEXT_STYLES.label1,
60
- tagName: 'h2',
61
- className: getClassName('bpk-modal__title')
69
+ tagName: 'h2'
62
70
  });
63
71
  // TODO: this check if the browser support the HTML dialog element. We can remove it once we drop support as a business for Safari 14
64
72
  const dialogSupported = typeof HTMLDialogElement === 'function';
@@ -79,6 +87,7 @@ export const BpkModalV2 = props => {
79
87
  fullScreenOnDesktop,
80
88
  id,
81
89
  isOpen,
90
+ modalStyle = MODAL_STYLING.default,
82
91
  noFullScreenOnMobile,
83
92
  onClose,
84
93
  padded,
@@ -131,7 +140,7 @@ export const BpkModalV2 = props => {
131
140
  };
132
141
  }, [id, isOpen, onClose]);
133
142
  const classNames = getClassName('bpk-modal', fullScreenOnDesktop && 'bpk-modal--full-screen-desktop', noFullScreenOnMobile && 'bpk-modal--no-full-screen-mobile', wide && 'bpk-modal--wide');
134
- const contentClassNames = getClassName('bpk-modal__container', fullScreenOnDesktop && 'bpk-modal__container--full-screen-desktop', padded && 'bpk-modal__container--padded');
143
+ const contentClassNames = getClassName('bpk-modal__container', fullScreenOnDesktop && 'bpk-modal__container--full-screen-desktop', padded && 'bpk-modal__container--padded', modalStyle === MODAL_STYLING.surfaceContrast && 'bpk-modal__container--surface-contrast');
135
144
  return isOpen ? /*#__PURE__*/_jsxs("div", {
136
145
  className: getClassName('bpk-modal-wrapper', dialogSupported ? '' : 'bpk-modal-polyfill'),
137
146
  children: [!dialogSupported && /*#__PURE__*/_jsx("div", {
@@ -149,7 +158,8 @@ export const BpkModalV2 = props => {
149
158
  id: `${id}-title`,
150
159
  title: title,
151
160
  closeLabel: closeLabel,
152
- onClose: onClose
161
+ onClose: onClose,
162
+ modalStyle: modalStyle
153
163
  }), /*#__PURE__*/_jsx("div", {
154
164
  className: contentClassNames,
155
165
  children: children
@@ -17,8 +17,8 @@
17
17
  */
18
18
 
19
19
  import BpkNavigationBar, { BAR_STYLES } from "./src/BpkNavigationBar";
20
- import BpkNavigationBarIconButton from "./src/BpkNavigationBarIconButton";
21
20
  import BpkNavigationBarButtonLink from "./src/BpkNavigationBarButtonLink";
21
+ import BpkNavigationBarIconButton from "./src/BpkNavigationBarIconButton";
22
22
  import themeAttributes from "./src/themeAttributes";
23
23
  export { BpkNavigationBarIconButton, BpkNavigationBarButtonLink, themeAttributes, BAR_STYLES };
24
24
  export default BpkNavigationBar;
@@ -16,11 +16,10 @@
16
16
  * limitations under the License.
17
17
  */
18
18
 
19
- import { cssModules } from "../../bpk-react-utils";
20
19
  import BpkText, { TEXT_STYLES } from "../../bpk-component-text";
20
+ import { cssModules } from "../../bpk-react-utils";
21
21
  import STYLES from "./BpkNavigationBar.module.css";
22
- import { jsx as _jsx } from "react/jsx-runtime";
23
- import { jsxs as _jsxs } from "react/jsx-runtime";
22
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
23
  const getClassNames = cssModules(STYLES);
25
24
  export const BAR_STYLES = {
26
25
  default: 'default',
@@ -48,11 +47,13 @@ const BpkNavigationBar = props => {
48
47
  children: [leadingButton && /*#__PURE__*/_jsx("div", {
49
48
  className: getClassNames('bpk-navigation-bar__leading-item', `bpk-navigation-bar__leading-item--${barStyle}`),
50
49
  children: leadingButton
51
- }), typeof title === 'string' ? /*#__PURE__*/_jsx(BpkText, {
52
- id: titleId,
53
- textStyle: TEXT_STYLES.heading5,
50
+ }), typeof title === 'string' ? /*#__PURE__*/_jsx("span", {
54
51
  className: getClassNames('bpk-navigation-bar__title', `bpk-navigation-bar__title--${barStyle}`),
55
- children: title
52
+ children: /*#__PURE__*/_jsx(BpkText, {
53
+ id: titleId,
54
+ textStyle: TEXT_STYLES.heading5,
55
+ children: title
56
+ })
56
57
  }) : title, trailingButton && /*#__PURE__*/_jsx("div", {
57
58
  className: getClassNames('bpk-navigation-bar__trailing-item', `bpk-navigation-bar__trailing-item-${barStyle}`),
58
59
  children: trailingButton
@@ -18,19 +18,19 @@
18
18
 
19
19
  // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
20
20
  import { BpkButtonLink } from "../../bpk-component-link";
21
- import { cssModules } from "../../bpk-react-utils";
22
- import STYLES from "./BpkNavigationBarButtonLink.module.css";
23
21
  import { BAR_STYLES } from "./BpkNavigationBar";
24
22
  import { jsx as _jsx } from "react/jsx-runtime";
25
- const getClassName = cssModules(STYLES);
26
23
  const BpkNavigationBarButtonLink = ({
27
24
  barStyle = BAR_STYLES.default,
28
25
  children,
29
26
  className,
30
27
  ...rest
31
- }) => /*#__PURE__*/_jsx(BpkButtonLink, {
32
- className: getClassName('bpk-navigation-bar-button-link', `bpk-navigation-bar-button-link--${barStyle}`, className),
33
- ...rest,
34
- children: children
28
+ }) => /*#__PURE__*/_jsx("span", {
29
+ className: className,
30
+ children: /*#__PURE__*/_jsx(BpkButtonLink, {
31
+ alternate: barStyle === BAR_STYLES.onDark,
32
+ ...rest,
33
+ children: children
34
+ })
35
35
  });
36
36
  export default BpkNavigationBarButtonLink;
@@ -17,20 +17,20 @@
17
17
  */
18
18
 
19
19
  // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
20
- import BpkIconButton from "../../bpk-component-close-button";
21
- import { cssModules } from "../../bpk-react-utils";
22
- import STYLES from "./BpkNavigationBarIconButton.module.css";
20
+ import BpkCloseButton from "../../bpk-component-close-button";
23
21
  import { BAR_STYLES } from "./BpkNavigationBar";
24
22
  import { jsx as _jsx } from "react/jsx-runtime";
25
- const getClassName = cssModules(STYLES);
26
23
  const BpkNavigationBarIconButton = ({
27
24
  barStyle = BAR_STYLES.default,
28
25
  className,
29
26
  icon,
30
27
  ...rest
31
- }) => /*#__PURE__*/_jsx(BpkIconButton, {
32
- customIcon: icon,
33
- className: getClassName('bpk-navigation-bar-icon-button', `bpk-navigation-bar-icon-button--${barStyle}`, className),
34
- ...rest
28
+ }) => /*#__PURE__*/_jsx("span", {
29
+ className: className,
30
+ children: /*#__PURE__*/_jsx(BpkCloseButton, {
31
+ customIcon: icon,
32
+ onDark: barStyle === BAR_STYLES.onDark,
33
+ ...rest
34
+ })
35
35
  });
36
36
  export default BpkNavigationBarIconButton;
@@ -16,8 +16,8 @@
16
16
  * limitations under the License.
17
17
  */
18
18
 
19
- import BpkNudger from "./src/BpkNudger";
20
19
  import BpkConfigurableNudger from "./src/BpkConfigurableNudger";
20
+ import BpkNudger from "./src/BpkNudger";
21
21
  import themeAttributes from "./src/themeAttributes";
22
22
  export default BpkNudger;
23
23
  export { themeAttributes, BpkConfigurableNudger };
@@ -24,8 +24,7 @@ import MinusIcon from "../../bpk-component-icon/sm/minus";
24
24
  import PlusIcon from "../../bpk-component-icon/sm/plus";
25
25
  import { cssModules } from "../../bpk-react-utils";
26
26
  import STYLES from "./BpkNudger.module.css";
27
- import { jsx as _jsx } from "react/jsx-runtime";
28
- import { jsxs as _jsxs } from "react/jsx-runtime";
27
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
28
  const getClassName = cssModules(STYLES);
30
29
  const AlignedMinusIcon = withButtonAlignment(MinusIcon);
31
30
  const AlignedPlusIcon = withButtonAlignment(PlusIcon);
@@ -60,9 +59,15 @@ const BpkConfigurableNudger = ({
60
59
  onClick: () => onChange(decrementValue(value)),
61
60
  disabled: minButtonDisabled,
62
61
  title: decreaseButtonLabel,
63
- "aria-controls": id,
62
+ "aria-controls": id
63
+ // TODO: className to be removed
64
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
65
+ ,
64
66
  className: getClassName('bpk-nudger__button'),
65
- children: /*#__PURE__*/_jsx(AlignedMinusIcon, {
67
+ children: /*#__PURE__*/_jsx(AlignedMinusIcon
68
+ // TODO: className to be removed
69
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
70
+ , {
66
71
  className: minusIconClassNames
67
72
  })
68
73
  }), /*#__PURE__*/_jsx("input", {
@@ -80,9 +85,15 @@ const BpkConfigurableNudger = ({
80
85
  onClick: () => onChange(incrementValue(value)),
81
86
  disabled: maxButtonDisabled,
82
87
  title: increaseButtonLabel,
83
- "aria-controls": id,
88
+ "aria-controls": id
89
+ // TODO: className to be removed
90
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
91
+ ,
84
92
  className: getClassName('bpk-nudger__button'),
85
- children: /*#__PURE__*/_jsx(AlignedPlusIcon, {
93
+ children: /*#__PURE__*/_jsx(AlignedPlusIcon
94
+ // TODO: className to be removed
95
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
96
+ , {
86
97
  className: plusIconClassNames
87
98
  })
88
99
  })]
@@ -16,14 +16,13 @@
16
16
  * limitations under the License.
17
17
  */
18
18
 
19
- import { cssModules } from "../../bpk-react-utils";
20
- import BpkText, { TEXT_STYLES } from "../../bpk-component-text";
21
19
  // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
22
20
  import BpkLabel from "../../bpk-component-label";
21
+ import BpkText, { TEXT_STYLES } from "../../bpk-component-text";
22
+ import { cssModules } from "../../bpk-react-utils";
23
23
  import BpkConfigurableNudger from "./BpkConfigurableNudger";
24
24
  import STYLES from "./BpkNudger.module.css";
25
- import { jsx as _jsx } from "react/jsx-runtime";
26
- import { jsxs as _jsxs } from "react/jsx-runtime";
25
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
27
26
  const getClassName = cssModules(STYLES);
28
27
  const compareValues = (a, b) => a - b;
29
28
  const incrementValue = currentValue => currentValue + 1;
@@ -41,10 +40,12 @@ const BpkNudger = ({
41
40
  const classNames = getClassName(title && 'bpk-nudger__container');
42
41
  return /*#__PURE__*/_jsxs("div", {
43
42
  className: classNames,
44
- children: [title && /*#__PURE__*/_jsxs(BpkLabel, {
45
- htmlFor: id,
43
+ children: [title && /*#__PURE__*/_jsxs("div", {
46
44
  className: getClassName('bpk-nudger__label'),
47
- children: [icon, /*#__PURE__*/_jsxs("span", {
45
+ children: [/*#__PURE__*/_jsx(BpkLabel, {
46
+ htmlFor: id,
47
+ children: icon
48
+ }), /*#__PURE__*/_jsxs("span", {
48
49
  // For a11y on IOS, role='text' forces label to be read in full. More info: https://axesslab.com/text-splitting/
49
50
  // eslint-disable-next-line jsx-a11y/aria-role
50
51
  role: "text",
@@ -52,9 +53,11 @@ const BpkNudger = ({
52
53
  children: [/*#__PURE__*/_jsx(BpkText, {
53
54
  textStyle: TEXT_STYLES.heading5,
54
55
  children: title
55
- }), subtitle && /*#__PURE__*/_jsx(BpkText, {
56
+ }), subtitle && /*#__PURE__*/_jsx("span", {
56
57
  className: getClassName('bpk-nudger__label--subtitle'),
57
- children: subtitle
58
+ children: /*#__PURE__*/_jsx(BpkText, {
59
+ children: subtitle
60
+ })
58
61
  })]
59
62
  })]
60
63
  }), /*#__PURE__*/_jsx(BpkConfigurableNudger, {
@@ -62,7 +65,10 @@ const BpkNudger = ({
62
65
  compareValues: compareValues,
63
66
  incrementValue: incrementValue,
64
67
  decrementValue: decrementValue,
65
- formatValue: formatValue,
68
+ formatValue: formatValue
69
+ // TODO: className to be removed
70
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
71
+ ,
66
72
  className: className,
67
73
  buttonType: buttonType,
68
74
  id: id,
@@ -15,4 +15,4 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */
18
- html[dir=rtl] .bpk-nudger{display:flex;flex-direction:row-reverse}.bpk-nudger__button{position:relative}.bpk-nudger__input{display:inline-block;padding:.5rem 0;border:none;color:#161616;text-align:center;vertical-align:middle;margin:0;font-size:1rem;line-height:1.25rem;font-weight:700}.bpk-nudger__input--secondary-on-dark{background-color:rgba(0,0,0,0);color:#fff}.bpk-nudger__input--numeric{width:2.5rem}.bpk-nudger__container{display:flex;justify-content:space-between;align-items:center}.bpk-nudger__label{display:flex;gap:.5rem}.bpk-nudger__label--title-subtitle{display:flex;flex-direction:column;justify-content:space-between}.bpk-nudger__label--subtitle{color:#626971}
18
+ html[dir=rtl] .bpk-nudger{display:flex;flex-direction:row-reverse}.bpk-nudger__button{position:relative}.bpk-nudger__input{display:inline-block;padding:.5rem 0;border:none;color:#161616;text-align:center;vertical-align:middle;margin:0;font-size:1rem;line-height:1.25rem;font-weight:700}.bpk-nudger__input--secondary-on-dark{background-color:rgba(0,0,0,0);color:#fff}.bpk-nudger__input--numeric{width:2.5rem}.bpk-nudger__container{display:flex;justify-content:space-between;align-items:center}.bpk-nudger__label{display:flex;gap:.5rem}.bpk-nudger__label--title-subtitle{display:inline-flex;flex-direction:column;justify-content:space-between}.bpk-nudger__label--subtitle{color:#626971}
@@ -18,8 +18,7 @@
18
18
 
19
19
  import { cssModules } from "../../bpk-react-utils";
20
20
  import STYLES from "./BpkOverlay.module.css";
21
- import { jsx as _jsx } from "react/jsx-runtime";
22
- import { jsxs as _jsxs } from "react/jsx-runtime";
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
22
  const getClassName = cssModules(STYLES);
24
23
  export const OVERLAY_TYPES = {
25
24
  solidLow: 'solidLow',
@@ -18,8 +18,7 @@
18
18
  import { cssModules } from "../../bpk-react-utils";
19
19
  import NavButton, { DIRECTIONS } from "./NavButton";
20
20
  import STYLES from "./BpkPageIndicator.module.css";
21
- import { jsx as _jsx } from "react/jsx-runtime";
22
- import { jsxs as _jsxs } from "react/jsx-runtime";
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
22
  const getClassName = cssModules(STYLES);
24
23
  const DISPLAYED_TOTAL = 5;
25
24
  const START_SCROLL_INDEX = Math.floor(DISPLAYED_TOTAL / 2);
@@ -15,4 +15,4 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */
18
- .bpk-page-indicator{display:flex;width:100%;justify-content:center;align-items:center}.bpk-page-indicator__showNav{justify-content:space-between}.bpk-page-indicator__container{max-width:5rem;min-height:.5rem;overflow:hidden}.bpk-page-indicator__indicators-container{--direction: -1;transform:translateX(calc(var(--direction) * var(--scroll-index, 0) * 1rem));transition:transform 200ms ease-in-out;white-space:nowrap}html[dir=rtl] .bpk-page-indicator__indicators-container{--direction: 1}.bpk-page-indicator__indicator{display:inline-block;width:.5rem;height:.5rem;padding:0;border:none;border-radius:50%;margin-inline:.25rem}.bpk-page-indicator__indicator--default{background-color:#c1c7cf}.bpk-page-indicator__indicator--overImage{background-color:rgba(255,255,255,.5)}.bpk-page-indicator__indicator--active-default{background-color:#626971}.bpk-page-indicator__indicator--active-overImage{background-color:#fff}
18
+ .bpk-page-indicator{display:flex;width:100%;justify-content:center;align-items:center}.bpk-page-indicator__showNav{justify-content:space-between}.bpk-page-indicator__container{max-width:5rem;min-height:.5rem;overflow:hidden}.bpk-page-indicator__indicators-container{--direction: -1;transform:translateX(calc(var(--direction) * var(--scroll-index, 0) * 1rem));transition:transform 200ms ease-in-out;white-space:nowrap}html[dir=rtl] .bpk-page-indicator__indicators-container{--direction: 1}.bpk-page-indicator__indicator{display:inline-block;width:.5rem;height:.5rem;padding:0;border:none;border-radius:50%;margin-inline:.25rem}.bpk-page-indicator__indicator:hover{cursor:pointer}.bpk-page-indicator__indicator--default{background-color:#c1c7cf}.bpk-page-indicator__indicator--overImage{background-color:rgba(255,255,255,.5)}.bpk-page-indicator__indicator--active-default{background-color:#626971;pointer-events:none}.bpk-page-indicator__indicator--active-overImage{background-color:#fff;pointer-events:none}
@@ -15,8 +15,8 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */import PropTypes from 'prop-types';
18
- import { withButtonAlignment, withRtlSupport } from "../../bpk-component-icon";
19
18
  import { BUTTON_TYPES, BpkButtonV2 } from "../../bpk-component-button";
19
+ import { withButtonAlignment, withRtlSupport } from "../../bpk-component-icon";
20
20
  import LeftArrowIcon from "../../bpk-component-icon/lg/chevron-left";
21
21
  import RightArrowIcon from "../../bpk-component-icon/lg/chevron-right";
22
22
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -21,8 +21,7 @@ import { cssModules } from "../../bpk-react-utils";
21
21
  import BpkPaginationList from "./BpkPaginationList";
22
22
  import BpkPaginationNudger from "./BpkPaginationNudger";
23
23
  import STYLES from "./BpkPagination.module.css";
24
- import { jsx as _jsx } from "react/jsx-runtime";
25
- import { jsxs as _jsxs } from "react/jsx-runtime";
24
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
25
  const getClassName = cssModules(STYLES);
27
26
  const handlePageChange = (onPageChange, pageCount) => nextPageIndex => {
28
27
  if (onPageChange && nextPageIndex < pageCount && nextPageIndex >= 0) {
@@ -18,8 +18,8 @@
18
18
 
19
19
  import PropTypes from 'prop-types';
20
20
  import { cssModules } from "../../bpk-react-utils";
21
- import BpkPaginationPage from "./BpkPaginationPage";
22
21
  import BpkPaginationBreak from "./BpkPaginationBreak";
22
+ import BpkPaginationPage from "./BpkPaginationPage";
23
23
  import STYLES from "./BpkPaginationList.module.css";
24
24
  import { jsx as _jsx } from "react/jsx-runtime";
25
25
  const getClassName = cssModules(STYLES);
@@ -17,20 +17,25 @@
17
17
  */
18
18
 
19
19
  import PropTypes from 'prop-types';
20
- import { cssModules } from "../../bpk-react-utils";
21
20
  import { BpkButtonV2, BUTTON_TYPES } from "../../bpk-component-button";
22
21
  import { withRtlSupport } from "../../bpk-component-icon";
23
22
  import ArrowLeftIcon from "../../bpk-component-icon/sm/arrow-left";
24
23
  import ArrowRightIcon from "../../bpk-component-icon/sm/arrow-right";
24
+ import { cssModules } from "../../bpk-react-utils";
25
25
  import STYLES from "./BpkPaginationNudger.module.css";
26
- import { jsx as _jsx } from "react/jsx-runtime";
27
- import { jsxs as _jsxs } from "react/jsx-runtime";
26
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
27
  const getClassName = cssModules(STYLES);
29
28
  const AlignedArrowLeftIcon = withRtlSupport(ArrowLeftIcon);
30
29
  const AlignedArrowRightIcon = withRtlSupport(ArrowRightIcon);
31
- const nudgerIcon = forward => forward ? /*#__PURE__*/_jsx(AlignedArrowRightIcon, {
30
+ const nudgerIcon = forward => forward ? /*#__PURE__*/_jsx(AlignedArrowRightIcon
31
+ // TODO: className to be removed
32
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
33
+ , {
32
34
  className: getClassName('bpk-pagination-nudger__icon')
33
- }) : /*#__PURE__*/_jsx(AlignedArrowLeftIcon, {
35
+ }) : /*#__PURE__*/_jsx(AlignedArrowLeftIcon
36
+ // TODO: className to be removed
37
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
38
+ , {
34
39
  className: getClassName('bpk-pagination-nudger__icon')
35
40
  });
36
41
  const BpkPaginationNudger = props => {
@@ -43,7 +48,10 @@ const BpkPaginationNudger = props => {
43
48
  return /*#__PURE__*/_jsxs(BpkButtonV2, {
44
49
  type: BUTTON_TYPES.link,
45
50
  onClick: onNudge,
46
- disabled: disabled,
51
+ disabled: disabled
52
+ // TODO: className to be removed
53
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
54
+ ,
47
55
  className: getClassName('bpk-pagination-nudger'),
48
56
  children: [nudgerIcon(forward), /*#__PURE__*/_jsx("span", {
49
57
  className: getClassName('bpk-pagination-nudger__text--hidden'),
@@ -35,7 +35,10 @@ const BpkPaginationPage = props => {
35
35
  }
36
36
  return /*#__PURE__*/_jsx(BpkButtonV2, {
37
37
  type: !isSelected ? BUTTON_TYPES.primaryOnDark : BUTTON_TYPES.primary,
38
- onClick: onSelect,
38
+ onClick: onSelect
39
+ // TODO: className to be removed
40
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
41
+ ,
39
42
  className: classNames.join(' '),
40
43
  "aria-label": pageLabel(page, isSelected),
41
44
  "aria-current": isSelected,
@@ -15,13 +15,12 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */import PropTypes from 'prop-types';
18
- import { cssModules } from "../../bpk-react-utils";
19
18
  import BpkInput, { INPUT_TYPES } from "../../bpk-component-input";
20
19
  import BpkLabel from "../../bpk-component-label";
21
20
  import BpkSelect from "../../bpk-component-select";
21
+ import { cssModules } from "../../bpk-react-utils";
22
22
  import STYLES from "./BpkPhoneInput.module.css";
23
- import { jsx as _jsx } from "react/jsx-runtime";
24
- import { jsxs as _jsxs } from "react/jsx-runtime";
23
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
24
  const getClassName = cssModules(STYLES);
26
25
  const BpkPhoneInput = props => {
27
26
  const {
@@ -87,12 +86,17 @@ const BpkPhoneInput = props => {
87
86
  children: [/*#__PURE__*/_jsxs("div", {
88
87
  children: [/*#__PURE__*/_jsx(BpkLabel, {
89
88
  htmlFor: dialingCodeProps.id,
90
- disabled: disabled,
89
+ disabled: disabled
90
+ // TODO: className to be removed
91
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
92
+ ,
91
93
  className: getClassName('bpk-phone-input__label'),
92
94
  children: dialingCodeProps.label
93
95
  }), /*#__PURE__*/_jsx(BpkSelect, {
94
96
  ...commonProps,
95
97
  ...dialingCodeProps,
98
+ // TODO: className to be removed
99
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
96
100
  className: getClassName(dialingCodeProps.className),
97
101
  wrapperClassName: getClassName(dialingCodeProps.wrapperClassName),
98
102
  value: dialingCode,
@@ -114,7 +118,10 @@ const BpkPhoneInput = props => {
114
118
  className: getClassName('bpk-phone-input__phone-number'),
115
119
  children: [/*#__PURE__*/_jsx(BpkLabel, {
116
120
  htmlFor: id,
117
- disabled: disabled,
121
+ disabled: disabled
122
+ // TODO: className to be removed
123
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
124
+ ,
118
125
  className: getClassName('bpk-phone-input__label'),
119
126
  children: label
120
127
  }), /*#__PURE__*/_jsx(BpkInput, {
@@ -124,7 +131,10 @@ const BpkPhoneInput = props => {
124
131
  name: name,
125
132
  value: displayValue,
126
133
  type: INPUT_TYPES.tel,
127
- onChange: handleChange,
134
+ onChange: handleChange
135
+ // TODO: className to be removed
136
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
137
+ ,
128
138
  className: getClassName(className)
129
139
  })]
130
140
  })]