@plesk/ui-library 3.44.0 → 3.45.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 (175) hide show
  1. package/cjs/components/Action/Action.js +0 -6
  2. package/cjs/components/Alert/Alert.js +5 -1
  3. package/cjs/components/Button/Button.js +2 -0
  4. package/cjs/components/Carousel/Carousel.js +9 -4
  5. package/cjs/components/ComboBox/ComboBox.js +3 -0
  6. package/cjs/components/ComboBoxDropdown/ComboBoxDropdown.js +6 -2
  7. package/cjs/components/ComboBoxDropdown/index.js +6 -0
  8. package/cjs/components/Dialog/Dialog.js +3 -0
  9. package/cjs/components/Drawer/Header.js +5 -0
  10. package/cjs/components/Dropdown/Dropdown.js +3 -0
  11. package/cjs/components/Form/Form.js +3 -1
  12. package/cjs/components/FormField/FormField.js +9 -5
  13. package/cjs/components/FormFieldPassword/FormFieldPassword.js +9 -11
  14. package/cjs/components/InPlaceEdit/Editor.js +6 -7
  15. package/cjs/components/InPlaceEdit/InPlaceEdit.js +4 -4
  16. package/cjs/components/InputFile/InputFile.js +4 -4
  17. package/cjs/components/InputNumber/InputNumber.js +4 -0
  18. package/cjs/components/Layout/Layout.js +8 -0
  19. package/cjs/components/List/List.js +11 -6
  20. package/cjs/components/List/ListActions.js +5 -0
  21. package/cjs/components/LocaleProvider/LocaleProvider.js +13 -3
  22. package/cjs/components/Menu/MenuItem.js +4 -0
  23. package/cjs/components/Overlay/Overlay.js +1 -0
  24. package/cjs/components/Panel/Panel.js +3 -0
  25. package/cjs/components/Popover/Popover.js +3 -0
  26. package/cjs/components/Section/Section.js +4 -0
  27. package/cjs/components/Select/Select.js +12 -1
  28. package/cjs/components/Select/SelectControl.js +24 -7
  29. package/cjs/components/Spinner/Spinner.js +1 -0
  30. package/cjs/components/SwitchesPanelItem/SwitchesPanelItem.js +3 -0
  31. package/cjs/components/Tabs/SearchBar.js +7 -0
  32. package/cjs/components/Tabs/TabClose.js +3 -0
  33. package/cjs/components/Toast/Toast.js +3 -0
  34. package/cjs/components/Tooltip/Tooltip.js +92 -202
  35. package/cjs/components/Tooltip/TooltipContent.js +83 -0
  36. package/cjs/components/Tooltip/getA11yAttributes.js +30 -0
  37. package/cjs/components/Tooltip/useVirtualElement.js +35 -0
  38. package/cjs/components/utils.js +42 -2
  39. package/cjs/hooks/useEscapeKeydown.js +25 -0
  40. package/cjs/index.js +1 -1
  41. package/cjs/locales/ar.js +66 -4
  42. package/cjs/locales/ca-ES.js +66 -4
  43. package/cjs/locales/cs-CZ.js +66 -4
  44. package/cjs/locales/da-DK.js +66 -4
  45. package/cjs/locales/de-DE.js +66 -4
  46. package/cjs/locales/el-GR.js +66 -4
  47. package/cjs/locales/en-US.js +66 -4
  48. package/cjs/locales/es-ES.js +66 -4
  49. package/cjs/locales/fi-FI.js +66 -4
  50. package/cjs/locales/fr-FR.js +66 -4
  51. package/cjs/locales/he-IL.js +66 -4
  52. package/cjs/locales/hu-HU.js +66 -4
  53. package/cjs/locales/id-ID.js +66 -4
  54. package/cjs/locales/it-IT.js +66 -4
  55. package/cjs/locales/ja-JP.js +66 -4
  56. package/cjs/locales/ko-KR.js +66 -4
  57. package/cjs/locales/ms-MY.js +66 -4
  58. package/cjs/locales/nb-NO.js +66 -4
  59. package/cjs/locales/nl-NL.js +66 -4
  60. package/cjs/locales/pl-PL.js +66 -4
  61. package/cjs/locales/pt-BR.js +66 -4
  62. package/cjs/locales/pt-PT.js +66 -4
  63. package/cjs/locales/ro-RO.js +66 -4
  64. package/cjs/locales/ru-RU.js +66 -4
  65. package/cjs/locales/sv-SE.js +66 -4
  66. package/cjs/locales/th-TH.js +66 -4
  67. package/cjs/locales/tl-PH.js +66 -4
  68. package/cjs/locales/tr-TR.js +66 -4
  69. package/cjs/locales/uk-UA.js +66 -4
  70. package/cjs/locales/vi-VN.js +66 -4
  71. package/cjs/locales/zh-CN.js +66 -4
  72. package/cjs/locales/zh-TW.js +66 -4
  73. package/cjs/utils.js +2 -17
  74. package/dist/plesk-ui-library-rtl.css +1 -1
  75. package/dist/plesk-ui-library-rtl.css.map +1 -1
  76. package/dist/plesk-ui-library.css +1 -1
  77. package/dist/plesk-ui-library.css.map +1 -1
  78. package/dist/plesk-ui-library.js +7632 -3008
  79. package/dist/plesk-ui-library.js.map +1 -1
  80. package/dist/plesk-ui-library.min.js +6 -6
  81. package/dist/plesk-ui-library.min.js.map +1 -1
  82. package/esm/components/Action/Action.js +0 -6
  83. package/esm/components/Alert/Alert.js +5 -1
  84. package/esm/components/Button/Button.js +2 -0
  85. package/esm/components/Carousel/Carousel.js +9 -4
  86. package/esm/components/ComboBox/ComboBox.js +3 -0
  87. package/esm/components/ComboBoxDropdown/ComboBoxDropdown.js +4 -1
  88. package/esm/components/ComboBoxDropdown/index.js +1 -1
  89. package/esm/components/Dialog/Dialog.js +3 -0
  90. package/esm/components/Drawer/Header.js +5 -0
  91. package/esm/components/Dropdown/Dropdown.js +3 -0
  92. package/esm/components/Form/Form.js +3 -1
  93. package/esm/components/FormField/FormField.js +9 -5
  94. package/esm/components/FormFieldPassword/FormFieldPassword.js +9 -11
  95. package/esm/components/InPlaceEdit/Editor.js +6 -7
  96. package/esm/components/InPlaceEdit/InPlaceEdit.js +4 -4
  97. package/esm/components/InputFile/InputFile.js +4 -4
  98. package/esm/components/InputNumber/InputNumber.js +4 -0
  99. package/esm/components/Layout/Layout.js +8 -0
  100. package/esm/components/List/List.js +11 -6
  101. package/esm/components/List/ListActions.js +5 -0
  102. package/esm/components/LocaleProvider/LocaleProvider.js +11 -2
  103. package/esm/components/Menu/MenuItem.js +5 -1
  104. package/esm/components/Overlay/Overlay.js +2 -1
  105. package/esm/components/Panel/Panel.js +3 -0
  106. package/esm/components/Popover/Popover.js +3 -0
  107. package/esm/components/Section/Section.js +4 -0
  108. package/esm/components/Select/Select.js +13 -2
  109. package/esm/components/Select/SelectControl.js +24 -7
  110. package/esm/components/Spinner/Spinner.js +1 -0
  111. package/esm/components/SwitchesPanelItem/SwitchesPanelItem.js +3 -0
  112. package/esm/components/Tabs/SearchBar.js +7 -0
  113. package/esm/components/Tabs/TabClose.js +3 -0
  114. package/esm/components/Toast/Toast.js +3 -0
  115. package/esm/components/Tooltip/Tooltip.js +94 -204
  116. package/esm/components/Tooltip/TooltipContent.js +75 -0
  117. package/esm/components/Tooltip/getA11yAttributes.js +23 -0
  118. package/esm/components/Tooltip/useVirtualElement.js +28 -0
  119. package/esm/components/utils.js +37 -1
  120. package/esm/hooks/useEscapeKeydown.js +18 -0
  121. package/esm/index.js +1 -1
  122. package/esm/locales/ar.js +66 -4
  123. package/esm/locales/ca-ES.js +66 -4
  124. package/esm/locales/cs-CZ.js +66 -4
  125. package/esm/locales/da-DK.js +66 -4
  126. package/esm/locales/de-DE.js +66 -4
  127. package/esm/locales/el-GR.js +66 -4
  128. package/esm/locales/en-US.js +66 -4
  129. package/esm/locales/es-ES.js +66 -4
  130. package/esm/locales/fi-FI.js +66 -4
  131. package/esm/locales/fr-FR.js +66 -4
  132. package/esm/locales/he-IL.js +66 -4
  133. package/esm/locales/hu-HU.js +66 -4
  134. package/esm/locales/id-ID.js +66 -4
  135. package/esm/locales/it-IT.js +66 -4
  136. package/esm/locales/ja-JP.js +66 -4
  137. package/esm/locales/ko-KR.js +66 -4
  138. package/esm/locales/ms-MY.js +66 -4
  139. package/esm/locales/nb-NO.js +66 -4
  140. package/esm/locales/nl-NL.js +66 -4
  141. package/esm/locales/pl-PL.js +66 -4
  142. package/esm/locales/pt-BR.js +66 -4
  143. package/esm/locales/pt-PT.js +66 -4
  144. package/esm/locales/ro-RO.js +66 -4
  145. package/esm/locales/ru-RU.js +66 -4
  146. package/esm/locales/sv-SE.js +66 -4
  147. package/esm/locales/th-TH.js +66 -4
  148. package/esm/locales/tl-PH.js +66 -4
  149. package/esm/locales/tr-TR.js +66 -4
  150. package/esm/locales/uk-UA.js +66 -4
  151. package/esm/locales/vi-VN.js +66 -4
  152. package/esm/locales/zh-CN.js +66 -4
  153. package/esm/locales/zh-TW.js +66 -4
  154. package/esm/utils.js +0 -14
  155. package/package.json +7 -6
  156. package/styleguide/build/bundle.1771d6b7.js +2 -0
  157. package/styleguide/index.html +2 -2
  158. package/types/components/Button/Button.d.ts +6 -0
  159. package/types/components/ComboBoxDropdown/ComboBoxDropdown.d.ts +1 -0
  160. package/types/components/ComboBoxDropdown/index.d.ts +1 -1
  161. package/types/components/Dropdown/Dropdown.d.ts +5 -0
  162. package/types/components/Layout/Layout.d.ts +1 -0
  163. package/types/components/List/ListActions.d.ts +6 -1
  164. package/types/components/LocaleProvider/LocaleProvider.d.ts +3 -0
  165. package/types/components/Select/Select.d.ts +4 -0
  166. package/types/components/Select/SelectControl.d.ts +4 -0
  167. package/types/components/Tooltip/Tooltip.d.ts +15 -26
  168. package/types/components/Tooltip/TooltipContent.d.ts +11 -0
  169. package/types/components/Tooltip/getA11yAttributes.d.ts +19 -0
  170. package/types/components/Tooltip/useVirtualElement.d.ts +3 -0
  171. package/types/components/utils.d.ts +8 -1
  172. package/types/hooks/useEscapeKeydown.d.ts +1 -0
  173. package/types/utils.d.ts +0 -3
  174. package/styleguide/build/bundle.cf3363eb.js +0 -2
  175. /package/styleguide/build/{bundle.cf3363eb.js.LICENSE.txt → bundle.1771d6b7.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.44.0</title>
7
+ <title>Plesk UI Library 3.45.0</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.cf3363eb.js"></script>
29
+ <script src="build/bundle.1771d6b7.js"></script>
30
30
  </body>
31
31
  </html>
@@ -49,6 +49,12 @@ interface BaseButtonProps {
49
49
  * @since 0.0.42
50
50
  */
51
51
  tooltip?: ReactNode;
52
+ /**
53
+ * Use tooltip as an accessible label for the trigger element.
54
+ * By default, the tooltip is used as an accessible description.
55
+ * @since 3.45.0
56
+ */
57
+ tooltipAsLabel?: boolean;
52
58
  /**
53
59
  * Name of icon or [Icon](#!/Icon) component
54
60
  * @since 0.0.42
@@ -19,6 +19,7 @@ type OptionType = {
19
19
  children: ReactNode;
20
20
  };
21
21
  export declare const findNextSafeIndex: (currIndex: number, diff: number, options: OptionType[]) => number;
22
+ export declare const getOptionId: (listboxId: string, index: number) => string;
22
23
  type ComboBoxDropdownProps = {
23
24
  baseClassName?: string;
24
25
  className?: string;
@@ -1 +1 @@
1
- export { default, findNextSafeIndex } from './ComboBoxDropdown';
1
+ export { default, findNextSafeIndex, getOptionId } from './ComboBoxDropdown';
@@ -42,6 +42,11 @@ export interface DropdownProps {
42
42
  * @ignore
43
43
  */
44
44
  baseClassName?: string;
45
+ /**
46
+ * Callback fired when the dropdown is opened or closed.
47
+ * @since 3.45.0
48
+ */
49
+ onToggle?: (open: boolean) => void;
45
50
  }
46
51
  /**
47
52
  * `Dropdown` component is a [Button](#!/Button) that opens a drop-down (nested) [Menu](#!/Menu).
@@ -138,6 +138,7 @@ export default class Layout extends Component<LayoutProps, LayoutState> {
138
138
  handleToggle: () => void;
139
139
  handleResize: ({ bounds }: ContentRect) => void;
140
140
  getSidebarClosed: () => boolean;
141
+ getSidebarTogglerLabel: () => string;
141
142
  renderHeader({ header }: {
142
143
  header: ReactNode;
143
144
  }): import("react/jsx-runtime").JSX.Element | null;
@@ -21,10 +21,15 @@ export type ListActionsProps = {
21
21
  locale?: {
22
22
  close?: ReactNode;
23
23
  };
24
+ /**
25
+ * Callback fired when the dropdown menu is opened or closed.
26
+ * @since 3.45.0
27
+ */
28
+ onMenuToggle?: (open: boolean) => void;
24
29
  };
