@plesk/ui-library 3.25.7 → 3.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/cjs/components/Drawer/Drawer.js +11 -6
  2. package/cjs/components/Drawer/Header.js +11 -4
  3. package/cjs/components/Icon/constants.js +2 -2
  4. package/cjs/components/Icon/images/symbols.svg +15 -1
  5. package/cjs/components/Item/Item.js +12 -3
  6. package/cjs/components/ItemLink/ItemLink.js +1 -0
  7. package/cjs/components/ItemList/ItemList.js +39 -8
  8. package/cjs/components/ItemList/ItemList.stories.js +35 -3
  9. package/cjs/components/ProgressStep/ProgressStep.js +16 -14
  10. package/cjs/components/Section/Section.js +14 -1
  11. package/cjs/index.js +1 -1
  12. package/dist/images/symbols.svg +15 -1
  13. package/dist/plesk-ui-library-rtl.css +1 -1
  14. package/dist/plesk-ui-library-rtl.css.map +1 -1
  15. package/dist/plesk-ui-library.css +1 -1
  16. package/dist/plesk-ui-library.css.map +1 -1
  17. package/dist/plesk-ui-library.js +106 -763
  18. package/dist/plesk-ui-library.js.map +1 -1
  19. package/dist/plesk-ui-library.min.js +3 -3
  20. package/dist/plesk-ui-library.min.js.map +1 -1
  21. package/esm/components/Drawer/Drawer.js +11 -5
  22. package/esm/components/Drawer/Header.js +11 -4
  23. package/esm/components/Icon/constants.js +2 -2
  24. package/esm/components/Icon/images/symbols.svg +15 -1
  25. package/esm/components/Item/Item.js +12 -3
  26. package/esm/components/ItemLink/ItemLink.js +1 -0
  27. package/esm/components/ItemList/ItemList.js +39 -8
  28. package/esm/components/ItemList/ItemList.stories.js +32 -2
  29. package/esm/components/ProgressStep/ProgressStep.js +17 -15
  30. package/esm/components/Section/Section.js +14 -1
  31. package/esm/index.js +1 -1
  32. package/package.json +1 -1
  33. package/styleguide/build/bundle.0e0e8f42.js +2 -0
  34. package/styleguide/build/{bundle.91e6a6ac.js.LICENSE.txt → bundle.0e0e8f42.js.LICENSE.txt} +0 -0
  35. package/styleguide/images/symbols.svg +15 -1
  36. package/styleguide/index.html +2 -2
  37. package/types/src/components/Icon/constants.d.ts +1 -1
  38. package/types/src/components/ItemLink/ItemLink.d.ts +4 -0
  39. package/types/src/components/ItemLink/ItemLink.stories.d.ts +1 -0
  40. package/types/src/components/ItemList/ItemList.d.ts +8 -0
  41. package/types/src/components/ItemList/ItemList.stories.d.ts +104 -0
  42. package/styleguide/build/bundle.91e6a6ac.js +0 -2
@@ -10,7 +10,6 @@ import Header from './Header';
10
10
  import ScrollDirection from './ScrollDirection';
11
11
  import Form from '../Form';
12
12
  import Heading from '../Heading';
13
- import Text from '../Text';
14
13
  import { isLikeText } from '../Translate';
15
14
  import ScrollableElementFormContext from '../Form/ScrollableElementFormContext';
16
15
  import DrawerProgress from './DrawerProgress';
@@ -46,6 +45,12 @@ const propTypes = {
46
45
  */
47
46
  backButton: PropTypes.bool,
48
47
 
48
+ /**
49
+ * A slot for `Tabs` component.
50
+ * @since 3.26.0
51
+ */
52
+ tabs: PropTypes.node,
53
+
49
54
  /**
50
55
  * Overlay placement.
51
56
  * @since 0.0.65
@@ -161,6 +166,7 @@ const defaultProps = {
161
166
  subtitle: '',
162
167
  backButton: undefined,
163
168
  hideButton: undefined,
169
+ tabs: undefined,
164
170
  placement: 'left',
165
171
  size: 'md',
166
172
  onClose: null,
@@ -187,6 +193,7 @@ const Drawer = ({
187
193
  subtitle,
188
194
  backButton,
189
195
  hideButton,
196
+ tabs,
190
197
  onClose,
191
198
  form,
192
199
  progress,
@@ -279,7 +286,8 @@ const Drawer = ({
279
286
  }) => /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Header, {
280
287
  backButton: backButton,
281
288
  hideButton: typeof hideButton === 'boolean' ? hideButton : Boolean(progress && !isClosable),
282
- onClose: onCloseWithConfirmation
289
+ onClose: onCloseWithConfirmation,
290
+ tabs: tabs
283
291
  }, isLikeText(title) ? /*#__PURE__*/React.createElement(Heading, {
284
292
  level: "2",
285
293
  className: `${baseClassName}__title`
@@ -287,9 +295,7 @@ const Drawer = ({
287
295
  className: `${baseClassName}__title`
288
296
  }, title), subtitle && /*#__PURE__*/React.createElement("div", {
289
297
  className: `${baseClassName}__subtitle`
290
- }, isLikeText(subtitle) ? /*#__PURE__*/React.createElement(Text, {
291
- intent: "muted"
292
- }, subtitle) : subtitle)), /*#__PURE__*/React.createElement(ScrollDirection, null, ({
298
+ }, subtitle)), /*#__PURE__*/React.createElement(ScrollDirection, null, ({
293
299
  handleScroll
294
300
  }) => /*#__PURE__*/React.createElement("div", {
295
301
  className: `${baseClassName}__body`,
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- // Copyright 1999-2019. Plesk International GmbH. All rights reserved.
3
+ // Copyright 1999-2021. Plesk International GmbH. All rights reserved.
4
4
  import { isRtl } from '../../utils';
5
5
  import React, { Component } from 'react';
6
6
  import PropTypes from 'prop-types';
@@ -75,6 +75,7 @@ export default class Header extends Component {
75
75
  children,
76
76
  backButton,
77
77
  hideButton,
78
+ tabs,
78
79
  ...props
79
80
  } = this.props;
80
81
  let prefix;
@@ -108,7 +109,11 @@ export default class Header extends Component {
108
109
  className: `${baseClassName}__inner`
109
110
  }, prefix, /*#__PURE__*/React.createElement("div", {
110
111
  className: `${baseClassName}__content`
111
- }, children), suffix));
112
+ }, children, tabs && /*#__PURE__*/React.createElement("div", {
113
+ className: `${baseClassName}__tabs`
114
+ }, /*#__PURE__*/React.createElement("div", {
115
+ className: `${baseClassName}__tabs-inner`
116
+ }, tabs))), suffix));
112
117
  }
