@plesk/ui-library 3.40.7 → 3.40.9

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 (113) hide show
  1. package/cjs/components/Action/Action.js +1 -1
  2. package/cjs/components/Badge/Badge.js +1 -1
  3. package/cjs/components/Button/Button.js +1 -1
  4. package/cjs/components/Card/Card.js +3 -3
  5. package/cjs/components/CardList/CardListToolbar.js +1 -1
  6. package/cjs/components/CodeEditor/CodeEditor.js +1 -1
  7. package/cjs/components/ComboBox/ComboBox.js +1 -1
  8. package/cjs/components/ComboBoxDropdown/ComboBoxDropdown.js +2 -2
  9. package/cjs/components/Cuttable/Cuttable.js +59 -88
  10. package/cjs/components/Cuttable/useContentOverflow.js +35 -0
  11. package/cjs/components/Dialog/Dialog.js +2 -2
  12. package/cjs/components/Drawer/Drawer.js +1 -1
  13. package/cjs/components/Dropdown/Dropdown.js +1 -1
  14. package/cjs/components/Form/Form.js +1 -1
  15. package/cjs/components/Icon/utils.js +1 -1
  16. package/cjs/components/Item/Item.js +1 -1
  17. package/cjs/components/ItemList/ItemList.js +3 -3
  18. package/cjs/components/Layer/Layer.js +2 -2
  19. package/cjs/components/List/List.js +4 -4
  20. package/cjs/components/List/ListActions.js +2 -2
  21. package/cjs/components/LocaleProvider/LocaleProvider.js +1 -1
  22. package/cjs/components/Media/Media.js +1 -1
  23. package/cjs/components/Menu/Menu.js +1 -1
  24. package/cjs/components/Overlay/Overlay.js +1 -1
  25. package/cjs/components/Progress/Progress.js +1 -1
  26. package/cjs/components/SegmentedControl/ButtonGroupControl.js +65 -0
  27. package/cjs/components/SegmentedControl/DropdownControl.js +46 -0
  28. package/cjs/components/SegmentedControl/SegmentedControl.js +70 -265
  29. package/cjs/components/SegmentedControl/getSelectedValues.js +18 -0
  30. package/cjs/components/SegmentedControl/useResponsive.js +29 -0
  31. package/cjs/components/SegmentedControl/useSelected.js +55 -0
  32. package/cjs/components/Select/Select.js +2 -2
  33. package/cjs/components/Squeezer/Squeezer.js +10 -88
  34. package/cjs/components/Tabs/Tabs.js +1 -1
  35. package/cjs/components/Toaster/Toaster.js +1 -1
  36. package/cjs/components/Toolbar/RegistryContext.js +13 -8
  37. package/cjs/components/Toolbar/ToolbarMenu.js +2 -2
  38. package/cjs/components/Tour/Tour.js +1 -1
  39. package/cjs/components/Translate/isLikeText.js +1 -1
  40. package/cjs/hooks/index.js +7 -0
  41. package/cjs/hooks/useSqueeze.js +2 -1
  42. package/cjs/index.js +1 -1
  43. package/dist/plesk-ui-library-rtl.css +1 -1
  44. package/dist/plesk-ui-library-rtl.css.map +1 -1
  45. package/dist/plesk-ui-library.css +1 -1
  46. package/dist/plesk-ui-library.css.map +1 -1
  47. package/dist/plesk-ui-library.js +519 -500
  48. package/dist/plesk-ui-library.js.map +1 -1
  49. package/dist/plesk-ui-library.min.js +4 -4
  50. package/dist/plesk-ui-library.min.js.map +1 -1
  51. package/esm/components/Action/Action.js +1 -1
  52. package/esm/components/Badge/Badge.js +1 -1
  53. package/esm/components/Button/Button.js +1 -1
  54. package/esm/components/Card/Card.js +3 -3
  55. package/esm/components/CardList/CardListToolbar.js +1 -1
  56. package/esm/components/CodeEditor/CodeEditor.js +1 -1
  57. package/esm/components/ComboBox/ComboBox.js +1 -1
  58. package/esm/components/ComboBoxDropdown/ComboBoxDropdown.js +2 -2
  59. package/esm/components/Cuttable/Cuttable.js +60 -89
  60. package/esm/components/Cuttable/useContentOverflow.js +28 -0
  61. package/esm/components/Dialog/Dialog.js +2 -2
  62. package/esm/components/Drawer/Drawer.js +1 -1
  63. package/esm/components/Dropdown/Dropdown.js +1 -1
  64. package/esm/components/Form/Form.js +1 -1
  65. package/esm/components/Icon/utils.js +1 -1
  66. package/esm/components/Item/Item.js +1 -1
  67. package/esm/components/ItemList/ItemList.js +3 -3
  68. package/esm/components/Layer/Layer.js +2 -2
  69. package/esm/components/List/List.js +4 -4
  70. package/esm/components/List/ListActions.js +2 -2
  71. package/esm/components/LocaleProvider/LocaleProvider.js +1 -1
  72. package/esm/components/Media/Media.js +1 -1
  73. package/esm/components/Menu/Menu.js +1 -1
  74. package/esm/components/Overlay/Overlay.js +1 -1
  75. package/esm/components/Progress/Progress.js +1 -1
  76. package/esm/components/SegmentedControl/ButtonGroupControl.js +58 -0
  77. package/esm/components/SegmentedControl/DropdownControl.js +37 -0
  78. package/esm/components/SegmentedControl/SegmentedControl.js +71 -264
  79. package/esm/components/SegmentedControl/getSelectedValues.js +11 -0
  80. package/esm/components/SegmentedControl/useResponsive.js +21 -0
  81. package/esm/components/SegmentedControl/useSelected.js +48 -0
  82. package/esm/components/Select/Select.js +2 -2
  83. package/esm/components/Squeezer/Squeezer.js +11 -88
  84. package/esm/components/Tabs/Tabs.js +1 -1
  85. package/esm/components/Toaster/Toaster.js +1 -1
  86. package/esm/components/Toolbar/RegistryContext.js +13 -8
  87. package/esm/components/Toolbar/ToolbarMenu.js +2 -2
  88. package/esm/components/Tour/Tour.js +1 -1
  89. package/esm/components/Translate/isLikeText.js +1 -1
  90. package/esm/hooks/index.js +1 -0
  91. package/esm/hooks/useSqueeze.js +2 -1
  92. package/esm/index.js +1 -1
  93. package/package.json +19 -19
  94. package/styleguide/build/bundle.56f21860.js +2 -0
  95. package/styleguide/index.html +2 -2
  96. package/types/src/components/Cuttable/Cuttable.d.ts +3 -25
  97. package/types/src/components/Cuttable/useContentOverflow.d.ts +8 -0
  98. package/types/src/components/List/List.d.ts +1 -0
  99. package/types/src/components/SegmentedControl/ButtonGroupControl.d.ts +12 -0
  100. package/types/src/components/SegmentedControl/DropdownControl.d.ts +8 -0
  101. package/types/src/components/SegmentedControl/SegmentedControl.d.ts +6 -50
  102. package/types/src/components/SegmentedControl/getSelectedValues.d.ts +1 -0
  103. package/types/src/components/SegmentedControl/index.d.ts +1 -1
  104. package/types/src/components/SegmentedControl/types.d.ts +11 -0
  105. package/types/src/components/SegmentedControl/useResponsive.d.ts +6 -0
  106. package/types/src/components/SegmentedControl/useSelected.d.ts +17 -0
  107. package/types/src/components/Squeezer/Squeezer.d.ts +5 -21
  108. package/types/src/components/Toolbar/RegistryContext.d.ts +2 -2
  109. package/types/src/components/index.d.ts +1 -1
  110. package/types/src/hooks/index.d.ts +2 -0
  111. package/types/src/hooks/useSqueeze.d.ts +1 -4
  112. package/styleguide/build/bundle.52d1d9a1.js +0 -2
  113. /package/styleguide/build/{bundle.52d1d9a1.js.LICENSE.txt → bundle.56f21860.js.LICENSE.txt} +0 -0
