@plesk/ui-library 3.27.4 → 3.28.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.
Files changed (62) hide show
  1. package/cjs/components/Button/Button.js +13 -6
  2. package/cjs/components/Form/Form.js +7 -2
  3. package/cjs/components/FormField/FormField.js +7 -0
  4. package/cjs/components/FormFieldPassword/estimatePassword.js +19 -10
  5. package/cjs/components/FormFieldText/FormFieldText.js +13 -5
  6. package/cjs/components/InputFile/InputFile.js +4 -2
  7. package/cjs/components/List/List.js +1 -6
  8. package/cjs/components/Skeleton/Skeleton.js +49 -0
  9. package/cjs/components/Skeleton/Skeleton.stories.js +26 -0
  10. package/cjs/components/Skeleton/SkeletonTabs.js +41 -0
  11. package/cjs/components/Skeleton/SkeletonTabs.stories.js +17 -0
  12. package/cjs/components/Skeleton/SkeletonText.js +45 -0
  13. package/cjs/components/Skeleton/SkeletonText.stories.js +35 -0
  14. package/cjs/components/Skeleton/index.js +31 -0
  15. package/cjs/components/index.js +31 -1
  16. package/cjs/components/utils.js +6 -2
  17. package/cjs/index.js +1 -1
  18. package/dist/plesk-ui-library-rtl.css +1 -1
  19. package/dist/plesk-ui-library-rtl.css.map +1 -1
  20. package/dist/plesk-ui-library.css +1 -1
  21. package/dist/plesk-ui-library.css.map +1 -1
  22. package/dist/plesk-ui-library.js +344 -32
  23. package/dist/plesk-ui-library.js.map +1 -1
  24. package/dist/plesk-ui-library.min.js +3 -3
  25. package/dist/plesk-ui-library.min.js.map +1 -1
  26. package/esm/components/Button/Button.js +14 -7
  27. package/esm/components/Form/Form.js +7 -2
  28. package/esm/components/FormField/FormField.js +7 -0
  29. package/esm/components/FormFieldPassword/estimatePassword.js +19 -10
  30. package/esm/components/FormFieldText/FormFieldText.js +13 -5
  31. package/esm/components/InputFile/InputFile.js +4 -2
  32. package/esm/components/List/List.js +1 -6
  33. package/esm/components/Skeleton/Skeleton.js +34 -0
  34. package/esm/components/Skeleton/Skeleton.stories.js +10 -0
  35. package/esm/components/Skeleton/SkeletonTabs.js +26 -0
  36. package/esm/components/Skeleton/SkeletonTabs.stories.js +4 -0
  37. package/esm/components/Skeleton/SkeletonText.js +30 -0
  38. package/esm/components/Skeleton/SkeletonText.stories.js +16 -0
  39. package/esm/components/Skeleton/index.js +4 -0
  40. package/esm/components/index.js +4 -1
  41. package/esm/components/utils.js +2 -1
  42. package/esm/index.js +1 -1
  43. package/package.json +1 -1
  44. package/styleguide/build/bundle.699238d9.js +2 -0
  45. package/styleguide/build/{bundle.5df0ee96.js.LICENSE.txt → bundle.699238d9.js.LICENSE.txt} +0 -0
  46. package/styleguide/index.html +2 -2
  47. package/types/src/components/Form/Form.d.ts +7 -136
  48. package/types/src/components/Form/FormContext.d.ts +2 -14
  49. package/types/src/components/Form/types.d.ts +125 -0
  50. package/types/src/components/FormFieldPassword/FormFieldPassword.d.ts +2 -2
  51. package/types/src/components/InputFile/InputFile.d.ts +6 -1
  52. package/types/src/components/Skeleton/Skeleton.d.ts +49 -0
  53. package/types/src/components/Skeleton/Skeleton.stories.d.ts +12 -0
  54. package/types/src/components/Skeleton/SkeletonTabs.d.ts +23 -0
  55. package/types/src/components/Skeleton/SkeletonTabs.stories.d.ts +6 -0
  56. package/types/src/components/Skeleton/SkeletonText.d.ts +34 -0
  57. package/types/src/components/Skeleton/SkeletonText.stories.d.ts +38 -0
  58. package/types/src/components/Skeleton/index.d.ts +3 -0
  59. package/types/src/components/TextArea/TextArea.d.ts +2 -2
  60. package/types/src/components/index.d.ts +3 -0
  61. package/types/src/components/utils.d.ts +1 -0
  62. package/styleguide/build/bundle.5df0ee96.js +0 -2