113
118
 
114
119
  }
@@ -118,12 +123,14 @@ _defineProperty(Header, "propTypes", {
118
123
  onClose: PropTypes.func,
119
124
  children: PropTypes.node.isRequired,
120
125
  backButton: PropTypes.bool,
121
- hideButton: PropTypes.bool
126
+ hideButton: PropTypes.bool,
127
+ tabs: PropTypes.node
122
128
  });
123
129
 
124
130
  _defineProperty(Header, "defaultProps", {
125
131
  onClose: null,
126
132
  baseClassName: `${CLS_PREFIX}drawer-header`,
127
133
  backButton: false,
128
- hideButton: false
134
+ hideButton: false,
135
+ tabs: undefined
129
136
  });
@@ -1,4 +1,4 @@
1
1
  /* eslint-disable max-len */
2
2
  // This file is generated by create-svg-sprite. Do not edit.
3
- export const NAMES_12 = ['archive', 'arrow-back', 'arrow-diagonal-out', 'arrow-down', 'arrow-down-in', 'arrow-down-out', 'arrow-down-tray', 'arrow-left', 'arrow-right', 'arrow-right-in', 'arrow-right-out', 'arrow-up', 'arrow-up-circle', 'arrow-up-in', 'arrow-up-in-cloud', 'arrow-up-out', 'arrow-up-tray', 'arrows-four-directions', 'arrows-inward', 'arrows-loop', 'arrows-opposite', 'arrows-outward', 'backup', 'backup2', 'bar-chart-vertical', 'bar-chart-vertical-arrow-up', 'bell', 'book-email', 'boundary', 'box-diagonal-bottom-in', 'box-diagonal-top-in', 'brush', 'bug', 'calendar', 'calendar-clock', 'camera', 'card', 'card-ribbon', 'card-row', 'card-tile', 'cd', 'cd-up-in-cloud', 'chain', 'chain-broken', 'chat', 'check-list', 'check-mark', 'check-mark-circle', 'check-mark-circle-filled', 'chevron-double-down', 'chevron-double-up', 'chevron-down', 'chevron-left', 'chevron-right', 'chevron-up', 'circle-diagonal', 'clean', 'clip', 'clock', 'clone', 'cloud', 'cloud-checkmark', 'cloud-crossed', 'cloud-graph', 'code', 'connection', 'console', 'console-filled', 'copy', 'copy-indicator', 'cpu', 'crane', 'credit-cards', 'cross-mark', 'cross-mark-circle', 'cross-mark-circle-filled', 'crown-transfer', 'dashboard', 'database', 'database-box', 'database-plus', 'deploy', 'dollar', 'dollar-filled', 'emoticon-confused', 'emoticon-dead', 'emoticon-excited', 'emoticon-happy', 'emoticon-neutral', 'emoticon-sad', 'emoticon-smile', 'enter', 'exclamation-mark-circle', 'exclamation-mark-circle-filled', 'eye', 'eye-closed', 'facebook', 'facebook-filled', 'feedback', 'filter', 'filter-check-mark', 'fire', 'flag-globe', 'floppy-disk', 'folder-closed', 'folder-key', 'folder-network', 'folder-open', 'folders-tree', 'four-squares', 'gear', 'git', 'github', 'globe', 'hard-drive', 'hard-drive-key', 'hat', 'hexagons', 'home', 'info-circle', 'info-circle-filled', 'ip-addresses', 'kebab', 'key', 'lifebuoy', 'lightbulb', 'limit', 'linux', 'list', 'list-check-mark', 'location', 'lock-closed', 'lock-closed-check', 'lock-closed-filled', 'lock-open', 'lock-open-cross', 'lock-open-filled', 'mail', 'mail-settings', 'megaphone', 'menu', 'menu-thin', 'microsoft', 'minimize', 'minus', 'minus-circle', 'minus-circle-filled', 'monitoring', 'monitoring-off', 'my-little-admin', 'net', 'nine-dots', 'node-js', 'package', 'panel', 'panel-check', 'panel-eye', 'panel-key', 'panel-settings', 'panels', 'pause-circle', 'pencil', 'pencil-dialog', 'php', 'phpmyadmin', 'pin', 'pipette', 'plans', 'plugins', 'plus', 'power', 'projects', 'puzzle', 'question-mark-circle', 'question-mark-circle-filled', 'ram', 'react-js', 'recycle', 'refresh', 'reload', 'remove', 'reset', 'resource', 'ribbon', 'rocket', 'ruby', 'sand-clock', 'scan', 'screen', 'search', 'security-check', 'send', 'servers', 'share', 'shield', 'shield-chain', 'shopping-cart', 'sidebar-right-hide', 'sidebar-right-show', 'signal-light', 'site-page', 'sleep', 'sliders', 'square-with-circles', 'star', 'star-circle-filled', 'star-filled', 'star-half-filled', 'start', 'start-circle', 'stop', 'stop-circle', 'storage', 'themes', 'three-dots-horizontal', 'three-dots-vertical', 'tools', 'transfer', 'triangle-exclamation-mark', 'triangle-exclamation-mark-filled', 'unarchive', 'user', 'volume', 'web', 'web-plus', 'web-settings', 'windows', 'wordpress'];
4
- export const NAMES = ['archive', 'arrow-back', 'arrow-diagonal-out', 'arrow-down', 'arrow-down-in', 'arrow-down-out', 'arrow-down-tray', 'arrow-left', 'arrow-right', 'arrow-right-in', 'arrow-right-out', 'arrow-up', 'arrow-up-circle', 'arrow-up-in', 'arrow-up-in-cloud', 'arrow-up-out', 'arrow-up-tray', 'arrows-four-directions', 'arrows-inward', 'arrows-loop', 'arrows-opposite', 'arrows-outward', 'backup', 'backup2', 'bar-chart-vertical', 'bar-chart-vertical-arrow-up', 'bell', 'book-email', 'boundary', 'box-diagonal-bottom-in', 'box-diagonal-top-in', 'brush', 'bug', 'calendar', 'calendar-clock', 'camera', 'card', 'card-ribbon', 'card-row', 'card-tile', 'cd', 'cd-up-in-cloud', 'chain', 'chain-broken', 'chat', 'check-list', 'check-mark', 'check-mark-circle', 'check-mark-circle-filled', 'chevron-double-down', 'chevron-double-up', 'chevron-down', 'chevron-left', 'chevron-right', 'chevron-up', 'circle-diagonal', 'clean', 'clip', 'clock', 'clone', 'cloud', 'cloud-checkmark', 'cloud-crossed', 'cloud-graph', 'code', 'connection', 'console', 'console-filled', 'copy', 'copy-indicator', 'cpu', 'crane', 'credit-cards', 'cross-mark', 'cross-mark-circle', 'cross-mark-circle-filled', 'crown-transfer', 'dashboard', 'database', 'database-box', 'database-plus', 'deploy', 'dollar', 'dollar-filled', 'emoticon-confused', 'emoticon-dead', 'emoticon-excited', 'emoticon-happy', 'emoticon-neutral', 'emoticon-sad', 'emoticon-smile', 'enter', 'exclamation-mark-circle', 'exclamation-mark-circle-filled', 'eye', 'eye-closed', 'facebook', 'facebook-filled', 'feedback', 'filter', 'filter-check-mark', 'fire', 'flag-globe', 'floppy-disk', 'folder-closed', 'folder-key', 'folder-network', 'folder-open', 'folders-tree', 'four-squares', 'gear', 'git', 'github', 'globe', 'hard-drive', 'hard-drive-key', 'hat', 'hexagons', 'home', 'info-circle', 'info-circle-filled', 'ip-addresses', 'kebab', 'key', 'lifebuoy', 'lightbulb', 'limit', 'linux', 'list', 'list-check-mark', 'location', 'lock-closed', 'lock-closed-check', 'lock-closed-filled', 'lock-open', 'lock-open-cross', 'lock-open-filled', 'mail', 'mail-settings', 'megaphone', 'menu', 'menu-thin', 'microsoft', 'minimize', 'minus', 'minus-circle', 'minus-circle-filled', 'monitoring', 'monitoring-off', 'my-little-admin', 'net', 'nine-dots', 'node-js', 'package', 'panel', 'panel-check', 'panel-eye', 'panel-key', 'panel-settings', 'panels', 'pause-circle', 'pencil', 'pencil-dialog', 'php', 'phpmyadmin', 'pin', 'pipette', 'plans', 'plugins', 'plus', 'power', 'projects', 'puzzle', 'question-mark-circle', 'question-mark-circle-filled', 'ram', 'react-js', 'recycle', 'refresh', 'reload', 'remove', 'reset', 'resource', 'ribbon', 'rocket', 'ruby', 'sand-clock', 'scan', 'screen', 'search', 'security-check', 'send', 'servers', 'share', 'shield', 'shield-chain', 'shopping-cart', 'sidebar-right-hide', 'sidebar-right-show', 'signal-light', 'site-page', 'sleep', 'sliders', 'square-with-circles', 'star', 'star-circle-filled', 'star-filled', 'star-half-filled', 'start', 'start-circle', 'stop', 'stop-circle', 'storage', 'themes', 'three-dots-horizontal', 'three-dots-vertical', 'tools', 'transfer', 'triangle-exclamation-mark', 'triangle-exclamation-mark-filled', 'unarchive', 'user', 'volume', 'web', 'web-plus', 'web-settings', 'windows', 'wordpress'];
3
+ export const NAMES_12 = ['archive', 'arrow-back', 'arrow-diagonal-out', 'arrow-down', 'arrow-down-in', 'arrow-down-out', 'arrow-down-tray', 'arrow-left', 'arrow-right', 'arrow-right-in', 'arrow-right-out', 'arrow-up', 'arrow-up-circle', 'arrow-up-in', 'arrow-up-in-cloud', 'arrow-up-out', 'arrow-up-tray', 'arrows-four-directions', 'arrows-inward', 'arrows-loop', 'arrows-opposite', 'arrows-outward', 'backup', 'backup2', 'bar-chart-vertical', 'bar-chart-vertical-arrow-up', 'bell', 'book-email', 'boundary', 'box-diagonal-bottom-in', 'box-diagonal-top-in', 'brush', 'bug', 'calendar', 'calendar-clock', 'camera', 'card', 'card-ribbon', 'card-row', 'card-tile', 'cd', 'cd-up-in-cloud', 'chain', 'chain-broken', 'chat', 'check-list', 'check-mark', 'check-mark-circle', 'check-mark-circle-filled', 'chevron-double-down', 'chevron-double-up', 'chevron-down', 'chevron-left', 'chevron-right', 'chevron-up', 'circle-diagonal', 'clean', 'clip', 'clock', 'clone', 'cloud', 'cloud-checkmark', 'cloud-crossed', 'cloud-graph', 'code', 'connection', 'console', 'console-filled', 'copy', 'copy-indicator', 'cpu', 'crane', 'credit-cards', 'cross-mark', 'cross-mark-circle', 'cross-mark-circle-filled', 'crown-transfer', 'dashboard', 'database', 'database-box', 'database-plus', 'deploy', 'docker-filled', 'dollar', 'dollar-filled', 'dot', 'emoticon-confused', 'emoticon-dead', 'emoticon-excited', 'emoticon-happy', 'emoticon-neutral', 'emoticon-sad', 'emoticon-smile', 'enter', 'exclamation-mark-circle', 'exclamation-mark-circle-filled', 'eye', 'eye-closed', 'facebook', 'facebook-filled', 'feedback', 'filter', 'filter-check-mark', 'fire', 'flag-globe', 'floppy-disk', 'folder-closed', 'folder-key', 'folder-network', 'folder-open', 'folders-tree', 'four-squares', 'gear', 'git', 'github', 'globe', 'hard-drive', 'hard-drive-key', 'hat', 'hexagons', 'home', 'info-circle', 'info-circle-filled', 'ip-addresses', 'kebab', 'key', 'lifebuoy', 'lightbulb', 'limit', 'linux', 'list', 'list-check-mark', 'location', 'lock-closed', 'lock-closed-check', 'lock-closed-filled', 'lock-open', 'lock-open-cross', 'lock-open-filled', 'mail', 'mail-settings', 'megaphone', 'menu', 'menu-thin', 'microsoft', 'minimize', 'minus', 'minus-circle', 'minus-circle-filled', 'monitoring', 'monitoring-off', 'my-little-admin', 'net', 'nine-dots', 'node-js', 'package', 'panel', 'panel-check', 'panel-eye', 'panel-key', 'panel-settings', 'panels', 'pause-circle', 'pencil', 'pencil-dialog', 'php', 'phpmyadmin', 'pin', 'pipette', 'plans', 'plugins', 'plus', 'power', 'projects', 'puzzle', 'question-mark-circle', 'question-mark-circle-filled', 'ram', 'react-js', 'recycle', 'refresh', 'reload', 'remove', 'reset', 'resource', 'ribbon', 'rocket', 'ruby', 'sand-clock', 'scan', 'screen', 'search', 'security-check', 'send', 'servers', 'share', 'shield', 'shield-chain', 'shopping-cart', 'sidebar-right-hide', 'sidebar-right-show', 'signal-light', 'site-page', 'sleep', 'sliders', 'square-with-circles', 'star', 'star-circle-filled', 'star-filled', 'star-half-filled', 'start', 'start-circle', 'stop', 'stop-circle', 'storage', 'themes', 'three-dots-horizontal', 'three-dots-vertical', 'tools', 'transfer', 'triangle-exclamation-mark', 'triangle-exclamation-mark-filled', 'unarchive', 'user', 'volume', 'web', 'web-plus', 'web-settings', 'windows', 'wordpress'];
4
+ export const NAMES = ['archive', 'arrow-back', 'arrow-diagonal-out', 'arrow-down', 'arrow-down-in', 'arrow-down-out', 'arrow-down-tray', 'arrow-left', 'arrow-right', 'arrow-right-in', 'arrow-right-out', 'arrow-up', 'arrow-up-circle', 'arrow-up-in', 'arrow-up-in-cloud', 'arrow-up-out', 'arrow-up-tray', 'arrows-four-directions', 'arrows-inward', 'arrows-loop', 'arrows-opposite', 'arrows-outward', 'backup', 'backup2', 'bar-chart-vertical', 'bar-chart-vertical-arrow-up', 'bell', 'book-email', 'boundary', 'box-diagonal-bottom-in', 'box-diagonal-top-in', 'brush', 'bug', 'calendar', 'calendar-clock', 'camera', 'card', 'card-ribbon', 'card-row', 'card-tile', 'cd', 'cd-up-in-cloud', 'chain', 'chain-broken', 'chat', 'check-list', 'check-mark', 'check-mark-circle', 'check-mark-circle-filled', 'chevron-double-down', 'chevron-double-up', 'chevron-down', 'chevron-left', 'chevron-right', 'chevron-up', 'circle-diagonal', 'clean', 'clip', 'clock', 'clone', 'cloud', 'cloud-checkmark', 'cloud-crossed', 'cloud-graph', 'code', 'connection', 'console', 'console-filled', 'copy', 'copy-indicator', 'cpu', 'crane', 'credit-cards', 'cross-mark', 'cross-mark-circle', 'cross-mark-circle-filled', 'crown-transfer', 'dashboard', 'database', 'database-box', 'database-plus', 'deploy', 'docker-filled', 'dollar', 'dollar-filled', 'dot', 'emoticon-confused', 'emoticon-dead', 'emoticon-excited', 'emoticon-happy', 'emoticon-neutral', 'emoticon-sad', 'emoticon-smile', 'enter', 'exclamation-mark-circle', 'exclamation-mark-circle-filled', 'eye', 'eye-closed', 'facebook', 'facebook-filled', 'feedback', 'filter', 'filter-check-mark', 'fire', 'flag-globe', 'floppy-disk', 'folder-closed', 'folder-key', 'folder-network', 'folder-open', 'folders-tree', 'four-squares', 'gear', 'git', 'github', 'globe', 'hard-drive', 'hard-drive-key', 'hat', 'hexagons', 'home', 'info-circle', 'info-circle-filled', 'ip-addresses', 'kebab', 'key', 'lifebuoy', 'lightbulb', 'limit', 'linux', 'list', 'list-check-mark', 'location', 'lock-closed', 'lock-closed-check', 'lock-closed-filled', 'lock-open', 'lock-open-cross', 'lock-open-filled', 'mail', 'mail-settings', 'megaphone', 'menu', 'menu-thin', 'microsoft', 'minimize', 'minus', 'minus-circle', 'minus-circle-filled', 'monitoring', 'monitoring-off', 'my-little-admin', 'net', 'nine-dots', 'node-js', 'package', 'panel', 'panel-check', 'panel-eye', 'panel-key', 'panel-settings', 'panels', 'pause-circle', 'pencil', 'pencil-dialog', 'php', 'phpmyadmin', 'pin', 'pipette', 'plans', 'plugins', 'plus', 'power', 'projects', 'puzzle', 'question-mark-circle', 'question-mark-circle-filled', 'ram', 'react-js', 'recycle', 'refresh', 'reload', 'remove', 'reset', 'resource', 'ribbon', 'rocket', 'ruby', 'sand-clock', 'scan', 'screen', 'search', 'security-check', 'send', 'servers', 'share', 'shield', 'shield-chain', 'shopping-cart', 'sidebar-right-hide', 'sidebar-right-show', 'signal-light', 'site-page', 'sleep', 'sliders', 'square-with-circles', 'star', 'star-circle-filled', 'star-filled', 'star-half-filled', 'start', 'start-circle', 'stop', 'stop-circle', 'storage', 'themes', 'three-dots-horizontal', 'three-dots-vertical', 'tools', 'transfer', 'triangle-exclamation-mark', 'triangle-exclamation-mark-filled', 'unarchive', 'user', 'volume', 'web', 'web-plus', 'web-settings', 'windows', 'wordpress'];
@@ -1,4 +1,4 @@
1
- <svg width="16" height="10944" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
1
+ <svg width="16" height="11040" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
2
  <defs>
