@20minutes/tyr 2.15.0 → 2.16.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.
@@ -0,0 +1 @@
1
+ export default function initSkipLinks(): void;
@@ -0,0 +1,10 @@
1
+ import { BoxProps, CardHeaderProps, HeadingProps, LinkProps, MediaProps, TextProps } from '@20minutes/hela';
2
+ import { default as React } from 'react';
3
+ export interface TvLiveTopBlockProps extends BoxProps {
4
+ mediaSrc: MediaProps['src'];
5
+ cardHeaderProps: CardHeaderProps;
6
+ heading: HeadingProps;
7
+ subtitle: TextProps;
8
+ seeReplaysLink?: LinkProps;
9
+ }
10
+ export declare const TvLiveTopBlock: React.FC<TvLiveTopBlockProps>;
@@ -0,0 +1,41 @@
1
+ import { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import('react').FC<import('./TvLiveTopBlock').TvLiveTopBlockProps>;
5
+ args: {
6
+ mediaSrc: string;
7
+ cardHeaderProps: {
8
+ headline: {
9
+ text: string;
10
+ };
11
+ rightSubheader: {
12
+ text: string;
13
+ };
14
+ };
15
+ heading: {
16
+ children: string;
17
+ };
18
+ subtitle: {
19
+ children: string;
20
+ };
21
+ seeReplaysLink: {
22
+ href: string;
23
+ };
24
+ };
25
+ parameters: {
26
+ controls: {
27
+ exclude: string[];
28
+ };
29
+ layout: string;
30
+ viewport: {
31
+ defaultViewport: string;
32
+ };
33
+ backgrounds: {
34
+ default: string;
35
+ };
36
+ };
37
+ };
38
+ export default meta;
39
+ type Story = StoryObj<typeof meta>;
40
+ export declare const Mobile: Story;
41
+ export declare const Desktop: Story;
@@ -0,0 +1 @@
1
+ export * from './TvLiveTopBlock';
@@ -25,4 +25,5 @@ export * from './PromoBanner';
25
25
  export * from './SearchBanner';
26
26
  export * from './SlideshowStory';
27
27
  export * from './SponsoredBlock';
28
+ export * from './TvLiveTopBlock';
28
29
  export * from './YearsList';
