@arc-ui/components 4.0.0 → 6.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/dist/index.js CHANGED
@@ -316,9 +316,9 @@ var Base = function (_a) {
316
316
  return (React__default["default"].createElement("div", __assign({ className: "arc".concat(brand ? " arc-".concat(brand) : "") }, filterDataAttrs(props)), children));
317
317
  };
318
318
 
319
- var defaultContext$2 = { surface: "light" };
320
- var Context$2 = React.createContext(defaultContext$2);
321
- var Provider$3 = Context$2.Provider;
319
+ var defaultContext$3 = { surface: "light" };
320
+ var Context$3 = React.createContext(defaultContext$3);
321
+ var Provider$4 = Context$3.Provider;
322
322
  /**
323
323
  * Use `Surface` to compose content using the Arc system.
324
324
  */
@@ -333,7 +333,7 @@ var Surface = function (_a) {
333
333
  background === "darker") {
334
334
  surface = "dark";
335
335
  }
336
- return (React__default["default"].createElement(Provider$3, { value: { surface: surface } },
336
+ return (React__default["default"].createElement(Provider$4, { value: { surface: surface } },
337
337
  React__default["default"].createElement("div", __assign({ className: classNames((_b = {
338
338
  "arc-Surface": true
339
339
  },
@@ -365,7 +365,7 @@ __spreadArray([], backgroundsShared, true);
365
365
  var BrandLogo = function (_a) {
366
366
  var _b;
367
367
  var _c = _a.color, color = _c === void 0 ? "auto" : _c, label = _a.label, _d = _a.size, size = _d === void 0 ? 34 : _d, subBrand = _a.subBrand, props = __rest(_a, ["color", "label", "size", "subBrand"]);
368
- var surface = React.useContext(Context$2).surface;
368
+ var surface = React.useContext(Context$3).surface;
369
369
  return (React__default["default"].createElement("div", __assign({ className: classNames((_b = {
370
370
  "arc-BrandLogo": true,
371
371
  "arc-BrandLogo--colorBrand": color === "brand",
@@ -643,7 +643,7 @@ const iconsSelected = [
643
643
  var Icon = function (_a) {
644
644
  var _b;
645
645
  var _c = _a.color, color = _c === void 0 ? "auto" : _c, icon = _a.icon, _d = _a.isInline, isInline = _d === void 0 ? false : _d, _e = _a.isSelected, isSelected = _e === void 0 ? false : _e, label = _a.label, size = _a.size, props = __rest(_a, ["color", "icon", "isInline", "isSelected", "label", "size"]);
646
- var surface = React.useContext(Context$2).surface;
646
+ var surface = React.useContext(Context$3).surface;
647
647
  return (React__default["default"].createElement("span", __assign({ "aria-label": label, className: classNames((_b = {},
648
648
  _b["arc-Icon"] = true,
649
649
  _b[suffixModifier("arc-Icon--color", color)] = color !== "auto",
@@ -661,8 +661,8 @@ var Icon = function (_a) {
661
661
  */
662
662
  var Button = React.forwardRef(function (_a, ref) {
663
663
  var _b;
664
- var ariaLabel = _a.ariaLabel, _c = _a.fill, fill = _c === void 0 ? "solid" : _c, href = _a.href, icon = _a.icon, _d = _a.iconPosition, iconPosition = _d === void 0 ? "afterText" : _d, id = _a.id, _e = _a.isDisabled, isDisabled = _e === void 0 ? false : _e, _f = _a.isDisplayBlock, isDisplayBlock = _f === void 0 ? false : _f, _g = _a.isFullWidth, isFullWidth = _g === void 0 ? false : _g, label = _a.label, onClick = _a.onClick, rel = _a.rel, target = _a.target, type = _a.type, props = __rest(_a, ["ariaLabel", "fill", "href", "icon", "iconPosition", "id", "isDisabled", "isDisplayBlock", "isFullWidth", "label", "onClick", "rel", "target", "type"]);
665
- var surface = React.useContext(Context$2).surface;
664
+ var ariaLabel = _a.ariaLabel, _c = _a.fill, fill = _c === void 0 ? "solid" : _c, href = _a.href, icon = _a.icon, _d = _a.iconPosition, iconPosition = _d === void 0 ? "afterText" : _d, id = _a.id, _e = _a.isDisabled, isDisabled = _e === void 0 ? false : _e, _f = _a.isDisplayBlock, isDisplayBlock = _f === void 0 ? false : _f, _g = _a.isFullWidth, isFullWidth = _g === void 0 ? false : _g, label = _a.label, onClick = _a.onClick, rel = _a.rel, supportingText = _a.supportingText, target = _a.target, type = _a.type, props = __rest(_a, ["ariaLabel", "fill", "href", "icon", "iconPosition", "id", "isDisabled", "isDisplayBlock", "isFullWidth", "label", "onClick", "rel", "supportingText", "target", "type"]);
665
+ var surface = React.useContext(Context$3).surface;
666
666
  var buttonClasses = classNames((_b = {
667
667
  "arc-Button": true,
668
668
  "arc-Button--displayBlock": isDisplayBlock
@@ -672,19 +672,23 @@ var Button = React.forwardRef(function (_a, ref) {
672
672
  _b[suffixModifier("arc-Button--icon", iconPosition.replace("icon", ""))] = (icon || fill === "flat") &&
673
673
  iconPosition &&
674
674
  iconPosition !== "afterText",
675
+ _b["arc-Button--hasSupportingText"] = supportingText,
675
676
  _b["arc-Button--onDarkSurface"] = surface === "dark",
676
677
  _b));
677
678
  var commonProps = __assign({ id: id, onClick: onClick, ref: ref }, filterDataAttrs(props));
679
+ var buttonText = supportingText ? (React__default["default"].createElement("span", null,
680
+ React__default["default"].createElement("span", { className: "arc-Button-text" }, label),
681
+ React__default["default"].createElement("span", { className: "arc-Button-supportingText" }, supportingText))) : (React__default["default"].createElement("span", { className: "arc-Button-text" }, label));
678
682
  var buttonIcon = icon || fill === "flat" ? (React__default["default"].createElement(ButtonIcon, { icon: icon, isChevron: !icon && fill === "flat", isBeforeText: iconPosition === "beforeText" })) : null;
679
683
  if (href && !isDisabled) {
680
684
  return (React__default["default"].createElement("a", __assign({}, commonProps, { "aria-label": ariaLabel, className: buttonClasses, href: href, rel: rel, target: target }),
681
685
  React__default["default"].createElement("span", { className: "arc-Button-inner" },
682
- React__default["default"].createElement("span", { className: "arc-Button-text" }, label),
686
+ buttonText,
683
687
  buttonIcon)));
684
688
  }
685
689
  return (React__default["default"].createElement("button", __assign({}, commonProps, { "aria-label": ariaLabel, className: buttonClasses, disabled: isDisabled, type: type }),
686
690
  React__default["default"].createElement("span", { className: "arc-Button-inner" },
687
- React__default["default"].createElement("span", { className: "arc-Button-text" }, label),
691
+ buttonText,
688
692
  buttonIcon)));
689
693
  });
690
694
  var ButtonIcon = function (_a) {
@@ -717,7 +721,7 @@ var Image = function (_a) {
717
721
  var Heading = function (_a) {
718
722
  var _b;
719
723
  var _c = _a.align, align = _c === void 0 ? "left" : _c, _d = _a.casing, casing = _d === void 0 ? "auto" : _d, children = _a.children, _e = _a.color, color = _e === void 0 ? "auto" : _e, level = _a.level, size = _a.size, _f = _a.typeface, typeface = _f === void 0 ? "default" : _f, props = __rest(_a, ["align", "casing", "children", "color", "level", "size", "typeface"]);
720
- var surface = React.useContext(Context$2).surface;
724
+ var surface = React.useContext(Context$3).surface;
721
725
  var Element = "span";
722
726
  if (level) {
723
727
  Element = "h".concat(level);
@@ -861,7 +865,7 @@ var useNumericInput = function (props) {
861
865
  var Card = function (_a) {
862
866
  var _b;
863
867
  var actionId = _a.actionId, _c = _a.actionLabel, actionLabel = _c === void 0 ? "Read more" : _c, children = _a.children, _d = _a.fill, fill = _d === void 0 ? "solid" : _d, href = _a.href, imageAlt = _a.imageAlt, imageSrc = _a.imageSrc, imageSrcSet = _a.imageSrcSet, imageHeight = _a.imageHeight, minHeight = _a.minHeight, target = _a.target, title = _a.title, _e = _a.titleSize, titleSize = _e === void 0 ? "s" : _e, props = __rest(_a, ["actionId", "actionLabel", "children", "fill", "href", "imageAlt", "imageSrc", "imageSrcSet", "imageHeight", "minHeight", "target", "title", "titleSize"]);
864
- var surface = React.useContext(Context$2).surface;
868
+ var surface = React.useContext(Context$3).surface;
865
869
  var interactionMode = useInteractionMode().interactionMode;
866
870
  var Wrapper = function (_a) {
867
871
  var children = _a.children;
@@ -920,7 +924,7 @@ Card.Image = CardImage;
920
924
  */
921
925
  var CardLink = function (_a) {
922
926
  var actionId = _a.actionId, isButton = _a.isButton, children = _a.children, fill = _a.fill, href = _a.href, stretch = _a.stretch, target = _a.target;
923
- var surface = React.useContext(Context$2).surface;
927
+ var surface = React.useContext(Context$3).surface;
924
928
  return (React__default["default"].createElement("a", { "aria-describedby": actionId, className: classNames({
925
929
  "arc-CardLink": true,
926
930
  "arc-CardLink--button": isButton,
@@ -932,38 +936,87 @@ var CardLink = function (_a) {
932
936
  React__default["default"].createElement(Icon, { icon: "btChevronRight2px", size: 8 })))));
933
937
  };
934
938
 
939
+ var defaultContext$2 = {
940
+ requirementStatus: null
941
+ };
942
+ var Context$2 = React.createContext(defaultContext$2);
943
+ var Provider$3 = Context$2.Provider;
944
+ /**
945
+ * Use `FormControl` to provide inputs with labels, helper text and error messages
946
+ */
947
+ var FormControl = function (_a) {
948
+ var children = _a.children, _b = _a.elementType, ElementType = _b === void 0 ? "div" : _b, errorMessage = _a.errorMessage, helper = _a.helper, htmlFor = _a.htmlFor, id = _a.id, label = _a.label, _c = _a.labelSize, labelSize = _c === void 0 ? "l" : _c, _d = _a.requirementStatus, requirementStatus = _d === void 0 ? "optional" : _d, props = __rest(_a, ["children", "elementType", "errorMessage", "helper", "htmlFor", "id", "label", "labelSize", "requirementStatus"]);
949
+ var surface = React.useContext(Context$3).surface;
950
+ var _e = useAriaDescribedby({
951
+ errorMessage: errorMessage,
952
+ helper: helper,
953
+ id: htmlFor || id // `htmlFor` is preference to keep this deterministic with TextInput
954
+ }), ariaDescribedby = _e.ariaDescribedby, idError = _e.idError, idHelper = _e.idHelper;
955
+ var LabelType = ElementType === "div" ? "label" : "legend";
956
+ var elementProps = {};
957
+ var labelProps = {};
958
+ if (LabelType === "label") {
959
+ labelProps["htmlFor"] = htmlFor;
960
+ if (htmlFor) {
961
+ labelProps["id"] = "".concat(htmlFor, "-label");
962
+ }
963
+ else if (id) {
964
+ labelProps["id"] = "".concat(id, "-label");
965
+ }
966
+ }
967
+ else {
968
+ elementProps["aria-describedby"] = ariaDescribedby;
969
+ }
970
+ return (React__default["default"].createElement(Provider$3, { value: { requirementStatus: requirementStatus } },
971
+ React__default["default"].createElement(ElementType, __assign({ className: classNames({
972
+ "arc-FormControl": true,
973
+ "arc-FormControl--smallLabel": labelSize === "s",
974
+ "arc-FormControl--onDarkSurface": surface === "dark"
975
+ }), id: id }, elementProps, filterDataAttrs(props)),
976
+ React__default["default"].createElement(LabelType, __assign({ className: "arc-FormControl-label" }, labelProps),
977
+ label,
978
+ requirementStatus === "optional" && (React__default["default"].createElement("span", { className: "arc-FormControl-labelOptional" }, "(optional)"))),
979
+ helper && (React__default["default"].createElement("div", { className: "arc-FormControl-helper", id: idHelper }, helper)),
980
+ children,
981
+ errorMessage && (React__default["default"].createElement("div", { className: "arc-FormControl-error", id: idError }, errorMessage)))));
982
+ };
983
+
935
984
  /**
936
985
  * Use `Checkbox` to allow users to select individual options.
937
986
  */
938
987
  var Checkbox = React.forwardRef(function (_a, ref) {
939
- var errorMessage = _a.errorMessage, helper = _a.helper, id = _a.id, _b = _a.isChecked, isChecked = _b === void 0 ? false : _b, _c = _a.isDisabled, isDisabled = _c === void 0 ? false : _c, _d = _a.isRequired, isRequired = _d === void 0 ? false : _d, label = _a.label, name = _a.name, onChange = _a.onChange, value = _a.value, props = __rest(_a, ["errorMessage", "helper", "id", "isChecked", "isDisabled", "isRequired", "label", "name", "onChange", "value"]);
940
- var surface = React.useContext(Context$2).surface;
941
- var _e = useAriaDescribedby({
988
+ var _b = _a.checked, checked = _b === void 0 ? false : _b, errorMessage = _a.errorMessage, helper = _a.helper, id = _a.id, _c = _a.isDisabled, isDisabled = _c === void 0 ? false : _c, _d = _a.isRequired, isRequired = _d === void 0 ? false : _d, label = _a.label, name = _a.name, onBlur = _a.onBlur, onChange = _a.onChange, _e = _a.size, size = _e === void 0 ? "l" : _e, value = _a.value, props = __rest(_a, ["checked", "errorMessage", "helper", "id", "isDisabled", "isRequired", "label", "name", "onBlur", "onChange", "size", "value"]);
989
+ var requirementStatus = React.useContext(Context$2).requirementStatus;
990
+ var surface = React.useContext(Context$3).surface;
991
+ var _f = useAriaDescribedby({
942
992
  id: id,
943
- errorMessage: errorMessage,
944
- helper: helper
945
- }), ariaDescribedby = _e.ariaDescribedby, idHelper = _e.idHelper, idError = _e.idError;
993
+ errorMessage: errorMessage
994
+ }), ariaDescribedby = _f.ariaDescribedby, idError = _f.idError;
946
995
  var idLabel = "".concat(id, "-label");
947
996
  var checkedProps = {};
948
997
  if (typeof onChange === "function") {
949
- checkedProps.checked = isChecked;
998
+ checkedProps.checked = checked;
950
999
  }
951
- else if (isChecked && !onChange) {
1000
+ else if (checked && !onChange) {
952
1001
  checkedProps.defaultChecked = true;
953
1002
  }
1003
+ if (requirementStatus === "required") {
1004
+ isRequired = true;
1005
+ }
954
1006
  return (React__default["default"].createElement("div", { className: classNames({
955
1007
  "arc-Checkbox": true,
956
1008
  "arc-Checkbox--disabled": isDisabled,
957
1009
  "arc-Checkbox--invalid": errorMessage,
1010
+ "arc-Checkbox--small": size === "s",
958
1011
  "arc-Checkbox--onDarkSurface": surface === "dark"
959
1012
  }) },
960
1013
  React__default["default"].createElement("label", { id: idLabel, htmlFor: id, className: "arc-Checkbox-label" },
961
- React__default["default"].createElement("input", __assign({ "aria-describedby": ariaDescribedby, "aria-disabled": isDisabled, "aria-invalid": errorMessage ? "true" : "false", "aria-required": isRequired ? "true" : undefined, className: "arc-Checkbox-input" }, checkedProps, { disabled: isDisabled, id: id, name: name, onChange: onChange, ref: ref, required: isRequired, type: "checkbox", value: value }, filterDataAttrs(props))),
1014
+ React__default["default"].createElement("input", __assign({ "aria-describedby": ariaDescribedby, "aria-invalid": errorMessage ? "true" : "false", className: "arc-Checkbox-input" }, checkedProps, { disabled: isDisabled, id: id, name: name, onBlur: onBlur, onChange: onChange, ref: ref, required: isRequired, type: "checkbox", value: value }, filterDataAttrs(props))),
962
1015
  React__default["default"].createElement("span", { className: "arc-Checkbox-box" }),
963
1016
  React__default["default"].createElement("span", null,
964
1017
  label,
965
- !isRequired && " (Optional)")),
966
- helper && (React__default["default"].createElement("div", { id: idHelper, className: "arc-Checkbox-helper" }, helper)),
1018
+ !isRequired && requirementStatus !== "optional" ? (React__default["default"].createElement("span", { className: "arc-Checkbox-labelOptional" }, "(optional)")) : null,
1019
+ helper && React__default["default"].createElement("span", { className: "arc-Checkbox-helper" }, helper))),
967
1020
  errorMessage && (React__default["default"].createElement("div", { id: idError, className: "arc-Checkbox-error" }, errorMessage))));
968
1021
  });
969
1022
 
@@ -1066,7 +1119,7 @@ var Curve = function (_a) {
1066
1119
  */
1067
1120
  var Disclosure = function (_a) {
1068
1121
  var children = _a.children, headingLevel = _a.headingLevel, _b = _a.indentDetails, indentDetails = _b === void 0 ? false : _b, _c = _a.isOpen, isOpen = _c === void 0 ? false : _c, summary = _a.summary, props = __rest(_a, ["children", "headingLevel", "indentDetails", "isOpen", "summary"]);
1069
- var surface = React.useContext(Context$2).surface;
1122
+ var surface = React.useContext(Context$3).surface;
1070
1123
  return (React__default["default"].createElement("details", __assign({ className: classNames({
1071
1124
  "arc-Disclosure": true,
1072
1125
  "arc-Disclosure--indentDetails": indentDetails,
@@ -1089,53 +1142,13 @@ var Elevation = function (_a) {
1089
1142
  _b)) }, filterDataAttrs(props)), children));
1090
1143
  };
1091
1144
 
1092
- /**
1093
- * Use `FormControl` to provide inputs with labels, helper text and error messages
1094
- */
1095
- var FormControl = function (_a) {
1096
- var children = _a.children, _b = _a.elementType, ElementType = _b === void 0 ? "div" : _b, errorMessage = _a.errorMessage, helper = _a.helper, htmlFor = _a.htmlFor, id = _a.id, _c = _a.isRequired, isRequired = _c === void 0 ? false : _c, label = _a.label, _d = _a.labelSize, labelSize = _d === void 0 ? "l" : _d, props = __rest(_a, ["children", "elementType", "errorMessage", "helper", "htmlFor", "id", "isRequired", "label", "labelSize"]);
1097
- var surface = React.useContext(Context$2).surface;
1098
- var _e = useAriaDescribedby({
1099
- errorMessage: errorMessage,
1100
- helper: helper,
1101
- id: htmlFor || id // `htmlFor` is preference to keep this deterministic with TextInput
1102
- }), ariaDescribedby = _e.ariaDescribedby, idError = _e.idError, idHelper = _e.idHelper;
1103
- var LabelType = ElementType === "div" ? "label" : "legend";
1104
- var elementProps = {};
1105
- var labelProps = {};
1106
- if (LabelType === "label") {
1107
- labelProps["htmlFor"] = htmlFor;
1108
- if (htmlFor) {
1109
- labelProps["id"] = "".concat(htmlFor, "-label");
1110
- }
1111
- else if (id) {
1112
- labelProps["id"] = "".concat(id, "-label");
1113
- }
1114
- }
1115
- else {
1116
- elementProps["aria-describedby"] = ariaDescribedby;
1117
- }
1118
- return (React__default["default"].createElement(ElementType, __assign({ className: classNames({
1119
- "arc-FormControl": true,
1120
- "arc-FormControl--smallLabel": labelSize === "s",
1121
- "arc-FormControl--onDarkSurface": surface === "dark"
1122
- }), id: id }, elementProps, filterDataAttrs(props)),
1123
- React__default["default"].createElement(LabelType, __assign({ className: "arc-FormControl-label" }, labelProps),
1124
- label,
1125
- " ",
1126
- !isRequired && (React__default["default"].createElement("span", { className: "arc-FormControl-labelOptional" }, "(Optional)"))),
1127
- helper && (React__default["default"].createElement("div", { className: "arc-FormControl-helper", id: idHelper }, helper)),
1128
- children,
1129
- errorMessage && (React__default["default"].createElement("div", { className: "arc-FormControl-error", id: idError }, errorMessage))));
1130
- };
1131
-
1132
1145
  /**
1133
1146
  * Use `Group` to arrange flexible items in a row.
1134
1147
  */
1135
1148
  var Group = function (_a) {
1136
1149
  var _b;
1137
1150
  var children = _a.children, _c = _a.grow, grow = _c === void 0 ? false : _c, _d = _a.growEqual, growEqual = _d === void 0 ? false : _d, _e = _a.gutterBorder, gutterBorder = _e === void 0 ? false : _e, _f = _a.noWrap, noWrap = _f === void 0 ? false : _f, props = __rest(_a, ["children", "grow", "growEqual", "gutterBorder", "noWrap"]);
1138
- var surface = React.useContext(Context$2).surface;
1151
+ var surface = React.useContext(Context$3).surface;
1139
1152
  React.useEffect(function () {
1140
1153
  React__default["default"].Children.map(children, function (item) {
1141
1154
  if (item && item.type !== GroupItem) {
@@ -1170,7 +1183,7 @@ Group.Item = GroupItem;
1170
1183
  */
1171
1184
  var Markup = function (_a) {
1172
1185
  var children = _a.children, _b = _a.isMeasured, isMeasured = _b === void 0 ? false : _b, props = __rest(_a, ["children", "isMeasured"]);
1173
- var surface = React.useContext(Context$2).surface;
1186
+ var surface = React.useContext(Context$3).surface;
1174
1187
  return (React__default["default"].createElement("div", __assign({ className: classNames({
1175
1188
  "arc-Markup": true,
1176
1189
  "arc-Markup--measured": isMeasured,
@@ -1242,9 +1255,6 @@ var RadioContext = React.createContext({});
1242
1255
  var Provider$2 = RadioContext.Provider;
1243
1256
  var useRadioContext = function () {
1244
1257
  var context = React.useContext(RadioContext);
1245
- if (!context) {
1246
- console.warn("Ensure to use <RadioGroup.RadioButton /> within the <RadioGroup /> or its branded version.");
1247
- }
1248
1258
  return context;
1249
1259
  };
1250
1260
 
@@ -1252,60 +1262,57 @@ var useRadioContext = function () {
1252
1262
  * Radio Button component.
1253
1263
  */
1254
1264
  var RadioButton = React.forwardRef(function (_a, ref) {
1255
- var helper = _a.helper, id = _a.id, label = _a.label, value = _a.value, props = __rest(_a, ["helper", "id", "label", "value"]);
1256
- var _b = useRadioContext(), isDisabled = _b.isDisabled, isInvalid = _b.isInvalid, isRequired = _b.isRequired, isChecked = _b.isChecked, name = _b.name, changeEvent = _b.changeEvent, errorMessage = _b.errorMessage, errorId = _b.errorId;
1257
- var surface = React.useContext(Context$2).surface;
1258
- var _c = useAriaDescribedby({
1259
- id: id,
1260
- idError: "".concat(errorId, "-error"),
1261
- helper: helper,
1262
- errorMessage: errorMessage
1263
- }), ariaDescribedby = _c.ariaDescribedby, idHelper = _c.idHelper;
1265
+ var helper = _a.helper, id = _a.id, isDisabled = _a.isDisabled, label = _a.label, value = _a.value, props = __rest(_a, ["helper", "id", "isDisabled", "label", "value"]);
1266
+ var _b = useRadioContext(), blurEvent = _b.blurEvent, changeEvent = _b.changeEvent, groupDisabled = _b.groupDisabled, checkedValue = _b.checkedValue, labelSize = _b.labelSize, name = _b.name, size = _b.size;
1267
+ var surface = React.useContext(Context$3).surface;
1264
1268
  var idLabel = "".concat(id, "-label");
1265
- var checked = isChecked === value ? true : false;
1266
- var disabled = isDisabled ? isDisabled : false;
1269
+ var checked = checkedValue === value ? true : false;
1267
1270
  return (React__default["default"].createElement("div", __assign({ className: classNames({
1268
1271
  "arc-RadioButton": true,
1269
- "arc-RadioButton--checked": isChecked,
1270
- "arc-RadioButton--disabled": disabled,
1271
- "arc-RadioButton--invalid": isInvalid,
1272
- "arc-RadioButton--required": isRequired,
1272
+ "arc-RadioButton--disabled": isDisabled || groupDisabled,
1273
+ "arc-RadioButton--small": size === "s",
1274
+ "arc-RadioButton--smallLabel": labelSize === "s",
1273
1275
  "arc-RadioButton--onDarkSurface": surface === "dark"
1274
1276
  }) }, filterDataAttrs(props)),
1275
- React__default["default"].createElement("input", { "aria-describedby": ariaDescribedby, "aria-disabled": disabled, className: "arc-RadioButton-input", defaultChecked: checked, disabled: isDisabled, id: id, name: name, onChange: changeEvent, ref: ref, required: isRequired, type: "radio", value: value }),
1276
- React__default["default"].createElement("label", { className: "arc-RadioButton-label", htmlFor: id, id: idLabel }, label),
1277
- helper && (React__default["default"].createElement("p", { className: "arc-RadioButton-helper", id: idHelper }, helper))));
1277
+ React__default["default"].createElement("label", { className: "arc-RadioButton-label", htmlFor: id, id: idLabel },
1278
+ React__default["default"].createElement("input", { className: "arc-RadioButton-input", checked: typeof changeEvent !== "function" ? undefined : checked, defaultChecked: typeof changeEvent !== "function" ? checked : undefined, disabled: isDisabled || groupDisabled, id: id, name: name, onBlur: blurEvent, onChange: changeEvent, ref: ref, type: "radio", value: value }),
1279
+ React__default["default"].createElement("span", null,
1280
+ label,
1281
+ helper && React__default["default"].createElement("span", { className: "arc-RadioButton-helper" }, helper)))));
1278
1282
  });
1279
1283
 
1280
1284
  /**
1281
1285
  * Use `RadioGroup` to wrap and control radio buttons and apply default values
1282
1286
  */
1283
1287
  var RadioGroup = function (_a) {
1284
- var children = _a.children, defaultValue = _a.defaultValue, _b = _a.isDisabled, isDisabled = _b === void 0 ? false : _b, _c = _a.isRequired, isRequired = _c === void 0 ? false : _c, errorMessage = _a.errorMessage, id = _a.id, helper = _a.helper, label = _a.label, name = _a.name, onChange = _a.onChange, props = __rest(_a, ["children", "defaultValue", "isDisabled", "isRequired", "errorMessage", "id", "helper", "label", "name", "onChange"]);
1288
+ var children = _a.children, checkedValue = _a.checkedValue, _b = _a.isDisabled, isDisabled = _b === void 0 ? false : _b, id = _a.id, helper = _a.helper, label = _a.label, _c = _a.labelSize, labelSize = _c === void 0 ? "l" : _c, name = _a.name, onBlur = _a.onBlur, onChange = _a.onChange, _d = _a.size, size = _d === void 0 ? "l" : _d, props = __rest(_a, ["children", "checkedValue", "isDisabled", "id", "helper", "label", "labelSize", "name", "onBlur", "onChange", "size"]);
1289
+ React.useEffect(function () {
1290
+ React__default["default"].Children.map(children, function (item) {
1291
+ if (item && item.type !== RadioButton) {
1292
+ throw new Error("Illegal child passed to <RadioGroup />. Ensure to only use <RadioGroup.RadioButton />.");
1293
+ }
1294
+ });
1295
+ }, [children]);
1285
1296
  return (React__default["default"].createElement(Provider$2, { value: {
1286
- isChecked: defaultValue,
1287
- isRequired: isRequired,
1288
- isDisabled: isDisabled,
1289
- isInvalid: errorMessage ? true : false,
1290
- errorId: id,
1291
- errorMessage: errorMessage,
1297
+ blurEvent: onBlur,
1298
+ changeEvent: onChange,
1299
+ groupDisabled: isDisabled,
1300
+ checkedValue: checkedValue,
1301
+ labelSize: labelSize,
1292
1302
  name: name,
1293
- changeEvent: onChange
1303
+ size: size
1294
1304
  } },
1295
- React__default["default"].createElement(FormControl, { elementType: "fieldset", label: label, errorMessage: errorMessage, helper: helper, isRequired: isRequired, id: id },
1296
- React__default["default"].createElement("div", __assign({ className: classNames({
1297
- "arc-RadioGroup": true,
1298
- "arc-RadioGroup--invalid": errorMessage,
1299
- "arc-RadioGroup--disabled": isDisabled
1300
- }) }, filterDataAttrs(props)), children))));
1305
+ React__default["default"].createElement("div", __assign({ className: "arc-RadioGroup" }, filterDataAttrs(props)),
1306
+ React__default["default"].createElement(FormControl, { elementType: "fieldset", label: label, labelSize: labelSize, helper: helper, id: id, requirementStatus: "not-applicable" }, children))));
1301
1307
  };
1308
+ RadioButton.displayName = "RadioGroup.RadioButton";
1302
1309
  RadioGroup.RadioButton = RadioButton;
1303
1310
 
1304
1311
  /**
1305
1312
  * Use `Rule` to display a horizontal rule.
1306
1313
  */
1307
1314
  var Rule = function (props) {
1308
- var surface = React.useContext(Context$2).surface;
1315
+ var surface = React.useContext(Context$3).surface;
1309
1316
  return (React__default["default"].createElement("hr", __assign({ className: classNames({
1310
1317
  "arc-Rule": true,
1311
1318
  "arc-Rule--onDarkSurface": surface === "dark"
@@ -1977,7 +1984,7 @@ SiteHeaderRehydrator.SubNavItemRehydrator = SubNavItemRehydrator;
1977
1984
  var Text = function (_a) {
1978
1985
  var _b;
1979
1986
  var _c = _a.align, align = _c === void 0 ? "left" : _c, children = _a.children, _d = _a.isInline, isInline = _d === void 0 ? false : _d, _e = _a.isMeasured, isMeasured = _e === void 0 ? false : _e, _f = _a.size, size = _f === void 0 ? "m" : _f, _g = _a.tone, tone = _g === void 0 ? "default" : _g, props = __rest(_a, ["align", "children", "isInline", "isMeasured", "size", "tone"]);
1980
- var surface = React.useContext(Context$2).surface;
1987
+ var surface = React.useContext(Context$3).surface;
1981
1988
  return (React__default["default"].createElement("span", __assign({ className: classNames((_b = {
1982
1989
  "arc-Text": true
1983
1990
  },
@@ -1994,8 +2001,8 @@ var Text = function (_a) {
1994
2001
  * Use `TextInput` to allow custom user text entry with a keyboard.
1995
2002
  */
1996
2003
  var TextInput = React.forwardRef(function (_a, ref) {
1997
- var _b = _a.defaultValue, defaultValue = _b === void 0 ? "" : _b, errorMessage = _a.errorMessage, helper = _a.helper, id = _a.id, inputMode = _a.inputMode, _c = _a.isDisabled, isDisabled = _c === void 0 ? false : _c, _d = _a.isReadOnly, isReadOnly = _d === void 0 ? false : _d, _e = _a.isRequired, isRequired = _e === void 0 ? false : _e, label = _a.label, _f = _a.labelSize, labelSize = _f === void 0 ? "l" : _f, maxLength = _a.maxLength, minLength = _a.minLength, name = _a.name, onChange = _a.onChange, pattern = _a.pattern, _g = _a.type, type = _g === void 0 ? "text" : _g, value = _a.value, props = __rest(_a, ["defaultValue", "errorMessage", "helper", "id", "inputMode", "isDisabled", "isReadOnly", "isRequired", "label", "labelSize", "maxLength", "minLength", "name", "onChange", "pattern", "type", "value"]);
1998
- var surface = React.useContext(Context$2).surface;
2004
+ var _b = _a.defaultValue, defaultValue = _b === void 0 ? "" : _b, errorMessage = _a.errorMessage, helper = _a.helper, id = _a.id, inputMode = _a.inputMode, _c = _a.isDisabled, isDisabled = _c === void 0 ? false : _c, _d = _a.isReadOnly, isReadOnly = _d === void 0 ? false : _d, _e = _a.isRequired, isRequired = _e === void 0 ? false : _e, label = _a.label, _f = _a.labelSize, labelSize = _f === void 0 ? "l" : _f, maxLength = _a.maxLength, minLength = _a.minLength, name = _a.name, onBlur = _a.onBlur, onChange = _a.onChange, pattern = _a.pattern, _g = _a.type, type = _g === void 0 ? "text" : _g, value = _a.value, props = __rest(_a, ["defaultValue", "errorMessage", "helper", "id", "inputMode", "isDisabled", "isReadOnly", "isRequired", "label", "labelSize", "maxLength", "minLength", "name", "onBlur", "onChange", "pattern", "type", "value"]);
2005
+ var surface = React.useContext(Context$3).surface;
1999
2006
  var inferredInputProps = useNumericInput({ inputMode: inputMode, pattern: pattern, type: type });
2000
2007
  // Although this is used within FormControlWrapper, it's deterministic so we can call it here too
2001
2008
  var ariaDescribedby = useAriaDescribedby({
@@ -2008,8 +2015,8 @@ var TextInput = React.forwardRef(function (_a, ref) {
2008
2015
  "arc-TextInput--invalid": errorMessage,
2009
2016
  "arc-TextInput--onDarkSurface": surface === "dark"
2010
2017
  }) }, filterDataAttrs(props)),
2011
- React__default["default"].createElement(FormControl, { errorMessage: errorMessage, helper: helper, htmlFor: id, isRequired: isRequired, label: label, labelSize: labelSize },
2012
- React__default["default"].createElement("input", __assign({ "aria-describedby": ariaDescribedby, "aria-invalid": errorMessage ? "true" : "false", "aria-required": isRequired ? "true" : undefined, className: "arc-TextInput-input", defaultValue: typeof value !== "undefined" ? undefined : defaultValue, disabled: isDisabled, id: id, maxLength: maxLength, minLength: minLength, name: name, onChange: onChange, readOnly: isReadOnly, ref: ref, required: isRequired, value: typeof value !== "undefined" ? value : undefined }, inferredInputProps)))));
2018
+ React__default["default"].createElement(FormControl, { errorMessage: errorMessage, helper: helper, htmlFor: id, label: label, labelSize: labelSize, requirementStatus: isRequired ? "required" : "optional" },
2019
+ React__default["default"].createElement("input", __assign({ "aria-describedby": ariaDescribedby, "aria-invalid": errorMessage ? "true" : "false", className: "arc-TextInput-input", defaultValue: typeof value !== "undefined" ? undefined : defaultValue, disabled: isDisabled, id: id, maxLength: maxLength, minLength: minLength, name: name, onChange: onChange, onBlur: onBlur, readOnly: isReadOnly, ref: ref, required: isRequired, value: typeof value !== "undefined" ? value : undefined }, inferredInputProps)))));
2013
2020
  });
2014
2021
 
2015
2022
  /**
@@ -2053,7 +2060,7 @@ exports.SiteFooterRehydrator = SiteFooter_rehydrator;
2053
2060
  exports.SiteHeader = SiteHeader;
2054
2061
  exports.SiteHeaderRehydrator = SiteHeaderRehydrator;
2055
2062
  exports.Surface = Surface;
2056
- exports.SurfaceContext = Context$2;
2063
+ exports.SurfaceContext = Context$3;
2057
2064
  exports.Text = Text;
2058
2065
  exports.TextInput = TextInput;
2059
2066
  exports.UniversalHeader = UniversalHeader;