@ozen-ui/kit 0.32.2 → 0.34.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.
- package/Autocomplete/package.json +5 -0
- package/__inner__/cjs/components/Autocomplete/Autocomplete.css +46 -0
- package/__inner__/cjs/components/Autocomplete/Autocomplete.d.ts +4 -0
- package/__inner__/cjs/components/Autocomplete/Autocomplete.js +202 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteLoading/AutocompleteLoading.d.ts +6 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteLoading/AutocompleteLoading.js +23 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteLoading/index.d.ts +1 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteLoading/index.js +4 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteNoOptions/AutocompleteNoOptions.d.ts +6 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteNoOptions/AutocompleteNoOptions.js +17 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteNoOptions/index.d.ts +1 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteNoOptions/index.js +4 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteRenderRight/AutocompleteRenderRight.d.ts +10 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteRenderRight/AutocompleteRenderRight.js +26 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteRenderRight/index.d.ts +1 -0
- package/__inner__/cjs/components/Autocomplete/components/AutocompleteRenderRight/index.js +4 -0
- package/__inner__/cjs/components/Autocomplete/components/index.d.ts +3 -0
- package/__inner__/cjs/components/Autocomplete/components/index.js +6 -0
- package/__inner__/cjs/components/Autocomplete/constants.d.ts +10 -0
- package/__inner__/cjs/components/Autocomplete/constants.js +13 -0
- package/__inner__/cjs/components/Autocomplete/helper.d.ts +166 -0
- package/__inner__/cjs/components/Autocomplete/helper.js +14 -0
- package/__inner__/cjs/components/Autocomplete/index.d.ts +2 -0
- package/__inner__/cjs/components/Autocomplete/index.js +5 -0
- package/__inner__/cjs/components/Autocomplete/types.d.ts +105 -0
- package/__inner__/cjs/components/Autocomplete/types.js +2 -0
- package/__inner__/cjs/components/DataList/DataList.js +1 -1
- package/__inner__/cjs/components/DataList/components/DataListOption/DataListOption.css +10 -2
- package/__inner__/cjs/components/DataList/helpers/useDataListNavigation.js +4 -12
- package/__inner__/cjs/components/List/List.css +5 -0
- package/__inner__/cjs/components/List/List.js +2 -2
- package/__inner__/cjs/components/List/constants.d.ts +1 -0
- package/__inner__/cjs/components/List/constants.js +2 -1
- package/__inner__/cjs/components/List/types.d.ts +2 -0
- package/__inner__/cjs/components/Popover/Popover.js +8 -7
- package/__inner__/cjs/components/Popover/constants.d.ts +2 -0
- package/__inner__/cjs/components/Popover/constants.js +3 -1
- package/__inner__/cjs/components/Popover/types.d.ts +6 -0
- package/__inner__/cjs/components/Popover/types.js +2 -1
- package/__inner__/cjs/components/ThemeProvider/types.d.ts +2 -0
- package/__inner__/cjs/components/Tooltip/Tooltip.js +1 -1
- package/__inner__/cjs/hooks/useEventListener/useEventListener.js +2 -4
- package/__inner__/cjs/hooks/useHover/useHover.d.ts +2 -2
- package/__inner__/cjs/hooks/useHover/useHover.js +2 -2
- package/__inner__/cjs/hooks/useMutableRef/index.d.ts +1 -0
- package/__inner__/cjs/hooks/useMutableRef/index.js +4 -0
- package/__inner__/cjs/hooks/useMutableRef/useMutableRef.d.ts +2 -0
- package/__inner__/cjs/hooks/useMutableRef/useMutableRef.js +10 -0
- package/__inner__/cjs/locale/locale.js +21 -0
- package/__inner__/esm/components/Autocomplete/Autocomplete.css +46 -0
- package/__inner__/esm/components/Autocomplete/Autocomplete.d.ts +4 -0
- package/__inner__/esm/components/Autocomplete/Autocomplete.js +199 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteLoading/AutocompleteLoading.d.ts +6 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteLoading/AutocompleteLoading.js +18 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteLoading/index.d.ts +1 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteLoading/index.js +1 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteNoOptions/AutocompleteNoOptions.d.ts +6 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteNoOptions/AutocompleteNoOptions.js +12 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteNoOptions/index.d.ts +1 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteNoOptions/index.js +1 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteRenderRight/AutocompleteRenderRight.d.ts +10 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteRenderRight/AutocompleteRenderRight.js +22 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteRenderRight/index.d.ts +1 -0
- package/__inner__/esm/components/Autocomplete/components/AutocompleteRenderRight/index.js +1 -0
- package/__inner__/esm/components/Autocomplete/components/index.d.ts +3 -0
- package/__inner__/esm/components/Autocomplete/components/index.js +3 -0
- package/__inner__/esm/components/Autocomplete/constants.d.ts +10 -0
- package/__inner__/esm/components/Autocomplete/constants.js +10 -0
- package/__inner__/esm/components/Autocomplete/helper.d.ts +166 -0
- package/__inner__/esm/components/Autocomplete/helper.js +7 -0
- package/__inner__/esm/components/Autocomplete/index.d.ts +2 -0
- package/__inner__/esm/components/Autocomplete/index.js +2 -0
- package/__inner__/esm/components/Autocomplete/types.d.ts +105 -0
- package/__inner__/esm/components/Autocomplete/types.js +1 -0
- package/__inner__/esm/components/DataList/DataList.js +1 -1
- package/__inner__/esm/components/DataList/components/DataListOption/DataListOption.css +10 -2
- package/__inner__/esm/components/DataList/helpers/useDataListNavigation.js +5 -13
- package/__inner__/esm/components/List/List.css +5 -0
- package/__inner__/esm/components/List/List.js +3 -3
- package/__inner__/esm/components/List/constants.d.ts +1 -0
- package/__inner__/esm/components/List/constants.js +1 -0
- package/__inner__/esm/components/List/types.d.ts +2 -0
- package/__inner__/esm/components/Popover/Popover.js +9 -8
- package/__inner__/esm/components/Popover/constants.d.ts +2 -0
- package/__inner__/esm/components/Popover/constants.js +2 -0
- package/__inner__/esm/components/Popover/types.d.ts +6 -0
- package/__inner__/esm/components/Popover/types.js +1 -0
- package/__inner__/esm/components/ThemeProvider/types.d.ts +2 -0
- package/__inner__/esm/components/Tooltip/Tooltip.js +1 -1
- package/__inner__/esm/hooks/useEventListener/useEventListener.js +3 -5
- package/__inner__/esm/hooks/useHover/useHover.d.ts +2 -2
- package/__inner__/esm/hooks/useHover/useHover.js +2 -2
- package/__inner__/esm/hooks/useMutableRef/index.d.ts +1 -0
- package/__inner__/esm/hooks/useMutableRef/index.js +1 -0
- package/__inner__/esm/hooks/useMutableRef/useMutableRef.d.ts +2 -0
- package/__inner__/esm/hooks/useMutableRef/useMutableRef.js +6 -0
- package/__inner__/esm/locale/locale.js +21 -0
- package/package.json +1 -1
- package/useMutableRef/package.json +5 -0
|
@@ -131,7 +131,7 @@ var DataListRender = function (inProps, ref) {
|
|
|
131
131
|
return cloneElement(elementChild, props);
|
|
132
132
|
});
|
|
133
133
|
}, [resolvedChildren, selectedState, focused, onClick]);
|
|
134
|
-
return (React.createElement(Popover, __assign({ as: as, open: open, placement: "bottom-start", disableReturnFocus: true, disableEnforceFocus: true, offset: [0, 4], onClose: onClose, anchorRef: anchorRef, className: cnDataList('', [className]), transitionProps: {
|
|
134
|
+
return (React.createElement(Popover, __assign({ as: as, open: open, placement: "bottom-start", strategy: "absolute", disableReturnFocus: true, disableEnforceFocus: true, offset: [0, 4], onClose: onClose, anchorRef: anchorRef, className: cnDataList('', [className]), transitionProps: {
|
|
135
135
|
classNames: 'DataList-animation',
|
|
136
136
|
} }, other, { onEntered: function () {
|
|
137
137
|
onEntered();
|
|
@@ -15,11 +15,19 @@
|
|
|
15
15
|
box-shadow: inset var(--shadow-outline-focused);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
.DataListOption_disabled
|
|
18
|
+
.DataListOption_disabled,
|
|
19
|
+
.DataListOption_disabled:hover,
|
|
20
|
+
.DataListOption_disabled:active {
|
|
19
21
|
cursor: not-allowed;
|
|
22
|
+
|
|
23
|
+
background-color: unset;
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
.DataListOption_disabled .ListItemText-TextPrimary,
|
|
23
|
-
.DataListOption_disabled .ListItemText-TextSecondary
|
|
27
|
+
.DataListOption_disabled .ListItemText-TextSecondary,
|
|
28
|
+
.DataListOption_disabled:hover .ListItemText-TextPrimary,
|
|
29
|
+
.DataListOption_disabled:hover .ListItemText-TextSecondary,
|
|
30
|
+
.DataListOption_disabled:active .ListItemText-TextPrimary,
|
|
31
|
+
.DataListOption_disabled:active .ListItemText-TextSecondary {
|
|
24
32
|
color: var(--color-content-tertiary);
|
|
25
33
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __assign, __read } from "tslib";
|
|
2
|
-
import { useEffect, useState,
|
|
2
|
+
import { useEffect, useState, useCallback } from 'react';
|
|
3
|
+
import { useMutableRef } from '../../../hooks/useMutableRef';
|
|
3
4
|
import { getNextIndex } from '../../../utils/getNextIndex';
|
|
4
5
|
import { getPrevIndex } from '../../../utils/getPrevIndex';
|
|
5
6
|
import { isKey } from '../../../utils/isKey';
|
|
@@ -7,19 +8,10 @@ import { isKeys } from '../../../utils/isKeys';
|
|
|
7
8
|
/** Навигация по элементам списка без перехвата фокуса с элемента контроля */
|
|
8
9
|
export function useDataListNavigation(_a) {
|
|
9
10
|
var selected = _a.selected, onSelect = _a.onSelect, _b = _a.active, active = _b === void 0 ? false : _b, itemsProps = _a.items;
|
|
10
|
-
var savedItems =
|
|
11
|
-
var savedSelected =
|
|
12
|
-
var savedOnSelect =
|
|
11
|
+
var savedItems = useMutableRef(itemsProps);
|
|
12
|
+
var savedSelected = useMutableRef(selected);
|
|
13
|
+
var savedOnSelect = useMutableRef(onSelect);
|
|
13
14
|
var _c = __read(useState({}), 2), state = _c[0], setState = _c[1];
|
|
14
|
-
useEffect(function () {
|
|
15
|
-
savedItems.current = itemsProps;
|
|
16
|
-
}, [itemsProps]);
|
|
17
|
-
useEffect(function () {
|
|
18
|
-
savedOnSelect.current = onSelect;
|
|
19
|
-
}, [onSelect]);
|
|
20
|
-
useEffect(function () {
|
|
21
|
-
savedSelected.current = selected;
|
|
22
|
-
}, [selected]);
|
|
23
15
|
var findInItems = function (value) { var _a; return (_a = savedItems.current) === null || _a === void 0 ? void 0 : _a.find(function (item) { return item === value; }); };
|
|
24
16
|
useEffect(function () {
|
|
25
17
|
if (!active) {
|
|
@@ -4,13 +4,13 @@ import React from 'react';
|
|
|
4
4
|
import { useThemeProps } from '../../hooks/useThemeProps';
|
|
5
5
|
import { cn } from '../../utils/classname';
|
|
6
6
|
import { polymorphicComponentWithRef } from '../../utils/polymorphicComponentWithRef';
|
|
7
|
-
import { LIST_DEFAULT_SIZE, LIST_DEFAULT_TAG } from './constants';
|
|
7
|
+
import { LIST_DEFAULT_SIZE, LIST_DEFAULT_TAG, LIST_DEFAULT_DISABLE_PADDING, } from './constants';
|
|
8
8
|
import { ListContext } from './ListContext';
|
|
9
9
|
export var cnList = cn('List');
|
|
10
10
|
export var List = polymorphicComponentWithRef(function (inProps, ref) {
|
|
11
11
|
var props = useThemeProps({ props: inProps, name: 'List' });
|
|
12
|
-
var _a = props.as, Tag = _a === void 0 ? LIST_DEFAULT_TAG : _a, _b = props.size, size = _b === void 0 ? LIST_DEFAULT_SIZE : _b, children = props.children, className = props.className, other = __rest(props, ["as", "size", "children", "className"]);
|
|
12
|
+
var _a = props.as, Tag = _a === void 0 ? LIST_DEFAULT_TAG : _a, _b = props.size, size = _b === void 0 ? LIST_DEFAULT_SIZE : _b, _c = props.disablePadding, disablePadding = _c === void 0 ? LIST_DEFAULT_DISABLE_PADDING : _c, children = props.children, className = props.className, other = __rest(props, ["as", "size", "disablePadding", "children", "className"]);
|
|
13
13
|
return (React.createElement(ListContext.Provider, { value: { size: size } },
|
|
14
|
-
React.createElement(Tag, __assign({ className: cnList({ size: size }, [className]) }, other, { ref: ref }), children)));
|
|
14
|
+
React.createElement(Tag, __assign({ className: cnList({ size: size, disablePadding: disablePadding }, [className]) }, other, { ref: ref }), children)));
|
|
15
15
|
});
|
|
16
16
|
List.displayName = 'List';
|
|
@@ -11,6 +11,8 @@ export type ListBaseProps = {
|
|
|
11
11
|
children?: ReactNode;
|
|
12
12
|
/** Размер компонента */
|
|
13
13
|
size?: ListSizeVariant;
|
|
14
|
+
/** Если {true} отключает боковые отступы */
|
|
15
|
+
disablePadding?: boolean;
|
|
14
16
|
/** Идентификатор компонента для тестов */
|
|
15
17
|
'data-testid'?: string;
|
|
16
18
|
};
|
|
@@ -13,17 +13,17 @@ import { isKey } from '../../utils/isKey';
|
|
|
13
13
|
import { polymorphicComponentWithRef } from '../../utils/polymorphicComponentWithRef';
|
|
14
14
|
import { Portal } from '../Portal';
|
|
15
15
|
import { PopoverArrow } from './components';
|
|
16
|
-
import { POPOVER_DEFAULT_TAG, POPOVER_DEFAULT_ARROW, POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE, POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS, POPOVER_DEFAULT_DISABLE_INTERACTIVE, POPOVER_DEFAULT_DISABLE_RETURN_FOCUS, POPOVER_DEFAULT_OPEN, POPOVER_DEFAULT_PLACEMENT, } from './constants';
|
|
16
|
+
import { POPOVER_DEFAULT_TAG, POPOVER_DEFAULT_ARROW, POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE, POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS, POPOVER_DEFAULT_DISABLE_INTERACTIVE, POPOVER_DEFAULT_DISABLE_RETURN_FOCUS, POPOVER_DEFAULT_OPEN, POPOVER_DEFAULT_PLACEMENT, POPOVER_DEFAULT_STRATEGY, POPOVER_DEFAULT_DISABLE_PREVENT_OVERFLOW, } from './constants';
|
|
17
17
|
import { usePopoverManager } from './index';
|
|
18
18
|
import { PopoverContext } from './PopoverContext';
|
|
19
19
|
export var cnPopover = cn('Popover');
|
|
20
20
|
export var Popover = polymorphicComponentWithRef(function (inProps, ref) {
|
|
21
21
|
var props = useThemeProps({ props: inProps, name: 'Popover' });
|
|
22
|
-
var _a = props.arrow, arrow = _a === void 0 ? POPOVER_DEFAULT_ARROW : _a, _b = props.open, open = _b === void 0 ? POPOVER_DEFAULT_OPEN : _b, _c = props.disableInteractive, disableInteractive = _c === void 0 ? POPOVER_DEFAULT_DISABLE_INTERACTIVE : _c, _d = props.disableEnforceFocus, disableEnforceFocus = _d === void 0 ? POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS : _d, _e = props.disableReturnFocus, disableReturnFocus = _e === void 0 ? POPOVER_DEFAULT_DISABLE_RETURN_FOCUS : _e, _f = props.disableClickOutside, disableClickOutside = _f === void 0 ? POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE : _f, _g = props.placement, placement = _g === void 0 ? POPOVER_DEFAULT_PLACEMENT : _g, ignoreClickOutsideRefs = props.ignoreClickOutsideRefs, arrowProps = props.arrowProps, anchorRef = props.anchorRef, equalAnchorWidth = props.equalAnchorWidth, offset = props.offset, children = props.children, transitionProps = props.transitionProps, onClose = props.onClose, onEnter = props.onEnter, onEntered = props.onEntered, onExit = props.onExit, onExitedProp = props.onExited, className = props.className, position = props.position, style = props.style, setUpdate = props.setUpdate,
|
|
23
|
-
var
|
|
22
|
+
var _a = props.arrow, arrow = _a === void 0 ? POPOVER_DEFAULT_ARROW : _a, _b = props.open, open = _b === void 0 ? POPOVER_DEFAULT_OPEN : _b, _c = props.disableInteractive, disableInteractive = _c === void 0 ? POPOVER_DEFAULT_DISABLE_INTERACTIVE : _c, _d = props.disableEnforceFocus, disableEnforceFocus = _d === void 0 ? POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS : _d, _e = props.disableReturnFocus, disableReturnFocus = _e === void 0 ? POPOVER_DEFAULT_DISABLE_RETURN_FOCUS : _e, _f = props.disableClickOutside, disableClickOutside = _f === void 0 ? POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE : _f, _g = props.placement, placement = _g === void 0 ? POPOVER_DEFAULT_PLACEMENT : _g, _h = props.strategy, strategy = _h === void 0 ? POPOVER_DEFAULT_STRATEGY : _h, _j = props.disablePreventOverflow, disablePreventOverflow = _j === void 0 ? POPOVER_DEFAULT_DISABLE_PREVENT_OVERFLOW : _j, ignoreClickOutsideRefs = props.ignoreClickOutsideRefs, arrowProps = props.arrowProps, anchorRef = props.anchorRef, equalAnchorWidth = props.equalAnchorWidth, offset = props.offset, children = props.children, transitionProps = props.transitionProps, onClose = props.onClose, onEnter = props.onEnter, onEntered = props.onEntered, onExit = props.onExit, onExitedProp = props.onExited, className = props.className, position = props.position, style = props.style, setUpdate = props.setUpdate, _k = props.as, as = _k === void 0 ? POPOVER_DEFAULT_TAG : _k, other = __rest(props, ["arrow", "open", "disableInteractive", "disableEnforceFocus", "disableReturnFocus", "disableClickOutside", "placement", "strategy", "disablePreventOverflow", "ignoreClickOutsideRefs", "arrowProps", "anchorRef", "equalAnchorWidth", "offset", "children", "transitionProps", "onClose", "onEnter", "onEntered", "onExit", "onExited", "className", "position", "style", "setUpdate", "as"]);
|
|
23
|
+
var _l = __read(useState(false), 2), openState = _l[0], setOpenState = _l[1];
|
|
24
24
|
var focusedElement = useRef(null);
|
|
25
25
|
var popoverRef = useRef(null);
|
|
26
|
-
var
|
|
26
|
+
var _m = usePopoverManager(popoverRef, 1000, openState), refsClickOutside = _m.refsClickOutside, isTop = _m.isTop;
|
|
27
27
|
// Ловушка фокуса
|
|
28
28
|
var trapRef = useFocusTrap({
|
|
29
29
|
active: !disableEnforceFocus && isTop,
|
|
@@ -69,6 +69,7 @@ export var Popover = polymorphicComponentWithRef(function (inProps, ref) {
|
|
|
69
69
|
gpuAcceleration: false,
|
|
70
70
|
},
|
|
71
71
|
},
|
|
72
|
+
{ name: 'preventOverflow', enabled: disablePreventOverflow },
|
|
72
73
|
// Ширина всплывающего элемента
|
|
73
74
|
{
|
|
74
75
|
name: 'sameWidth',
|
|
@@ -116,12 +117,12 @@ export var Popover = polymorphicComponentWithRef(function (inProps, ref) {
|
|
|
116
117
|
};
|
|
117
118
|
return undefined;
|
|
118
119
|
}, [anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current, position]);
|
|
119
|
-
var
|
|
120
|
-
var
|
|
120
|
+
var _o = __read(useState(null), 2), popperElement = _o[0], setPopperElement = _o[1];
|
|
121
|
+
var _p = usePopper(resolveReferenceElement, popperElement, {
|
|
121
122
|
placement: placement,
|
|
122
|
-
strategy:
|
|
123
|
+
strategy: strategy,
|
|
123
124
|
modifiers: modifiers,
|
|
124
|
-
}), styles =
|
|
125
|
+
}), styles = _p.styles, attributes = _p.attributes, update = _p.update;
|
|
125
126
|
// Передача метода по перерасчету расположения компонента Popover в родительский компонент
|
|
126
127
|
useEffect(function () {
|
|
127
128
|
setUpdate === null || setUpdate === void 0 ? void 0 : setUpdate(update);
|
|
@@ -6,3 +6,5 @@ export declare const POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS = false;
|
|
|
6
6
|
export declare const POPOVER_DEFAULT_DISABLE_RETURN_FOCUS = false;
|
|
7
7
|
export declare const POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE = false;
|
|
8
8
|
export declare const POPOVER_DEFAULT_PLACEMENT = "auto";
|
|
9
|
+
export declare const POPOVER_DEFAULT_STRATEGY = "fixed";
|
|
10
|
+
export declare const POPOVER_DEFAULT_DISABLE_PREVENT_OVERFLOW = false;
|
|
@@ -7,3 +7,5 @@ export var POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS = false;
|
|
|
7
7
|
export var POPOVER_DEFAULT_DISABLE_RETURN_FOCUS = false;
|
|
8
8
|
export var POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE = false;
|
|
9
9
|
export var POPOVER_DEFAULT_PLACEMENT = 'auto';
|
|
10
|
+
export var POPOVER_DEFAULT_STRATEGY = 'fixed';
|
|
11
|
+
export var POPOVER_DEFAULT_DISABLE_PREVENT_OVERFLOW = false;
|
|
@@ -11,6 +11,8 @@ export type VirtualElement = {
|
|
|
11
11
|
};
|
|
12
12
|
export declare const popoverPlacementVariant: readonly ["top-start", "top-end", "bottom-start", "bottom-end", "right-start", "right-end", "left-start", "left-end", "auto", "auto-start", "auto-end", "top", "bottom", "right", "left"];
|
|
13
13
|
export type PopoverPlacementVariant = (typeof popoverPlacementVariant)[number];
|
|
14
|
+
export declare const popoverStrategyVariant: readonly ["absolute", "fixed"];
|
|
15
|
+
export type PopoverStrategyVariant = (typeof popoverStrategyVariant)[number];
|
|
14
16
|
export type PopoverBaseProps = {
|
|
15
17
|
/** Признак по которому компонент будет представлен */
|
|
16
18
|
open?: boolean;
|
|
@@ -70,6 +72,10 @@ export type PopoverBaseProps = {
|
|
|
70
72
|
setUpdate?: (update: PopperJS.Instance['update'] | null) => void;
|
|
71
73
|
/** Контейнер для монтирования всплывающего окна */
|
|
72
74
|
container?: PortalProps['container'];
|
|
75
|
+
/** Стратегия позиционирования */
|
|
76
|
+
strategy?: PopoverStrategyVariant;
|
|
77
|
+
/** Если {true} позволяет смещаться по границе якорного элемента компонента */
|
|
78
|
+
disablePreventOverflow?: boolean;
|
|
73
79
|
};
|
|
74
80
|
export type PopoverRef = ComponentRef<typeof POPOVER_DEFAULT_TAG>;
|
|
75
81
|
export type PopoverProps<As extends ElementType = typeof POPOVER_DEFAULT_TAG> = PolymorphicComponentPropsWithRef<PopoverBaseProps, As>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AccordionProps, AccordionSummaryProps } from '../Accordion';
|
|
2
2
|
import type { AlertProps } from '../Alert';
|
|
3
|
+
import type { AutocompleteProps } from '../Autocomplete';
|
|
3
4
|
import type { AvatarProps } from '../Avatar';
|
|
4
5
|
import type { BackdropProps } from '../Backdrop';
|
|
5
6
|
import type { BadgeProps } from '../Badge';
|
|
@@ -64,6 +65,7 @@ export type Theme = {
|
|
|
64
65
|
Accordion?: Partial<AccordionProps>;
|
|
65
66
|
AccordionSummary?: Partial<AccordionSummaryProps>;
|
|
66
67
|
Alert?: Partial<AlertProps>;
|
|
68
|
+
Autocomplete?: Partial<AutocompleteProps>;
|
|
67
69
|
Avatar?: Partial<AvatarProps>;
|
|
68
70
|
Backdrop?: Partial<BackdropProps>;
|
|
69
71
|
Badge?: Partial<BadgeProps>;
|
|
@@ -112,7 +112,7 @@ export var Tooltip = polymorphicComponentWithRef(function (inProps, ref) {
|
|
|
112
112
|
]);
|
|
113
113
|
return (React.createElement(React.Fragment, null,
|
|
114
114
|
React.cloneElement(resolveChildren, composeChildrenProps),
|
|
115
|
-
React.createElement(Popover, __assign({ anchorRef: anchorRef, as: as, background: variant === 'light' ? 'main' : 'main-inverse', radius: size }, other, { ref: ref, offset: offset, placement: placement, open: openState && !disabled, onClose: handleClose, className: cnTooltip({ size: size, variant: variant }, [className]), disableInteractive: disableInteractive, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, arrow: arrow, arrowProps: {
|
|
115
|
+
React.createElement(Popover, __assign({ anchorRef: anchorRef, strategy: "absolute", as: as, background: variant === 'light' ? 'main' : 'main-inverse', radius: size }, other, { ref: ref, offset: offset, placement: placement, open: openState && !disabled, onClose: handleClose, className: cnTooltip({ size: size, variant: variant }, [className]), disableInteractive: disableInteractive, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, arrow: arrow, arrowProps: {
|
|
116
116
|
size: size,
|
|
117
117
|
}, disableEnforceFocus: true, disableReturnFocus: true }), label)));
|
|
118
118
|
});
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useEffect, useCallback } from 'react';
|
|
2
|
+
import { useMutableRef } from '../../hooks/useMutableRef';
|
|
2
3
|
/** Хук добавляющий обработчики событий и удаляющий их на выходе */
|
|
3
4
|
export function useEventListener(_a) {
|
|
4
5
|
var eventName = _a.eventName, handler = _a.handler, element = _a.element, options = _a.options, _b = _a.active, active = _b === void 0 ? true : _b;
|
|
5
|
-
var savedListener =
|
|
6
|
-
useEffect(function () {
|
|
7
|
-
savedListener.current = handler;
|
|
8
|
-
}, [handler]);
|
|
6
|
+
var savedListener = useMutableRef(handler);
|
|
9
7
|
var handleEventListener = useCallback(function (event) {
|
|
10
8
|
var _a;
|
|
11
9
|
(_a = savedListener.current) === null || _a === void 0 ? void 0 : _a.call(savedListener, event);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { RefObject } from 'react';
|
|
2
2
|
export type UseHoverOptions = {
|
|
3
3
|
/** Функция обратного вызова на событие перехода курсора на целевой элемент */
|
|
4
|
-
onEnter?: (e:
|
|
4
|
+
onEnter?: (e: MouseEvent) => void;
|
|
5
5
|
/** Функция обратного вызова на событие покидания курсора с целевого элемента */
|
|
6
|
-
onLeave?: (e:
|
|
6
|
+
onLeave?: (e: MouseEvent) => void;
|
|
7
7
|
/** Признак активности обработчика события, используется для повышения производительности. */
|
|
8
8
|
active?: boolean;
|
|
9
9
|
};
|
|
@@ -20,13 +20,13 @@ options) {
|
|
|
20
20
|
useEventListener({
|
|
21
21
|
handler: handleEnter,
|
|
22
22
|
element: elRef,
|
|
23
|
-
eventName: '
|
|
23
|
+
eventName: 'mouseenter',
|
|
24
24
|
active: active,
|
|
25
25
|
});
|
|
26
26
|
useEventListener({
|
|
27
27
|
handler: handleLeave,
|
|
28
28
|
element: elRef,
|
|
29
|
-
eventName: '
|
|
29
|
+
eventName: 'mouseleave',
|
|
30
30
|
active: active,
|
|
31
31
|
});
|
|
32
32
|
return value;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useMutableRef';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useMutableRef';
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
export var ruRU = {
|
|
2
2
|
defaultProps: {
|
|
3
|
+
Autocomplete: {
|
|
4
|
+
noOptionsText: 'Ничего не найдено',
|
|
5
|
+
closeText: 'Закрыть',
|
|
6
|
+
openText: 'Открыть',
|
|
7
|
+
clearText: 'Очистить',
|
|
8
|
+
loadingText: 'Загрузка…',
|
|
9
|
+
},
|
|
3
10
|
Loader: {
|
|
4
11
|
'aria-label': 'Загрузка',
|
|
5
12
|
},
|
|
@@ -15,6 +22,13 @@ export var ruRU = {
|
|
|
15
22
|
};
|
|
16
23
|
export var kkKZ = {
|
|
17
24
|
defaultProps: {
|
|
25
|
+
Autocomplete: {
|
|
26
|
+
noOptionsText: 'Ештеңе табылған жоқ',
|
|
27
|
+
closeText: 'Жабу',
|
|
28
|
+
openText: 'Ашу',
|
|
29
|
+
clearText: 'Тазалау',
|
|
30
|
+
loadingText: 'Жүктеу…',
|
|
31
|
+
},
|
|
18
32
|
Loader: {
|
|
19
33
|
'aria-label': 'Жүктеу',
|
|
20
34
|
},
|
|
@@ -30,6 +44,13 @@ export var kkKZ = {
|
|
|
30
44
|
};
|
|
31
45
|
export var enUS = {
|
|
32
46
|
defaultProps: {
|
|
47
|
+
Autocomplete: {
|
|
48
|
+
noOptionsText: 'No options',
|
|
49
|
+
closeText: 'Close',
|
|
50
|
+
openText: 'Open',
|
|
51
|
+
clearText: 'Clear',
|
|
52
|
+
loadingText: 'Loading…',
|
|
53
|
+
},
|
|
33
54
|
Loader: {
|
|
34
55
|
'aria-label': 'Loading',
|
|
35
56
|
},
|
package/package.json
CHANGED