3
3
  <symbol viewBox="0 0 12 12" id="archive:12">
4
4
  <path d="M2 1h7v.5a.5.5 0 0 0 1 0V1a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-.5a.5.5 0 0 0-1 0v.5H2V1z" />
@@ -592,6 +592,14 @@
592
592
  <path d="M11.145 2.855a.496.496 0 0 1 0-.702L13.097.202A.5.5 0 0 1 13.498 0h.004a.495.495 0 0 1 .401.202l1.952 1.951a.496.496 0 0 1-.702.702L14 1.702V10h-1V1.702l-1.153 1.153a.496.496 0 0 1-.702 0zM9.5 10a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z" />
593
593
  <path d="M2 10c0-1.477.534-2.83 1.419-3.875a.47.47 0 0 1 .692-.014c.195.195.193.51.018.724A5 5 0 1 0 13 10h1.001a6 6 0 0 1-12 0z" />
594
594
  </symbol>
595
+ <symbol viewBox="0 0 12 12" id="docker-filled:12">
596
+ <path d="M11.85 5.287c-.3-.224-.6-.3-.9-.3-.225 0-.375 0-.6.076-.075-.526-.375-.9-.75-1.2l-.15-.15-.15.15c-.225.3-.3.824-.225 1.2 0 .3.075.6.3.824-.375.226-.825.3-1.275.3H.75a.75.75 0 0 0-.75.75c.075 1.426.6 4.5 3.9 4.5 4.35 0 5.1-2.475 6.15-5.1h.15c.675 0 1.275-.225 1.65-.825l.15-.15-.15-.075zm-10.875.15h.675c.15 0 .225-.074.225-.225v-.675c0-.15-.075-.225-.225-.225H.975c-.075 0-.225.075-.225.225v.675c0 .15.15.226.225.226zm4.5-1.875h.675c.15 0 .225-.074.225-.225v-.675c0-.15-.075-.225-.225-.225h-.675c-.15 0-.225.075-.225.225v.675c0 .15.15.225.225.225z" />
597
+ <path d="M5.475 5.438h.675c.15 0 .225-.075.225-.226v-.675c0-.15-.075-.225-.225-.225h-.675c-.15 0-.225.075-.225.225v.675c0 .15.15.226.225.226zm1.5 0h.675c.15 0 .225-.075.225-.226v-.675c0-.15-.075-.225-.225-.225h-.675c-.15 0-.225.075-.225.225v.675c0 .15.075.226.225.226zm-1.5-3.75h.675c.15 0 .225-.076.225-.226V.787c0-.15-.075-.225-.225-.225h-.675c-.15 0-.225.075-.225.225v.675c0 .15.15.225.225.225zm-3 3.75h.675c.15 0 .225-.075.225-.226v-.675c0-.15-.075-.225-.225-.225h-.675c-.075 0-.225.075-.225.225v.675c0 .15.15.226.225.226zm1.5-1.876h.675c.15 0 .225-.074.225-.225v-.675c0-.15-.075-.225-.225-.225h-.675c-.15 0-.225.075-.225.225v.675c0 .15.15.225.225.225zm-1.5 0h.675c.15 0 .225-.075.225-.225v-.675c0-.15-.075-.225-.225-.225h-.675c-.075 0-.225.075-.225.225v.675c0 .15.15.225.225.225zm1.5 1.876h.675c.15 0 .225-.075.225-.226v-.675c0-.15-.075-.225-.225-.225h-.675c-.15 0-.225.075-.225.225v.675c0 .15.15.226.225.226z" />
598
+ </symbol>
599
+ <symbol viewBox="0 0 16 16" id="docker-filled:16">
600
+ <path d="M15.8 6.8c-.4-.3-.8-.4-1.2-.4-.3 0-.5 0-.8.1-.1-.7-.5-1.2-1-1.6l-.2-.2-.2.2c-.3.4-.4 1.1-.3 1.6 0 .4.1.8.4 1.1-.5.3-1.1.4-1.7.4H1a1 1 0 0 0-1 1c.1 1.9.8 6 5.2 6 5.8 0 6.8-3.3 8.2-6.8h.2c.9 0 1.7-.3 2.2-1.1l.2-.2-.2-.1zM1.3 7h.9c.2 0 .3-.1.3-.3v-.9c0-.2-.1-.3-.3-.3h-.9c-.1 0-.3.1-.3.3v.9c0 .2.2.3.3.3zM7.3 4.5h.9c.2 0 .3-.1.3-.3v-.9c0-.2-.1-.3-.3-.3h-.9c-.2 0-.3.1-.3.3v.9c0 .2.2.3.3.3z" />
601
+ <path d="M7.3 7h.9c.2 0 .3-.1.3-.3v-.9c0-.2-.1-.3-.3-.3h-.9c-.2 0-.3.1-.3.3v.9c0 .2.2.3.3.3zM9.3 7h.9c.2 0 .3-.1.3-.3v-.9c0-.2-.1-.3-.3-.3h-.9c-.2 0-.3.1-.3.3v.9c0 .2.1.3.3.3zM7.3 2h.9c.2 0 .3-.1.3-.3V.8c0-.2-.1-.3-.3-.3h-.9c-.2 0-.3.1-.3.3v.9c0 .2.2.3.3.3zM3.3 7h.9c.2 0 .3-.1.3-.3v-.9c0-.2-.1-.3-.3-.3h-.9c-.1 0-.3.1-.3.3v.9c0 .2.2.3.3.3zM5.3 4.5h.9c.2 0 .3-.1.3-.3v-.9c0-.2-.1-.3-.3-.3h-.9c-.2 0-.3.1-.3.3v.9c0 .2.2.3.3.3zM3.3 4.5h.9c.2 0 .3-.1.3-.3v-.9c0-.2-.1-.3-.3-.3h-.9c-.1 0-.3.1-.3.3v.9c0 .2.2.3.3.3zM5.3 7h.9c.2 0 .3-.1.3-.3v-.9c0-.2-.1-.3-.3-.3h-.9c-.2 0-.3.1-.3.3v.9c0 .2.2.3.3.3z" />
602
+ </symbol>
595
603
  <symbol viewBox="0 0 12 12" id="dollar-filled:12">
