@telefonica/mistica 10.14.1 → 10.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/button.js +16 -26
  3. package/dist/checkbox.js +11 -7
  4. package/dist/credit-card-expiration-field.js +2 -7
  5. package/dist/credit-card-number-field.js +2 -2
  6. package/dist/cvv-field.js +2 -2
  7. package/dist/date-field.js +2 -2
  8. package/dist/date-time-field.js +2 -2
  9. package/dist/date-time-picker.js +12 -6
  10. package/dist/decimal-field.js +2 -7
  11. package/dist/email-field.js +2 -7
  12. package/dist/feedback.js +5 -8
  13. package/dist/iban-field.js +2 -7
  14. package/dist/index.d.ts +2 -1
  15. package/dist/index.js +13 -0
  16. package/dist/index.js.flow +2 -1
  17. package/dist/integer-field.js +2 -7
  18. package/dist/list.d.ts +1 -0
  19. package/dist/list.js +63 -26
  20. package/dist/list.js.flow +1 -0
  21. package/dist/menu.d.ts +1 -1
  22. package/dist/menu.js +34 -27
  23. package/dist/menu.js.flow +1 -1
  24. package/dist/month-field.js +2 -2
  25. package/dist/package-version.js +1 -1
  26. package/dist/password-field.js +2 -2
  27. package/dist/phone-number-field.js +2 -7
  28. package/dist/radio-button.js +13 -9
  29. package/dist/search-field.js +2 -2
  30. package/dist/select.js +7 -18
  31. package/dist/skins/blau.js +0 -24
  32. package/dist/skins/movistar.js +0 -23
  33. package/dist/skins/o2-classic.js +0 -24
  34. package/dist/skins/o2.js +0 -23
  35. package/dist/skins/types.d.ts +0 -12
  36. package/dist/skins/types.js.flow +0 -12
  37. package/dist/skins/vivo.js +0 -23
  38. package/dist/switch-component.js +12 -9
  39. package/dist/text-field-base.d.ts +3 -2
  40. package/dist/text-field-base.js +15 -33
  41. package/dist/text-field-base.js.flow +6 -2
  42. package/dist/text-field-components.d.ts +0 -1
  43. package/dist/text-field-components.js +8 -15
  44. package/dist/text-field-components.js.flow +0 -1
  45. package/dist/text-field.d.ts +2 -1
  46. package/dist/text-field.js +10 -16
  47. package/dist/text-field.js.flow +5 -1
  48. package/dist/text-link.d.ts +1 -0
  49. package/dist/text-link.js +16 -9
  50. package/dist/text-link.js.flow +1 -0
  51. package/dist/touchable.js +2 -3
  52. package/dist-es/button.js +16 -26
  53. package/dist-es/checkbox.js +11 -7
  54. package/dist-es/credit-card-expiration-field.js +2 -2
  55. package/dist-es/credit-card-number-field.js +2 -2
  56. package/dist-es/cvv-field.js +2 -2
  57. package/dist-es/date-field.js +2 -2
  58. package/dist-es/date-time-field.js +2 -2
  59. package/dist-es/date-time-picker.js +12 -6
  60. package/dist-es/decimal-field.js +2 -2
  61. package/dist-es/email-field.js +2 -2
  62. package/dist-es/feedback.js +5 -8
  63. package/dist-es/iban-field.js +2 -2
  64. package/dist-es/index.js +2 -1
  65. package/dist-es/integer-field.js +2 -2
  66. package/dist-es/list.js +63 -26
  67. package/dist-es/menu.js +35 -28
  68. package/dist-es/month-field.js +2 -2
  69. package/dist-es/package-version.js +1 -1
  70. package/dist-es/password-field.js +2 -2
  71. package/dist-es/phone-number-field.js +2 -2
  72. package/dist-es/radio-button.js +13 -9
  73. package/dist-es/search-field.js +2 -2
  74. package/dist-es/select.js +7 -18
  75. package/dist-es/skins/blau.js +0 -24
  76. package/dist-es/skins/movistar.js +0 -23
  77. package/dist-es/skins/o2-classic.js +0 -24
  78. package/dist-es/skins/o2.js +0 -23
  79. package/dist-es/skins/vivo.js +0 -23
  80. package/dist-es/switch-component.js +12 -9
  81. package/dist-es/text-field-base.js +15 -32
  82. package/dist-es/text-field-components.js +8 -15
  83. package/dist-es/text-field.js +9 -12
  84. package/dist-es/text-link.js +14 -8
  85. package/dist-es/touchable.js +2 -3
  86. package/package.json +12 -3
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.default = void 0;
5
+ exports.TextFieldBase = exports.TextFieldBaseAutosuggest = void 0;
6
6
  var _jsxRuntime = require("react/jsx-runtime");
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _jss = require("./jss");
@@ -171,10 +171,6 @@ var commonInputStyles = function commonInputStyles(theme) {
171
171
  opacity: 0.5
172
172
  }
173
173
  },