@@ -1436,7 +1436,7 @@ const renderCaret = ({
1436
1436
  */
1437
1437
 
1438
1438
 
1439
- const Button = ({
1439
+ const Button = /*#__PURE__*/(0, _react.forwardRef)(({
1440
1440
  baseClassName,
1441
1441
  className,
1442
1442
  component: Tag,
@@ -1454,7 +1454,7 @@ const Button = ({
1454
1454
  arrow,
1455
1455
  disabled,
1456
1456
  ...props
1457
- }) => {
1457
+ }, ref) => {
1458
1458
  const [selectedState, setSelectedState] = (0, _react.useState)(false);
1459
1459
 
1460
1460
  const handleToggle = () => {
@@ -1510,6 +1510,7 @@ const Button = ({
1510
1510
  const hasAriaDisabled = Tag === 'button' && disabled && tooltip;
1511
1511
 
1512
1512
  let button = /*#__PURE__*/_react.default.createElement(Tag, _extends({
1513
+ ref: ref,
1513
1514
  className: (0, _classnames.default)(baseClassName, {
1514
1515
  [`${baseClassName}--${size}`]: size,
1515
1516
  [`${baseClassName}--${intent}`]: intent && !ghost,
@@ -1549,8 +1550,8 @@ const Button = ({
1549
1550
  }
1550
1551
 
1551
1552
  return button;
1552
- };
1553
-
1553
+ });
1554
+ Button.displayName = 'Button';
1554
1555
  Button.propTypes = {
1555
1556
  /**
1556
1557
  * Button size.
@@ -1644,7 +1645,12 @@ Button.propTypes = {
1644
1645
  /**
1645
1646
  * @ignore
1646
1647
  */
1647
- baseClassName: _propTypes.default.string
1648
+ baseClassName: _propTypes.default.string,
1649
+
1650
+ /**
1651
+ * @ignore
1652
+ */
1653
+ onClick: _propTypes.default.func
1648
1654
  };
1649
1655
  Button.defaultProps = {
1650
1656
  size: undefined,
@@ -1662,7 +1668,8 @@ Button.defaultProps = {
1662
1668
  component: 'button',
1663
1669
  className: undefined,
1664
1670
  baseClassName: `${_constants.CLS_PREFIX}button`,
1665
- arrow: undefined
1671
+ arrow: undefined,
1672
+ onClick: undefined
1666
1673
  };
1667
1674
  var _default = Button;
1668
1675
  exports["default"] = _default;
@@ -7967,6 +7974,9 @@ class Form extends _react.Component {
7967
7974
  vertical: this.props.vertical || false,
7968
7975
  requiredFields: [],
7969
7976
  formContext: {
7977
+ getValues: () => {
7978
+ return this.state.values;
7979
+ },
7970
7980
  getValue: (name, def) => {
7971
7981
  if (this.state.values) {
7972
7982
  return (0, _utils.getIn)(this.state.values, name, def);
@@ -8189,9 +8199,11 @@ class Form extends _react.Component {
8189
8199
  let field;
8190
8200
  let fieldErrors;
8191
8201
  Object.keys(this.fields).every(name => {
8192
- if (errors && errors[name] && typeof errors[name] === 'object' && Object.keys(errors[name]).length > 0) {
8202
+ const foundError = (0, _utils.getIn)(errors, name);
8203
+
8204
+ if (foundError && typeof foundError === 'object' && Object.keys(foundError).length > 0) {
8193
8205
  field = this.fields[name];
8194
- fieldErrors = errors[name];
8206
+ fieldErrors = foundError;
8195
8207
  return false;
8196
8208
  }
8197
8209
 
@@ -8906,6 +8918,13 @@ class FormField extends _react.Component {
8906
8918
  return null;
8907
8919
  },
8908
8920
  getName: () => this.props.name,
8921
+ getValues: () => {
8922
+ if (this.props.form) {
8923
+ return this.props.form.getValues();
8924
+ }
8925
+
8926
+ return null;
8927
+ },
8909
8928
  getValue: def => {
8910
8929
  if (this.props.form && this.props.name) {
8911
8930
  return this.props.form.getValue(this.props.name, def);
@@ -9741,6 +9760,12 @@ var _enUS = _interopRequireDefault(__webpack_require__(/*! ./locale/en-US */ "./
9741
9760
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9742
9761
 
9743
9762
  // Copyright 1999-2022. Plesk International GmbH. All rights reserved.
9763
+ const EXCLUSIONS = {
9764
+ numbers1: 'numbers3',
9765
+ specialChar1: 'specialChar2',
9766
+ lettersLowerCase: 'comboUpperAndLower',
9767
+ lettersUpperCase: 'comboUpperAndLower'
9768
+ };
9744
9769
  const DEFAULT_RULES = [{
9745
9770
  name: 'passwordTooShort',
9746
9771
  suggestion: /*#__PURE__*/_react.default.createElement(_Translate.default, {
@@ -9883,18 +9908,21 @@ const DEFAULT_RULES = [{
9883
9908
  exports.DEFAULT_RULES = DEFAULT_RULES;
9884
9909
 
9885
9910
  var _default = (password, rules = DEFAULT_RULES) => {
9886
- const suggestions = [];
9887
9911
  let passwordScore = 0;
9888
- rules.forEach(({
9889
- suggestion,
9890
- score
9891
- }) => {
9892
- const ruleScore = score(password);
9912
+ const suggestions = [];
9913
+ const skippedRules = new Set();
9914
+ rules.forEach(rule => {
9915
+ const ruleScore = rule.score(password);
9893
9916
 
9894
- if (ruleScore < 0 && suggestion) {
9895
- suggestions.push(suggestion);
9896
- } else {
9917
+ if (ruleScore >= 0) {
9897
9918
  passwordScore += ruleScore;
9919
+ return;
9920
+ }
9921
+
9922
+ skippedRules.add(EXCLUSIONS[rule.name]);
9923
+
9924
+ if (!skippedRules.has(rule.name) && rule.suggestion) {
9925
+ suggestions.push(rule.suggestion);
9898
9926
  }
9899
9927
  });
9900
9928
  let strength;
@@ -10394,6 +10422,7 @@ class FormFieldText extends _react.Component {
10394
10422
  autoFocus,
10395
10423
  autoComplete,
10396
10424
  autoheight,
10425
+ inputProps,
10397
10426
  ...props
10398
10427
  } = this.props;
10399
10428
  return /*#__PURE__*/_react.default.createElement(_FormField.default, _extends({
@@ -10406,7 +10435,7 @@ class FormFieldText extends _react.Component {
10406
10435
  getValue,
10407
10436
  setValue,
10408
10437
  isDisabled
10409
- }) => multiline ? /*#__PURE__*/_react.default.createElement(_TextArea.default, {
10438
+ }) => multiline ? /*#__PURE__*/_react.default.createElement(_TextArea.default, _extends({
10410
10439
  id: getId(),
10411
10440
  name: getName(),
10412
10441
  value: getValue(''),
@@ -10418,7 +10447,7 @@ class FormFieldText extends _react.Component {
10418
10447
  autoFocus: autoFocus,
10419
10448
  autoComplete: autoComplete,
10420
10449
  autoheight: autoheight
10421
- }) : /*#__PURE__*/_react.default.createElement(_Input.default, {
10450
+ }, inputProps)) : /*#__PURE__*/_react.default.createElement(_Input.default, _extends({
10422
10451
  id: getId(),
10423
10452
  name: getName(),
10424
10453
  className: `${baseClassName}__input`,
@@ -10429,7 +10458,7 @@ class FormFieldText extends _react.Component {
10429
10458
  placeholder: placeholder,
10430
10459
  autoFocus: autoFocus,
10431
10460
  autoComplete: autoComplete
10432
- }));
10461
+ }, inputProps)));
10433
10462
  }
10434
10463
 
10435
10464
  }
@@ -10500,7 +10529,13 @@ FormFieldText.propTypes = {
10500
10529
  * Adjust height automatically when multiline option is set to true.
10501
10530
  * @since 1.9.0
10502
10531
  */
10503
- autoheight: _propTypes.default.bool
10532
+ autoheight: _propTypes.default.bool,
10533
+
10534
+ /**
10535
+ * Props of underlying input element.
10536
+ * @since 3.28.1
10537
+ */
10538
+ inputProps: _propTypes.default.object
10504
10539
  };
10505
10540
  FormFieldText.defaultProps = {
10506
10541
  size: undefined,
@@ -10513,7 +10548,8 @@ FormFieldText.defaultProps = {
10513
10548
  multi: undefined,
10514
10549
  className: undefined,
10515
10550
  baseClassName: `${_constants.CLS_PREFIX}form-field-text`,
10516
- autoheight: false
10551
+ autoheight: false,
10552
+ inputProps: undefined
10517
10553
  };
10518
10554
  var _default = FormFieldText;
10519
10555
  exports["default"] = _default;
@@ -11867,6 +11903,7 @@ const InputFile = ({
11867
11903
  disabled = false,
11868
11904
  locale,
11869
11905
  testId,
11906
+ accept,
11870
11907
  ...props
11871
11908
  }) => {
11872
11909
  const [file, setFile] = (0, _react.useState)();
@@ -11924,7 +11961,8 @@ const InputFile = ({
11924
11961
  ref: inputRef,
11925
11962
  "data-test": testId && `${testId}--file-input`,
11926
11963
  onFocus: handleFocus,
11927
- onBlur: handleBlur
11964
+ onBlur: handleBlur,
11965
+ accept: accept
11928
11966
  }), /*#__PURE__*/_react.default.createElement(_Translate.default, {
11929
11967
  namespace: "InputFile",
11930
11968
  content: "browseButton",
@@ -14760,14 +14798,9 @@ class List extends _react.Component {
14760
14798
 
14761
14799
  if (totalRows && /*#__PURE__*/(0, _react.isValidElement)(pagination)) {
14762
14800
  const {
14763
- itemsPerPageOptions = _Pagination.ITEMS_PER_PAGE_OPTIONS,
14764
- itemsPerPage
14801
+ itemsPerPageOptions = _Pagination.ITEMS_PER_PAGE_OPTIONS
14765
14802
  } = pagination.props;
14766
14803
 
14767
- if (Number.isInteger(itemsPerPage)) {
14768
- return totalRows > itemsPerPage;
14769
- }
14770
-
14771
14804
  if (Array.isArray(itemsPerPageOptions)) {
14772
14805
  const numericOptions = itemsPerPageOptions.filter(v => Number(v) === v);
14773
14806
 
@@ -22610,6 +22643,212 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
22610
22643
 
22611
22644
  /***/ }),
22612
22645
 
22646
+ /***/ "./components/Skeleton/Skeleton.tsx":
22647
+ /*!******************************************!*\
22648
+ !*** ./components/Skeleton/Skeleton.tsx ***!
22649
+ \******************************************/
22650
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
22651
+
22652
+ "use strict";
22653
+
22654
+
22655
+ Object.defineProperty(exports, "__esModule", ({
22656
+ value: true
22657
+ }));
22658
+ exports["default"] = void 0;
22659
+
22660
+ var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
22661
+
22662
+ var _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ "../node_modules/classnames/index.js"));
22663
+
22664
+ var _utils = __webpack_require__(/*! ../utils */ "./components/utils.tsx");
22665
+
22666
+ var _constants = __webpack_require__(/*! ../../constants */ "./constants.js");
22667
+
22668
+ __webpack_require__(/*! ./Skeleton.less */ "./components/Skeleton/Skeleton.less");
22669
+
22670
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22671
+
22672
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22673
+
22674
+ /**
22675
+ * `Skeleton` (or content-placeholder) is placeholder preview of content before the data gets loaded to reduce load-time frustration.
22676
+ * Skeleton is used for non-text components, images, media-objects, etc.
22677
+ * @since 3.28.0
22678
+ */
22679
+ const Skeleton = ({
22680
+ width,
22681
+ maxWidth,
22682
+ height,
22683
+ style,
22684
+ component: Tag = 'span',
22685
+ className,
22686
+ baseClassName = `${_constants.CLS_PREFIX}skeleton`,
22687
+ ...props
22688
+ }) => {
22689
+ const finalStyle = { ...style,
22690
+ width: (0, _utils.normalizeSize)(width),
22691
+ maxWidth: (0, _utils.normalizeSize)(maxWidth),
22692
+ height: (0, _utils.normalizeSize)(height)
22693
+ };
22694
+ return /*#__PURE__*/_react.default.createElement(Tag, _extends({
22695
+ className: (0, _classnames.default)(baseClassName, className),
22696
+ style: finalStyle
22697
+ }, props));
22698
+ };
22699
+
22700
+ var _default = Skeleton;
22701
+ exports["default"] = _default;
22702
+
22703
+ /***/ }),
22704
+
22705
+ /***/ "./components/Skeleton/SkeletonTabs.tsx":
22706
+ /*!**********************************************!*\
22707
+ !*** ./components/Skeleton/SkeletonTabs.tsx ***!
22708
+ \**********************************************/
22709
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
22710
+
22711
+ "use strict";
22712
+
22713
+
22714
+ Object.defineProperty(exports, "__esModule", ({
22715
+ value: true
22716
+ }));
22717
+ exports["default"] = void 0;
22718
+
22719
+ var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
22720
+
22721
+ var _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ "../node_modules/classnames/index.js"));
22722
+
22723
+ var _SkeletonText = _interopRequireDefault(__webpack_require__(/*! ./SkeletonText */ "./components/Skeleton/SkeletonText.tsx"));
22724
+
22725
+ var _constants = __webpack_require__(/*! ../../constants */ "./constants.js");
22726
+
22727
+ __webpack_require__(/*! ./SkeletonTabs.less */ "./components/Skeleton/SkeletonTabs.less");
22728
+
22729
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22730
+
22731
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22732
+
22733
+ /**
22734
+ * Skeleton for tabs component
22735
+ * @since `3.28.0
22736
+ */
22737
+ const SkeletonTabs = ({
22738
+ count = 3,
22739
+ className,
22740
+ baseClassName = `${_constants.CLS_PREFIX}skeleton-tabs`,
22741
+ ...props
22742
+ }) => /*#__PURE__*/_react.default.createElement("div", _extends({
22743
+ className: (0, _classnames.default)(baseClassName, className)
22744
+ }, props), /*#__PURE__*/_react.default.createElement(_SkeletonText.default, {
22745
+ lineProps: {
22746
+ maxWidth: 100
22747
+ },
22748
+ lines: count
22749
+ }));
22750
+
22751
+ var _default = SkeletonTabs;
22752
+ exports["default"] = _default;
22753
+
22754
+ /***/ }),
22755
+
22756
+ /***/ "./components/Skeleton/SkeletonText.tsx":
22757
+ /*!**********************************************!*\
22758
+ !*** ./components/Skeleton/SkeletonText.tsx ***!
22759
+ \**********************************************/
22760
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
22761
+
22762
+ "use strict";
22763
+
22764
+
22765
+ Object.defineProperty(exports, "__esModule", ({
22766
+ value: true
22767
+ }));
22768
+ exports["default"] = void 0;
22769
+
22770
+ var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
22771
+
22772
+ var _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ "../node_modules/classnames/index.js"));
22773
+
22774
+ var _Skeleton = _interopRequireDefault(__webpack_require__(/*! ./Skeleton */ "./components/Skeleton/Skeleton.tsx"));
22775
+
22776
+ var _constants = __webpack_require__(/*! ../../constants */ "./constants.js");
22777
+
22778
+ __webpack_require__(/*! ./SkeletonText.less */ "./components/Skeleton/SkeletonText.less");
22779
+
22780
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22781
+
22782
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22783
+
22784
+ /**
22785
+ * Skeleton for text-containing components. Is can be used inside Paragraph, as title, or single text
22786
+ * @since 3.28.0
22787
+ */
22788
+ const SkeletonText = ({
22789
+ lines = 3,
22790
+ component: Tag = 'span',
22791
+ className,
22792
+ baseClassName = `${_constants.CLS_PREFIX}skeleton-text`,
22793
+ lineProps = {},
22794
+ ...props
22795
+ }) => /*#__PURE__*/_react.default.createElement(Tag, _extends({
22796
+ className: (0, _classnames.default)(baseClassName, className)
22797
+ }, props), Array.from({
22798
+ length: lines
22799
+ }).map((_, key) => /*#__PURE__*/_react.default.createElement(_Skeleton.default // eslint-disable-next-line react/no-array-index-key
22800
+ , _extends({
22801
+ key: key
22802
+ }, lineProps, {
22803
+ className: (0, _classnames.default)(`${baseClassName}__line`, lineProps === null || lineProps === void 0 ? void 0 : lineProps.className)
22804
+ }))));
22805
+
22806
+ var _default = SkeletonText;
22807
+ exports["default"] = _default;
22808
+
22809
+ /***/ }),
22810
+
22811
+ /***/ "./components/Skeleton/index.tsx":
22812
+ /*!***************************************!*\
22813
+ !*** ./components/Skeleton/index.tsx ***!
22814
+ \***************************************/
22815
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
22816
+
22817
+ "use strict";
22818
+
22819
+
22820
+ Object.defineProperty(exports, "__esModule", ({
22821
+ value: true
22822
+ }));
22823
+ Object.defineProperty(exports, "SkeletonTabs", ({
22824
+ enumerable: true,
22825
+ get: function () {
22826
+ return _SkeletonTabs.default;
22827
+ }
22828
+ }));
22829
+ Object.defineProperty(exports, "SkeletonText", ({
22830
+ enumerable: true,
22831
+ get: function () {
22832
+ return _SkeletonText.default;
22833
+ }
22834
+ }));
22835
+ Object.defineProperty(exports, "default", ({
22836
+ enumerable: true,
22837
+ get: function () {
22838
+ return _Skeleton.default;
22839
+ }
22840
+ }));
22841
+
22842
+ var _Skeleton = _interopRequireDefault(__webpack_require__(/*! ./Skeleton */ "./components/Skeleton/Skeleton.tsx"));
22843
+
22844
+ var _SkeletonText = _interopRequireDefault(__webpack_require__(/*! ./SkeletonText */ "./components/Skeleton/SkeletonText.tsx"));
22845
+
22846
+ var _SkeletonTabs = _interopRequireDefault(__webpack_require__(/*! ./SkeletonTabs */ "./components/Skeleton/SkeletonTabs.tsx"));
22847
+
22848
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22849
+
22850
+ /***/ }),
22851
+
22613
22852
  /***/ "./components/Spinner/Spinner.tsx":
22614
22853
  /*!****************************************!*\
22615
22854
  !*** ./components/Spinner/Spinner.tsx ***!
@@ -28185,7 +28424,9 @@ var _exportNames = {
28185
28424
  Tooltip: true,
28186
28425
  Tour: true,
28187
28426
  Translate: true,
28188
- Link: true
28427
+ Link: true,
28428
+ Skeleton: true,
28429
+ PortalContext: true
28189
28430
  };
28190
28431
  Object.defineProperty(exports, "Action", ({
28191
28432
  enumerable: true,
@@ -28529,6 +28770,12 @@ Object.defineProperty(exports, "Popover", ({
28529
28770
  return _Popover.default;
28530
28771
  }
28531
28772
  }));
28773
+ Object.defineProperty(exports, "PortalContext", ({
28774
+ enumerable: true,
28775
+ get: function () {
28776
+ return _Layer.PortalContext;
28777
+ }
28778
+ }));
28532
28779
  Object.defineProperty(exports, "Progress", ({
28533
28780
  enumerable: true,
28534
28781
  get: function () {
@@ -28589,6 +28836,12 @@ Object.defineProperty(exports, "Select", ({
28589
28836
  return _Select.default;
28590
28837
  }
28591
28838
  }));
28839
+ Object.defineProperty(exports, "Skeleton", ({
28840
+ enumerable: true,
28841
+ get: function () {
28842
+ return _Skeleton.default;
28843
+ }
28844
+ }));
28592
28845
  Object.defineProperty(exports, "SplitButton", ({
28593
28846
  enumerable: true,
28594
28847
  get: function () {
@@ -29032,6 +29285,22 @@ var _Translate = _interopRequireDefault(__webpack_require__(/*! ./Translate */ "
29032
29285
 
29033
29286
  var _Link = _interopRequireDefault(__webpack_require__(/*! ./Link */ "./components/Link/index.tsx"));
29034
29287
 
29288
+ var _Skeleton = _interopRequireWildcard(__webpack_require__(/*! ./Skeleton */ "./components/Skeleton/index.tsx"));
29289
+
29290
+ Object.keys(_Skeleton).forEach(function (key) {
29291
+ if (key === "default" || key === "__esModule") return;
29292
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
29293
+ if (key in exports && exports[key] === _Skeleton[key]) return;
29294
+ Object.defineProperty(exports, key, {
29295
+ enumerable: true,
29296
+ get: function () {
29297
+ return _Skeleton[key];
29298
+ }
29299
+ });
29300
+ });
29301
+
29302
+ var _Layer = __webpack_require__(/*! ./Layer */ "./components/Layer/index.tsx");
29303
+
29035
29304
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29036
29305
 
29037
29306
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -29077,7 +29346,7 @@ exports.intentIconMap = intentIconMap;
29077
29346
  Object.defineProperty(exports, "__esModule", ({
29078
29347
  value: true
29079
29348
  }));
29080
- exports.wrapFunction = exports.scrollIntoView = exports.safeInvoke = exports.mergeRefs = exports.isClickable = exports.createProxyProps = exports.createFocusManager = exports.EventEmitter = void 0;
29349
+ exports.wrapFunction = exports.scrollIntoView = exports.safeInvoke = exports.normalizeSize = exports.mergeRefs = exports.isClickable = exports.createProxyProps = exports.createFocusManager = exports.EventEmitter = void 0;
29081
29350
 
29082
29351
  var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
29083
29352
 
@@ -29332,6 +29601,10 @@ const mergeRefs = (...refs) => value => {
29332
29601
 
29333
29602
  exports.mergeRefs = mergeRefs;
29334
29603
 
29604
+ const normalizeSize = value => String(Number(value)) === String(value) ? `${value}px` : value;
29605
+
29606
+ exports.normalizeSize = normalizeSize;
29607
+
29335
29608
  /***/ }),
29336
29609
 
29337
29610
  /***/ "./constants.js":
@@ -81246,6 +81519,45 @@ __webpack_require__.r(__webpack_exports__);
81246
81519
  // extracted by mini-css-extract-plugin
81247
81520
 
81248
81521
 
81522
+ /***/ }),
81523
+
81524
+ /***/ "./components/Skeleton/Skeleton.less":
81525
+ /*!*******************************************!*\
81526
+ !*** ./components/Skeleton/Skeleton.less ***!
81527
+ \*******************************************/
81528
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
81529
+
81530
+ "use strict";
81531
+ __webpack_require__.r(__webpack_exports__);
81532
+ // extracted by mini-css-extract-plugin
81533
+
81534
+
81535
+ /***/ }),
81536
+
81537
+ /***/ "./components/Skeleton/SkeletonTabs.less":
81538
+ /*!***********************************************!*\
81539
+ !*** ./components/Skeleton/SkeletonTabs.less ***!
81540
+ \***********************************************/
81541
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
81542
+
81543
+ "use strict";
81544
+ __webpack_require__.r(__webpack_exports__);
81545
+ // extracted by mini-css-extract-plugin
81546
+
81547
+
81548
+ /***/ }),
81549
+
81550
+ /***/ "./components/Skeleton/SkeletonText.less":
81551
+ /*!***********************************************!*\
81552
+ !*** ./components/Skeleton/SkeletonText.less ***!
81553
+ \***********************************************/
81554
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
81555
+
81556
+ "use strict";
81557
+ __webpack_require__.r(__webpack_exports__);
81558
+ // extracted by mini-css-extract-plugin
81559
+
81560
+
81249
81561
  /***/ }),
81250
81562
 
81251
81563
  /***/ "./components/Spinner/Spinner.less":
@@ -92279,7 +92591,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
92279
92591
  /***/ ((module) => {
92280
92592
 
92281
92593
  "use strict";
92282
- module.exports = JSON.parse('{"name":"@plesk/ui-library","version":"3.27.4","description":"Plesk UI Library","main":"index.js","module":"esm/index.js","types":"./types/src","sideEffects":["cjs/index.js","esm/index.js","dist/*.js","dist/*.css"],"scripts":{"pretest":"yarn lint","test":"jest --ci --coverage --coverageReporters text-summary","test:vr":"cross-env VISUAL_REGRESSION=true jest","build":"yarn build:types && yarn build:umd && yarn build:esm && yarn build:cjs","build:umd":"webpack --config ./configs/build.config.js","build:esm":"cross-env NODE_ENV=esm node ./scripts/build.js","build:cjs":"cross-env NODE_ENV=cjs node ./scripts/build.js","build:types":"rimraf ./types && tsc --project ./configs/types-generator.config.json","create-svg-sprite":"node ./scripts/create-svg-sprite.js","lint":"yarn lint:es && yarn lint:types && yarn lint:style","lint:es":"eslint --ext js,md,tsx src configs scripts styleguidist","lint:types":"tsc","lint:style":"stylelint \\"src/**/*.less\\"","styleguide":"styleguidist server --config ./configs/styleguide.config.js","styleguide:build":"styleguidist build --config ./configs/styleguide.config.js","create-component":"node scripts/create-component.js","prepublishOnly":"yarn install && yarn test && yarn build && yarn styleguide:build","storybook":"webpack serve --config ./configs/storybook.config.js --disable-host-check","postinstall":"node ./scripts/postinstall.js"},"files":["esm","cjs","dist","styleguide","types","/scripts/postinstall.js","/index.js"],"dependencies":{"@babel/runtime":"^7.15.4","@plesk/react-movable":"^2.6.0","@types/classnames":"2.2.7","@types/react":"16.8.13","@types/react-dom":"16.8.4","@types/react-measure":"2.0.8","@types/react-transition-group":"^4.4.4","@types/svg4everybody":"2.1.0","classnames":"^2.3.1","codemirror":"5.48.0","marked":"0.3.19","memoize-one":"^5.1.1","popper.js":"1.14.3","prop-types":"^15.7.2","react-measure":"2.3.0","react-sortable-hoc":"0.6.8","react-transition-group":"^4.4.2","scroll-into-view-if-needed":"^2.2.20","svg4everybody":"2.1.9","use-focus-visible":"^1.0.0"},"devDependencies":{"@babel/core":"^7.15.8","@babel/plugin-proposal-class-properties":"^7.14.5","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-runtime":"^7.15.8","@babel/preset-env":"^7.15.8","@babel/preset-react":"^7.14.5","@babel/preset-typescript":"^7.15.0","@plesk/eslint-config":"^1.1.0","@plesk/stylelint-config":"^1.0.0","@types/buble":"^0.19.2","@types/cheerio":"^0.22.30","@types/doctrine":"^0.0.3","@types/enzyme":"^3.10.9","@types/jest":"^23.3.12","@types/webpack-dev-server":"^3.10.1","@typescript-eslint/eslint-plugin":"^2.7.0","@typescript-eslint/parser":"^2.7.0","autoprefixer":"^10.3.7","babel-loader":"^8.2.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-transform-require-ignore":"^0.1.1","clean-webpack-plugin":"^4.0.0","cross-env":"^5.2.0","css-loader":"^6.4.0","css-minimizer-webpack-plugin":"^3.1.1","enzyme":"^3.11.0","enzyme-adapter-react-16":"^1.15.6","enzyme-to-json":"^3.6.2","eslint-config-prettier":"^6.11.0","eslint-plugin-markdown":"^1.0.2","eslint-plugin-prettier":"^3.1.3","expect-puppeteer":"^4.4.0","fs-extra":"^7.0.0","html-webpack-plugin":"^5.5.0","inquirer":"^3.2.1","jest":"^24.9.0","jest-dev-server":"^4.4.0","jest-image-snapshot":"^4.0.2","less":"^4.1.2","less-loader":"^10.2.0","mini-css-extract-plugin":"^2.4.3","postcss":"^8.4.6","postcss-less":"^6.0.0","postcss-loader":"^6.2.1","postcss-logical":"^5.0.3","prettier":"^2.0.5","puppeteer-core":"13.1.3","react":"^16.8.6","react-dom":"^16.8.6","react-styleguidist":"^11.1.7","react-test-renderer":"^16.8.6","rimraf":"^3.0.1","rtlcss":"^3.4.0","style-loader":"^3.3.1","stylelint":"^14.3.0","stylelint-config-prettier":"^9.0.3","stylelint-declaration-block-no-ignored-properties":"^2.5.0","stylelint-no-unsupported-browser-features":"^5.0.2","stylelint-prettier":"^2.0.0","stylelint-use-logical-spec":"^3.2.2","svg-mixer":"^2.3.14","terser-webpack-plugin":"^5.2.4","typescript":"^3.7.2","webpack":"^5.60.0","webpack-cli":"^4.9.1"},"peerDependencies":{"react":"^16.8.6","react-dom":"^16.8.6"},"resolutions":{"@babel/types":"^7.15.6","@types/node":"^12.12.8","**/caniuse-lite":"1.0.30001307"},"browserslist":["last 2 versions",">1%","not op_mini all","not dead","not ie 11"],"author":"Plesk Developers <plesk-dev-leads@plesk.com> (https://www.plesk.com/)","license":"Apache-2.0"}');
92594
+ module.exports = JSON.parse('{"name":"@plesk/ui-library","version":"3.28.2","description":"Plesk UI Library","main":"index.js","module":"esm/index.js","types":"./types/src","sideEffects":["cjs/index.js","esm/index.js","dist/*.js","dist/*.css"],"scripts":{"pretest":"yarn lint","test":"jest --ci --coverage --coverageReporters text-summary","test:vr":"cross-env VISUAL_REGRESSION=true jest","build":"yarn build:types && yarn build:umd && yarn build:esm && yarn build:cjs","build:umd":"webpack --config ./configs/build.config.js","build:esm":"cross-env NODE_ENV=esm node ./scripts/build.js","build:cjs":"cross-env NODE_ENV=cjs node ./scripts/build.js","build:types":"rimraf ./types && tsc --project ./configs/types-generator.config.json","create-svg-sprite":"node ./scripts/create-svg-sprite.js","lint":"yarn lint:es && yarn lint:types && yarn lint:style","lint:es":"eslint --ext js,md,tsx src configs scripts styleguidist","lint:types":"tsc","lint:style":"stylelint \\"src/**/*.less\\"","styleguide":"styleguidist server --config ./configs/styleguide.config.js","styleguide:build":"styleguidist build --config ./configs/styleguide.config.js","create-component":"node scripts/create-component.js","prepublishOnly":"yarn install && yarn test && yarn build && yarn styleguide:build","storybook":"webpack serve --config ./configs/storybook.config.js --disable-host-check","postinstall":"node ./scripts/postinstall.js"},"files":["esm","cjs","dist","styleguide","types","/scripts/postinstall.js","/index.js"],"dependencies":{"@babel/runtime":"^7.15.4","@plesk/react-movable":"^2.6.0","@types/classnames":"2.2.7","@types/react":"16.8.13","@types/react-dom":"16.8.4","@types/react-measure":"2.0.8","@types/react-transition-group":"^4.4.4","@types/svg4everybody":"2.1.0","classnames":"^2.3.1","codemirror":"5.48.0","marked":"0.3.19","memoize-one":"^5.1.1","popper.js":"1.14.3","prop-types":"^15.7.2","react-measure":"2.3.0","react-sortable-hoc":"0.6.8","react-transition-group":"^4.4.2","scroll-into-view-if-needed":"^2.2.20","svg4everybody":"2.1.9","use-focus-visible":"^1.0.0"},"devDependencies":{"@babel/core":"^7.15.8","@babel/plugin-proposal-class-properties":"^7.14.5","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-transform-runtime":"^7.15.8","@babel/preset-env":"^7.15.8","@babel/preset-react":"^7.14.5","@babel/preset-typescript":"^7.15.0","@plesk/eslint-config":"^1.1.0","@plesk/stylelint-config":"^1.0.0","@types/buble":"^0.19.2","@types/cheerio":"^0.22.30","@types/doctrine":"^0.0.3","@types/enzyme":"^3.10.9","@types/jest":"^23.3.12","@types/webpack-dev-server":"^3.10.1","@typescript-eslint/eslint-plugin":"^2.7.0","@typescript-eslint/parser":"^2.7.0","autoprefixer":"^10.3.7","babel-loader":"^8.2.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-transform-require-ignore":"^0.1.1","clean-webpack-plugin":"^4.0.0","cross-env":"^5.2.0","css-loader":"^6.4.0","css-minimizer-webpack-plugin":"^3.1.1","enzyme":"^3.11.0","enzyme-adapter-react-16":"^1.15.6","enzyme-to-json":"^3.6.2","eslint-config-prettier":"^6.11.0","eslint-plugin-markdown":"^1.0.2","eslint-plugin-prettier":"^3.1.3","expect-puppeteer":"^4.4.0","fs-extra":"^7.0.0","html-webpack-plugin":"^5.5.0","inquirer":"^3.2.1","jest":"^24.9.0","jest-dev-server":"^4.4.0","jest-image-snapshot":"^4.0.2","less":"^4.1.2","less-loader":"^10.2.0","mini-css-extract-plugin":"^2.4.3","postcss":"^8.4.6","postcss-less":"^6.0.0","postcss-loader":"^6.2.1","postcss-logical":"^5.0.3","prettier":"^2.0.5","puppeteer-core":"13.1.3","react":"^16.8.6","react-dom":"^16.8.6","react-styleguidist":"^11.1.7","react-test-renderer":"^16.8.6","rimraf":"^3.0.1","rtlcss":"^3.4.0","style-loader":"^3.3.1","stylelint":"^14.3.0","stylelint-config-prettier":"^9.0.3","stylelint-declaration-block-no-ignored-properties":"^2.5.0","stylelint-no-unsupported-browser-features":"^5.0.2","stylelint-prettier":"^2.0.0","stylelint-use-logical-spec":"^3.2.2","svg-mixer":"^2.3.14","terser-webpack-plugin":"^5.2.4","typescript":"^3.7.2","webpack":"^5.60.0","webpack-cli":"^4.9.1"},"peerDependencies":{"react":"^16.8.6","react-dom":"^16.8.6"},"resolutions":{"@babel/types":"^7.15.6","@types/node":"^12.12.8","**/caniuse-lite":"1.0.30001307"},"browserslist":["last 2 versions",">1%","not op_mini all","not dead","not ie 11"],"author":"Plesk Developers <plesk-dev-leads@plesk.com> (https://www.plesk.com/)","license":"Apache-2.0"}');
92283
92595
 
92284
92596
  /***/ }),
92285
92597