25
30
  /**
26
31
  * `ListActions` component is used for performing operations on individual objects in [List](#!/List).
27
32
  * @since 3.3.0
28
33
  */
29
- declare const ListActions: ({ baseClassName, className, children, locale, ...props }: ListActionsProps) => import("react/jsx-runtime").JSX.Element;
34
+ declare const ListActions: ({ baseClassName, className, children, locale, onMenuToggle, ...props }: ListActionsProps) => import("react/jsx-runtime").JSX.Element;
30
35
  export default ListActions;
@@ -40,5 +40,8 @@ declare class LocaleProvider extends PureComponent<LocaleProviderProps> {
40
40
  }
41
41
  export default LocaleProvider;
42
42
  export declare const useTranslate: (namespace?: string) => Translate;
43
+ type InternalTranslate = (...args: Parameters<Translate>) => string;
44
+ /** Internal function to support legacy class components */
45
+ export declare const getInternalTranslate: (namespace?: string) => InternalTranslate;
43
46
  export declare const useInternalTranslate: (namespace?: string) => Translate;
44
47
  export declare const LocaleBetaProvider: ({ messages, children }: LocaleProviderProps) => import("react/jsx-runtime").JSX.Element;
@@ -73,6 +73,10 @@ export type SelectProps = MultipleBaseProps & {
73
73
  * @since 2.3.0
74
74
  */
75
75
  placeholder?: ReactNode;
76
+ /** @ignore */
77
+ 'aria-label'?: string;
78
+ /** @ignore */
79
+ 'aria-labelledby'?: string;
76
80
  } & Omit<HTMLProps<HTMLDivElement>, 'onChange' | 'size'>;