@@ -0,0 +1,2 @@
1
+ import { ComponentConfig, ComponentNameTvLive } from '../../types';
2
+ export declare const COMPONENT_TV_LIVE_CONFIGS: ComponentConfig<ComponentNameTvLive>[];
@@ -0,0 +1,2 @@
1
+ import { TvLivePageConfig } from '../../types';
2
+ export declare const TV_LIVE_PAGE_CONFIG: TvLivePageConfig;
@@ -21,6 +21,6 @@ export declare const setCardHeaderProps: (properties: Omit<CardHeaderProps, 'loc
21
21
  size?: "s" | "m" | "xxs-3" | "xxs-2" | "xxs" | "xs" | "l" | "xl" | "xxl" | undefined;
22
22
  headline: import('@20minutes/hela').TextType;
23
23
  hasDot?: boolean | undefined;
24
- liveTime?: string | undefined;
25
24
  rightSubheader?: import('@20minutes/hela').TextType | undefined;
25
+ liveTime?: string | undefined;
26
26
  } | undefined;
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+ import { PageTemplateProps } from '../../templates';
3
+ export interface TvLivePageProps extends PageTemplateProps {
4
+ breadcrumb: React.ReactNode;
5
+ topBlock: React.ReactNode;
6
+ showsReplaysCarousel: React.ReactNode;
7
+ }
8
+ export declare const TvLivePage: React.FC<TvLivePageProps>;
@@ -0,0 +1,63 @@
1
+ import { BreadcrumbProps, HeaderProps, LayoutType } from '@20minutes/hela';
2
+ import { default as React } from 'react';
3
+ import { MetaProps, ShowsReplaysCarouselProps, TvLiveTopBlockProps } from '../../components';
4
+ import { StoryObj } from '@storybook/react';
5
+ declare const meta: {
6
+ title: string;
7
+ component: React.FC<import('..').TvLivePageProps>;
8
+ args: {
9
+ htmlTemplateProps: {
10
+ meta: React.FunctionComponentElement<MetaProps>;
11
+ layout: LayoutType;
12
+ stylesheets?: {
13
+ name: string;
14
+ url: string;
15
+ isCritical?: boolean | undefined;
16
+ }[] | undefined;
17
+ inlineCss?: string | undefined;
18
+ firstPartyScripts: import('../..').FirstPartyScriptsType;
19
+ thirdPartiesConfig: import('../..').ThirdPartiesConfigType;
20
+ gtmNoScript?: string | undefined;
21
+ jsonLdBreadcrumb?: React.ReactNode;
22
+ jsonLdFaq?: React.ReactNode;
23
+ jsonLdClaimReview?: React.ReactNode;
24
+ jsonLdLiveBlogPosting?: React.ReactNode;
25
+ jsonLdNewsArticle?: React.ReactNode;
26
+ defaultPreload: React.ReactNode;
27
+ preload?: React.ReactNode;
28
+ children?: React.ReactNode;
29
+ envVariables?: import('../../types/EnvVariablesType').EnvVariablesType | undefined;
30
+ novaHost?: string | undefined;
31
+ goomHost?: string | undefined;
32
+ imgHost?: string | undefined;
33
+ staticHost?: string | undefined;
34
+ pageMetaData?: import('../../templates').PageMetaDataType | undefined;
35
+ customPrint?: boolean | undefined;
36
+ backgroundPageColor?: import('@20minutes/hela').ColorType | undefined;
37
+ };
38
+ header: React.FunctionComponentElement<HeaderProps>;
39
+ breadcrumb: React.FunctionComponentElement<BreadcrumbProps>;
40
+ topBlock: React.FunctionComponentElement<TvLiveTopBlockProps>;
41
+ showsReplaysCarousel: React.FunctionComponentElement<ShowsReplaysCarouselProps>;
42
+ headerMini?: React.ReactNode;
43
+ menu: React.ReactNode;
44
+ overviewBar?: React.ReactNode;
45
+ adTopPage?: React.ReactNode;
46
+ children: React.ReactNode;
47
+ footer: React.ReactNode;
48
+ toolbar?: React.ReactNode;
49
+ comment?: React.ReactNode;
50
+ backgroundPageColor?: import('@20minutes/hela').ColorType | undefined;
51
+ hasArch?: boolean | undefined;
52
+ };
53
+ parameters: {
54
+ layout: string;
55
+ backgrounds: {
56
+ default: string;
57
+ };
58
+ };
59
+ };
60
+ export default meta;
61
+ type Story = StoryObj<typeof meta>;
62
+ export declare const LivePageMobile: Story;
63
+ export declare const LivePageDesktop: Story;
@@ -0,0 +1 @@
1
+ export * from './TvLivePage';
@@ -41,6 +41,7 @@ export * from './SportPage';
41
41
  export * from './TagPage';
42
42
  export * from './TrafficPage';
43
43
  export * from './TvHomeVideosPage';
44
+ export * from './TvLivePage';
44
45
  export * from './TvShowPage';
45
46
  export * from './UtiqPage';
46
47
  export * from './VideoPage';
@@ -29,7 +29,8 @@ export declare const enum ComponentNameCommon {
29
29
  COMMON_MOST_READ_ARTICLES = "common/most-read-articles",
30
30
  COMMON_PRELOAD = "common/preload",
31
31
  COMMON_LATEST_CONTENTS_CARROUSEL = "common/latest-contents-carousel",
32
- COMMON_TOOLBAR = "common/toolbar"
32
+ COMMON_TOOLBAR = "common/toolbar",
33
+ COMMON_TV_SHOWS_REPLAYS_CAROUSEL = "common/tv-shows-replays-carousel"
33
34
  }
