@salutejs/plasma-new-hope 0.144.0-canary.1418.10833167538.0 → 0.144.0-canary.1430.10833771822.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Editable/Editable.css +8 -0
- package/cjs/components/Editable/Editable.js +155 -0
- package/cjs/components/Editable/Editable.js.map +1 -0
- package/cjs/components/Editable/Editable.styles.js +38 -0
- package/cjs/components/Editable/Editable.styles.js.map +1 -0
- package/cjs/components/Editable/Editable.styles_somxw2.css +4 -0
- package/cjs/components/Editable/Editable.tokens.js +21 -0
- package/cjs/components/Editable/Editable.tokens.js.map +1 -0
- package/cjs/components/Editable/utils/clearSelection.js +23 -0
- package/cjs/components/Editable/utils/clearSelection.js.map +1 -0
- package/cjs/components/Editable/utils/selectText.js +30 -0
- package/cjs/components/Editable/utils/selectText.js.map +1 -0
- package/cjs/components/Editable/variations/_size/base.js +9 -0
- package/cjs/components/Editable/variations/_size/base.js.map +1 -0
- package/cjs/components/Editable/variations/_size/base_54y6eh.css +1 -0
- package/cjs/components/Editable/variations/_view/base.js +9 -0
- package/cjs/components/Editable/variations/_view/base.js.map +1 -0
- package/cjs/components/Editable/variations/_view/base_11fpjfv.css +1 -0
- package/cjs/index.css +9 -0
- package/cjs/index.js +7 -0
- package/cjs/index.js.map +1 -1
- package/cjs/utils/constants.js +20 -0
- package/cjs/utils/constants.js.map +1 -0
- package/cjs/utils/index.js.map +1 -1
- package/emotion/cjs/components/Editable/Editable.js +160 -0
- package/emotion/cjs/components/Editable/Editable.styles.js +26 -0
- package/emotion/cjs/components/Editable/Editable.tokens.js +19 -0
- package/emotion/cjs/components/Editable/index.js +25 -0
- package/emotion/cjs/components/Editable/utils/clearSelection.js +19 -0
- package/emotion/cjs/components/Editable/utils/index.js +19 -0
- package/emotion/cjs/components/Editable/utils/selectText.js +26 -0
- package/emotion/cjs/components/Editable/variations/_size/base.js +10 -0
- package/emotion/cjs/components/Editable/variations/_size/tokens.json +1 -0
- package/emotion/cjs/components/Editable/variations/_view/base.js +10 -0
- package/emotion/cjs/components/Editable/variations/_view/tokens.json +5 -0
- package/emotion/cjs/examples/plasma_b2c/components/Editable/Editable.config.js +22 -0
- package/emotion/cjs/examples/plasma_b2c/components/Editable/Editable.js +22 -0
- package/emotion/cjs/examples/plasma_b2c/components/Editable/Editable.stories.tsx +81 -0
- package/emotion/cjs/examples/plasma_web/components/Editable/Editable.config.js +22 -0
- package/emotion/cjs/examples/plasma_web/components/Editable/Editable.js +22 -0
- package/emotion/cjs/examples/plasma_web/components/Editable/Editable.stories.tsx +81 -0
- package/emotion/cjs/index.js +11 -0
- package/emotion/cjs/utils/constants.js +19 -0
- package/emotion/cjs/utils/index.js +8 -2
- package/emotion/es/components/Editable/Editable.js +151 -0
- package/emotion/es/components/Editable/Editable.styles.js +19 -0
- package/emotion/es/components/Editable/Editable.tokens.js +13 -0
- package/emotion/es/components/Editable/index.js +2 -0
- package/emotion/es/components/Editable/utils/clearSelection.js +13 -0
- package/emotion/es/components/Editable/utils/index.js +2 -0
- package/emotion/es/components/Editable/utils/selectText.js +20 -0
- package/emotion/es/components/Editable/variations/_size/base.js +4 -0
- package/emotion/es/components/Editable/variations/_size/tokens.json +1 -0
- package/emotion/es/components/Editable/variations/_view/base.js +4 -0
- package/emotion/es/components/Editable/variations/_view/tokens.json +5 -0
- package/emotion/es/examples/plasma_b2c/components/Editable/Editable.config.js +16 -0
- package/emotion/es/examples/plasma_b2c/components/Editable/Editable.js +16 -0
- package/emotion/es/examples/plasma_b2c/components/Editable/Editable.stories.tsx +81 -0
- package/emotion/es/examples/plasma_web/components/Editable/Editable.config.js +16 -0
- package/emotion/es/examples/plasma_web/components/Editable/Editable.js +16 -0
- package/emotion/es/examples/plasma_web/components/Editable/Editable.stories.tsx +81 -0
- package/emotion/es/index.js +2 -1
- package/emotion/es/utils/constants.js +13 -0
- package/emotion/es/utils/index.js +2 -0
- package/es/components/Editable/Editable.css +8 -0
- package/es/components/Editable/Editable.js +150 -0
- package/es/components/Editable/Editable.js.map +1 -0
- package/es/components/Editable/Editable.styles.js +31 -0
- package/es/components/Editable/Editable.styles.js.map +1 -0
- package/es/components/Editable/Editable.styles_somxw2.css +4 -0
- package/es/components/Editable/Editable.tokens.js +16 -0
- package/es/components/Editable/Editable.tokens.js.map +1 -0
- package/es/components/Editable/utils/clearSelection.js +19 -0
- package/es/components/Editable/utils/clearSelection.js.map +1 -0
- package/es/components/Editable/utils/selectText.js +26 -0
- package/es/components/Editable/utils/selectText.js.map +1 -0
- package/es/components/Editable/variations/_size/base.js +5 -0
- package/es/components/Editable/variations/_size/base.js.map +1 -0
- package/es/components/Editable/variations/_size/base_54y6eh.css +1 -0
- package/es/components/Editable/variations/_view/base.js +5 -0
- package/es/components/Editable/variations/_view/base.js.map +1 -0
- package/es/components/Editable/variations/_view/base_11fpjfv.css +1 -0
- package/es/index.css +9 -0
- package/es/index.js +4 -0
- package/es/index.js.map +1 -1
- package/es/utils/constants.js +16 -0
- package/es/utils/constants.js.map +1 -0
- package/es/utils/index.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Editable/Editable.js +160 -0
- package/styled-components/cjs/components/Editable/Editable.styles.js +26 -0
- package/styled-components/cjs/components/Editable/Editable.tokens.js +19 -0
- package/styled-components/cjs/components/Editable/index.js +25 -0
- package/styled-components/cjs/components/Editable/utils/clearSelection.js +19 -0
- package/styled-components/cjs/components/Editable/utils/index.js +19 -0
- package/styled-components/cjs/components/Editable/utils/selectText.js +26 -0
- package/styled-components/cjs/components/Editable/variations/_size/base.js +10 -0
- package/styled-components/cjs/components/Editable/variations/_size/tokens.json +1 -0
- package/styled-components/cjs/components/Editable/variations/_view/base.js +10 -0
- package/styled-components/cjs/components/Editable/variations/_view/tokens.json +5 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Editable/Editable.config.js +22 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Editable/Editable.js +22 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Editable/Editable.stories.tsx +81 -0
- package/styled-components/cjs/examples/plasma_web/components/Editable/Editable.config.js +22 -0
- package/styled-components/cjs/examples/plasma_web/components/Editable/Editable.js +22 -0
- package/styled-components/cjs/examples/plasma_web/components/Editable/Editable.stories.tsx +81 -0
- package/styled-components/cjs/index.js +11 -0
- package/styled-components/cjs/utils/constants.js +19 -0
- package/styled-components/cjs/utils/index.js +8 -2
- package/styled-components/es/components/Editable/Editable.js +151 -0
- package/styled-components/es/components/Editable/Editable.styles.js +18 -0
- package/styled-components/es/components/Editable/Editable.tokens.js +13 -0
- package/styled-components/es/components/Editable/index.js +2 -0
- package/styled-components/es/components/Editable/utils/clearSelection.js +13 -0
- package/styled-components/es/components/Editable/utils/index.js +2 -0
- package/styled-components/es/components/Editable/utils/selectText.js +20 -0
- package/styled-components/es/components/Editable/variations/_size/base.js +4 -0
- package/styled-components/es/components/Editable/variations/_size/tokens.json +1 -0
- package/styled-components/es/components/Editable/variations/_view/base.js +4 -0
- package/styled-components/es/components/Editable/variations/_view/tokens.json +5 -0
- package/styled-components/es/examples/plasma_b2c/components/Editable/Editable.config.js +16 -0
- package/styled-components/es/examples/plasma_b2c/components/Editable/Editable.js +16 -0
- package/styled-components/es/examples/plasma_b2c/components/Editable/Editable.stories.tsx +81 -0
- package/styled-components/es/examples/plasma_web/components/Editable/Editable.config.js +16 -0
- package/styled-components/es/examples/plasma_web/components/Editable/Editable.js +16 -0
- package/styled-components/es/examples/plasma_web/components/Editable/Editable.stories.tsx +81 -0
- package/styled-components/es/index.js +2 -1
- package/styled-components/es/utils/constants.js +13 -0
- package/styled-components/es/utils/index.js +2 -0
- package/types/components/Editable/Editable.d.ts +23 -0
- package/types/components/Editable/Editable.d.ts.map +1 -0
- package/types/components/Editable/Editable.styles.d.ts +8 -0
- package/types/components/Editable/Editable.styles.d.ts.map +1 -0
- package/types/components/Editable/Editable.tokens.d.ts +14 -0
- package/types/components/Editable/Editable.tokens.d.ts.map +1 -0
- package/types/components/Editable/Editable.types.d.ts +39 -0
- package/types/components/Editable/Editable.types.d.ts.map +1 -0
- package/types/components/Editable/index.d.ts +3 -0
- package/types/components/Editable/index.d.ts.map +1 -0
- package/types/components/Editable/utils/clearSelection.d.ts +2 -0
- package/types/components/Editable/utils/clearSelection.d.ts.map +1 -0
- package/types/components/Editable/utils/index.d.ts +3 -0
- package/types/components/Editable/utils/index.d.ts.map +1 -0
- package/types/components/Editable/utils/selectText.d.ts +2 -0
- package/types/components/Editable/utils/selectText.d.ts.map +1 -0
- package/types/components/Editable/variations/_size/base.d.ts +2 -0
- package/types/components/Editable/variations/_size/base.d.ts.map +1 -0
- package/types/components/Editable/variations/_view/base.d.ts +2 -0
- package/types/components/Editable/variations/_view/base.d.ts.map +1 -0
- package/types/components/Pagination/utils/index.d.ts +1 -1
- package/types/examples/plasma_b2c/components/Editable/Editable.config.d.ts +15 -0
- package/types/examples/plasma_b2c/components/Editable/Editable.config.d.ts.map +1 -0
- package/types/examples/plasma_b2c/components/Editable/Editable.d.ts +57 -0
- package/types/examples/plasma_b2c/components/Editable/Editable.d.ts.map +1 -0
- package/types/examples/plasma_web/components/Editable/Editable.config.d.ts +15 -0
- package/types/examples/plasma_web/components/Editable/Editable.config.d.ts.map +1 -0
- package/types/examples/plasma_web/components/Editable/Editable.d.ts +57 -0
- package/types/examples/plasma_web/components/Editable/Editable.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/utils/constants.d.ts +14 -0
- package/types/utils/constants.d.ts.map +1 -0
- package/types/utils/index.d.ts +1 -0
- package/types/utils/index.d.ts.map +1 -1
- package/emotion/cjs/components/Mask/Mask.js +0 -207
- package/emotion/cjs/components/Mask/index.js +0 -12
- package/emotion/cjs/components/Mask/utils/constants.js +0 -31
- package/emotion/cjs/components/Mask/utils/createMask.js +0 -50
- package/emotion/cjs/components/Mask/utils/mask.js +0 -248
- package/emotion/cjs/components/Mask/utils/parseMask.js +0 -36
- package/emotion/cjs/components/Mask/utils/processInput.js +0 -52
- package/emotion/cjs/components/Mask/utils/processMask.js +0 -99
- package/emotion/cjs/components/Mask/utils/selection.js +0 -48
- package/emotion/cjs/components/Mask/utils/types/mask.types.js +0 -5
- package/emotion/cjs/components/Mask/utils/types/selectRange.types.js +0 -5
- package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.js +0 -9
- package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +0 -131
- package/emotion/es/components/Mask/Mask.js +0 -199
- package/emotion/es/components/Mask/index.js +0 -1
- package/emotion/es/components/Mask/utils/constants.js +0 -25
- package/emotion/es/components/Mask/utils/createMask.js +0 -44
- package/emotion/es/components/Mask/utils/mask.js +0 -242
- package/emotion/es/components/Mask/utils/parseMask.js +0 -30
- package/emotion/es/components/Mask/utils/processInput.js +0 -46
- package/emotion/es/components/Mask/utils/processMask.js +0 -93
- package/emotion/es/components/Mask/utils/selection.js +0 -42
- package/emotion/es/components/Mask/utils/types/mask.types.js +0 -1
- package/emotion/es/components/Mask/utils/types/selectRange.types.js +0 -1
- package/emotion/es/examples/plasma_b2c/components/Mask/Mask.js +0 -3
- package/emotion/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +0 -131
- package/styled-components/cjs/components/Mask/Mask.js +0 -207
- package/styled-components/cjs/components/Mask/Mask.types.js +0 -5
- package/styled-components/cjs/components/Mask/index.js +0 -12
- package/styled-components/cjs/components/Mask/utils/constants.js +0 -31
- package/styled-components/cjs/components/Mask/utils/createMask.js +0 -50
- package/styled-components/cjs/components/Mask/utils/mask.js +0 -248
- package/styled-components/cjs/components/Mask/utils/parseMask.js +0 -36
- package/styled-components/cjs/components/Mask/utils/processInput.js +0 -52
- package/styled-components/cjs/components/Mask/utils/processMask.js +0 -99
- package/styled-components/cjs/components/Mask/utils/selection.js +0 -48
- package/styled-components/cjs/components/Mask/utils/types/input.types.js +0 -5
- package/styled-components/cjs/components/Mask/utils/types/mask.types.js +0 -5
- package/styled-components/cjs/components/Mask/utils/types/selectRange.types.js +0 -5
- package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.js +0 -9
- package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +0 -131
- package/styled-components/es/components/Mask/Mask.js +0 -199
- package/styled-components/es/components/Mask/Mask.types.js +0 -1
- package/styled-components/es/components/Mask/index.js +0 -1
- package/styled-components/es/components/Mask/utils/constants.js +0 -25
- package/styled-components/es/components/Mask/utils/createMask.js +0 -44
- package/styled-components/es/components/Mask/utils/mask.js +0 -242
- package/styled-components/es/components/Mask/utils/parseMask.js +0 -30
- package/styled-components/es/components/Mask/utils/processInput.js +0 -46
- package/styled-components/es/components/Mask/utils/processMask.js +0 -93
- package/styled-components/es/components/Mask/utils/selection.js +0 -42
- package/styled-components/es/components/Mask/utils/types/input.types.js +0 -1
- package/styled-components/es/components/Mask/utils/types/mask.types.js +0 -1
- package/styled-components/es/components/Mask/utils/types/selectRange.types.js +0 -1
- package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.js +0 -3
- package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +0 -131
- package/types/components/Mask/Mask.d.ts +0 -5
- package/types/components/Mask/Mask.d.ts.map +0 -1
- package/types/components/Mask/Mask.types.d.ts +0 -49
- package/types/components/Mask/Mask.types.d.ts.map +0 -1
- package/types/components/Mask/index.d.ts +0 -2
- package/types/components/Mask/index.d.ts.map +0 -1
- package/types/components/Mask/utils/constants.d.ts +0 -15
- package/types/components/Mask/utils/constants.d.ts.map +0 -1
- package/types/components/Mask/utils/createMask.d.ts +0 -19
- package/types/components/Mask/utils/createMask.d.ts.map +0 -1
- package/types/components/Mask/utils/mask.d.ts +0 -44
- package/types/components/Mask/utils/mask.d.ts.map +0 -1
- package/types/components/Mask/utils/parseMask.d.ts +0 -3
- package/types/components/Mask/utils/parseMask.d.ts.map +0 -1
- package/types/components/Mask/utils/processInput.d.ts +0 -15
- package/types/components/Mask/utils/processInput.d.ts.map +0 -1
- package/types/components/Mask/utils/processMask.d.ts +0 -9
- package/types/components/Mask/utils/processMask.d.ts.map +0 -1
- package/types/components/Mask/utils/selection.d.ts +0 -11
- package/types/components/Mask/utils/selection.d.ts.map +0 -1
- package/types/components/Mask/utils/types/input.types.d.ts +0 -26
- package/types/components/Mask/utils/types/input.types.d.ts.map +0 -1
- package/types/components/Mask/utils/types/mask.types.d.ts +0 -9
- package/types/components/Mask/utils/types/mask.types.d.ts.map +0 -1
- package/types/components/Mask/utils/types/selectRange.types.d.ts +0 -5
- package/types/components/Mask/utils/types/selectRange.types.d.ts.map +0 -1
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +0 -191
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +0 -1
- /package/emotion/cjs/components/{Mask/Mask.types.js → Editable/Editable.types.js} +0 -0
- /package/emotion/es/components/{Mask/Mask.types.js → Editable/Editable.types.js} +0 -0
- /package/{emotion/cjs/components/Mask/utils/types/input.types.js → styled-components/cjs/components/Editable/Editable.types.js} +0 -0
- /package/{emotion/es/components/Mask/utils/types/input.types.js → styled-components/es/components/Editable/Editable.types.js} +0 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.keyCodes = void 0;
|
7
|
+
var keyCodes = exports.keyCodes = {
|
8
|
+
PageUp: 33,
|
9
|
+
PageDown: 34,
|
10
|
+
Home: 36,
|
11
|
+
End: 35,
|
12
|
+
Left: 37,
|
13
|
+
Right: 39,
|
14
|
+
Up: 38,
|
15
|
+
Down: 40,
|
16
|
+
Enter: 13,
|
17
|
+
Space: 32,
|
18
|
+
Escape: 27
|
19
|
+
};
|
@@ -1,5 +1,6 @@
|
|
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); }
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
4
5
|
value: true
|
5
6
|
});
|
@@ -12,7 +13,8 @@ var _exportNames = {
|
|
12
13
|
IS_REACT_18: true,
|
13
14
|
safeUseId: true,
|
14
15
|
isNumber: true,
|
15
|
-
isEmpty: true
|
16
|
+
isEmpty: true,
|
17
|
+
constants: true
|
16
18
|
};
|
17
19
|
Object.defineProperty(exports, "IS_REACT_18", {
|
18
20
|
enumerable: true,
|
@@ -26,7 +28,7 @@ Object.defineProperty(exports, "canUseDOM", {
|
|
26
28
|
return _canUseDOM.canUseDOM;
|
27
29
|
}
|
28
30
|
});
|
29
|
-
exports.cx = exports.composableStyle = void 0;
|
31
|
+
exports.cx = exports.constants = exports.composableStyle = void 0;
|
30
32
|
Object.defineProperty(exports, "extractTextFrom", {
|
31
33
|
enumerable: true,
|
32
34
|
get: function get() {
|
@@ -63,6 +65,8 @@ var _getSizeValueFromProp = /*#__PURE__*/require("./getSizeValueFromProp");
|
|
63
65
|
var _react = /*#__PURE__*/require("./react");
|
64
66
|
var _isNumber = /*#__PURE__*/require("./isNumber");
|
65
67
|
var _isEmpty = /*#__PURE__*/require("./isEmpty");
|
68
|
+
var _constants = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./constants"));
|
69
|
+
exports.constants = _constants;
|
66
70
|
var _getPopoverPlacement = /*#__PURE__*/require("./getPopoverPlacement");
|
67
71
|
Object.keys(_getPopoverPlacement).forEach(function (key) {
|
68
72
|
if (key === "default" || key === "__esModule") return;
|
@@ -75,6 +79,8 @@ Object.keys(_getPopoverPlacement).forEach(function (key) {
|
|
75
79
|
}
|
76
80
|
});
|
77
81
|
});
|
82
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
83
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
78
84
|
var cx = exports.cx = function cx() {
|
79
85
|
for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {
|
80
86
|
classes[_key] = arguments[_key];
|
@@ -0,0 +1,151 @@
|
|
1
|
+
var _excluded = ["textComponent", "value", "icon", "maxLength", "spellCheck", "placeholder", "name", "onChange", "onBlur", "onPaste"];
|
2
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
3
|
+
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."); }
|
4
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
5
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
6
|
+
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; } }
|
7
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
8
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
9
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
10
|
+
import React, { forwardRef, useEffect, useRef, useState } from 'react';
|
11
|
+
import { useForkRef } from '@salutejs/plasma-core';
|
12
|
+
import { constants } from '../../utils';
|
13
|
+
import { clearSelection, selectText } from './utils';
|
14
|
+
import { classes } from './Editable.tokens';
|
15
|
+
import { base, EditButton, StyledInput, StyledPlacehpolder } from './Editable.styles';
|
16
|
+
import { base as viewCSS } from './variations/_view/base';
|
17
|
+
import { base as sizeCSS } from './variations/_size/base';
|
18
|
+
export var editableRoot = function editableRoot(typograpyVariants) {
|
19
|
+
return function (Root) {
|
20
|
+
return /*#__PURE__*/forwardRef(function (_ref, outerRef) {
|
21
|
+
var _prevValueRef$current;
|
22
|
+
var textComponent = _ref.textComponent,
|
23
|
+
value = _ref.value,
|
24
|
+
icon = _ref.icon,
|
25
|
+
maxLength = _ref.maxLength,
|
26
|
+
_ref$spellCheck = _ref.spellCheck,
|
27
|
+
spellCheck = _ref$spellCheck === void 0 ? 'false' : _ref$spellCheck,
|
28
|
+
placeholder = _ref.placeholder,
|
29
|
+
name = _ref.name,
|
30
|
+
onChange = _ref.onChange,
|
31
|
+
onBlur = _ref.onBlur,
|
32
|
+
onPaste = _ref.onPaste,
|
33
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
34
|
+
var Component = textComponent;
|
35
|
+
var _useState = useState(false),
|
36
|
+
_useState2 = _slicedToArray(_useState, 2),
|
37
|
+
isEditing = _useState2[0],
|
38
|
+
setIsEditing = _useState2[1];
|
39
|
+
var inputRef = useRef(null);
|
40
|
+
var innerRef = useForkRef(inputRef, outerRef);
|
41
|
+
var prevValueRef = useRef(value || '');
|
42
|
+
var handlePaste = function handlePaste(e) {
|
43
|
+
if (!inputRef.current) {
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
e.preventDefault();
|
47
|
+
var text = e.clipboardData.getData('text/plain').replace(/[\n\r]/gi, '');
|
48
|
+
if (document.queryCommandSupported('insertText')) {
|
49
|
+
document.execCommand('insertText', false, text);
|
50
|
+
} else {
|
51
|
+
try {
|
52
|
+
navigator.clipboard.writeText(text);
|
53
|
+
} catch (_unused) {
|
54
|
+
inputRef.current.textContent = text;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
if (onPaste) {
|
58
|
+
onPaste(e);
|
59
|
+
}
|
60
|
+
};
|
61
|
+
var handleBlur = function handleBlur(e) {
|
62
|
+
setIsEditing(false);
|
63
|
+
clearSelection();
|
64
|
+
|
65
|
+
// NOTE: Remove <br> tag inserted by Safari
|
66
|
+
var editableElement = inputRef.current;
|
67
|
+
if (editableElement && editableElement.innerHTML === '<br>') {
|
68
|
+
editableElement.innerHTML = '';
|
69
|
+
}
|
70
|
+
if (onBlur) {
|
71
|
+
onBlur(e);
|
72
|
+
}
|
73
|
+
};
|
74
|
+
var handleFocus = function handleFocus() {
|
75
|
+
setIsEditing(true);
|
76
|
+
inputRef.current && selectText(inputRef.current);
|
77
|
+
};
|
78
|
+
var handleEditClick = function handleEditClick() {
|
79
|
+
var _inputRef$current;
|
80
|
+
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
|
81
|
+
};
|
82
|
+
var handleKeyDown = function handleKeyDown(e) {
|
83
|
+
if ([constants.keyCodes.Enter, constants.keyCodes.Escape].includes(e.keyCode)) {
|
84
|
+
var _inputRef$current2;
|
85
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();
|
86
|
+
}
|
87
|
+
};
|
88
|
+
var handleChange = function handleChange(e) {
|
89
|
+
var _inputRef$current$tex;
|
90
|
+
if (!inputRef.current) {
|
91
|
+
return;
|
92
|
+
}
|
93
|
+
var contentLength = ((_inputRef$current$tex = inputRef.current.textContent) === null || _inputRef$current$tex === void 0 ? void 0 : _inputRef$current$tex.length) || 0;
|
94
|
+
if (!maxLength || contentLength <= maxLength) {
|
95
|
+
prevValueRef.current = inputRef.current.textContent || '';
|
96
|
+
onChange && onChange(e);
|
97
|
+
} else {
|
98
|
+
inputRef.current.textContent = prevValueRef.current;
|
99
|
+
}
|
100
|
+
};
|
101
|
+
useEffect(function () {
|
102
|
+
if (!inputRef.current || typeof value === 'undefined' || value === inputRef.current.textContent) {
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
inputRef.current.textContent = value;
|
106
|
+
}, [value, textComponent]);
|
107
|
+
return /*#__PURE__*/React.createElement(Root, props, /*#__PURE__*/React.createElement(Component, {
|
108
|
+
ref: innerRef,
|
109
|
+
className: classes.editableTextBox,
|
110
|
+
role: "textbox",
|
111
|
+
spellCheck: spellCheck,
|
112
|
+
contentEditable: true,
|
113
|
+
onPaste: handlePaste,
|
114
|
+
onInput: handleChange,
|
115
|
+
onBlur: handleBlur,
|
116
|
+
onFocus: handleFocus,
|
117
|
+
onKeyDown: handleKeyDown,
|
118
|
+
"aria-label": placeholder
|
119
|
+
}), ((_prevValueRef$current = prevValueRef.current) === null || _prevValueRef$current === void 0 ? void 0 : _prevValueRef$current.length) === 0 && !isEditing && /*#__PURE__*/React.createElement(Component, null, /*#__PURE__*/React.createElement(StyledPlacehpolder, {
|
120
|
+
onClick: handleEditClick
|
121
|
+
}, placeholder)), /*#__PURE__*/React.createElement(StyledInput, {
|
122
|
+
type: "hidden",
|
123
|
+
value: prevValueRef.current,
|
124
|
+
name: name
|
125
|
+
}), /*#__PURE__*/React.createElement(EditButton, {
|
126
|
+
onClick: handleEditClick,
|
127
|
+
isHidden: isEditing
|
128
|
+
}, icon));
|
129
|
+
});
|
130
|
+
};
|
131
|
+
};
|
132
|
+
export var editableConfig = function editableConfig(typographyVariants) {
|
133
|
+
return {
|
134
|
+
name: 'Editable',
|
135
|
+
tag: 'span',
|
136
|
+
layout: editableRoot(typographyVariants),
|
137
|
+
base: base,
|
138
|
+
variations: {
|
139
|
+
view: {
|
140
|
+
css: viewCSS
|
141
|
+
},
|
142
|
+
size: {
|
143
|
+
css: sizeCSS
|
144
|
+
}
|
145
|
+
},
|
146
|
+
defaults: {
|
147
|
+
view: 'default',
|
148
|
+
size: 'm'
|
149
|
+
}
|
150
|
+
};
|
151
|
+
};
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
2
|
+
import { css } from '@emotion/react';
|
3
|
+
import { classes, tokens } from './Editable.tokens';
|
4
|
+
export var EditButton = /*#__PURE__*/_styled("span", {
|
5
|
+
target: "e2qnjh32",
|
6
|
+
label: "plasma-new-hope__EditButton"
|
7
|
+
})("position:relative;align-self:stretch;display:", function (_ref) {
|
8
|
+
var isHidden = _ref.isHidden;
|
9
|
+
return isHidden ? 'none' : '';
|
10
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvRWRpdGFibGUvRWRpdGFibGUuc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUs0RCIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL0VkaXRhYmxlL0VkaXRhYmxlLnN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgY2xhc3NlcywgdG9rZW5zIH0gZnJvbSAnLi9FZGl0YWJsZS50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgRWRpdEJ1dHRvbiA9IHN0eWxlZC5zcGFuPHsgaXNIaWRkZW46IGJvb2xlYW4gfT5gXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5cbiAgICBkaXNwbGF5OiAkeyh7IGlzSGlkZGVuIH0pID0+IChpc0hpZGRlbiA/ICdub25lJyA6ICcnKX07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXRgYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFBsYWNlaHBvbGRlciA9IHN0eWxlZC5zcGFuYFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogdmFyKCR7dG9rZW5zLnBsYWNlaG9sZGVyQ29sb3J9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC4ke2NsYXNzZXMuZWRpdGFibGVUZXh0Qm94fSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNhcmV0LWNvbG9yOiB2YXIoJHt0b2tlbnMuY2FyZXRDb2xvcn0pO1xuICAgIH1cbmA7XG4iXX0= */"));
|
11
|
+
export var StyledInput = /*#__PURE__*/_styled("input", {
|
12
|
+
target: "e2qnjh31",
|
13
|
+
label: "plasma-new-hope__StyledInput"
|
14
|
+
})(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvRWRpdGFibGUvRWRpdGFibGUuc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVl1QyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL0VkaXRhYmxlL0VkaXRhYmxlLnN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgY2xhc3NlcywgdG9rZW5zIH0gZnJvbSAnLi9FZGl0YWJsZS50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgRWRpdEJ1dHRvbiA9IHN0eWxlZC5zcGFuPHsgaXNIaWRkZW46IGJvb2xlYW4gfT5gXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5cbiAgICBkaXNwbGF5OiAkeyh7IGlzSGlkZGVuIH0pID0+IChpc0hpZGRlbiA/ICdub25lJyA6ICcnKX07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXRgYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFBsYWNlaHBvbGRlciA9IHN0eWxlZC5zcGFuYFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogdmFyKCR7dG9rZW5zLnBsYWNlaG9sZGVyQ29sb3J9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC4ke2NsYXNzZXMuZWRpdGFibGVUZXh0Qm94fSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNhcmV0LWNvbG9yOiB2YXIoJHt0b2tlbnMuY2FyZXRDb2xvcn0pO1xuICAgIH1cbmA7XG4iXX0= */");
|
15
|
+
export var StyledPlacehpolder = /*#__PURE__*/_styled("span", {
|
16
|
+
target: "e2qnjh30",
|
17
|
+
label: "plasma-new-hope__StyledPlacehpolder"
|
18
|
+
})("display:inline-block;color:var(", tokens.placeholderColor, ");" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvRWRpdGFibGUvRWRpdGFibGUuc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWM2QyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL0VkaXRhYmxlL0VkaXRhYmxlLnN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgY2xhc3NlcywgdG9rZW5zIH0gZnJvbSAnLi9FZGl0YWJsZS50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgRWRpdEJ1dHRvbiA9IHN0eWxlZC5zcGFuPHsgaXNIaWRkZW46IGJvb2xlYW4gfT5gXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5cbiAgICBkaXNwbGF5OiAkeyh7IGlzSGlkZGVuIH0pID0+IChpc0hpZGRlbiA/ICdub25lJyA6ICcnKX07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXRgYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFBsYWNlaHBvbGRlciA9IHN0eWxlZC5zcGFuYFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogdmFyKCR7dG9rZW5zLnBsYWNlaG9sZGVyQ29sb3J9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC4ke2NsYXNzZXMuZWRpdGFibGVUZXh0Qm94fSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGNhcmV0LWNvbG9yOiB2YXIoJHt0b2tlbnMuY2FyZXRDb2xvcn0pO1xuICAgIH1cbmA7XG4iXX0= */"));
|
19
|
+
export var base = /*#__PURE__*/css("display:inline-flex;align-items:center;max-width:100%;cursor:pointer;.", classes.editableTextBox, "{outline:none;overflow:hidden;white-space:nowrap;caret-color:var(", tokens.caretColor, ");};label:plasma-new-hope__base;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvRWRpdGFibGUvRWRpdGFibGUuc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CdUIiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9FZGl0YWJsZS9FZGl0YWJsZS5zdHlsZXMudHMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IGNsYXNzZXMsIHRva2VucyB9IGZyb20gJy4vRWRpdGFibGUudG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IEVkaXRCdXR0b24gPSBzdHlsZWQuc3Bhbjx7IGlzSGlkZGVuOiBib29sZWFuIH0+YFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuXG4gICAgZGlzcGxheTogJHsoeyBpc0hpZGRlbiB9KSA9PiAoaXNIaWRkZW4gPyAnbm9uZScgOiAnJyl9O1xuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkLmlucHV0YGA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRQbGFjZWhwb2xkZXIgPSBzdHlsZWQuc3BhbmBcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6IHZhcigke3Rva2Vucy5wbGFjZWhvbGRlckNvbG9yfSk7XG5gO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAuJHtjbGFzc2VzLmVkaXRhYmxlVGV4dEJveH0ge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBjYXJldC1jb2xvcjogdmFyKCR7dG9rZW5zLmNhcmV0Q29sb3J9KTtcbiAgICB9XG5gO1xuIl19 */"));
|
@@ -0,0 +1,13 @@
|
|
1
|
+
export var classes = {
|
2
|
+
editableTextBox: 'editable-text-box'
|
3
|
+
};
|
4
|
+
export var tokens = {
|
5
|
+
editButtonBackground: '--plasma-editable-edit-button-background',
|
6
|
+
editButtonColor: '--plasma-editable-edit-button-color',
|
7
|
+
editButtonColorHover: '--plasma-editable-edit-button-color-hover',
|
8
|
+
editButtonPaddingLeft: '--plasma-editable-edit-button-padding-left',
|
9
|
+
placeholderColor: '--plasma-editable-placeholder-color',
|
10
|
+
caretColor: '--plasma-editable-caret-color',
|
11
|
+
textBoxMarginRight: '--plasma-editable-text-box-margin-right',
|
12
|
+
textBoxPaddingRight: '--plasma-editable-text-box-padding-right'
|
13
|
+
};
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { canUseDOM } from '../../../utils';
|
2
|
+
export var clearSelection = function clearSelection() {
|
3
|
+
if (!canUseDOM) {
|
4
|
+
return;
|
5
|
+
}
|
6
|
+
var doc = document;
|
7
|
+
if (window.getSelection) {
|
8
|
+
var _window$getSelection;
|
9
|
+
(_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 || _window$getSelection.removeAllRanges();
|
10
|
+
} else if (doc.selection) {
|
11
|
+
doc.selection.empty();
|
12
|
+
}
|
13
|
+
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { canUseDOM } from '../../../utils';
|
2
|
+
export var selectText = function selectText(node) {
|
3
|
+
if (!canUseDOM) {
|
4
|
+
return;
|
5
|
+
}
|
6
|
+
setTimeout(function () {
|
7
|
+
var body = document.body;
|
8
|
+
if (window.getSelection && document.createRange) {
|
9
|
+
var range = document.createRange();
|
10
|
+
range.selectNodeContents(node);
|
11
|
+
var selection = window.getSelection();
|
12
|
+
selection === null || selection === void 0 || selection.removeAllRanges();
|
13
|
+
selection === null || selection === void 0 || selection.addRange(range);
|
14
|
+
} else if (body.createTextRange) {
|
15
|
+
var _range = body.createTextRange();
|
16
|
+
_range.moveToElementText(node);
|
17
|
+
_range.select();
|
18
|
+
}
|
19
|
+
});
|
20
|
+
};
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { css } from '@emotion/react';
|
2
|
+
import { classes, tokens } from '../../Editable.tokens';
|
3
|
+
import { EditButton } from '../../Editable.styles';
|
4
|
+
export var base = /*#__PURE__*/css(EditButton, "{padding-left:var(", tokens.editButtonPaddingLeft, ");}.", classes.editableTextBox, "{margin-right:var(", tokens.textBoxMarginRight, ");padding-right:var(", tokens.textBoxPaddingRight, ");};label:plasma-new-hope__base;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvRWRpdGFibGUvdmFyaWF0aW9ucy9fc2l6ZS9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUt1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL0VkaXRhYmxlL3ZhcmlhdGlvbnMvX3NpemUvYmFzZS50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgY2xhc3NlcywgdG9rZW5zIH0gZnJvbSAnLi4vLi4vRWRpdGFibGUudG9rZW5zJztcbmltcG9ydCB7IEVkaXRCdXR0b24gfSBmcm9tICcuLi8uLi9FZGl0YWJsZS5zdHlsZXMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICAke0VkaXRCdXR0b259IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoJHt0b2tlbnMuZWRpdEJ1dHRvblBhZGRpbmdMZWZ0fSk7XG4gICAgfVxuXG4gICAgLiR7Y2xhc3Nlcy5lZGl0YWJsZVRleHRCb3h9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoJHt0b2tlbnMudGV4dEJveE1hcmdpblJpZ2h0fSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigke3Rva2Vucy50ZXh0Qm94UGFkZGluZ1JpZ2h0fSk7XG4gICAgfVxuYDtcbiJdfQ== */"));
|
@@ -0,0 +1 @@
|
|
1
|
+
["--plasma-editable-edit-button-padding-left"]
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { css } from '@emotion/react';
|
2
|
+
import { tokens } from '../../Editable.tokens';
|
3
|
+
import { EditButton } from '../../Editable.styles';
|
4
|
+
export var base = /*#__PURE__*/css(EditButton, "{background:var(\n --plasma-editable-icon-background,\n linear-gradient(270deg, var(", tokens.editButtonBackground, ") 70%, rgba(0, 0, 0, 0) 120%)\n );color:var(", tokens.editButtonColor, ");}&:hover>", EditButton, "{color:var(", tokens.editButtonColorHover, ");};label:plasma-new-hope__base;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvRWRpdGFibGUvdmFyaWF0aW9ucy9fdmlldy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUt1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL0VkaXRhYmxlL3ZhcmlhdGlvbnMvX3ZpZXcvYmFzZS50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgdG9rZW5zIH0gZnJvbSAnLi4vLi4vRWRpdGFibGUudG9rZW5zJztcbmltcG9ydCB7IEVkaXRCdXR0b24gfSBmcm9tICcuLi8uLi9FZGl0YWJsZS5zdHlsZXMnO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BcbiAgICAke0VkaXRCdXR0b259IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKFxuICAgICAgICAgICAgLS1wbGFzbWEtZWRpdGFibGUtaWNvbi1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDI3MGRlZywgdmFyKCR7dG9rZW5zLmVkaXRCdXR0b25CYWNrZ3JvdW5kfSkgNzAlLCByZ2JhKDAsIDAsIDAsIDApIDEyMCUpXG4gICAgICAgICk7XG4gICAgICAgIGNvbG9yOiB2YXIoJHt0b2tlbnMuZWRpdEJ1dHRvbkNvbG9yfSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciA+ICR7RWRpdEJ1dHRvbn0ge1xuICAgICAgICBjb2xvcjogdmFyKCR7dG9rZW5zLmVkaXRCdXR0b25Db2xvckhvdmVyfSk7XG4gICAgfVxuYDtcbiJdfQ== */"));
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { css } from '@emotion/react';
|
2
|
+
import { editableTokens } from '../../../../components/Editable';
|
3
|
+
export var config = {
|
4
|
+
defaults: {
|
5
|
+
view: 'default',
|
6
|
+
size: 'm'
|
7
|
+
},
|
8
|
+
variations: {
|
9
|
+
view: {
|
10
|
+
"default": /*#__PURE__*/css(editableTokens.editButtonBackground, ":var(--background-primary);", editableTokens.editButtonColor, ":var(--text-tertiary);", editableTokens.editButtonColorHover, ":var(--text-primary);", editableTokens.placeholderColor, ":var(--text-secondary);", editableTokens.caretColor, ":var(--text-accent);;label:plasma-new-hope__default;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2V4YW1wbGVzL3BsYXNtYV9iMmMvY29tcG9uZW50cy9FZGl0YWJsZS9FZGl0YWJsZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV3dCIiwiZmlsZSI6Ii4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2V4YW1wbGVzL3BsYXNtYV9iMmMvY29tcG9uZW50cy9FZGl0YWJsZS9FZGl0YWJsZS5jb25maWcudHMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7IGVkaXRhYmxlVG9rZW5zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9FZGl0YWJsZSc7XG5cbmV4cG9ydCBjb25zdCBjb25maWcgPSB7XG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgdmlldzogJ2RlZmF1bHQnLFxuICAgICAgICBzaXplOiAnbScsXG4gICAgfSxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IGNzc2BcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLmVkaXRCdXR0b25CYWNrZ3JvdW5kfTogdmFyKC0tYmFja2dyb3VuZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLmVkaXRCdXR0b25Db2xvcn06IHZhcigtLXRleHQtdGVydGlhcnkpO1xuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMuZWRpdEJ1dHRvbkNvbG9ySG92ZXJ9OiB2YXIoLS10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMucGxhY2Vob2xkZXJDb2xvcn06IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLmNhcmV0Q29sb3J9OiB2YXIoLS10ZXh0LWFjY2VudCk7XG4gICAgICAgICAgICBgLFxuICAgICAgICB9LFxuICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICBtOiBjc3NgXG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy5lZGl0QnV0dG9uUGFkZGluZ0xlZnR9OiAxcmVtO1xuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMudGV4dEJveFBhZGRpbmdSaWdodH06IDFyZW07XG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy50ZXh0Qm94TWFyZ2luUmlnaHR9OiAtMXJlbTtcbiAgICAgICAgICAgIGAsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0= */"))
|
11
|
+
},
|
12
|
+
size: {
|
13
|
+
m: /*#__PURE__*/css(editableTokens.editButtonPaddingLeft, ":1rem;", editableTokens.textBoxPaddingRight, ":1rem;", editableTokens.textBoxMarginRight, ":-1rem;;label:plasma-new-hope__m;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2V4YW1wbGVzL3BsYXNtYV9iMmMvY29tcG9uZW50cy9FZGl0YWJsZS9FZGl0YWJsZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JrQiIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9leGFtcGxlcy9wbGFzbWFfYjJjL2NvbXBvbmVudHMvRWRpdGFibGUvRWRpdGFibGUuY29uZmlnLnRzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG5pbXBvcnQgeyBlZGl0YWJsZVRva2VucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvRWRpdGFibGUnO1xuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIHZpZXc6ICdkZWZhdWx0JyxcbiAgICAgICAgc2l6ZTogJ20nLFxuICAgIH0sXG4gICAgdmFyaWF0aW9uczoge1xuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBjc3NgXG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy5lZGl0QnV0dG9uQmFja2dyb3VuZH06IHZhcigtLWJhY2tncm91bmQtcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy5lZGl0QnV0dG9uQ29sb3J9OiB2YXIoLS10ZXh0LXRlcnRpYXJ5KTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLmVkaXRCdXR0b25Db2xvckhvdmVyfTogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLnBsYWNlaG9sZGVyQ29sb3J9OiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy5jYXJldENvbG9yfTogdmFyKC0tdGV4dC1hY2NlbnQpO1xuICAgICAgICAgICAgYCxcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZToge1xuICAgICAgICAgICAgbTogY3NzYFxuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMuZWRpdEJ1dHRvblBhZGRpbmdMZWZ0fTogMXJlbTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLnRleHRCb3hQYWRkaW5nUmlnaHR9OiAxcmVtO1xuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMudGV4dEJveE1hcmdpblJpZ2h0fTogLTFyZW07XG4gICAgICAgICAgICBgLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuIl19 */"))
|
14
|
+
}
|
15
|
+
}
|
16
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { editableConfig } from '../../../../components/Editable';
|
2
|
+
import { component, mergeConfig } from '../../../../engines';
|
3
|
+
import { Body } from '../../../typograpy/components/Body/Body';
|
4
|
+
import { Dspl } from '../../../typograpy/components/Dspl/Dspl';
|
5
|
+
import { Heading } from '../../../typograpy/components/Heading/Heading';
|
6
|
+
import { Text } from '../../../typograpy/components/Text/Text';
|
7
|
+
import { config } from './Editable.config';
|
8
|
+
export var typographyVariants = {
|
9
|
+
Body: Body,
|
10
|
+
Dspl: Dspl,
|
11
|
+
Heading: Heading,
|
12
|
+
Text: Text
|
13
|
+
};
|
14
|
+
var finalConfig = /*#__PURE__*/editableConfig(typographyVariants);
|
15
|
+
var mergedConfig = /*#__PURE__*/mergeConfig(finalConfig, config);
|
16
|
+
export var Editable = /*#__PURE__*/component(mergedConfig);
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import React, { useState } from 'react';
|
2
|
+
import type { ComponentProps } from 'react';
|
3
|
+
import type { StoryObj, Meta } from '@storybook/react';
|
4
|
+
import { disableProps } from '@salutejs/plasma-sb-utils';
|
5
|
+
|
6
|
+
import { IconDisclosureLeft } from '../../../../components/_Icon';
|
7
|
+
import { WithTheme } from '../../../_helpers';
|
8
|
+
|
9
|
+
import { Editable, typographyVariants } from './Editable';
|
10
|
+
|
11
|
+
const iconSizes = ['s', 'xs'] as const;
|
12
|
+
|
13
|
+
const meta: Meta<typeof Editable> = {
|
14
|
+
title: 'plasma_b2c/Editable',
|
15
|
+
decorators: [WithTheme],
|
16
|
+
component: Editable,
|
17
|
+
argTypes: {
|
18
|
+
...disableProps([
|
19
|
+
'ref',
|
20
|
+
'theme',
|
21
|
+
'as',
|
22
|
+
'forwardedAs',
|
23
|
+
'textComponent',
|
24
|
+
'icon',
|
25
|
+
'onChange',
|
26
|
+
'onBlur',
|
27
|
+
'onPaste',
|
28
|
+
'value',
|
29
|
+
'view',
|
30
|
+
'size',
|
31
|
+
]),
|
32
|
+
},
|
33
|
+
};
|
34
|
+
|
35
|
+
export default meta;
|
36
|
+
|
37
|
+
type StoryPropsDefault = ComponentProps<typeof Editable> & {
|
38
|
+
iconSize: typeof iconSizes[number];
|
39
|
+
componentName: keyof typeof typographyVariants;
|
40
|
+
defaultValue: string;
|
41
|
+
};
|
42
|
+
|
43
|
+
const StoryDefault = ({ defaultValue, componentName, iconSize, ...rest }: StoryPropsDefault) => {
|
44
|
+
const [, setValue] = useState<string>(defaultValue);
|
45
|
+
|
46
|
+
const handleChange = (e) => {
|
47
|
+
setValue(e.target.textContent);
|
48
|
+
};
|
49
|
+
|
50
|
+
return (
|
51
|
+
<Editable
|
52
|
+
{...rest}
|
53
|
+
icon={<IconDisclosureLeft size={iconSize} color="inherit" />}
|
54
|
+
textComponent={typographyVariants[componentName]}
|
55
|
+
value={defaultValue}
|
56
|
+
onChange={handleChange}
|
57
|
+
/>
|
58
|
+
);
|
59
|
+
};
|
60
|
+
|
61
|
+
export const Default: StoryObj<StoryPropsDefault> = {
|
62
|
+
argTypes: {
|
63
|
+
iconSize: {
|
64
|
+
options: iconSizes,
|
65
|
+
control: { type: 'select' },
|
66
|
+
},
|
67
|
+
componentName: {
|
68
|
+
options: Object.keys(typographyVariants),
|
69
|
+
control: { type: 'select' },
|
70
|
+
},
|
71
|
+
},
|
72
|
+
args: {
|
73
|
+
view: 'default',
|
74
|
+
size: 'm',
|
75
|
+
iconSize: 'xs',
|
76
|
+
componentName: 'Body',
|
77
|
+
defaultValue: 'Document 1',
|
78
|
+
placeholder: 'Компонент с возможностью редактирования текста',
|
79
|
+
},
|
80
|
+
render: (args) => <StoryDefault {...args} />,
|
81
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { css } from '@emotion/react';
|
2
|
+
import { editableTokens } from '../../../../components/Editable';
|
3
|
+
export var config = {
|
4
|
+
defaults: {
|
5
|
+
view: 'default',
|
6
|
+
size: 'm'
|
7
|
+
},
|
8
|
+
variations: {
|
9
|
+
view: {
|
10
|
+
"default": /*#__PURE__*/css(editableTokens.editButtonBackground, ":var(--background-primary);", editableTokens.editButtonColor, ":var(--text-tertiary);", editableTokens.editButtonColorHover, ":var(--text-primary);", editableTokens.placeholderColor, ":var(--text-secondary);", editableTokens.caretColor, ":var(--text-accent);;label:plasma-new-hope__default;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2V4YW1wbGVzL3BsYXNtYV93ZWIvY29tcG9uZW50cy9FZGl0YWJsZS9FZGl0YWJsZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV3dCIiwiZmlsZSI6Ii4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2V4YW1wbGVzL3BsYXNtYV93ZWIvY29tcG9uZW50cy9FZGl0YWJsZS9FZGl0YWJsZS5jb25maWcudHMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7IGVkaXRhYmxlVG9rZW5zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9FZGl0YWJsZSc7XG5cbmV4cG9ydCBjb25zdCBjb25maWcgPSB7XG4gICAgZGVmYXVsdHM6IHtcbiAgICAgICAgdmlldzogJ2RlZmF1bHQnLFxuICAgICAgICBzaXplOiAnbScsXG4gICAgfSxcbiAgICB2YXJpYXRpb25zOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IGNzc2BcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLmVkaXRCdXR0b25CYWNrZ3JvdW5kfTogdmFyKC0tYmFja2dyb3VuZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLmVkaXRCdXR0b25Db2xvcn06IHZhcigtLXRleHQtdGVydGlhcnkpO1xuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMuZWRpdEJ1dHRvbkNvbG9ySG92ZXJ9OiB2YXIoLS10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMucGxhY2Vob2xkZXJDb2xvcn06IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLmNhcmV0Q29sb3J9OiB2YXIoLS10ZXh0LWFjY2VudCk7XG4gICAgICAgICAgICBgLFxuICAgICAgICB9LFxuICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICBtOiBjc3NgXG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy5lZGl0QnV0dG9uUGFkZGluZ0xlZnR9OiAxcmVtO1xuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMudGV4dEJveFBhZGRpbmdSaWdodH06IDFyZW07XG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy50ZXh0Qm94TWFyZ2luUmlnaHR9OiAtMXJlbTtcbiAgICAgICAgICAgIGAsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0= */"))
|
11
|
+
},
|
12
|
+
size: {
|
13
|
+
m: /*#__PURE__*/css(editableTokens.editButtonPaddingLeft, ":1rem;", editableTokens.textBoxPaddingRight, ":1rem;", editableTokens.textBoxMarginRight, ":-1rem;;label:plasma-new-hope__m;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2V4YW1wbGVzL3BsYXNtYV93ZWIvY29tcG9uZW50cy9FZGl0YWJsZS9FZGl0YWJsZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0JrQiIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9leGFtcGxlcy9wbGFzbWFfd2ViL2NvbXBvbmVudHMvRWRpdGFibGUvRWRpdGFibGUuY29uZmlnLnRzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG5pbXBvcnQgeyBlZGl0YWJsZVRva2VucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvRWRpdGFibGUnO1xuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICAgIGRlZmF1bHRzOiB7XG4gICAgICAgIHZpZXc6ICdkZWZhdWx0JyxcbiAgICAgICAgc2l6ZTogJ20nLFxuICAgIH0sXG4gICAgdmFyaWF0aW9uczoge1xuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBjc3NgXG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy5lZGl0QnV0dG9uQmFja2dyb3VuZH06IHZhcigtLWJhY2tncm91bmQtcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy5lZGl0QnV0dG9uQ29sb3J9OiB2YXIoLS10ZXh0LXRlcnRpYXJ5KTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLmVkaXRCdXR0b25Db2xvckhvdmVyfTogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLnBsYWNlaG9sZGVyQ29sb3J9OiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgJHtlZGl0YWJsZVRva2Vucy5jYXJldENvbG9yfTogdmFyKC0tdGV4dC1hY2NlbnQpO1xuICAgICAgICAgICAgYCxcbiAgICAgICAgfSxcbiAgICAgICAgc2l6ZToge1xuICAgICAgICAgICAgbTogY3NzYFxuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMuZWRpdEJ1dHRvblBhZGRpbmdMZWZ0fTogMXJlbTtcbiAgICAgICAgICAgICAgICAke2VkaXRhYmxlVG9rZW5zLnRleHRCb3hQYWRkaW5nUmlnaHR9OiAxcmVtO1xuICAgICAgICAgICAgICAgICR7ZWRpdGFibGVUb2tlbnMudGV4dEJveE1hcmdpblJpZ2h0fTogLTFyZW07XG4gICAgICAgICAgICBgLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuIl19 */"))
|
14
|
+
}
|
15
|
+
}
|
16
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { editableConfig } from '../../../../components/Editable';
|
2
|
+
import { component, mergeConfig } from '../../../../engines';
|
3
|
+
import { Body } from '../../../typograpy/components/Body/Body';
|
4
|
+
import { Dspl } from '../../../typograpy/components/Dspl/Dspl';
|
5
|
+
import { Heading } from '../../../typograpy/components/Heading/Heading';
|
6
|
+
import { Text } from '../../../typograpy/components/Text/Text';
|
7
|
+
import { config } from './Editable.config';
|
8
|
+
export var typographyVariants = {
|
9
|
+
Body: Body,
|
10
|
+
Dspl: Dspl,
|
11
|
+
Heading: Heading,
|
12
|
+
Text: Text
|
13
|
+
};
|
14
|
+
var finalConfig = /*#__PURE__*/editableConfig(typographyVariants);
|
15
|
+
var mergedConfig = /*#__PURE__*/mergeConfig(finalConfig, config);
|
16
|
+
export var Editable = /*#__PURE__*/component(mergedConfig);
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import React, { useState } from 'react';
|
2
|
+
import type { ComponentProps } from 'react';
|
3
|
+
import type { StoryObj, Meta } from '@storybook/react';
|
4
|
+
import { disableProps } from '@salutejs/plasma-sb-utils';
|
5
|
+
|
6
|
+
import { IconDisclosureLeft } from '../../../../components/_Icon';
|
7
|
+
import { WithTheme } from '../../../_helpers';
|
8
|
+
|
9
|
+
import { Editable, typographyVariants } from './Editable';
|
10
|
+
|
11
|
+
const iconSizes = ['s', 'xs'] as const;
|
12
|
+
|
13
|
+
const meta: Meta<typeof Editable> = {
|
14
|
+
title: 'plasma_web/Editable',
|
15
|
+
decorators: [WithTheme],
|
16
|
+
component: Editable,
|
17
|
+
argTypes: {
|
18
|
+
...disableProps([
|
19
|
+
'ref',
|
20
|
+
'theme',
|
21
|
+
'as',
|
22
|
+
'forwardedAs',
|
23
|
+
'textComponent',
|
24
|
+
'icon',
|
25
|
+
'onChange',
|
26
|
+
'onBlur',
|
27
|
+
'onPaste',
|
28
|
+
'value',
|
29
|
+
'view',
|
30
|
+
'size',
|
31
|
+
]),
|
32
|
+
},
|
33
|
+
};
|
34
|
+
|
35
|
+
export default meta;
|
36
|
+
|
37
|
+
type StoryPropsDefault = ComponentProps<typeof Editable> & {
|
38
|
+
iconSize: typeof iconSizes[number];
|
39
|
+
componentName: keyof typeof typographyVariants;
|
40
|
+
defaultValue: string;
|
41
|
+
};
|
42
|
+
|
43
|
+
const StoryDefault = ({ defaultValue, componentName, iconSize, ...rest }: StoryPropsDefault) => {
|
44
|
+
const [, setValue] = useState<string>(defaultValue);
|
45
|
+
|
46
|
+
const handleChange = (e) => {
|
47
|
+
setValue(e.target.textContent);
|
48
|
+
};
|
49
|
+
|
50
|
+
return (
|
51
|
+
<Editable
|
52
|
+
{...rest}
|
53
|
+
icon={<IconDisclosureLeft size={iconSize} color="inherit" />}
|
54
|
+
textComponent={typographyVariants[componentName]}
|
55
|
+
value={defaultValue}
|
56
|
+
onChange={handleChange}
|
57
|
+
/>
|
58
|
+
);
|
59
|
+
};
|
60
|
+
|
61
|
+
export const Default: StoryObj<StoryPropsDefault> = {
|
62
|
+
argTypes: {
|
63
|
+
iconSize: {
|
64
|
+
options: iconSizes,
|
65
|
+
control: { type: 'select' },
|
66
|
+
},
|
67
|
+
componentName: {
|
68
|
+
options: Object.keys(typographyVariants),
|
69
|
+
control: { type: 'select' },
|
70
|
+
},
|
71
|
+
},
|
72
|
+
args: {
|
73
|
+
view: 'default',
|
74
|
+
size: 'm',
|
75
|
+
iconSize: 'xs',
|
76
|
+
componentName: 'Body',
|
77
|
+
defaultValue: 'Document 1',
|
78
|
+
placeholder: 'Компонент с возможностью редактирования текста',
|
79
|
+
},
|
80
|
+
render: (args) => <StoryDefault {...args} />,
|
81
|
+
};
|
package/emotion/es/index.js
CHANGED
@@ -55,4 +55,5 @@ export * from './components/DatePicker';
|
|
55
55
|
export * from './components/Portal';
|
56
56
|
export * from './components/Price';
|
57
57
|
export * from './components/Autocomplete';
|
58
|
-
export * from './components/EmptyState';
|
58
|
+
export * from './components/EmptyState';
|
59
|
+
export * from './components/Editable';
|
@@ -4,6 +4,8 @@ export { getSizeValueFromProp } from './getSizeValueFromProp';
|
|
4
4
|
export { IS_REACT_18, safeUseId } from './react';
|
5
5
|
export { isNumber } from './isNumber';
|
6
6
|
export { isEmpty } from './isEmpty';
|
7
|
+
import * as _constants from './constants';
|
8
|
+
export { _constants as constants };
|
7
9
|
export * from './getPopoverPlacement';
|
8
10
|
export var cx = function cx() {
|
9
11
|
for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {
|
@@ -0,0 +1,8 @@
|
|
1
|
+
.Editable_styles_somxw2_e1fh2i5t__9cb07b81{position:relative;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;display:var(--e1fh2i5t-0);}
|
2
|
+
|
3
|
+
.Editable_styles_somxw2_s4ei6mk__9cb07b81{display:inline-block;color:var(--plasma-editable-placeholder-color);}
|
4
|
+
.Editable_styles_somxw2_b18v4gtb__9cb07b81{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;cursor:pointer;}.Editable_styles_somxw2_b18v4gtb__9cb07b81 .Editable_styles_somxw2_editableTextBox__9cb07b81{outline:none;overflow:hidden;white-space:nowrap;caret-color:var(--plasma-editable-caret-color);}
|
5
|
+
|
6
|
+
.base_11fpjfv_b14xop9w__3f9dd444 .base_11fpjfv_e1fh2i5t__3f9dd444{background:var( --plasma-editable-icon-background, linear-gradient(270deg,var(--plasma-editable-edit-button-background) 70%,rgba(0,0,0,0) 120%) );color:var(--plasma-editable-edit-button-color);}.base_11fpjfv_b14xop9w__3f9dd444:hover > .base_11fpjfv_e1fh2i5t__3f9dd444{color:var(--plasma-editable-edit-button-color-hover);}
|
7
|
+
|
8
|
+
.base_54y6eh_b1x5zqph__a3c52690 .base_54y6eh_e1fh2i5t__a3c52690{padding-left:var(--plasma-editable-edit-button-padding-left);}.base_54y6eh_b1x5zqph__a3c52690 .base_54y6eh_editableTextBox__a3c52690{margin-right:var(--plasma-editable-text-box-margin-right);padding-right:var(--plasma-editable-text-box-padding-right);}
|