@@ -4,7 +4,7 @@
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
7
- <title>Plesk UI Library 3.40.7</title>
7
+ <title>Plesk UI Library 3.40.9</title>
8
8
  <meta name="msapplication-TileColor" content="#da532c">
9
9
  <meta name="theme-color" content="#ffffff">
10
10
  <link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
@@ -26,6 +26,6 @@
26
26
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KWST26V"
27
27
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
28
28
  <!-- End Google Tag Manager (noscript) -->
29
- <script src="build/bundle.52d1d9a1.js"></script>
29
+ <script src="build/bundle.56f21860.js"></script>
30
30
  </body>
31
31
  </html>
@@ -1,4 +1,4 @@
1
- import { Component, ReactNode } from 'react';
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
2
  import './Cuttable.less';
3
3
  export type CuttableProps = {
4
4
  /**
@@ -32,32 +32,10 @@ export type CuttableProps = {
32
32
  * @ignore
33
33
  */
34
34
  baseClassName?: string;
35
- };
36
- type CuttableState = {
37
- collapsed?: boolean;
38
- autofit: boolean;
39
- };
35
+ } & HTMLAttributes<HTMLDivElement>;
40
36
  /**
41
37
  * `Cuttable` component is used for showing and hiding part of content.
42
38
  * @since 0.0.42
43
39
  */
