@royaloperahouse/harmonic 1.0.6-a → 1.0.6-c
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/CHANGELOG.md +27 -3
- package/dist/components/atoms/Dropdown/Dropdown.d.ts +1 -1
- package/dist/components/atoms/Tab/Tab.d.ts +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/molecules/CustomStrategyTabsFilter/CustomStrategyTabsFilter.d.ts +70 -0
- package/dist/components/molecules/CustomStrategyTabsFilter/index.d.ts +2 -0
- package/dist/components/molecules/CustomStrategyTabsFilter/styled.d.ts +18 -0
- package/dist/components/molecules/PageHeading/PageHeading.style.d.ts +3 -2
- package/dist/components/molecules/PeopleListing/CreditListing/CreditListing.d.ts +1 -1
- package/dist/components/molecules/SkipToMain/SkipToMain.style.d.ts +1 -1
- package/dist/components/molecules/index.d.ts +2 -1
- package/dist/components/organisms/Carousels/Carousel/Carousel.d.ts +1 -3
- package/dist/components/organisms/Carousels/HighlightsCarousel/HighlightsCarousel.d.ts +1 -3
- package/dist/harmonic.cjs.development.css +319 -0
- package/dist/harmonic.cjs.development.js +497 -292
- package/dist/harmonic.cjs.development.js.map +1 -1
- package/dist/harmonic.cjs.production.min.js +1 -1
- package/dist/harmonic.cjs.production.min.js.map +1 -1
- package/dist/harmonic.esm.js +508 -301
- package/dist/harmonic.esm.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/styles/HarmonicThemeProvider/HarmonicThemeProvider.d.ts +1 -0
- package/dist/types/carousel.d.ts +24 -1
- package/dist/types/creditListing.d.ts +7 -6
- package/dist/types/index.d.ts +2 -2
- package/dist/types/modalWindow.d.ts +4 -0
- package/dist/types/types.d.ts +93 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,41 @@
|
|
|
1
|
+
## [1.0.5-e]
|
|
2
|
+
- PrimaryButton hover only for device detected hover functionality
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## [1.0.5-c]
|
|
6
|
+
- Harmonic :
|
|
7
|
+
- Added new CustomStrategy filter
|
|
8
|
+
- Fixed alignment between title and sponsor logo upon Header
|
|
9
|
+
- extended HighlightsCarousel to change infinit from false to true
|
|
10
|
+
|
|
11
|
+
## [Proposed: 1.0.5]
|
|
12
|
+
- CastFilter: prevent duplicate screen reader announcements for actor images and ensure tapping an actor image ring toggles selection.
|
|
13
|
+
|
|
14
|
+
## [Proposed: 1.0.4]
|
|
15
|
+
|
|
1
16
|
## [1.0.4]
|
|
2
17
|
- Castfilter: fix NDVA issues
|
|
3
18
|
|
|
4
19
|
## [1.0.3]
|
|
5
20
|
- Carousel title realignment following font change
|
|
6
21
|
|
|
7
|
-
## [1.0.2]
|
|
8
|
-
-
|
|
22
|
+
## [Proposed: 1.0.2]
|
|
23
|
+
- CastFilter: fix VoiceOver selection semantics and option activation (desktop/iOS).
|
|
24
|
+
- CastFilter: add stable id-based selection support (`selectedIds`, `onSelectId`, `onApplyIds`) with backward compatibility for legacy index-based API.
|
|
25
|
+
- ModalWindow: add `closeButtonAriaLabel` and set close icon `aria-hidden="true"`
|
|
26
|
+
|
|
27
|
+
## [Proposed: 1.0.1]
|
|
28
|
+
- Accessibility fixes to CastFilter component
|
|
29
|
+
|
|
30
|
+
## [0.19.3]
|
|
31
|
+
- Carousel title realignment following font change
|
|
32
|
+
|
|
9
33
|
|
|
10
34
|
## [1.0.1]
|
|
11
35
|
- Carousel: fix first click
|
|
12
36
|
|
|
13
37
|
## [1.0.0]
|
|
14
|
-
Addressed some tech debt:
|
|
38
|
+
Addressed some tech debt:
|
|
15
39
|
- all components are now exported for consumption from top-level public API export.
|
|
16
40
|
- Removed Radio, RadioGroup and Select components.
|
|
17
41
|
- cleaned up import/export structure of components
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IDropdownProps } from '../../../types/types';
|
|
3
|
-
declare const Dropdown: ({ title, titleLink, selected, options, onChange, iconName, isMobileBehaviour, withOptionsInMobile, withIcon, className, role, ariaLabel, trimTabText, }: IDropdownProps) => React.JSX.Element;
|
|
3
|
+
declare const Dropdown: ({ title, titleLink, selected, options, onChange, iconName, isMobileBehaviour, withOptionsInMobile, withIcon, className, role, ariaLabel, tabLinkId, trimTabText, }: IDropdownProps) => React.JSX.Element;
|
|
4
4
|
export default Dropdown;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ITabProps } from '../../../types/types';
|
|
3
|
-
declare const Tab: ({ title, titleLink, onClick, onFocus, onReset, selected, iconName, iconDirection, withIcon, withTextInMobile, trimText, className, role, ariaLabel, color, dataTestId, isOpen, }: ITabProps) => React.JSX.Element;
|
|
3
|
+
declare const Tab: ({ title, titleLink, onClick, onFocus, onReset, selected, iconName, iconDirection, withIcon, withTextInMobile, trimText, className, role, ariaLabel, tabLinkId, color, dataTestId, isOpen, }: ITabProps) => React.JSX.Element;
|
|
4
4
|
export default Tab;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DisplayHeader, HarmonicHeader, HarmonicSubtitle, BodyCopyHarmonic, HarmonicOverline, ButtonText, Caption, NavigationText } from './Typography';
|
|
2
2
|
import { Account, AltHeader, BodyText, CinemaBadge, ControlledDropdown, Dropdown, Grid, GridItem, Header, Icon, ImageAspectRatioWrapper, Logo, Overline, Person, PrimaryButton, Progress, Radio2, RotatorButtons, Search, SecondaryButton, SecondaryLogo, TertiaryButton, SectionSplitter, SocialLinks, SponsorLogo, Sponsorship, Stepper, StreamBadge, Subtitle, Tab, TabLink, TextLogo, TextArea, TextField, TextFieldLegacy, TextLink, Tickbox, Tickbox2, Timer, TypeTags, VideoControls } from './atoms';
|
|
3
3
|
import { AnchorTabBar, Footer, Navigation, StickyBar, TitleWithCTA, UpsellSection, Carousel, MinimalCarousel, HighlightsCarousel, HighlightsCarouselCinema, HighlightsCarouselCore, HighlightsCarouselStream, ModalWindow } from './organisms';
|
|
4
|
-
import { Accordion, Accordions, AnchorBar, AnnouncementBanner, AuxiliaryNav, Basket, BodyContent, Card, Cards, CastFilter, ContactNewsletter, ContactCard, ContentSummary, CreditListing, Editorial, HotFilters, ImageWithCaption, Information, MiniCard, NavTop, PersonDetails, PersonCard, PageHeading, PageHeadingCompact, PageHeadingImpact, PageHeadingPanel, PageHeadingPromo, PageHeadingHighlight, PageHeadingHighlightCarousel, PasswordStrength, Pagination, Paywall, PeopleListing, PolicyLinks, PromoWithTags, PromoWithTitle, Quote, RadioGroup2, ReadMore, StatusBanner, SearchBar, SectionTitle, Select2, Select2Async, SignUpForm, Swipe, SwipeRef, Table, Tabs, UpsellCard, UpsellCards, VideoWithControls, SkipToMain } from './molecules';
|
|
4
|
+
import { Accordion, Accordions, AnchorBar, AnnouncementBanner, AuxiliaryNav, Basket, BodyContent, Card, Cards, CastFilter, ContactNewsletter, ContactCard, ContentSummary, CreditListing, Editorial, HotFilters, ImageWithCaption, Information, MiniCard, CustomStrategyTabsFilter, NavTop, PersonDetails, PersonCard, PageHeading, PageHeadingCompact, PageHeadingImpact, PageHeadingPanel, PageHeadingPromo, PageHeadingHighlight, PageHeadingHighlightCarousel, PasswordStrength, Pagination, Paywall, PeopleListing, PolicyLinks, PromoWithTags, PromoWithTitle, Quote, RadioGroup2, ReadMore, StatusBanner, SearchBar, SectionTitle, Select2, Select2Async, SignUpForm, Swipe, SwipeRef, Table, Tabs, UpsellCard, UpsellCards, VideoWithControls, SkipToMain } from './molecules';
|
|
5
5
|
import ThemeProvider from '../styles/ThemeProvider';
|
|
6
6
|
import GlobalStyles from '../styles/GlobalStyles';
|
|
7
7
|
export { DisplayHeader, HarmonicHeader, HarmonicSubtitle, BodyCopyHarmonic, HarmonicOverline, ButtonText, Caption, NavigationText, SkipToMain, };
|
|
8
|
-
export { Accordion, Accordions, Account, AnchorBar, AnnouncementBanner, AltHeader, AnchorTabBar, AuxiliaryNav, Basket, BodyContent, BodyText, Card, Cards, Carousel, CastFilter, ContactNewsletter, ContactCard, ContentSummary, CinemaBadge, ControlledDropdown, Dropdown, CreditListing, Editorial, Footer, GlobalStyles, Grid, GridItem, HighlightsCarousel, HighlightsCarouselCinema, HighlightsCarouselCore, HighlightsCarouselStream, Header, HotFilters, Icon, ImageAspectRatioWrapper, ImageWithCaption, Information, Logo, MinimalCarousel, MiniCard, ModalWindow, NavTop, Navigation, Overline, Person, PersonCard, PersonDetails, PageHeading, PageHeadingCompact, PageHeadingImpact, PageHeadingPanel, PageHeadingHighlight, PageHeadingPromo, PageHeadingHighlightCarousel, Pagination, PasswordStrength, Paywall, PeopleListing, PolicyLinks, PrimaryButton, Progress, PromoWithTags, PromoWithTitle, Quote, Radio2, RadioGroup2, ReadMore, RotatorButtons, Search, SecondaryButton, SecondaryLogo, SocialLinks, StatusBanner, SearchBar, SectionTitle, Select2, Select2Async, SponsorLogo, SignUpForm, Swipe, SwipeRef, Sponsorship, Stepper, StickyBar, StreamBadge, Subtitle, TertiaryButton, ThemeProvider, TitleWithCTA, SectionSplitter, Tab, TabLink, Table, Tabs, TextArea, TextField, TextFieldLegacy, TextLink, TextLogo, Tickbox, Tickbox2, Timer, TypeTags, UpsellCard, UpsellCards, UpsellSection, VideoControls, VideoWithControls, };
|
|
8
|
+
export { Accordion, Accordions, Account, AnchorBar, AnnouncementBanner, AltHeader, AnchorTabBar, AuxiliaryNav, Basket, BodyContent, BodyText, Card, Cards, Carousel, CastFilter, ContactNewsletter, ContactCard, ContentSummary, CinemaBadge, ControlledDropdown, CustomStrategyTabsFilter, Dropdown, CreditListing, Editorial, Footer, GlobalStyles, Grid, GridItem, HighlightsCarousel, HighlightsCarouselCinema, HighlightsCarouselCore, HighlightsCarouselStream, Header, HotFilters, Icon, ImageAspectRatioWrapper, ImageWithCaption, Information, Logo, MinimalCarousel, MiniCard, ModalWindow, NavTop, Navigation, Overline, Person, PersonCard, PersonDetails, PageHeading, PageHeadingCompact, PageHeadingImpact, PageHeadingPanel, PageHeadingHighlight, PageHeadingPromo, PageHeadingHighlightCarousel, Pagination, PasswordStrength, Paywall, PeopleListing, PolicyLinks, PrimaryButton, Progress, PromoWithTags, PromoWithTitle, Quote, Radio2, RadioGroup2, ReadMore, RotatorButtons, Search, SecondaryButton, SecondaryLogo, SocialLinks, StatusBanner, SearchBar, SectionTitle, Select2, Select2Async, SponsorLogo, SignUpForm, Swipe, SwipeRef, Sponsorship, Stepper, StickyBar, StreamBadge, Subtitle, TertiaryButton, ThemeProvider, TitleWithCTA, SectionSplitter, Tab, TabLink, Table, Tabs, TextArea, TextField, TextFieldLegacy, TextLink, TextLogo, Tickbox, Tickbox2, Timer, TypeTags, UpsellCard, UpsellCards, UpsellSection, VideoControls, VideoWithControls, };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TCustomStrategyTabsFilterProps } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* A horizontally scrollable tabs filter component used to display
|
|
5
|
+
* selectable strategy tabs with configurable styling and selection behavior.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Supports both single-select and multi-select tab scenarios
|
|
9
|
+
* - Displays an optional icon on selected tabs
|
|
10
|
+
* - Allows customization of colors and selected icon through `customViewConfig`
|
|
11
|
+
* - Applies default styling when configuration values are omitted
|
|
12
|
+
* - Emits the clicked tab item through `onClick`
|
|
13
|
+
*
|
|
14
|
+
* @component
|
|
15
|
+
*
|
|
16
|
+
* @param {TCustomStrategyTabsFilterProps['items']} items
|
|
17
|
+
* Collection of tabs to render.
|
|
18
|
+
*
|
|
19
|
+
* @param {string} [className]
|
|
20
|
+
* Optional CSS class name applied to the root scroll container.
|
|
21
|
+
*
|
|
22
|
+
* @param {<T>(item: TCustomStrategyTabsFilterProps['items'][number]) => T} onClick
|
|
23
|
+
* Called when a tab is clicked. Receives the full clicked item (including
|
|
24
|
+
* `allowedSelectedWith`). The parent is responsible for computing the next
|
|
25
|
+
* `items` array and passing it back down with updated `isSelected` values.
|
|
26
|
+
* as long as no return statement `type` is inferred automatically as void
|
|
27
|
+
*
|
|
28
|
+
* @param [customViewConfig]
|
|
29
|
+
* Optional visual configuration used to customize:
|
|
30
|
+
* - selected tab icon
|
|
31
|
+
* - selected/unselected background colors
|
|
32
|
+
* - selected/unselected text colors
|
|
33
|
+
* - hover color
|
|
34
|
+
* - pressed color
|
|
35
|
+
*
|
|
36
|
+
* Any omitted configuration values will fall back to the component defaults.
|
|
37
|
+
*
|
|
38
|
+
* @returns { React.JSX.Element}
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* * @example Controlled selection with custom rules
|
|
43
|
+
* * The component does not manage selection itself. The parent owns `items` (including
|
|
44
|
+
* * `isSelected`) and updates that state in `onClick`. Use `allowedSelectedWith` on each
|
|
45
|
+
* * item to describe which other tab IDs may stay selected when that tab is chosen.
|
|
46
|
+
* *
|
|
47
|
+
* * ```tsx
|
|
48
|
+
* * const [items, setItems] = useState<TCustomStrategyTabsFilterItem[]>([
|
|
49
|
+
* * { id: 'all', text: 'All events', isSelected: true, allowedSelectedWith: [] },
|
|
50
|
+
* * { id: 'opera', text: 'Opera', isSelected: false, allowedSelectedWith: ['ballet'] },
|
|
51
|
+
* * { id: 'ballet', text: 'Ballet', isSelected: false, allowedSelectedWith: ['opera'] },
|
|
52
|
+
* * ]);
|
|
53
|
+
* *
|
|
54
|
+
* * const handleClick = (clickedItem: TCustomStrategyTabsFilterItem) => {
|
|
55
|
+
* * setItems((current) =>
|
|
56
|
+
* * current.map((item) => {
|
|
57
|
+
* * if (item.id === clickedItem.id) {
|
|
58
|
+
* * return { ...item, isSelected: !item.isSelected };
|
|
59
|
+
* * }
|
|
60
|
+
* *
|
|
61
|
+
* * const mayStaySelected = clickedItem.allowedSelectedWith?.includes(item.id);
|
|
62
|
+
* * return { ...item, isSelected: mayStaySelected ? !item.isSelected : false };
|
|
63
|
+
* * })
|
|
64
|
+
* * );
|
|
65
|
+
* * };
|
|
66
|
+
* *
|
|
67
|
+
* * return <CustomStrategyTabsFilter items={items} onClick={handleClick} />;
|
|
68
|
+
*/
|
|
69
|
+
declare const CustomStrategyTabsFilter: ({ items, className, onClick, customViewConfig, }: TCustomStrategyTabsFilterProps) => React.JSX.Element;
|
|
70
|
+
export default CustomStrategyTabsFilter;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const ScrollContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
+
export declare const TabsContainerWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const StyledTab: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<{
|
|
4
|
+
children: import("react").ReactNode;
|
|
5
|
+
onClick?: ((event: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>) => void) | undefined;
|
|
6
|
+
className?: string | undefined;
|
|
7
|
+
} & {
|
|
8
|
+
iconName?: "AddToMyList" | "Arrow" | "ArrowPagination" | "AudioDescription" | "Back10" | "BalletAndDance" | "Basket" | "BasketFull" | "BritishSignLanguage" | "BookTickets" | "CarouselArrow" | "ChooseDates" | "Cinema" | "Clips" | "Clock" | "Close" | "Captioned" | "ClosedCaptions" | "Confirm" | "CreditCard" | "Delete" | "Detract" | "DropdownArrow" | "EditMyList" | "Email" | "Expand" | "Expand12px" | "ExternalLink" | "Facebook" | "FamilyFriendly" | "Favourite" | "FavouriteFull" | "Filter" | "FindAScreening" | "Forward10" | "FullScreen" | "GridView" | "Home" | "Info" | "Instagram" | "LastPageArrow" | "List" | "ListView" | "LiveStream" | "Location" | "Menu" | "Minimise" | "Muted" | "NavLogoMobile" | "NavLogoNoCrest" | "NavLogoWithCrest" | "OnMyList" | "OpenCaptions" | "OperaAndMusic" | "Pause" | "PDF" | "Phone" | "Play" | "Print" | "Refresh" | "RelaxedPerformance" | "Reminder" | "Remove" | "Remove12px" | "Restart" | "Search" | "Seat" | "Secure" | "Settings" | "Shift" | "Space" | "Standing" | "Star" | "Subscribe" | "Subtitles" | "Tick" | "Tickets" | "Tiktok" | "TouchTour" | "Trailer" | "Twitter" | "User" | "UserSignedIn" | "Volume" | "Watch" | "Wheelchair" | "X" | "Youtube" | undefined;
|
|
9
|
+
iconDirection?: "left" | "right" | "up" | "down" | "reverse" | undefined;
|
|
10
|
+
iconClassName?: string | undefined;
|
|
11
|
+
} & import("react").AnchorHTMLAttributes<HTMLAnchorElement> & Pick<{
|
|
12
|
+
textColor?: "primary" | "primary-red" | "primary-black" | "base-white" | "base-black" | "base-dark-grey" | "base-mid-grey" | "base-light-grey" | "base-transparent" | "state-error" | "state-medium" | "state-good" | "state-focused" | "state-disabled" | "rbo-red-hovered" | "rbo-red-pressed" | "rbo-black-hovered" | "rbo-black-pressed" | "black-hovered" | "black-pressed" | "white-hovered" | "white-pressed" | "secondary-yellow" | "secondary-pink" | "secondary-orange" | "secondary-blue" | undefined;
|
|
13
|
+
backgroundColor?: "primary" | "primary-red" | "primary-black" | "base-white" | "base-black" | "base-dark-grey" | "base-mid-grey" | "base-light-grey" | "base-transparent" | "state-error" | "state-medium" | "state-good" | "state-focused" | "state-disabled" | "rbo-red-hovered" | "rbo-red-pressed" | "rbo-black-hovered" | "rbo-black-pressed" | "black-hovered" | "black-pressed" | "white-hovered" | "white-pressed" | "secondary-yellow" | "secondary-pink" | "secondary-orange" | "secondary-blue" | undefined;
|
|
14
|
+
borderColor?: "primary" | "primary-red" | "primary-black" | "base-white" | "base-black" | "base-dark-grey" | "base-mid-grey" | "base-light-grey" | "base-transparent" | "state-error" | "state-medium" | "state-good" | "state-focused" | "state-disabled" | "rbo-red-hovered" | "rbo-red-pressed" | "rbo-black-hovered" | "rbo-black-pressed" | "black-hovered" | "black-pressed" | "white-hovered" | "white-pressed" | "secondary-yellow" | "secondary-pink" | "secondary-orange" | "secondary-blue" | undefined;
|
|
15
|
+
hoveredColor?: "primary" | "primary-red" | "primary-black" | "base-white" | "base-black" | "base-dark-grey" | "base-mid-grey" | "base-light-grey" | "base-transparent" | "state-error" | "state-medium" | "state-good" | "state-focused" | "state-disabled" | "rbo-red-hovered" | "rbo-red-pressed" | "rbo-black-hovered" | "rbo-black-pressed" | "black-hovered" | "black-pressed" | "white-hovered" | "white-pressed" | "secondary-yellow" | "secondary-pink" | "secondary-orange" | "secondary-blue" | undefined;
|
|
16
|
+
pressedColor?: "primary" | "primary-red" | "primary-black" | "base-white" | "base-black" | "base-dark-grey" | "base-mid-grey" | "base-light-grey" | "base-transparent" | "state-error" | "state-medium" | "state-good" | "state-focused" | "state-disabled" | "rbo-red-hovered" | "rbo-red-pressed" | "rbo-black-hovered" | "rbo-black-pressed" | "black-hovered" | "black-pressed" | "white-hovered" | "white-pressed" | "secondary-yellow" | "secondary-pink" | "secondary-orange" | "secondary-blue" | undefined;
|
|
17
|
+
disabled?: boolean | undefined;
|
|
18
|
+
}, "textColor" | "backgroundColor" | "hoveredColor" | "pressedColor" | "disabled"> & import("react").RefAttributes<HTMLAnchorElement>>, any, {}, never>;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export interface IPageHeadingWrapperProps {
|
|
2
2
|
isPageHeadingWithoutTitle?: boolean;
|
|
3
|
+
isMultipleRow?: boolean;
|
|
3
4
|
}
|
|
4
5
|
export declare const PageHeadingWrapper: import("styled-components").StyledComponent<"div", any, IPageHeadingWrapperProps, never>;
|
|
5
|
-
export declare const PageHeadingGrid: import("styled-components").StyledComponent<"div", any,
|
|
6
|
+
export declare const PageHeadingGrid: import("styled-components").StyledComponent<"div", any, IPageHeadingWrapperProps, never>;
|
|
6
7
|
export declare const BadgeWrapper: import("styled-components").StyledComponent<"div", any, IPageHeadingWrapperProps, never>;
|
|
7
8
|
export declare const TitleWrapper: import("styled-components").StyledComponent<"div", any, IPageHeadingWrapperProps, never>;
|
|
8
9
|
export declare const ChildrenWrapper: import("styled-components").StyledComponent<"div", any, IPageHeadingWrapperProps, never>;
|
|
9
10
|
export declare const TextWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
10
11
|
export declare const LogoWrapper: import("styled-components").StyledComponent<"div", any, IPageHeadingWrapperProps, never>;
|
|
11
|
-
export declare const ButtonWrapper: import("styled-components").StyledComponent<"div", any,
|
|
12
|
+
export declare const ButtonWrapper: import("styled-components").StyledComponent<"div", any, IPageHeadingWrapperProps, never>;
|
|
@@ -3,5 +3,5 @@ import { ICreditListing } from '../../../../types';
|
|
|
3
3
|
export declare const DEFAULT_COLUMN_COUNT = 4;
|
|
4
4
|
export declare const DEFAULT_LARGE_COLUMN_SPAN = 2;
|
|
5
5
|
export declare const DEFAULT_CHARACTER_THRESHOLD = 180;
|
|
6
|
-
declare const CreditListing: ({ roles, columnCount, expandLargeEntries, largeColumnSpan, characterThreshold, }: ICreditListing) => React.JSX.Element;
|
|
6
|
+
declare const CreditListing: ({ roles, columnCount, expandLargeEntries, largeColumnSpan, characterThreshold, className, }: ICreditListing) => React.JSX.Element;
|
|
7
7
|
export default CreditListing;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface FocusableTabProps {
|
|
2
2
|
hide?: boolean;
|
|
3
3
|
}
|
|
4
|
-
export declare const FocusableTab: import("styled-components").StyledComponent<({ title, titleLink, onClick, onFocus, onReset, selected, iconName, iconDirection, withIcon, withTextInMobile, trimText, className, role, ariaLabel, color, dataTestId, isOpen, }: import("../../../types/types").ITabProps) => import("react").JSX.Element, any, FocusableTabProps, never>;
|
|
4
|
+
export declare const FocusableTab: import("styled-components").StyledComponent<({ title, titleLink, onClick, onFocus, onReset, selected, iconName, iconDirection, withIcon, withTextInMobile, trimText, className, role, ariaLabel, tabLinkId, color, dataTestId, isOpen, }: import("../../../types/types").ITabProps) => import("react").JSX.Element, any, FocusableTabProps, never>;
|
|
5
5
|
export declare const HiddenBlock: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
6
6
|
export {};
|
|
@@ -11,6 +11,7 @@ import ContactNewsletter from './ContactNewsletter';
|
|
|
11
11
|
import ContentSummary from './ContentSummary';
|
|
12
12
|
import Editorial from './Editorial';
|
|
13
13
|
import HotFilters from './HotFilters';
|
|
14
|
+
import CustomStrategyTabsFilter from './CustomStrategyTabsFilter';
|
|
14
15
|
import Information from './Information';
|
|
15
16
|
import { PageHeading, PageHeadingImpact, PageHeadingPanel, PageHeadingCompact, PageHeadingPromo, PageHeadingHighlight, PageHeadingHighlightCarousel } from './PageHeading';
|
|
16
17
|
import Pagination from './Pagination';
|
|
@@ -43,4 +44,4 @@ import AnchorBar from './AnchorBar';
|
|
|
43
44
|
import SkipToMain from './SkipToMain';
|
|
44
45
|
import Paywall from './Paywall';
|
|
45
46
|
import UpsellCards from './UpsellCards';
|
|
46
|
-
export { Accordion, Accordions, AnchorBar, AnnouncementBanner, AuxiliaryNav, Basket, BodyContent, Card, Cards, CastFilter, ContactCard, ContactNewsletter, ContentSummary, CreditListing, Editorial, HotFilters, ImageWithCaption, Information, MiniCard, NavTop, PersonCard, PersonDetails, PageHeading, PageHeadingCompact, PageHeadingImpact, PageHeadingHighlight, PageHeadingPanel, PageHeadingPromo, PageHeadingHighlightCarousel, PasswordStrength, Pagination, Paywall, PeopleListing, PolicyLinks, PromoWithTags, PromoWithTitle, Quote, RadioGroup2, ReadMore, StatusBanner, SectionTitle, SearchBar, Select2, Select2Async, SignUpForm, Swipe, SwipeRef, Tabs, Table, UpsellCard, UpsellCards, VideoWithControls, SkipToMain, };
|
|
47
|
+
export { Accordion, Accordions, AnchorBar, AnnouncementBanner, AuxiliaryNav, Basket, BodyContent, Card, Cards, CastFilter, ContactCard, ContactNewsletter, ContentSummary, CreditListing, CustomStrategyTabsFilter, Editorial, HotFilters, ImageWithCaption, Information, MiniCard, NavTop, PersonCard, PersonDetails, PageHeading, PageHeadingCompact, PageHeadingImpact, PageHeadingHighlight, PageHeadingPanel, PageHeadingPromo, PageHeadingHighlightCarousel, PasswordStrength, Pagination, Paywall, PeopleListing, PolicyLinks, PromoWithTags, PromoWithTitle, Quote, RadioGroup2, ReadMore, StatusBanner, SectionTitle, SearchBar, Select2, Select2Async, SignUpForm, Swipe, SwipeRef, Tabs, Table, UpsellCard, UpsellCards, VideoWithControls, SkipToMain, };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { FunctionComponent } from 'react';
|
|
2
2
|
import { ICarouselProps } from '../../../../types/carousel';
|
|
3
|
-
declare const Carousel: FunctionComponent<ICarouselProps
|
|
4
|
-
titleFontFamily: 'Victor' | 'Grey' | undefined;
|
|
5
|
-
}>>;
|
|
3
|
+
declare const Carousel: FunctionComponent<ICarouselProps>;
|
|
6
4
|
export default Carousel;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { FunctionComponent } from 'react';
|
|
2
2
|
import { IHighlightsCarouselProps } from '../../../../types/carousel';
|
|
3
|
-
declare const HighlightsCarousel: FunctionComponent<IHighlightsCarouselProps
|
|
4
|
-
titleFontFamily: 'Victor' | 'Grey' | undefined;
|
|
5
|
-
}>>;
|
|
3
|
+
declare const HighlightsCarousel: FunctionComponent<IHighlightsCarouselProps>;
|
|
6
4
|
export default HighlightsCarousel;
|
|
@@ -350,6 +350,325 @@
|
|
|
350
350
|
font-display: swap;
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
+
/* ~~~~~ General Styling Classes ~~~~~ */
|
|
354
|
+
.typography_color-primary__LOfDi {
|
|
355
|
+
color: var(--color-primary);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.typography_color-black__6MHRL {
|
|
359
|
+
color: var(--color-base-black);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
.typography_color-white__PfW5s {
|
|
363
|
+
color: var(--color-base-white);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.typography_color-red__iPlbG {
|
|
367
|
+
color: var(--color-primary-red);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.typography_color-grey__GA1c2 {
|
|
371
|
+
color: var(--color-base-dark-grey);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
.typography_color-inherit__RDd0Y {
|
|
375
|
+
color: inherit;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.typography_em__E6tX- {
|
|
379
|
+
font-style: italic;
|
|
380
|
+
}
|
|
381
|
+
/* ~~~ */
|
|
382
|
+
|
|
383
|
+
/* Display Headers */
|
|
384
|
+
.typography_display__-F3p4 {
|
|
385
|
+
margin: 0;
|
|
386
|
+
font-family: var(--font-family-sans);
|
|
387
|
+
line-height: 100%;
|
|
388
|
+
|
|
389
|
+
&.typography_large__uq0zC {
|
|
390
|
+
font-size: 96px;
|
|
391
|
+
font-weight: 700;
|
|
392
|
+
letter-spacing: -5px;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
&.typography_small__wfQ0K {
|
|
396
|
+
font-size: 68px;
|
|
397
|
+
font-weight: 500;
|
|
398
|
+
letter-spacing: -3px;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/* Serif and Italic styles */
|
|
402
|
+
&.typography_serif__VSO38,
|
|
403
|
+
&.typography_em__E6tX- {
|
|
404
|
+
font-family: var(--font-family-serif);
|
|
405
|
+
font-weight: 500;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
/* Serif and Italic adjustments */
|
|
409
|
+
&.typography_large__uq0zC.typography_serif__VSO38,
|
|
410
|
+
&.typography_large__uq0zC.typography_em__E6tX- {
|
|
411
|
+
letter-spacing: -3px;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
&.typography_small__wfQ0K.typography_serif__VSO38,
|
|
415
|
+
&.typography_small__wfQ0K.typography_em__E6tX- {
|
|
416
|
+
letter-spacing: -2px;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
@media (max-width: 699px) {
|
|
420
|
+
&.typography_large__uq0zC {
|
|
421
|
+
font-size: 38px;
|
|
422
|
+
letter-spacing: -1.5px;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
&.typography_small__wfQ0K {
|
|
426
|
+
font-size: 32px;
|
|
427
|
+
letter-spacing: -1.5px;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
&.typography_large__uq0zC.typography_serif__VSO38,
|
|
431
|
+
&.typography_large__uq0zC.typography_em__E6tX-,
|
|
432
|
+
&.typography_small__wfQ0K.typography_serif__VSO38,
|
|
433
|
+
&.typography_small__wfQ0K.typography_em__E6tX- {
|
|
434
|
+
letter-spacing: -0.5px;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
/* Headers */
|
|
440
|
+
.typography_header__BexiD {
|
|
441
|
+
margin: 0;
|
|
442
|
+
font-family: var(--font-family-sans);
|
|
443
|
+
font-weight: 500;
|
|
444
|
+
|
|
445
|
+
&.typography_large__uq0zC {
|
|
446
|
+
font-size: 44px;
|
|
447
|
+
line-height: 48px;
|
|
448
|
+
letter-spacing: -1.5px;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
&.typography_medium__K0uZD {
|
|
452
|
+
font-size: 34px;
|
|
453
|
+
line-height: 40px;
|
|
454
|
+
letter-spacing: -1px;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
&.typography_small__wfQ0K {
|
|
458
|
+
font-size: 26px;
|
|
459
|
+
line-height: 32px;
|
|
460
|
+
letter-spacing: -0.5px;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/* Serif and Italic styles */
|
|
464
|
+
&.typography_serif__VSO38,
|
|
465
|
+
&.typography_em__E6tX- {
|
|
466
|
+
font-family: var(--font-family-serif);
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
/* Serif and Italic letter-spacing overrides */
|
|
470
|
+
&.typography_large__uq0zC.typography_serif__VSO38,
|
|
471
|
+
&.typography_large__uq0zC.typography_em__E6tX- {
|
|
472
|
+
letter-spacing: -0.5px;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
&.typography_medium__K0uZD.typography_serif__VSO38,
|
|
476
|
+
&.typography_medium__K0uZD.typography_em__E6tX- {
|
|
477
|
+
letter-spacing: -0.5px;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
&.typography_small__wfQ0K.typography_serif__VSO38,
|
|
481
|
+
&.typography_small__wfQ0K.typography_em__E6tX- {
|
|
482
|
+
letter-spacing: -0.5px;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
@media (max-width: 699px) {
|
|
486
|
+
&.typography_large__uq0zC {
|
|
487
|
+
font-size: 28px;
|
|
488
|
+
line-height: 34px;
|
|
489
|
+
letter-spacing: -1.5px;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
&.typography_medium__K0uZD {
|
|
493
|
+
font-size: 24px;
|
|
494
|
+
line-height: 28px;
|
|
495
|
+
letter-spacing: -1px;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
&.typography_small__wfQ0K {
|
|
499
|
+
font-size: 20px;
|
|
500
|
+
line-height: 26px;
|
|
501
|
+
letter-spacing: -0.75px;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
/* Mobile overrides for serif/italic letter-spacing */
|
|
505
|
+
&.typography_large__uq0zC.typography_serif__VSO38,
|
|
506
|
+
&.typography_large__uq0zC.typography_em__E6tX-,
|
|
507
|
+
&.typography_medium__K0uZD.typography_serif__VSO38,
|
|
508
|
+
&.typography_medium__K0uZD.typography_em__E6tX-,
|
|
509
|
+
&.typography_small__wfQ0K.typography_serif__VSO38,
|
|
510
|
+
&.typography_small__wfQ0K.typography_em__E6tX- {
|
|
511
|
+
letter-spacing: -0.5px;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/* Subtitle */
|
|
517
|
+
.typography_subtitle__aoFTV {
|
|
518
|
+
margin: 0;
|
|
519
|
+
font-family: var(--font-family-sans);
|
|
520
|
+
font-weight: 500;
|
|
521
|
+
|
|
522
|
+
&.typography_large__uq0zC {
|
|
523
|
+
font-size: 19px;
|
|
524
|
+
line-height: 26px;
|
|
525
|
+
letter-spacing: -0.5px;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
&.typography_small__wfQ0K {
|
|
529
|
+
font-size: 17px;
|
|
530
|
+
line-height: 24px;
|
|
531
|
+
letter-spacing: -0.5px;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
@media (max-width: 699px) {
|
|
535
|
+
&.typography_large__uq0zC {
|
|
536
|
+
font-size: 17px;
|
|
537
|
+
line-height: 24px;
|
|
538
|
+
letter-spacing: -0.5px;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
&.typography_small__wfQ0K {
|
|
542
|
+
font-size: 14px;
|
|
543
|
+
line-height: 20px;
|
|
544
|
+
letter-spacing: -0.2px;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
/* Body Copy */
|
|
550
|
+
.typography_bodycopy__vYtQ8 {
|
|
551
|
+
margin: 0;
|
|
552
|
+
font-family: var(--font-family-sans);
|
|
553
|
+
font-weight: 400;
|
|
554
|
+
|
|
555
|
+
&.typography_large__uq0zC {
|
|
556
|
+
font-size: 19px;
|
|
557
|
+
line-height: 26px;
|
|
558
|
+
letter-spacing: -0.5px;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
&.typography_medium__K0uZD {
|
|
562
|
+
font-size: 17px;
|
|
563
|
+
line-height: 24px;
|
|
564
|
+
letter-spacing: -0.5px;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
&.typography_small__wfQ0K {
|
|
568
|
+
font-size: 14px;
|
|
569
|
+
line-height: 20px;
|
|
570
|
+
letter-spacing: -0.5px;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
@media (max-width: 699px) {
|
|
574
|
+
&.typography_large__uq0zC {
|
|
575
|
+
font-size: 17px;
|
|
576
|
+
line-height: 24px;
|
|
577
|
+
letter-spacing: -0.5px;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
&.typography_medium__K0uZD {
|
|
581
|
+
font-size: 14px;
|
|
582
|
+
line-height: 20px;
|
|
583
|
+
letter-spacing: -0.2px;
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
&.typography_small__wfQ0K {
|
|
587
|
+
font-size: 11px;
|
|
588
|
+
line-height: 16px;
|
|
589
|
+
letter-spacing: -0.2px;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
/* Overline */
|
|
595
|
+
.typography_overline__EnUK3 {
|
|
596
|
+
margin: 0;
|
|
597
|
+
font-family: var(--font-family-sans);
|
|
598
|
+
font-weight: 500;
|
|
599
|
+
text-transform: uppercase;
|
|
600
|
+
|
|
601
|
+
&.typography_large__uq0zC {
|
|
602
|
+
font-size: 14px;
|
|
603
|
+
line-height: 18px;
|
|
604
|
+
letter-spacing: 0.3px;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
&.typography_small__wfQ0K {
|
|
608
|
+
font-size: 12px;
|
|
609
|
+
line-height: 14px;
|
|
610
|
+
letter-spacing: 0.2px;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
@media (max-width: 699px) {
|
|
614
|
+
&.typography_large__uq0zC {
|
|
615
|
+
line-height: 17px;
|
|
616
|
+
letter-spacing: 0.3px; /* Added to ensure it stays */
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
&.typography_small__wfQ0K {
|
|
620
|
+
line-height: 14px;
|
|
621
|
+
letter-spacing: 0.3px;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
/* Button Text */
|
|
627
|
+
.typography_buttontext__vcxNi {
|
|
628
|
+
margin: 0;
|
|
629
|
+
font-family: var(--font-family-sans);
|
|
630
|
+
font-size: 17px;
|
|
631
|
+
line-height: 20px;
|
|
632
|
+
letter-spacing: -0.5px;
|
|
633
|
+
font-weight: 400;
|
|
634
|
+
|
|
635
|
+
@media (max-width: 699px) {
|
|
636
|
+
font-weight: 500;
|
|
637
|
+
line-height: 17px;
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
/* Caption Text */
|
|
642
|
+
.typography_captiontext__91UFb {
|
|
643
|
+
margin: 0;
|
|
644
|
+
font-family: var(--font-family-sans);
|
|
645
|
+
font-weight: 400;
|
|
646
|
+
font-size: 17px;
|
|
647
|
+
line-height: 24px;
|
|
648
|
+
letter-spacing: -0.5px;
|
|
649
|
+
|
|
650
|
+
@media (max-width: 699px) {
|
|
651
|
+
font-size: 14px;
|
|
652
|
+
line-height: 20px;
|
|
653
|
+
letter-spacing: -0.2px;
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
/* Navigation Text */
|
|
658
|
+
.typography_navigationtext__YfGf7 {
|
|
659
|
+
margin: 0;
|
|
660
|
+
font-family: var(--font-family-sans);
|
|
661
|
+
font-size: 19px;
|
|
662
|
+
line-height: 19px;
|
|
663
|
+
letter-spacing: 0.4px;
|
|
664
|
+
font-weight: 500;
|
|
665
|
+
|
|
666
|
+
@media (max-width: 699px) {
|
|
667
|
+
font-size: 17px;
|
|
668
|
+
line-height: 17px;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
|
|
353
672
|
.core-theme-module_coreTheme__pWxYB {
|
|
354
673
|
/* RBO Red */
|
|
355
674
|
/* Primary Palette */
|