@skyscanner/backpack-web 2.0.0 → 3.0.1

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 (216) hide show
  1. package/bpk-animate-height/package.json +26 -0
  2. package/bpk-component-accordion/package.json +31 -0
  3. package/bpk-component-accordion/src/BpkAccordion.js +2 -1
  4. package/bpk-component-accordion/src/BpkAccordionItem.js +6 -5
  5. package/bpk-component-accordion/src/withAccordionItemState.js +2 -1
  6. package/bpk-component-accordion/src/withSingleItemAccordionState.js +2 -1
  7. package/bpk-component-aria-live/package.json +31 -0
  8. package/bpk-component-aria-live/src/BpkAriaLive.js +2 -1
  9. package/bpk-component-autosuggest/package.json +29 -0
  10. package/bpk-component-autosuggest/src/BpkAutosuggest.js +3 -2
  11. package/bpk-component-autosuggest/src/BpkAutosuggestSuggestion.js +2 -1
  12. package/bpk-component-badge/package.json +29 -0
  13. package/bpk-component-badge/src/BpkBadge.js +2 -1
  14. package/bpk-component-banner-alert/package.json +34 -0
  15. package/bpk-component-banner-alert/src/AnimateAndFade.js +3 -2
  16. package/bpk-component-banner-alert/src/BpkBannerAlertInner.js +8 -7
  17. package/bpk-component-banner-alert/src/withBannerAlertState.js +2 -1
  18. package/bpk-component-barchart/package.json +35 -0
  19. package/bpk-component-barchart/src/BpkBarchart.js +3 -2
  20. package/bpk-component-barchart/src/BpkBarchartBar.js +5 -3
  21. package/bpk-component-barchart/src/BpkChartAxis.js +2 -1
  22. package/bpk-component-barchart/src/BpkChartDataTable.js +2 -1
  23. package/bpk-component-barchart/src/BpkChartGridLines.js +2 -1
  24. package/bpk-component-barchart/src/RTLtransforms.js +1 -1
  25. package/bpk-component-blockquote/package.json +24 -0
  26. package/bpk-component-blockquote/src/BpkBlockquote.js +2 -1
  27. package/bpk-component-breadcrumb/package.json +27 -0
  28. package/bpk-component-breadcrumb/src/BpkBreadcrumb.js +2 -1
  29. package/bpk-component-breadcrumb/src/BpkBreadcrumbItem.js +6 -5
  30. package/bpk-component-breakpoint/package.json +28 -0
  31. package/bpk-component-button/package.json +26 -0
  32. package/bpk-component-calendar/package.json +34 -0
  33. package/bpk-component-calendar/src/BpkCalendarContainer.js +2 -1
  34. package/bpk-component-calendar/src/BpkCalendarDate.js +2 -1
  35. package/bpk-component-calendar/src/BpkCalendarGrid.js +2 -1
  36. package/bpk-component-calendar/src/BpkCalendarGridHeader.js +2 -1
  37. package/bpk-component-calendar/src/BpkCalendarGridTransition.js +6 -3
  38. package/bpk-component-calendar/src/BpkCalendarNav.js +6 -5
  39. package/bpk-component-calendar/src/Week.js +5 -2
  40. package/bpk-component-calendar/src/composeCalendar.js +2 -1
  41. package/bpk-component-card/package.json +28 -0
  42. package/bpk-component-card/src/BpkCard.js +2 -1
  43. package/bpk-component-checkbox/package.json +29 -0
  44. package/bpk-component-checkbox/src/BpkCheckbox.js +2 -1
  45. package/bpk-component-chip/package.json +29 -0
  46. package/bpk-component-chip/src/BpkDismissibleChip.js +2 -1
  47. package/bpk-component-chip/src/BpkSelectableChip.js +3 -2
  48. package/bpk-component-close-button/package.json +28 -0
  49. package/bpk-component-close-button/src/BpkCloseButton.js +3 -2
  50. package/bpk-component-code/package.json +24 -0
  51. package/bpk-component-code/src/BpkCode.js +2 -1
  52. package/bpk-component-code/src/BpkCodeBlock.js +2 -1
  53. package/bpk-component-content-container/package.json +24 -0
  54. package/bpk-component-content-container/src/BpkContentContainer.js +2 -1
  55. package/bpk-component-datatable/package.json +30 -0
  56. package/bpk-component-datatable/src/BpkDataTable.js +2 -1
  57. package/bpk-component-datatable/src/BpkDataTableColumn.js +2 -1
  58. package/bpk-component-datatable/src/bpkHeaderRenderer.js +5 -4
  59. package/bpk-component-datepicker/index.js +1 -1
  60. package/bpk-component-datepicker/package.json +33 -0
  61. package/bpk-component-datepicker/src/BpkDatepicker.js +7 -6
  62. package/bpk-component-datepicker/src/themeAttributes.js +3 -3
  63. package/bpk-component-description-list/package.json +24 -0
  64. package/bpk-component-description-list/src/ComponentFactory.js +2 -1
  65. package/bpk-component-dialog/package.json +32 -0
  66. package/bpk-component-dialog/src/BpkDialog.js +3 -2
  67. package/bpk-component-dialog/src/BpkDialogInner.js +4 -3
  68. package/bpk-component-drawer/package.json +34 -0
  69. package/bpk-component-drawer/src/BpkDrawer.js +3 -2
  70. package/bpk-component-drawer/src/BpkDrawerContent.js +4 -3
  71. package/bpk-component-drawer/src/themeAttributes.js +1 -1
  72. package/bpk-component-fieldset/package.json +36 -0
  73. package/bpk-component-fieldset/src/BpkFieldset.js +4 -3
  74. package/bpk-component-flare/package.json +29 -0
  75. package/bpk-component-flare/src/BpkContentBubble.js +2 -1
  76. package/bpk-component-flare/src/BpkFlareBar.js +2 -1
  77. package/bpk-component-form-validation/package.json +34 -0
  78. package/bpk-component-form-validation/src/BpkFormValidation.js +5 -4
  79. package/bpk-component-graphic-promotion/package.json +26 -0
  80. package/bpk-component-graphic-promotion/src/BpkGraphicPromo.js +5 -4
  81. package/bpk-component-grid/package.json +24 -0
  82. package/bpk-component-grid/src/BpkGridColumn.js +2 -1
  83. package/bpk-component-grid/src/BpkGridContainer.js +2 -1
  84. package/bpk-component-grid/src/BpkGridRow.js +2 -1
  85. package/bpk-component-grid-toggle/package.json +25 -0
  86. package/bpk-component-grid-toggle/src/BpkGridToggle.js +3 -2
  87. package/bpk-component-horizontal-nav/package.json +30 -0
  88. package/bpk-component-horizontal-nav/src/BpkHorizontalNav.js +3 -2
  89. package/bpk-component-horizontal-nav/src/BpkHorizontalNavItem.js +2 -1
  90. package/bpk-component-icon/package.json +34 -0
  91. package/bpk-component-icon/src/classNameModifierHOCFactory.js +2 -1
  92. package/bpk-component-icon/src/withAlignment.js +2 -1
  93. package/bpk-component-icon/src/withDescription.js +2 -1
  94. package/bpk-component-icon/src/withRtlSupport.js +1 -1
  95. package/bpk-component-image/package.json +31 -0
  96. package/bpk-component-image/src/BpkBackgroundImage.js +3 -2
  97. package/bpk-component-image/src/BpkImage.js +3 -2
  98. package/bpk-component-image/src/withLazyLoading.js +2 -1
  99. package/bpk-component-image/src/withLoadingBehavior.js +2 -1
  100. package/bpk-component-infinite-scroll/package.json +31 -0
  101. package/bpk-component-infinite-scroll/src/withInfiniteScroll.js +2 -1
  102. package/bpk-component-input/package.json +30 -0
  103. package/bpk-component-input/src/BpkClearButton.js +4 -3
  104. package/bpk-component-input/src/BpkInput.js +2 -1
  105. package/bpk-component-input/src/withOpenEvents.js +2 -1
  106. package/bpk-component-label/package.json +24 -0
  107. package/bpk-component-label/src/BpkLabel.js +2 -1
  108. package/bpk-component-link/package.json +28 -0
  109. package/bpk-component-link/src/BpkButtonLink.js +2 -1
  110. package/bpk-component-link/src/BpkLink.js +2 -1
  111. package/bpk-component-list/package.json +24 -0
  112. package/bpk-component-list/src/BpkList.js +2 -1
  113. package/bpk-component-list/src/BpkListItem.js +2 -1
  114. package/bpk-component-loading-button/package.json +30 -0
  115. package/bpk-component-loading-button/src/BpkLoadingButton.js +7 -6
  116. package/bpk-component-map/package.json +32 -0
  117. package/bpk-component-map/src/BpkIconMarker.js +2 -1
  118. package/bpk-component-map/src/BpkIconMarkerBackground.js +2 -1
  119. package/bpk-component-map/src/BpkMap.js +2 -1
  120. package/bpk-component-map/src/BpkPriceMarker.js +3 -2
  121. package/bpk-component-map/src/DefaultLoadingElement.js +3 -2
  122. package/bpk-component-mobile-scroll-container/package.json +28 -0
  123. package/bpk-component-mobile-scroll-container/src/BpkMobileScrollContainer.js +2 -1
  124. package/bpk-component-modal/package.json +33 -0
  125. package/bpk-component-modal/src/BpkModal.js +3 -2
  126. package/bpk-component-modal/src/BpkModalInner.js +5 -4
  127. package/bpk-component-modal/src/themeAttributes.js +1 -1
  128. package/bpk-component-navigation-bar/package.json +32 -0
  129. package/bpk-component-navigation-bar/src/BpkNavigationBar.js +3 -2
  130. package/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.js +3 -2
  131. package/bpk-component-navigation-bar/src/BpkNavigationBarIconButton.js +3 -2
  132. package/bpk-component-navigation-stack/package.json +32 -0
  133. package/bpk-component-navigation-stack/src/BpkNavigationStack.js +2 -1
  134. package/bpk-component-nudger/package.json +32 -0
  135. package/bpk-component-nudger/src/BpkConfigurableNudger.js +7 -6
  136. package/bpk-component-nudger/src/BpkNudger.js +2 -1
  137. package/bpk-component-nudger/src/themeAttributes.js +1 -1
  138. package/bpk-component-overlay/package.json +28 -0
  139. package/bpk-component-overlay/src/BpkOverlay.js +2 -1
  140. package/bpk-component-pagination/package.json +28 -0
  141. package/bpk-component-pagination/src/BpkPagination.js +2 -1
  142. package/bpk-component-pagination/src/BpkPaginationList.js +2 -1
  143. package/bpk-component-pagination/src/BpkPaginationNudger.js +5 -4
  144. package/bpk-component-pagination/src/BpkPaginationPage.js +3 -2
  145. package/bpk-component-pagination/src/themeAttributes.js +1 -1
  146. package/bpk-component-panel/package.json +24 -0
  147. package/bpk-component-panel/src/BpkPanel.js +2 -1
  148. package/bpk-component-phone-input/package.json +33 -0
  149. package/bpk-component-phone-input/src/BpkPhoneInput.js +5 -4
  150. package/bpk-component-popover/README.md +2 -2
  151. package/bpk-component-popover/package.json +35 -0
  152. package/bpk-component-popover/src/BpkPopover.js +6 -4
  153. package/bpk-component-popover/src/BpkPopover.module.scss +28 -26
  154. package/bpk-component-popover/src/BpkPopoverPortal.js +45 -18
  155. package/bpk-component-popover/src/themeAttributes.js +1 -1
  156. package/bpk-component-progress/package.json +30 -0
  157. package/bpk-component-progress/src/BpkProgress.js +2 -1
  158. package/bpk-component-radio/package.json +28 -0
  159. package/bpk-component-radio/src/BpkRadio.js +2 -1
  160. package/bpk-component-rating/package.json +29 -0
  161. package/bpk-component-rating/src/BpkRating.js +9 -3
  162. package/bpk-component-rtl-toggle/package.json +24 -0
  163. package/bpk-component-rtl-toggle/src/BpkRtlToggle.js +2 -1
  164. package/bpk-component-rtl-toggle/src/updateOnDirectionChange.js +2 -1
  165. package/bpk-component-scrollable-calendar/index.js +1 -1
  166. package/bpk-component-scrollable-calendar/package.json +32 -0
  167. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendar.js +1 -1
  168. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarDate.js +2 -1
  169. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGrid.js +4 -3
  170. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGridList.js +6 -2
  171. package/bpk-component-scrollable-calendar/src/utils.js +1 -1
  172. package/bpk-component-section-list/package.json +30 -0
  173. package/bpk-component-section-list/src/BpkSectionListItem.js +4 -3
  174. package/bpk-component-section-list/src/BpkSectionListSection.js +3 -2
  175. package/bpk-component-select/package.json +27 -0
  176. package/bpk-component-select/src/BpkSelect.js +2 -1
  177. package/bpk-component-skip-link/package.json +24 -0
  178. package/bpk-component-skip-link/src/BpkSkipLink.js +2 -1
  179. package/bpk-component-slider/package.json +29 -0
  180. package/bpk-component-slider/src/BpkSlider.js +2 -1
  181. package/bpk-component-spinner/package.json +25 -0
  182. package/bpk-component-spinner/src/BpkExtraLargeSpinner.js +2 -1
  183. package/bpk-component-spinner/src/BpkLargeSpinner.js +2 -1
  184. package/bpk-component-spinner/src/BpkSpinner.js +2 -1
  185. package/bpk-component-star-rating/package.json +29 -0
  186. package/bpk-component-star-rating/src/BpkInteractiveStar.js +2 -1
  187. package/bpk-component-star-rating/src/BpkInteractiveStarRating.js +2 -1
  188. package/bpk-component-star-rating/src/BpkStar.js +9 -8
  189. package/bpk-component-star-rating/src/BpkStarRating.js +8 -2
  190. package/bpk-component-star-rating/src/withInteractiveStarRatingState.js +2 -1
  191. package/bpk-component-switch/package.json +24 -0
  192. package/bpk-component-switch/src/BpkSwitch.js +2 -1
  193. package/bpk-component-table/package.json +24 -0
  194. package/bpk-component-table/src/BpkTable.js +2 -1
  195. package/bpk-component-table/src/BpkTableCell.js +2 -1
  196. package/bpk-component-table/src/BpkTableHeadCell.js +2 -1
  197. package/bpk-component-text/package.json +24 -0
  198. package/bpk-component-text/src/BpkText.js +2 -1
  199. package/bpk-component-textarea/package.json +28 -0
  200. package/bpk-component-textarea/src/BpkTextarea.js +2 -1
  201. package/bpk-component-theme-toggle/package.json +28 -0
  202. package/bpk-component-theme-toggle/src/BpkThemeToggle.js +4 -3
  203. package/bpk-component-theme-toggle/src/updateOnThemeChange.js +2 -1
  204. package/bpk-component-ticket/package.json +28 -0
  205. package/bpk-component-ticket/src/BpkTicket.js +2 -1
  206. package/bpk-component-tooltip/README.md +2 -2
  207. package/bpk-component-tooltip/package.json +29 -0
  208. package/bpk-component-tooltip/src/BpkTooltip.js +8 -2
  209. package/bpk-component-tooltip/src/BpkTooltip.module.scss +46 -55
  210. package/bpk-component-tooltip/src/BpkTooltipPortal.js +23 -13
  211. package/bpk-react-utils/package.json +25 -0
  212. package/bpk-scrim-utils/package.json +25 -0
  213. package/bpk-scrim-utils/src/BpkScrim.js +2 -1
  214. package/bpk-scrim-utils/src/withScrim.js +2 -1
  215. package/bpk-theming/package.json +23 -0
  216. package/package.json +1 -2
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "bpk-component-text",
3
+ "version": "7.0.4",
4
+ "description": "Backpack text component.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github.com:Skyscanner/backpack.git"
9
+ },
10
+ "author": "Backpack Design System <backpack@skyscanner.net>",
11
+ "main": "index.js",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "gitHead": "f9f94f86d7cfc75e43bc6ad5eb01b23e62a89cc8",
16
+ "dependencies": {
17
+ "bpk-mixins": "^31.1.1",
18
+ "bpk-react-utils": "^4.1.2",
19
+ "prop-types": "^15.7.2"
20
+ },
21
+ "peerDependencies": {
22
+ "react": "^16.3.0 || ^17.0.0"
23
+ }
24
+ }
@@ -20,7 +20,8 @@
20
20
 
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { type Node } from 'react';
23
- import { cssModules, deprecated } from 'bpk-react-utils';
23
+
24
+ import { cssModules, deprecated } from '../../bpk-react-utils';
24
25
 
