@skyscanner/backpack-web 33.4.0 → 33.6.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 (169) hide show
  1. package/bpk-component-accordion/index.js +1 -1
  2. package/bpk-component-accordion/src/BpkAccordionItem.js +12 -12
  3. package/bpk-component-accordion/src/BpkAccordionItem.module.css +1 -1
  4. package/bpk-component-autosuggest/src/BpkAutosuggestSuggestion.js +4 -1
  5. package/bpk-component-banner-alert/index.js +1 -1
  6. package/bpk-component-banner-alert/src/AnimateAndFade.js +33 -31
  7. package/bpk-component-banner-alert/src/BpkBannerAlertInner.js +11 -4
  8. package/bpk-component-barchart/src/BpkBarchart.js +8 -8
  9. package/bpk-component-bottom-sheet/src/BpkBottomSheet.js +3 -3
  10. package/bpk-component-breadcrumb/src/BpkBreadcrumbItem.js +17 -12
  11. package/bpk-component-breadcrumb/src/BpkBreadcrumbItem.module.css +1 -1
  12. package/bpk-component-breakpoint/src/BpkBreakpoint.js +20 -4
  13. package/bpk-component-breakpoint/src/useMediaQuery.js +10 -7
  14. package/bpk-component-button/index.js +5 -5
  15. package/bpk-component-button/src/BpkButtonDestructive.js +10 -9
  16. package/bpk-component-button/src/BpkButtonFeatured.js +10 -9
  17. package/bpk-component-button/src/BpkButtonLink.js +11 -10
  18. package/bpk-component-button/src/BpkButtonLinkOnDark.js +11 -10
  19. package/bpk-component-button/src/BpkButtonPrimary.js +2 -2
  20. package/bpk-component-button/src/BpkButtonPrimaryOnDark.js +10 -9
  21. package/bpk-component-button/src/BpkButtonPrimaryOnLight.js +10 -9
  22. package/bpk-component-button/src/BpkButtonSecondary.js +10 -10
  23. package/bpk-component-button/src/BpkButtonSecondaryOnDark.js +10 -9
  24. package/bpk-component-calendar/index.js +1 -1
  25. package/bpk-component-calendar/src/BpkCalendarContainer.js +3 -3
  26. package/bpk-component-calendar/src/BpkCalendarGrid.js +2 -2
  27. package/bpk-component-calendar/src/BpkCalendarGrid.module.css +1 -1
  28. package/bpk-component-calendar/src/BpkCalendarGridHeader.js +4 -1
  29. package/bpk-component-calendar/src/BpkCalendarGridTransition.js +5 -2
  30. package/bpk-component-calendar/src/BpkCalendarNav.js +9 -3
  31. package/bpk-component-calendar/src/Week.js +6 -3
  32. package/bpk-component-calendar/src/composeCalendar.js +8 -2
  33. package/bpk-component-calendar/src/date-utils.js +14 -14
  34. package/bpk-component-card/src/BpkDividedCard.js +18 -13
  35. package/bpk-component-card-button/src/BpkSaveButton.js +13 -4
  36. package/bpk-component-chip/index.d.ts +3 -5
  37. package/bpk-component-chip/index.js +3 -2
  38. package/bpk-component-chip/src/BpkDismissibleChip.js +5 -3
  39. package/bpk-component-chip/src/BpkIconChip.d.ts +25 -0
  40. package/bpk-component-chip/src/BpkIconChip.js +31 -0
  41. package/bpk-component-chip/src/BpkSelectableChip.d.ts +0 -2
  42. package/bpk-component-chip/src/BpkSelectableChip.js +4 -3
  43. package/bpk-component-chip/src/BpkSelectableChip.module.css +1 -1
  44. package/bpk-component-chip/src/commonTypes.d.ts +1 -1
  45. package/bpk-component-chip/src/commonTypes.js +1 -24
  46. package/bpk-component-close-button/src/BpkCloseButton.js +7 -4
  47. package/bpk-component-close-button/src/BpkCloseButton.module.css +1 -1
  48. package/bpk-component-content-cards/src/BpkContentCard.js +8 -2
  49. package/bpk-component-datatable/src/BpkDataTable.js +1 -1
  50. package/bpk-component-datatable/src/BpkDataTableHeader.js +12 -8
  51. package/bpk-component-datatable/src/BpkDataTableHeader.module.css +1 -1
  52. package/bpk-component-datepicker/src/BpkDatepicker.js +2 -7
  53. package/bpk-component-description-list/index.js +1 -1
  54. package/bpk-component-description-list/src/ComponentFactory.js +10 -5
  55. package/bpk-component-dialog/src/BpkDialog.js +6 -4
  56. package/bpk-component-dialog/src/BpkDialog.module.css +1 -1
  57. package/bpk-component-dialog/src/BpkDialogInner.js +6 -3
  58. package/bpk-component-drawer/src/BpkDrawer.js +1 -4
  59. package/bpk-component-drawer/src/BpkDrawerContent.js +7 -5
  60. package/bpk-component-fieldset/src/BpkFieldset.js +9 -7
  61. package/bpk-component-flare/index.js +2 -2
  62. package/bpk-component-flare/src/BpkContentBubble.js +4 -1
  63. package/bpk-component-flare/src/BpkFlareBar.js +13 -4
  64. package/bpk-component-floating-notification/src/BpkFloatingNotification.js +8 -2
  65. package/bpk-component-floating-notification/src/BpkFloatingNotification.module.css +1 -1
  66. package/bpk-component-form-validation/src/BpkFormValidation.js +5 -4
  67. package/bpk-component-graphic-promotion/src/BpkGraphicPromo.js +9 -11
  68. package/bpk-component-graphic-promotion/src/BpkGraphicPromo.module.css +1 -1
  69. package/bpk-component-grid-toggle/src/BpkGridToggle.js +8 -6
  70. package/bpk-component-horizontal-nav/src/BpkHorizontalNav.js +16 -14
  71. package/bpk-component-horizontal-nav/src/BpkHorizontalNav.module.css +1 -1
  72. package/bpk-component-horizontal-nav/src/BpkHorizontalNavItem.js +2 -2
  73. package/bpk-component-icon/index.js +1 -1
  74. package/bpk-component-icon/lg/ai.js +1 -2
  75. package/bpk-component-icon/lg/dot.js +20 -0
  76. package/bpk-component-icon/sm/ai.js +1 -2
  77. package/bpk-component-icon/sm/dot.js +20 -0
  78. package/bpk-component-icon/src/classNameModifierHOCFactory.js +3 -0
  79. package/bpk-component-image/index.js +2 -2
  80. package/bpk-component-image/src/BpkBackgroundImage.js +2 -1
  81. package/bpk-component-image/src/BpkImage.js +2 -1
  82. package/bpk-component-infinite-scroll/src/withInfiniteScroll.js +3 -3
  83. package/bpk-component-info-banner/src/AnimateAndFade.js +33 -31
  84. package/bpk-component-info-banner/src/BpkInfoBanner.module.css +1 -1
  85. package/bpk-component-info-banner/src/BpkInfoBannerInner.js +16 -12
  86. package/bpk-component-input/index.js +1 -1
  87. package/bpk-component-input/src/BpkClearButton.js +3 -1
  88. package/bpk-component-input/src/BpkInput.js +4 -1
  89. package/bpk-component-input/src/withOpenEvents.js +4 -1
  90. package/bpk-component-link/index.js +2 -2
  91. package/bpk-component-list/src/BpkList.js +2 -2
  92. package/bpk-component-loading-button/src/BpkLoadingButton.js +6 -3
  93. package/bpk-component-map/index.js +4 -4
  94. package/bpk-component-map/src/BpkIconMarker.js +1 -1
  95. package/bpk-component-map/src/BpkMap.js +4 -3
  96. package/bpk-component-map/src/BpkPriceMarker.js +7 -5
  97. package/bpk-component-map/src/BpkPriceMarkerV2/BpkPriceMarker.js +1 -1
  98. package/bpk-component-mobile-scroll-container/src/BpkMobileScrollContainer.js +0 -8
  99. package/bpk-component-mobile-scroll-container/src/BpkMobileScrollContainer.module.css +1 -1
  100. package/bpk-component-modal/index.js +4 -3
  101. package/bpk-component-modal/src/BpkModal.d.ts +2 -1
  102. package/bpk-component-modal/src/BpkModal.js +4 -2
  103. package/bpk-component-modal/src/BpkModalInner.d.ts +2 -0
  104. package/bpk-component-modal/src/BpkModalInner.js +24 -8
  105. package/bpk-component-modal/src/BpkModalInner.module.css +1 -1
  106. package/bpk-component-modal/src/BpkModalV2/BpKModal.module.css +1 -1
  107. package/bpk-component-modal/src/BpkModalV2/BpkModal.d.ts +2 -0
  108. package/bpk-component-modal/src/BpkModalV2/BpkModal.js +19 -8
  109. package/bpk-component-navigation-bar/index.js +1 -1
  110. package/bpk-component-navigation-bar/src/BpkNavigationBar.js +7 -5
  111. package/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.js +7 -7
  112. package/bpk-component-navigation-bar/src/BpkNavigationBarIconButton.js +8 -8
  113. package/bpk-component-nudger/index.js +1 -1
  114. package/bpk-component-nudger/src/BpkConfigurableNudger.js +16 -4
  115. package/bpk-component-nudger/src/BpkNudger.js +15 -8
  116. package/bpk-component-nudger/src/BpkNudger.module.css +1 -1
  117. package/bpk-component-page-indicator/src/BpkPageIndicator.module.css +1 -1
  118. package/bpk-component-page-indicator/src/NavButton.js +1 -1
  119. package/bpk-component-pagination/src/BpkPaginationList.js +1 -1
  120. package/bpk-component-pagination/src/BpkPaginationNudger.js +13 -4
  121. package/bpk-component-pagination/src/BpkPaginationPage.js +4 -1
  122. package/bpk-component-phone-input/src/BpkPhoneInput.js +19 -10
  123. package/bpk-component-popover/src/BpkPopover.js +6 -3
  124. package/bpk-component-popover/src/BpkPopoverPortal.js +5 -2
  125. package/bpk-component-popover/src/keyboardFocusScope.js +1 -1
  126. package/bpk-component-price/src/BpkPrice.js +17 -5
  127. package/bpk-component-rating/src/BpkRating.js +17 -5
  128. package/bpk-component-rtl-toggle/src/BpkRtlToggle.js +0 -4
  129. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGrid.js +6 -3
  130. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGridList.js +6 -3
  131. package/bpk-component-section-header/src/BpkSectionHeader.js +6 -5
  132. package/bpk-component-section-header/src/BpkSectionHeader.module.css +1 -1
  133. package/bpk-component-section-list/index.js +1 -1
  134. package/bpk-component-section-list/src/BpkSectionListItem.js +8 -6
  135. package/bpk-component-section-list/src/BpkSectionListItem.module.css +1 -1
  136. package/bpk-component-section-list/src/BpkSectionListSection.js +1 -1
  137. package/{bpk-component-datepicker/src/BpkDatepicker.module.css → bpk-component-skeleton/index.js} +8 -5
  138. package/bpk-component-skeleton/src/BpkBaseSkeleton.js +30 -0
  139. package/bpk-component-skeleton/src/BpkBaseSkeleton.module.css +18 -0
  140. package/bpk-component-skeleton/src/BpkSkeleton.js +38 -0
  141. package/bpk-component-skeleton/src/BpkSkeleton.module.css +18 -0
  142. package/bpk-component-skeleton/src/common-types.js +33 -0
  143. package/bpk-component-spinner/index.js +3 -3
  144. package/bpk-component-spinner/src/BpkExtraLargeSpinner.js +6 -4
  145. package/bpk-component-spinner/src/BpkLargeSpinner.js +6 -4
  146. package/bpk-component-spinner/src/BpkSpinner.js +6 -4
  147. package/bpk-component-spinner/src/BpkSpinner.module.css +1 -1
  148. package/bpk-component-split-input/src/BpkInputField.js +2 -2
  149. package/bpk-component-split-input/src/BpkSplitInput.js +3 -3
  150. package/bpk-component-star-rating/index.js +4 -4
  151. package/bpk-component-star-rating/src/BpkInteractiveStar.js +6 -3
  152. package/bpk-component-star-rating/src/BpkInteractiveStarRating.js +1 -1
  153. package/bpk-component-star-rating/src/BpkStar.js +18 -18
  154. package/bpk-component-star-rating/src/BpkStar.module.css +1 -1
  155. package/bpk-component-swap-button/src/BpkSwapButton.js +2 -1
  156. package/bpk-component-table/index.js +2 -2
  157. package/bpk-component-text/src/BpkText.js +10 -5
  158. package/bpk-component-theme-toggle/src/BpkThemeToggle.js +5 -3
  159. package/bpk-component-theme-toggle/src/updateOnThemeChange.js +1 -1
  160. package/bpk-component-tooltip/src/BpkTooltipPortal.js +4 -1
  161. package/bpk-mixins/_chips.scss +9 -0
  162. package/bpk-react-utils/index.js +3 -3
  163. package/bpk-react-utils/src/withDefaultProps.js +4 -1
  164. package/bpk-scrim-utils/src/withScrimmedPortal.js +1 -1
  165. package/bpk-theming/src/BpkThemeProvider.js +1 -1
  166. package/package.json +2 -2
  167. package/unstable__bpk-mixins/_chips.scss +9 -0
  168. package/bpk-component-button/src/commonButtonTests.js +0 -133
  169. package/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.module.css +0 -18
