@financial-times/cp-content-pipeline-ui 9.7.2 → 9.9.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/CHANGELOG.md +42 -0
- package/lib/components/PartnerContentHeader/index.js +2 -2
- package/lib/components/PartnerContentHeader/index.js.map +1 -1
- package/lib/components/RichText/BasicComponents.js +1 -1
- package/lib/components/RichText/BasicComponents.js.map +1 -1
- package/lib/components/RichText/index.js +2 -0
- package/lib/components/RichText/index.js.map +1 -1
- package/lib/components/Topper/Headline.js +1 -1
- package/lib/components/Topper/Headline.js.map +1 -1
- package/lib/components/content-tree/RecommendedList/index.d.ts +7 -0
- package/lib/components/content-tree/RecommendedList/index.js +24 -0
- package/lib/components/content-tree/RecommendedList/index.js.map +1 -0
- package/lib/components/content-tree/Workarounds.d.ts +4 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/package.json +6 -6
- package/src/components/PartnerContentHeader/index.tsx +1 -1
- package/src/components/RichText/BasicComponents.tsx +6 -1
- package/src/components/RichText/index.tsx +2 -0
- package/src/components/Topper/Headline.tsx +1 -1
- package/src/components/Topper/client/main.scss +5 -1
- package/src/components/content-tree/RecommendedList/index.tsx +53 -0
- package/src/components/content-tree/Workarounds.ts +11 -1
- package/src/index.ts +1 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -574,6 +574,48 @@
|
|
|
574
574
|
* @financial-times/cp-content-pipeline-client bumped from ^3.7.2 to ^3.7.3
|
|
575
575
|
* @financial-times/cp-content-pipeline-schema bumped from ^2.10.1 to ^2.10.2
|
|
576
576
|
|
|
577
|
+
## [9.9.0](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-ui-v9.8.0...cp-content-pipeline-ui-v9.9.0) (2025-11-04)
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
### Features
|
|
581
|
+
|
|
582
|
+
* accommodate new Premium label design ([47f5142](https://github.com/Financial-Times/cp-content-pipeline/commit/47f5142d0e65a5e0869d572f91339cbb40c36782))
|
|
583
|
+
* add data-trackable attribute to link ([f9b97ef](https://github.com/Financial-Times/cp-content-pipeline/commit/f9b97ef653d5e362aa43346857390ce9356e7b1b))
|
|
584
|
+
* bump @financial-times/content-tree ([96232e5](https://github.com/Financial-Times/cp-content-pipeline/commit/96232e58f3b0634032b584766f071a95b9e0d257))
|
|
585
|
+
* bump @financial-times/content-tree ([9090226](https://github.com/Financial-Times/cp-content-pipeline/commit/909022691c1aeccb4e6e70b8a72a492e60f32739))
|
|
586
|
+
* implement client label on recommended list teasers for partner ([ffb809e](https://github.com/Financial-Times/cp-content-pipeline/commit/ffb809e43dc25c664d61f6cbdaf9d74e5b959cc4))
|
|
587
|
+
* implement RecommendedList component ([3b9fc92](https://github.com/Financial-Times/cp-content-pipeline/commit/3b9fc9211cebf182c572abcc8d7e971eeec7e179))
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
### Dependencies
|
|
591
|
+
|
|
592
|
+
* The following workspace dependencies were updated
|
|
593
|
+
* devDependencies
|
|
594
|
+
* @financial-times/cp-content-pipeline-client bumped from ^4.17.0 to ^4.18.0
|
|
595
|
+
* @financial-times/cp-content-pipeline-schema bumped from ^3.16.0 to ^3.17.0
|
|
596
|
+
* @financial-times/cp-content-pipeline-styles bumped from ^4.3.0 to ^4.4.0
|
|
597
|
+
|
|
598
|
+
## [9.8.0](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-ui-v9.7.2...cp-content-pipeline-ui-v9.8.0) (2025-10-28)
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
### Features
|
|
602
|
+
|
|
603
|
+
* implement partner content onward journey link variation ([1c86943](https://github.com/Financial-Times/cp-content-pipeline/commit/1c869432b3bce7573bc63dc02b7adaa286220935))
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
### Bug Fixes
|
|
607
|
+
|
|
608
|
+
* specify cjs import path ([1120bfe](https://github.com/Financial-Times/cp-content-pipeline/commit/1120bfe39bc415aea0044253a9c6f1e12ae110f3))
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
### Dependencies
|
|
612
|
+
|
|
613
|
+
* The following workspace dependencies were updated
|
|
614
|
+
* devDependencies
|
|
615
|
+
* @financial-times/cp-content-pipeline-client bumped from ^4.16.2 to ^4.17.0
|
|
616
|
+
* @financial-times/cp-content-pipeline-schema bumped from ^3.15.2 to ^3.16.0
|
|
617
|
+
* @financial-times/cp-content-pipeline-styles bumped from ^4.2.1 to ^4.3.0
|
|
618
|
+
|
|
577
619
|
## [9.7.2](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-ui-v9.7.1...cp-content-pipeline-ui-v9.7.2) (2025-10-16)
|
|
578
620
|
|
|
579
621
|
|
|
@@ -4,14 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const
|
|
7
|
+
const cjs_1 = require("@financial-times/o3-tooltip/cjs");
|
|
8
8
|
const PartnerContentHeader = ({ name = 'Partner', disclaimer, }) => {
|
|
9
9
|
return (react_1.default.createElement("div", { className: "partner-content-header", "data-o3-brand": "core" },
|
|
10
10
|
react_1.default.createElement("div", { className: "partner-content-header__content" },
|
|
11
11
|
react_1.default.createElement("div", { className: "partner-content-header__client" }, name),
|
|
12
12
|
react_1.default.createElement("div", { className: "partner-content-header__title" },
|
|
13
13
|
react_1.default.createElement("p", null, "Partner Content"),
|
|
14
|
-
react_1.default.createElement(
|
|
14
|
+
react_1.default.createElement(cjs_1.TooltipToggle, { placement: "bottom", content: disclaimer, infoLabel: "More information on Partner Content" })))));
|
|
15
15
|
};
|
|
16
16
|
exports.default = PartnerContentHeader;
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/PartnerContentHeader/index.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/PartnerContentHeader/index.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,yDAA+D;AAE/D,MAAM,oBAAoB,GAAG,CAAC,EAC5B,IAAI,GAAG,SAAS,EAChB,UAAU,GAIX,EAAE,EAAE;IACH,OAAO,CACL,uCAAK,SAAS,EAAC,wBAAwB,mBAAe,MAAM;QAC1D,uCAAK,SAAS,EAAC,iCAAiC;YAC9C,uCAAK,SAAS,EAAC,gCAAgC,IAAE,IAAI,CAAO;YAC5D,uCAAK,SAAS,EAAC,+BAA+B;gBAC5C,2DAAsB;gBACtB,8BAAC,mBAAa,IACZ,SAAS,EAAC,QAAQ,EAClB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,qCAAqC,GAC/C,CACE,CACF,CACF,CACP,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,oBAAoB,CAAA"}
|
|
@@ -9,7 +9,7 @@ const List = (props) => props.content.ordered ? (react_1.default.createElement("
|
|
|
9
9
|
exports.List = List;
|
|
10
10
|
const ListItem = (props) => react_1.default.createElement("li", null, props.children);
|
|
11
11
|
exports.ListItem = ListItem;
|
|
12
|
-
const Link = (props) => (react_1.default.createElement("a", { href: props.content.url, title: props.content.title }, props.children));
|
|
12
|
+
const Link = (props) => (react_1.default.createElement("a", { href: props.content.url, title: props.content.title, className: props.content.styleType, "data-trackable": "link" }, props.children));
|
|
13
13
|
exports.Link = Link;
|
|
14
14
|
const Blockquote = (props) => {
|
|
15
15
|
return (react_1.default.createElement("blockquote", { className: "n-content-blockquote o3-editorial-typography-blockquote" }, props.children));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasicComponents.js","sourceRoot":"","sources":["../../../src/components/RichText/BasicComponents.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAKlB,MAAM,IAAI,GAEb,CAAC,KAAK,EAAE,EAAE,CACZ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CACtB,sCAAI,SAAS,EAAC,sCAAsC,IAAE,KAAK,CAAC,QAAQ,CAAM,CAC3E,CAAC,CAAC,CAAC,CACF,sCAAI,SAAS,EAAC,wCAAwC,IAAE,KAAK,CAAC,QAAQ,CAAM,CAC7E,CAAA;AAPU,QAAA,IAAI,QAOd;AAEI,MAAM,QAAQ,GAEjB,CAAC,KAAK,EAAE,EAAE,CAAC,0CAAK,KAAK,CAAC,QAAQ,CAAM,CAAA;AAF3B,QAAA,QAAQ,YAEmB;AAEjC,MAAM,IAAI,GAEb,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,
|
|
1
|
+
{"version":3,"file":"BasicComponents.js","sourceRoot":"","sources":["../../../src/components/RichText/BasicComponents.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAKlB,MAAM,IAAI,GAEb,CAAC,KAAK,EAAE,EAAE,CACZ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CACtB,sCAAI,SAAS,EAAC,sCAAsC,IAAE,KAAK,CAAC,QAAQ,CAAM,CAC3E,CAAC,CAAC,CAAC,CACF,sCAAI,SAAS,EAAC,wCAAwC,IAAE,KAAK,CAAC,QAAQ,CAAM,CAC7E,CAAA;AAPU,QAAA,IAAI,QAOd;AAEI,MAAM,QAAQ,GAEjB,CAAC,KAAK,EAAE,EAAE,CAAC,0CAAK,KAAK,CAAC,QAAQ,CAAM,CAAA;AAF3B,QAAA,QAAQ,YAEmB;AAEjC,MAAM,IAAI,GAEb,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,qCACE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EACvB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,oBACnB,MAAM,IAEpB,KAAK,CAAC,QAAQ,CACb,CACL,CAAA;AAXY,QAAA,IAAI,QAWhB;AAEM,MAAM,UAAU,GAEnB,CAAC,KAAK,EAAE,EAAE;IACZ,OAAO,CACL,8CAAY,SAAS,EAAC,yDAAyD,IAC5E,KAAK,CAAC,QAAQ,CACJ,CACd,CAAA;AACH,CAAC,CAAA;AARY,QAAA,UAAU,cAQtB;AAEM,MAAM,IAAI,GAEb,CAAC,KAAK,EAAE,EAAE;IACZ,OAAO,CACL,wCAAM,SAAS,EAAC,4CAA4C,IACzD,KAAK,CAAC,QAAQ,CACV,CACR,CAAA;AACH,CAAC,CAAA;AARY,QAAA,IAAI,QAQhB;AAEM,MAAM,SAAS,GAAa,GAAG,EAAE,CAAC,yCAAM,CAAA;AAAlC,QAAA,SAAS,aAAyB;AAExC,MAAM,cAAc,GAAa,GAAG,EAAE,CAAC,yCAAM,CAAA;AAAvC,QAAA,cAAc,kBAAyB;AAE7C,MAAM,QAAQ,GAEjB,CAAC,KAAK,EAAE,EAAE,CAAC,0CAAK,KAAK,CAAC,QAAQ,CAAM,CAAA;AAF3B,QAAA,QAAQ,YAEmB;AAEjC,MAAM,MAAM,GAEf,CAAC,KAAK,EAAE,EAAE,CAAC,8CAAS,KAAK,CAAC,QAAQ,CAAU,CAAA;AAFnC,QAAA,MAAM,UAE6B;AAEzC,MAAM,aAAa,GAEtB,CAAC,KAAK,EAAE,EAAE,CAAC,yCAAI,KAAK,CAAC,QAAQ,CAAK,CAAA;AAFzB,QAAA,aAAa,iBAEY;AAE/B,MAAM,eAAe,GAExB,CAAC,KAAK,EAAE,EAAE,CAAC,2CAAM,KAAK,CAAC,QAAQ,CAAO,CAAA;AAF7B,QAAA,eAAe,mBAEc;AAEnC,MAAM,QAAQ,GAEjB,CAAC,KAAK,EAAE,EAAE,CAAC,0CAAK,KAAK,CAAC,QAAQ,CAAM,CAAA;AAF3B,QAAA,QAAQ,YAEmB;AAEjC,MAAM,WAAW,GAEpB,CAAC,KAAK,EAAE,EAAE,CAAC,CACb;IACE;QACE,sCAAI,OAAO,EAAE,IAAI,EAAE,SAAS,EAAC,kBAAkB,IAC5C,KAAK,CAAC,QAAQ,CACZ,CACF,CACC,CACT,CAAA;AAVY,QAAA,WAAW,eAUvB;AAEM,MAAM,YAAY,GAErB,CAAC,KAAK,EAAE,EAAE,CAAC,CACb,2CAAS,SAAS,EAAC,0FAA0F,IAC1G,KAAK,CAAC,QAAQ,CACP,CACX,CAAA;AANY,QAAA,YAAY,gBAMxB"}
|
|
@@ -29,6 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.ComponentsContext = void 0;
|
|
30
30
|
const react_1 = __importStar(require("react"));
|
|
31
31
|
const Recommended_1 = __importDefault(require("../content-tree/Recommended"));
|
|
32
|
+
const RecommendedList_1 = __importDefault(require("../content-tree/RecommendedList"));
|
|
32
33
|
const ImageSet_1 = __importStar(require("../content-tree/ImageSet"));
|
|
33
34
|
const Layout_1 = require("../content-tree/Layout");
|
|
34
35
|
const Pullquote_1 = __importDefault(require("../content-tree/Pullquote"));
|
|
@@ -76,6 +77,7 @@ const componentMap = {
|
|
|
76
77
|
pullquote: Pullquote_1.default,
|
|
77
78
|
'raw-image': ImageSet_1.FallbackImage,
|
|
78
79
|
recommended: Recommended_1.default,
|
|
80
|
+
'recommended-list': RecommendedList_1.default,
|
|
79
81
|
'scrolly-block': Scrollytelling_1.ScrollyBlock,
|
|
80
82
|
'scrolly-copy': Scrollytelling_1.ScrollyCopy,
|
|
81
83
|
'scrolly-heading': Scrollytelling_1.ScrollyHeading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/RichText/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/RichText/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ const Headline = ({ headline, showPremiumLabel = false, isLargeHeadline = false,
|
|
|
15
15
|
});
|
|
16
16
|
return (react_1.default.createElement("h1", { className: headlineClassnames },
|
|
17
17
|
react_1.default.createElement("span", { className: "headline__text" }, headline),
|
|
18
|
-
showPremiumLabel && (react_1.default.createElement("span", { className: "headline__premium-badge o-labels o-labels--content-premium" }, "Premium"))));
|
|
18
|
+
showPremiumLabel && (react_1.default.createElement("span", { className: "headline__premium-badge o-labels o-labels--small o-labels--content-premium" }, "Premium"))));
|
|
19
19
|
};
|
|
20
20
|
exports.default = Headline;
|
|
21
21
|
//# sourceMappingURL=Headline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headline.js","sourceRoot":"","sources":["../../../src/components/Topper/Headline.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,4DAAmC;AAQnC,MAAM,QAAQ,GAA4B,CAAC,EACzC,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,eAAe,GAAG,KAAK,GACxB,EAAE,EAAE;IACH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,6DAAK,CAAA;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAA,oBAAU,EAAC;QACpC,oBAAoB,EAAE,IAAI;QAC1B,CAAC,2BAA2B,CAAC,EAAE,eAAe;KAC/C,CAAC,CAAA;IAEF,OAAO,CACL,sCAAI,SAAS,EAAE,kBAAkB;QAC/B,wCAAM,SAAS,EAAC,gBAAgB,IAAE,QAAQ,CAAQ;QACjD,gBAAgB,IAAI,CACnB,wCAAM,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"Headline.js","sourceRoot":"","sources":["../../../src/components/Topper/Headline.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,4DAAmC;AAQnC,MAAM,QAAQ,GAA4B,CAAC,EACzC,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,eAAe,GAAG,KAAK,GACxB,EAAE,EAAE;IACH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,6DAAK,CAAA;IACd,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAA,oBAAU,EAAC;QACpC,oBAAoB,EAAE,IAAI;QAC1B,CAAC,2BAA2B,CAAC,EAAE,eAAe;KAC/C,CAAC,CAAA;IAEF,OAAO,CACL,sCAAI,SAAS,EAAE,kBAAkB;QAC/B,wCAAM,SAAS,EAAC,gBAAgB,IAAE,QAAQ,CAAQ;QACjD,gBAAgB,IAAI,CACnB,wCAAM,SAAS,EAAC,4EAA4E,cAErF,CACR,CACE,CACN,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ContentProps } from '../../types';
|
|
3
|
+
import type * as ComponentWorkarounds from '../Workarounds';
|
|
4
|
+
interface RecommendedListProps extends ContentProps<ComponentWorkarounds.RecommendedList> {
|
|
5
|
+
}
|
|
6
|
+
declare const RecommendedList: React.FC<RecommendedListProps>;
|
|
7
|
+
export default RecommendedList;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
//HACK: worked around missing Teaser type by declaring a module x-teaser.d.ts
|
|
8
|
+
const x_teaser_1 = require("@financial-times/x-teaser");
|
|
9
|
+
const RecommendedList = ({ content: { heading, teasers }, }) => {
|
|
10
|
+
if (!teasers || teasers.length === 0) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return (react_1.default.createElement("aside", { "aria-labelledby": "aside-label", className: "n-content-recommended-list", "data-component": "recommended-list" },
|
|
14
|
+
react_1.default.createElement("p", { className: "n-content-recommended-list__title o3-type-title-lg" }, heading),
|
|
15
|
+
react_1.default.createElement("div", { className: "n-content-recommended-list__teasers" }, teasers.map((teaser, index) => (react_1.default.createElement(x_teaser_1.Teaser, { key: teaser?.id || index, modifiers: ['stacked'], ...x_teaser_1.presets.SmallHeavy, ...teaser, metaPrefixText: 'By', metaLink: {
|
|
16
|
+
prefLabel: teaser?.clientName,
|
|
17
|
+
// clientName is a free form text field. Currently, there is no way to map it to an organisation
|
|
18
|
+
// from the annotations. For now, we're linking it to the article url.
|
|
19
|
+
// A property like isSponsoredBy could be added in future to support this properly.
|
|
20
|
+
url: teaser?.url,
|
|
21
|
+
} }))))));
|
|
22
|
+
};
|
|
23
|
+
exports.default = RecommendedList;
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/content-tree/RecommendedList/index.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AAEzB,6EAA6E;AAC7E,wDAA2D;AAW3D,MAAM,eAAe,GAAmC,CAAC,EACvD,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAC9B,EAAE,EAAE;IACH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,4DACkB,aAAa,EAC7B,SAAS,EAAC,4BAA4B,oBACvB,kBAAkB;QAEjC,qCAAG,SAAS,EAAC,oDAAoD,IAC9D,OAAO,CACN;QACJ,uCAAK,SAAS,EAAC,qCAAqC,IACjD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,8BAAC,iBAAM,IACL,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,KAAK,EACxB,SAAS,EAAE,CAAC,SAAS,CAAC,KAClB,kBAAO,CAAC,UAAU,KAClB,MAAM,EACV,cAAc,EAAE,IAAI,EACpB,QAAQ,EAAE;gBACR,SAAS,EAAE,MAAM,EAAE,UAAU;gBAC7B,gGAAgG;gBAChG,sEAAsE;gBACtE,mFAAmF;gBACnF,GAAG,EAAE,MAAM,EAAE,GAAG;aACjB,GACD,CACH,CAAC,CACE,CACA,CACT,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
|
|
@@ -33,6 +33,10 @@ export type Teaser = PartialToMaybeDeep<LiteralToPrimitiveDeep<SetOptional<SetFi
|
|
|
33
33
|
export type Recommended = PartialToMaybe<ContentTreeWorkarounds.Recommended & {
|
|
34
34
|
teaser?: Teaser;
|
|
35
35
|
}>;
|
|
36
|
+
export type RecommendedList = PartialToMaybe<ReadonlyArrays<Omit<ContentTree.RecommendedList, 'children'> & {
|
|
37
|
+
teasers?: (Teaser | null)[];
|
|
38
|
+
children: Recommended[];
|
|
39
|
+
}>>;
|
|
36
40
|
export type ImageSetPicture = PartialToMaybe<ReadonlyArrays<SetOptional<SetFieldType<SetFieldType<ContentTree.ImageSetPicture, 'fallbackImage', Image>, 'images', Image[]>, 'caption' | 'credit'>>>;
|
|
37
41
|
export type ImageSet = PartialToMaybe<SetOptional<SetFieldType<ContentTree.ImageSet | ContentTree.LayoutImage, 'picture', ImageSetPicture>, 'picture'>>;
|
|
38
42
|
export type ScrollyImage = PartialToMaybe<SetOptional<SetFieldType<ContentTree.ScrollyImage, 'picture', ImageSetPicture>, 'picture'>>;
|
package/lib/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export { Layout, LayoutContainer, LayoutSlot, } from './components/content-tree/
|
|
|
18
18
|
export { default as Paragraph } from './components/content-tree/Paragraph';
|
|
19
19
|
export { default as Pullquote } from './components/content-tree/Pullquote/index';
|
|
20
20
|
export { default as Recommended } from './components/content-tree/Recommended';
|
|
21
|
+
export { default as RecommendedList } from './components/content-tree/RecommendedList';
|
|
21
22
|
export { ScrollyBlock } from './components/content-tree/Scrollytelling';
|
|
22
23
|
export { default as Table } from './components/content-tree/Table';
|
|
23
24
|
export { default as Tweet } from './components/content-tree/Tweet';
|
package/lib/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.PresentationOverridesContext = exports.PresentationFlagsContext = exports.CccFallbackText = exports.Cite = exports.Strikethrough = exports.Strong = exports.Emphasis = exports.HorizontalRule = exports.LineBreak = exports.Blockquote = exports.Link = exports.ListItem = exports.List = exports.YoutubeVideo = exports.Video = exports.Tweet = exports.Table = exports.ScrollyBlock = exports.Recommended = exports.Pullquote = exports.Paragraph = exports.LayoutSlot = exports.LayoutContainer = exports.Layout = exports.Clip = exports.ImageSet = exports.Heading = exports.Flourish = exports.CustomCodeComponent = exports.BigNumber = exports.RichText = exports.PodcastBody = exports.LiveBlogBody = exports.ArticleBody = exports.Body = exports.Topper = exports.MainImage = exports.LiveBlogWrapper = exports.Byline = exports.ArticleInfo = void 0;
|
|
6
|
+
exports.PresentationOverridesContext = exports.PresentationFlagsContext = exports.CccFallbackText = exports.Cite = exports.Strikethrough = exports.Strong = exports.Emphasis = exports.HorizontalRule = exports.LineBreak = exports.Blockquote = exports.Link = exports.ListItem = exports.List = exports.YoutubeVideo = exports.Video = exports.Tweet = exports.Table = exports.ScrollyBlock = exports.RecommendedList = exports.Recommended = exports.Pullquote = exports.Paragraph = exports.LayoutSlot = exports.LayoutContainer = exports.Layout = exports.Clip = exports.ImageSet = exports.Heading = exports.Flourish = exports.CustomCodeComponent = exports.BigNumber = exports.RichText = exports.PodcastBody = exports.LiveBlogBody = exports.ArticleBody = exports.Body = exports.Topper = exports.MainImage = exports.LiveBlogWrapper = exports.Byline = exports.ArticleInfo = void 0;
|
|
7
7
|
var ArticleInfo_1 = require("./components/ArticleInfo");
|
|
8
8
|
Object.defineProperty(exports, "ArticleInfo", { enumerable: true, get: function () { return __importDefault(ArticleInfo_1).default; } });
|
|
9
9
|
var Byline_1 = require("./components/Byline");
|
|
@@ -46,6 +46,8 @@ var index_1 = require("./components/content-tree/Pullquote/index");
|
|
|
46
46
|
Object.defineProperty(exports, "Pullquote", { enumerable: true, get: function () { return __importDefault(index_1).default; } });
|
|
47
47
|
var Recommended_1 = require("./components/content-tree/Recommended");
|
|
48
48
|
Object.defineProperty(exports, "Recommended", { enumerable: true, get: function () { return __importDefault(Recommended_1).default; } });
|
|
49
|
+
var RecommendedList_1 = require("./components/content-tree/RecommendedList");
|
|
50
|
+
Object.defineProperty(exports, "RecommendedList", { enumerable: true, get: function () { return __importDefault(RecommendedList_1).default; } });
|
|
49
51
|
var Scrollytelling_1 = require("./components/content-tree/Scrollytelling");
|
|
50
52
|
Object.defineProperty(exports, "ScrollyBlock", { enumerable: true, get: function () { return Scrollytelling_1.ScrollyBlock; } });
|
|
51
53
|
var Table_1 = require("./components/content-tree/Table");
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiE;AAAxD,2HAAA,OAAO,OAAe;AAC/B,8CAAuD;AAA9C,iHAAA,OAAO,OAAU;AAC1B,gEAA8D;AAArD,kHAAA,eAAe,OAAA;AACxB,oDAA6D;AAApD,uHAAA,OAAO,OAAa;AAC7B,8CAAuD;AAA9C,iHAAA,OAAO,OAAU;AAE1B,0CAAmD;AAA1C,6GAAA,OAAO,OAAQ;AACxB,wEAAiF;AAAxE,2HAAA,OAAO,OAAe;AAC/B,0EAAmF;AAA1E,6HAAA,OAAO,OAAgB;AAChC,wEAAiF;AAAxE,2HAAA,OAAO,OAAe;AAE/B,kDAA2D;AAAlD,qHAAA,OAAO,OAAY;AAC5B,iEAA0E;AAAjE,uHAAA,OAAO,OAAa;AAC7B,qFAA8F;AAArF,2IAAA,OAAO,OAAuB;AACvC,+DAAwE;AAA/D,qHAAA,OAAO,OAAY;AAC5B,6DAAsE;AAA7D,mHAAA,OAAO,OAAW;AAC3B,+DAAwE;AAA/D,qHAAA,OAAO,OAAY;AAC5B,+EAAmF;AAA1E,kHAAA,OAAO,OAAQ;AACxB,2DAIyC;AAHvC,gGAAA,MAAM,OAAA;AACN,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AAEZ,iEAA0E;AAAjE,uHAAA,OAAO,OAAa;AAC7B,mEAAgF;AAAvE,mHAAA,OAAO,OAAa;AAC7B,qEAA8E;AAArE,2HAAA,OAAO,OAAe;AAC/B,2EAAuE;AAA9D,8GAAA,YAAY,OAAA;AACrB,yDAAkE;AAAzD,+GAAA,OAAO,OAAS;AACzB,yDAAkE;AAAzD,+GAAA,OAAO,OAAS;AACzB,yDAAkE;AAAzD,+GAAA,OAAO,OAAS;AACzB,uEAAgF;AAAvE,6HAAA,OAAO,OAAgB;AAChC,yEAY8C;AAX5C,uGAAA,IAAI,OAAA;AACJ,2GAAA,QAAQ,OAAA;AACR,uGAAA,IAAI,OAAA;AACJ,6GAAA,UAAU,OAAA;AACV,4GAAA,SAAS,OAAA;AACT,iHAAA,cAAc,OAAA;AACd,2GAAA,QAAQ,OAAA;AACR,yGAAA,MAAM,OAAA;AACN,gHAAA,aAAa,OAAA;AACb,uGAAA,IAAI,OAAA;AACJ,kHAAA,eAAe,OAAA;AAGjB,qCAGkB;AAFhB,mHAAA,wBAAwB,OAAA;AACxB,uHAAA,4BAA4B,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiE;AAAxD,2HAAA,OAAO,OAAe;AAC/B,8CAAuD;AAA9C,iHAAA,OAAO,OAAU;AAC1B,gEAA8D;AAArD,kHAAA,eAAe,OAAA;AACxB,oDAA6D;AAApD,uHAAA,OAAO,OAAa;AAC7B,8CAAuD;AAA9C,iHAAA,OAAO,OAAU;AAE1B,0CAAmD;AAA1C,6GAAA,OAAO,OAAQ;AACxB,wEAAiF;AAAxE,2HAAA,OAAO,OAAe;AAC/B,0EAAmF;AAA1E,6HAAA,OAAO,OAAgB;AAChC,wEAAiF;AAAxE,2HAAA,OAAO,OAAe;AAE/B,kDAA2D;AAAlD,qHAAA,OAAO,OAAY;AAC5B,iEAA0E;AAAjE,uHAAA,OAAO,OAAa;AAC7B,qFAA8F;AAArF,2IAAA,OAAO,OAAuB;AACvC,+DAAwE;AAA/D,qHAAA,OAAO,OAAY;AAC5B,6DAAsE;AAA7D,mHAAA,OAAO,OAAW;AAC3B,+DAAwE;AAA/D,qHAAA,OAAO,OAAY;AAC5B,+EAAmF;AAA1E,kHAAA,OAAO,OAAQ;AACxB,2DAIyC;AAHvC,gGAAA,MAAM,OAAA;AACN,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AAEZ,iEAA0E;AAAjE,uHAAA,OAAO,OAAa;AAC7B,mEAAgF;AAAvE,mHAAA,OAAO,OAAa;AAC7B,qEAA8E;AAArE,2HAAA,OAAO,OAAe;AAC/B,6EAAsF;AAA7E,mIAAA,OAAO,OAAmB;AACnC,2EAAuE;AAA9D,8GAAA,YAAY,OAAA;AACrB,yDAAkE;AAAzD,+GAAA,OAAO,OAAS;AACzB,yDAAkE;AAAzD,+GAAA,OAAO,OAAS;AACzB,yDAAkE;AAAzD,+GAAA,OAAO,OAAS;AACzB,uEAAgF;AAAvE,6HAAA,OAAO,OAAgB;AAChC,yEAY8C;AAX5C,uGAAA,IAAI,OAAA;AACJ,2GAAA,QAAQ,OAAA;AACR,uGAAA,IAAI,OAAA;AACJ,6GAAA,UAAU,OAAA;AACV,4GAAA,SAAS,OAAA;AACT,iHAAA,cAAc,OAAA;AACd,2GAAA,QAAQ,OAAA;AACR,yGAAA,MAAM,OAAA;AACN,gHAAA,aAAa,OAAA;AACb,uGAAA,IAAI,OAAA;AACJ,kHAAA,eAAe,OAAA;AAGjB,qCAGkB;AAFhB,mHAAA,wBAAwB,OAAA;AACxB,uHAAA,4BAA4B,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@financial-times/cp-content-pipeline-ui",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.9.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@babel/preset-env": "^7.22.5",
|
|
17
17
|
"@babel/preset-react": "^7.22.5",
|
|
18
|
-
"@financial-times/content-tree": "github:financial-times/content-tree#
|
|
19
|
-
"@financial-times/cp-content-pipeline-client": "^4.
|
|
20
|
-
"@financial-times/cp-content-pipeline-schema": "^3.
|
|
21
|
-
"@financial-times/cp-content-pipeline-styles": "^4.
|
|
18
|
+
"@financial-times/content-tree": "github:financial-times/content-tree#3f77ec4",
|
|
19
|
+
"@financial-times/cp-content-pipeline-client": "^4.18.0",
|
|
20
|
+
"@financial-times/cp-content-pipeline-schema": "^3.17.0",
|
|
21
|
+
"@financial-times/cp-content-pipeline-styles": "^4.4.0",
|
|
22
22
|
"@financial-times/n-scrollytelling-image": "^1.1.0",
|
|
23
23
|
"@financial-times/o-grid": "^6.1.8",
|
|
24
24
|
"@financial-times/o-share": "^11.0.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@dotcom-tool-kit/npm": "^4.2.11",
|
|
54
54
|
"@financial-times/ft-date-format": "^2.1.0",
|
|
55
55
|
"@financial-times/o-expander": "^7.0.1",
|
|
56
|
-
"@financial-times/o-labels": "^7.
|
|
56
|
+
"@financial-times/o-labels": "^7.1.2",
|
|
57
57
|
"@financial-times/o-loading": "^6.0.0",
|
|
58
58
|
"@financial-times/o-teaser": "^7.1.5",
|
|
59
59
|
"@financial-times/o-visual-effects": "^5.0.1",
|
|
@@ -19,7 +19,12 @@ export const ListItem: React.FC<
|
|
|
19
19
|
export const Link: React.FC<
|
|
20
20
|
React.PropsWithChildren<ContentProps<ContentTree.Link>>
|
|
21
21
|
> = (props) => (
|
|
22
|
-
<a
|
|
22
|
+
<a
|
|
23
|
+
href={props.content.url}
|
|
24
|
+
title={props.content.title}
|
|
25
|
+
className={props.content.styleType}
|
|
26
|
+
data-trackable="link"
|
|
27
|
+
>
|
|
23
28
|
{props.children}
|
|
24
29
|
</a>
|
|
25
30
|
)
|
|
@@ -7,6 +7,7 @@ import React, {
|
|
|
7
7
|
|
|
8
8
|
import type { ContentTree } from '@financial-times/content-tree'
|
|
9
9
|
import Recommended from '../content-tree/Recommended'
|
|
10
|
+
import RecommendedList from '../content-tree/RecommendedList'
|
|
10
11
|
import ImageSet, { FallbackImage } from '../content-tree/ImageSet'
|
|
11
12
|
import { Layout, LayoutSlot } from '../content-tree/Layout'
|
|
12
13
|
import Pullquote from '../content-tree/Pullquote'
|
|
@@ -125,6 +126,7 @@ const componentMap: RichTextComponentMapRecord = {
|
|
|
125
126
|
pullquote: Pullquote,
|
|
126
127
|
'raw-image': FallbackImage,
|
|
127
128
|
recommended: Recommended,
|
|
129
|
+
'recommended-list': RecommendedList,
|
|
128
130
|
'scrolly-block': ScrollyBlock,
|
|
129
131
|
'scrolly-copy': ScrollyCopy,
|
|
130
132
|
'scrolly-heading': ScrollyHeading,
|
|
@@ -25,7 +25,7 @@ const Headline: React.FC<HeadlineProps> = ({
|
|
|
25
25
|
<h1 className={headlineClassnames}>
|
|
26
26
|
<span className="headline__text">{headline}</span>
|
|
27
27
|
{showPremiumLabel && (
|
|
28
|
-
<span className="headline__premium-badge o-labels o-labels--content-premium">
|
|
28
|
+
<span className="headline__premium-badge o-labels o-labels--small o-labels--content-premium">
|
|
29
29
|
Premium
|
|
30
30
|
</span>
|
|
31
31
|
)}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
//HACK: worked around missing Teaser type by declaring a module x-teaser.d.ts
|
|
4
|
+
import { presets, Teaser } from '@financial-times/x-teaser'
|
|
5
|
+
import { ContentProps } from '../../types'
|
|
6
|
+
import type * as ComponentWorkarounds from '../Workarounds'
|
|
7
|
+
|
|
8
|
+
// Renders a Recommended teaser component
|
|
9
|
+
// `<Teaser>` is imported from x-dash
|
|
10
|
+
// https://github.com/Financial-Times/x-dash/tree/main/components/x-teaser)
|
|
11
|
+
|
|
12
|
+
interface RecommendedListProps
|
|
13
|
+
extends ContentProps<ComponentWorkarounds.RecommendedList> {}
|
|
14
|
+
|
|
15
|
+
const RecommendedList: React.FC<RecommendedListProps> = ({
|
|
16
|
+
content: { heading, teasers },
|
|
17
|
+
}) => {
|
|
18
|
+
if (!teasers || teasers.length === 0) {
|
|
19
|
+
return null
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<aside
|
|
24
|
+
aria-labelledby="aside-label"
|
|
25
|
+
className="n-content-recommended-list"
|
|
26
|
+
data-component="recommended-list"
|
|
27
|
+
>
|
|
28
|
+
<p className="n-content-recommended-list__title o3-type-title-lg">
|
|
29
|
+
{heading}
|
|
30
|
+
</p>
|
|
31
|
+
<div className="n-content-recommended-list__teasers">
|
|
32
|
+
{teasers.map((teaser, index) => (
|
|
33
|
+
<Teaser
|
|
34
|
+
key={teaser?.id || index}
|
|
35
|
+
modifiers={['stacked']}
|
|
36
|
+
{...presets.SmallHeavy}
|
|
37
|
+
{...teaser}
|
|
38
|
+
metaPrefixText={'By'}
|
|
39
|
+
metaLink={{
|
|
40
|
+
prefLabel: teaser?.clientName,
|
|
41
|
+
// clientName is a free form text field. Currently, there is no way to map it to an organisation
|
|
42
|
+
// from the annotations. For now, we're linking it to the article url.
|
|
43
|
+
// A property like isSponsoredBy could be added in future to support this properly.
|
|
44
|
+
url: teaser?.url,
|
|
45
|
+
}}
|
|
46
|
+
/>
|
|
47
|
+
))}
|
|
48
|
+
</div>
|
|
49
|
+
</aside>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export default RecommendedList
|
|
@@ -87,11 +87,21 @@ export type Teaser = PartialToMaybeDeep<
|
|
|
87
87
|
>
|
|
88
88
|
|
|
89
89
|
export type Recommended = PartialToMaybe<
|
|
90
|
-
|
|
90
|
+
ContentTreeWorkarounds.Recommended & {
|
|
91
91
|
teaser?: Teaser
|
|
92
92
|
}
|
|
93
93
|
>
|
|
94
94
|
|
|
95
|
+
export type RecommendedList = PartialToMaybe<
|
|
96
|
+
ReadonlyArrays<
|
|
97
|
+
Omit<ContentTree.RecommendedList, 'children'> & {
|
|
98
|
+
teasers?: (Teaser | null)[]
|
|
99
|
+
children: Recommended[]
|
|
100
|
+
}
|
|
101
|
+
>
|
|
102
|
+
|
|
103
|
+
>
|
|
104
|
+
|
|
95
105
|
export type ImageSetPicture = PartialToMaybe<
|
|
96
106
|
ReadonlyArrays<
|
|
97
107
|
SetOptional<
|
package/src/index.ts
CHANGED
|
@@ -24,6 +24,7 @@ export {
|
|
|
24
24
|
export { default as Paragraph } from './components/content-tree/Paragraph'
|
|
25
25
|
export { default as Pullquote } from './components/content-tree/Pullquote/index'
|
|
26
26
|
export { default as Recommended } from './components/content-tree/Recommended'
|
|
27
|
+
export { default as RecommendedList } from './components/content-tree/RecommendedList'
|
|
27
28
|
export { ScrollyBlock } from './components/content-tree/Scrollytelling'
|
|
28
29
|
export { default as Table } from './components/content-tree/Table'
|
|
29
30
|
export { default as Tweet } from './components/content-tree/Tweet'
|