@skyscanner/backpack-web 0.2.0 → 1.0.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 (218) hide show
  1. package/bpk-animate-height/package.json +3 -3
  2. package/bpk-component-accordion/package.json +7 -7
  3. package/bpk-component-accordion/src/BpkAccordion.js +1 -2
  4. package/bpk-component-accordion/src/BpkAccordionItem.js +5 -6
  5. package/bpk-component-accordion/src/withAccordionItemState.js +1 -2
  6. package/bpk-component-accordion/src/withSingleItemAccordionState.js +1 -2
  7. package/bpk-component-aria-live/package.json +7 -7
  8. package/bpk-component-aria-live/src/BpkAriaLive.js +1 -2
  9. package/bpk-component-autosuggest/package.json +4 -4
  10. package/bpk-component-autosuggest/src/BpkAutosuggest.js +2 -3
  11. package/bpk-component-autosuggest/src/BpkAutosuggestSuggestion.js +1 -2
  12. package/bpk-component-badge/package.json +5 -5
  13. package/bpk-component-badge/src/BpkBadge.js +1 -2
  14. package/bpk-component-banner-alert/package.json +9 -9
  15. package/bpk-component-banner-alert/src/AnimateAndFade.js +2 -3
  16. package/bpk-component-banner-alert/src/BpkBannerAlertInner.js +7 -8
  17. package/bpk-component-banner-alert/src/withBannerAlertState.js +1 -2
  18. package/bpk-component-barchart/package.json +8 -8
  19. package/bpk-component-barchart/src/BpkBarchart.js +2 -3
  20. package/bpk-component-barchart/src/BpkBarchartBar.js +1 -2
  21. package/bpk-component-barchart/src/BpkChartAxis.js +1 -2
  22. package/bpk-component-barchart/src/BpkChartDataTable.js +1 -2
  23. package/bpk-component-barchart/src/BpkChartGridLines.js +1 -2
  24. package/bpk-component-barchart/src/RTLtransforms.js +1 -1
  25. package/bpk-component-blockquote/package.json +2 -2
  26. package/bpk-component-blockquote/src/BpkBlockquote.js +1 -2
  27. package/bpk-component-breadcrumb/package.json +5 -5
  28. package/bpk-component-breadcrumb/src/BpkBreadcrumb.js +1 -2
  29. package/bpk-component-breadcrumb/src/BpkBreadcrumbItem.js +5 -6
  30. package/bpk-component-breakpoint/package.json +3 -3
  31. package/bpk-component-breakpoint/src/BpkBreakpoint.js +3 -0
  32. package/bpk-component-button/package.json +3 -3
  33. package/bpk-component-calendar/package.json +9 -9
  34. package/bpk-component-calendar/src/BpkCalendarContainer.js +1 -2
  35. package/bpk-component-calendar/src/BpkCalendarDate.js +1 -2
  36. package/bpk-component-calendar/src/BpkCalendarGrid.js +1 -2
  37. package/bpk-component-calendar/src/BpkCalendarGridHeader.js +1 -2
  38. package/bpk-component-calendar/src/BpkCalendarGridTransition.js +1 -2
  39. package/bpk-component-calendar/src/BpkCalendarNav.js +5 -6
  40. package/bpk-component-calendar/src/Week.js +1 -2
  41. package/bpk-component-calendar/src/composeCalendar.js +1 -2
  42. package/bpk-component-card/package.json +4 -4
  43. package/bpk-component-card/src/BpkCard.js +1 -2
  44. package/bpk-component-checkbox/package.json +5 -5
  45. package/bpk-component-checkbox/src/BpkCheckbox.js +1 -2
  46. package/bpk-component-chip/package.json +5 -5
  47. package/bpk-component-chip/src/BpkDismissibleChip.js +1 -2
  48. package/bpk-component-chip/src/BpkSelectableChip.js +2 -3
  49. package/bpk-component-close-button/package.json +4 -4
  50. package/bpk-component-close-button/src/BpkCloseButton.js +2 -3
  51. package/bpk-component-code/package.json +2 -2
  52. package/bpk-component-code/src/BpkCode.js +1 -2
  53. package/bpk-component-code/src/BpkCodeBlock.js +1 -2
  54. package/bpk-component-content-container/package.json +2 -2
  55. package/bpk-component-content-container/src/BpkContentContainer.js +1 -2
  56. package/bpk-component-datatable/package.json +4 -4
  57. package/bpk-component-datatable/src/BpkDataTable.js +1 -2
  58. package/bpk-component-datatable/src/BpkDataTableColumn.js +1 -2
  59. package/bpk-component-datatable/src/bpkHeaderRenderer.js +4 -5
  60. package/bpk-component-datepicker/index.js +1 -1
  61. package/bpk-component-datepicker/package.json +9 -9
  62. package/bpk-component-datepicker/src/BpkDatepicker.js +6 -7
  63. package/bpk-component-datepicker/src/themeAttributes.js +3 -3
  64. package/bpk-component-description-list/package.json +2 -2
  65. package/bpk-component-description-list/src/ComponentFactory.js +1 -2
  66. package/bpk-component-dialog/package.json +8 -8
  67. package/bpk-component-dialog/src/BpkDialog.js +2 -3
  68. package/bpk-component-dialog/src/BpkDialogInner.js +3 -4
  69. package/bpk-component-drawer/package.json +9 -9
  70. package/bpk-component-drawer/src/BpkDrawer.js +2 -3
  71. package/bpk-component-drawer/src/BpkDrawerContent.js +3 -4
  72. package/bpk-component-drawer/src/themeAttributes.js +1 -1
  73. package/bpk-component-fieldset/package.json +12 -12
  74. package/bpk-component-fieldset/src/BpkFieldset.js +3 -4
  75. package/bpk-component-flare/package.json +4 -4
  76. package/bpk-component-flare/src/BpkContentBubble.js +1 -2
  77. package/bpk-component-flare/src/BpkFlareBar.js +1 -2
  78. package/bpk-component-form-validation/package.json +10 -10
  79. package/bpk-component-form-validation/src/BpkFormValidation.js +4 -5
  80. package/bpk-component-graphic-promotion/package.json +5 -5
  81. package/bpk-component-graphic-promotion/src/BpkGraphicPromo.js +4 -5
  82. package/bpk-component-grid/package.json +2 -2
  83. package/bpk-component-grid/src/BpkGridColumn.js +1 -2
  84. package/bpk-component-grid/src/BpkGridContainer.js +1 -2
  85. package/bpk-component-grid/src/BpkGridRow.js +1 -2
  86. package/bpk-component-grid-toggle/package.json +3 -3
  87. package/bpk-component-grid-toggle/src/BpkGridToggle.js +2 -3
  88. package/bpk-component-horizontal-nav/package.json +6 -6
  89. package/bpk-component-horizontal-nav/src/BpkHorizontalNav.js +2 -3
  90. package/bpk-component-horizontal-nav/src/BpkHorizontalNavItem.js +1 -2
  91. package/bpk-component-icon/package.json +7 -7
  92. package/bpk-component-icon/src/classNameModifierHOCFactory.js +1 -2
  93. package/bpk-component-icon/src/withAlignment.js +1 -2
  94. package/bpk-component-icon/src/withDescription.js +1 -2
  95. package/bpk-component-icon/src/withRtlSupport.js +1 -1
  96. package/bpk-component-image/package.json +6 -6
  97. package/bpk-component-image/src/BpkBackgroundImage.js +2 -3
  98. package/bpk-component-image/src/BpkImage.js +2 -3
  99. package/bpk-component-image/src/withLazyLoading.js +1 -2
  100. package/bpk-component-image/src/withLoadingBehavior.js +1 -2
  101. package/bpk-component-infinite-scroll/package.json +6 -6
  102. package/bpk-component-infinite-scroll/src/withInfiniteScroll.js +1 -2
  103. package/bpk-component-input/package.json +6 -6
  104. package/bpk-component-input/src/BpkClearButton.js +3 -4
  105. package/bpk-component-input/src/BpkInput.js +1 -2
  106. package/bpk-component-input/src/withOpenEvents.js +1 -2
  107. package/bpk-component-label/package.json +2 -2
  108. package/bpk-component-label/src/BpkLabel.js +1 -2
  109. package/bpk-component-link/package.json +4 -4
  110. package/bpk-component-link/src/BpkButtonLink.js +1 -2
  111. package/bpk-component-link/src/BpkLink.js +1 -2
  112. package/bpk-component-list/package.json +2 -2
  113. package/bpk-component-list/src/BpkList.js +1 -2
  114. package/bpk-component-list/src/BpkList.module.scss +6 -0
  115. package/bpk-component-list/src/BpkListItem.js +1 -2
  116. package/bpk-component-loading-button/package.json +6 -6
  117. package/bpk-component-loading-button/src/BpkLoadingButton.js +6 -7
  118. package/bpk-component-map/package.json +6 -6
  119. package/bpk-component-map/src/BpkIconMarker.js +1 -2
  120. package/bpk-component-map/src/BpkIconMarkerBackground.js +1 -2
  121. package/bpk-component-map/src/BpkMap.js +1 -2
  122. package/bpk-component-map/src/BpkPriceMarker.js +2 -3
  123. package/bpk-component-map/src/DefaultLoadingElement.js +2 -3
  124. package/bpk-component-mobile-scroll-container/package.json +3 -3
  125. package/bpk-component-mobile-scroll-container/src/BpkMobileScrollContainer.js +2 -3
  126. package/bpk-component-modal/package.json +9 -9
  127. package/bpk-component-modal/src/BpkModal.js +2 -3
  128. package/bpk-component-modal/src/BpkModalInner.js +4 -5
  129. package/bpk-component-modal/src/themeAttributes.js +1 -1
  130. package/bpk-component-navigation-bar/package.json +8 -8
  131. package/bpk-component-navigation-bar/src/BpkNavigationBar.js +2 -3
  132. package/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.js +2 -3
  133. package/bpk-component-navigation-bar/src/BpkNavigationBarIconButton.js +2 -3
  134. package/bpk-component-navigation-stack/package.json +7 -7
  135. package/bpk-component-navigation-stack/src/BpkNavigationStack.js +1 -2
  136. package/bpk-component-nudger/package.json +7 -7
  137. package/bpk-component-nudger/src/BpkConfigurableNudger.js +6 -7
  138. package/bpk-component-nudger/src/BpkNudger.js +1 -2
  139. package/bpk-component-nudger/src/themeAttributes.js +1 -1
  140. package/bpk-component-overlay/package.json +4 -4
  141. package/bpk-component-overlay/src/BpkOverlay.js +1 -2
  142. package/bpk-component-pagination/package.json +4 -4
  143. package/bpk-component-pagination/src/BpkPagination.js +1 -2
  144. package/bpk-component-pagination/src/BpkPaginationList.js +1 -2
  145. package/bpk-component-pagination/src/BpkPaginationNudger.js +4 -5
  146. package/bpk-component-pagination/src/BpkPaginationPage.js +2 -3
  147. package/bpk-component-pagination/src/themeAttributes.js +1 -1
  148. package/bpk-component-panel/package.json +2 -2
  149. package/bpk-component-panel/src/BpkPanel.js +1 -2
  150. package/bpk-component-phone-input/package.json +9 -9
  151. package/bpk-component-phone-input/src/BpkPhoneInput.js +4 -5
  152. package/bpk-component-popover/package.json +8 -8
  153. package/bpk-component-popover/src/BpkPopover.js +4 -5
  154. package/bpk-component-popover/src/BpkPopoverPortal.js +1 -2
  155. package/bpk-component-popover/src/themeAttributes.js +1 -1
  156. package/bpk-component-progress/package.json +5 -5
  157. package/bpk-component-progress/src/BpkProgress.js +1 -2
  158. package/bpk-component-radio/package.json +4 -4
  159. package/bpk-component-radio/src/BpkRadio.js +1 -2
  160. package/bpk-component-rating/README.md +30 -32
  161. package/bpk-component-rating/index.js +2 -3
  162. package/bpk-component-rating/package.json +4 -4
  163. package/bpk-component-rating/src/BpkRating.js +54 -77
  164. package/bpk-component-rating/src/BpkRating.module.scss +37 -99
  165. package/bpk-component-rating/src/common-types.js +1 -6
  166. package/bpk-component-rtl-toggle/package.json +2 -2
  167. package/bpk-component-rtl-toggle/src/BpkRtlToggle.js +1 -2
  168. package/bpk-component-rtl-toggle/src/updateOnDirectionChange.js +1 -2
  169. package/bpk-component-scrollable-calendar/index.js +1 -1
  170. package/bpk-component-scrollable-calendar/package.json +6 -6
  171. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendar.js +1 -1
  172. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarDate.js +1 -2
  173. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGrid.js +3 -4
  174. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGridList.js +2 -6
  175. package/bpk-component-scrollable-calendar/src/utils.js +1 -1
  176. package/bpk-component-section-list/package.json +6 -6
  177. package/bpk-component-section-list/src/BpkSectionListItem.js +3 -4
  178. package/bpk-component-section-list/src/BpkSectionListSection.js +2 -3
  179. package/bpk-component-select/package.json +3 -3
  180. package/bpk-component-select/src/BpkSelect.js +1 -2
  181. package/bpk-component-skip-link/package.json +2 -2
  182. package/bpk-component-skip-link/src/BpkSkipLink.js +1 -2
  183. package/bpk-component-slider/package.json +4 -4
  184. package/bpk-component-slider/src/BpkSlider.js +1 -2
  185. package/bpk-component-spinner/package.json +3 -3
  186. package/bpk-component-spinner/src/BpkExtraLargeSpinner.js +1 -2
  187. package/bpk-component-spinner/src/BpkLargeSpinner.js +1 -2
  188. package/bpk-component-spinner/src/BpkSpinner.js +1 -2
  189. package/bpk-component-star-rating/package.json +5 -5
  190. package/bpk-component-star-rating/src/BpkInteractiveStar.js +1 -2
  191. package/bpk-component-star-rating/src/BpkInteractiveStarRating.js +1 -2
  192. package/bpk-component-star-rating/src/BpkStar.js +8 -9
  193. package/bpk-component-star-rating/src/BpkStarRating.js +1 -2
  194. package/bpk-component-star-rating/src/withInteractiveStarRatingState.js +1 -2
  195. package/bpk-component-switch/package.json +2 -2
  196. package/bpk-component-switch/src/BpkSwitch.js +1 -2
  197. package/bpk-component-table/package.json +2 -2
  198. package/bpk-component-table/src/BpkTable.js +1 -2
  199. package/bpk-component-table/src/BpkTableCell.js +1 -2
  200. package/bpk-component-table/src/BpkTableHeadCell.js +1 -2
  201. package/bpk-component-text/package.json +2 -2
  202. package/bpk-component-text/src/BpkText.js +1 -2
  203. package/bpk-component-textarea/package.json +4 -4
  204. package/bpk-component-textarea/src/BpkTextarea.js +1 -2
  205. package/bpk-component-theme-toggle/package.json +5 -5
  206. package/bpk-component-theme-toggle/src/BpkThemeToggle.js +3 -4
  207. package/bpk-component-theme-toggle/src/updateOnThemeChange.js +1 -2
  208. package/bpk-component-ticket/package.json +4 -4
  209. package/bpk-component-ticket/src/BpkTicket.js +1 -2
  210. package/bpk-component-tooltip/package.json +4 -4
  211. package/bpk-component-tooltip/src/BpkTooltip.js +1 -2
  212. package/bpk-component-tooltip/src/BpkTooltipPortal.js +1 -2
  213. package/bpk-scrim-utils/package.json +2 -2
  214. package/bpk-scrim-utils/src/BpkScrim.js +1 -2
  215. package/bpk-scrim-utils/src/withScrim.js +1 -2
  216. package/bpk-theming/package.json +2 -2
  217. package/package.json +3 -3
  218. package/bpk-component-rating/src/themeAttributes.js +0 -25