@@ -15,10 +15,10 @@
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
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  const getClassName = cssModules(STYLES);
@@ -84,14 +84,18 @@ const BpkPhoneInput = props => {
84
84
  ...wrapperProps,
85
85
  className: getClassName('bpk-phone-input', wrapperProps.className),
86
86
  children: [/*#__PURE__*/_jsxs("div", {
87
- children: [/*#__PURE__*/_jsx(BpkLabel, {
88
- htmlFor: dialingCodeProps.id,
89
- disabled: disabled,
87
+ children: [/*#__PURE__*/_jsx("div", {
90
88
  className: getClassName('bpk-phone-input__label'),
91
- children: dialingCodeProps.label
89
+ children: /*#__PURE__*/_jsx(BpkLabel, {
90
+ htmlFor: dialingCodeProps.id,
91
+ disabled: disabled,
92
+ children: dialingCodeProps.label
93
+ })
92
94
  }), /*#__PURE__*/_jsx(BpkSelect, {
93
95
  ...commonProps,
94
96
  ...dialingCodeProps,
97
+ // TODO: className to be removed
98
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
95
99
  className: getClassName(dialingCodeProps.className),
96
100
  wrapperClassName: getClassName(dialingCodeProps.wrapperClassName),
97
101
  value: dialingCode,
@@ -111,11 +115,13 @@ const BpkPhoneInput = props => {
111
115
  })]
112
116
  }), /*#__PURE__*/_jsxs("div", {
113
117
  className: getClassName('bpk-phone-input__phone-number'),
114
- children: [/*#__PURE__*/_jsx(BpkLabel, {
115
- htmlFor: id,
116
- disabled: disabled,
118
+ children: [/*#__PURE__*/_jsx("div", {
117
119
  className: getClassName('bpk-phone-input__label'),
118
- children: label
120
+ children: /*#__PURE__*/_jsx(BpkLabel, {
121
+ htmlFor: id,
122
+ disabled: disabled,
123
+ children: label
124
+ })
119
125
  }), /*#__PURE__*/_jsx(BpkInput, {
120
126
  ...commonProps,
121
127
  ...rest,
@@ -123,7 +129,10 @@ const BpkPhoneInput = props => {
123
129
  name: name,
124
130
  value: displayValue,
125
131
  type: INPUT_TYPES.tel,
126
- onChange: handleChange,
132
+ onChange: handleChange
133
+ // TODO: className to be removed
134
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
135
+ ,
127
136
  className: getClassName(className)
128
137
  })]
129
138
  })]
@@ -15,9 +15,9 @@
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 BpkText, { TEXT_STYLES } from "../../bpk-component-text";
19
- import { BpkButtonLink } from "../../bpk-component-link";
20
18
  import BpkCloseButton from "../../bpk-component-close-button";
19
+ import { BpkButtonLink } from "../../bpk-component-link";
20
+ import BpkText, { TEXT_STYLES } from "../../bpk-component-text";
21
21
  import { TransitionInitialMount, cssModules } from "../../bpk-react-utils";
22
22
  import { ARROW_ID } from "./constants";
23
23
  import STYLES from "./BpkPopover.module.css";
@@ -85,7 +85,10 @@ const BpkPopover = props => {
85
85
  id: labelId,
86
86
  textStyle: TEXT_STYLES.label1,
87
87
  children: label
88
- }), "\xA0", closeButtonIcon ? /*#__PURE__*/_jsx(BpkCloseButton, {
88
+ }), "\xA0", closeButtonIcon ? /*#__PURE__*/_jsx(BpkCloseButton
89
+ // TODO: className to be removed
90
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
91
+ , {
89
92
  className: getClassName('bpk-popover__close-button'),
90
93
  label: closeButtonText,
91
94
  onClick: bindEventSource(EVENT_SOURCES.CLOSE_BUTTON, props.onClose),
@@ -19,8 +19,8 @@ import { Component } from 'react';
19
19
  import { createPopper } from '@popperjs/core';
20
20
  import focusStore from 'a11y-focus-store';
21
21
  import { Portal, cssModules } from "../../bpk-react-utils";
22
- import keyboardFocusScope from "./keyboardFocusScope";
23
22
  import BpkPopover from "./BpkPopover";
23
+ import keyboardFocusScope from "./keyboardFocusScope";
24
24
  import STYLES from "./BpkPopover.module.css";
25
25
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
26
26
  const getClassName = cssModules(STYLES);
@@ -148,7 +148,10 @@ class BpkPopoverPortal extends Component {
148
148
  }
149
149
  return /*#__PURE__*/_jsxs(_Fragment, {
150
150
  children: [typeof target !== 'function' && target, /*#__PURE__*/_jsx(Portal, {
151
- beforeClose: this.beforeClose,
151
+ beforeClose: this.beforeClose
152
+ // TODO: className to be removed
153
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
154
+ ,
152
155
  className: classNames.join(' '),
153
156
  isOpen: isOpen,
154
157
  onClose: this.onClose,
@@ -21,8 +21,8 @@
21
21
  // it only prevents it leaving due to keyboard events.
22
22
  // Clicks outside the target element will move focus as normal.
23
23
 
24
- import tabbable from 'tabbable';
25
24
  import focusin from 'focusin';
25
+ import tabbable from 'tabbable';
26
26
  let polyfilled = false;
27
27
  let focusTrapped = false;
28
28
  const init = element => {
@@ -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 { cssModules } from "../../bpk-react-utils";
19
18
  import BpkText, { TEXT_STYLES } from "../../bpk-component-text";
19
+ import { cssModules } from "../../bpk-react-utils";
20
20
  import { SIZES, ALIGNS } from "./common-types";
21
21
  import STYLES from "./BpkPrice.module.css";
22
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -42,14 +42,20 @@ const BpkPrice = props => {
42
42
  ...rest,
43
43
  children: [/*#__PURE__*/_jsxs("div", {
44
44
  className: getClassName(previousPrice && 'bpk-price__leading', isAlignRight && 'bpk-price__leading--right', leadingClassName),
45
- children: [previousPrice && /*#__PURE__*/_jsx(BpkText, {
45
+ children: [previousPrice && /*#__PURE__*/_jsx(BpkText
46
+ // TODO: className to be removed
47
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
48
+ , {
46
49
  className: getClassName('bpk-price__previous-price'),
47
50
  textStyle: isSmall ? TEXT_STYLES.xs : TEXT_STYLES.sm,
48
51
  tagName: "span",
49
52
  children: previousPrice
50
53
  }), previousPrice && leadingText && /*#__PURE__*/_jsx(BpkText, {
51
54
  textStyle: isSmall ? TEXT_STYLES.xs : TEXT_STYLES.sm,
52
- tagName: "span",
55
+ tagName: "span"
56
+ // TODO: className to be removed
57
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
58
+ ,
53
59
  className: getClassName('bpk-price__separator'),
54
60
  children: "\uD802\uDD1F"
55
61
  }), leadingText && /*#__PURE__*/_jsx(BpkText, {
@@ -60,13 +66,19 @@ const BpkPrice = props => {
60
66
  }), /*#__PURE__*/_jsxs("div", {
61
67
  className: getClassName(isAlignRight && 'bpk-price__column-container'),
62
68
  children: [/*#__PURE__*/_jsx(BpkText, {
63
- textStyle: isSmall ? TEXT_STYLES.heading4 : TEXT_STYLES.xxl,
69
+ textStyle: isSmall ? TEXT_STYLES.heading4 : TEXT_STYLES.xxl
70
+ // TODO: className to be removed
71
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
72
+ ,
64
73
  className: getClassName('bpk-price__price', !isAlignRight && 'bpk-price__spacing'),
65
74
  tagName: "span",
66
75
  children: price
67
76
  }), trailingText && /*#__PURE__*/_jsx(BpkText, {
68
77
  textStyle: isSmall ? TEXT_STYLES.xs : TEXT_STYLES.sm,
69
- tagName: "span",
78
+ tagName: "span"
79
+ // TODO: className to be removed
80
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
81
+ ,
70
82
  className: getClassName('bpk-price__trailing'),
71
83
  children: trailingText
72
84
  })]
@@ -16,8 +16,8 @@
16
16
  * limitations under the License.
17
17
  */import PropTypes from 'prop-types';
18
18
  import clamp from 'lodash.clamp';
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 { RATING_SIZES, RATING_SCALES } from "./common-types";
22
22
  import STYLES from "./BpkRating.module.css";
23
23
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
@@ -79,11 +79,17 @@ const BpkRating = props => {
79
79
  ...rest,
80
80
  children: [/*#__PURE__*/_jsxs(BpkText, {
81
81
  textStyle: valueTextSize,
82
- tagName: "span",
82
+ tagName: "span"
83
+ // TODO: className to be removed
84
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
85
+ ,
83
86
  className: valueStyles,
84
87
  "aria-hidden": "true",
85
88
  children: [adjustedValue, showScale && /*#__PURE__*/_jsxs(BpkText, {
86
- textStyle: scaleTextSize,
89
+ textStyle: scaleTextSize
90
+ // TODO: className to be removed
91
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
92
+ ,
87
93
  className: scaleStyles,
88
94
  tagName: "span",
89
95
  "aria-hidden": "true",
@@ -92,12 +98,18 @@ const BpkRating = props => {
92
98
  }), /*#__PURE__*/_jsxs("div", {
93
99
  className: textWrapperStyles,
94
100
  children: [title && /*#__PURE__*/_jsx(BpkText, {
95
- textStyle: titleTextSize,
101
+ textStyle: titleTextSize
102
+ // TODO: className to be removed
103
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
104
+ ,
96
105
  className: titleStyles,
97
106
  tagName: "span",
98
107
  "aria-hidden": "true",
99
108
  children: title
100
- }), subtitle && /*#__PURE__*/_jsx(BpkText, {
109
+ }), subtitle && /*#__PURE__*/_jsx(BpkText
110
+ // TODO: className to be removed
111
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
112
+ , {
101
113
  className: subtitleStyles,
102
114
  textStyle: subtitleTextSize,
103
115
  tagName: "span",
@@ -60,14 +60,10 @@ class BpkRtlToggle extends Component {
60
60
  });
61
61
  };
62
62
  render() {
63
- const {
64
- className
65
- } = this.props;
66
63
  const onOrOff = this.state.direction === DIRECTIONS.RTL ? 'off' : 'on';
67
64
  return /*#__PURE__*/_jsxs(BpkButtonLink, {
68
65
  title: "Keyboard Shortcut: ctrl + cmd + r",
69
66
  onClick: this.toggleRtl,
70
- className: className,
71
67
  children: ["RTL ", onOrOff]
72
68
  });
73
69
  }
@@ -16,9 +16,9 @@
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
  import { BpkCalendarGrid } from "../../bpk-component-calendar";
20
+ import BpkText, { TEXT_STYLES } from "../../bpk-component-text";
21
+ import { cssModules } from "../../bpk-react-utils";
22
22
  import STYLES from "./BpkScrollableCalendarGrid.module.css";
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  const getClassName = cssModules(STYLES);
@@ -32,7 +32,10 @@ const BpkScrollableCalendarGrid = ({
32
32
  const classNames = getClassName('bpk-scrollable-calendar-grid', className);
33
33
  return /*#__PURE__*/_jsxs("div", {
34
34
  className: classNames,
35
- children: [/*#__PURE__*/_jsx(BpkText, {
35
+ children: [/*#__PURE__*/_jsx(BpkText
36
+ // TODO: className to be removed
37
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
38
+ , {
36
39
  className: getClassName('bpk-scrollable-calendar-grid__title'),
37
40
  tagName: "h1",
38
41
  textStyle: TEXT_STYLES.heading4,
@@ -18,10 +18,10 @@
18
18
 
19
19
  import { useRef, useState, useMemo, useEffect } from 'react';
20
20
  import { startOfDay, startOfMonth } from 'date-fns';
21
- import { VariableSizeList as List } from 'react-window';
22
21
  import AutoSizer from 'react-virtualized-auto-sizer';
23
- import { cssModules } from "../../bpk-react-utils";
22
+ import { VariableSizeList as List } from 'react-window';
24
23
  import { CALENDAR_SELECTION_TYPE, DateUtils } from "../../bpk-component-calendar";
24
+ import { cssModules } from "../../bpk-react-utils";
25
25
  import BpkScrollableCalendarGrid from "./BpkScrollableCalendarGrid";
26
26
  import { getMonthsArray, getMonthItemHeights } from "./utils";
27
27
  import STYLES from "./BpkScrollableCalendarGridList.module.css";
@@ -82,7 +82,10 @@ const BpkScrollableCalendarGridList = props => {
82
82
  month: months[index],
83
83
  focusedDate: focusedDate,
84
84
  preventKeyboardFocus: rest.preventKeyboardFocus,
85
- "aria-hidden": index !== 1,
85
+ "aria-hidden": index !== 1
86
+ // TODO: className to be removed
87
+ // eslint-disable-next-line @skyscanner/rules/forbid-component-props
88
+ ,
86
89
  className: getClassName('bpk-scrollable-calendar-grid-list__item')
87
90
  })
88
91
  });
@@ -16,8 +16,8 @@
16
16
  * limitations under the License.
17
17
  */
18
18
 
19
- import { cssModules } from "../../bpk-react-utils";
20
19
  import BpkText from "../../bpk-component-text";
20
+ import { cssModules } from "../../bpk-react-utils";
21
21
  import STYLES from "./BpkSectionHeader.module.css";
22
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
23
  const getClassName = cssModules(STYLES);
@@ -34,13 +34,14 @@ const BpkSectionHeader = ({
34
34
  className: getClassName('bpk-section-header'),
35
35
  children: [/*#__PURE__*/_jsxs("div", {
36
36
  className: getClassName('bpk-section-header__title-description', `bpk-section-header__title-description--${type}`),
37
- children: [/*#__PURE__*/_jsx(BpkText, {
38
- tagName: "h2",
37
+ children: [/*#__PURE__*/_jsx("h2", {
39
38
  className: getClassName('bpk-section-header__title'),
40
39
  children: title
41
- }), description && /*#__PURE__*/_jsx(BpkText, {
40
+ }), description && /*#__PURE__*/_jsx("span", {
42
41
  className: getClassName('bpk-section-header__description'),
43
- children: description
42
+ children: /*#__PURE__*/_jsx(BpkText, {
43
+ children: description
44
+ })
44
45
  })]
45
46
  }), button]
46
47
  });
@@ -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-section-header{display:flex;justify-content:space-between;align-items:flex-start;background-color:rgba(0,0,0,0)}.bpk-section-header__title-description{display:flex;flex-direction:column}.bpk-section-header__title-description--default{color:#161616}.bpk-section-header__title-description--on-dark{color:#fff}.bpk-section-header__title{font-size:2rem;line-height:2.5rem;font-weight:700}@media(max-width: 32rem){.bpk-section-header__title{font-size:1.5rem;line-height:1.75rem;font-weight:700}}.bpk-section-header__description{padding-top:.25rem}
18
+ .bpk-section-header{display:flex;justify-content:space-between;align-items:flex-start;background-color:rgba(0,0,0,0)}.bpk-section-header__title-description{display:flex;flex-direction:column}.bpk-section-header__title-description--default{color:#161616}.bpk-section-header__title-description--on-dark{color:#fff}.bpk-section-header__title{margin:0;font-size:2rem;line-height:2.5rem;font-weight:700}@media(max-width: 32rem){.bpk-section-header__title{font-size:1.5rem;line-height:1.75rem;font-weight:700}}.bpk-section-header__description{padding-top:.25rem}
@@ -15,7 +15,7 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */import BpkSectionList from "./src/BpkSectionList";
18
- import BpkSectionListSection from "./src/BpkSectionListSection";
19
18
  import BpkSectionListItem from "./src/BpkSectionListItem";
19
+ import BpkSectionListSection from "./src/BpkSectionListSection";
20
20
  export default BpkSectionList;
21
21
  export { BpkSectionListSection, BpkSectionListItem };
@@ -15,9 +15,9 @@
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
- import BpkLargeChevronRightIcon from "../../bpk-component-icon/lg/chevron-right";
20
18
  import { withRtlSupport } from "../../bpk-component-icon";
19
+ import BpkLargeChevronRightIcon from "../../bpk-component-icon/lg/chevron-right";
20
+ import { cssModules } from "../../bpk-react-utils";
21
21
  import STYLES from "./BpkSectionListItem.module.css";
22
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
23
  const BpkLargeChevronRightIconWithRtlSupport = withRtlSupport(BpkLargeChevronRightIcon);
@@ -43,8 +43,9 @@ const BpkSectionListItem = props => {
43
43
  onClick: onClick,
44
44
  className: classNames.join(' '),
45
45
  ...rest,
46
- children: [children, /*#__PURE__*/_jsx(BpkLargeChevronRightIconWithRtlSupport, {
47
- className: getClassName('bpk-section-list-item__chevron')
46
+ children: [children, /*#__PURE__*/_jsx("span", {
47
+ className: getClassName('bpk-section-list-item__chevron'),
48
+ children: /*#__PURE__*/_jsx(BpkLargeChevronRightIconWithRtlSupport, {})
48
49
  })]
49
50
  })
50
51
  );
@@ -58,8 +59,9 @@ const BpkSectionListItem = props => {
58
59
  onClick: onClick,
59
60
  className: classNames.join(' '),
60
61
  ...rest,
61
- children: [children, /*#__PURE__*/_jsx(BpkLargeChevronRightIconWithRtlSupport, {
62
- className: getClassName('bpk-section-list-item__chevron')
62
+ children: [children, /*#__PURE__*/_jsx("span", {
63
+ className: getClassName('bpk-section-list-item__chevron'),
64
+ children: /*#__PURE__*/_jsx(BpkLargeChevronRightIconWithRtlSupport, {})
63
65
  })]
64
66
  })
65
67
  );
@@ -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-section-list-item{display:flex;width:100%;min-height:4rem;padding:.5rem 1rem;justify-content:space-between;align-items:center;border:none;background-color:#fff;color:#161616;text-decoration:none;box-shadow:0 -1px 0 0 #c1c7cf inset}.bpk-section-list-item--interactive{cursor:pointer}.bpk-section-list-item__chevron{fill:#626971}.bpk-section-list-item:hover .bpk-section-list-item__chevron{fill:#161616}.bpk-section-list-item:active .bpk-section-list-item__chevron{fill:#161616}
18
+ .bpk-section-list-item{display:flex;width:100%;min-height:4rem;padding:.5rem 1rem;justify-content:space-between;align-items:center;border:none;background-color:#fff;color:#161616;text-decoration:none;box-shadow:0 -1px 0 0 #c1c7cf inset}.bpk-section-list-item--interactive{cursor:pointer}.bpk-section-list-item__chevron{display:contents;fill:#626971}.bpk-section-list-item:hover .bpk-section-list-item__chevron{fill:#161616}.bpk-section-list-item:active .bpk-section-list-item__chevron{fill:#161616}
@@ -16,8 +16,8 @@
16
16
  * limitations under the License.
17
17
  */import PropTypes from 'prop-types';
18
18
  import { Children } from 'react';
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 "./BpkSectionListSection.module.css";
22
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
23
  const getClassName = cssModules(STYLES);
@@ -1,18 +1,21 @@
1
1
  /*
2
2
  * Backpack - Skyscanner's Design System
3
- *
3
+ *
4
4
  * Copyright 2016 Skyscanner Ltd
5
- *
5
+ *
6
6
  * Licensed under the Apache License, Version 2.0 (the "License");
7
7
  * you may not use this file except in compliance with the License.
8
8
  * You may obtain a copy of the License at
9
- *
9
+ *
10
10
  * http://www.apache.org/licenses/LICENSE-2.0
11
- *
11
+ *
12
12
  * Unless required by applicable law or agreed to in writing, software
13
13
  * distributed under the License is distributed on an "AS IS" BASIS,
14
14
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */
18
- .bpk-datepicker__calendar{margin:0 auto}.bpk-datepicker__input{display:inline-block;width:100%}
18
+
19
+ import BpkSkeleton from "./src/BpkSkeleton";
20
+ export { SIZE_TYPES, SKELETON_TYPES, IMAGE_SKELETON_STYLE } from "./src/common-types";
21
+ export default BpkSkeleton;
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Backpack - Skyscanner's Design System
3
+ *
4
+ * Copyright 2016 Skyscanner Ltd
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+
19
+ import { cssModules } from "../../bpk-react-utils";
20
+ import STYLES from "./BpkBaseSkeleton.module.css";
21
+ import { jsx as _jsx } from "react/jsx-runtime";
22
+ const getClassName = cssModules(STYLES);
23
+ const BpkBaseSkeleton = ({
24
+ skeletonStyle,
25
+ styleObj = undefined
26
+ }) => /*#__PURE__*/_jsx("div", {
27
+ className: getClassName('bpk-skeleton', skeletonStyle),
28
+ style: styleObj
29
+ });
30
+ export default BpkBaseSkeleton;
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Backpack - Skyscanner's Design System
3
+ *
4
+ * Copyright 2016 Skyscanner Ltd
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ .bpk-skeleton{width:6rem;height:6rem;background:#e0e4e9;background-image:linear-gradient(to right, rgba(255, 255, 255, 0) 7.08%, rgba(255, 255, 255, 0.6) 49.22%, rgba(255, 255, 255, 0) 100%);background-repeat:no-repeat;animation:shimmer-animation 1600ms infinite linear;animation-direction:normal}html[dir=rtl] .bpk-skeleton{animation-direction:reverse}@keyframes shimmer-animation{0%{background-position:-24rem 0}100%{background-position:24rem 0}}
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Backpack - Skyscanner's Design System
3
+ *
4
+ * Copyright 2016 Skyscanner Ltd
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+
19
+ import { cssModules } from "../../bpk-react-utils";
20
+ import BpkBaseSkeleton from "./BpkBaseSkeleton";
21
+ import { SKELETON_TYPES, IMAGE_SKELETON_STYLE, SIZE_TYPES } from "./common-types";
22
+ import STYLES from "./BpkSkeleton.module.css";
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ const getClassName = cssModules(STYLES);
25
+ const BpkSkeleton = props => {
26
+ const {
27
+ size = SIZE_TYPES.default,
28
+ type
29
+ } = props;
30
+ const isImageRounded = type === SKELETON_TYPES.image && props.style === IMAGE_SKELETON_STYLE.rounded;
31
+ const classNames = getClassName(`bpk-skeleton__${type}`, typeof size !== 'object' && `bpk-skeleton__${type}--${size}`, isImageRounded && 'bpk-skeleton__image--rounded');
32
+ const styleObj = typeof size === 'object' ? size : undefined;
33
+ return /*#__PURE__*/_jsx(BpkBaseSkeleton, {
34
+ skeletonStyle: classNames,
35
+ styleObj: styleObj
36
+ });
37
+ };
38
+ export default BpkSkeleton;
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Backpack - Skyscanner's Design System
3
+ *
4
+ * Copyright 2016 Skyscanner Ltd
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ .bpk-skeleton__image{width:6rem;height:6rem}.bpk-skeleton__image--rounded{border-radius:.5rem}.bpk-skeleton__headline{width:5rem;border-radius:.25rem}.bpk-skeleton__headline--small{height:.5rem;border-radius:.125rem}.bpk-skeleton__headline--default{height:1rem;border-radius:.25rem}.bpk-skeleton__headline--large{height:2rem;border-radius:.25rem}.bpk-skeleton__circle{border-radius:50%}.bpk-skeleton__circle--small{width:2rem;height:2rem}.bpk-skeleton__circle--default{width:3rem;height:3rem}.bpk-skeleton__bodyText{height:.5rem;border-radius:.125rem}.bpk-skeleton__bodyText--small{width:7.125rem}.bpk-skeleton__bodyText--default{width:10.6875rem}.bpk-skeleton__bodyText--large{width:12.5rem}
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Backpack - Skyscanner's Design System
3
+ *
4
+ * Copyright 2016 Skyscanner Ltd
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+
19
+ export const SIZE_TYPES = {
20
+ small: 'small',
21
+ default: 'default',
22
+ large: 'large'
23
+ };
24
+ export const SKELETON_TYPES = {
25
+ image: 'image',
26
+ bodyText: 'bodyText',
27
+ circle: 'circle',
28
+ headline: 'headline'
29
+ };
30
+ export const IMAGE_SKELETON_STYLE = {
31
+ rounded: 'rounded',
32
+ default: 'default'
33
+ };
@@ -14,9 +14,9 @@
14
14
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
- */import BpkSpinner from "./src/BpkSpinner";
18
- import SPINNER_TYPES from "./src/spinnerTypes";
17
+ */import BpkExtraLargeSpinner from "./src/BpkExtraLargeSpinner";
19
18
  import BpkLargeSpinner from "./src/BpkLargeSpinner";
20
- import BpkExtraLargeSpinner from "./src/BpkExtraLargeSpinner";
19
+ import BpkSpinner from "./src/BpkSpinner";
20
+ import SPINNER_TYPES from "./src/spinnerTypes";
21
21
  import themeAttributes from "./src/themeAttributes";
22
22
  export { BpkSpinner, BpkLargeSpinner, BpkExtraLargeSpinner, SPINNER_TYPES, themeAttributes };
@@ -86,11 +86,13 @@ const BpkExtraLargeSpinner = props => {
86
86
  ...rest
87
87
  } = props;
88
88
  const classNames = getClassName('bpk-spinner', 'bpk-spinner--extra-large', `bpk-spinner--${type}`, className);
89
-
90
- // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'.
91
- return /*#__PURE__*/_jsx(XlSpinner, {
89
+ return /*#__PURE__*/_jsx("span", {
92
90
  className: classNames,
93
- ...rest
91
+ children: /*#__PURE__*/_jsx(XlSpinner
92
+ // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'.
93
+ , {
94
+ ...rest
95
+ })
94
96
  });
95
97
  };
96
98
  BpkExtraLargeSpinner.propTypes = {
@@ -87,11 +87,13 @@ const BpkLargeSpinner = props => {
87
87
  ...rest
88
88
  } = props;
89
89
  const classNames = getClassName('bpk-spinner', 'bpk-spinner--large', `bpk-spinner--${type}`, alignToButton && 'bpk-spinner--align-to-large-button', className);
90
-
91
- // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'.
92
- return /*#__PURE__*/_jsx(LgSpinner, {
90
+ return /*#__PURE__*/_jsx("span", {
93
91
  className: classNames,
94
- ...rest
92
+ children: /*#__PURE__*/_jsx(LgSpinner
93
+ // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'.
94
+ , {
95
+ ...rest
96
+ })
95
97
  });
96
98
  };
97
99
  BpkLargeSpinner.propTypes = {
@@ -74,11 +74,13 @@ const BpkSpinner = props => {
74
74
  ...rest
75
75
  } = props;
76
76
  const classNames = getClassName('bpk-spinner', `bpk-spinner--${type}`, alignToButton && 'bpk-spinner--align-to-button', className);
77
-
78
- // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'.
79
- return /*#__PURE__*/_jsx(SmSpinner, {
77
+ return /*#__PURE__*/_jsx("span", {
80
78
  className: classNames,
81
- ...rest
79
+ children: /*#__PURE__*/_jsx(SmSpinner
80
+ // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'.
81
+ , {
82
+ ...rest
83
+ })
82
84
  });
83
85
  };
84
86
  BpkSpinner.propTypes = {