@thecb/components 5.3.4 → 5.6.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/dist/index.cjs.js CHANGED
@@ -12146,7 +12146,7 @@ var Motion = function Motion(_ref) {
12146
12146
  var ReelStyled = styled__default.div.withConfig({
12147
12147
  displayName: "Reelstyled__ReelStyled",
12148
12148
  componentId: "sc-bhf05j-0"
12149
- })(["display:flex;overflow-x:", ";padding:", ";height:", ";justify-content:", ";> * + *{margin-left:", ";}> *{flex:0 0 ", ";}"], function (_ref) {
12149
+ })(["display:flex;overflow-x:", ";padding:", ";height:", ";justify-content:", ";> * + *{margin-left:", ";}> *{flex:0 0 ", ";}", ""], function (_ref) {
12150
12150
  var disableScroll = _ref.disableScroll;
12151
12151
  return disableScroll ? "hidden" : "auto";
12152
12152
  }, function (_ref2) {
@@ -12164,9 +12164,18 @@ var ReelStyled = styled__default.div.withConfig({
12164
12164
  }, function (_ref6) {
12165
12165
  var childWidth = _ref6.childWidth;
12166
12166
  return childWidth;
12167
+ }, function (_ref7) {
12168
+ var useOrderedList = _ref7.useOrderedList,
12169
+ useUnorderedList = _ref7.useUnorderedList;
12170
+ return useOrderedList || useUnorderedList ? "\n margin: 0;\n margin-block-start: 0;\n margin-block-end: 0;\n padding-inline-start: 0;\n list-style-type: none;\n " : "";
12167
12171
  });
12168
12172
 
12169
- var _excluded$g = ["childGap", "height", "childWidth", "padding", "justifyContent", "disableScroll", "children"];
12173
+ var _excluded$g = ["childGap", "height", "childWidth", "padding", "justifyContent", "disableScroll", "useOrderedList", "useUnorderedList", "children"];
12174
+ /*
12175
+ Safari has a bug where it refuses to recognize <ul /> tags as lists when list-style: none is used
12176
+ This affects the apple voice over (mainly used on iOS devices)
12177
+ The solution is to explicitly include "role=List"
12178
+ */
12170
12179
 
12171
12180
  var Reel = function Reel(_ref) {
12172
12181
  var _ref$childGap = _ref.childGap,
@@ -12181,17 +12190,27 @@ var Reel = function Reel(_ref) {
12181
12190
  justifyContent = _ref$justifyContent === void 0 ? "flex-start" : _ref$justifyContent,
12182
12191
  _ref$disableScroll = _ref.disableScroll,
12183
12192
  disableScroll = _ref$disableScroll === void 0 ? false : _ref$disableScroll,
12193
+ _ref$useOrderedList = _ref.useOrderedList,
12194
+ useOrderedList = _ref$useOrderedList === void 0 ? false : _ref$useOrderedList,
12195
+ _ref$useUnorderedList = _ref.useUnorderedList,
12196
+ useUnorderedList = _ref$useUnorderedList === void 0 ? false : _ref$useUnorderedList,
12184
12197
  children = _ref.children,
12185
12198
  rest = _objectWithoutProperties(_ref, _excluded$g);
12186
12199
 
12200
+ var elementType = useOrderedList ? "ol" : useUnorderedList ? "ul" : "div";
12187
12201
  return /*#__PURE__*/React__default.createElement(ReelStyled, _extends({
12188
12202
  childGap: childGap,
12189
12203
  height: height,
12190
12204
  childWidth: childWidth,
12191
12205
  padding: padding,
12192
12206
  justifyContent: justifyContent,
12193
- disableScroll: disableScroll
12194
- }, rest), safeChildren(children, /*#__PURE__*/React__default.createElement(React.Fragment, null)));
12207
+ disableScroll: disableScroll,
12208
+ as: elementType,
12209
+ useOrderedList: useOrderedList,
12210
+ useUnorderedList: useUnorderedList
12211
+ }, rest, {
12212
+ role: useOrderedList || useUnorderedList ? "list" : "section"
12213
+ }), safeChildren(children, /*#__PURE__*/React__default.createElement(React.Fragment, null)));
12195
12214
  };
12196
12215
 
12197
12216
  /*
@@ -16995,7 +17014,7 @@ var Breadcrumbs = function Breadcrumbs(_ref) {
16995
17014
  return /*#__PURE__*/React__default.createElement(React.Fragment, {
16996
17015
  key: "breadcrumb-".concat(linkText)
16997
17016
  }, /*#__PURE__*/React__default.createElement(InternalLink, {
16998
- "aria-current": index === breadcrumbsList.length - 1 && "location",
17017
+ "aria-current": index === breadcrumbsList.length - 1 ? "location" : "",
16999
17018
  to: linkDestination,
17000
17019
  active: isActive.toString(),
17001
17020
  color: themeValues.color,
@@ -17004,7 +17023,7 @@ var Breadcrumbs = function Breadcrumbs(_ref) {
17004
17023
  fontWeight: themeValues.fontWeight,
17005
17024
  margin: themeValues.margin,
17006
17025
  extraStyles: "\n text-transform: uppercase;\n ".concat(isActive.toString() === "true" && "pointer-events: none;\n color: ".concat(themeValues.activeBreadcrumbColor, ";\n "), "\n &:first-child {\n margin-left: 0;\n }\n &:active {\n color: ").concat(themeValues.activeColor, "; \n }")
17007
- }, linkText), index < breadcrumbsList.length - 1 && /*#__PURE__*/React__default.createElement(IconChevron, null));
17026
+ }, linkText), index < breadcrumbsList.length - 1 ? /*#__PURE__*/React__default.createElement(IconChevron, null) : /*#__PURE__*/React__default.createElement(React.Fragment, null));
17008
17027
  })));