34
35
  export declare const enum ComponentNameContact {
35
36
  CONTACT_BREADCRUMB = "contact/breadcrumb",
@@ -339,14 +340,18 @@ export declare const enum ComponentNameTraffic {
339
340
  export declare const enum ComponentNameTvHomeVideos {
340
341
  TV_HOME_VIDEOS_JSON_LD_BREADCRUMB = "tv-home-videos/json-ld-breadcrumb",
341
342
  TV_HOME_VIDEOS_META = "tv-home-videos/meta",
342
- TV_HOME_VIDEOS_TOP_BLOCK = "tv-home-videos/top-block",
343
- TV_HOME_VIDEOS_SHOWS_REPLAYS_CAROUSEL = "tv-home-videos/shows-replays-carousel"
343
+ TV_HOME_VIDEOS_TOP_BLOCK = "tv-home-videos/top-block"
344
+ }
345
+ export declare const enum ComponentNameTvLive {
346
+ TV_LIVE_JSON_LD_BREADCRUMB = "tv-live/json-ld-breadcrumb",
347
+ TV_LIVE_META = "tv-live/meta",
348
+ TV_LIVE_BREADCRUMB = "tv-live/breadcrumb",
349
+ TV_LIVE_TOP_BLOCK = "tv-live/top-block"
344
350
  }
345
351
  export declare const enum ComponentNameTvShow {
346
352
  TV_SHOW_JSON_LD_BREADCRUMB = "tv-show/json-ld-breadcrumb",
347
353
  TV_SHOW_META = "tv-show/meta",
348
- TV_SHOW_TOP_BLOCK = "tv-show/top-block",
349
- TV_SHOW_SHOWS_REPLAYS_CAROUSEL = "tv-show/shows-replays-carousel"
354
+ TV_SHOW_TOP_BLOCK = "tv-show/top-block"
350
355
  }
351
356
  export declare const enum ComponentNameUtiq {
352
357
  UTIQ_BREADCRUMB = "utiq/breadcrumb",
@@ -376,7 +381,7 @@ export declare const enum ComponentNameWeather {
376
381
  WEATHER_JSON_LD_BREADCRUMB = "weather/json-ld-breadcrumb",
377
382
  WEATHER_META = "weather/meta"
378
383
  }
379
- export interface ComponentConfig<TComponentName = ComponentNameArchives | ComponentNameArticle | ComponentNameCommon | ComponentNameContact | ComponentNameContent | ComponentNameDirect | ComponentNameElections | ComponentNameError | ComponentNameGame | ComponentNameHome | ComponentNameHoroscope | ComponentNameJobs | ComponentNameJournalist | ComponentNameLa21e | ComponentNameLegal | ComponentNameLegalNotice | ComponentNameLive | ComponentNameMobileApps | ComponentNameMostCommented | ComponentNameMostRead | ComponentNameMostRecentVideos | ComponentNameMostShared | ComponentNameMostViewed | ComponentNameMovies | ComponentNameNews | ComponentNameProgram | ComponentNameRubric | ComponentNameSearch | ComponentNameService | ComponentNameShoppingGuide | ComponentNameSitemap | ComponentNameSlideshow | ComponentNameSport | ComponentNameStory | ComponentNameTag | ComponentNameTraffic | ComponentNameTvHomeVideos | ComponentNameTvShow | ComponentNameUtiq | ComponentNameVideo | ComponentNameVideos | ComponentNameWeather, TComponent = React.FC<any>> {
384
+ export interface ComponentConfig<TComponentName = ComponentNameArchives | ComponentNameArticle | ComponentNameCommon | ComponentNameContact | ComponentNameContent | ComponentNameDirect | ComponentNameElections | ComponentNameError | ComponentNameGame | ComponentNameHome | ComponentNameHoroscope | ComponentNameJobs | ComponentNameJournalist | ComponentNameLa21e | ComponentNameLegal | ComponentNameLegalNotice | ComponentNameLive | ComponentNameMobileApps | ComponentNameMostCommented | ComponentNameMostRead | ComponentNameMostRecentVideos | ComponentNameMostShared | ComponentNameMostViewed | ComponentNameMovies | ComponentNameNews | ComponentNameProgram | ComponentNameRubric | ComponentNameSearch | ComponentNameService | ComponentNameShoppingGuide | ComponentNameSitemap | ComponentNameSlideshow | ComponentNameSport | ComponentNameStory | ComponentNameTag | ComponentNameTraffic | ComponentNameTvHomeVideos | ComponentNameTvLive | ComponentNameTvShow | ComponentNameUtiq | ComponentNameVideo | ComponentNameVideos | ComponentNameWeather, TComponent = React.FC<any>> {
380
385
  componentName: TComponentName;
381
386
  component: TComponent;
382
387
  expiration?: number;
@@ -1,6 +1,6 @@
1
- import { ArchiveByDayPage, ArchiveByDayPageProps, ArchiveByYearPage, ArchiveByYearPageProps, ArticlePage, ArticlePageProps, ContactPage, ContactPageProps, DirectPage, DirectPageProps, ElectionsHomePage, ElectionsHomePageProps, ElectionsPage, ElectionsPageProps, ErrorPage, ErrorPageProps, GameAppPage, GameAppPageProps, GameHomePage, GameHomePageProps, GamePage, GamePageProps, HomePage, HomePageProps, HoroscopeHomePage, HoroscopeHomePageProps, HoroscopePage, HoroscopePageProps, JobDetailsPage, JobDetailsPageProps, JobsPage, JobsPageProps, JournalistPage, JournalistPageProps, La21ePage, La21ePageProps, LegalNoticeDepartmentPage, LegalNoticeDepartmentPageProps, LegalNoticeHomePage, LegalNoticeHomePageProps, LegalNoticePage, LegalNoticePageProps, LegalPage, LegalPageProps, LivePage, LivePageProps, MobileAppsPage, MobileAppsPageProps, MostCommentedPage, MostCommentedPageProps, MostReadPage, MostReadPageProps, MostRecentVideosPage, MostRecentVideosPageProps, MostSharedPage, MostSharedPageProps, MostViewedPage, MostViewedPageProps, MoviesPage, MoviesPageProps, NewsPage, NewsPageProps, PartnerPage, ProgramPage, ProgramPageProps, SearchPage, SearchPageProps, ServicePage, ServicePageProps, ShoppingGuidePage, ShoppingGuidePageProps, SitemapPage, SitemapPageProps, SlideshowPage, SlideshowPageProps, SportPage, SportPageProps, TagPage, TagPageProps, TrafficPage, TrafficPageProps, TvHomeVideosPage, TvHomeVideosPageProps, TvShowPage, TvShowPageProps, UtiqPage, UtiqPageProps, VideoPage, VideoPageProps, VideosPage, VideosPageProps, WeatherPage, WeatherPageProps } from '../pages';
1
+ import { ArchiveByDayPage, ArchiveByDayPageProps, ArchiveByYearPage, ArchiveByYearPageProps, ArticlePage, ArticlePageProps, ContactPage, ContactPageProps, DirectPage, DirectPageProps, ElectionsHomePage, ElectionsHomePageProps, ElectionsPage, ElectionsPageProps, ErrorPage, ErrorPageProps, GameAppPage, GameAppPageProps, GameHomePage, GameHomePageProps, GamePage, GamePageProps, HomePage, HomePageProps, HoroscopeHomePage, HoroscopeHomePageProps, HoroscopePage, HoroscopePageProps, JobDetailsPage, JobDetailsPageProps, JobsPage, JobsPageProps, JournalistPage, JournalistPageProps, La21ePage, La21ePageProps, LegalNoticeDepartmentPage, LegalNoticeDepartmentPageProps, LegalNoticeHomePage, LegalNoticeHomePageProps, LegalNoticePage, LegalNoticePageProps, LegalPage, LegalPageProps, LivePage, LivePageProps, MobileAppsPage, MobileAppsPageProps, MostCommentedPage, MostCommentedPageProps, MostReadPage, MostReadPageProps, MostRecentVideosPage, MostRecentVideosPageProps, MostSharedPage, MostSharedPageProps, MostViewedPage, MostViewedPageProps, MoviesPage, MoviesPageProps, NewsPage, NewsPageProps, PartnerPage, ProgramPage, ProgramPageProps, SearchPage, SearchPageProps, ServicePage, ServicePageProps, ShoppingGuidePage, ShoppingGuidePageProps, SitemapPage, SitemapPageProps, SlideshowPage, SlideshowPageProps, SportPage, SportPageProps, TagPage, TagPageProps, TrafficPage, TrafficPageProps, TvHomeVideosPage, TvHomeVideosPageProps, TvLivePage, TvLivePageProps, TvShowPage, TvShowPageProps, UtiqPage, UtiqPageProps, VideoPage, VideoPageProps, VideosPage, VideosPageProps, WeatherPage, WeatherPageProps } from '../pages';
2
2
  import { PageTemplateProps } from '../templates';
3
- import { ComponentNameArchives, ComponentNameArticle, ComponentNameCommon, ComponentNameContact, ComponentNameContent, ComponentNameDirect, ComponentNameElections, ComponentNameError, ComponentNameGame, ComponentNameHome, ComponentNameHoroscope, ComponentNameJobs, ComponentNameJournalist, ComponentNameLa21e, ComponentNameLegal, ComponentNameLegalNotice, ComponentNameLive, ComponentNameMobileApps, ComponentNameMostCommented, ComponentNameMostRead, ComponentNameMostRecentVideos, ComponentNameMostShared, ComponentNameMostViewed, ComponentNameMovies, ComponentNameNews, ComponentNameProgram, ComponentNameRubric, ComponentNameSearch, ComponentNameService, ComponentNameShoppingGuide, ComponentNameSitemap, ComponentNameSlideshow, ComponentNameSport, ComponentNameStory, ComponentNameTag, ComponentNameTraffic, ComponentNameTvHomeVideos, ComponentNameTvShow, ComponentNameUtiq, ComponentNameVideo, ComponentNameVideos, ComponentNameWeather } from './ComponentConfig';
3
+ import { ComponentNameArchives, ComponentNameArticle, ComponentNameCommon, ComponentNameContact, ComponentNameContent, ComponentNameDirect, ComponentNameElections, ComponentNameError, ComponentNameGame, ComponentNameHome, ComponentNameHoroscope, ComponentNameJobs, ComponentNameJournalist, ComponentNameLa21e, ComponentNameLegal, ComponentNameLegalNotice, ComponentNameLive, ComponentNameMobileApps, ComponentNameMostCommented, ComponentNameMostRead, ComponentNameMostRecentVideos, ComponentNameMostShared, ComponentNameMostViewed, ComponentNameMovies, ComponentNameNews, ComponentNameProgram, ComponentNameRubric, ComponentNameSearch, ComponentNameService, ComponentNameShoppingGuide, ComponentNameSitemap, ComponentNameSlideshow, ComponentNameSport, ComponentNameStory, ComponentNameTag, ComponentNameTraffic, ComponentNameTvHomeVideos, ComponentNameTvLive, ComponentNameTvShow, ComponentNameUtiq, ComponentNameVideo, ComponentNameVideos, ComponentNameWeather } from './ComponentConfig';
4
4
  export interface PageComponentConfig<TComponentName = string, TPropName = string> {
5
5
  name: TComponentName;
6
6
  propName: TPropName;
@@ -56,6 +56,7 @@ export type SportPageConfig = PageConfig<'sport', typeof SportPage, ComponentNam
56
56
  export type TagPageConfig = PageConfig<'tag', typeof TagPage, ComponentNameCommon | ComponentNameTag, keyof TagPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload' | 'preload'>;
57
57
  export type TrafficPageConfig = PageConfig<'traffic', typeof TrafficPage, ComponentNameCommon | ComponentNameRubric | ComponentNameTraffic, keyof TrafficPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
58
58
  export type TvHomeVideosPageConfig = PageConfig<'tvHomeVideos', typeof TvHomeVideosPage, ComponentNameCommon | ComponentNameTvHomeVideos, keyof TvHomeVideosPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
59
+ export type TvLivePageConfig = PageConfig<'tvLive', typeof TvLivePage, ComponentNameCommon | ComponentNameTvLive, keyof TvLivePageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
59
60
  export type TvShowPageConfig = PageConfig<'tvShow', typeof TvShowPage, ComponentNameCommon | ComponentNameTvShow, keyof TvShowPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
60
61
  export type UtiqPageConfig = PageConfig<'utiq', typeof UtiqPage, ComponentNameCommon | ComponentNameRubric | ComponentNameUtiq, keyof UtiqPageProps | 'meta' | 'jsonLdBreadcrumb' | 'defaultPreload'>;
61
62
  export type VideoPageConfig = PageConfig<'page', typeof VideoPage, ComponentNameCommon | ComponentNameVideo, keyof VideoPageProps | 'meta' | 'jsonLdNewsArticle' | 'defaultPreload'>;
@@ -105,6 +106,7 @@ export type PageConfigs = [
105
106
  TagPageConfig,
106
107
  TrafficPageConfig,
107
108
  TvHomeVideosPageConfig,
109
+ TvLivePageConfig,
108
110
  TvShowPageConfig,
109
111
  UtiqPageConfig,
110
112
  VideoPageConfig,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@20minutes/tyr",
3
- "version": "2.15.0",
3
+ "version": "2.16.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/20minutes/tyr.git"
@@ -54,7 +54,7 @@
54
54
  "dependencies": {
55
55
  "@20minutes/draft-convert": "^3.0.2",
56
56
  "@20minutes/hela": "^2.7.0",
57
- "aws-rum-web": "^1.22.1",
57
+ "aws-rum-web": "^1.23.0",
58
58
  "classnames": "^2.5.1",
59
59
  "draft-js": "^0.11.7",
60
60
  "html-entities": "^2.6.0",
@@ -66,7 +66,7 @@
66
66
  },
67
67
  "devDependencies": {
68
68
  "@20minutes/eslint-config": "^1.2.7",
69
- "@aws-sdk/client-s3": "3.804.0",
69
+ "@aws-sdk/client-s3": "3.806.0",
70
70
  "@babel/core": "^7.27.1",
71
71
  "@babel/eslint-parser": "^7.27.1",
72
72
  "@eslint/compat": "^1.2.9",
@@ -94,7 +94,7 @@
94
94
  "@types/draft-js": "^0.11.18",
95
95
  "@types/googletag": "^3.3.0",
96
96
  "@types/jsdom": "^21.1.7",
97
- "@types/node": "^22.15.14",
97
+ "@types/node": "^22.15.17",
98
98
  "@types/poool-access": "^5.18.0",
99
99
  "@types/poool-engage": "^2.1.2",
100
100
  "@types/react": "^18.3.13",
@@ -107,7 +107,7 @@
107
107
  "babel-loader": "^10.0.0",
108
108
  "eslint": "^8.57.1",
109
109
  "eslint-config-airbnb": "^19.0.4",
110
- "eslint-config-prettier": "^10.1.2",
110
+ "eslint-config-prettier": "^10.1.5",
111
111
  "eslint-import-resolver-alias": "^1.1.2",
112
112
  "eslint-import-resolver-typescript": "^4.3.4",
113
113
  "eslint-plugin-babel": "^5.3.1",
@@ -118,12 +118,12 @@
118
118
  "eslint-plugin-react": "^7.37.5",
119
119
  "eslint-plugin-simple-import-sort": "^12.1.1",
120
120
  "eslint-plugin-storybook": "^0.12.0",
121
- "globals": "^16.0.0",
121
+ "globals": "^16.1.0",
122
122
  "graphql": "^16.11.0",
123
123
  "husky": "^9.1.7",
124
124
  "jest-worker": "^29.7.0",
125
125
  "jsdom": "^26.1.0",
126
- "lint-staged": "^15.5.2",
126
+ "lint-staged": "^16.0.0",
127
127
  "mockdate": "^3.0.5",
128
128
  "prettier": "3.5.3",
129
129
  "purgecss": "^7.0.2",