596
604
  <path fill-rule="evenodd" d="M12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0zM6.5 3a.5.5 0 0 0-.5.5v.53A1.5 1.5 0 0 0 6.3 7h.4a.5.5 0 0 1 0 1H5.3a.5.5 0 0 0 0 1H6v.5a.5.5 0 0 0 1 0v-.53A1.5 1.5 0 0 0 6.7 6h-.4a.5.5 0 0 1 0-1h1.4a.5.5 0 0 0 0-1H7v-.5a.5.5 0 0 0-.5-.5z" clip-rule="evenodd" />
597
605
  </symbol>
@@ -606,6 +614,12 @@
606
614
  <path fill-rule="evenodd" d="M8.5 15c3.5899 0 6.5-2.9101 6.5-6.5S12.0899 2 8.5 2 2 4.9101 2 8.5 4.9101 15 8.5 15zm0 1c4.1421 0 7.5-3.3579 7.5-7.5S12.6421 1 8.5 1 1 4.3579 1 8.5 4.3579 16 8.5 16z" clip-rule="evenodd" />
607
615
  <path d="M8 4.5a.5.5 0 0 1 1 0V5h1.5a.5.5 0 0 1 0 1H8c-.5523 0-1 .4477-1 1s.4477 1 1 1h1c1.1046 0 2 .8954 2 2s-.8954 2-2 2v.5a.5.5 0 0 1-1 0V12H6.5a.5.5 0 0 1 0-1H9c.5523 0 1-.4477 1-1s-.4477-1-1-1H8c-1.1046 0-2-.8954-2-2s.8954-2 2-2v-.5z" />