17009
17028
  };
17010
17029
 
@@ -35188,6 +35207,8 @@ var fallbackValues$v = {
35188
35207
  };
35189
35208
 
35190
35209
  var CollapsibleSection = function CollapsibleSection(_ref) {
35210
+ var _label$replaceAll;
35211
+
35191
35212
  var isOpen = _ref.isOpen,
35192
35213
  toggleSection = _ref.toggleSection,
35193
35214
  themeValues = _ref.themeValues,
@@ -35206,7 +35227,11 @@ var CollapsibleSection = function CollapsibleSection(_ref) {
35206
35227
  stackTitle = _ref$stackTitle === void 0 ? false : _ref$stackTitle,
35207
35228
  stackTitleContent = _ref.stackTitleContent,
35208
35229
  _ref$sectionGap = _ref.sectionGap,
35209
- sectionGap = _ref$sectionGap === void 0 ? "0.5rem" : _ref$sectionGap;
35230
+ sectionGap = _ref$sectionGap === void 0 ? "0.5rem" : _ref$sectionGap,
35231
+ _ref$name = _ref.name,
35232
+ name = _ref$name === void 0 ? "" : _ref$name,
35233
+ _ref$index = _ref.index,
35234
+ index = _ref$index === void 0 ? 1 : _ref$index;
35210
35235
 
35211
35236
  var handleKeyDown = function handleKeyDown(e) {
35212
35237
  if (e.keyCode === 13) {
@@ -35215,6 +35240,8 @@ var CollapsibleSection = function CollapsibleSection(_ref) {
35215
35240
  };
35216
35241
 
35217
35242
  var numChildren = typeof children === "Array" ? children.length : 1;
35243
+ var label = name !== "" ? name : !customTitle ? title : "collapsible section";
35244
+ var id = "".concat(label === null || label === void 0 ? void 0 : (_label$replaceAll = label.replaceAll(" ", "-")) === null || _label$replaceAll === void 0 ? void 0 : _label$replaceAll.toLowerCase(), "-").concat(index);
35218
35245
  var wrapper = {
35219
35246
  open: {
35220
35247
  height: openHeight,
@@ -35250,6 +35277,11 @@ var CollapsibleSection = function CollapsibleSection(_ref) {
35250
35277
  positionTransition: true
35251
35278
  }, stackTitle && /*#__PURE__*/React__default.createElement(React.Fragment, null, stackTitleContent), /*#__PURE__*/React__default.createElement(Stack, {
35252
35279
  childGap: isOpen && !isMobile ? sectionGap : "0rem"
35280
+ }, /*#__PURE__*/React__default.createElement(Box, {
35281
+ padding: "0",
35282
+ role: "heading",
35283
+ "aria-label": label,
35284
+ "aria-level": 3
35253
35285
  }, /*#__PURE__*/React__default.createElement(Box, {
35254
35286
  padding: customPadding ? customPadding : "0",
35255
35287
  background: themeValues.headingBackgroundColor,
@@ -35259,22 +35291,26 @@ var CollapsibleSection = function CollapsibleSection(_ref) {
35259
35291
  hoverStyles: "cursor: pointer;",
35260
35292
  tabIndex: "0",
35261
35293
  onKeyDown: handleKeyDown,
35262
- extraStyles: "z-index: 25;"
35294
+ extraStyles: "z-index: 25;",
35295
+ role: "button",
35296
+ "aria-expanded": isOpen.toString(),
35297
+ "aria-controls": id,
35298
+ id: "".concat(id, "-button")
35263
35299
  }, /*#__PURE__*/React__default.createElement(Cluster, {
35264
35300
  justify: "space-between",
35265
35301
  align: "center"
35266
35302
  }, customTitle ? /*#__PURE__*/React__default.createElement(Box, {
35267
35303
  width: "calc(100% - 36px)",
35268
35304
  padding: "0px"
35269
- }, title) : /*#__PURE__*/React__default.createElement(Heading$1, {
35270
- variant: "h6",
35305
+ }, title) : /*#__PURE__*/React__default.createElement(Title$1, {
35271
35306
  weight: FONT_WEIGHT_SEMIBOLD,
35272
35307
  color: themeValues.titleColor,
35273
- as: "h6"
35308
+ as: "h6",
35309
+ variant: "small"
35274
35310
  }, title), /*#__PURE__*/React__default.createElement(Motion, {
35275
35311
  variants: icon,
35276
35312
  extraStyles: "display: flex; align-items: center;"
35277
- }, /*#__PURE__*/React__default.createElement(ChevronIcon$1, null)))), /*#__PURE__*/React__default.createElement(AnimatePresence, {
35313
+ }, /*#__PURE__*/React__default.createElement(ChevronIcon$1, null))))), /*#__PURE__*/React__default.createElement(AnimatePresence, {
35278
35314
  initial: false
35279
35315
  }, isOpen && /*#__PURE__*/React__default.createElement(Motion, {
35280
35316
  padding: "0",
@@ -35284,7 +35320,10 @@ var CollapsibleSection = function CollapsibleSection(_ref) {
35284
35320
  initial: initiallyOpen ? "open" : "closed",
35285
35321
  exit: "closed",
35286
35322
  variants: wrapper,
35287
- extraStyles: "transform-origin: 100% 0; overflow-y: hidden;"
35323
+ extraStyles: "transform-origin: 100% 0; overflow-y: hidden;",
35324
+ id: "".concat(id, "-content"),
35325
+ role: "region",
35326
+ "aria-labelledby": "".concat(id, "-button")
35288
35327
  }, children))));
35289
35328
  };
35290
35329
 
@@ -35395,18 +35434,23 @@ var EditableList = function EditableList(_ref) {
35395
35434
  Modal = _ref.modal,
35396
35435
  modalProps = _ref.modalProps,
35397
35436
  autoPayMethods = _ref.autoPayMethods,
35437
+ _ref$as = _ref.as,
35438
+ as = _ref$as === void 0 ? "p" : _ref$as,
35398
35439
  qaPrefix = _ref.qaPrefix;
35440
+ var addText = "Add a".concat(itemName[0].match(/[aieouAIEOU]/) ? "n" : "", " ").concat(itemName);
35399
35441
  return /*#__PURE__*/React__default.createElement(Box, {
35400
- padding: "0rem 0rem 1.5rem 0rem"
35442
+ padding: "0rem 0rem 1.5rem 0rem",
35443
+ as: "section",
35444
+ "aria-labelledby": "li"
35401
35445
  }, /*#__PURE__*/React__default.createElement(Stack, {
35402
35446
  childGap: "0rem"
35403
35447
  }, title !== "" && /*#__PURE__*/React__default.createElement(Box, {
35404
35448
  padding: "0rem 0rem 0.5rem 0rem"
35405
- }, /*#__PURE__*/React__default.createElement(Paragraph$1, {
35406
- variant: "pL",
35449
+ }, /*#__PURE__*/React__default.createElement(Title$1, {
35450
+ as: as,
35407
35451
  weight: titleWeight,
35408
35452
  color: CHARADE_GREY,
35409
- extraStyles: "letter-spacing: 0.29px;"
35453
+ extraStyles: "letter-spacing: 0.29px; font-size: 1.125rem;"
35410
35454
  }, title)), /*#__PURE__*/React__default.createElement(Box, {
35411
35455
  padding: "0",
35412
35456
  borderRadius: "4px",
@@ -35451,7 +35495,8 @@ var EditableList = function EditableList(_ref) {
35451
35495
  action: function action() {
35452
35496
  return removeItem(item.id);
35453
35497
  },
35454
- extraStyles: "min-width: 0;"
35498
+ extraStyles: "min-width: 0;",
35499
+ "aria-label": "Remove ".concat(itemName)
35455
35500
  })), canEdit && /*#__PURE__*/React__default.createElement(Box, {
35456
35501
  padding: "0 0.5rem",
35457
35502
  border: "2px solid transparent",
@@ -35464,14 +35509,16 @@ var EditableList = function EditableList(_ref) {
35464
35509
  action: function action() {
35465
35510
  return editItem(item.id);
35466
35511
  },
35467
- extraStyles: "min-width: 0;"
35512
+ extraStyles: "min-width: 0;",
35513
+ "aria-label": "Edit ".concat(itemName)
35468
35514
  }))));
35469
35515
  })), canAdd && (!maxItems || items.length < maxItems) && /*#__PURE__*/React__default.createElement(Box, {
35470
35516
  padding: items.length === 0 ? "0" : "1rem 0 0"
35471
35517
  }, /*#__PURE__*/React__default.createElement(Placeholder$1, {
35472
- text: "Add a".concat(itemName[0].match(/[aieouAIEOU]/) ? "n" : "", " ").concat(itemName),
35518
+ text: addText,
35473
35519
  action: addItem,
35474
- dataQa: "Add " + qaPrefix
35520
+ dataQa: "Add " + qaPrefix,
35521
+ "aria-label": addText
35475
35522
  }))));
35476
35523
  };