44
- declare class Cuttable extends Component<CuttableProps, CuttableState> {
45
- static defaultProps: {
46
- collapsed: boolean;
47
- maxHeight: string;
48
- locale: {
49
- showMore: string;
50
- showLess: string;
51
- };
52
- baseClassName: string;
53
- };
54
- state: {
55
- collapsed: undefined;
56
- autofit: boolean;
57
- };
58
- contentRef: import("react").RefObject<HTMLDivElement>;
59
- handleToggle: () => void;
60
- handleResize: () => void;
61
- render(): import("react/jsx-runtime").JSX.Element;
62
- }
40
+ declare const Cuttable: ({ children, collapsed: externalCollapsed, maxHeight, locale, className, baseClassName, ...props }: CuttableProps) => import("react/jsx-runtime").JSX.Element;
63
41
  export default Cuttable;
@@ -0,0 +1,8 @@
1
+ import { RefObject } from 'react';
2
+ type Options = {
3
+ contentRef: RefObject<HTMLDivElement>;
4
+ hiddenElementRef: RefObject<HTMLDivElement>;
5
+ maxHeight: string;
6
+ };
7
+ export declare const useContentOverflow: ({ contentRef, hiddenElementRef, maxHeight }: Options) => boolean;
8
+ export {};
@@ -344,6 +344,7 @@ declare class List<T extends ListData> extends Component<ListProps<T>, ListState
344
344
  contextMenu?: string | undefined;
345
345
  dir?: string | undefined;
346
346
  draggable?: (boolean | "true" | "false") | undefined;
347
+ enterKeyHint?: "search" | "enter" | "send" | "done" | "go" | "next" | "previous" | undefined;
347
348
  hidden?: boolean | undefined;
348
349
  id?: string | undefined;
349
350
  lang?: string | undefined;
@@ -0,0 +1,12 @@
1
+ import { SegmentedControlButton } from './types';
2
+ interface ButtonGroupControlProps<T> {
3
+ buttons: SegmentedControlButton<T>[];
4
+ selectedValues: T[];
5
+ onClick: (value: T) => void;
6
+ ghost: boolean;
7
+ monospaced: boolean;
8
+ isResponsive: boolean;
9
+ baseClassName: string;
10
+ }
11
+ declare const ButtonGroupControl: <T>({ buttons, selectedValues, onClick, ghost, monospaced, isResponsive, baseClassName, }: ButtonGroupControlProps<T>) => import("react/jsx-runtime").JSX.Element;
12
+ export default ButtonGroupControl;
@@ -0,0 +1,8 @@
1
+ import { SegmentedControlButton } from './types';
2
+ interface DropdownControlProps<T> {
3
+ buttons: SegmentedControlButton<T>[];
4
+ selected?: T;
5
+ onClick: (value: T) => void;
6
+ }
7
+ declare const DropdownControl: <T>({ buttons, selected, onClick }: DropdownControlProps<T>) => import("react/jsx-runtime").JSX.Element;
8
+ export default DropdownControl;
@@ -1,6 +1,5 @@
1
- import { Component, CSSProperties, ReactChild, ReactNode, ContextType } from 'react';
2
- import { DataAttributes } from '../../utils/types';
3
- import ResponsiveContext from '../ResponsiveContext';
1
+ import { ReactNode } from 'react';
2
+ import { SegmentedControlButton } from './types';
4
3
  import '../../helpers/base.less';
5
4
  import './SegmentedControl.less';