608
616
  </symbol>
617
+ <symbol viewBox="0 0 12 12" id="dot:12">
618
+ <path d="M7.5 6a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z" />
619
+ </symbol>
620
+ <symbol viewBox="0 0 16 16" id="dot:16">
621
+ <path d="M6,8a2,2 0 1,0 4,0a2,2 0 1,0 -4,0" />
622
+ </symbol>
609
623
  <symbol viewBox="0 0 12 12" id="emoticon-confused:12">
610
624
  <path fill-rule="evenodd" d="M6 11A5 5 0 106 1a5 5 0 000 10zm0 1A6 6 0 106 0a6 6 0 000 12z" clip-rule="evenodd" />
611
625
  <path d="M8.803 9a.244.244 0 00.2-.383C8.334 7.636 7.259 7 6.048 7c-1.21 0-2.285.636-2.956 1.617a.244.244 0 00.2.383h5.512zM4.75 4.75a1 1 0 11-2 0 1 1 0 012 0zM9.25 4.75a1 1 0 11-2 0 1 1 0 012 0z" />
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- // Copyright 1999-2020. Plesk International GmbH. All rights reserved.
2
+ // Copyright 1999-2021. Plesk International GmbH. All rights reserved.
3
3
  import React, { Component, cloneElement, isValidElement, Children } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import classNames from 'classnames';