25
26
  import STYLES from './BpkText.module.scss';
26
27
 
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "bpk-component-textarea",
3
+ "version": "4.2.10",
4
+ "description": "Backpack textarea component.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github.com:Skyscanner/backpack.git"
9
+ },
10
+ "author": "Backpack Design System <backpack@skyscanner.net>",
11
+ "main": "index.js",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "gitHead": "5c156b97cb0ba5e75851d3c763334578714c895e",
16
+ "dependencies": {
17
+ "bpk-mixins": "^31.1.1",
18
+ "bpk-react-utils": "^4.1.2",
19
+ "prop-types": "^15.7.2"
20
+ },
21
+ "devDependencies": {
22
+ "bpk-component-label": "^5.1.10",
23
+ "bpk-storybook-utils": "^1.1.9"
24
+ },
25
+ "peerDependencies": {
26
+ "react": "^16.3.0 || ^17.0.0"
27
+ }
28
+ }
@@ -20,7 +20,8 @@
20
20
 
21
21
  import PropTypes from 'prop-types';
22
22
  import React from 'react';
23
- import { cssModules } from 'bpk-react-utils';
23
+
24
+ import { cssModules } from '../../bpk-react-utils';
24
25
 
25
26
  import STYLES from './BpkTextarea.module.scss';
