@arc-ui/community-components 3.16.0 → 3.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +14 -14
- package/CHANGELOG.md +21 -0
- package/lib/ComparisonTable/ComparisonTable.cjs +317 -0
- package/lib/ComparisonTable/ComparisonTable.mjs +310 -0
- package/lib/ComparisonTable/styles.css +1 -0
- package/lib/FeaturePost/FeaturePost.cjs +12 -11
- package/lib/FeaturePost/FeaturePost.mjs +12 -11
- package/lib/FeaturePost/styles.css +1 -1
- package/lib/Highlights/Highlights.cjs +7 -7
- package/lib/Highlights/Highlights.mjs +7 -7
- package/lib/ProductCard/ProductCard.cjs +13 -35
- package/lib/ProductCard/ProductCard.mjs +12 -34
- package/lib/_shared/cjs/ProductCardPriceIncrease-BP39clav.cjs +38 -0
- package/lib/_shared/esm/ProductCardPriceIncrease-CJyG2wv-.mjs +35 -0
- package/lib/index.cjs +507 -199
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +213 -22
- package/lib/index.d.mts +213 -22
- package/lib/index.mjs +502 -200
- package/lib/index.mjs.map +1 -1
- package/lib/styles.css +1 -1
- package/package.json +6 -6
- package/src/components/ComparisonTable/ComparisonTable.module.css +503 -0
- package/src/components/ComparisonTable/ComparisonTable.tsx +104 -0
- package/src/components/ComparisonTable/components/Cell/Cell.tsx +44 -0
- package/src/components/ComparisonTable/components/ControlCell/ControlCell.tsx +21 -0
- package/src/components/ComparisonTable/components/DesktopRow/DesktopRow.tsx +59 -0
- package/src/components/ComparisonTable/components/DesktopTable/DesktopTable.tsx +150 -0
- package/src/components/ComparisonTable/components/FeatureCell/FeatureCell.module.css +56 -0
- package/src/components/ComparisonTable/components/FeatureCell/FeatureCell.tsx +96 -0
- package/src/components/ComparisonTable/components/HeaderCell/HeaderCell.tsx +59 -0
- package/src/components/ComparisonTable/components/MobileRow/MobileRow.tsx +77 -0
- package/src/components/ComparisonTable/components/MobileTable/MobileTable.tsx +103 -0
- package/src/components/ComparisonTable/components/Section/Section.tsx +75 -0
- package/src/components/ComparisonTable/components/SectionToggle/SectionToggle.tsx +63 -0
- package/src/components/ComparisonTable/components/SubHeaderCell/SubHeaderCell.tsx +62 -0
- package/src/components/ComparisonTable/index.ts +22 -0
- package/src/components/ComparisonTable/types/comparison-column.ts +22 -0
- package/src/components/ComparisonTable/types/comparison-row.ts +23 -0
- package/src/components/ComparisonTable/types/comparison-section.ts +39 -0
- package/src/components/ComparisonTable/types/comparison-sub-row.ts +8 -0
- package/src/components/ComparisonTable/utils/group-rows.ts +69 -0
- package/src/components/ComparisonTable/utils/use-section-state.ts +45 -0
- package/src/components/FeaturePost/FeaturePost.module.css +24 -2
- package/src/components/FeaturePost/FeaturePost.tsx +26 -25
- package/src/components/FeaturePost/types/feature-post-cta-footer.ts +4 -3
- package/src/components/Highlights/Highlights.tsx +5 -32
- package/src/components/ProductCard/ProductCardPrice/ProductCardPrice.tsx +11 -3
- package/src/components/ProductCard/ProductCardPriceIncrease/ProductCardPriceIncrease.module.css +1 -2
- package/src/components/ProductCard/ProductCardPriceIncrease/ProductCardPriceIncrease.tsx +14 -3
- package/src/components/index.ts +1 -0
- package/versions.json +1 -1
package/lib/index.d.cts
CHANGED
|
@@ -281,7 +281,8 @@ interface FeaturePostAppButtonFooter {
|
|
|
281
281
|
|
|
282
282
|
interface FeaturePostCtaFooter {
|
|
283
283
|
type: "cta";
|
|
284
|
-
|
|
284
|
+
/** CTA button options. The button style defaults to `secondary`. */
|
|
285
|
+
button: Pick<ButtonV2Props, "label" | "onClick" | "href" | "target" | "ariaLabel" | "buttonStyle">;
|
|
285
286
|
author?: AuthorProps;
|
|
286
287
|
}
|
|
287
288
|
|
|
@@ -375,26 +376,8 @@ interface HighlightsProps extends Omit<SectionHeadingProps, "isPadded"> {
|
|
|
375
376
|
* Optional CTA rendered at the end of Highlights.
|
|
376
377
|
* Only ONE CTA is allowed.
|
|
377
378
|
*/
|
|
378
|
-
cta?:
|
|
379
|
+
cta?: ButtonV2Props;
|
|
379
380
|
}
|
|
380
|
-
/**
|
|
381
|
-
* CTA configuration for Highlights
|
|
382
|
-
*/
|
|
383
|
-
type HighlightsCTAProps = Pick<ButtonV2Props, "label" | "href" | "onClick" | "iconPosition" | "ariaLabel" | "target"> & {
|
|
384
|
-
/**
|
|
385
|
-
* Allowed button styles only.
|
|
386
|
-
* Primary is intentionally NOT supported.
|
|
387
|
-
*/
|
|
388
|
-
buttonStyle: "secondary" | "compact";
|
|
389
|
-
/**
|
|
390
|
-
* Icon override & Active icon override
|
|
391
|
-
* - undefined → uses default BtIconArrowRightFill for compact style
|
|
392
|
-
* - null → icon disabled
|
|
393
|
-
* - string → custom icon
|
|
394
|
-
*/
|
|
395
|
-
icon?: string | null;
|
|
396
|
-
iconActive?: string | null;
|
|
397
|
-
};
|
|
398
381
|
|
|
399
382
|
/**
|
|
400
383
|
* Use `PromoListing` to give supporting information about a page or proposition in the form of the card components (`ImpactCard`, `InformationCard`, `MediaCard` and `TypographyCard`).
|
|
@@ -980,6 +963,8 @@ interface ProductCardPriceIncreaseProps {
|
|
|
980
963
|
headingLevel?: HeadingLevel;
|
|
981
964
|
/** List of price increase entries (e.g. ["£48.99 by April 2027"]) */
|
|
982
965
|
items: string[];
|
|
966
|
+
/** Optional prop to hide the left border */
|
|
967
|
+
hideBorder?: boolean;
|
|
983
968
|
}
|
|
984
969
|
|
|
985
970
|
declare const ProductCardPrice: React$1.FC<ProductCardPriceProps>;
|
|
@@ -1002,5 +987,211 @@ interface ProductCardGridProps extends Omit<SectionHeadingProps, "isPadded" | "i
|
|
|
1002
987
|
hideTabs?: boolean;
|
|
1003
988
|
}
|
|
1004
989
|
|
|
1005
|
-
|
|
1006
|
-
|
|
990
|
+
declare const SubHeaderCell: React$1.FC<SubHeaderCellProps>;
|
|
991
|
+
interface SubHeaderCellProps {
|
|
992
|
+
/**
|
|
993
|
+
* Price shown at the top of the sub-header cell (prefix, value, suffix).
|
|
994
|
+
*/
|
|
995
|
+
price: ProductCardPriceProps;
|
|
996
|
+
/**
|
|
997
|
+
* Optional upcoming price-increase details rendered beneath the price.
|
|
998
|
+
*/
|
|
999
|
+
priceIncrease?: ProductCardPriceIncreaseProps;
|
|
1000
|
+
/**
|
|
1001
|
+
* Optional call-to-action button rendered at the bottom of the cell. Rendered full-width.
|
|
1002
|
+
*/
|
|
1003
|
+
button?: ButtonV2Props;
|
|
1004
|
+
/**
|
|
1005
|
+
* Zero-based index of the column this cell belongs to. Used to highlight every other column, starting with the first.
|
|
1006
|
+
*/
|
|
1007
|
+
columnIndex?: number;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
interface ComparisonColumn {
|
|
1011
|
+
/**
|
|
1012
|
+
* Stable identifier for the column; used as a React key.
|
|
1013
|
+
*/
|
|
1014
|
+
id: string;
|
|
1015
|
+
/**
|
|
1016
|
+
* Visible label rendered in the column header cell (e.g. a plan name).
|
|
1017
|
+
*/
|
|
1018
|
+
label: string;
|
|
1019
|
+
/**
|
|
1020
|
+
* Optional promotional text displayed in a branded banner above the column
|
|
1021
|
+
* header label. When set, the banner is rendered inside the header cell with
|
|
1022
|
+
* a dark brand background.
|
|
1023
|
+
*/
|
|
1024
|
+
promoted?: string;
|
|
1025
|
+
/**
|
|
1026
|
+
* Optional sub-header content (price, upcoming price increase, call-to-action) rendered in a row beneath the header. When any column defines this, the sub-header row is shown.
|
|
1027
|
+
*/
|
|
1028
|
+
subheader?: SubHeaderCellProps;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
interface ComparisonSubRow {
|
|
1032
|
+
/**
|
|
1033
|
+
* One cell per column, in the same order as `columns`. Length MUST equal columns.length.
|
|
1034
|
+
*/
|
|
1035
|
+
cells: React$1.ReactNode[];
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
declare const FeatureCell: React$1.FC<FeatureCellProps>;
|
|
1039
|
+
interface FeatureCellProps {
|
|
1040
|
+
/**
|
|
1041
|
+
* Icon shown alongside the package name.
|
|
1042
|
+
*/
|
|
1043
|
+
icon: string;
|
|
1044
|
+
/**
|
|
1045
|
+
* Package / plan title.
|
|
1046
|
+
*/
|
|
1047
|
+
title: string;
|
|
1048
|
+
/**
|
|
1049
|
+
* Optional supporting copy shown beneath the title.
|
|
1050
|
+
*/
|
|
1051
|
+
description?: string;
|
|
1052
|
+
/**
|
|
1053
|
+
* Optional popover content shown when the user interacts with the info icon.
|
|
1054
|
+
*/
|
|
1055
|
+
popoverContent?: string | React$1.ReactNode;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
interface ComparisonRow {
|
|
1059
|
+
/**
|
|
1060
|
+
* Feature label rendered as the row's full-width header, spanning all columns above the content row(s).
|
|
1061
|
+
*/
|
|
1062
|
+
feature: FeatureCellProps;
|
|
1063
|
+
/**
|
|
1064
|
+
* One cell per column for the row's primary content row, in the same order as `columns`. Length MUST equal columns.length.
|
|
1065
|
+
*/
|
|
1066
|
+
cells: React$1.ReactNode[];
|
|
1067
|
+
/**
|
|
1068
|
+
* Optional additional content rows rendered beneath the primary row, for the less common case where a feature spans multiple rows.
|
|
1069
|
+
*/
|
|
1070
|
+
subRows?: ComparisonSubRow[];
|
|
1071
|
+
/**
|
|
1072
|
+
* Id of the `ComparisonSection` this row belongs to. Omit to render the row before all sections. An id with no matching section logs a dev warning and renders the row unsectioned.
|
|
1073
|
+
*/
|
|
1074
|
+
sectionId?: string;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
interface ComparisonSection {
|
|
1078
|
+
/**
|
|
1079
|
+
* Stable identifier for the section; used as a React key and to link the toggle to its content region for accessibility.
|
|
1080
|
+
*/
|
|
1081
|
+
id: string;
|
|
1082
|
+
/**
|
|
1083
|
+
* Heading shown in the section's toggle button.
|
|
1084
|
+
*/
|
|
1085
|
+
heading: React$1.ReactNode;
|
|
1086
|
+
/**
|
|
1087
|
+
* Heading level for the section heading, for correct document outline. Defaults to a sensible level.
|
|
1088
|
+
*/
|
|
1089
|
+
headingLevel?: HeadingLevel;
|
|
1090
|
+
/**
|
|
1091
|
+
* Initial open state when the section is uncontrolled. Defaults to `false`.
|
|
1092
|
+
*/
|
|
1093
|
+
defaultOpen?: boolean;
|
|
1094
|
+
/**
|
|
1095
|
+
* Controlled open state. When provided, the section is controlled and `onOpenChange` should update it.
|
|
1096
|
+
*/
|
|
1097
|
+
open?: boolean;
|
|
1098
|
+
/**
|
|
1099
|
+
* Called with the next open state when the toggle is activated. Required for controlled usage; optional otherwise.
|
|
1100
|
+
*/
|
|
1101
|
+
onOpenChange?: (open: boolean) => void;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
declare const ComparisonTable: React$1.FC<ComparisonTableProps>;
|
|
1105
|
+
interface ComparisonTableProps {
|
|
1106
|
+
/**
|
|
1107
|
+
* Column definitions driving the header cells and the number of content cells
|
|
1108
|
+
* per row. Each `ComparisonColumn` has:
|
|
1109
|
+
*
|
|
1110
|
+
* - `id` (`string`) — Stable identifier; used as a React key.
|
|
1111
|
+
* - `label` (`string`) — Visible text in the column header (e.g. a plan name).
|
|
1112
|
+
* - `promoted` (`string`, optional) — Promotional banner text shown above the label in a branded Surface.
|
|
1113
|
+
* - `subheader` (`SubHeaderCellProps`, optional) — Price, price-increase items, and a CTA button rendered in a row beneath the header.
|
|
1114
|
+
*/
|
|
1115
|
+
columns: ComparisonColumn[];
|
|
1116
|
+
/**
|
|
1117
|
+
* All rows. Rows without `sectionId` render first, before any sections. Rows
|
|
1118
|
+
* with a `sectionId` render inside the matching section, in input order. On
|
|
1119
|
+
* mobile each row is a full-width feature header above its content row(s); on
|
|
1120
|
+
* desktop the feature becomes the left-hand column of the row. Each
|
|
1121
|
+
* `ComparisonRow` has:
|
|
1122
|
+
*
|
|
1123
|
+
* - `feature` (`FeatureCellProps`) — Icon, title, description, and optional popover for the feature label.
|
|
1124
|
+
* - `cells` (`ReactNode[]`) — One cell per column, in the same order as `columns`. Supports strings or rich ReactNode content (e.g. tick/cross icons).
|
|
1125
|
+
* - `subRows` (`ComparisonSubRow[]`, optional) — Additional content rows beneath the primary row, for features spanning multiple rows.
|
|
1126
|
+
* - `sectionId` (`string`, optional) — Id of the section the row belongs to. An unknown id logs a dev warning and the row renders unsectioned.
|
|
1127
|
+
*/
|
|
1128
|
+
rows?: ComparisonRow[];
|
|
1129
|
+
/**
|
|
1130
|
+
* Section metadata only. Sections render in array order, after unsectioned
|
|
1131
|
+
* rows, each with a full-width toggle that expands or collapses the rows whose
|
|
1132
|
+
* `sectionId` matches. A section with no matching rows is hidden. Each `ComparisonSection` has:
|
|
1133
|
+
*
|
|
1134
|
+
* - `id` (`string`) — Stable identifier; used as a React key and for accessibility linking.
|
|
1135
|
+
* - `heading` (`ReactNode`) — Text shown in the section's toggle button.
|
|
1136
|
+
* - `headingLevel` (`HeadingLevel`, optional) — Semantic heading level for the document outline.
|
|
1137
|
+
* - `defaultOpen` (`boolean`, optional) — Initial open state when uncontrolled. Defaults to `false`.
|
|
1138
|
+
* - `open` (`boolean`, optional) — Controlled open state.
|
|
1139
|
+
* - `onOpenChange` (`(open: boolean) => void`, optional) — Callback for controlled usage.
|
|
1140
|
+
*/
|
|
1141
|
+
sections?: ComparisonSection[];
|
|
1142
|
+
/**
|
|
1143
|
+
* Optional controls. On mobile they render in a full-width cell beneath the header; on desktop they render in the left-hand feature column beside the sub-header. Omit to hide the control row entirely.
|
|
1144
|
+
*/
|
|
1145
|
+
controls?: React$1.ReactNode;
|
|
1146
|
+
/**
|
|
1147
|
+
* When `true`, wraps the table in a rounded, clipped container with an inset shadow overlay border. Defaults to `false`.
|
|
1148
|
+
*/
|
|
1149
|
+
hasBorder?: boolean;
|
|
1150
|
+
/**
|
|
1151
|
+
* When `true`, the desktop column header row sticks to the top of the scroll container as the body scrolls. Defaults to `false`.
|
|
1152
|
+
*/
|
|
1153
|
+
hasStickyHeader?: boolean;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
declare const HeaderCell: React$1.FC<HeaderCellProps>;
|
|
1157
|
+
interface HeaderCellProps {
|
|
1158
|
+
/**
|
|
1159
|
+
* Content rendered inside the column header cell (typically a column label).
|
|
1160
|
+
*/
|
|
1161
|
+
children?: string;
|
|
1162
|
+
/**
|
|
1163
|
+
* Zero-based index of the column this header cell belongs to. Used to highlight every other column, starting with the first.
|
|
1164
|
+
*/
|
|
1165
|
+
columnIndex?: number;
|
|
1166
|
+
/**
|
|
1167
|
+
* Optional promotional text displayed in a branded banner above the column label.
|
|
1168
|
+
*/
|
|
1169
|
+
promoted?: string;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
declare const Cell: React$1.FC<CellProps>;
|
|
1173
|
+
interface CellProps {
|
|
1174
|
+
/**
|
|
1175
|
+
* Content rendered inside the content cell (text or an Arc primitive such as a tick/cross).
|
|
1176
|
+
*/
|
|
1177
|
+
children?: React$1.ReactNode;
|
|
1178
|
+
/**
|
|
1179
|
+
* Zero-based index of the column this cell belongs to. Used to highlight every other column, starting with the first.
|
|
1180
|
+
*/
|
|
1181
|
+
columnIndex?: number;
|
|
1182
|
+
/**
|
|
1183
|
+
* Whether this cell sits in the last row of the table. Highlighted cells in the last row get rounded bottom corners.
|
|
1184
|
+
*/
|
|
1185
|
+
isLastRow?: boolean;
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
declare const ControlCell: React$1.FC<ControlCellProps>;
|
|
1189
|
+
interface ControlCellProps {
|
|
1190
|
+
/**
|
|
1191
|
+
* Control content rendered for this column.
|
|
1192
|
+
*/
|
|
1193
|
+
children?: React$1.ReactNode;
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
export { Accordion, ActionTile, ArticleCarousel, ArticleSidebar, Author, BannerWithTabs, BusinessSegmentSwitcher, Cell, ComparisonTable, ContentInfoWidget, ControlCell, CopyLead, DownloadList, FAQs, FeatureCell, FeaturePost, HeaderBarNotification, HeaderCell, Highlights, InlineLinkGroup, LinkTile, PartnerBrandLogos, ProductCard, ProductCardBenefits, ProductCardGrid, ProductCardPrice, ProductCardPriceIncrease, ProductNavigation, PromoListing, PromoListingThumbnailSignpost, Quote, SectionHeading, Statistics, SubHeaderCell, Summary, ThumbnailSignpost, VideoHeroCard, VideoPortraitCard };
|
|
1197
|
+
export type { AccordionProps, ActionTileProps, ArticleCarouselProps, ArticleSidebarProps, AuthorProps, BannerWithTabsProps, BentoGridContent, BentoInformationCard, BentoMediaCard, BusinessSegmentSwitcherProps, CellProps, ComparisonColumn, ComparisonRow, ComparisonSection, ComparisonSubRow, ComparisonTableProps, ContentInfoWidgetProps, ControlCellProps, CopyLeadProps, DownloadListProps, FAQsProps, FeatureCellProps, FeaturePostProps, HeaderBarNotificationProps, HeaderCellProps, HighlightsProps, InlineLinkGroupItem, InlineLinkGroupProps, LinkTileProps, ListProps, LogoTileItem, PartnerBrandLogosProps, PartnerLogosSubgroup, ProductCardBenefitsProps, ProductCardGridProps, ProductCardPriceIncreaseProps, ProductCardPriceProps, ProductCardProps, ProductNavigationProps, PromoListingProps, PromoListingThumbnailSignpostProps, QuoteProps, SectionHeadingProps, StatisticsProps, SubHeaderCellProps, SummaryProps, Tab, ThumbnailSignpostProps, VideoHeroCardProps, VideoPortraitCardProps };
|
package/lib/index.d.mts
CHANGED
|
@@ -281,7 +281,8 @@ interface FeaturePostAppButtonFooter {
|
|
|
281
281
|
|
|
282
282
|
interface FeaturePostCtaFooter {
|
|
283
283
|
type: "cta";
|
|
284
|
-
|
|
284
|
+
/** CTA button options. The button style defaults to `secondary`. */
|
|
285
|
+
button: Pick<ButtonV2Props, "label" | "onClick" | "href" | "target" | "ariaLabel" | "buttonStyle">;
|
|
285
286
|
author?: AuthorProps;
|
|
286
287
|
}
|
|
287
288
|
|
|
@@ -375,26 +376,8 @@ interface HighlightsProps extends Omit<SectionHeadingProps, "isPadded"> {
|
|
|
375
376
|
* Optional CTA rendered at the end of Highlights.
|
|
376
377
|
* Only ONE CTA is allowed.
|
|
377
378
|
*/
|
|
378
|
-
cta?:
|
|
379
|
+
cta?: ButtonV2Props;
|
|
379
380
|
}
|
|
380
|
-
/**
|
|
381
|
-
* CTA configuration for Highlights
|
|
382
|
-
*/
|
|
383
|
-
type HighlightsCTAProps = Pick<ButtonV2Props, "label" | "href" | "onClick" | "iconPosition" | "ariaLabel" | "target"> & {
|
|
384
|
-
/**
|
|
385
|
-
* Allowed button styles only.
|
|
386
|
-
* Primary is intentionally NOT supported.
|
|
387
|
-
*/
|
|
388
|
-
buttonStyle: "secondary" | "compact";
|
|
389
|
-
/**
|
|
390
|
-
* Icon override & Active icon override
|
|
391
|
-
* - undefined → uses default BtIconArrowRightFill for compact style
|
|
392
|
-
* - null → icon disabled
|
|
393
|
-
* - string → custom icon
|
|
394
|
-
*/
|
|
395
|
-
icon?: string | null;
|
|
396
|
-
iconActive?: string | null;
|
|
397
|
-
};
|
|
398
381
|
|
|
399
382
|
/**
|
|
400
383
|
* Use `PromoListing` to give supporting information about a page or proposition in the form of the card components (`ImpactCard`, `InformationCard`, `MediaCard` and `TypographyCard`).
|
|
@@ -980,6 +963,8 @@ interface ProductCardPriceIncreaseProps {
|
|
|
980
963
|
headingLevel?: HeadingLevel;
|
|
981
964
|
/** List of price increase entries (e.g. ["£48.99 by April 2027"]) */
|
|
982
965
|
items: string[];
|
|
966
|
+
/** Optional prop to hide the left border */
|
|
967
|
+
hideBorder?: boolean;
|
|
983
968
|
}
|
|
984
969
|
|
|
985
970
|
declare const ProductCardPrice: React$1.FC<ProductCardPriceProps>;
|
|
@@ -1002,5 +987,211 @@ interface ProductCardGridProps extends Omit<SectionHeadingProps, "isPadded" | "i
|
|
|
1002
987
|
hideTabs?: boolean;
|
|
1003
988
|
}
|
|
1004
989
|
|
|
1005
|
-
|
|
1006
|
-
|
|
990
|
+
declare const SubHeaderCell: React$1.FC<SubHeaderCellProps>;
|
|
991
|
+
interface SubHeaderCellProps {
|
|
992
|
+
/**
|
|
993
|
+
* Price shown at the top of the sub-header cell (prefix, value, suffix).
|
|
994
|
+
*/
|
|
995
|
+
price: ProductCardPriceProps;
|
|
996
|
+
/**
|
|
997
|
+
* Optional upcoming price-increase details rendered beneath the price.
|
|
998
|
+
*/
|
|
999
|
+
priceIncrease?: ProductCardPriceIncreaseProps;
|
|
1000
|
+
/**
|
|
1001
|
+
* Optional call-to-action button rendered at the bottom of the cell. Rendered full-width.
|
|
1002
|
+
*/
|
|
1003
|
+
button?: ButtonV2Props;
|
|
1004
|
+
/**
|
|
1005
|
+
* Zero-based index of the column this cell belongs to. Used to highlight every other column, starting with the first.
|
|
1006
|
+
*/
|
|
1007
|
+
columnIndex?: number;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
interface ComparisonColumn {
|
|
1011
|
+
/**
|
|
1012
|
+
* Stable identifier for the column; used as a React key.
|
|
1013
|
+
*/
|
|
1014
|
+
id: string;
|
|
1015
|
+
/**
|
|
1016
|
+
* Visible label rendered in the column header cell (e.g. a plan name).
|
|
1017
|
+
*/
|
|
1018
|
+
label: string;
|
|
1019
|
+
/**
|
|
1020
|
+
* Optional promotional text displayed in a branded banner above the column
|
|
1021
|
+
* header label. When set, the banner is rendered inside the header cell with
|
|
1022
|
+
* a dark brand background.
|
|
1023
|
+
*/
|
|
1024
|
+
promoted?: string;
|
|
1025
|
+
/**
|
|
1026
|
+
* Optional sub-header content (price, upcoming price increase, call-to-action) rendered in a row beneath the header. When any column defines this, the sub-header row is shown.
|
|
1027
|
+
*/
|
|
1028
|
+
subheader?: SubHeaderCellProps;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
interface ComparisonSubRow {
|
|
1032
|
+
/**
|
|
1033
|
+
* One cell per column, in the same order as `columns`. Length MUST equal columns.length.
|
|
1034
|
+
*/
|
|
1035
|
+
cells: React$1.ReactNode[];
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
declare const FeatureCell: React$1.FC<FeatureCellProps>;
|
|
1039
|
+
interface FeatureCellProps {
|
|
1040
|
+
/**
|
|
1041
|
+
* Icon shown alongside the package name.
|
|
1042
|
+
*/
|
|
1043
|
+
icon: string;
|
|
1044
|
+
/**
|
|
1045
|
+
* Package / plan title.
|
|
1046
|
+
*/
|
|
1047
|
+
title: string;
|
|
1048
|
+
/**
|
|
1049
|
+
* Optional supporting copy shown beneath the title.
|
|
1050
|
+
*/
|
|
1051
|
+
description?: string;
|
|
1052
|
+
/**
|
|
1053
|
+
* Optional popover content shown when the user interacts with the info icon.
|
|
1054
|
+
*/
|
|
1055
|
+
popoverContent?: string | React$1.ReactNode;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
interface ComparisonRow {
|
|
1059
|
+
/**
|
|
1060
|
+
* Feature label rendered as the row's full-width header, spanning all columns above the content row(s).
|
|
1061
|
+
*/
|
|
1062
|
+
feature: FeatureCellProps;
|
|
1063
|
+
/**
|
|
1064
|
+
* One cell per column for the row's primary content row, in the same order as `columns`. Length MUST equal columns.length.
|
|
1065
|
+
*/
|
|
1066
|
+
cells: React$1.ReactNode[];
|
|
1067
|
+
/**
|
|
1068
|
+
* Optional additional content rows rendered beneath the primary row, for the less common case where a feature spans multiple rows.
|
|
1069
|
+
*/
|
|
1070
|
+
subRows?: ComparisonSubRow[];
|
|
1071
|
+
/**
|
|
1072
|
+
* Id of the `ComparisonSection` this row belongs to. Omit to render the row before all sections. An id with no matching section logs a dev warning and renders the row unsectioned.
|
|
1073
|
+
*/
|
|
1074
|
+
sectionId?: string;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
interface ComparisonSection {
|
|
1078
|
+
/**
|
|
1079
|
+
* Stable identifier for the section; used as a React key and to link the toggle to its content region for accessibility.
|
|
1080
|
+
*/
|
|
1081
|
+
id: string;
|
|
1082
|
+
/**
|
|
1083
|
+
* Heading shown in the section's toggle button.
|
|
1084
|
+
*/
|
|
1085
|
+
heading: React$1.ReactNode;
|
|
1086
|
+
/**
|
|
1087
|
+
* Heading level for the section heading, for correct document outline. Defaults to a sensible level.
|
|
1088
|
+
*/
|
|
1089
|
+
headingLevel?: HeadingLevel;
|
|
1090
|
+
/**
|
|
1091
|
+
* Initial open state when the section is uncontrolled. Defaults to `false`.
|
|
1092
|
+
*/
|
|
1093
|
+
defaultOpen?: boolean;
|
|
1094
|
+
/**
|
|
1095
|
+
* Controlled open state. When provided, the section is controlled and `onOpenChange` should update it.
|
|
1096
|
+
*/
|
|
1097
|
+
open?: boolean;
|
|
1098
|
+
/**
|
|
1099
|
+
* Called with the next open state when the toggle is activated. Required for controlled usage; optional otherwise.
|
|
1100
|
+
*/
|
|
1101
|
+
onOpenChange?: (open: boolean) => void;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
declare const ComparisonTable: React$1.FC<ComparisonTableProps>;
|
|
1105
|
+
interface ComparisonTableProps {
|
|
1106
|
+
/**
|
|
1107
|
+
* Column definitions driving the header cells and the number of content cells
|
|
1108
|
+
* per row. Each `ComparisonColumn` has:
|
|
1109
|
+
*
|
|
1110
|
+
* - `id` (`string`) — Stable identifier; used as a React key.
|
|
1111
|
+
* - `label` (`string`) — Visible text in the column header (e.g. a plan name).
|
|
1112
|
+
* - `promoted` (`string`, optional) — Promotional banner text shown above the label in a branded Surface.
|
|
1113
|
+
* - `subheader` (`SubHeaderCellProps`, optional) — Price, price-increase items, and a CTA button rendered in a row beneath the header.
|
|
1114
|
+
*/
|
|
1115
|
+
columns: ComparisonColumn[];
|
|
1116
|
+
/**
|
|
1117
|
+
* All rows. Rows without `sectionId` render first, before any sections. Rows
|
|
1118
|
+
* with a `sectionId` render inside the matching section, in input order. On
|
|
1119
|
+
* mobile each row is a full-width feature header above its content row(s); on
|
|
1120
|
+
* desktop the feature becomes the left-hand column of the row. Each
|
|
1121
|
+
* `ComparisonRow` has:
|
|
1122
|
+
*
|
|
1123
|
+
* - `feature` (`FeatureCellProps`) — Icon, title, description, and optional popover for the feature label.
|
|
1124
|
+
* - `cells` (`ReactNode[]`) — One cell per column, in the same order as `columns`. Supports strings or rich ReactNode content (e.g. tick/cross icons).
|
|
1125
|
+
* - `subRows` (`ComparisonSubRow[]`, optional) — Additional content rows beneath the primary row, for features spanning multiple rows.
|
|
1126
|
+
* - `sectionId` (`string`, optional) — Id of the section the row belongs to. An unknown id logs a dev warning and the row renders unsectioned.
|
|
1127
|
+
*/
|
|
1128
|
+
rows?: ComparisonRow[];
|
|
1129
|
+
/**
|
|
1130
|
+
* Section metadata only. Sections render in array order, after unsectioned
|
|
1131
|
+
* rows, each with a full-width toggle that expands or collapses the rows whose
|
|
1132
|
+
* `sectionId` matches. A section with no matching rows is hidden. Each `ComparisonSection` has:
|
|
1133
|
+
*
|
|
1134
|
+
* - `id` (`string`) — Stable identifier; used as a React key and for accessibility linking.
|
|
1135
|
+
* - `heading` (`ReactNode`) — Text shown in the section's toggle button.
|
|
1136
|
+
* - `headingLevel` (`HeadingLevel`, optional) — Semantic heading level for the document outline.
|
|
1137
|
+
* - `defaultOpen` (`boolean`, optional) — Initial open state when uncontrolled. Defaults to `false`.
|
|
1138
|
+
* - `open` (`boolean`, optional) — Controlled open state.
|
|
1139
|
+
* - `onOpenChange` (`(open: boolean) => void`, optional) — Callback for controlled usage.
|
|
1140
|
+
*/
|
|
1141
|
+
sections?: ComparisonSection[];
|
|
1142
|
+
/**
|
|
1143
|
+
* Optional controls. On mobile they render in a full-width cell beneath the header; on desktop they render in the left-hand feature column beside the sub-header. Omit to hide the control row entirely.
|
|
1144
|
+
*/
|
|
1145
|
+
controls?: React$1.ReactNode;
|
|
1146
|
+
/**
|
|
1147
|
+
* When `true`, wraps the table in a rounded, clipped container with an inset shadow overlay border. Defaults to `false`.
|
|
1148
|
+
*/
|
|
1149
|
+
hasBorder?: boolean;
|
|
1150
|
+
/**
|
|
1151
|
+
* When `true`, the desktop column header row sticks to the top of the scroll container as the body scrolls. Defaults to `false`.
|
|
1152
|
+
*/
|
|
1153
|
+
hasStickyHeader?: boolean;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
declare const HeaderCell: React$1.FC<HeaderCellProps>;
|
|
1157
|
+
interface HeaderCellProps {
|
|
1158
|
+
/**
|
|
1159
|
+
* Content rendered inside the column header cell (typically a column label).
|
|
1160
|
+
*/
|
|
1161
|
+
children?: string;
|
|
1162
|
+
/**
|
|
1163
|
+
* Zero-based index of the column this header cell belongs to. Used to highlight every other column, starting with the first.
|
|
1164
|
+
*/
|
|
1165
|
+
columnIndex?: number;
|
|
1166
|
+
/**
|
|
1167
|
+
* Optional promotional text displayed in a branded banner above the column label.
|
|
1168
|
+
*/
|
|
1169
|
+
promoted?: string;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
declare const Cell: React$1.FC<CellProps>;
|
|
1173
|
+
interface CellProps {
|
|
1174
|
+
/**
|
|
1175
|
+
* Content rendered inside the content cell (text or an Arc primitive such as a tick/cross).
|
|
1176
|
+
*/
|
|
1177
|
+
children?: React$1.ReactNode;
|
|
1178
|
+
/**
|
|
1179
|
+
* Zero-based index of the column this cell belongs to. Used to highlight every other column, starting with the first.
|
|
1180
|
+
*/
|
|
1181
|
+
columnIndex?: number;
|
|
1182
|
+
/**
|
|
1183
|
+
* Whether this cell sits in the last row of the table. Highlighted cells in the last row get rounded bottom corners.
|
|
1184
|
+
*/
|
|
1185
|
+
isLastRow?: boolean;
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
declare const ControlCell: React$1.FC<ControlCellProps>;
|
|
1189
|
+
interface ControlCellProps {
|
|
1190
|
+
/**
|
|
1191
|
+
* Control content rendered for this column.
|
|
1192
|
+
*/
|
|
1193
|
+
children?: React$1.ReactNode;
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
export { Accordion, ActionTile, ArticleCarousel, ArticleSidebar, Author, BannerWithTabs, BusinessSegmentSwitcher, Cell, ComparisonTable, ContentInfoWidget, ControlCell, CopyLead, DownloadList, FAQs, FeatureCell, FeaturePost, HeaderBarNotification, HeaderCell, Highlights, InlineLinkGroup, LinkTile, PartnerBrandLogos, ProductCard, ProductCardBenefits, ProductCardGrid, ProductCardPrice, ProductCardPriceIncrease, ProductNavigation, PromoListing, PromoListingThumbnailSignpost, Quote, SectionHeading, Statistics, SubHeaderCell, Summary, ThumbnailSignpost, VideoHeroCard, VideoPortraitCard };
|
|
1197
|
+
export type { AccordionProps, ActionTileProps, ArticleCarouselProps, ArticleSidebarProps, AuthorProps, BannerWithTabsProps, BentoGridContent, BentoInformationCard, BentoMediaCard, BusinessSegmentSwitcherProps, CellProps, ComparisonColumn, ComparisonRow, ComparisonSection, ComparisonSubRow, ComparisonTableProps, ContentInfoWidgetProps, ControlCellProps, CopyLeadProps, DownloadListProps, FAQsProps, FeatureCellProps, FeaturePostProps, HeaderBarNotificationProps, HeaderCellProps, HighlightsProps, InlineLinkGroupItem, InlineLinkGroupProps, LinkTileProps, ListProps, LogoTileItem, PartnerBrandLogosProps, PartnerLogosSubgroup, ProductCardBenefitsProps, ProductCardGridProps, ProductCardPriceIncreaseProps, ProductCardPriceProps, ProductCardProps, ProductNavigationProps, PromoListingProps, PromoListingThumbnailSignpostProps, QuoteProps, SectionHeadingProps, StatisticsProps, SubHeaderCellProps, SummaryProps, Tab, ThumbnailSignpostProps, VideoHeroCardProps, VideoPortraitCardProps };
|