@@ -83,6 +83,7 @@ class Item extends Component {
83
83
  value,
84
84
  tooltip,
85
85
  disabled,
86
+ hoverable,
86
87
  ...props
87
88
  } = this.props;
88
89
 
@@ -103,7 +104,8 @@ class Item extends Component {
103
104
  const item = /*#__PURE__*/React.createElement(Tag, _extends({
104
105
  className: classNames(baseClassName, {
105
106
  [`${baseClassName}--card`]: view === 'card',
106
- [`${baseClassName}--disabled`]: disabled
107
+ [`${baseClassName}--disabled`]: disabled,
108
+ [`${baseClassName}--hoverable`]: hoverable
107
109
  }, className)
108
110
  }, props), /*#__PURE__*/React.createElement(Media, {
109
111
  image: this.renderIcon(icon),
@@ -197,11 +199,18 @@ Item.propTypes = {
197
199
  * Whether disabled or not.
198
200
  * @since 3.15.0
199
201
  */
200
- disabled: PropTypes.bool
202
+ disabled: PropTypes.bool,
203
+
204
+ /**
205
+ * Add hover shadow and pointer cursor.
206
+ * @since 3.26.0
207
+ */
208
+ hoverable: PropTypes.bool
201
209
  };
202
210
  Item.defaultProps = {
203
211
  component: 'div',
204
212
  view: VIEW_SIMPLE,
213
+ hoverable: undefined,
205
214
  title: undefined,
206
215
  description: undefined,
207
216
  icon: undefined,
@@ -14,6 +14,7 @@ const ItemLink = ({
14
14
  baseClassName = `${CLS_PREFIX}item-link`,
15
15
  className,
16
16
  children,
17
+ hoverable,
17
18
  ...props
18
19
  }) => {
19
20
  if (props.onClick) {
@@ -42,7 +42,8 @@ class ItemList extends Component {
42
42
  baseClassName,
43
43
  selectable,
44
44
  onSelect,
45
- reorderable
45
+ reorderable,
46
+ hoverable
46
47
  } = this.props;
47
48
  const classNameList = [`${baseClassName}__item`];
48
49
  const props = {};
@@ -67,6 +68,11 @@ class ItemList extends Component {
67
68
  });
68
69
  safeInvoke(onSelect, nextValue);
69
70
  };
71
+ } // Extends hoverable behavior from the ItemList in case if its child doesn't have its own
72
+
73
+
74
+ if (item.props.hoverable === undefined) {
75
+ props.hoverable = hoverable && this.canManageHoverableState();
70
76
  }
71
77
 
72
78
  if (reorderable) {
@@ -161,18 +167,43 @@ class ItemList extends Component {
161
167
  }));
162
168
  }
163
169
 
164
- hasViewCard() {
165
- const {
166
- children
167
- } = this.props;
170
+ someChild(predicate) {
168
171
  let result = false;
169
- Children.forEach(children, child => {
170
- if (child && child.props && child.props.view === 'card') {
172
+ Children.forEach(this.props.children, child => {
173
+ if (child && predicate(child)) {
171
174
  result = true;
172
175
  }
173
176
  });
174
177
  return result;
175
178
  }
179
+ /**
180
+ * There are some states where we can't manage hoverable state
181
+ */
182
+
183
+
184
+ canManageHoverableState() {
185
+ const {
186
+ reorderable,
187
+ selectable
188
+ } = this.props;
189
+ return !reorderable && !selectable;
190
+ }
191
+
192
+ isHoverable() {
193
+ if (!this.canManageHoverableState()) {
194
+ return false;
195
+ }
196
+
197
+ return this.props.hoverable || this.hasHoverableCard();
198
+ }
199
+
200
+ hasViewCard() {
201
+ return this.someChild(child => child.props && child.props.view === 'card');
202
+ }
203
+
204
+ hasHoverableCard() {
205
+ return this.someChild(child => child.props && !!child.props.hoverable);
206
+ }
176
207
 
177
208
  renderReorderable({
178
209
  baseClassName,
@@ -231,7 +262,7 @@ class ItemList extends Component {
231
262
  } = this.props;
232
263
  return /*#__PURE__*/React.createElement("div", {
233
264
  className: classNames(this.props.baseClassName, {
234
- [`${this.props.baseClassName}--hoverable`]: hoverable && !reorderable && !selectable,
265
+ [`${this.props.baseClassName}--hoverable`]: this.isHoverable(),
235
266
  [`${this.props.baseClassName}--stretchable`]: stretchable,
236
267
  [`${this.props.baseClassName}--selectable`]: selectable,
237
268
  [`${this.props.baseClassName}--cards`]: this.hasViewCard()
@@ -39,7 +39,8 @@ Basic.args = {
39
39
  name: "star-circle-filled",
40
40
  intent: "warning"
41
41
  }),
42
- onClick: () => {}
42
+ onClick: () => {},
43
+ hoverable: true
43
44
  }, 'Content 3'), /*#__PURE__*/React.createElement(Item, {
44
45
  key: "4",
45
46
  value: "4",
@@ -51,7 +52,8 @@ Basic.args = {
51
52
  intent: "danger"
52
53
  }),
53
54
  onClick: () => {},
54
- disabled: true
55
+ disabled: true,
56
+ hoverable: true
55
57
  }, 'Content 4')]
56
58
  };
57
59
  export const Cards = Basic.bind(null);
@@ -71,4 +73,32 @@ export const Selectables = Basic.bind(null);
71
73
  Selectables.args = { ...Basic.args,
72
74
  selectable: true,
73
75
  defaultValue: '2'
76
+ };
77
+ export const HoverableItemList = Basic.bind(null);
78
+ HoverableItemList.args = { ...Basic.args,
79
+ hoverable: true,
80
+ defaultValue: '2',
81
+ children: Basic.args.children.map((child, index) => {
82
+ if (!child) {
83
+ return null;
84
+ }
85
+
86
+ return /*#__PURE__*/cloneElement(child, {
87
+ hoverable: index === 0 ? false : undefined
88
+ });
89
+ })
90
+ };
91
+ export const HoverableItems = Basic.bind(null);
92
+ HoverableItems.args = { ...Basic.args,
93
+ hoverable: false,
94
+ defaultValue: '2',
95
+ children: Basic.args.children.map((child, index) => {
96
+ if (!child) {
97
+ return null;
98
+ }
99
+
100
+ return /*#__PURE__*/cloneElement(child, {
101
+ hoverable: index % 2 === 0
102
+ });
103
+ })
74
104
  };
@@ -1,9 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- // Copyright 1999-2020. Plesk International GmbH. All rights reserved.
2
+ // Copyright 1999-2021. Plesk International GmbH. All rights reserved.
3
3
  import React, { isValidElement, Children, useContext } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import classNames from 'classnames';
6
- import Icon, { ICON_SIZE_12 } from '../Icon';
6
+ import Icon, { ICON_SIZE_16 } from '../Icon';
7
7
  import Status from '../Status';
8
8
  import { CLS_PREFIX } from '../../constants';
9
9
  import ProgressBar from '../ProgressBar';
@@ -35,39 +35,39 @@ const ProgressStep = ({
35
35
  switch (status) {
36
36
  case STATUS_NOT_STARTED:
37
37
  intent = 'inactive';
38
- icon = false;
38
+ icon = 'dot';
39
39
  break;
40
40
 
41
41
  case STATUS_RUNNING:
42
- intent = 'info';
43
- icon = false;
42
+ intent = false;
43
+ icon = 'dot';
44
44
  break;
45
45
 
46
46
  case STATUS_DONE:
47
47
  intent = 'success';
48
- icon = 'check-mark';
48
+ icon = 'check-mark-circle-filled';
49
49
  break;
50
50
 
51
51
  case STATUS_WARNING:
52
52
  intent = 'warning';
53
- icon = 'triangle-exclamation-mark';
53
+ icon = 'triangle-exclamation-mark-filled';
54
54
  break;
55
55
 
56
56
  case STATUS_ERROR:
57
57
  intent = 'danger';
58
- icon = 'exclamation-mark-circle';
58
+ icon = 'exclamation-mark-circle-filled';
59
59
  break;
60
60
 
61
61
  case STATUS_CANCELED:
62
62
  progress = 0;
63
63
  intent = 'inactive';
64
- icon = 'cross-mark';
64
+ icon = 'cross-mark-circle-filled';
65
65
  break;
66
66
  }
67
67
 
68
68
  icon = Icon.create(icon, {
69
69
  className: `${baseClassName}__icon`,
70
- size: ICON_SIZE_12,
70
+ size: ICON_SIZE_16,
71
71
  intent
72
72
  });
73
73
 
@@ -85,19 +85,21 @@ const ProgressStep = ({
85
85
  className: `${baseClassName}__media`
86
86
  }, icon), /*#__PURE__*/React.createElement("div", {
87
87
  className: `${baseClassName}__body`
88
- }, (title || statusText) && /*#__PURE__*/React.createElement("div", {
88
+ }, (title || statusText || Children.toArray(children).length > 0) && /*#__PURE__*/React.createElement("div", {
89
89
  className: `${baseClassName}__labels`
90
+ }, /*#__PURE__*/React.createElement("div", {
91
+ className: `${baseClassName}__labels-body`
90
92
  }, title && /*#__PURE__*/React.createElement("div", {
91
93
  className: `${baseClassName}__title`
92
- }, title), statusText && /*#__PURE__*/React.createElement("div", {
94
+ }, title), Children.toArray(children).length ? /*#__PURE__*/React.createElement("div", {
95
+ className: `${baseClassName}__content`
96
+ }, children) : null), statusText && /*#__PURE__*/React.createElement("div", {
93
97
  className: `${baseClassName}__status`
94
98
  }, statusText)), STATUS_RUNNING === status && /*#__PURE__*/React.createElement(ProgressBar, {
95
99
  className: `${baseClassName}__progress`,
96
100
  intent: "info",
97
101
  progress: progress
98
- }), Children.toArray(children).length ? /*#__PURE__*/React.createElement("div", {
99
- className: `${baseClassName}__content`
100
- }, children) : null));
102
+ })));
101
103
  };
102
104
 
103
105
  ProgressStep.propTypes = {
@@ -65,7 +65,11 @@ class Section extends Component {
65
65
  collapsed
66
66
  }) => ({
67
67
  collapsed: !collapsed
68
- }));
68
+ }), () => {
69
+ if (this.props.onToggle) {
70
+ this.props.onToggle(this.state.collapsed);
71
+ }
72
+ });
69
73
  });
