@arc-ui/community-components 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +7 -7
- package/CHANGELOG.md +24 -0
- package/dist/Accordion/Accordion.cjs.js +6 -22
- package/dist/Accordion/Accordion.esm.js +5 -25
- package/dist/ArticleSidebar/ArticleSidebar.esm.js +2 -2
- package/dist/Author/Author.esm.js +2 -2
- package/dist/BannerWithTabs/BannerWithTabs.cjs.js +3 -3
- package/dist/BannerWithTabs/BannerWithTabs.esm.js +5 -5
- package/dist/ContentInfoWidget/ContentInfoWidget.cjs.js +18 -0
- package/dist/ContentInfoWidget/ContentInfoWidget.esm.js +16 -0
- package/dist/ContentInfoWidget/styles.css +1 -0
- package/dist/CopyLead/CopyLead.cjs.js +1 -1
- package/dist/CopyLead/CopyLead.esm.js +3 -3
- package/dist/DownloadList/DownloadList.esm.js +2 -2
- package/dist/FAQs/FAQs.cjs.js +50 -0
- package/dist/FAQs/FAQs.esm.js +48 -0
- package/dist/FAQs/styles.css +1 -0
- package/dist/FeaturePost/FeaturePost.cjs.js +3 -3
- package/dist/FeaturePost/FeaturePost.esm.js +5 -5
- package/dist/FeaturePost/styles.css +1 -1
- package/dist/Highlights/Highlights.esm.js +2 -2
- package/dist/ProductNavigation/ProductNavigation.cjs.js +1 -1
- package/dist/ProductNavigation/ProductNavigation.esm.js +3 -3
- package/dist/PromoListing/PromoListing.cjs.js +1 -1
- package/dist/PromoListing/PromoListing.esm.js +3 -3
- package/dist/Quote/Quote.esm.js +2 -2
- package/dist/SectionHeading/SectionHeading.esm.js +2 -2
- package/dist/Statistics/Statistics.esm.js +2 -2
- package/dist/Summary/Summary.cjs.js +1 -1
- package/dist/Summary/Summary.esm.js +2 -2
- package/dist/_shared/cjs/Accordion-Bme0aSPi.js +53 -0
- package/dist/_shared/cjs/{index.es-BNY6zQSi.js → index.es-BVxxpECB.js} +1 -1
- package/dist/_shared/esm/Accordion-Brmx6oxT.js +51 -0
- package/dist/_shared/esm/{Author-son1Cgke.js → Author-DpT2Pcq_.js} +1 -1
- package/dist/_shared/esm/{SectionHeading-BwbuyrYn.js → SectionHeading-DVLKN_jI.js} +1 -1
- package/dist/_shared/esm/{index.es-BraCgI9m.js → index.es-CbCdNYwG.js} +1 -1
- package/dist/_shared/esm/{tslib.es6-BVXMhEem.js → tslib.es6-D6Wu-xwB.js} +1 -1
- package/dist/index.es.js +146 -79
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +147 -78
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/cjs/components/Accordion/Accordion.d.ts +2 -2
- package/dist/types/cjs/components/Accordion/components/AccordionDisclosureList/AccordionDisclosureList.d.ts +3 -1
- package/dist/types/cjs/components/Accordion/components/AccordionHeading/AccordionHeading.d.ts +34 -0
- package/dist/types/cjs/components/Accordion/components/AccordionHeading/index.d.ts +1 -0
- package/dist/types/cjs/components/BannerWithTabs/BannerWithTabs.d.ts +0 -4
- package/dist/types/cjs/components/ContentInfoWidget/ContentInfoWidget.d.ts +6 -0
- package/dist/types/cjs/components/ContentInfoWidget/index.d.ts +1 -0
- package/dist/types/cjs/components/CopyLead/components/MediaContent/MediaContent.d.ts +2 -2
- package/dist/types/cjs/components/CopyLead/templates/Content/Content.d.ts +2 -2
- package/dist/types/cjs/components/CopyLead/templates/Media/Media.d.ts +2 -2
- package/dist/types/cjs/components/FAQs/FAQs.d.ts +13 -0
- package/dist/types/cjs/components/FAQs/index.d.ts +1 -0
- package/dist/types/cjs/components/Highlights/components/HighlightItem/HighlightItem.d.ts +2 -2
- package/dist/types/cjs/components/Highlights/types/highlight-list-item.d.ts +1 -1
- package/dist/types/cjs/components/SectionHeading/SectionHeading.d.ts +2 -2
- package/dist/types/cjs/components/index.d.ts +2 -0
- package/dist/types/esm/components/Accordion/Accordion.d.ts +2 -2
- package/dist/types/esm/components/Accordion/components/AccordionDisclosureList/AccordionDisclosureList.d.ts +3 -1
- package/dist/types/esm/components/Accordion/components/AccordionHeading/AccordionHeading.d.ts +34 -0
- package/dist/types/esm/components/Accordion/components/AccordionHeading/index.d.ts +1 -0
- package/dist/types/esm/components/BannerWithTabs/BannerWithTabs.d.ts +0 -4
- package/dist/types/esm/components/ContentInfoWidget/ContentInfoWidget.d.ts +6 -0
- package/dist/types/esm/components/ContentInfoWidget/index.d.ts +1 -0
- package/dist/types/esm/components/CopyLead/components/MediaContent/MediaContent.d.ts +2 -2
- package/dist/types/esm/components/CopyLead/templates/Content/Content.d.ts +2 -2
- package/dist/types/esm/components/CopyLead/templates/Media/Media.d.ts +2 -2
- package/dist/types/esm/components/FAQs/FAQs.d.ts +13 -0
- package/dist/types/esm/components/FAQs/index.d.ts +1 -0
- package/dist/types/esm/components/Highlights/components/HighlightItem/HighlightItem.d.ts +2 -2
- package/dist/types/esm/components/Highlights/types/highlight-list-item.d.ts +1 -1
- package/dist/types/esm/components/SectionHeading/SectionHeading.d.ts +2 -2
- package/dist/types/esm/components/index.d.ts +2 -0
- package/package.json +16 -15
- package/src/components/Accordion/Accordion.tsx +10 -4
- package/src/components/Accordion/components/AccordionDisclosureList/AccordionDisclosureList.module.css +6 -0
- package/src/components/Accordion/components/AccordionDisclosureList/AccordionDisclosureList.tsx +23 -22
- package/src/components/Accordion/components/AccordionHeading/AccordionHeading.module.css +51 -0
- package/src/components/Accordion/components/AccordionHeading/AccordionHeading.tsx +91 -0
- package/src/components/Accordion/components/AccordionHeading/index.ts +4 -0
- package/src/components/BannerWithTabs/BannerWithTabs.tsx +1 -8
- package/src/components/ContentInfoWidget/ContentInfoWidget.module.css +16 -0
- package/src/components/ContentInfoWidget/ContentInfoWidget.tsx +30 -0
- package/src/components/ContentInfoWidget/index.ts +4 -0
- package/src/components/CopyLead/components/MediaContent/MediaContent.tsx +2 -2
- package/src/components/CopyLead/templates/Content/Content.tsx +2 -2
- package/src/components/CopyLead/templates/Media/Media.tsx +2 -2
- package/src/components/FAQs/FAQs.module.css +64 -0
- package/src/components/FAQs/FAQs.tsx +114 -0
- package/src/components/FAQs/index.ts +1 -0
- package/src/components/FeaturePost/FeaturePost.module.css +1 -0
- package/src/components/FeaturePost/FeaturePost.tsx +4 -2
- package/src/components/Highlights/components/HighlightItem/HighlightItem.tsx +2 -2
- package/src/components/Highlights/types/highlight-list-item.ts +1 -1
- package/src/components/SectionHeading/SectionHeading.tsx +2 -2
- package/src/components/index.ts +2 -0
- package/versions.json +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
@import url("@arc-ui/tokens-arc/dist/custom-media.css");
|
|
2
|
+
|
|
3
|
+
.accordion-header {
|
|
4
|
+
padding-bottom: 40px;
|
|
5
|
+
width: auto;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.accordion-header--hasImage {
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-direction: column;
|
|
11
|
+
gap: 16px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@media (--arc-custom-media-min-width-s-px) {
|
|
15
|
+
.accordion-header--padded {
|
|
16
|
+
min-width: 588px;
|
|
17
|
+
width: auto;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.accordion-header--hasImage {
|
|
21
|
+
align-items: center;
|
|
22
|
+
flex-direction: row;
|
|
23
|
+
gap: 32px;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@media (--arc-custom-media-min-width-m-px) {
|
|
28
|
+
.accordion-header--padded {
|
|
29
|
+
min-width: 720px;
|
|
30
|
+
padding: 0 186px 40px 0;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@media (--arc-custom-media-min-width-l-px) {
|
|
35
|
+
.accordion-header--padded {
|
|
36
|
+
min-width: 960px;
|
|
37
|
+
padding: 0 246px 40px 0;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@media (--arc-custom-media-min-width-xl-px) {
|
|
42
|
+
.accordion-header--padded {
|
|
43
|
+
min-width: 1216px;
|
|
44
|
+
padding: 0 312px 40px 0;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.accordion-header--headingSizeM {
|
|
49
|
+
padding-bottom: 24px;
|
|
50
|
+
width: auto;
|
|
51
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
|
|
4
|
+
import { filterDataAttrs } from "@arc-ui/community-utils/filter-data-attrs";
|
|
5
|
+
|
|
6
|
+
import { Heading, type HeadingLevel } from "@arc-ui/components/Heading";
|
|
7
|
+
import { Text } from "@arc-ui/components/Text";
|
|
8
|
+
import { VerticalSpace } from "@arc-ui/components/VerticalSpace";
|
|
9
|
+
import { Image } from "@arc-ui/components/Image";
|
|
10
|
+
import { type ImageProps } from "@arc-ui/components/dist/types/components/Image/Image";
|
|
11
|
+
|
|
12
|
+
import styles from "./AccordionHeading.module.css";
|
|
13
|
+
|
|
14
|
+
export const AccordionHeading: React.FC<AccordionHeadingProps> = ({
|
|
15
|
+
heading,
|
|
16
|
+
content,
|
|
17
|
+
id,
|
|
18
|
+
isPadded = false,
|
|
19
|
+
headingLevel = "2",
|
|
20
|
+
headingSize = "xl",
|
|
21
|
+
image,
|
|
22
|
+
...props
|
|
23
|
+
}) => (
|
|
24
|
+
<div
|
|
25
|
+
className={classNames({
|
|
26
|
+
[styles["accordion-header"]]: true,
|
|
27
|
+
[styles["accordion-header--padded"]]: isPadded,
|
|
28
|
+
[styles["accordion-header--headingSizeM"]]: headingSize === "m",
|
|
29
|
+
})}
|
|
30
|
+
{...filterDataAttrs(props)}
|
|
31
|
+
>
|
|
32
|
+
<div
|
|
33
|
+
className={classNames({ [styles["accordion-header--hasImage"]]: image })}
|
|
34
|
+
>
|
|
35
|
+
{image && (
|
|
36
|
+
<div>
|
|
37
|
+
<Image {...image} width={68} fit="cover" />
|
|
38
|
+
</div>
|
|
39
|
+
)}
|
|
40
|
+
<Heading level={headingLevel} id={id} size={headingSize}>
|
|
41
|
+
{heading}
|
|
42
|
+
</Heading>
|
|
43
|
+
</div>
|
|
44
|
+
{content && (
|
|
45
|
+
<>
|
|
46
|
+
{headingSize === "xl" ? (
|
|
47
|
+
<VerticalSpace size="24" />
|
|
48
|
+
) : (
|
|
49
|
+
<VerticalSpace size="8" sizeL="12" sizeXL="16" />
|
|
50
|
+
)}
|
|
51
|
+
<Text size="l" elementType="p">
|
|
52
|
+
{content}
|
|
53
|
+
</Text>
|
|
54
|
+
</>
|
|
55
|
+
)}
|
|
56
|
+
</div>
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
export interface AccordionHeadingProps {
|
|
60
|
+
/**
|
|
61
|
+
* heading for `AccordionHeading`.
|
|
62
|
+
*/
|
|
63
|
+
heading: string;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Adds padding to `AccordionHeading`.
|
|
67
|
+
*/
|
|
68
|
+
isPadded?: boolean;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Determine a heading level for `AccordionHeading`.
|
|
72
|
+
*/
|
|
73
|
+
headingLevel?: HeadingLevel;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Text content for `AccordionHeading`.
|
|
77
|
+
*/
|
|
78
|
+
content?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Id content for `AccordionHeading`.
|
|
81
|
+
*/
|
|
82
|
+
id?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Header image for the `AccordionHeading`.
|
|
85
|
+
*/
|
|
86
|
+
image?: ImageProps;
|
|
87
|
+
/**
|
|
88
|
+
* Header size for the `AccordionHeading`.
|
|
89
|
+
*/
|
|
90
|
+
headingSize?: "xl" | "m";
|
|
91
|
+
}
|
|
@@ -13,17 +13,15 @@ export const BannerWithTabs: FC<BannerWithTabsProps> = ({
|
|
|
13
13
|
heading,
|
|
14
14
|
content,
|
|
15
15
|
alignTypography = "left",
|
|
16
|
-
isInverted = false,
|
|
17
16
|
minHeight,
|
|
18
17
|
minHeightM,
|
|
19
18
|
}) => {
|
|
20
19
|
return (
|
|
21
20
|
<>
|
|
22
21
|
<div
|
|
23
|
-
className={classNames(
|
|
22
|
+
className={classNames({
|
|
24
23
|
[styles.bannerWithTabsHeadingCentered]: alignTypography === "center",
|
|
25
24
|
})}
|
|
26
|
-
style={{ color: isInverted ? "white" : "black" }}
|
|
27
25
|
>
|
|
28
26
|
<SectionHeading
|
|
29
27
|
heading={heading}
|
|
@@ -48,11 +46,6 @@ export interface BannerWithTabsProps
|
|
|
48
46
|
*/
|
|
49
47
|
alignTypography?: "left" | "center";
|
|
50
48
|
|
|
51
|
-
/**
|
|
52
|
-
* Invert colour of `SectionHeading` to colour of `TabbedBanner`.
|
|
53
|
-
*/
|
|
54
|
-
isInverted?: boolean;
|
|
55
|
-
|
|
56
49
|
/**
|
|
57
50
|
* Default to an inital value of a tab. If this is left blank it will default to first tab.
|
|
58
51
|
*/
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: row;
|
|
4
|
+
align-items: center;
|
|
5
|
+
max-width: 250px;
|
|
6
|
+
white-space: nowrap;
|
|
7
|
+
overflow-x: hidden;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.text {
|
|
11
|
+
padding-left: 8px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.icon {
|
|
15
|
+
color: var(--sem-color-fg-secondary-light-subtle);
|
|
16
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import { Text } from "@arc-ui/components/Text";
|
|
4
|
+
|
|
5
|
+
import { Icon } from "@arc-ui/components/Icon";
|
|
6
|
+
|
|
7
|
+
import styles from "./ContentInfoWidget.module.css";
|
|
8
|
+
|
|
9
|
+
export const ContentInfoWidget: React.FC<ContentInfoWidgetProps> = ({
|
|
10
|
+
text,
|
|
11
|
+
icon,
|
|
12
|
+
}) => {
|
|
13
|
+
return (
|
|
14
|
+
<div className={styles.container}>
|
|
15
|
+
<div className={styles.icon}>
|
|
16
|
+
<Icon size={20} icon={icon} />
|
|
17
|
+
</div>
|
|
18
|
+
<div className={styles.text}>
|
|
19
|
+
<Text size="xs" tone="muted">
|
|
20
|
+
{text}
|
|
21
|
+
</Text>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export interface ContentInfoWidgetProps {
|
|
28
|
+
icon: string;
|
|
29
|
+
text: string;
|
|
30
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
Heading as ArcHeading,
|
|
@@ -32,5 +32,5 @@ export const MediaContent: React.FC<MediaContentProps> = ({
|
|
|
32
32
|
interface MediaContentProps {
|
|
33
33
|
heading: string;
|
|
34
34
|
headingLevel?: HeadingLevel;
|
|
35
|
-
children?: string;
|
|
35
|
+
children?: string | ReactNode;
|
|
36
36
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
|
|
3
3
|
import { ArcSizeBreakpointsL, ArcSizeBreakpointsM } from "@arc-ui/tokens-arc";
|
|
4
4
|
|
|
@@ -52,7 +52,7 @@ export const ContentTemplate: React.FC<ContentTemplateProps> = ({
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
interface ContentTemplateProps extends SectionHeadingProps {
|
|
55
|
-
content: string;
|
|
55
|
+
content: string | ReactNode;
|
|
56
56
|
listItems: CopyLeadListItem[];
|
|
57
57
|
button?: CopyLeadButton;
|
|
58
58
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { Suspense, useEffect, useState } from "react";
|
|
1
|
+
import React, { Suspense, useEffect, useState, ReactNode } from "react";
|
|
2
2
|
|
|
3
3
|
import { ArcSizeBreakpointsL, ArcSizeBreakpointsXl } from "@arc-ui/tokens-arc";
|
|
4
4
|
|
|
@@ -96,7 +96,7 @@ interface MediaTemplateProps {
|
|
|
96
96
|
heading: string;
|
|
97
97
|
headingLevel?: HeadingLevel;
|
|
98
98
|
listItems: CopyLeadListItem[];
|
|
99
|
-
content?: string;
|
|
99
|
+
content?: string | ReactNode;
|
|
100
100
|
isReverseOrder?: boolean;
|
|
101
101
|
button?: CopyLeadButton;
|
|
102
102
|
image?: CopyLeadImage;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
html {
|
|
2
|
+
scroll-behavior: smooth;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
ul,
|
|
6
|
+
li {
|
|
7
|
+
list-style: none;
|
|
8
|
+
margin: 0;
|
|
9
|
+
padding: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.linkListSection {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
margin-bottom: 40px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.linkListTitle {
|
|
19
|
+
margin-bottom: 8px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.linkList {
|
|
23
|
+
display: flex;
|
|
24
|
+
flex-wrap: wrap;
|
|
25
|
+
row-gap: 8px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.linkListItem::after {
|
|
29
|
+
content: "|";
|
|
30
|
+
padding: 0 8px;
|
|
31
|
+
color: #d9d9d9;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.linkListItem:last-child::after {
|
|
35
|
+
content: "";
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@media (--arc-custom-media-min-width-s-px) {
|
|
39
|
+
.linkList--padded {
|
|
40
|
+
min-width: 588px;
|
|
41
|
+
width: auto;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@media (--arc-custom-media-min-width-m-px) {
|
|
46
|
+
.linkList--padded {
|
|
47
|
+
min-width: 720px;
|
|
48
|
+
padding-right: 186px;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@media (--arc-custom-media-min-width-l-px) {
|
|
53
|
+
.linkList--padded {
|
|
54
|
+
min-width: 960px;
|
|
55
|
+
padding-right: 246px;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@media (--arc-custom-media-min-width-xl-px) {
|
|
60
|
+
.linkList--padded {
|
|
61
|
+
min-width: 1216px;
|
|
62
|
+
padding-right: 312px;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
|
|
4
|
+
import { filterDataAttrs } from "@arc-ui/community-utils/filter-data-attrs";
|
|
5
|
+
|
|
6
|
+
import { Accordion, type AccordionProps } from "../Accordion";
|
|
7
|
+
import { SectionHeading, type SectionHeadingProps } from "../SectionHeading";
|
|
8
|
+
import { Link } from "@arc-ui/components/Link";
|
|
9
|
+
import { Heading } from "@arc-ui/components/Heading";
|
|
10
|
+
import { VerticalSpace } from "@arc-ui/components/VerticalSpace";
|
|
11
|
+
import { Tabs, TabsList, TabsContent, TabsItem } from "@arc-ui/components/Tabs";
|
|
12
|
+
|
|
13
|
+
import styles from "./FAQs.module.css";
|
|
14
|
+
|
|
15
|
+
export const FAQs: React.FC<FAQsProps> = ({
|
|
16
|
+
heading,
|
|
17
|
+
content,
|
|
18
|
+
isPadded = false,
|
|
19
|
+
headingLevel = "2",
|
|
20
|
+
image,
|
|
21
|
+
type = "list",
|
|
22
|
+
linkListHeading = "Skip to section",
|
|
23
|
+
accordionData,
|
|
24
|
+
...props
|
|
25
|
+
}) => (
|
|
26
|
+
<div {...filterDataAttrs(props)}>
|
|
27
|
+
<SectionHeading
|
|
28
|
+
heading={heading}
|
|
29
|
+
content={content}
|
|
30
|
+
image={image}
|
|
31
|
+
headingLevel={headingLevel}
|
|
32
|
+
isPadded={isPadded}
|
|
33
|
+
/>
|
|
34
|
+
{type === "listWithLinks" && (
|
|
35
|
+
<div className={styles.linkListSection}>
|
|
36
|
+
<div className={styles.linkListTitle}>
|
|
37
|
+
<Heading size="xs">{linkListHeading}</Heading>
|
|
38
|
+
</div>
|
|
39
|
+
<ul
|
|
40
|
+
className={classNames({
|
|
41
|
+
[styles["linkList"]]: true,
|
|
42
|
+
[styles["linkList--padded"]]: isPadded,
|
|
43
|
+
})}
|
|
44
|
+
>
|
|
45
|
+
{accordionData.map((item: ExtendedAccordionProps) => (
|
|
46
|
+
<li className={styles.linkListItem} key={item.heading}>
|
|
47
|
+
<Link
|
|
48
|
+
title={item.heading}
|
|
49
|
+
href={`#${item.id}`}
|
|
50
|
+
onClick={() => {
|
|
51
|
+
document.getElementById(`#${item.id}`)?.focus();
|
|
52
|
+
}}
|
|
53
|
+
>
|
|
54
|
+
{item.altLinkTitle ?? item.heading}
|
|
55
|
+
</Link>
|
|
56
|
+
</li>
|
|
57
|
+
))}
|
|
58
|
+
</ul>
|
|
59
|
+
</div>
|
|
60
|
+
)}
|
|
61
|
+
{type !== "tabs" && accordionData && (
|
|
62
|
+
<ul>
|
|
63
|
+
{accordionData.map((item: ExtendedAccordionProps) => (
|
|
64
|
+
<li key={item.id}>
|
|
65
|
+
<Accordion
|
|
66
|
+
id={item.id}
|
|
67
|
+
heading={item.heading}
|
|
68
|
+
headingLevel={item.headingLevel}
|
|
69
|
+
content={item.content}
|
|
70
|
+
disclosureList={item.disclosureList}
|
|
71
|
+
headingSize="m"
|
|
72
|
+
/>
|
|
73
|
+
<VerticalSpace size="48" sizeL="64" />
|
|
74
|
+
</li>
|
|
75
|
+
))}
|
|
76
|
+
</ul>
|
|
77
|
+
)}
|
|
78
|
+
{type === "tabs" && (
|
|
79
|
+
<Tabs defaultValue={accordionData[0].heading}>
|
|
80
|
+
<TabsList type="standard">
|
|
81
|
+
{accordionData.map((item: AccordionProps, index: number) => (
|
|
82
|
+
<div key={index}>
|
|
83
|
+
<TabsItem label={item.heading} value={item.heading} />
|
|
84
|
+
</div>
|
|
85
|
+
))}
|
|
86
|
+
</TabsList>
|
|
87
|
+
<VerticalSpace size="40" />
|
|
88
|
+
{accordionData.map((item: ExtendedAccordionProps, index: number) => (
|
|
89
|
+
<div key={item.heading}>
|
|
90
|
+
<TabsContent value={item.heading}>
|
|
91
|
+
<Accordion
|
|
92
|
+
key={index}
|
|
93
|
+
heading={item.heading}
|
|
94
|
+
headingLevel={item.headingLevel}
|
|
95
|
+
content={item.content}
|
|
96
|
+
disclosureList={item.disclosureList}
|
|
97
|
+
headingSize="m"
|
|
98
|
+
/>
|
|
99
|
+
</TabsContent>
|
|
100
|
+
</div>
|
|
101
|
+
))}
|
|
102
|
+
</Tabs>
|
|
103
|
+
)}
|
|
104
|
+
</div>
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
interface ExtendedAccordionProps extends AccordionProps {
|
|
108
|
+
altLinkTitle?: string;
|
|
109
|
+
}
|
|
110
|
+
export interface FAQsProps extends SectionHeadingProps {
|
|
111
|
+
type: "list" | "listWithLinks" | "tabs";
|
|
112
|
+
linkListHeading?: string;
|
|
113
|
+
accordionData: ExtendedAccordionProps[];
|
|
114
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FAQs, type FAQsProps } from "./FAQs";
|
|
@@ -58,7 +58,9 @@ export const FeaturePost: React.FC<FeaturePostProps> = ({
|
|
|
58
58
|
<Grid isGutterless isFluid>
|
|
59
59
|
<GridRow align="baseline">
|
|
60
60
|
<GridCol xs={12} m="auto">
|
|
61
|
-
<Heading size="xxs">
|
|
61
|
+
<Heading size="xxs" fontStyle="overline">
|
|
62
|
+
{label.text}
|
|
63
|
+
</Heading>
|
|
62
64
|
</GridCol>
|
|
63
65
|
<GridCol xs={12} m="auto">
|
|
64
66
|
<div className={styles.labelDate}>
|
|
@@ -67,7 +69,7 @@ export const FeaturePost: React.FC<FeaturePostProps> = ({
|
|
|
67
69
|
<time
|
|
68
70
|
dateTime={format(label.date as Date, "yyyy-MM-dd")}
|
|
69
71
|
>
|
|
70
|
-
{format(label.date as Date, "
|
|
72
|
+
{format(label.date as Date, "d MMMM yyyy")}
|
|
71
73
|
</time>
|
|
72
74
|
) : (
|
|
73
75
|
<span>{label.date as string}</span>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
|
|
3
3
|
import { Heading } from "@arc-ui/components/Heading";
|
|
4
4
|
import { Icon } from "@arc-ui/components/Icon";
|
|
@@ -60,7 +60,7 @@ export const HighlightItem: React.FC<HighlightItemProps> = ({
|
|
|
60
60
|
interface HighlightItemProps {
|
|
61
61
|
icon?: string;
|
|
62
62
|
heading: string;
|
|
63
|
-
text?: string;
|
|
63
|
+
text?: string | ReactNode;
|
|
64
64
|
link?: HighlightLink;
|
|
65
65
|
isSmallIcon: boolean;
|
|
66
66
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
import classNames from "classnames";
|
|
3
3
|
|
|
4
4
|
import { filterDataAttrs } from "@arc-ui/community-utils/filter-data-attrs";
|
|
@@ -69,7 +69,7 @@ export interface SectionHeadingProps {
|
|
|
69
69
|
/**
|
|
70
70
|
* Text content for `SectionHeading`.
|
|
71
71
|
*/
|
|
72
|
-
content?: string;
|
|
72
|
+
content?: string | ReactNode;
|
|
73
73
|
/**
|
|
74
74
|
* Id content for `SectionHeading`.
|
|
75
75
|
*/
|
package/src/components/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./Accordion";
|
|
|
2
2
|
export * from "./Author";
|
|
3
3
|
export * from "./CopyLead";
|
|
4
4
|
export * from "./DownloadList";
|
|
5
|
+
export * from "./FAQs";
|
|
5
6
|
export * from "./FeaturePost";
|
|
6
7
|
export * from "./Highlights";
|
|
7
8
|
export * from "./PromoListing";
|
|
@@ -12,3 +13,4 @@ export * from "./BannerWithTabs";
|
|
|
12
13
|
export * from "./ArticleSidebar";
|
|
13
14
|
export * from "./ProductNavigation";
|
|
14
15
|
export * from "./SectionHeading";
|
|
16
|
+
export * from "./ContentInfoWidget";
|
package/versions.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
["v1.0.2","v1.0.1","v1.0.0","v0.1.0"]
|
|
1
|
+
["v2.0.0","v1.1.0","v1.0.2","v1.0.1","v1.0.0","v0.1.0"]
|