@plesk/ui-library 3.36.1 → 3.37.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 (279) hide show
  1. package/README.md +50 -50
  2. package/cjs/components/Action/Action.js +3 -3
  3. package/cjs/components/Alert/Alert.js +5 -5
  4. package/cjs/components/AutoClosable/AutoClosable.js +3 -3
  5. package/cjs/components/AuxiliaryActions/AuxiliaryActions.js +3 -3
  6. package/cjs/components/Badge/Badge.js +3 -3
  7. package/cjs/components/Breadcrumbs/Breadcrumbs.js +4 -4
  8. package/cjs/components/Button/Button.js +4 -4
  9. package/cjs/components/ButtonGroup/ButtonGroup.js +3 -3
  10. package/cjs/components/Card/Card.js +52 -52
  11. package/cjs/components/Card/CardButton.js +2 -2
  12. package/cjs/components/Card/PreviewPanel.js +3 -3
  13. package/cjs/components/Card/images/no-image.svg +6 -6
  14. package/cjs/components/CardList/CardList.js +55 -55
  15. package/cjs/components/Carousel/Carousel.js +186 -81
  16. package/cjs/components/Checkbox/Checkbox.js +3 -3
  17. package/cjs/components/CodeEditor/CodeEditor.js +3 -3
  18. package/cjs/components/Columns/Column.js +3 -3
  19. package/cjs/components/Columns/Columns.js +3 -3
  20. package/cjs/components/ComboBox/ComboBox.js +4 -4
  21. package/cjs/components/ComboBox/ComboBoxOption.js +5 -4
  22. package/cjs/components/ConsoleOutput/ConsoleOutput.js +3 -3
  23. package/cjs/components/ContentLoader/ContentLoader.js +3 -3
  24. package/cjs/components/Cuttable/Cuttable.js +3 -3
  25. package/cjs/components/Dialog/Dialog.js +3 -3
  26. package/cjs/components/Drawer/Drawer.js +4 -4
  27. package/cjs/components/Dropdown/Dropdown.js +5 -5
  28. package/cjs/components/ExtendedStatusMessage/ExtendedStatusMessage.js +4 -4
  29. package/cjs/components/ExtendedStatusMessage/ExtendedStatusMessageActions.js +3 -3
  30. package/cjs/components/ExtendedStatusMessage/ExtendedStatusMessageDescription.js +3 -3
  31. package/cjs/components/ExtendedStatusMessage/ExtendedStatusMessageSeparator.js +3 -3
  32. package/cjs/components/ExtendedStatusMessage/ExtendedStatusMessageTitle.js +3 -3
  33. package/cjs/components/Figure/Figure.js +3 -3
  34. package/cjs/components/Form/Form.js +4 -4
  35. package/cjs/components/Form/utils.js +22 -22
  36. package/cjs/components/FormField/FormField.js +24 -24
  37. package/cjs/components/FormFieldCheckbox/FormFieldCheckbox.js +4 -4
  38. package/cjs/components/FormFieldPassword/FormFieldPassword.js +3 -3
  39. package/cjs/components/FormFieldRadioButtons/FormFieldRadioButtons.js +3 -3
  40. package/cjs/components/FormFieldSelect/FormFieldSelect.js +4 -4
  41. package/cjs/components/FormFieldText/FormFieldText.js +5 -5
  42. package/cjs/components/Grid/Grid.js +3 -3
  43. package/cjs/components/GridCol/GridCol.js +3 -3
  44. package/cjs/components/Heading/Heading.js +3 -3
  45. package/cjs/components/Hint/Hint.js +3 -3
  46. package/cjs/components/Icon/Icon.js +6 -6
  47. package/cjs/components/Icon/images/symbols.svg +1846 -1846
  48. package/cjs/components/InPlaceEdit/InPlaceEdit.js +5 -5
  49. package/cjs/components/Input/Input.js +3 -3
  50. package/cjs/components/InputFile/InputFile.js +3 -3
  51. package/cjs/components/InputNumber/InputNumber.js +3 -3
  52. package/cjs/components/Item/Item.js +4 -4
  53. package/cjs/components/ItemLink/ItemLink.js +4 -4
  54. package/cjs/components/ItemList/ItemList.js +6 -6
  55. package/cjs/components/Label/Label.js +3 -3
  56. package/cjs/components/Layer/Layer.js +2 -2
  57. package/cjs/components/Layout/Layout.js +2 -2
  58. package/cjs/components/Link/Link.js +3 -3
  59. package/cjs/components/List/List.js +4 -7
  60. package/cjs/components/List/ListAction.js +4 -4
  61. package/cjs/components/List/ListActions.js +3 -3
  62. package/cjs/components/List/ListActionsDivider.js +4 -4
  63. package/cjs/components/List/ListEmptyView.js +4 -4
  64. package/cjs/components/List/ListOperation.js +4 -4
  65. package/cjs/components/LocaleProvider/LocaleProvider.js +3 -3
  66. package/cjs/components/Markdown/Markdown.js +3 -3
  67. package/cjs/components/Media/Media.js +5 -5
  68. package/cjs/components/Media/MediaSection.js +3 -3
  69. package/cjs/components/Menu/Menu.js +9 -9
  70. package/cjs/components/Menu/MenuBaseItem.js +3 -3
  71. package/cjs/components/Menu/MenuDivider.js +3 -3
  72. package/cjs/components/Menu/MenuHeader.js +3 -3
  73. package/cjs/components/Menu/MenuItem.js +3 -3
  74. package/cjs/components/Menu/MenuSelectableItem.js +3 -3
  75. package/cjs/components/Overlay/Overlay.js +2 -2
  76. package/cjs/components/PageHeader/PageHeader.js +3 -3
  77. package/cjs/components/Pagination/Pagination.js +3 -3
  78. package/cjs/components/Panel/Panel.js +64 -101
  79. package/cjs/components/Paragraph/Paragraph.js +3 -3
  80. package/cjs/components/Plaintext/Plaintext.js +3 -3
  81. package/cjs/components/Popover/Popover.js +4 -4
  82. package/cjs/components/Popper/Popper.js +2 -2
  83. package/cjs/components/Progress/Progress.js +3 -3
  84. package/cjs/components/ProgressDialog/ProgressDialog.js +3 -3
  85. package/cjs/components/ProgressDialogStep/ProgressDialogStep.js +3 -3
  86. package/cjs/components/ProgressStep/ProgressStep.js +3 -3
  87. package/cjs/components/Radio/Radio.js +3 -3
  88. package/cjs/components/Rating/Rating.js +3 -3
  89. package/cjs/components/Rating/images/rating.svg +6 -6
  90. package/cjs/components/Section/Section.js +4 -4
  91. package/cjs/components/Section/SectionItem.js +3 -3
  92. package/cjs/components/SegmentedControl/SegmentedControl.js +4 -4
  93. package/cjs/components/Select/MultiValue.js +1 -1
  94. package/cjs/components/Select/Select.js +3 -3
  95. package/cjs/components/Select/SelectControl.js +1 -1
  96. package/cjs/components/Select/SelectOption.js +5 -4
  97. package/cjs/components/Select/SelectOptionGroup.js +3 -3
  98. package/cjs/components/Skeleton/Skeleton.js +4 -4
  99. package/cjs/components/Skeleton/SkeletonTabs.js +3 -3
  100. package/cjs/components/Skeleton/SkeletonText.js +3 -3
  101. package/cjs/components/Spinner/Spinner.js +2 -2
  102. package/cjs/components/SplitButton/SplitButton.js +5 -5
  103. package/cjs/components/Spot/Spot.js +3 -3
  104. package/cjs/components/Status/Status.js +3 -3
  105. package/cjs/components/StatusMessage/StatusMessage.js +4 -4
  106. package/cjs/components/Subnav/Subnav.js +5 -5
  107. package/cjs/components/Switch/Switch.js +4 -4
  108. package/cjs/components/SwitchesPanel/SwitchesPanel.js +3 -3
  109. package/cjs/components/SwitchesPanelItem/SwitchesPanelItem.js +4 -4
  110. package/cjs/components/Tabs/SearchBar.js +3 -3
  111. package/cjs/components/Tabs/Tab.js +7 -7
  112. package/cjs/components/Tabs/Tabs.js +6 -6
  113. package/cjs/components/Text/Text.js +3 -3
  114. package/cjs/components/TextArea/TextArea.js +3 -3
  115. package/cjs/components/Toaster/Toaster.js +37 -37
  116. package/cjs/components/Toolbar/Toolbar.js +6 -6
  117. package/cjs/components/Toolbar/ToolbarExpander.js +5 -5
  118. package/cjs/components/Toolbar/ToolbarGroup.js +4 -4
  119. package/cjs/components/Toolbar/ToolbarMenu.js +0 -1
  120. package/cjs/components/Tooltip/Tooltip.js +4 -4
  121. package/cjs/components/Tour/Tour.js +5 -5
  122. package/cjs/components/Translate/Translate.js +3 -3
  123. package/cjs/index.js +1 -1
  124. package/dist/images/no-image.svg +6 -6
  125. package/dist/images/rating.svg +6 -6
  126. package/dist/images/symbols.svg +1846 -1846
  127. package/dist/plesk-ui-library-rtl.css +1 -1
  128. package/dist/plesk-ui-library-rtl.css.map +1 -1
  129. package/dist/plesk-ui-library.css +1 -1
  130. package/dist/plesk-ui-library.css.map +1 -1
  131. package/dist/plesk-ui-library.js +11997 -11914
  132. package/dist/plesk-ui-library.js.map +1 -1
  133. package/dist/plesk-ui-library.min.js +18 -18
  134. package/dist/plesk-ui-library.min.js.map +1 -1
  135. package/esm/components/Action/Action.js +3 -3
  136. package/esm/components/Alert/Alert.js +5 -5
  137. package/esm/components/AutoClosable/AutoClosable.js +3 -3
  138. package/esm/components/AuxiliaryActions/AuxiliaryActions.js +3 -3
  139. package/esm/components/Badge/Badge.js +3 -3
  140. package/esm/components/Breadcrumbs/Breadcrumbs.js +4 -4
  141. package/esm/components/Button/Button.js +4 -4
  142. package/esm/components/ButtonGroup/ButtonGroup.js +3 -3
  143. package/esm/components/Card/Card.js +52 -52
  144. package/esm/components/Card/CardButton.js +2 -2
  145. package/esm/components/Card/PreviewPanel.js +3 -3
  146. package/esm/components/Card/images/no-image.svg +6 -6
  147. package/esm/components/CardList/CardList.js +55 -55
  148. package/esm/components/Carousel/Carousel.js +187 -82
  149. package/esm/components/Checkbox/Checkbox.js +3 -3
  150. package/esm/components/CodeEditor/CodeEditor.js +3 -3
  151. package/esm/components/Columns/Column.js +3 -3
  152. package/esm/components/Columns/Columns.js +3 -3
  153. package/esm/components/ComboBox/ComboBox.js +4 -4
  154. package/esm/components/ComboBox/ComboBoxOption.js +5 -4
  155. package/esm/components/ConsoleOutput/ConsoleOutput.js +3 -3
  156. package/esm/components/ContentLoader/ContentLoader.js +3 -3
  157. package/esm/components/Cuttable/Cuttable.js +3 -3
  158. package/esm/components/Dialog/Dialog.js +3 -3
  159. package/esm/components/Drawer/Drawer.js +4 -4
  160. package/esm/components/Dropdown/Dropdown.js +5 -5
  161. package/esm/components/ExtendedStatusMessage/ExtendedStatusMessage.js +4 -4
  162. package/esm/components/ExtendedStatusMessage/ExtendedStatusMessageActions.js +3 -3
  163. package/esm/components/ExtendedStatusMessage/ExtendedStatusMessageDescription.js +3 -3
  164. package/esm/components/ExtendedStatusMessage/ExtendedStatusMessageSeparator.js +3 -3
  165. package/esm/components/ExtendedStatusMessage/ExtendedStatusMessageTitle.js +3 -3
  166. package/esm/components/Figure/Figure.js +3 -3
  167. package/esm/components/Form/Form.js +4 -4
  168. package/esm/components/Form/utils.js +22 -22
  169. package/esm/components/FormField/FormField.js +24 -24
  170. package/esm/components/FormFieldCheckbox/FormFieldCheckbox.js +4 -4
  171. package/esm/components/FormFieldPassword/FormFieldPassword.js +3 -3
  172. package/esm/components/FormFieldRadioButtons/FormFieldRadioButtons.js +3 -3
  173. package/esm/components/FormFieldSelect/FormFieldSelect.js +4 -4
  174. package/esm/components/FormFieldText/FormFieldText.js +5 -5
  175. package/esm/components/Grid/Grid.js +3 -3
  176. package/esm/components/GridCol/GridCol.js +3 -3
  177. package/esm/components/Heading/Heading.js +3 -3
  178. package/esm/components/Hint/Hint.js +3 -3
  179. package/esm/components/Icon/Icon.js +6 -6
  180. package/esm/components/Icon/images/symbols.svg +1846 -1846
  181. package/esm/components/InPlaceEdit/InPlaceEdit.js +5 -5
  182. package/esm/components/Input/Input.js +3 -3
  183. package/esm/components/InputFile/InputFile.js +3 -3
  184. package/esm/components/InputNumber/InputNumber.js +3 -3
  185. package/esm/components/Item/Item.js +4 -4
  186. package/esm/components/ItemLink/ItemLink.js +4 -4
  187. package/esm/components/ItemList/ItemList.js +6 -6
  188. package/esm/components/Label/Label.js +3 -3
  189. package/esm/components/Layer/Layer.js +2 -2
  190. package/esm/components/Layout/Layout.js +2 -2
  191. package/esm/components/Link/Link.js +3 -3
  192. package/esm/components/List/List.js +4 -7
  193. package/esm/components/List/ListAction.js +4 -4
  194. package/esm/components/List/ListActions.js +3 -3
  195. package/esm/components/List/ListActionsDivider.js +4 -4
  196. package/esm/components/List/ListEmptyView.js +4 -4
  197. package/esm/components/List/ListOperation.js +4 -4
  198. package/esm/components/LocaleProvider/LocaleProvider.js +3 -3
  199. package/esm/components/Markdown/Markdown.js +3 -3
  200. package/esm/components/Media/Media.js +5 -5
  201. package/esm/components/Media/MediaSection.js +3 -3
  202. package/esm/components/Menu/Menu.js +9 -9
  203. package/esm/components/Menu/MenuBaseItem.js +3 -3
  204. package/esm/components/Menu/MenuDivider.js +3 -3
  205. package/esm/components/Menu/MenuHeader.js +3 -3
  206. package/esm/components/Menu/MenuItem.js +3 -3
  207. package/esm/components/Menu/MenuSelectableItem.js +3 -3
  208. package/esm/components/Overlay/Overlay.js +2 -2
  209. package/esm/components/PageHeader/PageHeader.js +3 -3
  210. package/esm/components/Pagination/Pagination.js +3 -3
  211. package/esm/components/Panel/Panel.js +65 -102
  212. package/esm/components/Paragraph/Paragraph.js +3 -3
  213. package/esm/components/Plaintext/Plaintext.js +3 -3
  214. package/esm/components/Popover/Popover.js +4 -4
  215. package/esm/components/Popper/Popper.js +2 -2
  216. package/esm/components/Progress/Progress.js +3 -3
  217. package/esm/components/ProgressDialog/ProgressDialog.js +3 -3
  218. package/esm/components/ProgressDialogStep/ProgressDialogStep.js +3 -3
  219. package/esm/components/ProgressStep/ProgressStep.js +3 -3
  220. package/esm/components/Radio/Radio.js +3 -3
  221. package/esm/components/Rating/Rating.js +3 -3
  222. package/esm/components/Rating/images/rating.svg +6 -6
  223. package/esm/components/Section/Section.js +4 -4
  224. package/esm/components/Section/SectionItem.js +3 -3
  225. package/esm/components/SegmentedControl/SegmentedControl.js +4 -4
  226. package/esm/components/Select/MultiValue.js +1 -1
  227. package/esm/components/Select/Select.js +3 -3
  228. package/esm/components/Select/SelectControl.js +1 -1
  229. package/esm/components/Select/SelectOption.js +5 -4
  230. package/esm/components/Select/SelectOptionGroup.js +3 -3
  231. package/esm/components/Skeleton/Skeleton.js +4 -4
  232. package/esm/components/Skeleton/SkeletonTabs.js +3 -3
  233. package/esm/components/Skeleton/SkeletonText.js +3 -3
  234. package/esm/components/Spinner/Spinner.js +2 -2
  235. package/esm/components/SplitButton/SplitButton.js +5 -5
  236. package/esm/components/Spot/Spot.js +3 -3
  237. package/esm/components/Status/Status.js +3 -3
  238. package/esm/components/StatusMessage/StatusMessage.js +4 -4
  239. package/esm/components/Subnav/Subnav.js +5 -5
  240. package/esm/components/Switch/Switch.js +4 -4
  241. package/esm/components/SwitchesPanel/SwitchesPanel.js +3 -3
  242. package/esm/components/SwitchesPanelItem/SwitchesPanelItem.js +4 -4
  243. package/esm/components/Tabs/SearchBar.js +3 -3
  244. package/esm/components/Tabs/Tab.js +7 -7
  245. package/esm/components/Tabs/Tabs.js +6 -6
  246. package/esm/components/Text/Text.js +3 -3
  247. package/esm/components/TextArea/TextArea.js +3 -3
  248. package/esm/components/Toaster/Toaster.js +37 -37
  249. package/esm/components/Toolbar/Toolbar.js +6 -6
  250. package/esm/components/Toolbar/ToolbarExpander.js +5 -5
  251. package/esm/components/Toolbar/ToolbarGroup.js +4 -4
  252. package/esm/components/Toolbar/ToolbarMenu.js +0 -1
  253. package/esm/components/Tooltip/Tooltip.js +4 -4
  254. package/esm/components/Tour/Tour.js +5 -5
  255. package/esm/components/Translate/Translate.js +3 -3
  256. package/esm/index.js +1 -1
  257. package/index.js +5 -5
  258. package/package.json +150 -150
  259. package/scripts/postinstall.js +9 -9
  260. package/styleguide/browserconfig.xml +9 -9
  261. package/styleguide/build/bundle.c3d05006.js +2 -0
  262. package/styleguide/images/no-image.svg +6 -6
  263. package/styleguide/images/rating.svg +6 -6
  264. package/styleguide/images/symbols.svg +1846 -1846
  265. package/styleguide/index.html +2 -2
  266. package/styleguide/placeholders/placeholder_400x200.svg +5 -5
  267. package/styleguide/placeholders/placeholder_400x400.svg +5 -5
  268. package/styleguide/placeholders/placeholder_600x400.svg +5 -5
  269. package/styleguide/safari-pinned-tab.svg +28 -28
  270. package/styleguide/site.webmanifest +19 -19
  271. package/types/src/components/Carousel/Carousel.d.ts +43 -8
  272. package/types/src/components/List/List.d.ts +0 -1
  273. package/types/src/components/Panel/Panel.d.ts +4 -21
  274. package/types/src/components/Panel/index.d.ts +1 -0
  275. package/types/src/components/Radio/Radio.d.ts +4 -6
  276. package/types/src/components/Section/Section.d.ts +1 -1
  277. package/types/src/components/index.d.ts +1 -0
  278. package/styleguide/build/bundle.ed34a3c0.js +0 -2
  279. /package/styleguide/build/{bundle.ed34a3c0.js.LICENSE.txt → bundle.c3d05006.js.LICENSE.txt} +0 -0
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  // Copyright 1999-2023. Plesk International GmbH. All rights reserved.
3
3
 
