gdx-ui 1.15.3 → 2.0.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.
Files changed (56) hide show
  1. package/base.css +1 -1
  2. package/components/autocomplete/Autocomplete.js +64 -53
  3. package/components/badge/Badge.js +2 -2
  4. package/components/box/Box.js +34 -31
  5. package/components/dialog/Dialog.js +15 -26
  6. package/components/editable/Editable.js +105 -95
  7. package/components/editable/EditableArea.js +3 -0
  8. package/components/flex/Flex.js +51 -22
  9. package/components/forms/LabelInput.js +13 -4
  10. package/components/forms/LabelValue.js +13 -4
  11. package/components/images/CarouselImages.js +11 -12
  12. package/components/images/Img.js +14 -26
  13. package/components/images/Thumb.js +16 -40
  14. package/components/images/{ImageZoom.js → ZoomImage.js} +74 -111
  15. package/components/images/{PictureZoomBtns.js → ZoomImageButtons.js} +50 -63
  16. package/components/images/{Picture.js → ZoomImageSquare.js} +3 -3
  17. package/components/images/index.js +33 -11
  18. package/components/images/useImageLoader.js +76 -0
  19. package/components/list/ScrollableList.js +1 -1
  20. package/components/snackbar/Snackbar.js +1 -1
  21. package/components/table/Table.js +14 -1
  22. package/components/util/Note.js +14 -5
  23. package/components/util/Text.js +41 -9
  24. package/components/util/Title.js +35 -8
  25. package/components/util/index.js +0 -11
  26. package/components/widget/Widget.js +16 -5
  27. package/hooks/index.js +11 -0
  28. package/hooks/useAutocomplete.js +103 -0
  29. package/package.json +1 -1
  30. package/stories/box/Box.stories.js +32 -0
  31. package/stories/editable/Editable.stories.js +26 -0
  32. package/stories/editable/Editor.stories.js +33 -0
  33. package/stories/forms/Autocomplete.stories.js +101 -0
  34. package/stories/images/CarouselImages.stories.js +31 -0
  35. package/stories/images/{images.stories.js → Images.stories.js} +1 -1
  36. package/stories/images/ZoomImage.stories.js +24 -0
  37. package/stories/images/ZoomImageButtons.stories.js +23 -0
  38. package/stories/images/ZoomImageSquare.stories.js +23 -0
  39. package/stories/layout/Flex.stories.js +180 -0
  40. package/stories/list/ScrollableList.stories.js +37 -8
  41. package/stories/utils/Badge.stories.js +29 -0
  42. package/stories/utils/Expanded.stories.js +18 -7
  43. package/stories/utils/Loader.stories.js +32 -0
  44. package/stories/utils/Note.stories.js +38 -0
  45. package/stories/utils/Snackbar.stories.js +46 -0
  46. package/stories/utils/Text.stories.js +40 -0
  47. package/stories/utils/Tooltip.stories.js +22 -0
  48. package/stories/widget/Widget.stories.js +59 -0
  49. package/components/images/PictureZoomSquare.js +0 -60
  50. package/components/list/SortableList.js +0 -138
  51. package/components/list/SortableListOLD.js +0 -121
  52. package/components/scroller/ListScroller.js +0 -113
  53. package/components/util/Anchor.js +0 -30
  54. package/stories/flex/Flex.stories.js +0 -35
  55. package/stories/list/SorteableList.stories.js +0 -45
  56. /package/stories/images/{thumb.stories.js → Thumb.stories.js} +0 -0