@@ -17,29 +17,23 @@
17
17
  */
18
18
  /* @flow strict */
19
19
 
20
- import React from 'react';
20
+ import React, { type Node } from 'react';
21
21
  import PropTypes from 'prop-types';
22
22
  import clamp from 'lodash.clamp';
23
-
24
- import { cssModules } from '../../bpk-react-utils';
25
- import BpkText, { TEXT_STYLES } from '../../bpk-component-text';
23
+ import { cssModules } from 'bpk-react-utils';
24
+ import BpkText, { TEXT_STYLES } from 'bpk-component-text';
26
25
 
27
26
  import STYLES from './BpkRating.module.scss';
28
- import { RATING_SIZES, RATING_TYPES, RATING_SCALES } from './common-types';
27
+ import { RATING_SIZES, RATING_SCALES } from './common-types';
29
28
 
30
29
  const getClassName = cssModules(STYLES);
31
30
 
32
- // The thresholds are what determine whether a rating is low, medium or high.
33
- // They are expressed as a percentage of the scale. For example, on a 1-5 scale,
34
- // 5 * 0.8 (4) would be a high rating.
35
- const MEDIUM_RATING_THRESHOLD = 0.6;
36
- const HIGH_RATING_THRESHOLD = 0.8;
37
-
38
31
  const getMinValue = () =>