26
27
 
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "bpk-component-theme-toggle",
3
+ "version": "3.1.10",
4
+ "description": "Backpack theme toggle component.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github.com:Skyscanner/backpack.git"
9
+ },
10
+ "author": "Backpack Design System <backpack@skyscanner.net>",
11
+ "main": "index.js",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "gitHead": "5c156b97cb0ba5e75851d3c763334578714c895e",
16
+ "dependencies": {
17
+ "@skyscanner/bpk-foundations-web": "^8.0.0",
18
+ "bpk-component-label": "^5.1.10",
19
+ "bpk-component-select": "^5.1.10",
20
+ "bpk-mixins": "^31.1.1",
21
+ "bpk-react-utils": "^4.1.2",
22
+ "konami": "^1.6.2",
23
+ "prop-types": "^15.7.2"
24
+ },
25
+ "peerDependencies": {
26
+ "react": "^16.3.0 || ^17.0.0"
27
+ }
28
+ }
@@ -18,9 +18,10 @@
18
18
 
19
19
  import React from 'react';
20
20
  import Konami from 'konami';
21
- import BpkLabel from 'bpk-component-label';
22
- import BpkSelect from 'bpk-component-select';
23
- import { cssModules } from 'bpk-react-utils';
21
+
22
+ import BpkLabel from '../../bpk-component-label';
23
+ import BpkSelect from '../../bpk-component-select';
24
+ import { cssModules } from '../../bpk-react-utils';
24
25
 