35477
35524
 
@@ -35738,7 +35785,11 @@ var HighlightTabRow = function HighlightTabRow(_ref) {
35738
35785
  var tabs = _ref.tabs,
35739
35786
  highlightIndex = _ref.highlightIndex,
35740
35787
  themeValues = _ref.themeValues,
35741
- isMobile = _ref.isMobile;
35788
+ isMobile = _ref.isMobile,
35789
+ _ref$useOrderedList = _ref.useOrderedList,
35790
+ useOrderedList = _ref$useOrderedList === void 0 ? true : _ref$useOrderedList,
35791
+ _ref$useUnorderedList = _ref.useUnorderedList,
35792
+ useUnorderedList = _ref$useUnorderedList === void 0 ? false : _ref$useUnorderedList;
35742
35793
  var itemsAfterIndex = tabs.slice(highlightIndex).length - 1;
35743
35794
  var itemsBeforeIndex = tabs.slice(0, highlightIndex).length;
35744
35795
  var boxesBefore = itemsAfterIndex > itemsBeforeIndex && isMobile ? itemsAfterIndex - itemsBeforeIndex : 0;
@@ -35757,14 +35808,18 @@ var HighlightTabRow = function HighlightTabRow(_ref) {
35757
35808
  childGap: "4.5rem",
35758
35809
  childWidth: "11rem",
35759
35810
  justifyContent: "space-evenly",
35760
- disableScroll: true
35811
+ disableScroll: true,
35812
+ useOrderedList: useOrderedList,
35813
+ useUnorderedList: useUnorderedList
35761
35814
  }, repeat( /*#__PURE__*/React__default.createElement(Box, null), boxesBefore), tabs.map(function (t, i) {
35762
35815
  return /*#__PURE__*/React__default.createElement(Box, {
35763
35816
  key: t,
35764
35817
  borderSize: "3px",
35765
35818
  borderColor: highlightIndex == i ? themeValues.textColor : "transparent",
35766
35819
  borderWidthOverride: "0 0 3px 0",
35767
- extraStyles: "text-align: center;"
35820
+ extraStyles: "text-align: center; display: block;",
35821
+ as: "li",
35822
+ "aria-current": highlightIndex == i ? "step" : ""
35768
35823
  }, /*#__PURE__*/React__default.createElement(Text$1, {
35769
35824
  variant: "p",
35770
35825
  textAlign: "center",
@@ -38917,6 +38972,17 @@ var fallbackValues$x = {
38917
38972
  backgroundColor: backgroundColor$6
38918
38973
  };
38919
38974
 
38975
+ /*
38976
+ New (01/22) - updated <Module /> to use <Title /> atom
38977
+ Because <Title /> decouples size from element, also gave <Module />
38978
+ two new props: "as" and "fontSize"
38979
+
38980
+ When present, <Module /> will use those values to dictate element type and font size.
38981
+
38982
+ For backwards compatability, <Module /> still computes a themed font size and element type based on old
38983
+ <Heading /> variants. If "fontSize" or "as" is undefined, <Module /> will use themed values.
38984
+ */
38985
+
38920
38986
  var Module = function Module(_ref) {
38921
38987
  var heading = _ref.heading,
38922
38988
  _ref$spacing = _ref.spacing,
@@ -38928,13 +38994,20 @@ var Module = function Module(_ref) {
38928
38994
  themeValues = _ref.themeValues,
38929
38995
  _ref$variant = _ref.variant,
38930
38996
  variant = _ref$variant === void 0 ? "default" : _ref$variant,
38997
+ fontSize = _ref.fontSize,
38998
+ as = _ref.as,
38931
38999
  children = _ref.children;
38932
- return /*#__PURE__*/React__default.createElement(React.Fragment, null, heading && /*#__PURE__*/React__default.createElement(Heading$1, {
38933
- variant: variant === "small" ? "h6" : variant === "default" ? "h5" : "h2",
39000
+ var themedFontSize = variant === "small" ? "1.25rem" : variant === "default" ? "1.375rem" : "2rem";
39001
+ var computedFontSize = fontSize || themedFontSize;
39002
+ var themedElemType = variant === "small" ? "h6" : variant === "default" ? "h5" : "h2";
39003
+ var computedElemType = as || themedElemType;
39004
+ return /*#__PURE__*/React__default.createElement(React.Fragment, null, heading && /*#__PURE__*/React__default.createElement(Title$1, {
38934
39005
  weight: themeValues.fontWeight,
38935
39006
  color: themeValues.fontColor,
38936
39007
  margin: "".concat(spacing, " 0 ").concat(themeValues.titleSpacing, " 0"),
38937
- textAlign: themeValues.textAlign
39008
+ textAlign: themeValues.textAlign,
39009
+ as: computedElemType,
39010
+ extraStyles: "font-size: ".concat(computedFontSize, ";")
38938
39011
  }, heading), /*#__PURE__*/React__default.createElement(Box, {
38939
39012
  padding: "0 0 ".concat(spacingBottom)
38940
39013
  }, /*#__PURE__*/React__default.createElement(Box, {
@@ -39806,7 +39879,8 @@ var Collapsible = function Collapsible(_ref2) {
39806
39879
  toggleSection: function toggleSection() {
39807
39880
  return setIsOpen(!isOpen);
39808
39881
  },
39809
- customTitle: true
39882
+ customTitle: true,
39883
+ name: "Collapsed Payment Details"
39810
39884
  }, /*#__PURE__*/React__default.createElement(Motion, {
39811
39885
  variants: {
39812
39886
  open: {
@@ -39915,19 +39989,21 @@ var PaymentDetails = function PaymentDetails(_ref4) {
39915
39989
  }, /*#__PURE__*/React__default.createElement(Cluster, {
39916
39990
  justify: "space-between",
39917
39991
  align: "center"
39918
- }, /*#__PURE__*/React__default.createElement(Heading$1, {
39919
- variant: "h5",
39920
- weight: "700",
39921
- as: "h1"
39922
- }, titleText), /*#__PURE__*/React__default.createElement(Heading$1, {
39923
- variant: "h5",
39924
- weight: "700",
39925
- as: "h1"
39926
- }, displayCurrency(total)))) : /*#__PURE__*/React__default.createElement(Heading$1, {
39992
+ }, /*#__PURE__*/React__default.createElement(Title$1, {
39993
+ weight: FONT_WEIGHT_BOLD,
39927
39994
  as: "h1",
39928
- variant: "h3",
39929
- weight: "700",
39930
- margin: "1rem 0 0 0"
39995
+ extraStyles: "font-size: 1.375rem;",
39996
+ id: "payment-details-title"
39997
+ }, titleText), /*#__PURE__*/React__default.createElement(Title$1, {
39998
+ weight: FONT_WEIGHT_BOLD,
39999
+ as: "p",
40000
+ extraStyles: "font-size: 1.375rem;"
40001
+ }, displayCurrency(total)))) : /*#__PURE__*/React__default.createElement(Title$1, {
40002
+ as: "h1",
40003
+ weight: FONT_WEIGHT_BOLD,
40004
+ margin: "1rem 0 0 0",
40005
+ extraStyles: "font-size: 1.75rem;",
40006
+ id: "payment-details-title"
39931
40007
  }, titleText);
39932
40008
  return isCollapsible ? /*#__PURE__*/React__default.createElement(Collapsible, {
39933
40009
  title: title,