@skyscanner/backpack-web 2.0.1 → 3.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 (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 +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 +31 -0
  8. package/bpk-component-aria-live/src/BpkAriaLive.js +1 -2
  9. package/bpk-component-autosuggest/package.json +29 -0
  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 +29 -0
  13. package/bpk-component-badge/src/BpkBadge.js +1 -2
  14. package/bpk-component-banner-alert/package.json +34 -0
  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 +35 -0
  19. package/bpk-component-barchart/src/BpkBarchart.js +2 -3
  20. package/bpk-component-barchart/src/BpkBarchartBar.js +4 -4
  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 +24 -0
  26. package/bpk-component-blockquote/src/BpkBlockquote.js +1 -2
  27. package/bpk-component-breadcrumb/package.json +27 -0
  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 +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 +1 -2
  34. package/bpk-component-calendar/src/BpkCalendarDate.js +1 -2
  35. package/bpk-component-calendar/src/BpkCalendarGrid.js +1 -2
  36. package/bpk-component-calendar/src/BpkCalendarGridHeader.js +1 -2
  37. package/bpk-component-calendar/src/BpkCalendarGridTransition.js +5 -4
  38. package/bpk-component-calendar/src/BpkCalendarNav.js +5 -6
  39. package/bpk-component-calendar/src/Week.js +4 -3
  40. package/bpk-component-calendar/src/composeCalendar.js +1 -2
  41. package/bpk-component-card/package.json +28 -0
  42. package/bpk-component-card/src/BpkCard.js +1 -2
  43. package/bpk-component-checkbox/package.json +29 -0
  44. package/bpk-component-checkbox/src/BpkCheckbox.js +1 -2
  45. package/bpk-component-chip/package.json +29 -0
  46. package/bpk-component-chip/src/BpkDismissibleChip.js +1 -2
  47. package/bpk-component-chip/src/BpkSelectableChip.js +2 -3
  48. package/bpk-component-close-button/package.json +28 -0
  49. package/bpk-component-close-button/src/BpkCloseButton.js +2 -3
  50. package/bpk-component-code/package.json +24 -0
  51. package/bpk-component-code/src/BpkCode.js +1 -2
  52. package/bpk-component-code/src/BpkCodeBlock.js +1 -2
  53. package/bpk-component-content-container/package.json +24 -0
  54. package/bpk-component-content-container/src/BpkContentContainer.js +1 -2
  55. package/bpk-component-datatable/package.json +30 -0
  56. package/bpk-component-datatable/src/BpkDataTable.js +1 -2
  57. package/bpk-component-datatable/src/BpkDataTableColumn.js +1 -2
  58. package/bpk-component-datatable/src/bpkHeaderRenderer.js +4 -5
  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 +6 -7
  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 +1 -2
  65. package/bpk-component-dialog/package.json +32 -0
  66. package/bpk-component-dialog/src/BpkDialog.js +2 -3
  67. package/bpk-component-dialog/src/BpkDialogInner.js +3 -4
  68. package/bpk-component-drawer/package.json +34 -0
  69. package/bpk-component-drawer/src/BpkDrawer.js +2 -3
  70. package/bpk-component-drawer/src/BpkDrawerContent.js +3 -4
  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 +3 -4
  74. package/bpk-component-flare/package.json +29 -0
  75. package/bpk-component-flare/src/BpkContentBubble.js +1 -2
  76. package/bpk-component-flare/src/BpkFlareBar.js +1 -2
  77. package/bpk-component-form-validation/package.json +34 -0
  78. package/bpk-component-form-validation/src/BpkFormValidation.js +4 -5
  79. package/bpk-component-graphic-promotion/package.json +26 -0
  80. package/bpk-component-graphic-promotion/src/BpkGraphicPromo.js +4 -5
  81. package/bpk-component-grid/package.json +24 -0
  82. package/bpk-component-grid/src/BpkGridColumn.js +1 -2
  83. package/bpk-component-grid/src/BpkGridContainer.js +1 -2
  84. package/bpk-component-grid/src/BpkGridRow.js +1 -2
  85. package/bpk-component-grid-toggle/package.json +25 -0
  86. package/bpk-component-grid-toggle/src/BpkGridToggle.js +2 -3
  87. package/bpk-component-horizontal-nav/package.json +30 -0
  88. package/bpk-component-horizontal-nav/src/BpkHorizontalNav.js +2 -3
  89. package/bpk-component-horizontal-nav/src/BpkHorizontalNavItem.js +1 -2
  90. package/bpk-component-icon/package.json +34 -0
  91. package/bpk-component-icon/src/classNameModifierHOCFactory.js +1 -2
  92. package/bpk-component-icon/src/withAlignment.js +1 -2
  93. package/bpk-component-icon/src/withDescription.js +1 -2
  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 +2 -3
  97. package/bpk-component-image/src/BpkImage.js +2 -3
  98. package/bpk-component-image/src/withLazyLoading.js +1 -2
  99. package/bpk-component-image/src/withLoadingBehavior.js +1 -2
  100. package/bpk-component-infinite-scroll/package.json +31 -0
  101. package/bpk-component-infinite-scroll/src/withInfiniteScroll.js +1 -2
  102. package/bpk-component-input/package.json +30 -0
  103. package/bpk-component-input/src/BpkClearButton.js +3 -4
  104. package/bpk-component-input/src/BpkInput.js +1 -2
  105. package/bpk-component-input/src/withOpenEvents.js +1 -2
  106. package/bpk-component-label/package.json +24 -0
  107. package/bpk-component-label/src/BpkLabel.js +1 -2
  108. package/bpk-component-link/package.json +28 -0
  109. package/bpk-component-link/src/BpkButtonLink.js +1 -2
  110. package/bpk-component-link/src/BpkLink.js +1 -2
  111. package/bpk-component-list/package.json +24 -0
  112. package/bpk-component-list/src/BpkList.js +1 -2
  113. package/bpk-component-list/src/BpkListItem.js +1 -2
  114. package/bpk-component-loading-button/package.json +30 -0
  115. package/bpk-component-loading-button/src/BpkLoadingButton.js +6 -7
  116. package/bpk-component-map/package.json +32 -0
  117. package/bpk-component-map/src/BpkIconMarker.js +1 -2
  118. package/bpk-component-map/src/BpkIconMarkerBackground.js +1 -2
  119. package/bpk-component-map/src/BpkMap.js +1 -2
  120. package/bpk-component-map/src/BpkPriceMarker.js +2 -3
  121. package/bpk-component-map/src/DefaultLoadingElement.js +2 -3
  122. package/bpk-component-mobile-scroll-container/package.json +28 -0
  123. package/bpk-component-mobile-scroll-container/src/BpkMobileScrollContainer.js +1 -2
  124. package/bpk-component-modal/package.json +33 -0
  125. package/bpk-component-modal/src/BpkModal.js +2 -3
  126. package/bpk-component-modal/src/BpkModalInner.js +4 -5
  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 +2 -3
  130. package/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.js +2 -3
  131. package/bpk-component-navigation-bar/src/BpkNavigationBarIconButton.js +2 -3
  132. package/bpk-component-navigation-stack/package.json +32 -0
  133. package/bpk-component-navigation-stack/src/BpkNavigationStack.js +1 -2
  134. package/bpk-component-nudger/package.json +32 -0
  135. package/bpk-component-nudger/src/BpkConfigurableNudger.js +6 -7
  136. package/bpk-component-nudger/src/BpkNudger.js +1 -2
  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 +1 -2
  140. package/bpk-component-pagination/package.json +28 -0
  141. package/bpk-component-pagination/src/BpkPagination.js +1 -2
  142. package/bpk-component-pagination/src/BpkPaginationList.js +1 -2
  143. package/bpk-component-pagination/src/BpkPaginationNudger.js +4 -5
  144. package/bpk-component-pagination/src/BpkPaginationPage.js +2 -3
  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 +1 -2
  148. package/bpk-component-phone-input/package.json +33 -0
  149. package/bpk-component-phone-input/src/BpkPhoneInput.js +4 -5
  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 +5 -5
  153. package/bpk-component-popover/src/BpkPopover.module.scss +28 -26
  154. package/bpk-component-popover/src/BpkPopoverPortal.js +44 -19
  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 +1 -2
  158. package/bpk-component-radio/package.json +28 -0
  159. package/bpk-component-radio/src/BpkRadio.js +1 -2
  160. package/bpk-component-rating/package.json +29 -0
  161. package/bpk-component-rating/src/BpkRating.js +8 -4
  162. package/bpk-component-rtl-toggle/package.json +24 -0
  163. package/bpk-component-rtl-toggle/src/BpkRtlToggle.js +1 -2
  164. package/bpk-component-rtl-toggle/src/updateOnDirectionChange.js +1 -2
  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 +1 -2
  169. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGrid.js +3 -4
  170. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGridList.js +2 -6
  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 +3 -4
  174. package/bpk-component-section-list/src/BpkSectionListSection.js +2 -3
  175. package/bpk-component-select/package.json +27 -0
  176. package/bpk-component-select/src/BpkSelect.js +1 -2
  177. package/bpk-component-skip-link/package.json +24 -0
  178. package/bpk-component-skip-link/src/BpkSkipLink.js +1 -2
  179. package/bpk-component-slider/package.json +29 -0
  180. package/bpk-component-slider/src/BpkSlider.js +1 -2
  181. package/bpk-component-spinner/package.json +25 -0
  182. package/bpk-component-spinner/src/BpkExtraLargeSpinner.js +1 -2
  183. package/bpk-component-spinner/src/BpkLargeSpinner.js +1 -2
  184. package/bpk-component-spinner/src/BpkSpinner.js +1 -2
  185. package/bpk-component-star-rating/package.json +29 -0
  186. package/bpk-component-star-rating/src/BpkInteractiveStar.js +1 -2
  187. package/bpk-component-star-rating/src/BpkInteractiveStarRating.js +1 -2
  188. package/bpk-component-star-rating/src/BpkStar.js +8 -9
  189. package/bpk-component-star-rating/src/BpkStarRating.js +7 -3
  190. package/bpk-component-star-rating/src/withInteractiveStarRatingState.js +1 -2
  191. package/bpk-component-switch/package.json +24 -0
  192. package/bpk-component-switch/src/BpkSwitch.js +1 -2
  193. package/bpk-component-table/package.json +24 -0
  194. package/bpk-component-table/src/BpkTable.js +1 -2
  195. package/bpk-component-table/src/BpkTableCell.js +1 -2
  196. package/bpk-component-table/src/BpkTableHeadCell.js +1 -2
  197. package/bpk-component-text/package.json +24 -0
  198. package/bpk-component-text/src/BpkText.js +1 -2
  199. package/bpk-component-textarea/package.json +28 -0
  200. package/bpk-component-textarea/src/BpkTextarea.js +1 -2
  201. package/bpk-component-theme-toggle/package.json +28 -0
  202. package/bpk-component-theme-toggle/src/BpkThemeToggle.js +3 -4
  203. package/bpk-component-theme-toggle/src/updateOnThemeChange.js +1 -2
  204. package/bpk-component-ticket/package.json +28 -0
  205. package/bpk-component-ticket/src/BpkTicket.js +1 -2
  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 +7 -3
  209. package/bpk-component-tooltip/src/BpkTooltip.module.scss +46 -55
  210. package/bpk-component-tooltip/src/BpkTooltipPortal.js +22 -14
  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 +1 -2
  214. package/bpk-scrim-utils/src/withScrim.js +1 -2
  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,8 +20,7 @@
20
20
 
21
21
  import PropTypes from 'prop-types';
22
22
  import React, { type Node } from 'react';
23
-
24
- import { cssModules, deprecated } from '../../bpk-react-utils';
23
+ import { cssModules, deprecated } from 'bpk-react-utils';
25
24
 
26
25
  import STYLES from './BpkText.module.scss';
27
26
 
@@ -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,8 +20,7 @@
20
20
 
21
21
  import PropTypes from 'prop-types';
22
22
  import React from 'react';
23
-
24
- import { cssModules } from '../../bpk-react-utils';
23
+ import { cssModules } from 'bpk-react-utils';
25
24
 
26
25
  import STYLES from './BpkTextarea.module.scss';
27
26
 
@@ -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,10 +18,9 @@
18
18
 
19
19
  import React from 'react';
20
20
  import Konami from 'konami';
21
-
22
- import BpkLabel from '../../bpk-component-label';
23
- import BpkSelect from '../../bpk-component-select';
24
- import { cssModules } from '../../bpk-react-utils';
21
+ import BpkLabel from 'bpk-component-label';
22
+ import BpkSelect from 'bpk-component-select';
23
+ import { cssModules } from 'bpk-react-utils';
25
24
 
26
25
  import STYLES from './BpkThemeToggle.module.scss';
27
26
  import bpkCustomThemes from './theming';
@@ -18,8 +18,7 @@
18
18
 
19
19
  import React, { Component } from 'react';
20
20
  import PropTypes from 'prop-types';
21
-
22
- import { wrapDisplayName } from '../../bpk-react-utils';
21
+ import { wrapDisplayName } from 'bpk-react-utils';
23
22
 
24
23
  import { getHtmlElement, THEME_CHANGE_EVENT } from './utils';
25
24
 
@@ -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,8 +20,7 @@
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';
23
+ import { cssModules } from 'bpk-react-utils';
25
24
 
26
25
  import STYLES from './BpkTicket.module.scss';
27
26
 
@@ -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,8 +26,7 @@ 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
-
30
- import { TransitionInitialMount, cssModules } from '../../bpk-react-utils';
29
+ import { TransitionInitialMount, cssModules } from 'bpk-react-utils';
31
30
 
32
31
  import STYLES from './BpkTooltip.module.scss';
33
32
  import { ARROW_ID, TOOLTIP_TYPES } from './constants';
@@ -72,7 +71,12 @@ const BpkTooltip = (props: TooltipProps) => {
72
71
  className={classNames}
73
72
  {...rest}
74
73
  >
75
- <span id={ARROW_ID} className={arrowClassNames} role="presentation" />
74
+ <span
75
+ id={ARROW_ID}
76
+ data-popper-arrow
77
+ className={arrowClassNames}
78
+ role="presentation"
79
+ />
76
80
  <div className={innerClassNames}>{children}</div>
77
81
  </section>
78
82
  </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,18 +18,16 @@
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
-
25
- import { Portal, cssModules } from '../../bpk-react-utils';
24
+ import { Portal, cssModules } from 'bpk-react-utils';
26
25
 
27
26
  import BpkTooltip, {
28
27
  propTypes as tooltipPropTypes,
29
28
  defaultProps as tooltipDefaultProps,
30
29
  type TooltipProps,
31
30
  } from './BpkTooltip';
32
- import { ARROW_ID } from './constants';
33
31
  import STYLES from './BpkTooltip.module.scss';
34
32
 
35
33
  const getClassName = cssModules(STYLES);
@@ -59,7 +57,7 @@ type State = {
59
57
  };
60
58
 
61
59
  class BpkTooltipPortal extends Component<Props, State> {
62
- popper: ?typeof Popper;
60
+ popper: ?typeof createPopper;
63
61
 
64
62
  targetRef: ?HTMLElement;
65
63
 
@@ -68,7 +66,7 @@ class BpkTooltipPortal extends Component<Props, State> {
68
66
  ariaLabel: PropTypes.string.isRequired,
69
67
  target: PropTypes.node.isRequired,
70
68
  children: PropTypes.node.isRequired,
71
- placement: PropTypes.oneOf(Popper.placements),
69
+ placement: PropTypes.oneOf(basePlacements),
72
70
  hideOnTouchDevices: PropTypes.bool,
73
71
  portalStyle: PropTypes.object, // eslint-disable-line react/forbid-prop-types
74
72
  portalClassName: PropTypes.string,
@@ -120,22 +118,32 @@ class BpkTooltipPortal extends Component<Props, State> {
120
118
  }
121
119
 
122
120
  onOpen = (tooltipElement: HTMLElement, targetElement: HTMLElement) => {
121
+ // The default modifiers for the popper
123
122
  // Note that GPU acceleration should be disabled otherwise Popper will use `translate3d`
124
123
  // which can cause blurriness in Safari and Chrome.
125
- this.popper = new Popper(targetElement, tooltipElement, {
126
- placement: this.props.placement,
127
- modifiers: {
128
- ...this.props.popperModifiers,
129
- computeStyle: {
124
+ const stdModifiers = [
125
+ {
126
+ name: 'computeStyles',
127
+ options: {
130
128
  gpuAcceleration: false,
131
129
  },
132
- arrow: {
133
- element: `#${ARROW_ID}`,
130
+ },
131
+ {
132
+ name: 'offset',
133
+ options: {
134
+ offset: [0, 8],
134
135
  },
135
136
  },
137
+ ];
138
+
139
+ this.popper = createPopper(targetElement, tooltipElement, {
140
+ placement: this.props.placement,
141
+ modifiers: this.props.popperModifiers
142
+ ? [...this.props.popperModifiers, ...stdModifiers]
143
+ : stdModifiers,
136
144
  });
137
145
 
138
- this.popper.scheduleUpdate();
146
+ this.popper.update();
139
147
  };
140
148
 
141
149
  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,8 +18,7 @@
18
18
 
19
19
  import React from 'react';
20
20
  import PropTypes from 'prop-types';
21
-
22
- import { TransitionInitialMount, cssModules } from '../../bpk-react-utils';
21
+ import { TransitionInitialMount, cssModules } from 'bpk-react-utils';
23
22
 
24
23
  import STYLES from './bpk-scrim.module.scss';
25
24
 
@@ -20,13 +20,12 @@ 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
-
24
23
  import {
25
24
  cssModules,
26
25
  isDeviceIpad,
27
26
  isDeviceIphone,
28
27
  wrapDisplayName,
29
- } from '../../bpk-react-utils';
28
+ } from 'bpk-react-utils';
30
29
 
31
30
  import BpkScrim from './BpkScrim';
32
31
  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.1",
3
+ "version": "3.0.0",
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",