@@ -7,117 +7,127 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.Editable = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _reactFontawesome = require("@fortawesome/react-fontawesome");
11
- var _freeRegularSvgIcons = require("@fortawesome/free-regular-svg-icons");
10
+ var _excluded = ["children", "placeholder", "onChange", "className", "maxLength", "maxLenght"];
12
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
12
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
13
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
14
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
15
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
16
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
17
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18
18
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
19
19
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
21
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
22
+ var toText = function toText(value) {
23
+ return value == null ? '' : String(value);
24
+ };
25
+ var moveCaretToEnd = function moveCaretToEnd(el) {
26
+ var range = document.createRange();
27
+ var selection = window.getSelection();
28
+ range.selectNodeContents(el);
29
+ range.collapse(false);
30
+ selection.removeAllRanges();
31
+ selection.addRange(range);
32
+ };
20
33
  var Editable = exports.Editable = function Editable(_ref) {
21
- var text = _ref.text,
22
- _ref$minHeight = _ref.minHeight,
23
- minHeight = _ref$minHeight === void 0 ? 20 : _ref$minHeight,
24
- _ref$hint = _ref.hint,
25
- hint = _ref$hint === void 0 ? false : _ref$hint,
26
- onEdit = _ref.onEdit,
27
- className = _ref.className;
28
- var _useState = (0, _react.useState)(text),
34
+ var children = _ref.children,
35
+ placeholder = _ref.placeholder,
36
+ onChange = _ref.onChange,
37
+ className = _ref.className,
38
+ maxLength = _ref.maxLength,
39
+ maxLenght = _ref.maxLenght,
40
+ props = _objectWithoutProperties(_ref, _excluded);
41
+ var ref = (0, _react.useRef)(null);
42
+ var lastChildrenRef = (0, _react.useRef)(toText(children));
43
+ var startEditValueRef = (0, _react.useRef)(toText(children));
44
+ var _useState = (0, _react.useState)(false),
29
45
  _useState2 = _slicedToArray(_useState, 2),
30
- currentText = _useState2[0],
31
- setCurrentText = _useState2[1];
32
- var _useState3 = (0, _react.useState)({
33
- width: 100,
34
- height: 100
35
- }),
46
+ isFocused = _useState2[0],
47
+ setIsFocused = _useState2[1];
48
+ var _useState3 = (0, _react.useState)(toText(children)),
36
49
  _useState4 = _slicedToArray(_useState3, 2),
37
- dimentions = _useState4[0],
38
- setDimentions = _useState4[1];
39
- var _useState5 = (0, _react.useState)(text),
40
- _useState6 = _slicedToArray(_useState5, 2),
41
- lastText = _useState6[0],
42
- setLastText = _useState6[1];
43
- var _useState7 = (0, _react.useState)(false),
44
- _useState8 = _slicedToArray(_useState7, 2),
45
- editable = _useState8[0],
46
- setEditable = _useState8[1];
47
- var newRef = (0, _react.useRef)(null);
48
- var wrapperRef = (0, _react.useRef)(null);
49
- var editContent = function editContent() {
50
- setEditable(true);
51
- var h = wrapperRef.current.offsetHeight;
52
- setDimentions({
53
- width: wrapperRef.current.offsetWidth,
54
- height: 30 + (h < minHeight ? minHeight : h)
55
- });
56
- setLastText(currentText);
57
- };
58
- var onChangeText = function onChangeText(_ref2) {
59
- var target = _ref2.target;
60
- var value = target.value;
61
- setCurrentText(value);
62
- };
63
- var onKeyDown = function onKeyDown(_ref3) {
64
- var key = _ref3.key;
65
- switch (key) {
66
- case 'Enter':
67
- setEditable(false);
68
- setCurrentText(currentText);
69
- onEdit && onEdit({
70
- value: currentText
71
- });
72
- break;
73
- case 'Escape':
74
- setEditable(false);
75
- setCurrentText(lastText);
76
- onEdit && {
77
- value: lastText
78
- };
79
- break;
50
+ value = _useState4[0],
51
+ setValue = _useState4[1];
52
+ var limit = Number.isFinite(maxLength) ? maxLength : maxLenght;
53
+ (0, _react.useEffect)(function () {
54
+ var next = toText(children);
55
+ var didChildrenChange = lastChildrenRef.current !== next;
56
+ lastChildrenRef.current = next;
57
+ if (!didChildrenChange) {
58
+ return;
80
59
  }
81
- };
82
- var handleOutsideClick = function handleOutsideClick(e) {
83
- if (newRef.current && !newRef.current.contains(e.target)) {
84
- setEditable(false);
85
- onEdit && onEdit({
86
- value: currentText
87
- });
60
+ setValue(next);
61
+ if (ref.current && !isFocused && ref.current.textContent !== next) {
62
+ ref.current.textContent = next;
88
63
  }
89
- };
64
+ }, [children, isFocused]);
90
65
  (0, _react.useEffect)(function () {
91
- document.addEventListener('mousedown', handleOutsideClick);
92
- return function () {
93
- document.removeEventListener('mousedown', handleOutsideClick);
94
- };
95
- });
96
- return /*#__PURE__*/_react["default"].createElement("div", {
97
- ref: wrapperRef
98
- }, editable ? /*#__PURE__*/_react["default"].createElement("input", {
99
- ref: newRef,
100
- type: "text",
101
- onChange: onChangeText,
102
- onKeyDown: onKeyDown,
103
- value: currentText,
104
- style: {
105
- width: dimentions.width
66
+ if (!ref.current) return;
67
+ ref.current.setAttribute('data-empty', value.length === 0 ? 'true' : 'false');
68
+ }, [value]);
69
+ var handleInput = function handleInput(e) {
70
+ var nextValue = e.currentTarget.textContent || '';
71
+ if (Number.isFinite(limit) && limit >= 0 && nextValue.length > limit) {
72
+ nextValue = nextValue.slice(0, limit);
73
+ e.currentTarget.textContent = nextValue;
74
+ moveCaretToEnd(e.currentTarget);
106
75
  }
107
- }) : /*#__PURE__*/_react["default"].createElement("div", {
108
- className: className,
109
- onDoubleClick: editContent
110
- }, hint && /*#__PURE__*/_react["default"].createElement(_reactFontawesome.FontAwesomeIcon, {
111
- className: "gray",
112
- style: {
113
- marginRight: '5px'
76
+ setValue(nextValue);
77
+ onChange && onChange(nextValue);
78
+ };
79
+ var handleKeyDown = function handleKeyDown(e) {
80
+ if (e.key === 'Escape') {
81
+ e.preventDefault();
82
+ var previous = startEditValueRef.current;
83
+ if (e.currentTarget.textContent !== previous) {
84
+ e.currentTarget.textContent = previous;
85
+ }
86
+ setValue(previous);
87
+ onChange && onChange(previous);
88
+ e.currentTarget.blur();
89
+ return;
90
+ }
91
+ if (e.key === 'Enter') {
92
+ e.preventDefault();
93
+ e.currentTarget.blur();
94
+ }
95
+ };
96
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({
97
+ ref: ref,
98
+ contentEditable: true,
99
+ role: "textbox",
100
+ suppressContentEditableWarning: true,
101
+ "aria-placeholder": placeholder,
102
+ "data-placeholder": placeholder,
103
+ "data-empty": value.length === 0 ? 'true' : 'false',
104
+ className: "editable ".concat(className || '').trim(),
105
+ onInput: handleInput,
106
+ onKeyDown: handleKeyDown,
107
+ onFocus: function onFocus(e) {
108
+ startEditValueRef.current = e.currentTarget.textContent || '';
109
+ setIsFocused(true);
114
110
  },
115
- icon: _freeRegularSvgIcons.faEdit
116
- }), currentText));
111
+ onBlur: function onBlur(e) {
112
+ var normalized = e.currentTarget.textContent || '';
113
+ setValue(normalized);
114
+ setIsFocused(false);
115
+ }
116
+ }, props));
117
117
  };
118
118
  Editable.propTypes = {
119
- text: _propTypes["default"].string.isRequired,
120
- hint: _propTypes["default"].bool,
121
- minHeight: _propTypes["default"].number,
122
- onEdit: _propTypes["default"].func
119
+ children: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
120
+ placeholder: _propTypes["default"].string,
121
+ onChange: _propTypes["default"].func,
122
+ className: _propTypes["default"].string,
123
+ maxLength: _propTypes["default"].number,
124
+ maxLenght: _propTypes["default"].number
125
+ };
126
+ Editable.defaultProps = {
127
+ children: '',
128
+ placeholder: '',
129
+ onChange: null,
130
+ className: '',
131
+ maxLength: undefined,
132
+ maxLenght: undefined
123
133
  };
@@ -16,6 +16,9 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
16
16
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
17
17
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
18
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
19
+ /**
20
+ * @deprecated Use `Editable` component instead, with `multiline` prop set to `true`
21
+ */
19
22
  var EditableArea = exports.EditableArea = function EditableArea(_ref) {
20
23
  var _ref$text = _ref.text,
21
24
  text = _ref$text === void 0 ? 'Edit here' : _ref$text,
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.FlexItem = exports.Flex = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _excluded = ["children", "className", "gap", "align", "valign", "wrap", "expand", "style", "inline"],
10
+ var _excluded = ["children", "justify", "alignItems", "gap", "wrap", "expand", "columns", "phone", "tablet", "style", "className"],
11
11
  _excluded2 = ["children", "className", "style", "grow", "align"];
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
13
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
@@ -20,50 +20,58 @@ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i
20
20
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
21
21
  var Flex = exports.Flex = function Flex(_ref) {
22
22
  var children = _ref.children,
23
- _ref$className = _ref.className,
24
- className = _ref$className === void 0 ? '' : _ref$className,
23
+ _ref$justify = _ref.justify,
24
+ justify = _ref$justify === void 0 ? 'left' : _ref$justify,
25
+ _ref$alignItems = _ref.alignItems,
26
+ alignItems = _ref$alignItems === void 0 ? 'center' : _ref$alignItems,
25
27
  _ref$gap = _ref.gap,
26
28
  gap = _ref$gap === void 0 ? 15 : _ref$gap,
27
- _ref$align = _ref.align,
28
- align = _ref$align === void 0 ? 'left' : _ref$align,
29
- _ref$valign = _ref.valign,
30
- valign = _ref$valign === void 0 ? 'top' : _ref$valign,
31
29
  _ref$wrap = _ref.wrap,
32
30
  wrap = _ref$wrap === void 0 ? true : _ref$wrap,
33
31
  _ref$expand = _ref.expand,
34
32
  expand = _ref$expand === void 0 ? false : _ref$expand,
33
+ columns = _ref.columns,
34
+ _ref$phone = _ref.phone,
35
+ phone = _ref$phone === void 0 ? 1 : _ref$phone,
36
+ _ref$tablet = _ref.tablet,
37
+ tablet = _ref$tablet === void 0 ? 2 : _ref$tablet,
35
38
  _ref$style = _ref.style,
36
39
  style = _ref$style === void 0 ? {} : _ref$style,
37
- _ref$inline = _ref.inline,
38
- inline = _ref$inline === void 0 ? true : _ref$inline,
40
+ className = _ref.className,
39
41
  props = _objectWithoutProperties(_ref, _excluded);
40
- // Si expand está activo, pasamos grow=1 a los hijos que no lo tengan
42
+ var isGrid = columns != null;
43
+
44
+ // if expand is true, we pass grow=1 to children that don't have it
41
45
  var childrenWithGrow = _react["default"].Children.map(children, function (child) {
42
46
  var _child$props$grow;
43
- return expand && /*#__PURE__*/_react["default"].isValidElement(child) ? /*#__PURE__*/_react["default"].cloneElement(child, {
47
+ return expand && !isGrid && /*#__PURE__*/_react["default"].isValidElement(child) ? /*#__PURE__*/_react["default"].cloneElement(child, {
44
48
  grow: (_child$props$grow = child.props.grow) !== null && _child$props$grow !== void 0 ? _child$props$grow : 1
45
49
  }) : child;
46
50
  });
47
51
  return /*#__PURE__*/_react["default"].createElement("div", _extends({
48
- className: "flex flex-align-".concat(align, " flex-valign-").concat(valign, " ").concat(className, " ").concat(inline ? 'inline-elements' : ''),
52
+ className: "flex \n flex-justify-".concat(justify, " \n flex-align-").concat(alignItems, " \n ").concat(className || '', "\n "),
53
+ "data-cols": isGrid ? '' : undefined,
49
54
  style: _objectSpread({
50
55
  flexWrap: wrap ? 'wrap' : 'nowrap',
51
- gap: gap
56
+ gap: gap,
57
+ '--flex-cols': isGrid ? columns : undefined,
58
+ '--flex-phone-cols': isGrid ? phone : undefined,
59
+ '--flex-tablet-cols': isGrid ? tablet : undefined,
60
+ '--flex-gap': isGrid ? typeof gap === 'number' ? "".concat(gap, "px") : gap : undefined
52
61
  }, style)
53
62
  }, props), childrenWithGrow);
54
63
  };
55
64
  var FlexItem = exports.FlexItem = function FlexItem(_ref2) {
56
65
  var children = _ref2.children,
57
- _ref2$className = _ref2.className,
58
- className = _ref2$className === void 0 ? '' : _ref2$className,
66
+ className = _ref2.className,
59
67
  _ref2$style = _ref2.style,
60
68
  style = _ref2$style === void 0 ? {} : _ref2$style,
61
69
  grow = _ref2.grow,
62
70
  _ref2$align = _ref2.align,
63
- align = _ref2$align === void 0 ? 'left' : _ref2$align,
71
+ align = _ref2$align === void 0 ? 'center' : _ref2$align,
64
72
  props = _objectWithoutProperties(_ref2, _excluded2);
65
73
  return /*#__PURE__*/_react["default"].createElement("div", _extends({
66
- className: "flex-item ".concat(align, " ").concat(className),
74
+ className: "flex-item flex-align-".concat(align, " ").concat(className || ''),
67
75
  style: _objectSpread({
68
76
  flex: grow ? "".concat(grow, " 1 0") : undefined
69
77
  }, style)
@@ -71,18 +79,39 @@ var FlexItem = exports.FlexItem = function FlexItem(_ref2) {
71
79
  };
72
80
  Flex.propTypes = {
73
81
  children: _propTypes["default"].node,
74
- className: _propTypes["default"].string,
82
+ /**
83
+ * justify the content horizontally. Options: 'center', 'right', 'left', 'between'
84
+ */
85
+ justify: _propTypes["default"].oneOf(['left', 'center', 'right', 'between']),
86
+ /**
87
+ * align the items vertically. Options: 'start', 'center', 'end', 'stretch', 'baseline'
88
+ */
89
+ alignItems: _propTypes["default"].oneOf(['start', 'center', 'end', 'stretch', 'baseline']),
90
+ /**
91
+ * gap between items, can be a number (px) or a string with units (e.g. '10px', '1rem')
92
+ */
75
93
  gap: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
76
- align: _propTypes["default"].oneOf(['left', 'center', 'right']),
77
- valign: _propTypes["default"].oneOf(['top', 'center', 'bottom', 'stretch']),
78
94
  wrap: _propTypes["default"].bool,
79
95
  expand: _propTypes["default"].bool,
80
- style: _propTypes["default"].object
96
+ /**
97
+ * Number of columns per row (desktop). Enables grid mode.
98
+ */
99
+ columns: _propTypes["default"].number,
100
+ /**
101
+ * Columns per row on phone screens (≤550px). Default: 1
102
+ */
103
+ phone: _propTypes["default"].number,
104
+ /**
105
+ * Columns per row on tablet screens (551px–1115px). Default: 2
106
+ */
107
+ tablet: _propTypes["default"].number,
108
+ style: _propTypes["default"].object,
109
+ className: _propTypes["default"].string
81
110
  };
82
111
  FlexItem.propTypes = {
83
112
  children: _propTypes["default"].node,
84
113
  className: _propTypes["default"].string,
85
114
  style: _propTypes["default"].object,
86
115
  grow: _propTypes["default"].number,
87
- align: _propTypes["default"].oneOf(['left', 'center', 'right'])
116
+ align: _propTypes["default"].oneOf(['start', 'center', 'end', 'stretch', 'baseline'])
88
117
  };
@@ -7,7 +7,7 @@ exports.LabelInput = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _editable = require("../editable");
10
- var _excluded = ["label", "value", "editable", "required", "error"];
10
+ var _excluded = ["label", "value", "editable", "required", "error", "onEdit", "onChange"];
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
12
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
13
13
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
@@ -20,16 +20,23 @@ var LabelInput = exports.LabelInput = function LabelInput(_ref) {
20
20
  _ref$required = _ref.required,
21
21
  required = _ref$required === void 0 ? false : _ref$required,
22
22
  error = _ref.error,
23
+ onEdit = _ref.onEdit,
24
+ onChange = _ref.onChange,
23
25
  props = _objectWithoutProperties(_ref, _excluded);
26
+ var handleChange = function handleChange(nextValue) {
27
+ onChange && onChange(nextValue);
28
+ onEdit && onEdit({
29
+ value: nextValue
30
+ });
31
+ };
24
32
  return /*#__PURE__*/_react["default"].createElement("label", {
25
33
  className: "form-element"
26
34
  }, label && /*#__PURE__*/_react["default"].createElement("div", {
27
35
  className: "input-label"
28
36
  }, required ? '*' : '', " ", label), editable ? /*#__PURE__*/_react["default"].createElement(_editable.Editable, _extends({
29
- hint: true,
30
37
  className: "editable-input",
31
- text: value
32
- }, props)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, value), error && /*#__PURE__*/_react["default"].createElement("div", {
38
+ onChange: handleChange
39
+ }, props), value) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, value), error && /*#__PURE__*/_react["default"].createElement("div", {
33
40
  className: "input-label-alert"
34
41
  }, error));
35
42
  };
@@ -39,5 +46,7 @@ LabelInput.propTypes = {
39
46
  expanded: _propTypes["default"].bool,
40
47
  label: _propTypes["default"].string,
41
48
  required: _propTypes["default"].bool,
49
+ onEdit: _propTypes["default"].func,
50
+ onChange: _propTypes["default"].func,
42
51
  value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
43
52
  };
@@ -7,7 +7,7 @@ exports.LabelValue = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _editable = require("../editable");
10
- var _excluded = ["label", "value", "editable", "required", "error"];
10
+ var _excluded = ["label", "value", "editable", "required", "error", "onEdit", "onChange"];
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
12
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
13
13
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
@@ -20,16 +20,23 @@ var LabelValue = exports.LabelValue = function LabelValue(_ref) {
20
20
  _ref$required = _ref.required,
21
21
  required = _ref$required === void 0 ? false : _ref$required,
22
22
  error = _ref.error,
23
+ onEdit = _ref.onEdit,
24
+ onChange = _ref.onChange,
23
25
  props = _objectWithoutProperties(_ref, _excluded);
26
+ var handleChange = function handleChange(nextValue) {
27
+ onChange && onChange(nextValue);
28
+ onEdit && onEdit({
29
+ value: nextValue
30
+ });
31
+ };
24
32
  return /*#__PURE__*/_react["default"].createElement("label", {
25
33
  className: "form-element"
26
34
  }, label && /*#__PURE__*/_react["default"].createElement("div", {
27
35
  className: "input-label"
28
36
  }, required ? '*' : '', " ", label), editable ? /*#__PURE__*/_react["default"].createElement(_editable.Editable, _extends({
29
- hint: true,
30
37
  className: "editable-input",
31
- text: value
32
- }, props)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, value), error && /*#__PURE__*/_react["default"].createElement("div", {
38
+ onChange: handleChange
39
+ }, props), value) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, value), error && /*#__PURE__*/_react["default"].createElement("div", {
33
40
  className: "input-label-alert"
34
41
  }, error));
35
42
  };
@@ -39,5 +46,7 @@ LabelValue.propTypes = {
39
46
  expanded: _propTypes["default"].bool,
40
47
  label: _propTypes["default"].string,
41
48
  required: _propTypes["default"].bool,
49
+ onEdit: _propTypes["default"].func,
50
+ onChange: _propTypes["default"].func,
42
51
  value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
43
52
  };
@@ -41,15 +41,6 @@ var CarouselImages = exports.CarouselImages = function CarouselImages(_ref) {
41
41
  }, 400);
42
42
  setCurrent((idx + data.length) % data.length);
43
43
  };
44
- var autoNext = function autoNext() {
45
- setAnimating(true);
46
- setTimeout(function () {
47
- return setAnimating(false);
48
- }, 400);
49
- setCurrent(function (prev) {
50
- return (prev + 1) % data.length;
51
- });
52
- };
53
44
  var prev = function prev() {
54
45
  return goTo(current - 1);
55
46
  };
@@ -63,15 +54,23 @@ var CarouselImages = exports.CarouselImages = function CarouselImages(_ref) {
63
54
  // Auto-advance timer
64
55
  (0, _react.useEffect)(function () {
65
56
  if (interval <= 0) return;
57
+ var autoNext = function autoNext() {
58
+ setAnimating(true);
59
+ setTimeout(function () {
60
+ return setAnimating(false);
61
+ }, 400);
62
+ setCurrent(function (prev) {
63
+ return (prev + 1) % data.length;
64
+ });
65
+ };
66
66
  if (timerRef.current) clearTimeout(timerRef.current);
67
67
  timerRef.current = setTimeout(function () {
68
- // setCurrent(prev => (prev + 1) % data.length);
69
68
  autoNext();
70
69
  }, interval * 1000);
71
70
  return function () {
72
71
  if (timerRef.current) clearTimeout(timerRef.current);
73
72
  };
74
- }, [current]);
73
+ }, [animating, current, data.length, interval]);
75
74
 
76
75
  // Touch handlers
77
76
  var onTouchStart = function onTouchStart(e) {
@@ -88,7 +87,7 @@ var CarouselImages = exports.CarouselImages = function CarouselImages(_ref) {
88
87
  touchStart.current = null;
89
88
  };
90
89
 
91
- // Reinicia timer en interacción de botones o dots
90
+ // Restart timer on button or dot interaction
92
91
  var handleUserGoTo = function handleUserGoTo(idx) {
93
92
  clearTimer();
94
93
  goTo(idx);
@@ -1,23 +1,16 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.Img = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireDefault(require("react"));
9
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
9
  var _util = require("../util");
11
- var _excluded = ["src", "alt", "align", "className", "bordered"];
10
+ var _useImageLoader2 = require("./useImageLoader");
11
+ var _excluded = ["src", "alt", "align", "className", "expanded", "bordered"];
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14
13
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
15
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
18
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
21
14
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
22
15
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
23
16
  var Img = exports.Img = function Img(_ref) {
@@ -27,30 +20,23 @@ var Img = exports.Img = function Img(_ref) {
27
20
  align = _ref$align === void 0 ? 'left' : _ref$align,
28
21
  _ref$className = _ref.className,
29
22
  className = _ref$className === void 0 ? '' : _ref$className,
23
+ _ref$expanded = _ref.expanded,
24
+ expanded = _ref$expanded === void 0 ? false : _ref$expanded,
30
25
  _ref$bordered = _ref.bordered,
31
26
  bordered = _ref$bordered === void 0 ? false : _ref$bordered,
32
27
  props = _objectWithoutProperties(_ref, _excluded);
33
- // const [imageData, setImageData] = useState();
34
- var _useState = (0, _react.useState)(true),
35
- _useState2 = _slicedToArray(_useState, 2),
36
- isLoading = _useState2[0],
37
- setIsLoading = _useState2[1];
38
- (0, _react.useEffect)(function () {
39
- var image = new Image();
40
- image.src = src;
41
- image.onload = function () {
42
- // setImageData({ width: image.width, height: image.height });
43
- setIsLoading(false);
44
- };
45
- }, [src]);
28
+ var _useImageLoader = (0, _useImageLoader2.useImageLoader)(src),
29
+ isLoading = _useImageLoader.isLoading,
30
+ hasError = _useImageLoader.hasError;
46
31
  return /*#__PURE__*/_react["default"].createElement("div", {
47
32
  className: "image image-".concat(align, " ").concat(className)
48
33
  }, isLoading ? /*#__PURE__*/_react["default"].createElement(_util.Loader, {
49
34
  inline: true
50
35
  }) : /*#__PURE__*/_react["default"].createElement("img", _extends({
51
36
  src: src,
52
- alt: alt,
53
- className: "".concat(bordered ? 'bordered' : '')
37
+ alt: alt || '',
38
+ className: "".concat(expanded ? 'expanded' : '', " ").concat(bordered ? 'bordered' : ''),
39
+ "aria-invalid": hasError
54
40
  }, props)));
55
41
  };
56
42
  Img.propTypes = {
@@ -58,5 +44,7 @@ Img.propTypes = {
58
44
  alt: _propTypes["default"].string,
59
45
  align: _propTypes["default"].oneOf(['left', 'center', 'right']),
60
46
  className: _propTypes["default"].string,
61
- bordered: _propTypes["default"].bool
47
+ expanded: _propTypes["default"].bool,
48
+ bordered: _propTypes["default"].bool,
49
+ rounded: _propTypes["default"].bool
62
50
  };