4
4
  import { isRtl } from '../../utils';
5
- import { Component, createRef } from 'react';
5
+ import { Children, Component, createRef } from 'react';
6
6
  import classNames from 'classnames';
7
7
  import Measure from 'react-measure';
8
8
  import { CLS_PREFIX } from '../../constants';
@@ -17,14 +17,14 @@ const calcWidths = node => {
17
17
  totalWidth
18
18
  };
19
19
  };
20
- /**
21
- * Carousel component is used for optimizing page space by displaying only some parts
22
- * of entire content in a cyclic view.
23
- * @since 0.0.42
20
+ /**
21
+ * Carousel component is used for optimizing page space by displaying only some parts
22
+ * of entire content in a cyclic view.
23
+ * @since 0.0.42
24
24
  */
25
25
  class Carousel extends Component {
26
- constructor(props) {
27
- super(props);
26
+ constructor() {
27
+ super(...arguments);
28
28
  _defineProperty(this, "state", {
29
29
  showControls: false,
30
30
  current: 0,
@@ -34,21 +34,145 @@ class Carousel extends Component {
34
34
  totalWidth: 0
35
35
  });
36
36
  _defineProperty(this, "speed", 500);
37
- _defineProperty(this, "playSpeed", 5000);
38
37
  _defineProperty(this, "isRtl", void 0);
39
38
  _defineProperty(this, "playTimer", null);
40
39
  _defineProperty(this, "movingCallback", null);
41
40
  _defineProperty(this, "rootRef", /*#__PURE__*/createRef());
42
41
  _defineProperty(this, "genuineRef", /*#__PURE__*/createRef());
43
- this.handlePrevClick = this.handlePrevClick.bind(this);
44
- this.handleNextClick = this.handleNextClick.bind(this);
45
- this.stop = this.stop.bind(this);
46
- this.play = this.play.bind(this);
47
- this.handleResize = this.handleResize.bind(this);
42
+ _defineProperty(this, "handlePrevClick", () => {
43
+ this.stop();
44
+ this.setCurrentSlide(this.state.current - 1);
45
+ });
46
+ _defineProperty(this, "handleNextClick", () => {
47
+ this.stop();
48
+ this.setCurrentSlide(this.state.current + 1);
49
+ });
50
+ _defineProperty(this, "play", () => {
51
+ this.playTimer = setTimeout(() => {
52
+ this.setCurrentSlide(this.state.current + 1);
53
+ this.play();
54
+ }, this.props.autoplayInterval);
55
+ });
56
+ _defineProperty(this, "stop", () => {
57
+ if (this.playTimer) {
58
+ clearTimeout(this.playTimer);
59
+ this.playTimer = null;
60
+ }
61
+ });
62
+ _defineProperty(this, "handleResize", _ref => {
63
+ let {
64
+ bounds
65
+ } = _ref;
66
+ const node = this.genuineRef.current;
67
+ if (!node) {
68
+ return;
69
+ }
70
+ const {
71
+ slideWidths,
72
+ totalWidth
73
+ } = calcWidths(node);
74
+ this.setState({
75
+ slideWidths,
76
+ totalWidth,
77
+ showControls: (bounds?.width || 0) < totalWidth
78
+ });
79
+ });
80
+ _defineProperty(this, "renderNavigationDots", () => {
81
+ const {
82
+ children,
83
+ baseClassName,
84
+ dots,
85
+ items
86
+ } = this.props;
87
+ if (!dots || !items) {
88
+ return null;
89
+ }
90
+ const {
91
+ current
92
+ } = this.state;
93
+ const childrenCount = children?.length ?? 1;
94
+ const pages = Math.ceil(childrenCount / items);
95
+ if (pages <= 1) {
96
+ return null;
97
+ }
98
+ return /*#__PURE__*/_jsx("div", {
99
+ className: `${baseClassName}__dots`,
100
+ children: Array.from({
101
+ length: pages
102
+ }).map((_, idx) => /*#__PURE__*/_jsx("div", {
103
+ role: "button",
104
+ className: classNames(`${baseClassName}__dots--dot`, current === idx ? `${baseClassName}__dots--dot-current` : null),
105
+ "aria-current": current === idx,
106
+ onClick: () => this.setCurrentSlide(idx)
107
+ // eslint-disable-next-line react/no-array-index-key
108
+ ,
109
+ children: /*#__PURE__*/_jsx(Icon, {
110
+ name: "dot-big"
111
+ })
112
+ }, idx))
113
+ });
114
+ });
115
+ _defineProperty(this, "renderNavigationArrows", () => {
116
+ const {
117
+ baseClassName,
118
+ arrows
119
+ } = this.props;
120
+ const {
121
+ showControls
122
+ } = this.state;
123
+ if (!arrows || !showControls) {
124
+ return null;
125
+ }
126
+ return /*#__PURE__*/_jsxs("div", {
127
+ className: `${baseClassName}__controls`,
128
+ children: [/*#__PURE__*/_jsx("button", {
129
+ type: "button",
130
+ "aria-label": "previous slide",
131
+ className: classNames(`${baseClassName}__control`, `${baseClassName}__control--previous`),
132
+ onClick: this.handlePrevClick,
133
+ children: /*#__PURE__*/_jsx(Icon, {
134
+ name: "chevron-left",
135
+ flipHorizontal: this.isRtl,
136
+ className: `${baseClassName}__control-icon`
137
+ })
138
+ }), /*#__PURE__*/_jsx("button", {
139
+ type: "button",
140
+ "aria-label": "next slide",
141
+ className: classNames(`${baseClassName}__control`, `${baseClassName}__control--next`),
142
+ onClick: this.handleNextClick,
143
+ children: /*#__PURE__*/_jsx(Icon, {
144
+ name: "chevron-right",
145
+ flipHorizontal: this.isRtl,
146
+ className: `${baseClassName}__control-icon`
147
+ })
148
+ })]
149
+ });
150
+ });
151
+ _defineProperty(this, "renderSliderItems", () => {
152
+ const {
153
+ children,
154
+ baseClassName,
155
+ items
156
+ } = this.props;
157
+ const childrenCount = children?.length ?? 1;
158
+ let width = '';
159
+ if (items) {
160
+ width = `calc(100% / ${Math.min(childrenCount, items)})`;
161
+ }
162
+ return Children.map(children, item => item && /*#__PURE__*/_jsx("div", {
163
+ className: `${baseClassName}__item`,
164
+ style: {
165
+ width
166
+ },
167
+ children: item
168
+ }));
169
+ });
48
170
  }
49
171
  componentDidMount() {
50
172
  this.isRtl = isRtl();
51
- this.play();
173
+ if (this.props.autoplay) {
174
+ this.play();
175
+ }
52
176
  }
53
177
  componentDidUpdate() {
54
178
  if (!this.rootRef.current || !this.genuineRef.current) {
@@ -57,6 +181,23 @@ class Carousel extends Component {
57
181
  const {
58
182
  width
59
183
  } = this.rootRef.current.getBoundingClientRect();
184
+ const {
185
+ items,
186
+ children
187
+ } = this.props;
188
+ if (items) {
189
+ const slideItems = items;
190
+ const childrenCount = children?.length ?? 1;
191
+ const totalWidth = childrenCount * (width / slideItems);
192
+ if (this.state.totalWidth !== totalWidth) {
193
+ this.setState({
194
+ slideWidths: new Array(childrenCount).fill(width),
195
+ totalWidth,
196
+ showControls: childrenCount > slideItems
197
+ });
198
+ }
199
+ return;
200
+ }
60
201
  const {
61
202
  slideWidths,
62
203
  totalWidth
@@ -75,26 +216,6 @@ class Carousel extends Component {
75
216
  clearTimeout(this.movingCallback);
76
217
  }
77
218
  }
78
- handlePrevClick() {
79
- this.stop();
80
- this.setCurrentSlide(this.state.current - 1);
81
- }
82
- handleNextClick() {
83
- this.stop();
84
- this.setCurrentSlide(this.state.current + 1);
85
- }
86
- play() {
87
- this.playTimer = setTimeout(() => {
88
- this.setCurrentSlide(this.state.current + 1);
89
- this.play();
90
- }, this.playSpeed);
91
- }
92
- stop() {
93
- if (this.playTimer) {
94
- clearTimeout(this.playTimer);
95
- this.playTimer = null;
96
- }
97
- }
98
219
  setCurrentSlide(next) {
99
220
  const {
100
221
  slideWidths,
@@ -110,6 +231,7 @@ class Carousel extends Component {
110
231
  if (current >= slideWidths.length) {
111
232
  current = 0;
112
233
  }
234
+ this.props.onSlide?.(next);
113
235
  this.setState({
114
236
  current,
115
237
  next,
@@ -122,25 +244,10 @@ class Carousel extends Component {
122
244
  });
123
245
  }, this.speed);
124
246
  }
125
- handleResize(_ref) {
126
- let {
127
- bounds
128
- } = _ref;
129
- const node = this.genuineRef.current;
130
- if (!node) {
131
- return;
132
- }
133
- const {
134
- slideWidths,
135
- totalWidth
136
- } = calcWidths(node);
137
- this.setState({
138
- slideWidths,
139
- totalWidth,
140
- showControls: (bounds?.width || 0) < totalWidth
141
- });
142
- }
143
247
  listStyle() {
248
+ const {
249
+ arrows
250
+ } = this.props;
144
251
  const {
145
252
  current,
146
253
  next,
@@ -149,7 +256,12 @@ class Carousel extends Component {
149
256
  totalWidth
150
257
  } = this.state;
151
258
  const moveTo = moving ? next : current;
152
- let x = -totalWidth + 26;
259
+ let x = -totalWidth;
260
+
261
+ // navigation arrows width
262
+ if (arrows) {
263
+ x += 26;
264
+ }
153
265
  if (moveTo < 0) {
154
266
  for (let i = moveTo; i < 0; i++) {
155
267
  x += slideWidths[i + slideWidths.length];
@@ -177,6 +289,12 @@ class Carousel extends Component {
177
289
  baseClassName,
178
290
  className,
179
291
  children,
292
+ autoplay,
293
+ autoplayInterval,
294
+ items,
295
+ onSlide,
296
+ dots,
297
+ arrows,
180
298
  ...props
181
299
  } = this.props;
182
300
  return /*#__PURE__*/_jsx(Measure, {
@@ -192,35 +310,17 @@ class Carousel extends Component {
192
310
  className: classNames(baseClassName, className),
193
311
  ...props,
194
312
  children: [/*#__PURE__*/_jsxs("div", {
195
- className: `${baseClassName}__slides`,
196
- style: showControls ? this.listStyle() : undefined,
197
- children: [showControls && children, /*#__PURE__*/_jsx("div", {
198
- className: `${baseClassName}__genuine-slides`,
199
- ref: this.genuineRef,
200
- children: children
201
- }), showControls && children]
202
- }), showControls && /*#__PURE__*/_jsxs("div", {
203
- className: `${baseClassName}__controls`,
204
- children: [/*#__PURE__*/_jsx("button", {
205
- type: "button",
206
- className: classNames(`${baseClassName}__control`, `${baseClassName}__control--previous`),
207
- onClick: this.handlePrevClick,
208
- children: /*#__PURE__*/_jsx(Icon, {
209
- name: "chevron-left",
210
- flipHorizontal: this.isRtl,
211
- className: `${baseClassName}__control-icon`
212
- })
213
- }), /*#__PURE__*/_jsx("button", {
214
- type: "button",
215
- className: classNames(`${baseClassName}__control`, `${baseClassName}__control--next`),
216
- onClick: this.handleNextClick,
217
- children: /*#__PURE__*/_jsx(Icon, {
218
- name: "chevron-right",
219
- flipHorizontal: this.isRtl,
220
- className: `${baseClassName}__control-icon`
221
- })
222
- })]
223
- })]
313
+ className: `${baseClassName}__wrap`,
314
+ children: [/*#__PURE__*/_jsxs("div", {
315
+ className: `${baseClassName}__slides`,
316
+ style: showControls ? this.listStyle() : undefined,
317
+ children: [showControls && this.renderSliderItems(), /*#__PURE__*/_jsx("div", {
318
+ className: `${baseClassName}__genuine-slides`,
319
+ ref: this.genuineRef,
320
+ children: this.renderSliderItems()
321
+ }), showControls && this.renderSliderItems()]
322
+ }), this.renderNavigationArrows()]
323
+ }), this.renderNavigationDots()]
224
324
  });
225
325
  }
226
326
  });
@@ -228,6 +328,11 @@ class Carousel extends Component {
228
328
  }
229
329
  _defineProperty(Carousel, "defaultProps", {
230
330
  children: null,
331
+ arrows: true,
332
+ dots: false,
333
+ autoplay: true,
334
+ autoplayInterval: 5000,
335
+ onSlide: null,
231
336
  className: null,
232
337
  baseClassName: `${CLS_PREFIX}carousel`
233
338
  });
@@ -5,9 +5,9 @@ import { CLS_PREFIX } from '../../constants';
5
5
  import Tooltip from '../Tooltip';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
- /**
9
- * `Checkbox` component is used for turning an option on or off and selecting or deselecting an item.
10
- * @since 0.0.55
8
+ /**
9
+ * `Checkbox` component is used for turning an option on or off and selecting or deselecting an item.
10
+ * @since 0.0.55
11
11
  */
12
12
  const Checkbox = _ref => {
13
13
  let {
@@ -7,9 +7,9 @@ import { isRtl } from '../../utils';
7
7
  import classNames from 'classnames';
8
8
  import { CLS_PREFIX } from '../../constants';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
- /**
11
- * `CodeEditor` component is used for editing text as code with proper color highlighting according to selected programming language.
12
- * @since 0.0.61
10
+ /**
11
+ * `CodeEditor` component is used for editing text as code with proper color highlighting according to selected programming language.
12
+ * @since 0.0.61
13
13
  */
14
14
  class CodeEditor extends Component {
15
15
  constructor() {
@@ -7,9 +7,9 @@ import VerticalContext from '../VerticalContext';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const normalize = value => String(Number(value)) === String(value) ? `${value}px` : value;
9
9
 
10
- /**
11
- * `Column` component is a part of [Columns](#!/Columns).
12
- * @since 2.6.0
10
+ /**
11
+ * `Column` component is a part of [Columns](#!/Columns).
12
+ * @since 2.6.0
13
13
  */
14
14
  const Column = _ref => {
15
15
  let {
@@ -6,9 +6,9 @@ import Measure from 'react-measure';
6
6
  import { CLS_PREFIX } from '../../constants';
7
7
  import VerticalContext, { VERTICAL_BREAKPOINT } from '../VerticalContext';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
- /**
10
- * `Columns` component is used for creating of multi-column layouts.
11
- * @since 2.6.0
9
+ /**
10
+ * `Columns` component is used for creating of multi-column layouts.
11
+ * @since 2.6.0
12
12
  */
13
13
  const Columns = _ref => {
14
14
  let {
@@ -36,10 +36,10 @@ const collect = function (children) {
36
36
  options
37
37
  };
38
38
  };
39
- /**
40
- * `ComboBox` component is a combination of [Select](#!/Select) and [Input](#!/Input)
41
- * which allows to either enter a value directly into the field or choose from a list of existing options.
42
- * @since 2.6.0
39
+ /**
40
+ * `ComboBox` component is a combination of [Select](#!/Select) and [Input](#!/Input)
41
+ * which allows to either enter a value directly into the field or choose from a list of existing options.
42
+ * @since 2.6.0
43
43
  */
44
44
  const ComboBox = _ref => {
45
45
  let {
@@ -1,10 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // Copyright 1999-2023. Plesk International GmbH. All rights reserved.
3
3
 
4
- /**
5
- * `ComboBoxOption` is a part of [ComboBox](#!/ComboBox) component.
6
- * @since 2.6.0
7
- */ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
+ /**
5
+ * `ComboBoxOption` is a part of [ComboBox](#!/ComboBox) component.
6
+ * @since 2.6.0
7
+ */
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
9
  const ComboBoxOption = _props => {
9
10
  // styleguidist doesn't show Props & Methods if component renders nothing
10
11
  // eslint-disable-next-line no-constant-condition
@@ -9,9 +9,9 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
9
9
  const scrollToBottom = el => {
10
10
  el.scrollTop = el.scrollHeight;
11
11
  };
12
- /**
13
- * `ConsoleOutput` component is used for showing dynamically updating data from console output.
14
- * @since 0.0.35
12
+ /**
13
+ * `ConsoleOutput` component is used for showing dynamically updating data from console output.
14
+ * @since 0.0.35
15
15
  */
16
16
  class ConsoleOutput extends PureComponent {
17
17
  constructor() {
@@ -25,9 +25,9 @@ const getLoader = loader => {
25
25
  };
26
26
  };
27
27
 
28
- /**
29
- * `ContentLoader` component is used as placeholder which indicates that the system is loading requested content.
30
- * @since 1.1.0
28
+ /**
29
+ * `ContentLoader` component is used as placeholder which indicates that the system is loading requested content.
30
+ * @since 1.1.0
31
31
  */
32
32
  const ContentLoader = _ref => {
33
33
  let {
@@ -9,9 +9,9 @@ import Translate from '../Translate';
9
9
  import Link from '../Link';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
- /**
13
- * `Cuttable` component is used for showing and hiding part of content.
14
- * @since 0.0.42
12
+ /**
13
+ * `Cuttable` component is used for showing and hiding part of content.
14
+ * @since 0.0.42
15
15
  */
16
16
  class Cuttable extends Component {
17
17
  constructor() {
@@ -15,9 +15,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
16
  const isProps = value => value && typeof value === 'object' && ! /*#__PURE__*/isValidElement(value);
17
17
 
18
- /**
19
- * `Dialog` is a modal window that asks users to make a decision or enter additional information.
20
- * @since 0.0.68
18
+ /**
19
+ * `Dialog` is a modal window that asks users to make a decision or enter additional information.
20
+ * @since 0.0.68
21
21
  */
22
22
  const Dialog = _ref => {
23
23
  let {
@@ -31,10 +31,10 @@ const defaultProps = {
31
31
  className: undefined,
32
32
  baseClassName: `${CLS_PREFIX}drawer`
33
33
  };
34
- /**
35
- * `Drawer` component is used for working with properties of an object (or system) without leaving the context of the object.
36
- * [Read more when to use Drawer](#!/Drawers%2C%20pages%2C%20popovers).
37
- * @since 0.0.65
34
+ /**
35
+ * `Drawer` component is used for working with properties of an object (or system) without leaving the context of the object.
36
+ * [Read more when to use Drawer](#!/Drawers%2C%20pages%2C%20popovers).
37
+ * @since 0.0.65
38
38
  */
39
39
  const Drawer = _ref => {
40
40
  let {
@@ -119,11 +119,11 @@ const useEnhancedMenu = (menu, _ref2) => {
119
119
  };
120
120
  };
121
121
 
122
- /**
123
- * `Dropdown` component is a [Button](#!/Button) that opens a drop-down (nested) [Menu](#!/Menu).
124
- * Use dropdown for grouping actions that are not used often or are less important than others -- in other words,
125
- * for stuff that you don't want to show users all the time, especially if you have limited screen space.
126
- * @since 0.0.57
122
+ /**
123
+ * `Dropdown` component is a [Button](#!/Button) that opens a drop-down (nested) [Menu](#!/Menu).
124
+ * Use dropdown for grouping actions that are not used often or are less important than others -- in other words,
125
+ * for stuff that you don't want to show users all the time, especially if you have limited screen space.
126
+ * @since 0.0.57
127
127
  */
128
128
  const Dropdown = _ref3 => {
129
129
  let {
@@ -5,10 +5,10 @@ import ContentLoader from '../ContentLoader';
5
5
  import { CLS_PREFIX } from '../../constants';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
- /**
9
- * `ExtendedStatusMessage` component is similar to regular [StatusMessage](#!/StatusMessage)
10
- * but it is used when the message itself is the primary content on the page.
11
- * @since 0.0.35
8
+ /**
9
+ * `ExtendedStatusMessage` component is similar to regular [StatusMessage](#!/StatusMessage)
10
+ * but it is used when the message itself is the primary content on the page.
11
+ * @since 0.0.35
12
12
  */
13
13
  const ExtendedStatusMessage = _ref => {
14
14
  let {
@@ -3,9 +3,9 @@
3
3
  import classNames from 'classnames';
4
4
  import { CLS_PREFIX } from '../../constants';
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
- /**
7
- * `ExtendedStatusMessageActions` is a part of [ExtendedStatusMessage](#!/ExtendedStatusMessage) component.
8
- * @since 0.0.35
6
+ /**
7
+ * `ExtendedStatusMessageActions` is a part of [ExtendedStatusMessage](#!/ExtendedStatusMessage) component.
8
+ * @since 0.0.35
9
9
  */
10
10
 
11
11
  const ExtendedStatusMessageActions = _ref => {
@@ -3,9 +3,9 @@
3
3
  import classNames from 'classnames';
4
4
  import { CLS_PREFIX } from '../../constants';
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
- /**
7
- * `ExtendedStatusMessageDescription` is a part of [ExtendedStatusMessage](#!/ExtendedStatusMessage) component.
8
- * @since 0.0.35
6
+ /**
7
+ * `ExtendedStatusMessageDescription` is a part of [ExtendedStatusMessage](#!/ExtendedStatusMessage) component.
8
+ * @since 0.0.35
9
9
  */
10
10
 
11
11
  const ExtendedStatusMessageDescription = _ref => {
@@ -2,9 +2,9 @@
2
2
 
3
3
  import classNames from 'classnames';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- /**
6
- * `ExtendedStatusMessageSeparator` is a part of [ExtendedStatusMessage](#!/ExtendedStatusMessage) component.
7
- * @since 0.0.35
5
+ /**
6
+ * `ExtendedStatusMessageSeparator` is a part of [ExtendedStatusMessage](#!/ExtendedStatusMessage) component.
7
+ * @since 0.0.35
8
8
  */
9
9
 
10
10
  const ExtendedStatusMessageSeparator = _ref => {
@@ -4,9 +4,9 @@ import classNames from 'classnames';
4
4
  import { CLS_PREFIX } from '../../constants';
5
5
  import Heading from '../Heading';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
- /**
8
- * `ExtendedStatusMessageTitle` is a part of [ExtendedStatusMessage](#!/ExtendedStatusMessage) component.
9
- * @since 0.0.35
7
+ /**
8
+ * `ExtendedStatusMessageTitle` is a part of [ExtendedStatusMessage](#!/ExtendedStatusMessage) component.
9
+ * @since 0.0.35
10
10
  */
11
11
 
12
12
  const ExtendedStatusMessageTitle = _ref => {
@@ -4,9 +4,9 @@ import classNames from 'classnames';
4
4
  import { CLS_PREFIX } from '../../constants';
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  import { jsxs as _jsxs } from "react/jsx-runtime";
7
- /**
8
- * Figure component.
9
- * @since 0.0.42
7
+ /**
8
+ * Figure component.
9
+ * @since 0.0.42
10
10
  */
11
11
  const Figure = _ref => {
12
12
  let {
@@ -405,9 +405,9 @@ const RefForwardingForm = /*#__PURE__*/forwardRef((props, ref) => {
405
405
  });
406
406
  });
407
407
  RefForwardingForm.displayName = 'Form';
408
- /**
409
- * `Form` component is used for entering and submitting of user data.
410
- * [More details about designing of forms.](#!/Good%20Forms)
411
- * @since 0.0.54
408
+ /**
409
+ * `Form` component is used for entering and submitting of user data.
410
+ * [More details about designing of forms.](#!/Good%20Forms)
411
+ * @since 0.0.54
412
412
  */
413
413
  export default RefForwardingForm;