39
32
  // Currently the min value is zero no matter what scale is used.
40
33
  // If this ever changes, this function should be changed to return
41
34
  // different values based on the rating scale.
42
35
  0;
36
+
43
37
  const getMaxValue = (ratingScale) => {
44
38
  switch (ratingScale) {
45
39
  case RATING_SCALES.zeroToFive:
@@ -49,22 +43,15 @@ const getMaxValue = (ratingScale) => {
49
43
  }
50
44
  };
51
45
 
52
- const getMediumRatingThreshold = (ratingScale) =>
53
- getMaxValue(ratingScale) * MEDIUM_RATING_THRESHOLD;
54
-
55
- const getHighRatingThreshold = (ratingScale) =>
56
- getMaxValue(ratingScale) * HIGH_RATING_THRESHOLD;
57
-
58
- export type Props = {
46
+ type Props = {
59
47
  ariaLabel: string,
48
+ className: ?string,
60
49
  ratingScale: $Values<typeof RATING_SCALES>,
50
+ showScale: ?boolean,
61
51
  size: $Values<typeof RATING_SIZES>,
62
- title: string,
63
- type: $Values<typeof RATING_TYPES>,
64
- value: number,
65
- vertical: boolean,
66
- className: ?string,
67
52
  subtitle: ?string,
53
+ title: string | Node,
54
+ value: number,
68
55
  };
69
56
 
70
57
  const BpkRating = (props: Props) => {
@@ -72,33 +59,36 @@ const BpkRating = (props: Props) => {
72
59
  ariaLabel,
73
60
  className,
74
61
  ratingScale,
62
+ showScale,
75
63
  size,
76
64
  subtitle,
77
65
  title,
78
- type,
79
66
  value,
80
- vertical,
81
67
  ...rest
82
68
  } = props;
69
+
83
70
  const classNames = [getClassName('bpk-rating', className)];
84
- const scoreStyles = [
85
- getClassName(
86
- 'bpk-rating__component',
87
- `bpk-rating--${size}-rating`,
88
- type === RATING_TYPES.pill && `bpk-rating--${size}-pill`,
89
- ),
90
- ];
71
+ const valueStyles = [getClassName('bpk-rating__value')];
72
+ const scaleStyles = [getClassName('bpk-rating__scale')];
91
73
  const textWrapperStyles = [getClassName('bpk-rating__text-wrapper')];
92
- const textStyles = [getClassName('bpk-rating__text')];
74
+ const titleStyles = [];
75
+ const subtitleStyles = [getClassName('bpk-rating__subtitle')];
93
76
 
94
- let titleTextSize = TEXT_STYLES.bodyDefault;
95
77
  let valueTextSize = TEXT_STYLES.label1;
96
- if (size === RATING_SIZES.lg) {
97
- titleTextSize = TEXT_STYLES.bodyLongform;
98
- valueTextSize = TEXT_STYLES.heading4;
99
- } else if (size === RATING_SIZES.sm) {
100
- titleTextSize = TEXT_STYLES.footnote;
101
- valueTextSize = TEXT_STYLES.label2;
78
+ let scaleTextSize = TEXT_STYLES.caption;
79
+ let titleTextSize = TEXT_STYLES.label1;
80
+ let subtitleTextSize = TEXT_STYLES.caption;
81
+
82
+ if (size === RATING_SIZES.large) {
83
+ classNames.push(getClassName('bpk-rating--large'));
84
+ textWrapperStyles.push(getClassName('bpk-rating__text-wrapper--large'));
85
+ titleStyles.push(getClassName('bpk-rating__title--large'));
86
+ subtitleStyles.push(getClassName('bpk-rating__subtitle--large'));
87
+
88
+ valueTextSize = TEXT_STYLES.hero5;
89
+ scaleTextSize = TEXT_STYLES.bodyDefault;
90
+ titleTextSize = TEXT_STYLES.heading5;
91
+ subtitleTextSize = TEXT_STYLES.bodyDefault;
102
92
  }
103
93
 
104
94
  const minValue = getMinValue();
@@ -106,27 +96,8 @@ const BpkRating = (props: Props) => {
106
96
 
107
97
  let adjustedValue = value;
108
98
 
109
- if (adjustedValue >= getHighRatingThreshold(ratingScale)) {
110
- scoreStyles.push(getClassName('bpk-rating--high-rating'));
111
- } else if (adjustedValue >= getMediumRatingThreshold(ratingScale)) {
112
- scoreStyles.push(getClassName('bpk-rating--medium-rating'));
113
- } else {
114
- scoreStyles.push(getClassName('bpk-rating--low-rating'));
115
- }
116
-
117
- if (vertical) {
118
- classNames.push(getClassName('bpk-rating--vertical'));
119
- textWrapperStyles.push(getClassName('bpk-rating__text-wrapper--vertical'));
120
- textStyles.push(getClassName('bpk-rating__text--vertical'));
121
- } else {
122
- textWrapperStyles.push(
123
- getClassName('bpk-rating__text-wrapper--horizontal'),
124
- );
125
- textStyles.push(getClassName('bpk-rating__text--horizontal'));
126
- }
127
-
128
99
  if (adjustedValue >= maxValue || adjustedValue <= minValue) {
129
- adjustedValue = clamp(adjustedValue, minValue, maxValue);
100
+ adjustedValue = clamp(adjustedValue, minValue, maxValue).toFixed(1);
130
101
  } else {
131
102
  adjustedValue = value.toFixed(1);
132
103
  }
@@ -137,29 +108,37 @@ const BpkRating = (props: Props) => {
137
108
  <BpkText
138
109
  textStyle={valueTextSize}
139
110
  tagName="span"
140
- className={scoreStyles.join(' ')}
111
+ className={valueStyles.join(' ')}
141
112
  aria-hidden="true"
142
113
  >
143
114
  {adjustedValue}
115
+
116
+ {showScale && (
117
+ <BpkText
118
+ textStyle={scaleTextSize}
119
+ className={scaleStyles.join(' ')}
120
+ tagName="span"
121
+ aria-hidden="true"
122
+ >
123
+ /{maxValue}
124
+ </BpkText>
125
+ )}
144
126
  </BpkText>
127
+
145
128
  <div className={textWrapperStyles.join(' ')}>
146
129
  <BpkText
147
- className={textStyles.join(' ')}
148
130
  textStyle={titleTextSize}
131
+ className={titleStyles.join(' ')}
149
132
  tagName="span"
150
133
  aria-hidden="true"
151
134
  >
152
- <strong>{title}</strong>{' '}
153
- {subtitle && type === RATING_TYPES.pill && <span>{subtitle}</span>}
135
+ {title}
154
136
  </BpkText>
155
- {subtitle && type !== RATING_TYPES.pill && (
137
+
138
+ {subtitle && (
156
139
  <BpkText
157
- className={textStyles.join(' ')}
158
- textStyle={
159
- size === RATING_SIZES.lg
160
- ? TEXT_STYLES.footnote
161
- : TEXT_STYLES.caption
162
- }
140
+ className={subtitleStyles.join(' ')}
141
+ textStyle={subtitleTextSize}
163
142
  tagName="span"
164
143
  aria-hidden="true"
165
144
  >
@@ -173,23 +152,21 @@ const BpkRating = (props: Props) => {
173
152
 
174
153
  BpkRating.propTypes = {
175
154
  ariaLabel: PropTypes.string.isRequired,
176
- title: PropTypes.string.isRequired,
155
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,
177
156
  value: PropTypes.number.isRequired,
178
157
  className: PropTypes.string,
179
158
  ratingScale: PropTypes.oneOf(Object.keys(RATING_SCALES)),
180
159
  size: PropTypes.oneOf(Object.keys(RATING_SIZES)),
181
160
  subtitle: PropTypes.string,
182
- type: PropTypes.oneOf([RATING_TYPES.default, RATING_TYPES.pill]),
183
- vertical: PropTypes.bool,
161
+ showScale: PropTypes.bool,
184
162
  };
185
163
 
186
164
  BpkRating.defaultProps = {
187
165
  className: null,
188
- ratingScale: RATING_SCALES.zeroToTen,
166
+ ratingScale: RATING_SCALES.zeroToFive,
189
167
  size: RATING_SIZES.base,
190
168
  subtitle: null,
191
- type: RATING_TYPES.default,
192
- vertical: false,
169
+ showScale: true,
193
170
  };
194
171
 
195
172
  export default BpkRating;
@@ -22,127 +22,65 @@ $bpk-spacing-v2: true;
22
22
 
23
23
  .bpk-rating {
24
24
  display: flex;
25
+ flex-flow: row nowrap;
26
+ align-items: baseline;
25
27
 
26
- &--vertical {
27
- flex-direction: column;
28
- }
29
-
30
- &__component {
31
- justify-content: center;
28
+ &--large {
32
29
  align-items: center;
33
- border-radius: 50%;
34
- color: $bpk-color-white;
35
30
  }
36
31
 
37
- &--base-rating {
32
+ &__value {
38
33
  display: flex;
39
- width: bpk-spacing-lg() * 2;
40
- height: bpk-spacing-lg() * 2;
41
- }
34
+ padding-right: bpk-spacing-md();
35
+ justify-content: center;
36
+ align-items: baseline;
37
+ color: $bpk-color-sky-gray;
42
38
 
43
- &--lg-rating {
44
- display: flex;
45
- width: bpk-spacing-xxl() + (bpk-spacing-sm() * 5);
46
- height: bpk-spacing-xxl() + (bpk-spacing-sm() * 5);
39
+ @include bpk-rtl {
40
+ padding-right: 0;
41
+ padding-left: bpk-spacing-md();
42
+ }
47
43
  }
48
44
 
49
- &--sm-rating {
45
+ &__text-wrapper {
50
46
  display: flex;
51
- width: bpk-spacing-sm() * 9;
52
- height: bpk-spacing-sm() * 9;
53
- }
47
+ flex-direction: row;
48
+ align-items: baseline;
49
+ white-space: nowrap;
54
50
 
55
- &--sm-pill {
56
- width: bpk-spacing-sm() * 9;
57
- height: bpk-spacing-xl() - (bpk-spacing-sm() / 2);
58
- border-radius: $bpk-border-radius-pill;
51
+ &--large {
52
+ flex-direction: column;
53
+ align-items: flex-start;
54
+ }
59
55
  }
60
56
 
61
- &--base-pill {
62
- width: bpk-spacing-lg() * 2;
63
- height: bpk-spacing-sm() * 9;
64
- border-radius: $bpk-border-radius-pill;
57
+ &__scale {
58
+ color: $bpk-color-sky-gray-tint-02;
65
59
  }
66
60
 
67
- &--lg-pill {
68
- width: (bpk-spacing-xl() * 2) + (bpk-spacing-sm() / 2);
69
- height: bpk-spacing-xxl() + (bpk-spacing-sm() / 2);
70
- border-radius: $bpk-border-radius-pill-lg;
61
+ &__title {
62
+ &--large {
63
+ padding-top: $bpk-one-pixel-rem;
64
+ }
71
65
  }
72
66
 
73
- &__text-wrapper {
74
- display: flex;
75
- flex-direction: column;
76
- justify-content: center;
77
-
78
- &--horizontal {
79
- // We could use `padding-inline-start: $bpk-spacing-sm` here, but it's unsupported in IE
80
- padding-left: bpk-spacing-sm() * 3;
67
+ &__subtitle {
68
+ padding-left: bpk-spacing-md();
69
+ color: $bpk-color-sky-gray-tint-02;
81
70
 
82
- @include bpk-rtl {
83
- padding-right: bpk-spacing-sm() * 3;
84
- }
85
- }
86
-
87
- &--vertical {
88
- padding-top: bpk-spacing-sm() + ($bpk-one-pixel-rem * 2);
71
+ @include bpk-rtl {
72
+ padding-right: bpk-spacing-md();
73
+ padding-left: 0;
89
74
  }
90
- }
91
75
 
92
- &__text {
93
- &--horizontal {
94
- // We could use `text-align: start` here, but it's unsupported in IE
95
- text-align: left;
76
+ &--large {
77
+ padding-top: $bpk-one-pixel-rem;
78
+ padding-left: 0;
96
79
 
97
80
  @include bpk-rtl {
98
- text-align: right;
81
+ padding-right: 0;
82
+ padding-left: 0;
99
83
  }
100
84
  }
101
-
102
- &--vertical {
103
- align-self: center;
104
- text-align: center;
105
- }
106
- }
107
-
108
- &--high-rating {
109
- align-self: center;
110
- color: $bpk-color-sky-gray;
111
-
112
- @include bpk-themeable-property(
113
- color,
114
- --bpk-rating-high-text-color,
115
- $bpk-color-sky-gray
116
- );
117
- @include bpk-themeable-property(
118
- background-color,
119
- --bpk-rating-high-color,
120
- $bpk-color-glencoe
121
- );
122
- }
123
-
124
- &--medium-rating {
125
- align-self: center;
126
-
127
- @include bpk-themeable-property(
128
- color,
129
- --bpk-rating-medium-text-color,
130
- $bpk-color-sky-gray
131
- );
132
- @include bpk-themeable-property(
133
- background-color,
134
- --bpk-rating-medium-color,
135
- $bpk-color-erfoud
136
- );
137
- }
138
-
139
- &--low-rating {
140
- align-self: center;
141
-
142
- @include bpk-themeable-property(
143
- background-color,
144
- --bpk-rating-low-color,
145
- $bpk-color-panjin
146
- );
147
85
  }
148
86
  }
@@ -18,12 +18,7 @@
18
18
 
19
19
  /* @flow */
20
20
 
21
- export const RATING_SIZES = { sm: 'sm', base: 'base', lg: 'lg' };
22
-
23
- export const RATING_TYPES = {
24
- default: 'default',
25
- pill: 'pill',
26
- };
21
+ export const RATING_SIZES = { base: 'base', large: 'lg' };
27
22
 
28
23
  export const RATING_SCALES = {
29
24
  zeroToFive: 'zeroToFive',
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bpk-component-rtl-toggle",
3
- "version": "3.1.6",
3
+ "version": "3.1.8",
4
4
  "description": "Backpack RTL toggle component.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "gitHead": "5c156b97cb0ba5e75851d3c763334578714c895e",
16
16
  "dependencies": {
17
- "bpk-component-link": "^3.1.6",
17
+ "bpk-component-link": "^3.1.8",
18
18
  "bpk-react-utils": "^4.1.1",
19
19
  "prop-types": "^15.7.2"
20
20
  },
@@ -18,8 +18,7 @@
18
18
 
19
19
  import React from 'react';
20
20
  import PropTypes from 'prop-types';
21
-
22
- import { BpkButtonLink } from '../../bpk-component-link';
21
+ import { BpkButtonLink } from 'bpk-component-link';
23
22
 
24
23
  import { getHtmlElement, DIRECTIONS, DIRECTION_CHANGE_EVENT } from './utils';
25
24
 
@@ -17,8 +17,7 @@
17
17
  */
18
18
 
19
19
  import React, { Component } from 'react';
20
-
21
- import { wrapDisplayName } from '../../bpk-react-utils';
20
+ import { wrapDisplayName } from 'bpk-react-utils';
22
21
 
23
22
  import { getHtmlElement, DIRECTION_CHANGE_EVENT } from './utils';
24
23
 
@@ -17,7 +17,7 @@
17
17
  */
18
18
  /* @flow strict */
19
19
 
20
- import { CALENDAR_SELECTION_TYPE } from '../bpk-component-calendar';
20
+ import { CALENDAR_SELECTION_TYPE } from 'bpk-component-calendar';
21
21
 
22
22
  import BpkScrollableCalendar from './src/BpkScrollableCalendar';
23
23
  import BpkScrollableCalendarDate from './src/BpkScrollableCalendarDate';
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bpk-component-scrollable-calendar",
3
- "version": "6.1.11",
3
+ "version": "6.1.13",
4
4
  "description": "Backpack scrollable calendar component.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -14,17 +14,17 @@
14
14
  },
15
15
  "gitHead": "4e4ec9add28e1db54d6a38a10c331bbd163f2926",
16
16
  "dependencies": {
17
- "@skyscanner/bpk-foundations-web": "^6.2.0",
18
- "bpk-component-calendar": "^11.1.11",
19
- "bpk-component-text": "^7.0.0",
20
- "bpk-mixins": "^29.0.0",
17
+ "@skyscanner/bpk-foundations-web": "^8.0.0",
18
+ "bpk-component-calendar": "^11.1.13",
19
+ "bpk-component-text": "^7.0.2",
20
+ "bpk-mixins": "^31.0.0",
21
21
  "bpk-react-utils": "^4.1.1",
22
22
  "date-fns": "^2.21.1",
23
23
  "prop-types": "^15.5.8",
24
24
  "react-virtualized": "^9.22.3"
25
25
  },
26
26
  "devDependencies": {
27
- "bpk-storybook-utils": "^1.1.5"
27
+ "bpk-storybook-utils": "^1.1.7"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "react": "^16.3.0 || ^17.0.0"
@@ -21,7 +21,7 @@ import {
21
21
  BpkCalendarGridHeader,
22
22
  withCalendarState,
23
23
  composeCalendar,
24
- } from '../../bpk-component-calendar';
24
+ } from 'bpk-component-calendar';
25
25
 
26
26
  import BpkscrollableCalendarDate from './BpkScrollableCalendarDate';
27
27
  import BpkScrollableCalendarGridList from './BpkScrollableCalendarGridList';
@@ -18,11 +18,10 @@
18
18
 
19
19
  import PropTypes from 'prop-types';
20
20
  import React, { PureComponent } from 'react';
21
-
22
21
  import {
23
22
  BpkCalendarDate,
24
23
  BpkCalendarDatePropTypes,
25
- } from '../../bpk-component-calendar';
24
+ } from 'bpk-component-calendar';
26
25
 
27
26
  class BpkScrollableCalendarDate extends PureComponent {
28
27
  render() {
@@ -17,13 +17,12 @@
17
17
  */
18
18
 
19
19
  import React from 'react';
20
-
21
- import { cssModules } from '../../bpk-react-utils';
22
- import BpkText, { TEXT_STYLES } from '../../bpk-component-text';
20
+ import { cssModules } from 'bpk-react-utils';
21
+ import BpkText, { TEXT_STYLES } from 'bpk-component-text';
23
22
  import {
24
23
  BpkCalendarGrid,
25
24
  BpkCalendarGridPropTypes,
26
- } from '../../bpk-component-calendar';
25
+ } from 'bpk-component-calendar';
27
26
 
28
27
  import STYLES from './BpkScrollableCalendarGrid.module.scss';
29
28
 
@@ -18,6 +18,8 @@
18
18
 
19
19
  import PropTypes from 'prop-types';
20
20
  import React from 'react';
21
+ import { cssModules, deprecated } from 'bpk-react-utils';
22
+ import { DateUtils, BpkCalendarGridPropTypes } from 'bpk-component-calendar';
21
23
  import { startOfDay, startOfMonth } from 'date-fns';
22
24
  import {
23
25
  AutoSizer,
@@ -26,12 +28,6 @@ import {
26
28
  CellMeasurerCache,
27
29
  } from 'react-virtualized';
28
30
 
29
- import { cssModules, deprecated } from '../../bpk-react-utils';
30
- import {
31
- DateUtils,
32
- BpkCalendarGridPropTypes,
33
- } from '../../bpk-component-calendar';
34
-
35
31
  import STYLES from './BpkScrollableCalendarGridList.module.scss';
36
32
  import BpkScrollableCalendarGrid from './BpkScrollableCalendarGrid';
37
33
  import getMonthsArray from './utils';
@@ -16,7 +16,7 @@
16
16
  * limitations under the License.
17
17
  */
18
18
 
19
- import { DateUtils } from '../../bpk-component-calendar';
19
+ import { DateUtils } from 'bpk-component-calendar';
20
20
 
21
21
  const getMonthsArray = (startDate, count) => {
22
22
  const months = [];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bpk-component-section-list",
3
- "version": "3.2.7",
3
+ "version": "3.2.9",
4
4
  "description": "Backpack section list component.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -14,15 +14,15 @@
14
14
  },
15
15
  "gitHead": "f9f94f86d7cfc75e43bc6ad5eb01b23e62a89cc8",
16
16
  "dependencies": {
17
- "@skyscanner/bpk-foundations-web": "^6.2.0",
18
- "bpk-component-icon": "^9.2.7",
19
- "bpk-component-text": "^7.0.0",
20
- "bpk-mixins": "^29.0.0",
17
+ "@skyscanner/bpk-foundations-web": "^8.0.0",
18
+ "bpk-component-icon": "^9.2.9",
19
+ "bpk-component-text": "^7.0.2",
20
+ "bpk-mixins": "^31.0.0",
21
21
  "bpk-react-utils": "^4.1.1",
22
22
  "prop-types": "^15.7.2"
23
23
  },
24
24
  "devDependencies": {
25
- "bpk-storybook-utils": "^1.1.5"
25
+ "bpk-storybook-utils": "^1.1.7"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "react": "^16.3.0 || ^17.0.0"
@@ -20,10 +20,9 @@
20
20
 
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { type Node } from 'react';
23
-
24
- import { cssModules } from '../../bpk-react-utils';
25
- import BpkLargeChevronRightIcon from '../../bpk-component-icon/lg/chevron-right';
26
- import { withRtlSupport } from '../../bpk-component-icon';
23
+ import { cssModules } from 'bpk-react-utils';
24
+ import BpkLargeChevronRightIcon from 'bpk-component-icon/lg/chevron-right';
25
+ import { withRtlSupport } from 'bpk-component-icon';
27
26
 
28
27
  import STYLES from './BpkSectionListItem.module.scss';
29
28
 
@@ -20,9 +20,8 @@
20
20
 
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { type Node } from 'react';
23
-
24
- import { cssModules } from '../../bpk-react-utils';
25
- import BpkText, { TEXT_STYLES } from '../../bpk-component-text';
23
+ import { cssModules } from 'bpk-react-utils';
24
+ import BpkText, { TEXT_STYLES } from 'bpk-component-text';
26
25
 
27
26
  import STYLES from './BpkSectionListSection.module.scss';
28
27
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bpk-component-select",
3
- "version": "5.1.6",
3
+ "version": "5.1.8",
4
4
  "description": "Backpack select component.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -14,12 +14,12 @@
14
14
  },
15
15
  "gitHead": "5c156b97cb0ba5e75851d3c763334578714c895e",
16
16
  "dependencies": {
17
- "bpk-mixins": "^29.0.0",
17
+ "bpk-mixins": "^31.0.0",
18
18
  "bpk-react-utils": "^4.1.1",
19
19
  "prop-types": "^15.7.2"
20
20
  },
21
21
  "devDependencies": {
22
- "bpk-storybook-utils": "^1.1.5"
22
+ "bpk-storybook-utils": "^1.1.7"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": "^16.3.0 || ^17.0.0"
@@ -19,8 +19,7 @@
19
19
 
20
20
  import PropTypes from 'prop-types';
21
21
  import React, { type Element } from 'react';
22
-
23
- import { cssModules } from '../../bpk-react-utils';
22
+ import { cssModules } from 'bpk-react-utils';
24
23
 
25
24
  import STYLES from './BpkSelect.module.scss';
26
25
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bpk-component-skip-link",
3
- "version": "2.1.6",
3
+ "version": "2.1.8",
4
4
  "description": "Backpack skip-link component.",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -13,7 +13,7 @@
13
13
  "react": "^16.3.0 || ^17.0.0"
14
14
  },
15
15
  "dependencies": {
16
- "bpk-mixins": "^29.0.0",
16
+ "bpk-mixins": "^31.0.0",
17
17
  "bpk-react-utils": "^4.1.1",
18
18
  "prop-types": "^15.5.8"
19
19
  },