77
81
  /**
78
82
  * `Select` component is used for making a choice among a set of related options.
@@ -22,7 +22,11 @@ type SelectControlProps = {
22
22
  onClear: () => void;
23
23
  onValueRemove: (value?: Value) => void;
24
24
  opened?: boolean;
25
+ ariaId: string;
25
26
  listboxId?: string;
27
+ 'aria-label'?: string;
28
+ 'aria-labelledby'?: string;
29
+ 'aria-activedescendant'?: string;
26
30
  };
27
31
  declare const SelectControl: import("react").ForwardRefExoticComponent<SelectControlProps & import("react").RefAttributes<HTMLDivElement>>;
28
32
  export default SelectControl;
@@ -1,4 +1,4 @@
1
- import { Component, CSSProperties, MouseEvent, ReactElement, ReactNode } from 'react';
1
+ import { CSSProperties, ReactElement, ReactNode } from 'react';
2
2
  import './Tooltip.less';
3
3
  export interface TooltipProps {
4
4
  /**
@@ -16,6 +16,19 @@ export interface TooltipProps {
16
16
  * @since 0.0.50
17
17
  */
18
18
  delay?: number;
19
+ /**
20
+ * Use tooltip as an accessible label for the trigger element.
21
+ *
22
+ * - If `true` with a `string` title, the trigger element receives `aria-label` attribute.
23
+ * - If `true` with a `node` title, the trigger element receives `aria-labelledby` attribute.
24
+ * - If `false`, the tooltip is used as an accessible description.
25
+ * @since 3.45.0
26
+ */
27
+ asLabel?: boolean;
28
+ /**
29
+ * @ignore
30
+ */
31
+ id?: string;
19
32
  /**
20
33
  * @ignore
21
34
  */
