@deque/cauldron-react 6.18.5-canary.a83a6624 → 6.18.5-canary.d6a6e97d

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.
@@ -14,6 +14,7 @@ export interface SelectProps extends Omit<React.HTMLProps<HTMLSelectElement>, 'c
14
14
  children?: React.ReactElement<HTMLOptionElement | HTMLOptGroupElement>[];
15
15
  value?: any;
16
16
  defaultValue?: any;
17
+ description?: React.ReactNode;
17
18
  onChange?: (e: React.ChangeEvent<HTMLSelectElement>) => void;
18
19
  }
19
20
  declare const Select: React.ForwardRefExoticComponent<Omit<SelectProps, "ref"> & React.RefAttributes<HTMLSelectElement>>;
package/lib/index.js CHANGED
@@ -2258,7 +2258,7 @@ var randomId = function () {
2258
2258
  };
2259
2259
 
2260
2260
  var Select = React__default["default"].forwardRef(function (_a, ref) {
2261
- var options = _a.options, children = _a.children, disabled = _a.disabled, label = _a.label, id = _a.id, required = _a.required, _b = _a.requiredText, requiredText = _b === void 0 ? 'Required' : _b, error = _a.error, value = _a.value, ariaDescribedby = _a["aria-describedby"], defaultValue = _a.defaultValue, onChange = _a.onChange, rest = tslib.__rest(_a, ["options", "children", "disabled", "label", "id", "required", "requiredText", "error", "value", 'aria-describedby', "defaultValue", "onChange"]);
2261
+ var options = _a.options, children = _a.children, disabled = _a.disabled, label = _a.label, id = _a.id, required = _a.required, _b = _a.requiredText, requiredText = _b === void 0 ? 'Required' : _b, error = _a.error, value = _a.value, ariaDescribedby = _a["aria-describedby"], defaultValue = _a.defaultValue, description = _a.description, onChange = _a.onChange, rest = tslib.__rest(_a, ["options", "children", "disabled", "label", "id", "required", "requiredText", "error", "value", 'aria-describedby', "defaultValue", "description", "onChange"]);
2262
2262
  if (options && children) {
2263
2263
  console.error('The Select component only takes the options props or child option elements, not both.');
2264
2264
  }
@@ -2282,6 +2282,7 @@ var Select = React__default["default"].forwardRef(function (_a, ref) {
2282
2282
  }, [value]);
2283
2283
  var selectId = id || randomId();
2284
2284
  var errorId = randomId();
2285
+ var descriptionId = randomId();
2285
2286
  var dynamicProps = {};
2286
2287
  if (isControlled) {
2287
2288
  dynamicProps.value = currentValue;
@@ -2289,8 +2290,12 @@ var Select = React__default["default"].forwardRef(function (_a, ref) {
2289
2290
  else if (typeof defaultValue !== 'undefined') {
2290
2291
  dynamicProps.defaultValue = defaultValue;
2291
2292
  }
2293
+ dynamicProps['aria-describedby'] = ariaDescribedby;
2294
+ if (description) {
2295
+ dynamicProps['aria-describedby'] = addIdRef(dynamicProps['aria-describedby'], descriptionId);
2296
+ }
2292
2297
  if (error) {
2293
- dynamicProps['aria-describedby'] = addIdRef(ariaDescribedby, errorId);
2298
+ dynamicProps['aria-describedby'] = addIdRef(dynamicProps['aria-describedby'], errorId);
2294
2299
  }
2295
2300
  // In order to support controlled selects, we
2296
2301
  // have to attach an `onChange` to the select.
@@ -2302,6 +2307,10 @@ var Select = React__default["default"].forwardRef(function (_a, ref) {
2302
2307
  }) },
2303
2308
  React__default["default"].createElement("span", null, label),
2304
2309
  required && (React__default["default"].createElement("span", { className: "Field__required-text", "aria-hidden": "true" }, requiredText))),
2310
+ description && (React__default["default"].createElement("div", { id: descriptionId, className: "Field__description" }, description)),
2311
+ error && (React__default["default"].createElement("div", { id: errorId, className: "Field__error" },
2312
+ React__default["default"].createElement(Icon, { type: "caution" }),
2313
+ error)),
2305
2314
  React__default["default"].createElement("div", { className: classNames__default["default"]('Field__select--wrapper', {
2306
2315
  'Field__select--disabled': disabled,
2307
2316
  'Field--has-error': !!error
@@ -2311,8 +2320,7 @@ var Select = React__default["default"].forwardRef(function (_a, ref) {
2311
2320
  return (React__default["default"].createElement("option", { className: "Field__option", key: option.key, value: option.value, disabled: option.disabled }, option.label || option.value));
2312
2321
  })
2313
2322
  : children),
2314
- React__default["default"].createElement("div", { className: "arrow-down" })),
2315
- error && (React__default["default"].createElement("div", { id: errorId, className: "Error" }, error))));
2323
+ React__default["default"].createElement("div", { className: "arrow-down" }))));
2316
2324
  /* eslint-disable jsx-a11y/no-onchange */
2317
2325
  });
2318
2326
  Select.displayName = 'Select';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-react",
3
- "version": "6.18.5-canary.a83a6624",
3
+ "version": "6.18.5-canary.d6a6e97d",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Fully accessible react components library for Deque Cauldron",
6
6
  "homepage": "https://cauldron.dequelabs.com/",