174
- '&:disabled': {
175
- color: theme.colors.textDisabled,
176
- cursor: 'not-allowed'
177
- },
178
174
  boxShadow: 'none'
179
175
  };
180
176
  };
@@ -288,11 +284,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
288
284
  paddingRight: 16,
289
285
  display: 'flex',
290
286
  alignItems: 'center',
291
- alignSelf: 'center',
292
- opacity: function opacity(param) {
293
- var disabled = param.disabled;
294
- return disabled ? 0.3 : 1;
295
- }
287
+ alignSelf: 'center'
296
288
  },
297
289
  startIcon: {
298
290
  pointerEvents: 'none',
@@ -301,11 +293,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
301
293
  display: 'flex',
302
294
  alignItems: 'center',
303
295
  height: '100%',
304
- position: 'absolute',
305
- opacity: function opacity(param) {
306
- var disabled = param.disabled;
307
- return disabled ? 0.3 : 1;
308
- }
296
+ position: 'absolute'
309
297
  },
310
298
  prefix: (_obj2 = {
311
299
  alignSelf: 'baseline',
@@ -327,11 +315,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
327
315
  }), _defineProperty(_obj2, "transition", 'opacity 150ms cubic-bezier(0.0, 0, 0.2, 1) 0ms'), _obj2)
328
316
  };
329
317
  });