6
5
  type SingleProps<T> = {
@@ -28,7 +27,7 @@ export type SegmentedControlProps<T> = {
28
27
  * Label
29
28
  * @since 0.0.68
30
29
  */
31
- label: ReactNode;
30
+ label?: ReactNode;
32
31
  /**
33
32
  * Where to place label
34
33
  * @since 0.0.68
@@ -38,15 +37,7 @@ export type SegmentedControlProps<T> = {
38
37
  * Array of buttons to display (every array item must contain an unique "value" property)
39
38
  * @since 0.0.68
40
39
  */
41
- buttons: ({
42
- value: T;
43
- title?: ReactChild;
44
- icon?: ReactNode;
45
- className?: string;
46
- style?: CSSProperties;
47
- disabled?: boolean;
48
- tooltip?: ReactNode;
49
- } & DataAttributes)[];
40
+ buttons: SegmentedControlButton<T>[];
50
41
  /**
51
42
  * Monospaced version of buttons (all button would have the same width).
52
43
  * Attention: using it with buttons dynamic update may cause to wrong behavior!
@@ -72,46 +63,11 @@ export type SegmentedControlProps<T> = {
72
63
  */
73
64
  baseClassName?: string;
74
65
  } & MultipleBaseProps<T>;
75
- export interface SegmentedControlState<T> {
76
- selected?: T | T[];
77
- prevSelected?: T | T[];
78
- monoWidth: number;
79
- compact?: boolean;
80
- }
81
66
  export declare const SEGMENTED_CONTROL_BASE_CLASS_NAME: string;
82
67
  /**
83
- * `Segmented Control` is a group of several [Buttons](#!/Button)
68
+ * `Segmented Control` is a group of several [Buttons](#!/Button)
84
69
  * each of which functions as a mutually exclusive option.
85
70
  * @since 0.0.68
86
71
  */
87
- declare class SegmentedControl<T = unknown> extends Component<SegmentedControlProps<T>, SegmentedControlState<T>> {
88
- static defaultProps: {
89
- label: null;
90
- labelPlacement: string;
91
- monospaced: boolean;
92
- multiple: boolean;
93
- onChange: null;
94
- inline: boolean;
95
- ghost: boolean;
96
- className: null;
97
- baseClassName: string;
98
- };
99
- state: SegmentedControlState<T>;
100
- static getDerivedStateFromProps<T>(props: Readonly<SegmentedControlProps<T>>, state: SegmentedControlState<T>): Partial<SegmentedControlState<T>>;
101
- componentDidMount(): void;
102
- componentDidUpdate(): void;
103
- static contextType: import("react").Context<boolean | undefined>;
104
- context: ContextType<typeof ResponsiveContext>;
105
- isCompact: boolean;
106
- rootRef: import("react").RefObject<Element>;
107
- adjustMonospaced: () => void;
108
- isResponsive(): boolean;
109
- handleChange: (value: T) => () => void;
110
- compact: () => boolean;
111
- uncompact: () => boolean;
112
- renderControl(): import("react/jsx-runtime").JSX.Element;
113
- renderDropdown(): import("react/jsx-runtime").JSX.Element;
114
- renderButtonGroup(): import("react/jsx-runtime").JSX.Element;
115
- render(): import("react/jsx-runtime").JSX.Element;
116
- }
72
+ declare const SegmentedControl: <T>({ label, labelPlacement, buttons, monospaced, multiple, selected: externalSelected, onChange, inline, ghost, className, baseClassName, ...props }: SegmentedControlProps<T>) => import("react/jsx-runtime").JSX.Element;
117
73
  export default SegmentedControl;
@@ -0,0 +1 @@
1
+ export declare const getSelectedValues: <T>(selected: T | T[] | undefined) => T[];
@@ -1,3 +1,3 @@
1
1
  export { default } from './SegmentedControl';
2
2
  export { SEGMENTED_CONTROL_BASE_CLASS_NAME } from './SegmentedControl';
3
- export type { SegmentedControlProps, SegmentedControlState } from './SegmentedControl';
3
+ export type { SegmentedControlProps } from './SegmentedControl';
@@ -0,0 +1,11 @@
1
+ import { CSSProperties, ReactChild, ReactNode } from 'react';
2
+ import { DataAttributes } from '../../utils/types';
3
+ export type SegmentedControlButton<T> = {
4
+ value: T;
5
+ title?: ReactChild;
6
+ icon?: ReactNode;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ disabled?: boolean;
10
+ tooltip?: ReactNode;
11
+ } & DataAttributes;
@@ -0,0 +1,6 @@
1
+ export declare const useResponsive: () => {
2
+ isResponsive: boolean;
3
+ isInResponsiveContext: boolean;
4
+ compact: () => boolean;
5
+ expand: () => boolean;
6
+ };
@@ -0,0 +1,17 @@
1
+ type SingleOptions<T> = {
2
+ multiple?: false;
3
+ externalSelected?: T;
4
+ onChange?: (newSelection: T) => void;
5
+ };
6
+ type MultipleOptions<T> = {
7
+ multiple: true;
8
+ externalSelected?: T[];
9
+ onChange?: (newSelection: T[]) => void;
10
+ };
11
+ type MultipleBaseOptions<T> = MultipleOptions<T> | SingleOptions<T>;
12
+ type Options<T> = MultipleBaseOptions<T>;
13
+ export declare const useSelected: <T>({ multiple, externalSelected, onChange }: Options<T>) => {
14
+ selectedValues: T[];
15
+ handleChange: (value: T) => void;
16
+ };
17
+ export {};
@@ -1,22 +1,6 @@
1
- import { Component, MutableRefObject, ReactElement } from 'react';
2
- type SqueezerProps = {
3
- children: ({ ref }: {
4
- ref: (el: Element | null) => void;
5
- }) => ReactElement;
6
- compact: () => boolean;
7
- uncompact: () => boolean;
8
- innerRef?: (el: Element) => void;
9
- innerMeasure?: (measure: () => void) => void;
10
- };
11
- declare class Squeezer extends Component<SqueezerProps> {
12
- rootRef: MutableRefObject<Element | null>;
13
- measuring: boolean;
14
- measurements: number[];
15
- minWidth: number;
16
- addMeasurement(width: number): void;
17
- measure(force?: boolean): void;
18
- check(force?: boolean): void;
19
- handleResize: () => void;
20
- render(): import("react/jsx-runtime").JSX.Element;
21
- }
1
+ /// <reference types="react" />
2
+ import { UseSqueezeOptions } from '../../hooks';
3
+ type SqueezerProps<Element extends HTMLElement> = Omit<UseSqueezeOptions<Element>, 'ref'>;
4
+ /** Render-less useSqueeze wrapper */
5
+ declare const Squeezer: import("react").ForwardRefExoticComponent<SqueezerProps<HTMLElement> & import("react").RefAttributes<HTMLElement>>;
22
6
  export default Squeezer;
@@ -8,8 +8,7 @@ declare class Registry {
8
8
  compact(): boolean;
9
9
  expand(): boolean;
10
10
  get isCompact(): boolean;
11
- get hasCompactItems(): boolean;
12
- private checkItemIsCompactOrHasCompactItems;
11
+ get isExpandable(): boolean;
13
12
  }
14
13
  declare class RegistryItem {
15
14
  private _isCompact;
@@ -20,6 +19,7 @@ declare class RegistryItem {
20
19
  compact(): void;
21
20
  expand(): void;
22
21
  get isCompact(): boolean;
22
+ get isExpandable(): boolean;
23
23
  }
24
24
  export declare const useRegistry: () => Registry;
25
25
  export declare const useRegistryItem: () => boolean[];
@@ -131,7 +131,7 @@ export { default as Section } from './Section';
131
131
  export * from './Section';
132
132
  export { default as SegmentedControl } from './SegmentedControl';
133
133
  export { SEGMENTED_CONTROL_BASE_CLASS_NAME } from './SegmentedControl';
134
- export type { SegmentedControlProps, SegmentedControlState } from './SegmentedControl';
134
+ export type { SegmentedControlProps } from './SegmentedControl';
135
135
  export { default as Spot } from './Spot';
136
136
  export type { SpotProps } from './Spot';
137
137
  export { default as SplitButton } from './SplitButton';
@@ -1 +1,3 @@
1
+ export { useResizeObserver } from './useResizeObserver';
1
2
  export { useSqueeze } from './useSqueeze';
3
+ export type { UseSqueezeOptions } from './useSqueeze';
@@ -1,10 +1,7 @@
1
1
  import { RefObject } from 'react';
2
- type UseSqueezeOptions<Element extends HTMLElement = HTMLElement> = {
2
+ export type UseSqueezeOptions<Element extends HTMLElement = HTMLElement> = {
3
3
  ref: RefObject<Element>;
4
4
  compact: () => boolean;
5
5
  expand: () => boolean;
6
- innerRef?: (el: Element) => void;
7
- innerMeasure?: (measure: () => void) => void;
8
6
  };
9
7
  export declare const useSqueeze: <Element_1 extends HTMLElement = HTMLElement>({ ref, compact, expand, }: UseSqueezeOptions<Element_1>) => void;
10
- export {};