70
74
  }
71
75
 
@@ -176,9 +180,11 @@ class Section extends Component {
176
180
  collapsed,
177
181
  onTitleChange,
178
182
  onClose,
183
+ onToggle,
179
184
  buttons,
180
185
  vertical: verticalProp,
181
186
  children,
187
+ form,
182
188
  ...props
183
189
  } = this.props;
184
190
  const vertical = verticalProp === undefined ? this.state.vertical : verticalProp;
@@ -255,6 +261,12 @@ const propTypes = {
255
261
  */
256
262
  onClose: PropTypes.func,
257
263
 
264
+ /**
265
+ * A callback executed when the section collapsing.
266
+ * @since 3.26.0
267
+ */
268
+ onToggle: PropTypes.func,
269
+
258
270
  /**
259
271
  * Array of custom section action button at the right.
260
272
  * @since 0.0.54
@@ -296,6 +308,7 @@ const defaultProps = {
296
308
  collapsed: false,
297
309
  onTitleChange: undefined,
298
310
  onClose: undefined,
311
+ onToggle: undefined,
299
312
  buttons: undefined,
300
313
  vertical: undefined,
301
314
  children: undefined,
package/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Copyright 1999-2018. Plesk International GmbH. All rights reserved.
2
2
  import svg4everybody from 'svg4everybody';
3
- const version = "3.25.7";
3
+ const version = "3.26.0";
4
4
  export * from './publicPath';
5
5
  export { version };
6
6
  export * from './utils';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plesk/ui-library",
3
- "version": "3.25.7",
3
+ "version": "3.26.0",
4
4
  "description": "Plesk UI Library",
5
5
  "main": "index.js",
6
6
  "module": "esm/index.js",