330
- // Chrome ignores 'off': https://bugs.chromium.org/p/chromium/issues/detail?id=468153#c164
331
- var fixAutoComplete = function fixAutoComplete(platformOverrides, autoComplete) {
332
- return autoComplete === 'off' && (0, _platform).isChrome(platformOverrides) ? 'nope' : autoComplete;
333
- };
334
- var TextFieldBaseComponent = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
318
+ var TextFieldBase = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
335
319
  var error = _param.error, helperText = _param.helperText, label = _param.label, inputProps = _param.inputProps, inputRef = _param.inputRef, defaultValue = _param.defaultValue, value = _param.value, onFocus = _param.onFocus, onBlur = _param.onBlur, inputComponent = _param.inputComponent, prefix = _param.prefix, startIcon = _param.startIcon, endIcon = _param.endIcon, endIconOverlay = _param.endIconOverlay, shrinkLabelProp = _param.shrinkLabel, _multiline = _param.multiline, multiline = _multiline === void 0 ? false : _multiline, focus = _param.focus, fieldRef = _param.fieldRef, maxLength = _param.maxLength, idProp = _param.id, autoCompleteProp = _param.autoComplete, fullWidth = _param.fullWidth, rest = _objectWithoutProperties(_param, [
336
320
  "error",
337
321
  "helperText",
@@ -358,7 +342,7 @@ var TextFieldBaseComponent = /*#__PURE__*/ React.forwardRef(function(_param, ref
358
342
  ]);
359
343
  var id = (0, _hooks).useAriaId(idProp);
360
344
  var ref1 = _slicedToArray(React.useState((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) || (value === null || value === void 0 ? void 0 : value.length) ? 'filled' : 'default'), 2), inputState = ref1[0], setInputState = ref1[1];
361
- var ref2 = (0, _hooks).useTheme(), platformOverrides = ref2.platformOverrides, colors = ref2.colors;
345
+ var ref2 = (0, _hooks).useTheme(), colors = ref2.colors;
362
346
  var ref3 = (0, _hooks).useScreenSize(), isTabletOrSmaller = ref3.isTabletOrSmaller;
363
347
  var ref4;
364
348
  var ref5 = _slicedToArray(React.useState((ref4 = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) !== null && ref4 !== void 0 ? ref4 : 0), 2), characterCount = ref5[0], setCharacterCount = ref5[1];
@@ -415,7 +399,7 @@ var TextFieldBaseComponent = /*#__PURE__*/ React.forwardRef(function(_param, ref
415
399
  var props = _objectSpread({
416
400
  }, rest, {
417
401
  maxLength: maxLength,
418
- autoComplete: fixAutoComplete(platformOverrides, autoCompleteProp)
402
+ autoComplete: autoCompleteProp
419
403
  }, inputProps);
420
404
  var isShrinked = shrinkLabel || inputState === 'focused' || inputState === 'filled';
421
405
  var scale = isShrinked ? isTabletOrSmaller ? _textFieldComponents.LABEL_SCALE_MOBILE : _textFieldComponents.LABEL_SCALE_DESKTOP : 1;
@@ -426,7 +410,6 @@ var TextFieldBaseComponent = /*#__PURE__*/ React.forwardRef(function(_param, ref
426
410
  width: "calc(((100% - ".concat(_textFieldComponents.LABEL_LEFT_POSITION + (startIcon ? 48 : _textFieldComponents.LABEL_LEFT_POSITION), "px)) / ").concat(scale, ")"),
427
411
  paddingRight: endIcon && !isShrinked ? 36 : 0
428
412
  };
429
- var prefixColor = rest.disabled ? colors.textDisabled : colors.textSecondary;
430
413
  return(/*#__PURE__*/ (0, _jsxRuntime).jsxs(_textFieldComponents.FieldContainer, {
431
414
  disabled: rest.disabled,
432
415
  helperText: /*#__PURE__*/ (0, _jsxRuntime).jsx(_textFieldComponents.HelperText, {
@@ -445,7 +428,7 @@ var TextFieldBaseComponent = /*#__PURE__*/ React.forwardRef(function(_param, ref
445
428
  prefix && /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
446
429
  className: classes.prefix,
447
430
  children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text3, {
448
- color: prefixColor,
431
+ color: colors.textSecondary,
449
432
  regular: true,
450
433
  children: prefix
451
434
  })
@@ -495,7 +478,6 @@ var TextFieldBaseComponent = /*#__PURE__*/ React.forwardRef(function(_param, ref
495
478
  forId: id,
496
479
  inputState: inputState,
497
480
  shrinkLabel: shrinkLabel,
498
- disabled: rest.disabled,
499
481
  optional: !rest.required,
500
482
  children: label
501
483
  }),
@@ -507,6 +489,7 @@ var TextFieldBaseComponent = /*#__PURE__*/ React.forwardRef(function(_param, ref
507
489
  ]
508
490
  }));
509
491
  });
492
+ exports.TextFieldBase = TextFieldBase;
510
493
  var useSuggestionsStyles = (0, _jss).createUseStyles(function() {
511
494
  return {
512
495
  menuItem: {
@@ -541,7 +524,7 @@ var Autosuggest = /*#__PURE__*/ React.lazy(function() {
541
524
  return _interopRequireWildcard(require(/* webpackChunkName: "react-autosuggest" */ 'react-autosuggest'));
542
525
  });
543
526
  });
544
- var TextFieldBase = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
527
+ var TextFieldBaseAutosuggest = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
545
528
  var getSuggestions = _param.getSuggestions, idProp = _param.id, props = _objectWithoutProperties(_param, [
546
529
  "getSuggestions",
547
530
  "id"
@@ -556,13 +539,13 @@ var TextFieldBase = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
556
539
  throw Error('Fields with suggestions must be used in controlled mode');
557
540
  }
558
541
  return getSuggestions ? /*#__PURE__*/ (0, _jsxRuntime).jsx(React.Suspense, {
559
- fallback: /*#__PURE__*/ (0, _jsxRuntime).jsx(TextFieldBaseComponent, _objectSpread({
542
+ fallback: /*#__PURE__*/ (0, _jsxRuntime).jsx(TextFieldBase, _objectSpread({
560
543
  }, props, {
561
544
  // This label override while loading is needed in acceptance tests because
562
545
  // while the test is typing, the component could be remounted.
563
546
  // By hiding the label, we ensure that the test selects the loaded component
564
547
  label: (0, _platform).isRunningAcceptanceTest(platformOverrides) ? '' : props.label,
565
- autoComplete: fixAutoComplete(platformOverrides, 'off'),
548
+ autoComplete: "off",
566
549
  ref: ref,
567
550
  id: id
568
551
  })),
@@ -571,7 +554,7 @@ var TextFieldBase = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
571
554
  inputProps: _objectSpread({
572
555
  }, props, {
573
556
  id: id,
574
- autoComplete: fixAutoComplete(platformOverrides, 'off'),
557
+ autoComplete: 'off',
575
558
  // @ts-expect-error Autosuggest expects slightly different types
576
559
  onChange: function onChange(e, param) {
577
560
  var newValue = param.newValue;
@@ -589,7 +572,7 @@ var TextFieldBase = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
589
572
  }
590
573
  }),
591
574
  renderInputComponent: function renderInputComponent(inputProps) {
592
- /*#__PURE__*/ return (0, _jsxRuntime).jsx(TextFieldBaseComponent, _objectSpread({
575
+ /*#__PURE__*/ return (0, _jsxRuntime).jsx(TextFieldBase, _objectSpread({
593
576
  }, inputProps, {
594
577
  inputRef: (0, _common).combineRefs(inputRef, props.inputRef, ref)
595
578
  }));
@@ -629,11 +612,10 @@ var TextFieldBase = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
629
612
  }));
630
613
  }
631
614
  })
632
- }) : /*#__PURE__*/ (0, _jsxRuntime).jsx(TextFieldBaseComponent, _objectSpread({
615
+ }) : /*#__PURE__*/ (0, _jsxRuntime).jsx(TextFieldBase, _objectSpread({
633
616
  }, props, {
634
617
  id: id,
635
618
  ref: ref
636
619
  }));
637
620
  });
638
- var _default = TextFieldBase;
639
- exports.default = _default;
621
+ exports.TextFieldBaseAutosuggest = TextFieldBaseAutosuggest;
@@ -97,10 +97,14 @@ declare type TextFieldBaseProps = {
97
97
  min?: string,
98
98
  max?: string,
99
99
  };
100
- declare var TextFieldBase: React.ComponentType<{
100
+ declare export var TextFieldBase: React.ComponentType<{
101
101
  ...TextFieldBaseProps,
102
102
  ...{},
103
103
  }>;
104
- declare export default typeof TextFieldBase;
104
+ declare export var TextFieldBaseAutosuggest: React.ComponentType<{
105
+ ...TextFieldBaseProps,
106
+ ...{},
107
+ }>;
108
+ declare export {};
105
109
 
106
110
  import { type CssStyle } from "./__types__.js.flow";
@@ -10,7 +10,6 @@ declare type LabelProps = {
10
10
  inputState: InputState;
11
11
  error?: boolean;
12
12
  children: string;
13
- disabled?: boolean;
14
13
  style?: React.CSSProperties;
15
14
  optional?: boolean;
16
15
  };
@@ -123,10 +123,7 @@ var useLabelStyles = (0, _jss).createUseStyles(function(theme) {
123
123
  fontSize: 18,
124
124
  lineHeight: '24px',
125
125
  color: function color(param) {
126
- var inputState = param.inputState, error = param.error, disabled = param.disabled;
127
- if (inputState === 'default' && disabled) {
128
- return theme.colors.textDisabled;
129
- }
126
+ var inputState = param.inputState, error = param.error;
130
127
  if (error && inputState !== 'default') {
131
128
  return theme.colors.error;
132
129
  }
@@ -162,13 +159,11 @@ var useLabelStyles = (0, _jss).createUseStyles(function(theme) {
162
159
  };
163
160
  });
164
161
  var Label = function Label(param) {
165
- var shrinkLabel = param.shrinkLabel, forId = param.forId, inputState = param.inputState, error = param.error, children = param.children, disabled = param.disabled, style = param.style, optional = param.optional;
162
+ var shrinkLabel = param.shrinkLabel, forId = param.forId, inputState = param.inputState, error = param.error, children = param.children, style = param.style, optional = param.optional;
166
163
  var isShrinked = shrinkLabel || inputState === 'focused' || inputState === 'filled';
167
164
  var classes = useLabelStyles({
168
- isShrinked: isShrinked,
169
165
  inputState: inputState,
170
- error: error,
171
- disabled: disabled
166
+ error: error
172
167
  });
173
168
  var ref = _slicedToArray(React.useState(''), 2), transitionStyle = ref[0], setTransitionStyle = ref[1];
174
169
  var ref1 = (0, _hooks).useTheme(), texts = ref1.texts;
@@ -264,6 +259,10 @@ var _obj1, _obj2;
264
259
  var useFieldContainerStyles = (0, _jss).createUseStyles(function(theme) {
265
260
  return {
266
261
  fieldContainer: (_obj1 = {
262
+ opacity: function opacity(param) {
263
+ var disabled = param.disabled;
264
+ return disabled ? 0.5 : 1;
265
+ },
267
266
  display: 'flex',
268
267
  flexDirection: 'column',
269
268
  minWidth: 96
@@ -288,13 +287,7 @@ var useFieldContainerStyles = (0, _jss).createUseStyles(function(theme) {
288
287
  var multiline = param.multiline;
289
288
  return multiline ? 152 : 56;
290
289
  }
291
- }), _defineProperty(_obj2, "display", 'flex'), _defineProperty(_obj2, "position", 'relative'), _defineProperty(_obj2, "backgroundColor", function(param) {
292
- var disabled = param.disabled;
293
- return disabled ? theme.colors.backgroundAlternative : theme.colors.backgroundContainer;
294
- }), _defineProperty(_obj2, "cursor", function(param) {
295
- var disabled = param.disabled;
296
- return disabled ? 'not-allowed' : 'initial';
297
- }), _obj2)
290
+ }), _defineProperty(_obj2, "display", 'flex'), _defineProperty(_obj2, "position", 'relative'), _defineProperty(_obj2, "backgroundColor", theme.colors.backgroundContainer), _obj2)
298
291
  };
299
292
  });
300
293
  var FieldContainer = function FieldContainer(param) {
@@ -12,7 +12,6 @@ declare type LabelProps = {
12
12
  inputState: InputState,
13
13
  error?: boolean,
14
14
  children: string,
15
- disabled?: boolean,
16
15
  style?: CssStyle,
17
16
  optional?: boolean,
18
17
  };
@@ -2,10 +2,11 @@ import * as React from 'react';
2
2
  import type { CommonFormFieldProps } from './text-field-base';
3
3
  export interface TextFieldProps extends CommonFormFieldProps {
4
4
  onChangeValue?: (value: string, rawValue: string) => void;
5
+ onPress?: (event: React.MouseEvent) => void;
5
6
  multiline?: boolean;
6
7
  prefix?: React.ReactNode;
7
8
  endIcon?: React.ReactNode;
8
9
  getSuggestions?: (value: string) => Array<string>;
9
10
  }
10
- declare const TextField: React.FC<TextFieldProps>;
11
+ declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLInputElement>>;
11
12
  export default TextField;
@@ -6,12 +6,8 @@ exports.default = void 0;
6
6
  var _jsxRuntime = require("react/jsx-runtime");
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _formContext = require("./form-context");
9
- var _textFieldBase = _interopRequireDefault(require("./text-field-base"));
10
- function _interopRequireDefault(obj) {
11
- return obj && obj.__esModule ? obj : {
12
- default: obj
13
- };
14
- }
9
+ var _textFieldBase = require("./text-field-base");
10
+ var _common = require("./utils/common");
15
11
  function _interopRequireWildcard(obj) {
16
12
  if (obj && obj.__esModule) {
17
13
  return obj;
@@ -95,8 +91,8 @@ function _objectWithoutPropertiesLoose(source, excluded) {
95
91
  }
96
92
  return target;
97
93
  }
98
- var TextField = function TextField(_param) {
99
- var disabled = _param.disabled, error = _param.error, helperText = _param.helperText, name = _param.name, optional = _param.optional, validate = _param.validate, onChangeValue = _param.onChangeValue, onChange = _param.onChange, value = _param.value, defaultValue = _param.defaultValue, onBlurProp = _param.onBlur, onFocusProp = _param.onFocus, rest = _objectWithoutProperties(_param, [
94
+ var TextField = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
95
+ var disabled = _param.disabled, error = _param.error, helperText = _param.helperText, name = _param.name, optional = _param.optional, validate = _param.validate, onChangeValue = _param.onChangeValue, onChange = _param.onChange, value = _param.value, defaultValue = _param.defaultValue, onBlurProp = _param.onBlur, onFocusProp = _param.onFocus, onPress = _param.onPress, rest = _objectWithoutProperties(_param, [
100
96
  "disabled",
101
97
  "error",
102
98
  "helperText",
@@ -108,7 +104,8 @@ var TextField = function TextField(_param) {
108
104
  "value",
109
105
  "defaultValue",
110
106
  "onBlur",
111
- "onFocus"
107
+ "onFocus",
108
+ "onPress"
112
109
  ]);
113
110
  var inputRef = React.useRef(null);
114
111
  var processValue = function processValue(v) {
@@ -150,16 +147,13 @@ var TextField = function TextField(_param) {
150
147
  onChange: onChange,
151
148
  onChangeValue: onChangeValue
152
149
  });
153
- var setInputRef = function setInputRef(field) {
154
- inputRef.current = field;
155
- fieldProps.inputRef(field);
156
- };
157
- return(/*#__PURE__*/ (0, _jsxRuntime).jsx(_textFieldBase.default, _objectSpread({
150
+ return(/*#__PURE__*/ (0, _jsxRuntime).jsx(_textFieldBase.TextFieldBaseAutosuggest, _objectSpread({
158
151
  }, rest, fieldProps, {
159
- inputRef: setInputRef,
152
+ onClick: onPress,
153
+ inputRef: (0, _common).combineRefs(inputRef, fieldProps.inputRef, ref),
160
154
  onFocus: onFocus,
161
155
  type: "text"
162
156
  })));
163
- };
157
+ });
164
158
  var _default = TextField;
165
159
  exports.default = _default;
@@ -6,10 +6,14 @@ export type TextFieldProps = {
6
6
  ...$Exact<CommonFormFieldProps>,
7
7
 
8
8
  onChangeValue?: (value: string, rawValue: string) => void,
9
+ onPress?: (event: SyntheticMouseEvent<>) => void,
9
10
  multiline?: boolean,
10
11
  prefix?: React.Node,
11
12
  endIcon?: React.Node,
12
13
  getSuggestions?: (value: string) => Array<string>,
13
14
  };
14
- declare var TextField: React.ComponentType<TextFieldProps>;
15
+ declare var TextField: React.ComponentType<{
16
+ ...TextFieldProps,
17
+ ref?: React.Ref<HTMLInputElement>,
18
+ }>;
15
19
  declare export default typeof TextField;
@@ -8,6 +8,7 @@ interface CommonProps {
8
8
  [className: string]: string;
9
9
  };
10
10
  small?: boolean;
11
+ disabled?: boolean;
11
12
  trackingEvent?: TrackingEvent | ReadonlyArray<TrackingEvent>;
12
13
  /** "data-" prefix is automatically added. For example, use "testid" instead of "data-testid" */
13
14
  dataAttributes?: DataAttributes;
package/dist/text-link.js CHANGED
@@ -8,6 +8,7 @@ var _jss = require("./jss");
8
8
  var _touchable = _interopRequireDefault(require("./touchable"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _themeVariantContext = require("./theme-variant-context");
11
+ var _formContext = require("./form-context");
11
12
  function _interopRequireDefault(obj) {
12
13
  return obj && obj.__esModule ? obj : {
13
14
  default: obj
@@ -73,19 +74,22 @@ function _objectWithoutPropertiesLoose(source, excluded) {
73
74
  }
74
75
  return target;
75
76
  }
77
+ var _obj;
76
78
  var useStyles = (0, _jss).createUseStyles(function(theme) {
77
79
  return {
78
- textLink: _defineProperty({
80
+ textLink: (_obj = {
79
81
  width: 'auto',
80
82
  lineHeight: 'inherit',
81
83
  display: 'inline-block',
82
84
  color: theme.colors.textLink,
83
85
  wordBreak: 'break-word'
84
- }, theme.mq.supportsHover, {
85
- '&:hover': {
86
+ }, _defineProperty(_obj, theme.mq.supportsHover, {
87
+ '&:hover:not([disabled])': {
86
88
  textDecoration: 'underline'
87
89
  }
88
- }),
90
+ }), _defineProperty(_obj, '&[disabled]', {
91
+ opacity: 0.5
92
+ }), _obj),
89
93
  inverse: {
90
94
  color: theme.colors.textLinkInverse
91
95
  },
@@ -94,19 +98,22 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
94
98
  }
95
99
  };
96
100
  });
97
- var _obj;
101
+ var _obj1;
98
102
  var TextLink = function TextLink(_param) {
99
- var children = _param.children, _className = _param.className, className = _className === void 0 ? '' : _className, small = _param.small, props = _objectWithoutProperties(_param, [
103
+ var children = _param.children, _className = _param.className, className = _className === void 0 ? '' : _className, small = _param.small, disabled = _param.disabled, props = _objectWithoutProperties(_param, [
100
104
  "children",
101
105
  "className",
102
- "small"
106
+ "small",
107
+ "disabled"
103
108
  ]);
104
109
  var classes = useStyles();
105
110
  var isInverse = (0, _themeVariantContext).useIsInverseVariant();
111
+ var ref = (0, _formContext).useForm(), formStatus = ref.formStatus;
106
112
  return(/*#__PURE__*/ (0, _jsxRuntime).jsx(_touchable.default, _objectSpread({
107
113
  }, props, {
108
- className: (0, _classnames).default(classes.textLink, className, (_obj = {
109
- }, _defineProperty(_obj, classes.small, small), _defineProperty(_obj, classes.inverse, isInverse), _obj)),
114
+ disabled: disabled || formStatus === 'sending',
115
+ className: (0, _classnames).default(classes.textLink, className, (_obj1 = {
116
+ }, _defineProperty(_obj1, classes.small, small), _defineProperty(_obj1, classes.inverse, isInverse), _obj1)),
110
117
  children: children
111
118
  })));
112
119
  };
@@ -10,6 +10,7 @@ declare type CommonProps = {
10
10
  [className: string]: string,
11
11
  },
12
12
  small?: boolean,
13
+ disabled?: boolean,
13
14
  trackingEvent?: TrackingEvent | $ReadOnlyArray<TrackingEvent>,
14
15
 
15
16
  /**
package/dist/touchable.js CHANGED
@@ -102,8 +102,7 @@ var useStyles = (0, _jss).createUseStyles(function() {
102
102
  border: 'none'
103
103
  },
104
104
  '&[disabled]': {
105
- cursor: 'auto',
106
- pointerEvents: 'none'
105
+ cursor: 'default'
107
106
  },
108
107
  '&:active, &:hover': {
109
108
  textDecoration: 'none'
@@ -207,7 +206,7 @@ var Touchable = /*#__PURE__*/ React.forwardRef(function(props, ref) {
207
206
  "aria-labelledby": props['aria-labelledby'],
208
207
  onClick: handleHrefClick,
209
208
  onKeyDown: handleKeyDown,
210
- href: props.disabled ? '' : getHref(),
209
+ href: props.disabled ? undefined : getHref(),
211
210
  target: openNewTab ? '_blank' : undefined,
212
211
  rel: openNewTab ? 'noopener noreferrer' : undefined,
213
212
  ref: ref,
package/dist-es/button.js CHANGED
@@ -88,7 +88,7 @@ var commonClasses = function() {
88
88
  border: "".concat(BORDER_PX, "px solid transparent"),
89
89
  borderRadius: 4,
90
90
  overflow: 'hidden',
91
- '&:hover': {
91
+ '&:hover:not([disabled])': {
92
92
  transition: "background-color ".concat(transitionTiming, ", color ").concat(transitionTiming, ", border-color ").concat(transitionTiming)
93
93
  }
94
94
  },
@@ -143,6 +143,9 @@ var commonClasses = function() {
143
143
  }
144
144
  };
145
145
  };
146
+ var disabledStyle = {
147
+ opacity: 0.5
148
+ };
146
149
  var usePrimaryButtonStyles = createUseStyles(function(theme) {
147
150
  return _objectSpread({
148
151
  }, commonClasses(), {
@@ -152,10 +155,7 @@ var usePrimaryButtonStyles = createUseStyles(function(theme) {
152
155
  '&:enabled:active': {
153
156
  backgroundColor: theme.colors.buttonPrimaryBackgroundSelected
154
157
  },
155
- '&[disabled]:not($isLoading)': {
156
- color: theme.colors.textButtonPrimaryDisabled,
157
- backgroundColor: theme.colors.buttonPrimaryBackgroundDisabled
158
- },
158
+ '&[disabled]:not($isLoading)': disabledStyle,
159
159
  // Next media queries were added in each button style, because a pair of bugs in mobile devices (related to: https://jira.tuenti.io/jira/browse/APPS-1882):
160
160
  // - When tapping on a button that takes you to next screen and then go back to the previous one, button still have the focus styles
161
161
  // - Same behavior if you do long press on the button
@@ -163,7 +163,7 @@ var usePrimaryButtonStyles = createUseStyles(function(theme) {
163
163
  // - Make sure that in FF hover still has it's proper styles
164
164
  // - Media query with "coarse" (mobile), avoids that in devices that have coarse implemented, focus style doesn't get stuck
165
165
  // Must be always declared for Firefox
166
- '&:hover': {
166
+ '&:hover:not([disabled])': {
167
167
  backgroundColor: theme.colors.buttonPrimaryBackgroundHover,
168
168
  '@media (pointer: coarse)': {
169
169
  // Revert hover background in touch devices
@@ -178,11 +178,8 @@ var usePrimaryButtonStyles = createUseStyles(function(theme) {
178
178
  backgroundColor: theme.colors.buttonPrimaryBackgroundSelectedInverse,
179
179
  color: theme.colors.textButtonPrimaryInverseSelected
180
180
  },
181
- '&[disabled]:not($isLoading)': {
182
- backgroundColor: theme.colors.buttonPrimaryBackgroundDisabledInverse,
183
- color: theme.colors.textButtonPrimaryInverseDisabled
184
- },
185
- '&:hover': {
181
+ '&[disabled]:not($isLoading)': disabledStyle,
182
+ '&:hover:not([disabled])': {
186
183
  color: theme.colors.textButtonPrimaryInverseSelected,
187
184
  backgroundColor: theme.colors.buttonPrimaryBackgroundSelectedInverse,
188
185
  '@media (pointer: coarse)': {
@@ -213,11 +210,8 @@ var useSecondaryButtonStyles = createUseStyles(function(theme) {
213
210
  }, buttonSecondaryLightStyle(theme), {
214
211
  '&:enabled:active': _objectSpread({
215
212
  }, buttonSecondaryHoverLightStyle(theme)),
216
- '&[disabled]:not($isLoading)': {
217
- color: theme.colors.textButtonSecondaryDisabled,
218
- borderColor: theme.colors.buttonSecondaryBackgroundDisabled
219
- },
220
- '&:hover': _objectSpread({
213
+ '&[disabled]:not($isLoading)': disabledStyle,
214
+ '&:hover:not([disabled])': _objectSpread({
221
215
  }, buttonSecondaryHoverLightStyle(theme), {
222
216
  '@media (pointer: coarse)': _objectSpread({
223
217
  }, buttonSecondaryLightStyle(theme))
@@ -230,11 +224,8 @@ var useSecondaryButtonStyles = createUseStyles(function(theme) {
230
224
  borderColor: theme.colors.buttonSecondaryBorderSelectedInverse,
231
225
  color: theme.colors.textButtonSecondaryInverseSelected
232
226
  },
233
- '&[disabled]:not($isLoading)': {
234
- color: theme.colors.textButtonSecondaryInverseDisabled,
235
- borderColor: theme.colors.buttonSecondaryBorderDisabledInverse
236
- },
237
- '&:hover': {
227
+ '&[disabled]:not($isLoading)': disabledStyle,
228
+ '&:hover:not([disabled])': {
238
229
  borderColor: theme.colors.buttonSecondaryBorderSelectedInverse,
239
230
  color: theme.colors.textButtonSecondaryInverseSelected,
240
231
  '@media (pointer: coarse)': {
@@ -253,10 +244,9 @@ var dangerButtonStyles = function(theme) {
253
244
  backgroundColor: theme.colors.buttonDangerBackgroundSelected
254
245
  },
255
246
  '&[disabled]:not($isLoading)': {
256
- color: theme.colors.textButtonPrimaryDisabled,
257
- backgroundColor: theme.colors.buttonDangerBackgroundDisabled
247
+ opacity: 0.5
258
248
  },
259
- '&:hover': {
249
+ '&:hover:not([disabled])': {
260
250
  backgroundColor: theme.colors.buttonDangerBackgroundHover,
261
251
  '@media (pointer: coarse)': {
262
252
  // Revert hover background in touch devices
@@ -426,7 +416,7 @@ var useButtonLinkStyles = createUseStyles(function(theme) {
426
416
  '&:enabled:active': {
427
417
  backgroundColor: theme.colors.buttonLinkBackgroundSelected
428
418
  },
429
- '&:hover': {
419
+ '&:hover:not([disabled])': {
430
420
  backgroundColor: theme.colors.buttonLinkBackgroundSelected,
431
421
  '@media (pointer: coarse)': {
432
422
  backgroundColor: 'initial'
@@ -438,7 +428,7 @@ var useButtonLinkStyles = createUseStyles(function(theme) {
438
428
  '&:enabled:active': {
439
429
  backgroundColor: theme.colors.buttonLinkBackgroundSelectedInverse
440
430
  },
441
- '&:hover': {
431
+ '&:hover:not([disabled])': {
442
432
  backgroundColor: theme.colors.buttonLinkBackgroundSelectedInverse,
443
433
  '@media (pointer: coarse)': {
444
434
  backgroundColor: 'initial'
@@ -96,11 +96,15 @@ var useIconCheckboxStyles = createUseStyles(function(param) {
96
96
  },
97
97
  checkChecked: {
98
98
  transform: 'scale(1, 1)'
99
+ },
100
+ disabled: {
101
+ opacity: 0.5
99
102
  }
100
103
  };
101
104
  });
105
+ var _obj;
102
106
  var IconCheckbox = function(param) {
103
- var isChecked = param.isChecked;
107
+ var isChecked = param.isChecked, disabled = param.disabled;
104
108
  var classes = useIconCheckboxStyles();
105
109
  var ref = useTheme(), isIos = ref.isIos, colors = ref.colors;
106
110
  var icon = isIos ? /*#__PURE__*/ _jsx("svg", {
@@ -125,8 +129,8 @@ var IconCheckbox = function(param) {
125
129
  })
126
130
  });
127
131
  return(/*#__PURE__*/ _jsx("div", {
128
- className: classnames(classes.box, _defineProperty({
129
- }, classes.boxChecked, isChecked)),
132
+ className: classnames(classes.box, (_obj = {
133
+ }, _defineProperty(_obj, classes.boxChecked, isChecked), _defineProperty(_obj, classes.disabled, disabled), _obj)),
130
134
  children: icon
131
135
  }));
132
136
  };
@@ -137,8 +141,7 @@ var useStyles = createUseStyles(function() {
137
141
  display: 'inline'
138
142
  },
139
143
  disabled: {
140
- opacity: 0.5,
141
- pointerEvents: 'none'
144
+ opacity: 0.5
142
145
  }
143
146
  };
144
147
  });
@@ -171,6 +174,7 @@ var Checkbox = function(props) {
171
174
  }
172
175
  };
173
176
  var iconCheckbox = /*#__PURE__*/ _jsx(IconCheckbox, {
177
+ disabled: disabled,
174
178
  isChecked: value !== null && value !== void 0 ? value : checkedState
175
179
  });
176
180
  return(// When the checkbox is disabled, it shouldn't be focusable
@@ -183,8 +187,7 @@ var Checkbox = function(props) {
183
187
  onClick: disabled ? undefined : handleChange,
184
188
  tabIndex: disabled ? undefined : 0,
185
189
  ref: focusableRef,
186
- className: classnames(classes.checkboxContainer, _defineProperty({
187
- }, classes.disabled, disabled)),
190
+ className: classes.checkboxContainer,
188
191
  "aria-label": ariaLabel,
189
192
  "aria-labelledby": ariaLabel ? undefined : labelId,
190
193
  "aria-disabled": disabled
@@ -209,6 +212,7 @@ var Checkbox = function(props) {
209
212
  id: labelId,
210
213
  role: hasExternalLabel ? 'presentation' : undefined,
211
214
  children: /*#__PURE__*/ _jsx("span", {
215
+ className: disabled ? classes.disabled : '',
212
216
  children: props.children
213
217
  })
214
218
  })
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import { useForm, useFieldProps } from './form-context';
4
4
  import { useTheme } from './hooks';
5
- import TextFieldBase from './text-field-base';
5
+ import { TextFieldBaseAutosuggest } from './text-field-base';
6
6
  function _arrayWithHoles(arr) {
7
7
  if (Array.isArray(arr)) return arr;
8
8
  }
@@ -192,7 +192,7 @@ var CreditCardExpirationField = function(_param) {
192
192
  onChange: onChange,
193
193
  onChangeValue: onChangeValue
194
194
  });
195
- return(/*#__PURE__*/ _jsx(TextFieldBase, _objectSpread({
195
+ return(/*#__PURE__*/ _jsx(TextFieldBaseAutosuggest, _objectSpread({
196
196
  }, rest, fieldProps, {
197
197
  onChange: function(event) {
198
198
  fieldProps.onChange(event);
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { useForm, useFieldProps } from './form-context';
4
4
  import { useTheme } from './hooks';
5
5
  import { getCreditCardNumberLength, isAmericanExpress, isVisa, isMasterCard, isValidCreditCardNumber } from './utils/credit-card';
6
- import TextFieldBase from './text-field-base';
6
+ import { TextFieldBaseAutosuggest } from './text-field-base';
7
7
  import IconCreditcard from './icons/icon-creditcard';
8
8
  import IconVisa from './icons/icon-visa';
9
9
  import IconMastercard from './icons/icon-mastercard';
@@ -305,7 +305,7 @@ var CreditCardNumberField = function(_param) {
305
305
  onChangeValue: onChangeValue
306
306
  });
307
307
  var ref2;
308
- return(/*#__PURE__*/ _jsx(TextFieldBase, _objectSpread({
308
+ return(/*#__PURE__*/ _jsx(TextFieldBaseAutosuggest, _objectSpread({
309
309
  }, rest, fieldProps, {
310
310
  onChange: function(event) {
311
311
  fieldProps.onChange(event);