@skyscanner/backpack-web 38.15.0 → 38.17.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.
- package/bpk-component-banner-alert/src/AnimateAndFade.d.ts +1 -2
- package/bpk-component-banner-alert/src/AnimateAndFade.js +3 -6
- package/bpk-component-calendar/src/BpkCalendarContainer.d.ts +4 -4
- package/bpk-component-calendar/src/BpkCalendarContainer.js +14 -14
- package/bpk-component-calendar/src/BpkCalendarGrid.d.ts +1 -1
- package/bpk-component-calendar/src/BpkCalendarGrid.js +3 -3
- package/bpk-component-calendar/src/BpkCalendarGridTransition.d.ts +1 -2
- package/bpk-component-calendar/src/BpkCalendarGridTransition.js +12 -11
- package/bpk-component-card-list/src/BpkCardList.js +1 -1
- package/bpk-component-card-list/src/common-types.d.ts +7 -2
- package/bpk-component-content-cards/index.d.ts +2 -0
- package/bpk-component-content-cards/src/BpkContentCard.d.ts +15 -0
- package/bpk-component-content-cards/src/BpkContentCard.js +0 -2
- package/bpk-component-content-cards/src/BpkContentCards.d.ts +14 -0
- package/bpk-component-datepicker/src/BpkDatepicker.d.ts +6 -9
- package/bpk-component-info-banner/src/AnimateAndFade.d.ts +1 -2
- package/bpk-component-info-banner/src/AnimateAndFade.js +3 -6
- package/bpk-component-page-indicator/src/BpkPageIndicator.d.ts +2 -1
- package/bpk-component-page-indicator/src/BpkPageIndicator.js +10 -6
- package/bpk-component-page-indicator/src/BpkPageIndicator.module.css +1 -1
- package/bpk-component-page-indicator/src/NavButton.d.ts +4 -1
- package/bpk-component-page-indicator/src/NavButton.js +3 -2
- package/bpk-component-price-range/src/BpkPriceMarker.module.css +1 -1
- package/bpk-component-price-range/src/BpkPriceRange.module.css +1 -1
- package/bpk-component-scrollable-calendar/src/BpkScrollableCalendar.d.ts +6 -9
- package/bpk-react-utils/src/BpkDialogWrapper/BpkDialogWrapper.js +2 -5
- package/bpk-stylesheets/font.css +1 -1
- package/bpk-stylesheets/font.scss +0 -90
- package/package.json +3 -3
|
@@ -22,8 +22,7 @@ declare class AnimateAndFade extends Component<Props, State> {
|
|
|
22
22
|
};
|
|
23
23
|
constructor(props: Props);
|
|
24
24
|
componentDidMount(): void;
|
|
25
|
-
|
|
26
|
-
componentDidUpdate(): void;
|
|
25
|
+
componentDidUpdate(prevProps: Props): void;
|
|
27
26
|
onAnimateHeightComplete: () => void;
|
|
28
27
|
onFadeComplete: () => void;
|
|
29
28
|
toggle: () => void;
|
|
@@ -49,13 +49,10 @@ class AnimateAndFade extends Component {
|
|
|
49
49
|
this.toggle();
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
|
|
53
|
-
if (
|
|
54
|
-
|
|
52
|
+
componentDidUpdate(prevProps) {
|
|
53
|
+
if (this.props.show !== prevProps.show) {
|
|
54
|
+
this.toggle();
|
|
55
55
|
}
|
|
56
|
-
this.toggle();
|
|
57
|
-
}
|
|
58
|
-
componentDidUpdate() {
|
|
59
56
|
if (this.state.initiateShow) {
|
|
60
57
|
// React doesn't like us calling setState from componentDidUpdate as it can lead to an infinite re-renders.
|
|
61
58
|
// I think it is ok here, however, as this will only happen conditionally (ie once)
|
|
@@ -44,7 +44,7 @@ type State = {
|
|
|
44
44
|
};
|
|
45
45
|
declare const withCalendarState: <P extends object>(Calendar: ComponentType<P>) => {
|
|
46
46
|
new (props: CalendarProps<P>): {
|
|
47
|
-
|
|
47
|
+
componentDidUpdate(prevProps: CalendarProps<P>): void;
|
|
48
48
|
handleDateFocus: (event: UIEvent, { date, source }: {
|
|
49
49
|
date: Date;
|
|
50
50
|
source: string;
|
|
@@ -69,10 +69,10 @@ declare const withCalendarState: <P extends object>(Calendar: ComponentType<P>)
|
|
|
69
69
|
componentWillUnmount?(): void;
|
|
70
70
|
componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
|
|
71
71
|
getSnapshotBeforeUpdate?(prevProps: Readonly<CalendarProps<P>>, prevState: Readonly<State>): any;
|
|
72
|
-
componentDidUpdate?(prevProps: Readonly<CalendarProps<P>>, prevState: Readonly<State>, snapshot?: any): void;
|
|
73
72
|
componentWillMount?(): void;
|
|
74
73
|
UNSAFE_componentWillMount?(): void;
|
|
75
74
|
componentWillReceiveProps?(nextProps: Readonly<CalendarProps<P>>, nextContext: any): void;
|
|
75
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<CalendarProps<P>>, nextContext: any): void;
|
|
76
76
|
componentWillUpdate?(nextProps: Readonly<CalendarProps<P>>, nextState: Readonly<State>, nextContext: any): void;
|
|
77
77
|
UNSAFE_componentWillUpdate?(nextProps: Readonly<CalendarProps<P>>, nextState: Readonly<State>, nextContext: any): void;
|
|
78
78
|
};
|
|
@@ -94,7 +94,7 @@ declare const withCalendarState: <P extends object>(Calendar: ComponentType<P>)
|
|
|
94
94
|
};
|
|
95
95
|
declare const _default: {
|
|
96
96
|
new (props: CalendarProps<import("./composeCalendar").Props>): {
|
|
97
|
-
|
|
97
|
+
componentDidUpdate(prevProps: CalendarProps<import("./composeCalendar").Props>): void;
|
|
98
98
|
handleDateFocus: (event: UIEvent, { date, source }: {
|
|
99
99
|
date: Date;
|
|
100
100
|
source: string;
|
|
@@ -119,10 +119,10 @@ declare const _default: {
|
|
|
119
119
|
componentWillUnmount?(): void;
|
|
120
120
|
componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
|
|
121
121
|
getSnapshotBeforeUpdate?(prevProps: Readonly<CalendarProps<import("./composeCalendar").Props>>, prevState: Readonly<State>): any;
|
|
122
|
-
componentDidUpdate?(prevProps: Readonly<CalendarProps<import("./composeCalendar").Props>>, prevState: Readonly<State>, snapshot?: any): void;
|
|
123
122
|
componentWillMount?(): void;
|
|
124
123
|
UNSAFE_componentWillMount?(): void;
|
|
125
124
|
componentWillReceiveProps?(nextProps: Readonly<CalendarProps<import("./composeCalendar").Props>>, nextContext: any): void;
|
|
125
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<CalendarProps<import("./composeCalendar").Props>>, nextContext: any): void;
|
|
126
126
|
componentWillUpdate?(nextProps: Readonly<CalendarProps<import("./composeCalendar").Props>>, nextState: Readonly<State>, nextContext: any): void;
|
|
127
127
|
UNSAFE_componentWillUpdate?(nextProps: Readonly<CalendarProps<import("./composeCalendar").Props>>, nextState: Readonly<State>, nextContext: any): void;
|
|
128
128
|
};
|
|
@@ -28,24 +28,24 @@ import { addDays, addMonths, dateToBoundaries, isAfter, isSameMonth, isSameDay,
|
|
|
28
28
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
29
29
|
/**
|
|
30
30
|
* Updates the current focused date
|
|
31
|
-
* @param {Object}
|
|
32
|
-
* @param {Object}
|
|
31
|
+
* @param {Object} prevProps previous input properties
|
|
32
|
+
* @param {Object} currentProps current input properties when component changes
|
|
33
33
|
* @returns {Boolean} if the selected date has changed
|
|
34
34
|
*/
|
|
35
|
-
const focusedDateHasChanged = (
|
|
35
|
+
const focusedDateHasChanged = (prevProps, currentProps) => {
|
|
36
|
+
const prevSelectConfig = prevProps.selectionConfiguration;
|
|
36
37
|
const currentSelectConfig = currentProps.selectionConfiguration;
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
if (!rawSelectedDate && !rawNextSelectedDate) {
|
|
38
|
+
const rawCurrentSelectedDate = currentSelectConfig.type === CALENDAR_SELECTION_TYPE.single ? currentSelectConfig.date : currentSelectConfig.startDate;
|
|
39
|
+
const rawPrevSelectedDate = prevSelectConfig.type === CALENDAR_SELECTION_TYPE.single ? prevSelectConfig.date : prevSelectConfig.startDate;
|
|
40
|
+
if (!rawPrevSelectedDate && !rawCurrentSelectedDate) {
|
|
41
41
|
return false;
|
|
42
42
|
}
|
|
43
|
-
if (
|
|
43
|
+
if (rawPrevSelectedDate && !rawCurrentSelectedDate || !rawPrevSelectedDate && rawCurrentSelectedDate) {
|
|
44
44
|
return true;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
// @ts-expect-error TS reporting incorrectly as we are already checking above that the dates are not null
|
|
48
|
-
return !isSameDay(
|
|
48
|
+
return !isSameDay(rawCurrentSelectedDate, rawPrevSelectedDate);
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
/**
|
|
@@ -115,11 +115,11 @@ const withCalendarState = Calendar => {
|
|
|
115
115
|
focusedDate: determineFocusedDate(rawSelectedDate[0], initiallyFocusedDate, minDate, maxDate)
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
|
-
|
|
119
|
-
const rawNextSelectedDate = getRawSelectedDate(
|
|
120
|
-
const minDate = startOfDay(
|
|
121
|
-
const maxDate = startOfDay(
|
|
122
|
-
if (focusedDateHasChanged(this.props
|
|
118
|
+
componentDidUpdate(prevProps) {
|
|
119
|
+
const rawNextSelectedDate = getRawSelectedDate(this.props.selectionConfiguration);
|
|
120
|
+
const minDate = startOfDay(this.props.minDate);
|
|
121
|
+
const maxDate = startOfDay(this.props.maxDate);
|
|
122
|
+
if (focusedDateHasChanged(prevProps, this.props)) {
|
|
123
123
|
this.setState({
|
|
124
124
|
focusedDate: dateToBoundaries(rawNextSelectedDate[0], minDate, maxDate)
|
|
125
125
|
});
|
|
@@ -50,7 +50,7 @@ declare class BpkCalendarGrid extends Component<Props, State> {
|
|
|
50
50
|
static defaultProps: DefaultProps;
|
|
51
51
|
constructor(props: Props);
|
|
52
52
|
componentDidMount(): void;
|
|
53
|
-
|
|
53
|
+
componentDidUpdate(prevProps: Props): void;
|
|
54
54
|
render(): import("react/jsx-runtime").JSX.Element;
|
|
55
55
|
}
|
|
56
56
|
declare const BpkCalendarGridWithTransition: typeof BpkCalendarGrid | ((props: Omit<DefaultProps & {
|
|
@@ -69,11 +69,11 @@ class BpkCalendarGrid extends Component {
|
|
|
69
69
|
calendarMonthWeeks: getCalendar(this.props.month, this.props.weekStartsOn, this.props.formatDateFull)
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
componentDidUpdate(prevProps) {
|
|
73
73
|
// We cache expensive calculations (and identities) in state
|
|
74
|
-
if (!isSameMonth(
|
|
74
|
+
if (!isSameMonth(this.props.month, prevProps.month) || this.props.weekStartsOn !== prevProps.weekStartsOn) {
|
|
75
75
|
this.setState({
|
|
76
|
-
calendarMonthWeeks: getCalendar(
|
|
76
|
+
calendarMonthWeeks: getCalendar(this.props.month, this.props.weekStartsOn, this.props.formatDateFull)
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -23,8 +23,7 @@ declare class BpkCalendarGridTransition extends Component<Props, State> {
|
|
|
23
23
|
focusedDate: null;
|
|
24
24
|
};
|
|
25
25
|
constructor(props: Props);
|
|
26
|
-
|
|
27
|
-
componentDidUpdate(): void;
|
|
26
|
+
componentDidUpdate(prevProps: Props): void;
|
|
28
27
|
onMonthTransitionEnd(): void;
|
|
29
28
|
render(): import("react/jsx-runtime").JSX.Element;
|
|
30
29
|
}
|
|
@@ -51,16 +51,18 @@ class BpkCalendarGridTransition extends Component {
|
|
|
51
51
|
};
|
|
52
52
|
this.isTransitionEndSupported = isTransitionEndSupported();
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
month: nextMonth = new Date()
|
|
56
|
-
}) {
|
|
54
|
+
componentDidUpdate(prevProps) {
|
|
57
55
|
const {
|
|
58
|
-
month = new Date()
|
|
56
|
+
month: currentMonth = new Date()
|
|
59
57
|
} = this.props;
|
|
60
|
-
const
|
|
58
|
+
const {
|
|
59
|
+
month: previousMonth = new Date()
|
|
60
|
+
} = prevProps;
|
|
61
|
+
const hasMonthChanged = !isSameMonth(previousMonth, currentMonth);
|
|
61
62
|
if (hasMonthChanged) {
|
|
62
63
|
const reverse = isRTL();
|
|
63
|
-
|
|
64
|
+
const monthDifference = differenceInCalendarMonths(currentMonth, previousMonth);
|
|
65
|
+
if (monthDifference === 1) {
|
|
64
66
|
// Transition to next month
|
|
65
67
|
this.setState({
|
|
66
68
|
transitionValue: reverse ? transitionValues.previous : transitionValues.next,
|
|
@@ -68,7 +70,7 @@ class BpkCalendarGridTransition extends Component {
|
|
|
68
70
|
});
|
|
69
71
|
return;
|
|
70
72
|
}
|
|
71
|
-
if (
|
|
73
|
+
if (monthDifference === -1) {
|
|
72
74
|
// Transition to previous month
|
|
73
75
|
this.setState({
|
|
74
76
|
transitionValue: reverse ? transitionValues.next : transitionValues.previous,
|
|
@@ -79,12 +81,11 @@ class BpkCalendarGridTransition extends Component {
|
|
|
79
81
|
this.setState({
|
|
80
82
|
// Used in a test so this is valid usage.
|
|
81
83
|
// eslint-disable-next-line react/no-unused-state
|
|
82
|
-
currentMonth
|
|
83
|
-
months: [addMonths(
|
|
84
|
+
currentMonth,
|
|
85
|
+
months: [addMonths(currentMonth, -1), currentMonth, addMonths(currentMonth, 1)]
|
|
84
86
|
});
|
|
85
87
|
}
|
|
86
|
-
|
|
87
|
-
componentDidUpdate() {
|
|
88
|
+
|
|
88
89
|
// For IE9, immediately call onMonthTransitionEnd instead of
|
|
89
90
|
// waiting for the animation to complete
|
|
90
91
|
// Thx to Airbnb's react-dates <3
|
|
@@ -65,7 +65,7 @@ const BpkCardList = props => {
|
|
|
65
65
|
children: /*#__PURE__*/_jsx(BpkBreakpoint, {
|
|
66
66
|
query: BREAKPOINTS.MOBILE,
|
|
67
67
|
children: isMobile => /*#__PURE__*/_jsxs(_Fragment, {
|
|
68
|
-
children: [/*#__PURE__*/_jsx(BpkSectionHeader, {
|
|
68
|
+
children: [title !== undefined && /*#__PURE__*/_jsx(BpkSectionHeader, {
|
|
69
69
|
title: title,
|
|
70
70
|
description: description,
|
|
71
71
|
button: shouldShowHeaderButton(isMobile) ? headerButton : null
|
|
@@ -29,8 +29,6 @@ type AccessibilityLabels = {
|
|
|
29
29
|
slideLabel?: (index: number, childrenLength: number) => string;
|
|
30
30
|
};
|
|
31
31
|
type CardListBaseProps = {
|
|
32
|
-
title: string;
|
|
33
|
-
description?: string;
|
|
34
32
|
cardList: ReactElement[];
|
|
35
33
|
layoutMobile: LayoutMobile;
|
|
36
34
|
layoutDesktop: LayoutDesktop;
|
|
@@ -45,6 +43,13 @@ type CardListBaseProps = {
|
|
|
45
43
|
buttonHref?: string;
|
|
46
44
|
expandText?: string;
|
|
47
45
|
accessibilityLabels?: AccessibilityLabels;
|
|
46
|
+
} & TitleProps;
|
|
47
|
+
type TitleProps = {
|
|
48
|
+
title: string;
|
|
49
|
+
description?: string;
|
|
50
|
+
} | {
|
|
51
|
+
title?: never;
|
|
52
|
+
description?: never;
|
|
48
53
|
};
|
|
49
54
|
type CardListGridStackProps = {
|
|
50
55
|
children: ReactElement[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type CardLayout = 'HORIZONTAL' | 'VERTICAL';
|
|
2
|
+
type Props = {
|
|
3
|
+
card: {
|
|
4
|
+
image: {
|
|
5
|
+
url: string;
|
|
6
|
+
alt?: string;
|
|
7
|
+
};
|
|
8
|
+
headline: string;
|
|
9
|
+
description: string;
|
|
10
|
+
href: string;
|
|
11
|
+
};
|
|
12
|
+
layout: CardLayout;
|
|
13
|
+
};
|
|
14
|
+
declare const BpkContentCard: ({ card, layout }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export default BpkContentCard;
|
|
@@ -16,9 +16,7 @@
|
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
// @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
|
|
20
19
|
import BpkText from "../../bpk-component-text";
|
|
21
|
-
// @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
|
|
22
20
|
import { cssModules } from "../../bpk-react-utils";
|
|
23
21
|
import STYLES from "./BpkContentCard.module.css";
|
|
24
22
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type Props = {
|
|
2
|
+
heading: string;
|
|
3
|
+
cards: Array<{
|
|
4
|
+
image: {
|
|
5
|
+
url: string;
|
|
6
|
+
alt?: string;
|
|
7
|
+
};
|
|
8
|
+
headline: string;
|
|
9
|
+
description: string;
|
|
10
|
+
href: string;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
declare const BpkContentCards: ({ cards, heading }: Props) => import("react/jsx-runtime").JSX.Element | null;
|
|
14
|
+
export default BpkContentCards;
|
|
@@ -63,7 +63,7 @@ declare class BpkDatepicker extends Component<Props, State> {
|
|
|
63
63
|
}> & {
|
|
64
64
|
[rest: string]: any;
|
|
65
65
|
}): {
|
|
66
|
-
|
|
66
|
+
componentDidUpdate(prevProps: Omit<import("../../bpk-component-calendar/src/composeCalendar").Props & import("../../bpk-component-calendar/src/BpkCalendarContainer").Props, keyof {
|
|
67
67
|
onDateClick: ((date: Date) => void) | null;
|
|
68
68
|
onDateKeyDown: ((event: KeyboardEvent) => void) | null;
|
|
69
69
|
month: Date;
|
|
@@ -155,7 +155,9 @@ declare class BpkDatepicker extends Component<Props, State> {
|
|
|
155
155
|
preventKeyboardFocus: boolean;
|
|
156
156
|
focusedDate: Date;
|
|
157
157
|
}>): any;
|
|
158
|
-
|
|
158
|
+
componentWillMount?(): void;
|
|
159
|
+
UNSAFE_componentWillMount?(): void;
|
|
160
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<import("../../bpk-component-calendar/src/composeCalendar").Props & import("../../bpk-component-calendar/src/BpkCalendarContainer").Props, keyof {
|
|
159
161
|
onDateClick: ((date: Date) => void) | null;
|
|
160
162
|
onDateKeyDown: ((event: KeyboardEvent) => void) | null;
|
|
161
163
|
month: Date;
|
|
@@ -163,13 +165,8 @@ declare class BpkDatepicker extends Component<Props, State> {
|
|
|
163
165
|
maxDate: Date;
|
|
164
166
|
}> & {
|
|
165
167
|
[rest: string]: any;
|
|
166
|
-
}>,
|
|
167
|
-
|
|
168
|
-
focusedDate: Date;
|
|
169
|
-
}>, snapshot?: any): void;
|
|
170
|
-
componentWillMount?(): void;
|
|
171
|
-
UNSAFE_componentWillMount?(): void;
|
|
172
|
-
componentWillReceiveProps?(nextProps: Readonly<Omit<import("../../bpk-component-calendar/src/composeCalendar").Props & import("../../bpk-component-calendar/src/BpkCalendarContainer").Props, keyof {
|
|
168
|
+
}>, nextContext: any): void;
|
|
169
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<import("../../bpk-component-calendar/src/composeCalendar").Props & import("../../bpk-component-calendar/src/BpkCalendarContainer").Props, keyof {
|
|
173
170
|
onDateClick: ((date: Date) => void) | null;
|
|
174
171
|
onDateKeyDown: ((event: KeyboardEvent) => void) | null;
|
|
175
172
|
month: Date;
|
|
@@ -22,8 +22,7 @@ declare class AnimateAndFade extends Component<Props, State> {
|
|
|
22
22
|
};
|
|
23
23
|
constructor(props: Props);
|
|
24
24
|
componentDidMount(): void;
|
|
25
|
-
|
|
26
|
-
componentDidUpdate(): void;
|
|
25
|
+
componentDidUpdate(prevProps: Props): void;
|
|
27
26
|
onAnimateHeightComplete: () => void;
|
|
28
27
|
onFadeComplete: () => void;
|
|
29
28
|
toggle: () => void;
|
|
@@ -49,13 +49,10 @@ class AnimateAndFade extends Component {
|
|
|
49
49
|
this.toggle();
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
|
|
53
|
-
if (
|
|
54
|
-
|
|
52
|
+
componentDidUpdate(prevProps) {
|
|
53
|
+
if (this.props.show !== prevProps.show) {
|
|
54
|
+
this.toggle();
|
|
55
55
|
}
|
|
56
|
-
this.toggle();
|
|
57
|
-
}
|
|
58
|
-
componentDidUpdate() {
|
|
59
56
|
if (this.state.initiateShow) {
|
|
60
57
|
// React doesn't like us calling setState from componentDidUpdate as it can lead to an infinite re-renders.
|
|
61
58
|
// I think it is ok here, however, as this will only happen conditionally (ie once)
|
|
@@ -3,6 +3,7 @@ import { DIRECTIONS } from './NavButton';
|
|
|
3
3
|
export declare const VARIANT: {
|
|
4
4
|
readonly default: "default";
|
|
5
5
|
readonly overImage: "overImage";
|
|
6
|
+
readonly overImageSpaced: "overImageSpaced";
|
|
6
7
|
};
|
|
7
8
|
type Variant = (typeof VARIANT)[keyof typeof VARIANT];
|
|
8
9
|
type Direction = (typeof DIRECTIONS)[keyof typeof DIRECTIONS];
|
|
@@ -17,5 +18,5 @@ export type Props = {
|
|
|
17
18
|
className?: string;
|
|
18
19
|
showNav?: boolean;
|
|
19
20
|
};
|
|
20
|
-
declare const BpkPageIndicator: ({ className, currentIndex, indicatorLabel, nextNavLabel, onClick, prevNavLabel, showNav, totalIndicators, variant
|
|
21
|
+
declare const BpkPageIndicator: ({ className, currentIndex, indicatorLabel, nextNavLabel, onClick, prevNavLabel, showNav, totalIndicators, variant }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
21
22
|
export default BpkPageIndicator;
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
+
import { BUTTON_TYPES } from "../../bpk-component-button";
|
|
19
20
|
import { cssModules } from "../../bpk-react-utils";
|
|
20
21
|
import NavButton, { DIRECTIONS } from "./NavButton";
|
|
21
22
|
import STYLES from "./BpkPageIndicator.module.css";
|
|
@@ -25,7 +26,8 @@ const DISPLAYED_TOTAL = 5;
|
|
|
25
26
|
const START_SCROLL_INDEX = Math.floor(DISPLAYED_TOTAL / 2);
|
|
26
27
|
export const VARIANT = {
|
|
27
28
|
default: 'default',
|
|
28
|
-
overImage: 'overImage'
|
|
29
|
+
overImage: 'overImage',
|
|
30
|
+
overImageSpaced: 'overImageSpaced'
|
|
29
31
|
};
|
|
30
32
|
const BpkPageIndicator = ({
|
|
31
33
|
className = undefined,
|
|
@@ -48,7 +50,7 @@ const BpkPageIndicator = ({
|
|
|
48
50
|
'--scroll-index': totalIndicators > DISPLAYED_TOTAL ? Math.min(currentIndex - START_SCROLL_INDEX, totalIndicators - DISPLAYED_TOTAL) : 0
|
|
49
51
|
};
|
|
50
52
|
return /*#__PURE__*/_jsx("div", {
|
|
51
|
-
className: className,
|
|
53
|
+
className: variant === VARIANT.overImageSpaced ? getClassName('bpk-page-indicator-fullWidth__container') : className,
|
|
52
54
|
"aria-hidden": isInteractive ? 'false' : 'true',
|
|
53
55
|
"data-testid": "indicator-container",
|
|
54
56
|
children: /*#__PURE__*/_jsxs("div", {
|
|
@@ -56,9 +58,10 @@ const BpkPageIndicator = ({
|
|
|
56
58
|
children: [showNav && /*#__PURE__*/_jsx(NavButton, {
|
|
57
59
|
currentIndex: currentIndex,
|
|
58
60
|
onClick: onClick,
|
|
59
|
-
disabled: currentIndex === 0,
|
|
61
|
+
disabled: variant === VARIANT.overImageSpaced ? totalIndicators <= 1 : currentIndex === 0 || totalIndicators <= 1,
|
|
60
62
|
direction: DIRECTIONS.PREV,
|
|
61
|
-
ariaLabel: prevNavLabel
|
|
63
|
+
ariaLabel: prevNavLabel,
|
|
64
|
+
type: variant === VARIANT.overImageSpaced ? BUTTON_TYPES.secondaryOnDark : BUTTON_TYPES.link
|
|
62
65
|
}), /*#__PURE__*/_jsx("div", {
|
|
63
66
|
className: getClassName('bpk-page-indicator__container'),
|
|
64
67
|
children: /*#__PURE__*/_jsx("div", {
|
|
@@ -81,9 +84,10 @@ const BpkPageIndicator = ({
|
|
|
81
84
|
}), showNav && /*#__PURE__*/_jsx(NavButton, {
|
|
82
85
|
currentIndex: currentIndex,
|
|
83
86
|
onClick: onClick,
|
|
84
|
-
disabled: currentIndex === totalIndicators - 1,
|
|
87
|
+
disabled: variant === VARIANT.overImageSpaced ? totalIndicators <= 1 : currentIndex === totalIndicators - 1 || totalIndicators <= 1,
|
|
85
88
|
ariaLabel: nextNavLabel,
|
|
86
|
-
direction: DIRECTIONS.NEXT
|
|
89
|
+
direction: DIRECTIONS.NEXT,
|
|
90
|
+
type: variant === VARIANT.overImageSpaced ? BUTTON_TYPES.secondaryOnDark : BUTTON_TYPES.link
|
|
87
91
|
})]
|
|
88
92
|
})
|
|
89
93
|
});
|
|
@@ -15,4 +15,4 @@
|
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*/
|
|
18
|
-
.bpk-page-indicator{display:flex;width:100%;justify-content:center;align-items:center}.bpk-page-indicator__showNav{justify-content:space-between}.bpk-page-indicator__container{max-width:5rem;min-height:.5rem;overflow:hidden}.bpk-page-indicator__indicators-container{--direction: -1;transform:translateX(calc(var(--direction) * var(--scroll-index, 0) * 1rem));transition:transform 200ms ease-in-out;white-space:nowrap}html[dir=rtl] .bpk-page-indicator__indicators-container{--direction: 1}.bpk-page-indicator__indicator{display:inline-block;width:.5rem;height:.5rem;padding:0;border:none;border-radius:50%;margin-inline:.25rem}.bpk-page-indicator__indicator:hover{cursor:pointer}.bpk-page-indicator__indicator--default{background-color:#c1c7cf}.bpk-page-indicator__indicator--overImage{background-color:hsla(0,0%,100%,.5)}.bpk-page-indicator__indicator--active-default{background-color:#626971;pointer-events:none}.bpk-page-indicator__indicator--active-overImage{background-color:#fff;pointer-events:none}
|
|
18
|
+
.bpk-page-indicator-fullWidth__container{width:100%}.bpk-page-indicator{display:flex;width:100%;justify-content:center;align-items:center}.bpk-page-indicator__showNav{justify-content:space-between}.bpk-page-indicator__container{max-width:5rem;min-height:.5rem;overflow:hidden}.bpk-page-indicator__indicators-container{--direction: -1;transform:translateX(calc(var(--direction) * var(--scroll-index, 0) * 1rem));transition:transform 200ms ease-in-out;white-space:nowrap}html[dir=rtl] .bpk-page-indicator__indicators-container{--direction: 1}.bpk-page-indicator__indicator{display:inline-block;width:.5rem;height:.5rem;padding:0;border:none;border-radius:50%;margin-inline:.25rem}.bpk-page-indicator__indicator:hover{cursor:pointer}.bpk-page-indicator__indicator--default{background-color:#c1c7cf}.bpk-page-indicator__indicator--overImage,.bpk-page-indicator__indicator--overImageSpaced{background-color:hsla(0,0%,100%,.5)}.bpk-page-indicator__indicator--active-default{background-color:#626971;pointer-events:none}.bpk-page-indicator__indicator--active-overImage,.bpk-page-indicator__indicator--active-overImageSpaced{background-color:#fff;pointer-events:none}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
+
import { BUTTON_TYPES } from '../../bpk-component-button';
|
|
1
2
|
export declare const DIRECTIONS: {
|
|
2
3
|
readonly PREV: "PREV";
|
|
3
4
|
readonly INDICATORS: "INDICATORS";
|
|
4
5
|
readonly NEXT: "NEXT";
|
|
5
6
|
};
|
|
6
7
|
type Direction = (typeof DIRECTIONS)[keyof typeof DIRECTIONS];
|
|
8
|
+
type ButtonType = (typeof BUTTON_TYPES)[keyof typeof BUTTON_TYPES];
|
|
7
9
|
type Props = {
|
|
8
10
|
ariaLabel: string | undefined;
|
|
9
11
|
currentIndex: number;
|
|
10
12
|
direction: Direction;
|
|
11
13
|
disabled?: boolean;
|
|
12
14
|
onClick?: (event: React.MouseEvent<HTMLButtonElement>, newIndex: number, direction: Direction) => void;
|
|
15
|
+
type?: ButtonType;
|
|
13
16
|
};
|
|
14
|
-
declare const NavButton: ({ ariaLabel, currentIndex, direction, disabled, onClick, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
declare const NavButton: ({ ariaLabel, currentIndex, direction, disabled, onClick, type, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
15
18
|
export default NavButton;
|
|
@@ -33,10 +33,11 @@ const NavButton = ({
|
|
|
33
33
|
currentIndex,
|
|
34
34
|
direction,
|
|
35
35
|
disabled = false,
|
|
36
|
-
onClick = () => {}
|
|
36
|
+
onClick = () => {},
|
|
37
|
+
type = BUTTON_TYPES.link
|
|
37
38
|
}) => /*#__PURE__*/_jsx(BpkButtonV2, {
|
|
38
39
|
iconOnly: true,
|
|
39
|
-
type:
|
|
40
|
+
type: type,
|
|
40
41
|
onClick: e => {
|
|
41
42
|
if (direction === DIRECTIONS.PREV) {
|
|
42
43
|
onClick(e, currentIndex - 1, direction);
|
|
@@ -15,4 +15,4 @@
|
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*/
|
|
18
|
-
.bpk-price-marker{position:relative;display:flex;z-index:1;flex-direction:column;align-items:center;flex:none;border:none;border-radius:.25rem;background:none;box-shadow:0px 1px 3px 0px rgba(37,32,31,.3);margin-block-end:.375rem}.bpk-price-marker span{display:inline-flex;z-index:1;padding:.125rem .5rem;border-radius:.25rem;color:#fff}.bpk-price-marker__arrow{position:absolute;top:50%;z-index:0;width:1rem;height:1rem;transform:rotate(45deg);border-radius:25%;background-color:inherit}.bpk-price-marker--low{background-color:#0c838a}.bpk-price-marker--medium{background-color:#05203c}.bpk-price-marker--high{background-color:#e70866}
|
|
18
|
+
.bpk-price-marker{position:relative;display:flex;z-index:1;flex-direction:column;align-items:center;flex:none;border:none;border-radius:.25rem;background:none;white-space:nowrap;box-shadow:0px 1px 3px 0px rgba(37,32,31,.3);margin-block-end:.375rem}.bpk-price-marker span{display:inline-flex;z-index:1;padding:.125rem .5rem;border-radius:.25rem;color:#fff}.bpk-price-marker__arrow{position:absolute;top:50%;z-index:0;width:1rem;height:1rem;transform:rotate(45deg);border-radius:25%;background-color:inherit}.bpk-price-marker--low{background-color:#0c838a}.bpk-price-marker--medium{background-color:#05203c}.bpk-price-marker--high{background-color:#e70866}
|
|
@@ -15,4 +15,4 @@
|
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*/
|
|
18
|
-
.bpk-price-range{display:flex;width:100%;flex-direction:column;padding-block:.25rem;row-gap:.25rem}.bpk-price-range--large{padding-block:0}.bpk-price-range__lines{position:relative;display:flex;height:.25rem;flex:none;gap:.125rem}.bpk-price-range__lines--large{height:.5rem}.bpk-price-range__line--low{width:calc(100%*var(--low));height:100%;background-color:#0c838a;border-end-start-radius:.5rem;border-start-start-radius:.5rem}.bpk-price-range__line--lowLarge{border-end-start-radius:.75rem;border-start-start-radius:.75rem}.bpk-price-range__line--medium{width:calc(100%*(var(--high) - var(--low)));height:100%;background-color:#05203c}.bpk-price-range__line--high{width:calc(100%*(1 - var(--high)));height:100%;background-color:#e70866;border-end-end-radius:.5rem;border-start-end-radius:.5rem}.bpk-price-range__line--highLarge{border-end-end-radius:.75rem;border-start-end-radius:.75rem}.bpk-price-range__line--dot{position:absolute;top:50%;display:flex;width:.75rem;height:.75rem;justify-content:center;align-items:center;transform:translate(0, -50%);border-radius:50%;margin-inline-start:var(--prefilled-width)}.bpk-price-range__line--dot::after{content:"";display:block;width:.25rem;height:.25rem;border-radius:50%;background-color:#fff}.bpk-price-range__marker{width:fit-content;margin-inline-start:var(--prefilled-width)}.bpk-price-range__ranges{position:relative;display:flex;width:100%;height:1.25rem}.bpk-price-range__ranges span{position:absolute;display:inline-block;transform:translate(-50%, 0)}html[dir=rtl] .bpk-price-range__ranges span{transform:translate(50%, 0)}.bpk-price-range__ranges span:first-child{inset-inline-start:calc(100%*var(--low))}.bpk-price-range__ranges span:last-child{inset-inline-start:calc(100%*var(--high))}
|
|
18
|
+
.bpk-price-range{display:flex;width:100%;flex-direction:column;padding-block:.25rem;row-gap:.25rem}.bpk-price-range--large{padding-block:0}.bpk-price-range__lines{position:relative;display:flex;height:.25rem;flex:none;gap:.125rem}.bpk-price-range__lines--large{height:.5rem}.bpk-price-range__line--low{width:calc(100%*var(--low));height:100%;background-color:#0c838a;border-end-start-radius:.5rem;border-start-start-radius:.5rem}.bpk-price-range__line--lowLarge{border-end-start-radius:.75rem;border-start-start-radius:.75rem}.bpk-price-range__line--medium{width:calc(100%*(var(--high) - var(--low)));height:100%;background-color:#05203c}.bpk-price-range__line--high{width:calc(100%*(1 - var(--high)));height:100%;background-color:#e70866;border-end-end-radius:.5rem;border-start-end-radius:.5rem}.bpk-price-range__line--highLarge{border-end-end-radius:.75rem;border-start-end-radius:.75rem}.bpk-price-range__line--dot{position:absolute;top:50%;display:flex;width:.75rem;height:.75rem;justify-content:center;align-items:center;transform:translate(0, -50%);border-radius:50%;margin-inline-start:var(--prefilled-width)}.bpk-price-range__line--dot::after{content:"";display:block;width:.25rem;height:.25rem;border-radius:50%;background-color:#fff}.bpk-price-range__marker{width:fit-content;margin-inline-start:var(--prefilled-width)}.bpk-price-range__ranges{position:relative;display:flex;width:100%;height:1.25rem;white-space:nowrap}.bpk-price-range__ranges span{position:absolute;display:inline-block;transform:translate(-50%, 0)}html[dir=rtl] .bpk-price-range__ranges span{transform:translate(50%, 0)}.bpk-price-range__ranges span:first-child{inset-inline-start:calc(100%*var(--low))}.bpk-price-range__ranges span:last-child{inset-inline-start:calc(100%*var(--high))}
|
|
@@ -8,7 +8,7 @@ declare const _default: {
|
|
|
8
8
|
}> & {
|
|
9
9
|
[rest: string]: any;
|
|
10
10
|
}): {
|
|
11
|
-
|
|
11
|
+
componentDidUpdate(prevProps: Omit<import("../../bpk-component-calendar/src/composeCalendar").Props & import("../../bpk-component-calendar/src/BpkCalendarContainer").Props, keyof {
|
|
12
12
|
onDateClick: ((date: Date) => void) | null;
|
|
13
13
|
onDateKeyDown: ((event: KeyboardEvent) => void) | null;
|
|
14
14
|
month: Date;
|
|
@@ -100,7 +100,9 @@ declare const _default: {
|
|
|
100
100
|
preventKeyboardFocus: boolean;
|
|
101
101
|
focusedDate: Date;
|
|
102
102
|
}>): any;
|
|
103
|
-
|
|
103
|
+
componentWillMount?(): void;
|
|
104
|
+
UNSAFE_componentWillMount?(): void;
|
|
105
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<import("../../bpk-component-calendar/src/composeCalendar").Props & import("../../bpk-component-calendar/src/BpkCalendarContainer").Props, keyof {
|
|
104
106
|
onDateClick: ((date: Date) => void) | null;
|
|
105
107
|
onDateKeyDown: ((event: KeyboardEvent) => void) | null;
|
|
106
108
|
month: Date;
|
|
@@ -108,13 +110,8 @@ declare const _default: {
|
|
|
108
110
|
maxDate: Date;
|
|
109
111
|
}> & {
|
|
110
112
|
[rest: string]: any;
|
|
111
|
-
}>,
|
|
112
|
-
|
|
113
|
-
focusedDate: Date;
|
|
114
|
-
}>, snapshot?: any): void;
|
|
115
|
-
componentWillMount?(): void;
|
|
116
|
-
UNSAFE_componentWillMount?(): void;
|
|
117
|
-
componentWillReceiveProps?(nextProps: Readonly<Omit<import("../../bpk-component-calendar/src/composeCalendar").Props & import("../../bpk-component-calendar/src/BpkCalendarContainer").Props, keyof {
|
|
113
|
+
}>, nextContext: any): void;
|
|
114
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<import("../../bpk-component-calendar/src/composeCalendar").Props & import("../../bpk-component-calendar/src/BpkCalendarContainer").Props, keyof {
|
|
118
115
|
onDateClick: ((date: Date) => void) | null;
|
|
119
116
|
onDateKeyDown: ((event: KeyboardEvent) => void) | null;
|
|
120
117
|
month: Date;
|
|
@@ -22,17 +22,14 @@ import cssModules from "../cssModules";
|
|
|
22
22
|
import STYLES from "./BpkDialogWrapper.module.css";
|
|
23
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
24
|
const getClassName = cssModules(STYLES);
|
|
25
|
-
;
|
|
26
25
|
// TODO: this check if the browser support the HTML dialog element. We can remove it once we drop support as a business for Safari 14
|
|
27
26
|
const dialogSupported = typeof HTMLDialogElement === 'function';
|
|
28
27
|
const setPageProperties = ({
|
|
29
28
|
isDialogOpen
|
|
30
29
|
}) => {
|
|
31
30
|
document.body.style.overflowY = isDialogOpen ? 'hidden' : 'visible';
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
document.body.style.width = isDialogOpen ? '100%' : 'auto';
|
|
35
|
-
}
|
|
31
|
+
document.body.style.position = isDialogOpen ? 'fixed' : 'relative';
|
|
32
|
+
document.body.style.width = isDialogOpen ? '100%' : 'auto';
|
|
36
33
|
};
|
|
37
34
|
export const BpkDialogWrapper = ({
|
|
38
35
|
children,
|
package/bpk-stylesheets/font.css
CHANGED
|
@@ -15,4 +15,4 @@
|
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*/
|
|
18
|
-
@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:400;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-f9356ad6.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-46f9f429.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-ab1dbcbe.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:400;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-10532ac3.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-db5d0ac5.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-8eec3f3a.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:500;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-c08dc28b.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-865e167a.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-d0ae478a.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:500;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-81517f37.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-bbdb6b0c.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-226fe64c.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:700;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-8545937e.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-a099c9f7.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-ec4cc5a7.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:700;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-01b5d138.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-4d6d36e3.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-dc9284dc.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:900;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-bb3c9434.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-bba2eb55.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-314703cc.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:900;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-c2149c91.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-a34cd594.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-7e516ee5.ttf") format("ttf")}
|
|
18
|
+
@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:400;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-f9356ad6.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-46f9f429.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-ab1dbcbe.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:400;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-10532ac3.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-db5d0ac5.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-8eec3f3a.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:500;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-c08dc28b.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-865e167a.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-d0ae478a.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:500;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-81517f37.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-bbdb6b0c.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-226fe64c.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:700;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-8545937e.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-a099c9f7.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-ec4cc5a7.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:700;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-01b5d138.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-4d6d36e3.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-dc9284dc.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:900;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-bb3c9434.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-bba2eb55.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-314703cc.ttf") format("ttf")}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:900;src:url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-c2149c91.woff2") format("woff2"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-a34cd594.woff") format("woff"),url("https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-7e516ee5.ttf") format("ttf")}
|
|
@@ -105,93 +105,3 @@ $base-url: 'https://js.skyscnr.com/sttc/bpk-fonts';
|
|
|
105
105
|
url('#{$base-url}/SkyscannerRelative-BlackItalic-7e516ee5.ttf')
|
|
106
106
|
format('ttf');
|
|
107
107
|
}
|
|
108
|
-
|
|
109
|
-
@font-face {
|
|
110
|
-
font-family: 'Noto Sans Arabic';
|
|
111
|
-
font-style: normal;
|
|
112
|
-
font-weight: 800;
|
|
113
|
-
src:
|
|
114
|
-
url('#{$base-url}/NotoSansArabic-ExtraBold-da8cf050.woff2') format('woff2'),
|
|
115
|
-
url('#{$base-url}/NotoSansArabic-ExtraBold-4ac084a2.woff') format('woff'),
|
|
116
|
-
url('#{$base-url}/NotoSansArabic-ExtraBold-a965fbb5.ttf') format('ttf');
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
@font-face {
|
|
120
|
-
font-family: 'Noto Sans Hebrew';
|
|
121
|
-
font-style: normal;
|
|
122
|
-
font-weight: 800;
|
|
123
|
-
src:
|
|
124
|
-
url('#{$base-url}/NotoSansHebrew-ExtraBold-e04df8b4.woff2') format('woff2'),
|
|
125
|
-
url('#{$base-url}/NotoSansHebrew-ExtraBold-3303fb69.woff') format('woff'),
|
|
126
|
-
url('#{$base-url}/NotoSansHebrew-ExtraBold-4cfb24e3.ttf') format('ttf');
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
@font-face {
|
|
130
|
-
font-family: 'Noto Serif';
|
|
131
|
-
font-style: normal;
|
|
132
|
-
font-weight: 800;
|
|
133
|
-
src:
|
|
134
|
-
url('#{$base-url}/NotoSans-ExtraBold-d8d5cc89.woff2') format('woff2'),
|
|
135
|
-
url('#{$base-url}/NotoSans-ExtraBold-177dbfc0.woff') format('woff'),
|
|
136
|
-
url('#{$base-url}/NotoSans-ExtraBold-cac84afc.ttf') format('ttf');
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
@font-face {
|
|
140
|
-
font-family: 'Noto Serif Devanagari';
|
|
141
|
-
font-style: normal;
|
|
142
|
-
font-weight: 800;
|
|
143
|
-
src:
|
|
144
|
-
url('#{$base-url}/NotoSansDevanagari-Bold-19924491.woff2') format('woff2'),
|
|
145
|
-
url('#{$base-url}/NotoSansDevanagari-Bold-2598dc51.woff') format('woff'),
|
|
146
|
-
url('#{$base-url}/NotoSansDevanagari-Bold-bca34adc.ttf') format('ttf');
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
@font-face {
|
|
150
|
-
font-family: 'Noto Serif Thai';
|
|
151
|
-
font-style: normal;
|
|
152
|
-
font-weight: 700;
|
|
153
|
-
src:
|
|
154
|
-
url('#{$base-url}/NotoSansThai-Bold-74e247cc.woff2') format('woff2'),
|
|
155
|
-
url('#{$base-url}/NotoSansThai-Bold-91433b5b.woff') format('woff'),
|
|
156
|
-
url('#{$base-url}/NotoSansThai-Bold-778d694c.ttf') format('ttf');
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
@font-face {
|
|
160
|
-
font-family: 'Noto Sans SC';
|
|
161
|
-
font-style: normal;
|
|
162
|
-
font-weight: 700;
|
|
163
|
-
src:
|
|
164
|
-
url('#{$base-url}/NotoSansSC-Bold-22c3e4e0.woff2') format('woff2'),
|
|
165
|
-
url('#{$base-url}/NotoSansSC-Bold-87ef5110.woff') format('woff'),
|
|
166
|
-
url('#{$base-url}/NotoSansSC-Bold-57f04989.ttf') format('ttf');
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
@font-face {
|
|
170
|
-
font-family: 'Noto Sans TC';
|
|
171
|
-
font-style: normal;
|
|
172
|
-
font-weight: 700;
|
|
173
|
-
src:
|
|
174
|
-
url('#{$base-url}/NotoSansTC-Bold-355d38e9.woff2') format('woff2'),
|
|
175
|
-
url('#{$base-url}/NotoSansTC-Bold-2abc3583.woff') format('woff'),
|
|
176
|
-
url('#{$base-url}/NotoSansTC-Bold-86244830.ttf') format('ttf');
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
@font-face {
|
|
180
|
-
font-family: 'Noto Sans JP';
|
|
181
|
-
font-style: normal;
|
|
182
|
-
font-weight: 800;
|
|
183
|
-
src:
|
|
184
|
-
url('#{$base-url}/NotoSansJP-Bold-b656150c.woff2') format('woff2'),
|
|
185
|
-
url('#{$base-url}/NotoSansJP-Bold-6ddf472f.woff') format('woff'),
|
|
186
|
-
url('#{$base-url}/NotoSansJP-Bold-deeb2988.ttf') format('ttf');
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
@font-face {
|
|
190
|
-
font-family: 'Noto Sans KR';
|
|
191
|
-
font-style: normal;
|
|
192
|
-
font-weight: 800;
|
|
193
|
-
src:
|
|
194
|
-
url('#{$base-url}/NotoSansKR-Bold-5286cc6d.woff2') format('woff2'),
|
|
195
|
-
url('#{$base-url}/NotoSansKR-Bold-74c4cbc7.woff') format('woff'),
|
|
196
|
-
url('#{$base-url}/NotoSansKR-Bold-5651f33d.ttf') format('ttf');
|
|
197
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyscanner/backpack-web",
|
|
3
|
-
"version": "38.
|
|
3
|
+
"version": "38.17.0",
|
|
4
4
|
"description": "Backpack Design System web library",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"@radix-ui/react-compose-refs": "^1.1.1",
|
|
28
28
|
"@radix-ui/react-slider": "1.3.5",
|
|
29
29
|
"@react-google-maps/api": "^2.19.3",
|
|
30
|
-
"@skyscanner/bpk-foundations-web": "^22.
|
|
31
|
-
"@skyscanner/bpk-svgs": "^20.
|
|
30
|
+
"@skyscanner/bpk-foundations-web": "^22.3.0",
|
|
31
|
+
"@skyscanner/bpk-svgs": "^20.9.0",
|
|
32
32
|
"a11y-focus-scope": "^1.1.3",
|
|
33
33
|
"a11y-focus-store": "^1.0.0",
|
|
34
34
|
"d3-path": "^3.1.0",
|