@@ -34,29 +47,5 @@ export interface TooltipProps {
34
47
  * while user hovers the pointer over the element.
35
48
  * @since 0.0.35
36
49
  */
37
- declare class Tooltip extends Component<TooltipProps> {
38
- static defaultProps: {
39
- delay: number;
40
- style: undefined;
41
- className: undefined;
42
- baseClassName: string;
43
- };
44
- state: {
45
- left: number;
46
- top: number;
47
- ready: boolean;
48
- visible: boolean;
49
- id: string;
50
- };
51
- componentWillUnmount(): void;
52
- private timer;
53
- private tooltipRef;
54
- clearTimer: () => void;
55
- handleShow: () => void;
56
- handleHide: () => void;
57
- handleMouseEnter: () => void;
58
- handleMouseMove: (e: MouseEvent) => void;
59
- renderTooltip(): import("react/jsx-runtime").JSX.Element;
60
- render(): import("react/jsx-runtime").JSX.Element;
61
- }
50
+ declare const Tooltip: ({ title, children, delay, asLabel, className, baseClassName, ...props }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
62
51
  export default Tooltip;
@@ -0,0 +1,11 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { VirtualElement } from '@floating-ui/react-dom';
3
+ type TooltipContentProps = {
4
+ title: ReactNode;
5
+ visible: boolean;
6
+ virtualElement: VirtualElement | null;
7
+ trigger: HTMLElement | null;
8
+ onEscapeKeyDown?: () => void;
9
+ } & Omit<HTMLAttributes<HTMLSpanElement>, 'title'>;
10
+ export declare const TooltipContent: ({ title, visible, virtualElement, trigger, onEscapeKeyDown, className, style, id, ...props }: TooltipContentProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ export declare const getA11yAttributes: ({ asLabel, title, ready, id, }: {
3
+ asLabel: boolean;
4
+ title: string | ReactNode;
5
+ ready: boolean;
6
+ id: string;
7
+ }) => {
8
+ 'aria-describedby': string | undefined;
9
+ 'aria-label'?: undefined;
10
+ 'aria-labelledby'?: undefined;
11
+ } | {
12
+ 'aria-label': string;
13
+ 'aria-describedby'?: undefined;
14
+ 'aria-labelledby'?: undefined;
15
+ } | {
16
+ 'aria-labelledby': string | undefined;
17
+ 'aria-describedby'?: undefined;
18
+ 'aria-label'?: undefined;
19
+ };
@@ -0,0 +1,3 @@
1
+ import { PointerEvent } from 'react';
2
+ import { VirtualElement } from '@floating-ui/react-dom';
3
+ export declare const useVirtualElement: () => readonly [VirtualElement | null, ({ clientX, clientY }: PointerEvent) => void, () => void];
@@ -1,4 +1,4 @@
1
- import { SyntheticEvent, FunctionComponent, Ref, RefObject } from 'react';
1
+ import type { FunctionComponent, KeyboardEventHandler, Ref, RefObject, SyntheticEvent } from 'react';
2
2
  type SafeInvoke = <A extends any[]>(fn: ((...args: A) => void) | undefined, ...args: A) => void;
3
3
  export declare const safeInvoke: SafeInvoke;
4
4
  type WrapFunction = <A extends any[]>(fn: ((...args: A) => void) | undefined, wrapper: ((...args: A) => void) | undefined) => (...args: A) => void;
@@ -28,4 +28,11 @@ export declare const createFocusManager: (containerRef: RefObject<HTMLElement>,
28
28
  };
29
29
  export declare const mergeRefs: <T>(...refs: Ref<T | null>[]) => (value: T | null) => void;
30
30
  export declare const normalizeSize: (value?: number | string) => string | number | undefined;
31
+ export declare const createKeyboardClickAdapter: ({ existingHandler, disabled, }?: {
32
+ existingHandler?: KeyboardEventHandler;
33
+ disabled?: boolean;
34
+ }) => KeyboardEventHandler;
35
+ export declare const setFocusReturned: (element?: HTMLElement | null, duration?: number) => void;
36
+ export declare const getFocusReturned: (element: Element) => number;
37
+ export declare const isFocusVisible: (element: Element) => boolean;
31
38
  export {};
@@ -0,0 +1 @@
1
+ export declare const useEscapeKeydown: (onEscapeKeyDown?: (event: KeyboardEvent) => void) => void;
package/types/utils.d.ts CHANGED
@@ -1,7 +1,4 @@
1
- import { type ReactNode } from 'react';
2
- import type { IconName, IconProps } from './components';
3
1
  export declare const isRtl: () => boolean;
4
2
  export declare const disableDocumentScroll: () => void;
5
3
  export declare const enableDocumentScroll: () => void;
6
4
  export declare const copyToClipboard: (value: string) => void;
7
- export declare const prepareIconName: (icon: IconName | IconProps | ReactNode, empty: boolean) => string | undefined;