25
26
  import STYLES from './BpkThemeToggle.module.scss';
26
27
  import bpkCustomThemes from './theming';
@@ -18,7 +18,8 @@
18
18
 
19
19
  import React, { Component } from 'react';
20
20
  import PropTypes from 'prop-types';
21
- import { wrapDisplayName } from 'bpk-react-utils';
21
+
22
+ import { wrapDisplayName } from '../../bpk-react-utils';
22
23
 
23
24
  import { getHtmlElement, THEME_CHANGE_EVENT } from './utils';
24
25
 
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "bpk-component-ticket",
3
+ "version": "4.1.11",
4
+ "description": "Backpack ticket component.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github.com:Skyscanner/backpack.git"
9
+ },
10
+ "author": "Backpack Design System <backpack@skyscanner.net>",
11
+ "main": "index.js",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "gitHead": "f9f94f86d7cfc75e43bc6ad5eb01b23e62a89cc8",
16
+ "dependencies": {
17
+ "bpk-mixins": "^31.1.1",
18
+ "bpk-react-utils": "^4.1.2",
19
+ "prop-types": "^15.7.2"
20
+ },
21
+ "peerDependencies": {
22
+ "react": "^16.3.0 || ^17.0.0"
23
+ },
24
+ "devDependencies": {
25
+ "bpk-component-button": "^6.2.5",
26
+ "bpk-component-icon": "^9.2.11"
27
+ }
28
+ }
@@ -20,7 +20,8 @@
20
20
 
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { type Node } from 'react';
23
- import { cssModules } from 'bpk-react-utils';
23
+
24
+ import { cssModules } from '../../bpk-react-utils';
24
25
 
