gdx-ui 1.15.4 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base.css +1 -1
- package/components/autocomplete/Autocomplete.js +64 -53
- package/components/badge/Badge.js +2 -2
- package/components/box/Box.js +29 -32
- package/components/dialog/Dialog.js +15 -26
- package/components/editable/Editable.js +105 -95
- package/components/editable/EditableArea.js +3 -0
- package/components/flex/Flex.js +51 -22
- package/components/forms/LabelInput.js +13 -4
- package/components/forms/LabelValue.js +13 -4
- package/components/images/CarouselImages.js +11 -12
- package/components/images/Img.js +14 -26
- package/components/images/Thumb.js +16 -40
- package/components/images/{ImageZoom.js → ZoomImage.js} +74 -111
- package/components/images/{PictureZoomBtns.js → ZoomImageButtons.js} +50 -63
- package/components/images/{Picture.js → ZoomImageSquare.js} +3 -3
- package/components/images/index.js +33 -11
- package/components/images/useImageLoader.js +76 -0
- package/components/list/ScrollableList.js +1 -1
- package/components/navbar/NavbarResponsive.js +49 -18
- package/components/snackbar/Snackbar.js +1 -1
- package/components/table/Table.js +14 -1
- package/components/util/List.js +5 -4
- package/components/util/Note.js +14 -5
- package/components/util/Skeleton.js +9 -6
- package/components/util/Text.js +44 -9
- package/components/util/Title.js +39 -8
- package/components/util/index.js +0 -11
- package/components/widget/Widget.js +16 -5
- package/hooks/index.js +11 -0
- package/hooks/useAutocomplete.js +103 -0
- package/index.js +11 -0
- package/package.json +1 -1
- package/stories/box/Box.stories.js +1 -1
- package/stories/editable/Editable.stories.js +26 -0
- package/stories/editable/Editor.stories.js +33 -0
- package/stories/forms/Autocomplete.stories.js +101 -0
- package/stories/images/CarouselImages.stories.js +31 -0
- package/stories/images/{images.stories.js → Images.stories.js} +1 -1
- package/stories/images/ZoomImage.stories.js +24 -0
- package/stories/images/ZoomImageButtons.stories.js +23 -0
- package/stories/images/ZoomImageSquare.stories.js +23 -0
- package/stories/layout/Flex.stories.js +180 -0
- package/stories/layout/Navbar.stories.js +137 -0
- package/stories/layout/Skeleton.stories.js +30 -0
- package/stories/list/List.stories.js +31 -3
- package/stories/list/ScrollableList.stories.js +37 -8
- package/stories/utils/Badge.stories.js +29 -0
- package/stories/utils/Expanded.stories.js +18 -7
- package/stories/utils/Loader.stories.js +32 -0
- package/stories/utils/Note.stories.js +47 -0
- package/stories/utils/Snackbar.stories.js +46 -0
- package/stories/utils/Text.stories.js +41 -0
- package/stories/utils/Title.stories.js +26 -0
- package/stories/utils/TokensBorders.stories.js +41 -0
- package/stories/utils/TokensColors.stories.js +45 -0
- package/stories/utils/TokensFontSizes.stories.js +39 -0
- package/stories/utils/TokensMargins.stories.js +51 -0
- package/stories/utils/Tooltip.stories.js +22 -0
- package/stories/widget/Widget.stories.js +59 -0
- package/tokens.js +44 -0
- package/components/images/PictureZoomSquare.js +0 -60
- package/components/list/SortableList.js +0 -138
- package/components/list/SortableListOLD.js +0 -121
- package/components/scroller/ListScroller.js +0 -113
- package/components/util/Anchor.js +0 -30
- package/stories/flex/Flex.stories.js +0 -35
- package/stories/list/SorteableList.stories.js +0 -45
- /package/stories/images/{thumb.stories.js → Thumb.stories.js} +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAutocomplete = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
9
|
+
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."); }
|
|
10
|
+
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; } }
|
|
11
|
+
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; }
|
|
12
|
+
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; } }
|
|
13
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
14
|
+
/**
|
|
15
|
+
* Hook para manejar la lógica de Autocomplete
|
|
16
|
+
* @param {Object} options
|
|
17
|
+
* @param {number} options.debounceMs - Tiempo de debounce en ms (default 300)
|
|
18
|
+
* @param {Function} options.onSearch - Callback cuando el usuario escribe (recibe el valor, debe retornar promesa con data)
|
|
19
|
+
* @param {number} options.minChars - Caracteres mínimos para disparar búsqueda (default 1)
|
|
20
|
+
* @returns {Object} - { value, setValue, data, isLoading, handleChange, handleSelect }
|
|
21
|
+
*/
|
|
22
|
+
var useAutocomplete = exports.useAutocomplete = function useAutocomplete() {
|
|
23
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
24
|
+
_ref$debounceMs = _ref.debounceMs,
|
|
25
|
+
debounceMs = _ref$debounceMs === void 0 ? 300 : _ref$debounceMs,
|
|
26
|
+
_ref$onSearch = _ref.onSearch,
|
|
27
|
+
onSearch = _ref$onSearch === void 0 ? null : _ref$onSearch,
|
|
28
|
+
_ref$minChars = _ref.minChars,
|
|
29
|
+
minChars = _ref$minChars === void 0 ? 1 : _ref$minChars;
|
|
30
|
+
var _useState = (0, _react.useState)(''),
|
|
31
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
32
|
+
value = _useState2[0],
|
|
33
|
+
setValue = _useState2[1];
|
|
34
|
+
var _useState3 = (0, _react.useState)([]),
|
|
35
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
36
|
+
data = _useState4[0],
|
|
37
|
+
setData = _useState4[1];
|
|
38
|
+
var _useState5 = (0, _react.useState)(false),
|
|
39
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
40
|
+
isLoading = _useState6[0],
|
|
41
|
+
setIsLoading = _useState6[1];
|
|
42
|
+
var debounceTimerId = (0, _react.useRef)(null);
|
|
43
|
+
var handleChange = (0, _react.useCallback)(function (newValue) {
|
|
44
|
+
setValue(newValue);
|
|
45
|
+
|
|
46
|
+
// Limpiar timer anterior
|
|
47
|
+
if (debounceTimerId.current) {
|
|
48
|
+
clearTimeout(debounceTimerId.current);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Si no hay callback, no hacer nada
|
|
52
|
+
if (!onSearch) {
|
|
53
|
+
setData([]);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Si no hay suficientes caracteres, limpiar resultados
|
|
58
|
+
if (newValue.trim().length < minChars) {
|
|
59
|
+
setData([]);
|
|
60
|
+
setIsLoading(false);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Debounce: esperar antes de buscar
|
|
65
|
+
debounceTimerId.current = setTimeout(function () {
|
|
66
|
+
setIsLoading(true);
|
|
67
|
+
|
|
68
|
+
// Ejecutar búsqueda (esperamos que retorne promesa)
|
|
69
|
+
Promise.resolve(onSearch(newValue)).then(function (results) {
|
|
70
|
+
setData(Array.isArray(results) ? results : []);
|
|
71
|
+
setIsLoading(false);
|
|
72
|
+
})["catch"](function (error) {
|
|
73
|
+
console.error('Error en búsqueda de autocomplete:', error);
|
|
74
|
+
setData([]);
|
|
75
|
+
setIsLoading(false);
|
|
76
|
+
});
|
|
77
|
+
}, debounceMs);
|
|
78
|
+
}, [debounceMs, onSearch, minChars]);
|
|
79
|
+
var handleSelect = (0, _react.useCallback)(function (selectedItem) {
|
|
80
|
+
// El padre decide qué hacer con la selección
|
|
81
|
+
setValue('');
|
|
82
|
+
setData([]);
|
|
83
|
+
return selectedItem;
|
|
84
|
+
}, []);
|
|
85
|
+
|
|
86
|
+
// Limpiar timeout al desmontar
|
|
87
|
+
(0, _react.useEffect)(function () {
|
|
88
|
+
return function () {
|
|
89
|
+
if (debounceTimerId.current) {
|
|
90
|
+
clearTimeout(debounceTimerId.current);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}, []);
|
|
94
|
+
return {
|
|
95
|
+
value: value,
|
|
96
|
+
setValue: setValue,
|
|
97
|
+
data: data,
|
|
98
|
+
setData: setData,
|
|
99
|
+
isLoading: isLoading,
|
|
100
|
+
handleChange: handleChange,
|
|
101
|
+
handleSelect: handleSelect
|
|
102
|
+
};
|
|
103
|
+
};
|
package/index.js
CHANGED
|
@@ -35,4 +35,15 @@ Object.keys(_layout).forEach(function (key) {
|
|
|
35
35
|
return _layout[key];
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
|
+
});
|
|
39
|
+
var _tokens = require("./tokens");
|
|
40
|
+
Object.keys(_tokens).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _tokens[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function get() {
|
|
46
|
+
return _tokens[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
38
49
|
});
|
package/package.json
CHANGED
|
@@ -27,6 +27,6 @@ var BoxDefault = exports.BoxDefault = {
|
|
|
27
27
|
style: {
|
|
28
28
|
width: '400px'
|
|
29
29
|
}
|
|
30
|
-
}, /*#__PURE__*/_react["default"].createElement(_Box.Box, args, /*#__PURE__*/_react["default"].createElement(_Box.BoxHeader, null, "Box Header"), /*#__PURE__*/_react["default"].createElement(_Box.BoxContent, null, "The content of the box goes here.")));
|
|
30
|
+
}, /*#__PURE__*/_react["default"].createElement(_Box.Box, args, /*#__PURE__*/_react["default"].createElement(_Box.BoxHeader, null, "Box Header"), /*#__PURE__*/_react["default"].createElement(_Box.BoxContent, null, "The content of the box goes here. ", /*#__PURE__*/_react["default"].createElement("br", null), "The content of the box goes here. ", /*#__PURE__*/_react["default"].createElement("br", null), "The content of the box goes here. ", /*#__PURE__*/_react["default"].createElement("br", null))));
|
|
31
31
|
}
|
|
32
32
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.BoxDefault = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _Box = require("../../components/box/Box");
|
|
9
|
+
var _components = require("../../components");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
|
+
var _default = exports["default"] = {
|
|
12
|
+
title: 'Editable/Editable',
|
|
13
|
+
component: _components.Editable,
|
|
14
|
+
parameters: {
|
|
15
|
+
layout: 'centered'
|
|
16
|
+
},
|
|
17
|
+
tags: ['autodocs']
|
|
18
|
+
};
|
|
19
|
+
var BoxDefault = exports.BoxDefault = {
|
|
20
|
+
args: {
|
|
21
|
+
placeHolder: 'Click to edit'
|
|
22
|
+
},
|
|
23
|
+
render: function render(args) {
|
|
24
|
+
return /*#__PURE__*/_react["default"].createElement(_components.Editable, args, "Hola mundo");
|
|
25
|
+
}
|
|
26
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.BoxDefault = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _Box = require("../../components/box/Box");
|
|
9
|
+
var _components = require("../../components");
|
|
10
|
+
var _HTMLEditor = _interopRequireDefault(require("../../components/editor/HTMLEditor"));
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
var _default = exports["default"] = {
|
|
13
|
+
title: 'Editable/HTMLEditor',
|
|
14
|
+
component: _HTMLEditor["default"],
|
|
15
|
+
parameters: {
|
|
16
|
+
layout: 'centered'
|
|
17
|
+
},
|
|
18
|
+
tags: ['autodocs']
|
|
19
|
+
};
|
|
20
|
+
var BoxDefault = exports.BoxDefault = {
|
|
21
|
+
args: {
|
|
22
|
+
content: 'Click to edit',
|
|
23
|
+
error: undefined,
|
|
24
|
+
height: 200
|
|
25
|
+
},
|
|
26
|
+
render: function render(args) {
|
|
27
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
28
|
+
style: {
|
|
29
|
+
width: '600px'
|
|
30
|
+
}
|
|
31
|
+
}, /*#__PURE__*/_react["default"].createElement(_HTMLEditor["default"], args));
|
|
32
|
+
}
|
|
33
|
+
};
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _Autocomplete = require("../../components/autocomplete/Autocomplete");
|
|
9
|
+
var _useAutocomplete2 = require("../../hooks/useAutocomplete");
|
|
10
|
+
var _Information = require("../../components/information/Information");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
13
|
+
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."); }
|
|
14
|
+
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; } }
|
|
15
|
+
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; }
|
|
16
|
+
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; } }
|
|
17
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
18
|
+
var staticData = [{
|
|
19
|
+
key: '1',
|
|
20
|
+
text: 'David Antonio'
|
|
21
|
+
}, {
|
|
22
|
+
key: '2',
|
|
23
|
+
text: 'Juan Alberto'
|
|
24
|
+
}, {
|
|
25
|
+
key: '3',
|
|
26
|
+
text: 'Juan Carlos'
|
|
27
|
+
}, {
|
|
28
|
+
key: '4',
|
|
29
|
+
text: 'Carlos Alberto'
|
|
30
|
+
}, {
|
|
31
|
+
key: '5',
|
|
32
|
+
text: 'David'
|
|
33
|
+
}, {
|
|
34
|
+
key: '6',
|
|
35
|
+
text: 'Diana'
|
|
36
|
+
}];
|
|
37
|
+
var LocalSearchExample = function LocalSearchExample() {
|
|
38
|
+
var _React$useState = _react["default"].useState(null),
|
|
39
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
40
|
+
result = _React$useState2[0],
|
|
41
|
+
setResult = _React$useState2[1];
|
|
42
|
+
var _useAutocomplete = (0, _useAutocomplete2.useAutocomplete)({
|
|
43
|
+
debounceMs: 300,
|
|
44
|
+
minChars: 1,
|
|
45
|
+
onSearch: function onSearch(query) {
|
|
46
|
+
// Búsqueda local en staticData
|
|
47
|
+
var filtered = staticData.filter(function (item) {
|
|
48
|
+
return item.text.toLowerCase().includes(query.toLowerCase());
|
|
49
|
+
});
|
|
50
|
+
return filtered;
|
|
51
|
+
}
|
|
52
|
+
}),
|
|
53
|
+
value = _useAutocomplete.value,
|
|
54
|
+
data = _useAutocomplete.data,
|
|
55
|
+
isLoading = _useAutocomplete.isLoading,
|
|
56
|
+
handleChange = _useAutocomplete.handleChange,
|
|
57
|
+
handleSelect = _useAutocomplete.handleSelect;
|
|
58
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
59
|
+
style: {
|
|
60
|
+
width: '400px'
|
|
61
|
+
}
|
|
62
|
+
}, /*#__PURE__*/_react["default"].createElement(_Information.Information, null, "Utilice el hook ", /*#__PURE__*/_react["default"].createElement("code", null, "useAutocomplete"), " para manejar la l\xF3gica de b\xFAsqueda y selecci\xF3n, mientras que el componente ", /*#__PURE__*/_react["default"].createElement("code", null, "Autocomplete"), " se encarga de la interfaz. En este ejemplo, se realiza una b\xFAsqueda local en un array est\xE1tico, pero el hook tambi\xE9n puede manejar b\xFAsquedas remotas."), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_Autocomplete.Autocomplete, {
|
|
63
|
+
label: "Buscar nombre",
|
|
64
|
+
placeholder: "Escribe para buscar...",
|
|
65
|
+
expanded: true,
|
|
66
|
+
data: data,
|
|
67
|
+
value: value,
|
|
68
|
+
onChange: function onChange(e) {
|
|
69
|
+
return handleChange(e.target.value);
|
|
70
|
+
},
|
|
71
|
+
onSelect: function onSelect(item) {
|
|
72
|
+
handleSelect(item);
|
|
73
|
+
setResult(item);
|
|
74
|
+
},
|
|
75
|
+
renderItem: function renderItem(item) {
|
|
76
|
+
return item.text;
|
|
77
|
+
}
|
|
78
|
+
}), isLoading && /*#__PURE__*/_react["default"].createElement("p", {
|
|
79
|
+
style: {
|
|
80
|
+
marginTop: '10px',
|
|
81
|
+
fontSize: '12px'
|
|
82
|
+
}
|
|
83
|
+
}, "Buscando..."), result && /*#__PURE__*/_react["default"].createElement("div", {
|
|
84
|
+
style: {
|
|
85
|
+
marginTop: '10px'
|
|
86
|
+
}
|
|
87
|
+
}, /*#__PURE__*/_react["default"].createElement("strong", null, "Seleccionado:"), " ", result.text));
|
|
88
|
+
};
|
|
89
|
+
var _default = exports["default"] = {
|
|
90
|
+
title: 'Forms/Autocomplete',
|
|
91
|
+
component: _Autocomplete.Autocomplete,
|
|
92
|
+
parameters: {
|
|
93
|
+
layout: 'centered'
|
|
94
|
+
},
|
|
95
|
+
tags: ['autodocs']
|
|
96
|
+
};
|
|
97
|
+
var Default = exports.Default = {
|
|
98
|
+
render: function render() {
|
|
99
|
+
return /*#__PURE__*/_react["default"].createElement(LocalSearchExample, null);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _components = require("../../components");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var _default = exports["default"] = {
|
|
11
|
+
title: 'Images/CarouselImages',
|
|
12
|
+
component: _components.CarouselImages,
|
|
13
|
+
tags: ['autodocs']
|
|
14
|
+
};
|
|
15
|
+
var Default = exports.Default = {
|
|
16
|
+
args: {
|
|
17
|
+
data: [{
|
|
18
|
+
src: 'https://www.gadxe.com/files/imgs/i2409/b/5921blue.jpg',
|
|
19
|
+
alt: 'Example Image 1',
|
|
20
|
+
title: 'Use title prop to add a title to the image'
|
|
21
|
+
}, {
|
|
22
|
+
src: 'https://www.gadxe.com/files/imgs/i2409/b/88654000105981-847_blue_2.webp',
|
|
23
|
+
alt: 'Example Image 2'
|
|
24
|
+
}, {
|
|
25
|
+
src: 'https://www.gadxe.com/files/imgs/i2409/b/7340marino1.jpg',
|
|
26
|
+
alt: 'Example Image 3'
|
|
27
|
+
}],
|
|
28
|
+
height: 800,
|
|
29
|
+
interval: 5
|
|
30
|
+
}
|
|
31
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _components = require("../../components");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var _default = exports["default"] = {
|
|
11
|
+
title: 'Images/ZoomImage',
|
|
12
|
+
component: _components.ZoomImage,
|
|
13
|
+
tags: ['autodocs']
|
|
14
|
+
};
|
|
15
|
+
var Default = exports.Default = {
|
|
16
|
+
args: {
|
|
17
|
+
src: 'https://www.gadxe.com/files/imgs/i2409/b/5921blue.jpg',
|
|
18
|
+
alt: 'Example Image',
|
|
19
|
+
width: '50%',
|
|
20
|
+
bordered: true,
|
|
21
|
+
maxZoom: 2,
|
|
22
|
+
showHelper: true
|
|
23
|
+
}
|
|
24
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _components = require("../../components");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var _default = exports["default"] = {
|
|
11
|
+
title: 'Images/ZoomImageButtons',
|
|
12
|
+
component: _components.ZoomImageButtons,
|
|
13
|
+
tags: ['autodocs']
|
|
14
|
+
};
|
|
15
|
+
var Default = exports.Default = {
|
|
16
|
+
args: {
|
|
17
|
+
src: 'https://www.gadxe.com/files/imgs/i2409/b/5921blue.jpg',
|
|
18
|
+
alt: 'Example Image',
|
|
19
|
+
width: 600,
|
|
20
|
+
bordered: true,
|
|
21
|
+
maxZoom: 2
|
|
22
|
+
}
|
|
23
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _ZoomImageSquare = require("../../components/images/ZoomImageSquare");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var _default = exports["default"] = {
|
|
11
|
+
title: 'Images/ZoomImageSquare',
|
|
12
|
+
component: _ZoomImageSquare.ZoomImageSquare,
|
|
13
|
+
tags: ['autodocs']
|
|
14
|
+
};
|
|
15
|
+
var Default = exports.Default = {
|
|
16
|
+
args: {
|
|
17
|
+
src: 'https://www.gadxe.com/files/imgs/i2409/b/5921blue.jpg',
|
|
18
|
+
alt: 'Example Image',
|
|
19
|
+
width: '50%',
|
|
20
|
+
height: '50%',
|
|
21
|
+
bordered: false
|
|
22
|
+
}
|
|
23
|
+
};
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.Inline = exports.Grid = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _components = require("../../components");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var _default = exports["default"] = {
|
|
11
|
+
title: 'Layout/Flex',
|
|
12
|
+
component: _components.Flex,
|
|
13
|
+
tags: ['autodocs']
|
|
14
|
+
}; // Simulates a page at a specific width — useful to see responsive grid behavior
|
|
15
|
+
var PageSimulator = function PageSimulator(_ref) {
|
|
16
|
+
var width = _ref.width,
|
|
17
|
+
children = _ref.children;
|
|
18
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
19
|
+
style: {
|
|
20
|
+
width: width,
|
|
21
|
+
margin: '0 auto',
|
|
22
|
+
border: '1px dashed #717171',
|
|
23
|
+
boxSizing: 'border-box'
|
|
24
|
+
}
|
|
25
|
+
}, children);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Grid story: N items, M columns (desktop), with phone/tablet overrides
|
|
29
|
+
var Grid = exports.Grid = {
|
|
30
|
+
render: function render(_ref2) {
|
|
31
|
+
var width = _ref2.width,
|
|
32
|
+
columns = _ref2.columns,
|
|
33
|
+
phone = _ref2.phone,
|
|
34
|
+
tablet = _ref2.tablet,
|
|
35
|
+
gap = _ref2.gap,
|
|
36
|
+
items = _ref2.items;
|
|
37
|
+
var data = Array.from({
|
|
38
|
+
length: items
|
|
39
|
+
}, function (_, i) {
|
|
40
|
+
return i + 1;
|
|
41
|
+
});
|
|
42
|
+
return /*#__PURE__*/_react["default"].createElement(PageSimulator, {
|
|
43
|
+
width: width
|
|
44
|
+
}, /*#__PURE__*/_react["default"].createElement(_components.Flex, {
|
|
45
|
+
columns: columns,
|
|
46
|
+
phone: phone,
|
|
47
|
+
tablet: tablet,
|
|
48
|
+
gap: gap,
|
|
49
|
+
alignItems: "stretch"
|
|
50
|
+
}, data.map(function (n) {
|
|
51
|
+
return /*#__PURE__*/_react["default"].createElement(_components.FlexItem, {
|
|
52
|
+
key: n
|
|
53
|
+
}, /*#__PURE__*/_react["default"].createElement(_components.Widget, {
|
|
54
|
+
hover: true
|
|
55
|
+
}, "Item ", n));
|
|
56
|
+
})));
|
|
57
|
+
},
|
|
58
|
+
argTypes: {
|
|
59
|
+
width: {
|
|
60
|
+
control: {
|
|
61
|
+
type: 'range',
|
|
62
|
+
min: 320,
|
|
63
|
+
max: 1400,
|
|
64
|
+
step: 10
|
|
65
|
+
},
|
|
66
|
+
description: 'Simulated page width in px (drag to test responsive breakpoints)'
|
|
67
|
+
},
|
|
68
|
+
columns: {
|
|
69
|
+
control: {
|
|
70
|
+
type: 'number',
|
|
71
|
+
min: 1,
|
|
72
|
+
max: 12
|
|
73
|
+
},
|
|
74
|
+
description: 'Columns per row on desktop (>1115px)'
|
|
75
|
+
},
|
|
76
|
+
phone: {
|
|
77
|
+
control: {
|
|
78
|
+
type: 'number',
|
|
79
|
+
min: 1,
|
|
80
|
+
max: 4
|
|
81
|
+
},
|
|
82
|
+
description: 'Columns per row on phone (≤550px)'
|
|
83
|
+
},
|
|
84
|
+
tablet: {
|
|
85
|
+
control: {
|
|
86
|
+
type: 'number',
|
|
87
|
+
min: 1,
|
|
88
|
+
max: 6
|
|
89
|
+
},
|
|
90
|
+
description: 'Columns per row on tablet (551px–1115px)'
|
|
91
|
+
},
|
|
92
|
+
gap: {
|
|
93
|
+
control: {
|
|
94
|
+
type: 'number',
|
|
95
|
+
min: 0,
|
|
96
|
+
max: 40
|
|
97
|
+
},
|
|
98
|
+
description: 'Gap between items in px'
|
|
99
|
+
},
|
|
100
|
+
items: {
|
|
101
|
+
control: {
|
|
102
|
+
type: 'number',
|
|
103
|
+
min: 1,
|
|
104
|
+
max: 48
|
|
105
|
+
},
|
|
106
|
+
description: 'Total number of items (N)'
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
args: {
|
|
110
|
+
width: 1100,
|
|
111
|
+
columns: 3,
|
|
112
|
+
phone: 1,
|
|
113
|
+
tablet: 2,
|
|
114
|
+
gap: 15,
|
|
115
|
+
items: 9
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
var data = Array.from({
|
|
119
|
+
length: 5
|
|
120
|
+
}, function (_, i) {
|
|
121
|
+
return {
|
|
122
|
+
id: i + 1,
|
|
123
|
+
title: "Item ".concat(i + 1)
|
|
124
|
+
};
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// Simple flex (no grid) — original behavior
|
|
128
|
+
var Inline = exports.Inline = {
|
|
129
|
+
render: function render(_ref3) {
|
|
130
|
+
var width = _ref3.width,
|
|
131
|
+
gap = _ref3.gap,
|
|
132
|
+
justify = _ref3.justify,
|
|
133
|
+
alignItems = _ref3.alignItems;
|
|
134
|
+
return /*#__PURE__*/_react["default"].createElement(PageSimulator, {
|
|
135
|
+
width: width
|
|
136
|
+
}, /*#__PURE__*/_react["default"].createElement(_components.Flex, {
|
|
137
|
+
gap: gap,
|
|
138
|
+
justify: justify,
|
|
139
|
+
alignItems: alignItems
|
|
140
|
+
}, data.map(function (item) {
|
|
141
|
+
return /*#__PURE__*/_react["default"].createElement(_components.FlexItem, {
|
|
142
|
+
key: item.id,
|
|
143
|
+
align: "center"
|
|
144
|
+
}, /*#__PURE__*/_react["default"].createElement(_components.Widget, {
|
|
145
|
+
bordered: true
|
|
146
|
+
}, item.title));
|
|
147
|
+
})));
|
|
148
|
+
},
|
|
149
|
+
argTypes: {
|
|
150
|
+
width: {
|
|
151
|
+
control: {
|
|
152
|
+
type: 'range',
|
|
153
|
+
min: 320,
|
|
154
|
+
max: 1400,
|
|
155
|
+
step: 10
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
gap: {
|
|
159
|
+
control: {
|
|
160
|
+
type: 'number',
|
|
161
|
+
min: 0,
|
|
162
|
+
max: 40
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
justify: {
|
|
166
|
+
control: 'select',
|
|
167
|
+
options: ['left', 'center', 'right', 'between']
|
|
168
|
+
},
|
|
169
|
+
alignItems: {
|
|
170
|
+
control: 'select',
|
|
171
|
+
options: ['start', 'center', 'end', 'stretch', 'baseline']
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
args: {
|
|
175
|
+
width: 800,
|
|
176
|
+
gap: 15,
|
|
177
|
+
justify: 'left',
|
|
178
|
+
alignItems: 'center'
|
|
179
|
+
}
|
|
180
|
+
};
|