@commercetools-frontend/experimental-components 5.3.1 → 5.4.1

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.
@@ -1601,7 +1601,7 @@ function formatMoneyRangeValue(value, intl) {
1601
1601
  return '';
1602
1602
  }
1603
1603
  function formatMoneyValue(amount, currency, intl) {
1604
- return formatMoney$1(_objectSpread$1l({
1604
+ return formatMoney$2(_objectSpread$1l({
1605
1605
  centAmount: amount,
1606
1606
  fractionDigits: getFractionDigit(currency)
1607
1607
  }, currency ? {
@@ -1616,7 +1616,7 @@ function getFractionedAmount(moneyValue) {
1616
1616
  const amount = moneyValue.type === PRECISION_TYPES.highPrecision ? moneyValue.preciseAmount : moneyValue.centAmount;
1617
1617
  return amount / 10 ** fractionDigits;
1618
1618
  }
1619
- function formatMoney$1(moneyValue, intl, options) {
1619
+ function formatMoney$2(moneyValue, intl, options) {
1620
1620
  var _moneyValue$fractione;
1621
1621
  return intl.formatNumber((_moneyValue$fractione = moneyValue.fractionedAmount) !== null && _moneyValue$fractione !== void 0 ? _moneyValue$fractione : getFractionedAmount(moneyValue), _objectSpread$1l({
1622
1622
  style: 'currency',
@@ -1667,10 +1667,10 @@ const formatLtext = _ref3 => {
1667
1667
  locale: language
1668
1668
  });
1669
1669
  };
1670
- const formatMoney = _ref4 => {
1670
+ const formatMoney$1 = _ref4 => {
1671
1671
  let value = _ref4.value,
1672
1672
  intl = _ref4.intl;
1673
- return formatMoney$1(value, intl);
1673
+ return formatMoney$2(value, intl);
1674
1674
  };
1675
1675
  const formatReference = _ref5 => {
1676
1676
  let value = _ref5.value;
@@ -1760,7 +1760,7 @@ const doNotFormat = _ref13 => {
1760
1760
  let value = _ref13.value;
1761
1761
  return value;
1762
1762
  };
1763
- const getFormatter = type => isNil$1(type) ? formatNilType : type.name === 'nested' ? formatNested : type.name === 'set' ? formatSet : type.name === 'enum' ? formatEnum : type.name === 'lenum' ? formatLenum : type.name === 'ltext' ? formatLtext : type.name === 'money' ? formatMoney : type.name === 'reference' ? formatReference : type.name === 'date' ? formatDate : type.name === 'time' ? doNotFormat : type.name === 'datetime' ? formatDateTime : type.name === 'boolean' ? formatBoolean : type.name === 'text' ? doNotFormat : type.name === 'number' ? doNotFormat : formatUnknown;
1763
+ const getFormatter = type => isNil$1(type) ? formatNilType : type.name === 'nested' ? formatNested : type.name === 'set' ? formatSet : type.name === 'enum' ? formatEnum : type.name === 'lenum' ? formatLenum : type.name === 'ltext' ? formatLtext : type.name === 'money' ? formatMoney$1 : type.name === 'reference' ? formatReference : type.name === 'date' ? formatDate : type.name === 'time' ? doNotFormat : type.name === 'datetime' ? formatDateTime : type.name === 'boolean' ? formatBoolean : type.name === 'text' ? doNotFormat : type.name === 'number' ? doNotFormat : formatUnknown;
1764
1764
  function formatAttribute(_ref14) {
1765
1765
  let type = _ref14.type,
1766
1766
  value = _ref14.value,
@@ -4250,12 +4250,38 @@ const createAttributeTypeValue = attribute => {
4250
4250
  return attribute.type;
4251
4251
  }
4252
4252
  };
4253
+
4254
+ /*
4255
+ * Fixed price supports high precision. Action format is nested with the
4256
+ * the type of the money. Absolute discount only works with cent precision,
4257
+ * hence the action structure is flat.
4258
+ */
4259
+ const formatMoney = valueType => money => {
4260
+ if (valueType === 'fixed') {
4261
+ return {
4262
+ [money.type]: _objectSpread$10({
4263
+ centAmount: money.centAmount,
4264
+ currencyCode: money.currencyCode
4265
+ }, money.type === PRECISION_TYPES.highPrecision && {
4266
+ preciseAmount: money.preciseAmount,
4267
+ fractionDigits: money.fractionDigits
4268
+ })
4269
+ };
4270
+ } else if (valueType === 'absolute') {
4271
+ return {
4272
+ centAmount: money.centAmount,
4273
+ currencyCode: money.currencyCode
4274
+ };
4275
+ } else {
4276
+ throw new Error('Unexpected value type for money.');
4277
+ }
4278
+ };
4279
+
4253
4280
  /**
4254
4281
  * converts the `changeValue` action to GraphQL actions variable
4255
4282
  * @param {Object} actionPayload
4256
4283
  */
4257
4284
  const convertChangeValueAction = actionPayload => {
4258
- var _context2;
4259
4285
  const valueType = actionPayload.value.type;
4260
4286
  const possibleTypeKeys = {
4261
4287
  relative: ['permyriad'],
@@ -4264,7 +4290,11 @@ const convertChangeValueAction = actionPayload => {
4264
4290
  giftLineItem: ['product', 'variantId', 'distributionChannel', 'supplyChannel', 'ResourceIdentifierInput']
4265
4291
  };
4266
4292
  const filteredValue = pick(actionPayload.value, possibleTypeKeys[valueType]);
4267
- if (filteredValue.money) filteredValue.money = _mapInstanceProperty(_context2 = filteredValue.money).call(_context2, valueItem => omit(valueItem, '__typename'));
4293
+ if (filteredValue.money) {
4294
+ var _context2;
4295
+ const moneyFormatter = formatMoney(valueType);
4296
+ filteredValue.money = _mapInstanceProperty(_context2 = filteredValue.money).call(_context2, moneyFormatter);
4297
+ }
4268
4298
  return {
4269
4299
  changeValue: {
4270
4300
  value: {
@@ -4273,6 +4303,7 @@ const convertChangeValueAction = actionPayload => {
4273
4303
  }
4274
4304
  };
4275
4305
  };
4306
+
4276
4307
  /**
4277
4308
  * This function changes any payload after the actions have been computed.
4278
4309
  * Currently we only need to change the `setCustomField` action payload
@@ -7126,6 +7157,13 @@ function CustomInputSet(props) {
7126
7157
  children: jsx(Field, {
7127
7158
  name: props.name,
7128
7159
  validate: values => {
7160
+ // This validate function overrides the one found in CustomFieldInternal ,
7161
+ // so we need to check if the field is required here.
7162
+ if (props.fieldDefinition.required && isNil$1(dropEmptyEntries(values))) {
7163
+ return {
7164
+ missing: true
7165
+ };
7166
+ }
7129
7167
  const errors = getDuplicateErrors(values);
7130
7168
  return errors.length > 0 ? errors : undefined;
7131
7169
  },
@@ -7509,10 +7547,12 @@ const CustomFieldsInternal = props => {
7509
7547
  return jsx(FastField, {
7510
7548
  name: fieldName,
7511
7549
  validate: validate,
7512
- children: () => {
7513
- var _context3;
7514
- return jsxs(Spacings.Stack, {
7515
- scale: "xs",
7550
+ children: () => jsx(Spacings.Stack, {
7551
+ scale: "xs",
7552
+ children: jsxs("div", {
7553
+ "aria-invalid": _Object$keys(fieldErrors !== null && fieldErrors !== void 0 ? fieldErrors : {}).length > 0,
7554
+ "aria-errormessage": "".concat(fieldName, "-error"),
7555
+ id: "".concat(fieldName, "-error"),
7516
7556
  children: [jsx(CustomFieldsLabel, {
7517
7557
  name: fieldName,
7518
7558
  fieldDefinition: fieldDefinition
@@ -7527,26 +7567,22 @@ const CustomFieldsInternal = props => {
7527
7567
  isReadOnly: props.isReadOnly,
7528
7568
  onBlur: handleBlur,
7529
7569
  setFieldValue: props.setFieldValue
7530
- }) : jsx("div", {
7531
- "aria-invalid": _Object$keys(fieldErrors !== null && fieldErrors !== void 0 ? fieldErrors : {}).length > 0,
7532
- "aria-errormessage": "".concat(fieldName, "-error"),
7533
- children: jsx(CustomFieldInput, {
7534
- name: fieldName,
7535
- value: value,
7536
- fieldDefinition: fieldDefinition,
7537
- isDisabled: props.isDisabled,
7538
- isReadOnly: props.isReadOnly,
7539
- onBlur: handleBlur,
7540
- setFieldValue: props.setFieldValue,
7541
- hasError: hasError
7542
- })
7543
- }, _concatInstanceProperty(_context3 = "".concat(fieldName, "-")).call(_context3, index)), jsx(CustomFieldErrors, {
7570
+ }) : jsx(CustomFieldInput, {
7571
+ name: fieldName,
7572
+ value: value,
7573
+ fieldDefinition: fieldDefinition,
7574
+ isDisabled: props.isDisabled,
7575
+ isReadOnly: props.isReadOnly,
7576
+ onBlur: handleBlur,
7577
+ setFieldValue: props.setFieldValue,
7578
+ hasError: hasError
7579
+ }), jsx(CustomFieldErrors, {
7544
7580
  isTouched: isTouched,
7545
7581
  errors: fieldErrors
7546
7582
  })]
7547
7583
  })]
7548
- });
7549
- }
7584
+ })
7585
+ })
7550
7586
  }, _concatInstanceProperty(_context2 = "".concat(fieldName, "-")).call(_context2, index));
7551
7587
  })
7552
7588
  });
@@ -8891,7 +8927,7 @@ function formatDiscount(discount, currencyCode, intl) {
8891
8927
  if (discount.type === 'relative') return "".concat(discount.permyriad / 100, "%");
8892
8928
  if (!discount.money) return null;
8893
8929
  const moneyForCurrencyCode = _findInstanceProperty(_context = discount.money).call(_context, discountMoney => discountMoney.currencyCode === currencyCode);
8894
- return moneyForCurrencyCode ? formatMoney$1(moneyForCurrencyCode, intl) : null;
8930
+ return moneyForCurrencyCode ? formatMoney$2(moneyForCurrencyCode, intl) : null;
8895
8931
  }
8896
8932
 
8897
8933
  function formatPercentage(percentage) {
@@ -11220,6 +11256,10 @@ const ScrollToFieldError = () => {
11220
11256
  const formik = useFormikContext();
11221
11257
  const isValid = formik.isValid,
11222
11258
  submitCount = formik.submitCount;
11259
+ const _useApplicationContex = useApplicationContext(applicationContext => ({
11260
+ dataLocale: applicationContext.dataLocale
11261
+ })),
11262
+ dataLocale = _useApplicationContex.dataLocale;
11223
11263
  useEffect(() => {
11224
11264
  // Do not run the effect if the form hasn't been submitted yet.
11225
11265
  if (submitCount === 0) return;
@@ -11227,17 +11267,23 @@ const ScrollToFieldError = () => {
11227
11267
  if (isValid) return;
11228
11268
  const firstErrorElement = document.querySelector('[aria-invalid="true"]');
11229
11269
  if (firstErrorElement) {
11230
- var _ref, _document$querySelect, _elementToScrollTo$sc;
11270
+ var _ref, _ref2, _document$querySelect, _elementToScrollTo$sc;
11231
11271
  // Get a reference to the label.
11232
- const id = firstErrorElement.getAttribute('id');
11272
+ const firstElementId = firstErrorElement.getAttribute('id');
11273
+ const localizedInputIndex = _indexOfInstanceProperty(firstElementId).call(firstElementId, ".".concat(dataLocale));
11274
+
11275
+ // check if locale is appended then remove it from id
11276
+ const id = localizedInputIndex > -1 ? firstElementId.replace(".".concat(dataLocale), '') : firstElementId;
11233
11277
 
11234
11278
  // Scroll to the label (if found), otherwise to the input element itself.
11235
- const elementToScrollTo = (_ref = (_document$querySelect = document.querySelector("label[for=\"".concat(id, "\"]"))) !== null && _document$querySelect !== void 0 ? _document$querySelect : document.querySelector("label#".concat(id))) !== null && _ref !== void 0 ? _ref : firstErrorElement;
11279
+
11280
+ const elementToScrollTo = // div is used only for custom fields
11281
+ (_ref = (_ref2 = (_document$querySelect = document.querySelector("div[aria-errormessage=\"".concat(firstElementId, "\"]"))) !== null && _document$querySelect !== void 0 ? _document$querySelect : document.querySelector("label[for=\"".concat(id, "\"]"))) !== null && _ref2 !== void 0 ? _ref2 : document.querySelector("label#".concat(id))) !== null && _ref !== void 0 ? _ref : firstErrorElement;
11236
11282
  (_elementToScrollTo$sc = elementToScrollTo.scrollIntoView) === null || _elementToScrollTo$sc === void 0 || _elementToScrollTo$sc.call(elementToScrollTo, {
11237
11283
  behavior: 'smooth'
11238
11284
  });
11239
11285
  }
11240
- }, [isValid, submitCount]);
11286
+ }, [dataLocale, isValid, submitCount]);
11241
11287
  return null;
11242
11288
  };
11243
11289
 
@@ -12539,7 +12585,7 @@ const computedProperties = {
12539
12585
  intl = _ref4.intl;
12540
12586
  const allVariants = _concatInstanceProperty(_context2 = product.variants).call(_context2, product.masterVariant);
12541
12587
  const variantPrices = flatMap(allVariants, variant => variant.prices);
12542
- return _mapInstanceProperty(_context3 = getMinimumPricesByCurrencyCode(variantPrices)).call(_context3, price => formatMoney$1(price, intl)).join(', ') || NO_VALUE_FALLBACK;
12588
+ return _mapInstanceProperty(_context3 = getMinimumPricesByCurrencyCode(variantPrices)).call(_context3, price => formatMoney$2(price, intl)).join(', ') || NO_VALUE_FALLBACK;
12543
12589
  },
12544
12590
  sku(_ref5) {
12545
12591
  var _context4, _context5;
@@ -12844,13 +12890,18 @@ var messages = defineMessages({
12844
12890
  id: 'CustomTypesSubform.typesPlaceholder',
12845
12891
  description: 'The placeholder for the types',
12846
12892
  defaultMessage: 'Select...'
12893
+ },
12894
+ noInputValues: {
12895
+ id: 'CustomTypesSubform.noInputValues',
12896
+ description: 'The label when there are no input values defined for the custom fields.',
12897
+ defaultMessage: 'There are no input values defined for the custom fields.'
12847
12898
  }
12848
12899
  });
12849
12900
 
12850
12901
  const FIELD_NAME = 'custom';
12851
12902
 
12852
12903
  function ownKeys$2(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12853
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys$2(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys$2(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
12904
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys$2(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys$2(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
12854
12905
  const typeDefinitionsExist = typeDefinitions => {
12855
12906
  return typeDefinitions.length > 0;
12856
12907
  };
@@ -12861,9 +12912,18 @@ const typeDefinitionSelected = formValues => {
12861
12912
  const typeDefinitionContainsFieldDefinitions = formValues => {
12862
12913
  return formValues[FIELD_NAME].type.obj.key && formValues[FIELD_NAME].type.obj.fieldDefinitions.length > 0;
12863
12914
  };
12864
- const CustomFieldsInputWrapper = _ref => {
12865
- let typeDefinitions = _ref.typeDefinitions,
12866
- isReadOnly = _ref.isReadOnly;
12915
+ const fieldDefinitionsWithValues = formValues => {
12916
+ var _context;
12917
+ const fieldValues = formValues[FIELD_NAME].fields;
12918
+ return _filterInstanceProperty(_context = formValues[FIELD_NAME].type.obj.fieldDefinitions).call(_context, _ref => {
12919
+ let name = _ref.name;
12920
+ return fieldValues[name] !== undefined;
12921
+ });
12922
+ };
12923
+ const CustomFieldsInputWrapper = _ref2 => {
12924
+ let typeDefinitions = _ref2.typeDefinitions,
12925
+ isReadOnly = _ref2.isReadOnly,
12926
+ hideEmptyFields = _ref2.hideEmptyFields;
12867
12927
  const _useFormikContext = useFormikContext(),
12868
12928
  formValues = _valuesInstanceProperty(_useFormikContext);
12869
12929
  if (!typeDefinitionsExist(typeDefinitions)) {
@@ -12875,12 +12935,15 @@ const CustomFieldsInputWrapper = _ref => {
12875
12935
  if (!typeDefinitionContainsFieldDefinitions(formValues)) {
12876
12936
  return jsx(FormattedMessage, _objectSpread$2({}, messages.noCustomFields));
12877
12937
  }
12938
+ if (fieldDefinitionsWithValues(formValues).length === 0 && isReadOnly && hideEmptyFields) {
12939
+ return jsx(FormattedMessage, _objectSpread$2({}, messages.noInputValues));
12940
+ }
12878
12941
  return jsx(Constraints.Horizontal, {
12879
12942
  max: "scale",
12880
12943
  children: jsx(CustomFields, {
12881
12944
  isReadOnly: isReadOnly,
12882
12945
  name: "".concat(FIELD_NAME, ".fields"),
12883
- fieldDefinitions: formValues[FIELD_NAME].type.obj.fieldDefinitions
12946
+ fieldDefinitions: isReadOnly && hideEmptyFields ? fieldDefinitionsWithValues(formValues) : formValues[FIELD_NAME].type.obj.fieldDefinitions
12884
12947
  })
12885
12948
  });
12886
12949
  };
@@ -12914,10 +12977,11 @@ const createFormStateFromTypeDefinition = selectedTypeDefinition => {
12914
12977
  };
12915
12978
  };
12916
12979
  const CustomTypeSubform = _ref => {
12917
- var _formValues$FIELD_NAM, _formValues$FIELD_NAM2;
12980
+ var _formValues$FIELD_NAM3, _formValues$FIELD_NAM4;
12918
12981
  let typeDefinitions = _ref.typeDefinitions,
12919
12982
  isReadOnly = _ref.isReadOnly,
12920
- isCondensed = _ref.isCondensed;
12983
+ isCondensed = _ref.isCondensed,
12984
+ hideEmptyFields = _ref.hideEmptyFields;
12921
12985
  const _useFormikContext = useFormikContext(),
12922
12986
  formValues = _valuesInstanceProperty(_useFormikContext),
12923
12987
  setFieldValue = _useFormikContext.setFieldValue,
@@ -12944,19 +13008,26 @@ const CustomTypeSubform = _ref => {
12944
13008
  });
12945
13009
  }
12946
13010
  }, [typeDefinitions, setFieldValue, validateForm]);
13011
+ const typeDefinitionSelected = formValues => {
13012
+ var _formValues$FIELD_NAM, _formValues$FIELD_NAM2;
13013
+ return ((_formValues$FIELD_NAM = formValues[FIELD_NAME]) === null || _formValues$FIELD_NAM === void 0 ? void 0 : _formValues$FIELD_NAM.type) && ((_formValues$FIELD_NAM2 = formValues[FIELD_NAME]) === null || _formValues$FIELD_NAM2 === void 0 || (_formValues$FIELD_NAM2 = _formValues$FIELD_NAM2.type) === null || _formValues$FIELD_NAM2 === void 0 ? void 0 : _formValues$FIELD_NAM2.obj);
13014
+ };
13015
+
13016
+ // if the user has read-only permissions, empty fields are hidden, and no type definition is selected, hide the component
13017
+ if (isReadOnly && hideEmptyFields && !typeDefinitionSelected(formValues)) return null;
12947
13018
  return jsx(CollapsiblePanel, {
12948
13019
  header: jsx(CollapsiblePanel.Header, {
12949
13020
  isCondensed: isCondensed,
12950
13021
  children: jsx(FormattedMessage, _objectSpread$1({}, messages.title))
12951
13022
  }),
12952
13023
  headerControls: typeDefinitions.length > 0 && jsx("div", {
12953
- css: /*#__PURE__*/css("min-width:", designTokens.constraint11, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:CustomTypeSubform;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImN1c3RvbS10eXBlLXN1YmZvcm0uanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtHb0IiLCJmaWxlIjoiY3VzdG9tLXR5cGUtc3ViZm9ybS5qc3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB1c2VGb3JtaWtDb250ZXh0IH0gZnJvbSAnZm9ybWlrJztcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHVzZUludGwgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7IHVzZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgZm9ybWF0TG9jYWxpemVkU3RyaW5nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvbDEwbic7XG5pbXBvcnQge1xuICBDb2xsYXBzaWJsZVBhbmVsLFxuICBTZWxlY3RJbnB1dCxcbiAgZGVzaWduVG9rZW5zLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC91aS1raXQnO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IEN1c3RvbUZpZWxkc0lucHV0V3JhcHBlciBmcm9tICcuL2N1c3RvbS1maWVsZHMtaW5wdXQtd3JhcHBlcic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBGSUVMRF9OQU1FIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vLyBDcmVhdGVzIGRyb3Bkb3duIG9wdGlvbnNcbmV4cG9ydCBjb25zdCBtYXBUeXBlRGVmaW5pdGlvbnNUb09wdGlvbnMgPSAoXG4gIHR5cGVEZWZpbml0aW9ucyxcbiAgbGFuZ3VhZ2UsXG4gIGxhbmd1YWdlcyxcbiAgc2VsZWN0ZWRUeXBlRGVmaW5pdGlvbklkXG4pID0+IHtcbiAgcmV0dXJuIHR5cGVEZWZpbml0aW9ucy5tYXAoKHR5cGVEZWZpbml0aW9uKSA9PiAoe1xuICAgIGlzRGlzYWJsZWQ6XG4gICAgICBzZWxlY3RlZFR5cGVEZWZpbml0aW9uSWQgJiZcbiAgICAgIHNlbGVjdGVkVHlwZURlZmluaXRpb25JZCA9PT0gdHlwZURlZmluaXRpb24udHlwZS5pZCxcbiAgICB2YWx1ZTogdHlwZURlZmluaXRpb24udHlwZS5rZXksXG4gICAgbGFiZWw6IGZvcm1hdExvY2FsaXplZFN0cmluZyh0eXBlRGVmaW5pdGlvbi50eXBlLCB7XG4gICAgICBrZXk6ICduYW1lJyxcbiAgICAgIGxvY2FsZTogbGFuZ3VhZ2UsXG4gICAgICBmYWxsYmFja09yZGVyOiBsYW5ndWFnZXMsXG4gICAgfSksXG4gIH0pKTtcbn07XG5cbi8vIFVzZWQgdG8gZ2VuZXJhdGUgZm9ybSBzdGF0ZSB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSB0eXBlIGRlZmluaXRpb24gZnJvbSB0aGUgZHJvcGRvd25cbmNvbnN0IGNyZWF0ZUZvcm1TdGF0ZUZyb21UeXBlRGVmaW5pdGlvbiA9IChzZWxlY3RlZFR5cGVEZWZpbml0aW9uKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZToge1xuICAgICAgaWQ6IHNlbGVjdGVkVHlwZURlZmluaXRpb24udHlwZS5pZCxcbiAgICAgIG9iajoge1xuICAgICAgICBmaWVsZERlZmluaXRpb25zOiBzZWxlY3RlZFR5cGVEZWZpbml0aW9uLnR5cGUuZmllbGREZWZpbml0aW9ucyxcbiAgICAgICAga2V5OiBzZWxlY3RlZFR5cGVEZWZpbml0aW9uLnR5cGUua2V5LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZpZWxkczoge30sXG4gIH07XG59O1xuXG5jb25zdCBDdXN0b21UeXBlU3ViZm9ybSA9ICh7IHR5cGVEZWZpbml0aW9ucywgaXNSZWFkT25seSwgaXNDb25kZW5zZWQgfSkgPT4ge1xuICBjb25zdCB7XG4gICAgdmFsdWVzOiBmb3JtVmFsdWVzLFxuICAgIHNldEZpZWxkVmFsdWUsXG4gICAgdmFsaWRhdGVGb3JtLFxuICB9ID0gdXNlRm9ybWlrQ29udGV4dCgpO1xuICBjb25zdCB7IGZvcm1hdE1lc3NhZ2UgfSA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsYW5ndWFnZSwgbGFuZ3VhZ2VzIH0gPSB1c2VBcHBsaWNhdGlvbkNvbnRleHQoXG4gICAgKGFwcGxpY2F0aW9uQ29udGV4dCkgPT4gKHtcbiAgICAgIGxhbmd1YWdlOiBhcHBsaWNhdGlvbkNvbnRleHQuZGF0YUxvY2FsZSxcbiAgICAgIGxhbmd1YWdlczogYXBwbGljYXRpb25Db250ZXh0LnByb2plY3QubGFuZ3VhZ2VzLFxuICAgIH0pXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlVHlwZURlZmluaXRpb25TZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVHlwZURlZmluaXRpb24gPSB0eXBlRGVmaW5pdGlvbnMuZmluZChcbiAgICAgICAgKHR5cGVEZWZpbml0aW9uKSA9PiB0eXBlRGVmaW5pdGlvbi50eXBlLmtleSA9PT0gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgICApO1xuXG4gICAgICBpZiAoc2VsZWN0ZWRUeXBlRGVmaW5pdGlvbikge1xuICAgICAgICBjb25zdCBuZXh0Q3VzdG9tID0gY3JlYXRlRm9ybVN0YXRlRnJvbVR5cGVEZWZpbml0aW9uKFxuICAgICAgICAgIHNlbGVjdGVkVHlwZURlZmluaXRpb25cbiAgICAgICAgKTtcblxuICAgICAgICBzZXRGaWVsZFZhbHVlKEZJRUxEX05BTUUsIG5leHRDdXN0b20pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHZhbGlkYXRlRm9ybSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGlmIHRoZSBkcm9wZG93biBzZWxlY3RvciBpcyBjbGVhcmVkLCByZW1vdmUgdGhlIGBjdXN0b21gIGZpZWxkIGZyb20gdGhlIGZvcm0gc3RhdGUgZW50aXJlbHlcbiAgICAgICAgc2V0RmllbGRWYWx1ZShGSUVMRF9OQU1FLCB1bmRlZmluZWQpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHZhbGlkYXRlRm9ybSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFt0eXBlRGVmaW5pdGlvbnMsIHNldEZpZWxkVmFsdWUsIHZhbGlkYXRlRm9ybV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxDb2xsYXBzaWJsZVBhbmVsXG4gICAgICBoZWFkZXI9e1xuICAgICAgICA8Q29sbGFwc2libGVQYW5lbC5IZWFkZXIgaXNDb25kZW5zZWQ9e2lzQ29uZGVuc2VkfT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMudGl0bGV9IC8+XG4gICAgICAgIDwvQ29sbGFwc2libGVQYW5lbC5IZWFkZXI+XG4gICAgICB9XG4gICAgICBoZWFkZXJDb250cm9scz17XG4gICAgICAgIHR5cGVEZWZpbml0aW9ucy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgbWluLXdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50MTF9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2VsZWN0SW5wdXRcbiAgICAgICAgICAgICAgaXNDbGVhcmFibGVcbiAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjdXN0b20tdHlwZS1zZWxlY3RcIlxuICAgICAgICAgICAgICBuYW1lPXtgJHtGSUVMRF9OQU1FfS50eXBlLm9iai5rZXlgfVxuICAgICAgICAgICAgICBvcHRpb25zPXttYXBUeXBlRGVmaW5pdGlvbnNUb09wdGlvbnMoXG4gICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb25zLFxuICAgICAgICAgICAgICAgIGxhbmd1YWdlLFxuICAgICAgICAgICAgICAgIGxhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVzW0ZJRUxEX05BTUVdPy50eXBlPy5pZFxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB2YWx1ZT17Zm9ybVZhbHVlc1tGSUVMRF9OQU1FXT8udHlwZT8ub2JqPy5rZXl9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUeXBlRGVmaW5pdGlvblNlbGVjdH1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2Zvcm1hdE1lc3NhZ2UobWVzc2FnZXMudHlwZXNQbGFjZWhvbGRlcil9XG4gICAgICAgICAgICAgIGlzUmVhZE9ubHk9e2lzUmVhZE9ubHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApXG4gICAgICB9XG4gICAgICBoZWFkZXJDb250cm9sc0FsaWdubWVudD1cInJpZ2h0XCJcbiAgICA+XG4gICAgICA8Q3VzdG9tRmllbGRzSW5wdXRXcmFwcGVyXG4gICAgICAgIHR5cGVEZWZpbml0aW9ucz17dHlwZURlZmluaXRpb25zfVxuICAgICAgICBpc1JlYWRPbmx5PXtpc1JlYWRPbmx5fVxuICAgICAgLz5cbiAgICA8L0NvbGxhcHNpYmxlUGFuZWw+XG4gICk7XG59O1xuXG5DdXN0b21UeXBlU3ViZm9ybS5kaXNwbGF5TmFtZSA9ICdDdXN0b21UeXBlU3ViZm9ybSc7XG5DdXN0b21UeXBlU3ViZm9ybS5wcm9wVHlwZXMgPSB7XG4gIHR5cGVEZWZpbml0aW9uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGlzUmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICBpc0NvbmRlbnNlZDogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDdXN0b21UeXBlU3ViZm9ybTtcbiJdfQ== */"),
13024
+ css: /*#__PURE__*/css("min-width:", designTokens.constraint11, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:CustomTypeSubform;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImN1c3RvbS10eXBlLXN1YmZvcm0uanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStHb0IiLCJmaWxlIjoiY3VzdG9tLXR5cGUtc3ViZm9ybS5qc3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB1c2VGb3JtaWtDb250ZXh0IH0gZnJvbSAnZm9ybWlrJztcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHVzZUludGwgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7IHVzZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgZm9ybWF0TG9jYWxpemVkU3RyaW5nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvbDEwbic7XG5pbXBvcnQge1xuICBDb2xsYXBzaWJsZVBhbmVsLFxuICBTZWxlY3RJbnB1dCxcbiAgZGVzaWduVG9rZW5zLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC91aS1raXQnO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IEN1c3RvbUZpZWxkc0lucHV0V3JhcHBlciBmcm9tICcuL2N1c3RvbS1maWVsZHMtaW5wdXQtd3JhcHBlcic7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBGSUVMRF9OQU1FIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vLyBDcmVhdGVzIGRyb3Bkb3duIG9wdGlvbnNcbmV4cG9ydCBjb25zdCBtYXBUeXBlRGVmaW5pdGlvbnNUb09wdGlvbnMgPSAoXG4gIHR5cGVEZWZpbml0aW9ucyxcbiAgbGFuZ3VhZ2UsXG4gIGxhbmd1YWdlcyxcbiAgc2VsZWN0ZWRUeXBlRGVmaW5pdGlvbklkXG4pID0+IHtcbiAgcmV0dXJuIHR5cGVEZWZpbml0aW9ucy5tYXAoKHR5cGVEZWZpbml0aW9uKSA9PiAoe1xuICAgIGlzRGlzYWJsZWQ6XG4gICAgICBzZWxlY3RlZFR5cGVEZWZpbml0aW9uSWQgJiZcbiAgICAgIHNlbGVjdGVkVHlwZURlZmluaXRpb25JZCA9PT0gdHlwZURlZmluaXRpb24udHlwZS5pZCxcbiAgICB2YWx1ZTogdHlwZURlZmluaXRpb24udHlwZS5rZXksXG4gICAgbGFiZWw6IGZvcm1hdExvY2FsaXplZFN0cmluZyh0eXBlRGVmaW5pdGlvbi50eXBlLCB7XG4gICAgICBrZXk6ICduYW1lJyxcbiAgICAgIGxvY2FsZTogbGFuZ3VhZ2UsXG4gICAgICBmYWxsYmFja09yZGVyOiBsYW5ndWFnZXMsXG4gICAgfSksXG4gIH0pKTtcbn07XG5cbi8vIFVzZWQgdG8gZ2VuZXJhdGUgZm9ybSBzdGF0ZSB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSB0eXBlIGRlZmluaXRpb24gZnJvbSB0aGUgZHJvcGRvd25cbmNvbnN0IGNyZWF0ZUZvcm1TdGF0ZUZyb21UeXBlRGVmaW5pdGlvbiA9IChzZWxlY3RlZFR5cGVEZWZpbml0aW9uKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZToge1xuICAgICAgaWQ6IHNlbGVjdGVkVHlwZURlZmluaXRpb24udHlwZS5pZCxcbiAgICAgIG9iajoge1xuICAgICAgICBmaWVsZERlZmluaXRpb25zOiBzZWxlY3RlZFR5cGVEZWZpbml0aW9uLnR5cGUuZmllbGREZWZpbml0aW9ucyxcbiAgICAgICAga2V5OiBzZWxlY3RlZFR5cGVEZWZpbml0aW9uLnR5cGUua2V5LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZpZWxkczoge30sXG4gIH07XG59O1xuXG5jb25zdCBDdXN0b21UeXBlU3ViZm9ybSA9ICh7XG4gIHR5cGVEZWZpbml0aW9ucyxcbiAgaXNSZWFkT25seSxcbiAgaXNDb25kZW5zZWQsXG4gIGhpZGVFbXB0eUZpZWxkcyxcbn0pID0+IHtcbiAgY29uc3Qge1xuICAgIHZhbHVlczogZm9ybVZhbHVlcyxcbiAgICBzZXRGaWVsZFZhbHVlLFxuICAgIHZhbGlkYXRlRm9ybSxcbiAgfSA9IHVzZUZvcm1pa0NvbnRleHQoKTtcbiAgY29uc3QgeyBmb3JtYXRNZXNzYWdlIH0gPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbGFuZ3VhZ2UsIGxhbmd1YWdlcyB9ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChhcHBsaWNhdGlvbkNvbnRleHQpID0+ICh7XG4gICAgICBsYW5ndWFnZTogYXBwbGljYXRpb25Db250ZXh0LmRhdGFMb2NhbGUsXG4gICAgICBsYW5ndWFnZXM6IGFwcGxpY2F0aW9uQ29udGV4dC5wcm9qZWN0Lmxhbmd1YWdlcyxcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVR5cGVEZWZpbml0aW9uU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZFR5cGVEZWZpbml0aW9uID0gdHlwZURlZmluaXRpb25zLmZpbmQoXG4gICAgICAgICh0eXBlRGVmaW5pdGlvbikgPT4gdHlwZURlZmluaXRpb24udHlwZS5rZXkgPT09IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgICAgKTtcblxuICAgICAgaWYgKHNlbGVjdGVkVHlwZURlZmluaXRpb24pIHtcbiAgICAgICAgY29uc3QgbmV4dEN1c3RvbSA9IGNyZWF0ZUZvcm1TdGF0ZUZyb21UeXBlRGVmaW5pdGlvbihcbiAgICAgICAgICBzZWxlY3RlZFR5cGVEZWZpbml0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgc2V0RmllbGRWYWx1ZShGSUVMRF9OQU1FLCBuZXh0Q3VzdG9tKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB2YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpZiB0aGUgZHJvcGRvd24gc2VsZWN0b3IgaXMgY2xlYXJlZCwgcmVtb3ZlIHRoZSBgY3VzdG9tYCBmaWVsZCBmcm9tIHRoZSBmb3JtIHN0YXRlIGVudGlyZWx5XG4gICAgICAgIHNldEZpZWxkVmFsdWUoRklFTERfTkFNRSwgdW5kZWZpbmVkKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB2YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbdHlwZURlZmluaXRpb25zLCBzZXRGaWVsZFZhbHVlLCB2YWxpZGF0ZUZvcm1dXG4gICk7XG5cbiAgY29uc3QgdHlwZURlZmluaXRpb25TZWxlY3RlZCA9IChmb3JtVmFsdWVzKSA9PiB7XG4gICAgcmV0dXJuIGZvcm1WYWx1ZXNbRklFTERfTkFNRV0/LnR5cGUgJiYgZm9ybVZhbHVlc1tGSUVMRF9OQU1FXT8udHlwZT8ub2JqO1xuICB9O1xuXG4gIC8vIGlmIHRoZSB1c2VyIGhhcyByZWFkLW9ubHkgcGVybWlzc2lvbnMsIGVtcHR5IGZpZWxkcyBhcmUgaGlkZGVuLCBhbmQgbm8gdHlwZSBkZWZpbml0aW9uIGlzIHNlbGVjdGVkLCBoaWRlIHRoZSBjb21wb25lbnRcbiAgaWYgKGlzUmVhZE9ubHkgJiYgaGlkZUVtcHR5RmllbGRzICYmICF0eXBlRGVmaW5pdGlvblNlbGVjdGVkKGZvcm1WYWx1ZXMpKVxuICAgIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPENvbGxhcHNpYmxlUGFuZWxcbiAgICAgIGhlYWRlcj17XG4gICAgICAgIDxDb2xsYXBzaWJsZVBhbmVsLkhlYWRlciBpc0NvbmRlbnNlZD17aXNDb25kZW5zZWR9PlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy50aXRsZX0gLz5cbiAgICAgICAgPC9Db2xsYXBzaWJsZVBhbmVsLkhlYWRlcj5cbiAgICAgIH1cbiAgICAgIGhlYWRlckNvbnRyb2xzPXtcbiAgICAgICAgdHlwZURlZmluaXRpb25zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBtaW4td2lkdGg6ICR7ZGVzaWduVG9rZW5zLmNvbnN0cmFpbnQxMX07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICAgICAgICBpc0NsZWFyYWJsZVxuICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImN1c3RvbS10eXBlLXNlbGVjdFwiXG4gICAgICAgICAgICAgIG5hbWU9e2Ake0ZJRUxEX05BTUV9LnR5cGUub2JqLmtleWB9XG4gICAgICAgICAgICAgIG9wdGlvbnM9e21hcFR5cGVEZWZpbml0aW9uc1RvT3B0aW9ucyhcbiAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbnMsXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXNbRklFTERfTkFNRV0/LnR5cGU/LmlkXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHZhbHVlPXtmb3JtVmFsdWVzW0ZJRUxEX05BTUVdPy50eXBlPy5vYmo/LmtleX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVR5cGVEZWZpbml0aW9uU2VsZWN0fVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17Zm9ybWF0TWVzc2FnZShtZXNzYWdlcy50eXBlc1BsYWNlaG9sZGVyKX1cbiAgICAgICAgICAgICAgaXNSZWFkT25seT17aXNSZWFkT25seX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGhlYWRlckNvbnRyb2xzQWxpZ25tZW50PVwicmlnaHRcIlxuICAgID5cbiAgICAgIDxDdXN0b21GaWVsZHNJbnB1dFdyYXBwZXJcbiAgICAgICAgdHlwZURlZmluaXRpb25zPXt0eXBlRGVmaW5pdGlvbnN9XG4gICAgICAgIGlzUmVhZE9ubHk9e2lzUmVhZE9ubHl9XG4gICAgICAgIGhpZGVFbXB0eUZpZWxkcz17aGlkZUVtcHR5RmllbGRzfVxuICAgICAgLz5cbiAgICA8L0NvbGxhcHNpYmxlUGFuZWw+XG4gICk7XG59O1xuXG5DdXN0b21UeXBlU3ViZm9ybS5kaXNwbGF5TmFtZSA9ICdDdXN0b21UeXBlU3ViZm9ybSc7XG5DdXN0b21UeXBlU3ViZm9ybS5wcm9wVHlwZXMgPSB7XG4gIHR5cGVEZWZpbml0aW9uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGlzUmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICBpc0NvbmRlbnNlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGhpZGVFbXB0eUZpZWxkczogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDdXN0b21UeXBlU3ViZm9ybTtcbiJdfQ== */"),
12954
13025
  children: jsx(SelectInput, {
12955
13026
  isClearable: true,
12956
13027
  "data-testid": "custom-type-select",
12957
13028
  name: "".concat(FIELD_NAME, ".type.obj.key"),
12958
- options: mapTypeDefinitionsToOptions(typeDefinitions, language, languages, (_formValues$FIELD_NAM = formValues[FIELD_NAME]) === null || _formValues$FIELD_NAM === void 0 || (_formValues$FIELD_NAM = _formValues$FIELD_NAM.type) === null || _formValues$FIELD_NAM === void 0 ? void 0 : _formValues$FIELD_NAM.id),
12959
- value: (_formValues$FIELD_NAM2 = formValues[FIELD_NAME]) === null || _formValues$FIELD_NAM2 === void 0 || (_formValues$FIELD_NAM2 = _formValues$FIELD_NAM2.type) === null || _formValues$FIELD_NAM2 === void 0 || (_formValues$FIELD_NAM2 = _formValues$FIELD_NAM2.obj) === null || _formValues$FIELD_NAM2 === void 0 ? void 0 : _formValues$FIELD_NAM2.key,
13029
+ options: mapTypeDefinitionsToOptions(typeDefinitions, language, languages, (_formValues$FIELD_NAM3 = formValues[FIELD_NAME]) === null || _formValues$FIELD_NAM3 === void 0 || (_formValues$FIELD_NAM3 = _formValues$FIELD_NAM3.type) === null || _formValues$FIELD_NAM3 === void 0 ? void 0 : _formValues$FIELD_NAM3.id),
13030
+ value: (_formValues$FIELD_NAM4 = formValues[FIELD_NAME]) === null || _formValues$FIELD_NAM4 === void 0 || (_formValues$FIELD_NAM4 = _formValues$FIELD_NAM4.type) === null || _formValues$FIELD_NAM4 === void 0 || (_formValues$FIELD_NAM4 = _formValues$FIELD_NAM4.obj) === null || _formValues$FIELD_NAM4 === void 0 ? void 0 : _formValues$FIELD_NAM4.key,
12960
13031
  onChange: handleTypeDefinitionSelect,
12961
13032
  placeholder: formatMessage(messages.typesPlaceholder),
12962
13033
  isReadOnly: isReadOnly
@@ -12965,7 +13036,8 @@ const CustomTypeSubform = _ref => {
12965
13036
  headerControlsAlignment: "right",
12966
13037
  children: jsx(CustomFieldsInputWrapper, {
12967
13038
  typeDefinitions: typeDefinitions,
12968
- isReadOnly: isReadOnly
13039
+ isReadOnly: isReadOnly,
13040
+ hideEmptyFields: hideEmptyFields
12969
13041
  })
12970
13042
  });
12971
13043
  };
@@ -13061,7 +13133,8 @@ const createGraphQlDocFromFormState = formState => {
13061
13133
  const CustomFieldsFormField = _ref => {
13062
13134
  let resources = _ref.resources,
13063
13135
  isReadOnly = _ref.isReadOnly,
13064
- isCondensed = _ref.isCondensed;
13136
+ isCondensed = _ref.isCondensed,
13137
+ hideEmptyFields = _ref.hideEmptyFields;
13065
13138
  const projectKey = useApplicationContext(applicationContext => applicationContext.project.key);
13066
13139
  return jsx(CustomFieldTypeDefinitionsConnector$1, {
13067
13140
  resources: resources,
@@ -13078,7 +13151,8 @@ const CustomFieldsFormField = _ref => {
13078
13151
  return jsx(CustomTypeSubform, {
13079
13152
  typeDefinitions: typeDefinitions,
13080
13153
  isReadOnly: isReadOnly,
13081
- isCondensed: isCondensed
13154
+ isCondensed: isCondensed,
13155
+ hideEmptyFields: hideEmptyFields
13082
13156
  });
13083
13157
  }
13084
13158
  });
@@ -13088,4 +13162,4 @@ CustomFieldsFormField.createGraphQlDocFromFormState = createGraphQlDocFromFormSt
13088
13162
 
13089
13163
  var CategorySearchPickerOptionFragment = { kind: "Document", definitions: [{ kind: "FragmentDefinition", name: { kind: "Name", value: "CategorySearchPickerOptionFragment" }, typeCondition: { kind: "NamedType", name: { kind: "Name", value: "CategorySearch" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "externalId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "nameAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "slugAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "parent" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "nameAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "ancestors" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "nameAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }] } }], loc: { start: 0, end: 685, source: { body: "query SearchCategoryReference($locale: Locale!, $text: String!) {\n categories: categoryAutocomplete(locale: $locale, text: $text) {\n results {\n ...CategorySearchPickerOptionFragment\n }\n }\n}\n\nquery FetchCategoriesByIds($where: String!) {\n categories(where: $where) {\n results {\n id\n nameAllLocales {\n locale\n value\n }\n }\n }\n}\n\nfragment CategorySearchPickerOptionFragment on CategorySearch {\n id\n externalId\n nameAllLocales {\n locale\n value\n }\n slugAllLocales {\n locale\n value\n }\n parent {\n nameAllLocales {\n locale\n value\n }\n }\n ancestors {\n nameAllLocales {\n locale\n value\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
13090
13164
 
13091
- export { booleanField as BooleanField, Button, CartDiscountReferenceSearch, CategoryReferenceSearch, CategorySearchPickerOptionFragment, CenteredLoadingSpinner, ChannelPickerInput, CountriesPicker, customFieldDefinitionsConnector as CustomFieldDefinitionsConnector, CustomFieldTypeDefinitionsConnector$1 as CustomFieldTypeDefinitionsConnector, CustomFields, CustomFieldsErrorTextNotification, CustomFieldsFormField, CustomerGroupPickerInput, DefaultPageSizes, Divider, EMAIL_REGEX, FileInput, FormattedDateTime$1 as FormattedDateTime, LabelRange, MissingValueField, MultiValueSearchInput, numericFormatInput as NumericFormatInput, PRECISION_TYPES, pimIndexerProvider as PimIndexerProvider, ProductAttributeInput, ProductAttributes, ProductPickerInput, ProductSelectionsPicker as ProductSelectionPicker, RequestCache, RequiredIndicator, ScrollToFieldError, searchInput as SearchInput, SelectableFieldSearchInput, StoreSelectField, StoreSelectInput, ThrottledField, VALIDATOR_INTEGER, VALIDATOR_NUMERIC, VALIDATOR_REQUIRED, WithPimIndexer, allowedProperties, and, attributesMapToNameValuePairs, base64ToString, messages$8 as booleanMessages, buildSearchQuery, businessRoleConstants, messages$r as businessRoleMessages, businessRoleKeys as businessRoles, capitalizeFirst, clone, coerceToInteger, computedProperties, convertApolloNetworkStatusToLoadingState, convertApolloQueryDataToConnectorData, convertProductSelectionFromGraphQl, convertRatioToPercentage, createGraphQlUpdateActions, createNextSortDefinition, createReducer, createResourceReducer, handlers$2 as customFieldDefinitionsMockHanders, customFields as customFieldsTransformer, dateTransformer$1 as dateTransformer, exact, exists, extractErrorFromGraphQlResponse, filterCustomTypeUpdateActionValues, filterDataAttributes, filterEmptyValues, formatCustomField, formatCustomerAddress, formatCustomerName, formatDateRangeValue, formatDateTime$1 as formatDateTime, formatDiscount, formatMoney$1 as formatMoney, formatMoneyRangeValue, formatMoneyValue, formatPercentage, formatAttribute as formatProductAttribute, getAncestors, getAttributeValueByType, getAttributeValueType, getBulkNotification, getCategoryLevel, getCountsFromBulkSummary, getDiscountValue, getDisplayName, getFractionedAmount, getIndexesOfInvalidValues, getMinimumPricesByCurrencyCode, getNetUnitPrice, getPathName, getPrefixSearchBounds, getPriceChannelName, getReferenceTypeId, getSelectedPrice, getTimeZoneId, getTimeZoneLabel, getTypeNameOfType, graphqlCategoryLevelTransformer, dateTransformer as graphqlDateTransformer, missingLocaleTransformer as graphqlMissingLocaleTransformer, missingTransformer as graphqlMissingTransformer, numberTransformer as graphqlNumberTransformer, graphqlQueryBuilder, referenceTransformer as graphqlReferenceTransformer, textTransformer as graphqlTextTransformer, hasInvalidInputError, hasSemanticError, injectCustomerGroupsPlatformLimits, injectCustomersPlatformLimits, injectDataTablePaginationState, injectModalState$1 as injectModalState, injectNotifications, injectPimIndexer, injectShippingMethodsPlatformLimits, injectStorage, injectTaxCategoriesPlatformLimits, injectModalState as injectToggleState, injectZonesPlatformLimits, isEmptyFilter as isEmpty, isEmptyValue, isUUID, isValidISODate, isValidISODateTime, isValidISOTime, keepDisplayName, mapStoresToOptions, mapTimeZonesToOptions, minusify, messages$7 as missingValueMessages, nameValuePairsToMap, normalizeProductSettings, not, omitDeep, omitSetsOfSets, or, commonPickerMessages as pickerMessages, handlers as platformLimitsMockHandlers, handlers$3 as productSelectionsFetcherMockHandler, handlers$4 as productSelectionsTotalFetcherMockHandler, range, reorderArrayItems, resolveStatusType, safelyAddFallback, sanitize, searchCategories, messages$F as searchInputMessages, setDisplayName, setToArray, shallowEqual, shouldUpdateAttributeInput, slugify, sortDataByIdsArray, sortRequiresLanguage, splitVariantAttributesByConstraint, handlers$5 as storesListConnectorMockHandlers, stringToBase64, swapArrayItems, transformAllToProperNounCase, transformCustomFieldsRawToCustomFields, transformLocalizedFieldsForCategory, truncate, unique, uniqueObjects, useCachedCategoryOptions, useCustomerGroupsPlatformLimits, useCustomersPlatformLimits, useDebouncedPromiseCallback, useFormatLocalizedFieldToString, useLocalizedKeyFallback, usePendingRequests, usePersistedTableConfiguration, usePimIndexer, usePrevious, useProductSelectionsFetcher, useProductSelectionsTotalFetcher, useRoleNotificationEffect, useShippingMethodsLimits as useShippingMethodsPlatformLimits, useStorage, useStoreKeysInDataFences, useStoresListFetcher, useTaxCategoriesLimits as useTaxCategoriesPlatformLimits, useTotalNumberOfStoresFetcher, handlers$1 as useTotalNumberOfStoresFetcherHandlers, validateFilter$2 as validateCustomField, validations as validateCustomFields, validateFilter$1 as validateDate, validateMultiOptionEnum, validateFilter as validateNumber, validateSingleOptionEnum, validateText, validatedInput, messages$K as validationMessages, withPendingRequests, withProps, withRedirectTo, withoutEmptyErrorsByField, wrapDisplayName };
13165
+ export { booleanField as BooleanField, Button, CartDiscountReferenceSearch, CategoryReferenceSearch, CategorySearchPickerOptionFragment, CenteredLoadingSpinner, ChannelPickerInput, CountriesPicker, customFieldDefinitionsConnector as CustomFieldDefinitionsConnector, CustomFieldTypeDefinitionsConnector$1 as CustomFieldTypeDefinitionsConnector, CustomFields, CustomFieldsErrorTextNotification, CustomFieldsFormField, CustomerGroupPickerInput, DefaultPageSizes, Divider, EMAIL_REGEX, FileInput, FormattedDateTime$1 as FormattedDateTime, LabelRange, MissingValueField, MultiValueSearchInput, numericFormatInput as NumericFormatInput, PRECISION_TYPES, pimIndexerProvider as PimIndexerProvider, ProductAttributeInput, ProductAttributes, ProductPickerInput, ProductSelectionsPicker as ProductSelectionPicker, RequestCache, RequiredIndicator, ScrollToFieldError, searchInput as SearchInput, SelectableFieldSearchInput, StoreSelectField, StoreSelectInput, ThrottledField, VALIDATOR_INTEGER, VALIDATOR_NUMERIC, VALIDATOR_REQUIRED, WithPimIndexer, allowedProperties, and, attributesMapToNameValuePairs, base64ToString, messages$8 as booleanMessages, buildSearchQuery, businessRoleConstants, messages$r as businessRoleMessages, businessRoleKeys as businessRoles, capitalizeFirst, clone, coerceToInteger, computedProperties, convertApolloNetworkStatusToLoadingState, convertApolloQueryDataToConnectorData, convertProductSelectionFromGraphQl, convertRatioToPercentage, createGraphQlUpdateActions, createNextSortDefinition, createReducer, createResourceReducer, handlers$2 as customFieldDefinitionsMockHanders, customFields as customFieldsTransformer, dateTransformer$1 as dateTransformer, exact, exists, extractErrorFromGraphQlResponse, filterCustomTypeUpdateActionValues, filterDataAttributes, filterEmptyValues, formatCustomField, formatCustomerAddress, formatCustomerName, formatDateRangeValue, formatDateTime$1 as formatDateTime, formatDiscount, formatMoney$2 as formatMoney, formatMoneyRangeValue, formatMoneyValue, formatPercentage, formatAttribute as formatProductAttribute, getAncestors, getAttributeValueByType, getAttributeValueType, getBulkNotification, getCategoryLevel, getCountsFromBulkSummary, getDiscountValue, getDisplayName, getFractionedAmount, getIndexesOfInvalidValues, getMinimumPricesByCurrencyCode, getNetUnitPrice, getPathName, getPrefixSearchBounds, getPriceChannelName, getReferenceTypeId, getSelectedPrice, getTimeZoneId, getTimeZoneLabel, getTypeNameOfType, graphqlCategoryLevelTransformer, dateTransformer as graphqlDateTransformer, missingLocaleTransformer as graphqlMissingLocaleTransformer, missingTransformer as graphqlMissingTransformer, numberTransformer as graphqlNumberTransformer, graphqlQueryBuilder, referenceTransformer as graphqlReferenceTransformer, textTransformer as graphqlTextTransformer, hasInvalidInputError, hasSemanticError, injectCustomerGroupsPlatformLimits, injectCustomersPlatformLimits, injectDataTablePaginationState, injectModalState$1 as injectModalState, injectNotifications, injectPimIndexer, injectShippingMethodsPlatformLimits, injectStorage, injectTaxCategoriesPlatformLimits, injectModalState as injectToggleState, injectZonesPlatformLimits, isEmptyFilter as isEmpty, isEmptyValue, isUUID, isValidISODate, isValidISODateTime, isValidISOTime, keepDisplayName, mapStoresToOptions, mapTimeZonesToOptions, minusify, messages$7 as missingValueMessages, nameValuePairsToMap, normalizeProductSettings, not, omitDeep, omitSetsOfSets, or, commonPickerMessages as pickerMessages, handlers as platformLimitsMockHandlers, handlers$3 as productSelectionsFetcherMockHandler, handlers$4 as productSelectionsTotalFetcherMockHandler, range, reorderArrayItems, resolveStatusType, safelyAddFallback, sanitize, searchCategories, messages$F as searchInputMessages, setDisplayName, setToArray, shallowEqual, shouldUpdateAttributeInput, slugify, sortDataByIdsArray, sortRequiresLanguage, splitVariantAttributesByConstraint, handlers$5 as storesListConnectorMockHandlers, stringToBase64, swapArrayItems, transformAllToProperNounCase, transformCustomFieldsRawToCustomFields, transformLocalizedFieldsForCategory, truncate, unique, uniqueObjects, useCachedCategoryOptions, useCustomerGroupsPlatformLimits, useCustomersPlatformLimits, useDebouncedPromiseCallback, useFormatLocalizedFieldToString, useLocalizedKeyFallback, usePendingRequests, usePersistedTableConfiguration, usePimIndexer, usePrevious, useProductSelectionsFetcher, useProductSelectionsTotalFetcher, useRoleNotificationEffect, useShippingMethodsLimits as useShippingMethodsPlatformLimits, useStorage, useStoreKeysInDataFences, useStoresListFetcher, useTaxCategoriesLimits as useTaxCategoriesPlatformLimits, useTotalNumberOfStoresFetcher, handlers$1 as useTotalNumberOfStoresFetcherHandlers, validateFilter$2 as validateCustomField, validations as validateCustomFields, validateFilter$1 as validateDate, validateMultiOptionEnum, validateFilter as validateNumber, validateSingleOptionEnum, validateText, validatedInput, messages$K as validationMessages, withPendingRequests, withProps, withRedirectTo, withoutEmptyErrorsByField, wrapDisplayName };
package/dist/styles.css CHANGED
@@ -50,90 +50,6 @@
50
50
  border-bottom-left-radius: var(--border-radius-for-input);
51
51
  border-bottom-right-radius: var(--border-radius-for-input);
52
52
  }
53
- /* imported from numeric-format-input.module.css */
54
-
55
- .numeric-format-input-module__invalid___3LcyE {
56
- /* this needs !important because react-select has a :focus style that
57
- stops the border colour being set unless the element is blurred */
58
- border-color: var(--color-error) !important;
59
- border: 1px solid;
60
- }
61
-
62
- .numeric-format-input-module__disabled___hb6h4 {
63
- cursor: not-allowed;
64
- }
65
- /* imported from throttled-field.module.css */
66
-
67
- .throttled-field-module__size___324jx {
68
- width: 100%;
69
- }
70
-
71
- .throttled-field-module__size___324jx {
72
- min-height: var(--height-for-input);
73
- }
74
-
75
- .throttled-field-module__input-text___3zFFp {
76
- transition: 0.2s ease;
77
- border-radius: 6px;
78
- border-style: solid;
79
- border-width: 1px;
80
- color: var(--color-solid);
81
- font-weight: 500;
82
- font-size: 1rem;
83
- font-family: 'Open Sans', sans-serif !important;
84
- padding: 7.5px 10px;
85
- outline: none;
86
- box-shadow: none;
87
- appearance: none;
88
- }
89
-
90
- .throttled-field-module__input-secondary___cFo9e {
91
- background-color: var(--color-neutral-95);
92
- border-color: var(--color-surface);
93
- width: 100%;
94
- }
95
-
96
- .throttled-field-module__input-primary___26G3R {
97
- border-color: var(--color-neutral);
98
- background-color: var(--color-surface);
99
- }
100
-
101
- .throttled-field-module__textarea___3ZNEs {
102
- width: 100%;
103
- min-height: 36px;
104
- resize: vertical;
105
- }
106
-
107
- .throttled-field-module__textarea-primary___24Wwt {
108
- border-color: var(--color-neutral);
109
- background-color: var(--color-surface);
110
- }
111
-
112
- .throttled-field-module__textarea-secondary___2rmFG {
113
- background-color: var(--color-neutral-95);
114
- border-color: var(--color-surface);
115
- width: 100%;
116
- }
117
-
118
- .throttled-field-module__invalid___1yZLW {
119
- /* this needs !important because react-select has a :focus style that
120
- stops the border colour being set unless the element is blurred */
121
- border-color: var(--color-error) !important;
122
- border: 1px solid;
123
- }
124
-
125
- .throttled-field-module__disabled___qVj79 {
126
- cursor: not-allowed;
127
- background-color: var(--color-accent-98);
128
- color: var(--color-solid);
129
- opacity: 1; /* fix for mobile safari */
130
- }
131
-
132
- .throttled-field-module__granular___2LXJf {
133
- border-top-left-radius: 0;
134
- border-bottom-left-radius: 0;
135
- margin-left: 0;
136
- }
137
53
  /* imported from search-input.module.css */
138
54
 
139
55
  .search-input-module__block___1uM-y {
@@ -224,6 +140,16 @@
224
140
  flex-shrink: 1;
225
141
  margin-left: var(--spacing-s);
226
142
  }
143
+ /* imported from required-indicator.module.css */
144
+
145
+ .required-indicator-module__colored____YUFm {
146
+ color: var(--color-warning);
147
+ }
148
+
149
+ .required-indicator-module__indicatorAsterisk___3lEdX {
150
+ font-style: normal;
151
+ margin-left: 2px;
152
+ }
227
153
  /* imported from selectable-field-search-input.module.css */
228
154
 
229
155
  .selectable-field-search-input-module__container___z2ltR {
@@ -240,16 +166,6 @@
240
166
  margin-top: 2px;
241
167
  position: absolute;
242
168
  }
243
- /* imported from required-indicator.module.css */
244
-
245
- .required-indicator-module__colored____YUFm {
246
- color: var(--color-warning);
247
- }
248
-
249
- .required-indicator-module__indicatorAsterisk___3lEdX {
250
- font-style: normal;
251
- margin-left: 2px;
252
- }
253
169
  /* imported from validated-input.module.css */
254
170
 
255
171
  .validated-input-module__invalid___380EL {
@@ -261,6 +177,90 @@
261
177
  .validated-input-module__container___3L2KB {
262
178
  display: inline;
263
179
  }
180
+ /* imported from numeric-format-input.module.css */
181
+
182
+ .numeric-format-input-module__invalid___3LcyE {
183
+ /* this needs !important because react-select has a :focus style that
184
+ stops the border colour being set unless the element is blurred */
185
+ border-color: var(--color-error) !important;
186
+ border: 1px solid;
187
+ }
188
+
189
+ .numeric-format-input-module__disabled___hb6h4 {
190
+ cursor: not-allowed;
191
+ }
192
+ /* imported from throttled-field.module.css */
193
+
194
+ .throttled-field-module__size___324jx {
195
+ width: 100%;
196
+ }
197
+
198
+ .throttled-field-module__size___324jx {
199
+ min-height: var(--height-for-input);
200
+ }
201
+
202
+ .throttled-field-module__input-text___3zFFp {
203
+ transition: 0.2s ease;
204
+ border-radius: 6px;
205
+ border-style: solid;
206
+ border-width: 1px;
207
+ color: var(--color-solid);
208
+ font-weight: 500;
209
+ font-size: 1rem;
210
+ font-family: 'Open Sans', sans-serif !important;
211
+ padding: 7.5px 10px;
212
+ outline: none;
213
+ box-shadow: none;
214
+ appearance: none;
215
+ }
216
+
217
+ .throttled-field-module__input-secondary___cFo9e {
218
+ background-color: var(--color-neutral-95);
219
+ border-color: var(--color-surface);
220
+ width: 100%;
221
+ }
222
+
223
+ .throttled-field-module__input-primary___26G3R {
224
+ border-color: var(--color-neutral);
225
+ background-color: var(--color-surface);
226
+ }
227
+
228
+ .throttled-field-module__textarea___3ZNEs {
229
+ width: 100%;
230
+ min-height: 36px;
231
+ resize: vertical;
232
+ }
233
+
234
+ .throttled-field-module__textarea-primary___24Wwt {
235
+ border-color: var(--color-neutral);
236
+ background-color: var(--color-surface);
237
+ }
238
+
239
+ .throttled-field-module__textarea-secondary___2rmFG {
240
+ background-color: var(--color-neutral-95);
241
+ border-color: var(--color-surface);
242
+ width: 100%;
243
+ }
244
+
245
+ .throttled-field-module__invalid___1yZLW {
246
+ /* this needs !important because react-select has a :focus style that
247
+ stops the border colour being set unless the element is blurred */
248
+ border-color: var(--color-error) !important;
249
+ border: 1px solid;
250
+ }
251
+
252
+ .throttled-field-module__disabled___qVj79 {
253
+ cursor: not-allowed;
254
+ background-color: var(--color-accent-98);
255
+ color: var(--color-solid);
256
+ opacity: 1; /* fix for mobile safari */
257
+ }
258
+
259
+ .throttled-field-module__granular___2LXJf {
260
+ border-top-left-radius: 0;
261
+ border-bottom-left-radius: 0;
262
+ margin-left: 0;
263
+ }
264
264
  /* imported from button.module.css */
265
265
 
266
266
  /* Generic button */
@@ -500,6 +500,15 @@
500
500
  width: 1px;
501
501
  height: 1px;
502
502
  }
503
+ /* imported from centered-loading-spinner.module.css */
504
+
505
+ .centered-loading-spinner-module__loading-container___3_9-h {
506
+ height: 100%;
507
+ display: flex;
508
+ flex-grow: 1;
509
+ align-items: center;
510
+ justify-content: center;
511
+ }
503
512
  /* imported from divider.module.css */
504
513
 
505
514
  .divider-module__divider___4-vdy {
@@ -518,15 +527,6 @@
518
527
  .divider-module__divider-dashed___2Em8A {
519
528
  border-style: dashed;
520
529
  }
521
- /* imported from centered-loading-spinner.module.css */
522
-
523
- .centered-loading-spinner-module__loading-container___3_9-h {
524
- height: 100%;
525
- display: flex;
526
- flex-grow: 1;
527
- align-items: center;
528
- justify-content: center;
529
- }
530
530
  /* imported from reference-search.module.css */
531
531
 
532
532
  .reference-search-module__container___3-iK3 {