25
26
  import STYLES from './BpkTicket.module.scss';
26
27
 
@@ -39,7 +39,7 @@ const App = () => (
39
39
  | padded | bool | false | true |
40
40
  | portalStyle | object | false | null |
41
41
  | portalClassName | string | false | null |
42
- | popperModifiers | object | false | null |
42
+ | popperModifiers | arrayOf(object) | false | null |
43
43
  | renderTarget | func | false | null |
44
44
  | type | oneOf(`TOOLTIP_TYPES.light`, `TOOLTIP_TYPES.dark`) | false | `TOOLTIP_TYPES.light` |
45
45
 
@@ -53,4 +53,4 @@ The label will be used on the `target` element, so any existing `aria-label` att
53
53
 
54
54
  #### `popperModifiers`
55
55
 
56
- Please refer to the [documentation](https://github.com/FezVrasta/popper.js/blob/v1.12.9/docs/_includes/popper-documentation.md#modifiers) for the underlying positioning library "Popper.js". You can achieve various behaviours such as allowing the tooltip to overflow the viewport etc.
56
+ Please refer to the [documentation](https://popper.js.org/docs/v2/modifiers/) for the underlying positioning library "Popper.js". You can achieve various behaviours such as allowing the tooltip to overflow the viewport etc.
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "bpk-component-tooltip",
3
+ "version": "7.0.0",
4
+ "description": "Backpack tooltip component.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github.com:Skyscanner/backpack.git"
9
+ },
10
+ "author": "Backpack Design System <backpack@skyscanner.net>",
11
+ "main": "index.js",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "gitHead": "f9f94f86d7cfc75e43bc6ad5eb01b23e62a89cc8",
16
+ "dependencies": {
17
+ "@popperjs/core": "^2.11.5",
18
+ "bpk-mixins": "^31.1.1",
19
+ "bpk-react-utils": "^4.1.2",
20
+ "prop-types": "^15.7.2"
21
+ },
22
+ "peerDependencies": {
23
+ "react": "^16.3.0 || ^17.0.0"
24
+ },
25
+ "devDependencies": {
26
+ "@skyscanner/bpk-foundations-web": "^8.0.0",
27
+ "bpk-component-text": "^7.0.4"
28
+ }
29
+ }
@@ -26,7 +26,8 @@ The actual component that developers create (i.e. the default export from this p
26
26
 
27
27
  import PropTypes from 'prop-types';
28
28
  import React, { type Node } from 'react';
29
- import { TransitionInitialMount, cssModules } from 'bpk-react-utils';
29
+
30
+ import { TransitionInitialMount, cssModules } from '../../bpk-react-utils';
30
31
 
31
32
  import STYLES from './BpkTooltip.module.scss';
32
33
  import { ARROW_ID, TOOLTIP_TYPES } from './constants';
@@ -71,7 +72,12 @@ const BpkTooltip = (props: TooltipProps) => {
71
72
  className={classNames}
72
73
  {...rest}
73
74
  >
74
- <span id={ARROW_ID} className={arrowClassNames} role="presentation" />
75
+ <span
76
+ id={ARROW_ID}
77
+ data-popper-arrow
78
+ className={arrowClassNames}
79
+ role="presentation"
80
+ />
75
81
  <div className={innerClassNames}>{children}</div>
76
82
  </section>
77
83
  </TransitionInitialMount>
@@ -19,27 +19,13 @@
19
19
  @import '~bpk-mixins';
20
20
  $bpk-spacing-v2: true;
21
21
 
22
- $arrow-size: bpk-spacing-sm();
22
+ $arrow-size: bpk-spacing-md();
23
+ $arrow-inset-margin: -($bpk-one-pixel-rem * 3);
24
+ $light-arrow-border-color: $bpk-color-sky-gray-tint-06;
23
25
  $dark-background-color: $bpk-color-sky-gray;
24
26
 
25
27
  .bpk-tooltip-portal {
26
28
  z-index: $bpk-zindex-tooltip;
27
-
28
- &[x-placement='top'] {
29
- margin-bottom: $arrow-size;
30
- }
31
-
32
- &[x-placement='right'] {
33
- margin-left: $arrow-size;
34
- }
35
-
36
- &[x-placement='bottom'] {
37
- margin-top: $arrow-size;
38
- }
39
-
40
- &[x-placement='left'] {
41
- margin-right: $arrow-size;
42
- }
43
29
  }
44
30
 
45
31
  .bpk-tooltip {
@@ -51,24 +37,26 @@ $dark-background-color: $bpk-color-sky-gray;
51
37
  &--appear {
52
38
  opacity: 0;
53
39
 
54
- .bpk-tooltip-portal[x-placement='top'] &:not(.bpk-tooltip--appear-active) {
40
+ .bpk-tooltip-portal[data-popper-placement='top']
41
+ &:not(.bpk-tooltip--appear-active) {
55
42
  transform: translate(0, -1rem);
56
43
  transition: none;
57
44
  }
58
45
 
59
- .bpk-tooltip-portal[x-placement='right']
46
+ .bpk-tooltip-portal[data-popper-placement='right']
60
47
  &:not(.bpk-tooltip--appear-active) {
61
48
  transform: translate(1rem, 0);
62
49
  transition: none;
63
50
  }
64
51
 
65
- .bpk-tooltip-portal[x-placement='bottom']
52
+ .bpk-tooltip-portal[data-popper-placement='bottom']
66
53
  &:not(.bpk-tooltip--appear-active) {
67
54
  transform: translate(0, 1rem);
68
55
  transition: none;
69
56
  }
70
57
 
71
- .bpk-tooltip-portal[x-placement='left'] &:not(.bpk-tooltip--appear-active) {
58
+ .bpk-tooltip-portal[data-popper-placement='left']
59
+ &:not(.bpk-tooltip--appear-active) {
72
60
  transform: translate(-1rem, 0);
73
61
  transition: none;
74
62
  }
@@ -82,55 +70,58 @@ $dark-background-color: $bpk-color-sky-gray;
82
70
  }
83
71
 
84
72
  &__arrow {
85
- @include bpk-layer-arrow($arrow-size);
86
-
87
- .bpk-tooltip-portal[x-placement='top'] & {
88
- @include bpk-layer-arrow-bottom($arrow-size);
73
+ position: aboslute;
74
+ width: $arrow-size;
75
+ height: $arrow-size;
76
+ transform: rotate(45deg);
77
+ border: $bpk-one-pixel-rem solid transparent;
78
+ background: inherit;
79
+ background-color: $bpk-color-white;
80
+
81
+ .bpk-tooltip-portal[data-popper-placement='top'] & {
82
+ bottom: $arrow-inset-margin;
83
+ border-right-color: $light-arrow-border-color;
84
+ border-bottom-color: $light-arrow-border-color;
89
85
  }
90
86
 
91
- .bpk-tooltip-portal[x-placement='right'] & {
92
- @include bpk-layer-arrow-left($arrow-size);
87
+ .bpk-tooltip-portal[data-popper-placement='right'] & {
88
+ left: $arrow-inset-margin;
89
+ border-bottom-color: $light-arrow-border-color;
90
+ border-left-color: $light-arrow-border-color;
93
91
  }
94
92
 
95
- .bpk-tooltip-portal[x-placement='bottom'] & {
96
- @include bpk-layer-arrow-top($arrow-size);
93
+ .bpk-tooltip-portal[data-popper-placement='bottom'] & {
94
+ top: $arrow-inset-margin;
95
+ border-top-color: $light-arrow-border-color;
96
+ border-left-color: $light-arrow-border-color;
97
97
  }
98
98
 
99
- .bpk-tooltip-portal[x-placement='left'] & {
100
- @include bpk-layer-arrow-right($arrow-size);
99
+ .bpk-tooltip-portal[data-popper-placement='left'] & {
100
+ right: $arrow-inset-margin;
101
+ border-top-color: $light-arrow-border-color;
102
+ border-right-color: $light-arrow-border-color;
101
103
  }
102
104
 
103
105
  &--dark {
104
- .bpk-tooltip-portal[x-placement='top'] & {
105
- @include bpk-layer-arrow-bottom(
106
- $arrow-size,
107
- $dark-background-color,
108
- $dark-background-color
109
- );
106
+ background-color: $dark-background-color;
107
+ .bpk-tooltip-portal[data-popper-placement='top'] & {
108
+ border-right-color: $dark-background-color;
109
+ border-bottom-color: $dark-background-color;
110
110
  }
111
111
 
112
- .bpk-tooltip-portal[x-placement='right'] & {
113
- @include bpk-layer-arrow-left(
114
- $arrow-size,
115
- $dark-background-color,
116
- $dark-background-color
117
- );
112
+ .bpk-tooltip-portal[data-popper-placement='right'] & {
113
+ border-bottom-color: $dark-background-color;
114
+ border-left-color: $dark-background-color;
118
115
  }
119
116
 
120
- .bpk-tooltip-portal[x-placement='bottom'] & {
121
- @include bpk-layer-arrow-top(
122
- $arrow-size,
123
- $dark-background-color,
124
- $dark-background-color
125
- );
117
+ .bpk-tooltip-portal[data-popper-placement='bottom'] & {
118
+ border-top-color: $dark-background-color;
119
+ border-left-color: $dark-background-color;
126
120
  }
127
121
 
128
- .bpk-tooltip-portal[x-placement='left'] & {
129
- @include bpk-layer-arrow-right(
130
- $arrow-size,
131
- $dark-background-color,
132
- $dark-background-color
133
- );
122
+ .bpk-tooltip-portal[data-popper-placement='left'] & {
123
+ border-top-color: $dark-background-color;
124
+ border-right-color: $dark-background-color;
134
125
  }
135
126
  }
136
127
  }
@@ -18,17 +18,17 @@
18
18
 
19
19
  /* @flow strict */
20
20
 
21
- import Popper from '@skyscanner/popper.js';
21
+ import { createPopper, basePlacements } from '@popperjs/core';
22
22
  import PropTypes from 'prop-types';
23
23
  import React, { Component, type Node, type Element } from 'react';
24
- import { Portal, cssModules } from 'bpk-react-utils';
24
+
25
+ import { Portal, cssModules } from '../../bpk-react-utils';
25
26
 
26
27
  import BpkTooltip, {
27
28
  propTypes as tooltipPropTypes,
28
29
  defaultProps as tooltipDefaultProps,
29
30
  type TooltipProps,
30
31
  } from './BpkTooltip';
31
- import { ARROW_ID } from './constants';
32
32
  import STYLES from './BpkTooltip.module.scss';
33
33
 
34
34
  const getClassName = cssModules(STYLES);
@@ -58,7 +58,7 @@ type State = {
58
58
  };
59
59
 
60
60
  class BpkTooltipPortal extends Component<Props, State> {
61
- popper: ?typeof Popper;
61
+ popper: ?typeof createPopper;
62
62
 
63
63
  targetRef: ?HTMLElement;
64
64
 
@@ -67,7 +67,7 @@ class BpkTooltipPortal extends Component<Props, State> {
67
67
  ariaLabel: PropTypes.string.isRequired,
68
68
  target: PropTypes.node.isRequired,
69
69
  children: PropTypes.node.isRequired,
70
- placement: PropTypes.oneOf(Popper.placements),
70
+ placement: PropTypes.oneOf(basePlacements),
71
71
  hideOnTouchDevices: PropTypes.bool,
72
72
  portalStyle: PropTypes.object, // eslint-disable-line react/forbid-prop-types
73
73
  portalClassName: PropTypes.string,
@@ -119,22 +119,32 @@ class BpkTooltipPortal extends Component<Props, State> {
119
119
  }
120
120
 
121
121
  onOpen = (tooltipElement: HTMLElement, targetElement: HTMLElement) => {
122
+ // The default modifiers for the popper
122
123
  // Note that GPU acceleration should be disabled otherwise Popper will use `translate3d`
123
124
  // which can cause blurriness in Safari and Chrome.
124
- this.popper = new Popper(targetElement, tooltipElement, {
125
- placement: this.props.placement,
126
- modifiers: {
127
- ...this.props.popperModifiers,
128
- computeStyle: {
125
+ const stdModifiers = [
126
+ {
127
+ name: 'computeStyles',
128
+ options: {
129
129
  gpuAcceleration: false,
130
130
  },
131
- arrow: {
132
- element: `#${ARROW_ID}`,
131
+ },
132
+ {
133
+ name: 'offset',
134
+ options: {
135
+ offset: [0, 8],
133
136
  },
134
137
  },
138
+ ];
139
+
140
+ this.popper = createPopper(targetElement, tooltipElement, {
141
+ placement: this.props.placement,
142
+ modifiers: this.props.popperModifiers
143
+ ? [...this.props.popperModifiers, ...stdModifiers]
144
+ : stdModifiers,
135
145
  });
136
146
 
137
- this.popper.scheduleUpdate();
147
+ this.popper.update();
138
148
  };
139
149
 
140
150
  beforeClose = (done: () => mixed) => {
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "bpk-react-utils",
3
+ "version": "4.1.2",
4
+ "description": "Utilities for Backpack's React components.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github.com:Skyscanner/backpack.git"
9
+ },
10
+ "author": "Backpack Design System <backpack@skyscanner.net>",
11
+ "main": "index.js",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "gitHead": "c2217d61875a1f3aa2bb9ed9583c50e3f1523501",
16
+ "dependencies": {
17
+ "object-assign": "^4.1.1",
18
+ "prop-types": "^15.7.2",
19
+ "react-transition-group": "^2.5.3"
20
+ },
21
+ "peerDependencies": {
22
+ "react": "^16.3.0 || ^17.0.0",
23
+ "react-dom": "^16.3.0 || ^17.0.0"
24
+ }
25
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "bpk-scrim-utils",
3
+ "version": "5.1.9",
4
+ "description": "Higher order component that adds an overlay behind components and manages scroll states.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github.com:Skyscanner/backpack.git"
9
+ },
10
+ "author": "Backpack Design System <backpack@skyscanner.net>",
11
+ "main": "index.js",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "gitHead": "5c156b97cb0ba5e75851d3c763334578714c895e",
16
+ "dependencies": {
17
+ "a11y-focus-scope": "^1.1.3",
18
+ "a11y-focus-store": "^1.0.0",
19
+ "bpk-mixins": "^31.1.1",
20
+ "bpk-react-utils": "^4.1.2"
21
+ },
22
+ "peerDependencies": {
23
+ "react": "^16.3.0 || ^17.0.0"
24
+ }
25
+ }
@@ -18,7 +18,8 @@
18
18
 
19
19
  import React from 'react';
20
20
  import PropTypes from 'prop-types';
21
- import { TransitionInitialMount, cssModules } from 'bpk-react-utils';
21
+
22
+ import { TransitionInitialMount, cssModules } from '../../bpk-react-utils';
22
23
 
23
24
  import STYLES from './bpk-scrim.module.scss';
24
25
 
@@ -20,12 +20,13 @@ import focusScope from 'a11y-focus-scope';
20
20
  import focusStore from 'a11y-focus-store';
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { Component } from 'react';
23
+
23
24
  import {
24
25
  cssModules,
25
26
  isDeviceIpad,
26
27
  isDeviceIphone,
27
28
  wrapDisplayName,
28
- } from 'bpk-react-utils';
29
+ } from '../../bpk-react-utils';
29
30
 
30
31
  import BpkScrim from './BpkScrim';
31
32
  import {
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "bpk-theming",
3
+ "version": "2.1.6",
4
+ "description": "Backpack theming utlities.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github.com:Skyscanner/backpack.git"
9
+ },
10
+ "author": "Backpack Design System <backpack@skyscanner.net>",
11
+ "main": "index.js",
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/"
14
+ },
15
+ "gitHead": "c2217d61875a1f3aa2bb9ed9583c50e3f1523501",
16
+ "dependencies": {
17
+ "@skyscanner/bpk-foundations-web": "^8.0.0",
18
+ "prop-types": "^15.7.2"
19
+ },
20
+ "peerDependencies": {
21
+ "react": "^16.0.0 || ^17.0.0"
22
+ }
23
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyscanner/backpack-web",
3
- "version": "2.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "Backpack Design System web library",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,7 +23,6 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@skyscanner/bpk-foundations-web": "^8.0.0",
26
- "@skyscanner/popper.js": "^1.12.9-beta.1",
27
26
  "a11y-focus-scope": "^1.1.3",
28
27
  "a11y-focus-store": "^1.0.0",
29
28
  "bpk-mixins": "^31.1.1",