@ozen-ui/kit 0.72.1 → 0.74.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 (119) hide show
  1. package/__inner__/cjs/components/Autocomplete/helper.d.ts +1 -1
  2. package/__inner__/cjs/components/AutocompleteBase/hooks/useAutocompleteBaseInputEvents/useAutocompleteBaseInputEvents.js +13 -0
  3. package/__inner__/cjs/components/AutocompleteBase/modules/AutocompleteBaseDropdown/constants.d.ts +1 -1
  4. package/__inner__/cjs/components/AutocompleteBase/modules/AutocompleteBaseInput/AutocompleteBaseInput.css +11 -14
  5. package/__inner__/cjs/components/AutocompleteBase/modules/AutocompleteBaseInput/components/AutocompleteBaseInputMultiple/AutocompleteBaseInputMultiple.js +4 -5
  6. package/__inner__/cjs/components/AutocompleteNext/Autocomplete.js +14 -0
  7. package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js +1 -1
  8. package/__inner__/cjs/components/AutocompleteNext/types.d.ts +7 -6
  9. package/__inner__/cjs/components/Card/types.d.ts +2 -1
  10. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +5 -1
  11. package/__inner__/cjs/components/DatePicker/types.d.ts +1 -1
  12. package/__inner__/cjs/components/Grid/Grid.d.ts +2 -1
  13. package/__inner__/cjs/components/Grid/GridItem.d.ts +2 -1
  14. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/b-business-dark/color-b-business-dark.css +1 -1
  15. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/b-business-default/color-b-business-default.css +1 -1
  16. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/ozen-dark/color-ozen-dark.css +1 -1
  17. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/ozen-default/color-ozen-default.css +1 -1
  18. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/vip-dark/color-vip-dark.css +1 -1
  19. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/vip-default/color-vip-default.css +1 -1
  20. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/shadow/ozen-default/shadow-ozen-default.css +1 -1
  21. package/__inner__/cjs/components/Popover/types.d.ts +1 -1
  22. package/__inner__/cjs/components/SectionMessage/SectionMessage.css +6 -0
  23. package/__inner__/cjs/components/SectionMessage/SectionMessage.js +8 -5
  24. package/__inner__/cjs/components/SectionMessage/config.d.ts +2 -3
  25. package/__inner__/cjs/components/SectionMessage/config.js +6 -22
  26. package/__inner__/cjs/components/SectionMessage/constants.d.ts +3 -0
  27. package/__inner__/cjs/components/SectionMessage/constants.js +7 -1
  28. package/__inner__/cjs/components/SectionMessage/types.d.ts +6 -1
  29. package/__inner__/cjs/components/SectionMessage/types.js +1 -0
  30. package/__inner__/cjs/components/Table/Table.css +8 -0
  31. package/__inner__/cjs/components/Table/Table.js +2 -2
  32. package/__inner__/cjs/components/Table/components/TableBody/TableBody.js +2 -1
  33. package/__inner__/cjs/components/Table/components/TableContainer/types.d.ts +2 -1
  34. package/__inner__/cjs/components/Table/components/TableFoot/TableFoot.js +2 -1
  35. package/__inner__/cjs/components/Table/components/TableHead/TableHead.js +2 -1
  36. package/__inner__/cjs/components/Table/index.d.ts +1 -0
  37. package/__inner__/cjs/components/Table/index.js +1 -0
  38. package/__inner__/cjs/components/Table/types.d.ts +4 -0
  39. package/__inner__/cjs/components/Table/types.js +2 -1
  40. package/__inner__/cjs/components/TagNext/index.d.ts +1 -0
  41. package/__inner__/cjs/components/TagNext/index.js +1 -0
  42. package/__inner__/cjs/hooks/useBreakpointsNext/useBreakpoints.d.ts +1 -1
  43. package/__inner__/cjs/hooks/useIntersectionObserver/index.d.ts +2 -0
  44. package/__inner__/cjs/hooks/useIntersectionObserver/index.js +5 -0
  45. package/__inner__/cjs/hooks/useIntersectionObserver/types.d.ts +29 -0
  46. package/__inner__/cjs/hooks/useIntersectionObserver/types.js +2 -0
  47. package/__inner__/cjs/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +6 -0
  48. package/__inner__/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +79 -0
  49. package/__inner__/cjs/types/index.d.ts +10 -0
  50. package/__inner__/cjs/types/index.js +13 -0
  51. package/__inner__/cjs/types/object/withRequired.d.ts +1 -3
  52. package/__inner__/cjs/utils/index.d.ts +30 -0
  53. package/__inner__/cjs/utils/index.js +33 -0
  54. package/__inner__/cjs/utils/react/extractRef.d.ts +2 -0
  55. package/__inner__/cjs/utils/react/extractRef.js +11 -0
  56. package/__inner__/cjs/utils/react/index.d.ts +1 -0
  57. package/__inner__/cjs/utils/react/index.js +1 -0
  58. package/__inner__/esm/components/Autocomplete/helper.d.ts +1 -1
  59. package/__inner__/esm/components/AutocompleteBase/hooks/useAutocompleteBaseInputEvents/useAutocompleteBaseInputEvents.js +13 -0
  60. package/__inner__/esm/components/AutocompleteBase/modules/AutocompleteBaseDropdown/constants.d.ts +1 -1
  61. package/__inner__/esm/components/AutocompleteBase/modules/AutocompleteBaseInput/AutocompleteBaseInput.css +11 -14
  62. package/__inner__/esm/components/AutocompleteBase/modules/AutocompleteBaseInput/components/AutocompleteBaseInputMultiple/AutocompleteBaseInputMultiple.js +4 -5
  63. package/__inner__/esm/components/AutocompleteNext/Autocomplete.js +14 -0
  64. package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js +1 -1
  65. package/__inner__/esm/components/AutocompleteNext/types.d.ts +7 -6
  66. package/__inner__/esm/components/Card/types.d.ts +2 -1
  67. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +5 -1
  68. package/__inner__/esm/components/DatePicker/types.d.ts +1 -1
  69. package/__inner__/esm/components/Grid/Grid.d.ts +2 -1
  70. package/__inner__/esm/components/Grid/GridItem.d.ts +2 -1
  71. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/b-business-dark/color-b-business-dark.css +1 -1
  72. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/b-business-default/color-b-business-default.css +1 -1
  73. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/ozen-dark/color-ozen-dark.css +1 -1
  74. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/ozen-default/color-ozen-default.css +1 -1
  75. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/vip-dark/color-vip-dark.css +1 -1
  76. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/vip-default/color-vip-default.css +1 -1
  77. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/shadow/ozen-default/shadow-ozen-default.css +1 -1
  78. package/__inner__/esm/components/Popover/types.d.ts +1 -1
  79. package/__inner__/esm/components/SectionMessage/SectionMessage.css +6 -0
  80. package/__inner__/esm/components/SectionMessage/SectionMessage.js +8 -5
  81. package/__inner__/esm/components/SectionMessage/config.d.ts +2 -3
  82. package/__inner__/esm/components/SectionMessage/config.js +6 -21
  83. package/__inner__/esm/components/SectionMessage/constants.d.ts +3 -0
  84. package/__inner__/esm/components/SectionMessage/constants.js +6 -0
  85. package/__inner__/esm/components/SectionMessage/types.d.ts +6 -1
  86. package/__inner__/esm/components/SectionMessage/types.js +1 -0
  87. package/__inner__/esm/components/Table/Table.css +8 -0
  88. package/__inner__/esm/components/Table/Table.js +2 -2
  89. package/__inner__/esm/components/Table/components/TableBody/TableBody.js +3 -2
  90. package/__inner__/esm/components/Table/components/TableContainer/types.d.ts +2 -1
  91. package/__inner__/esm/components/Table/components/TableFoot/TableFoot.js +3 -2
  92. package/__inner__/esm/components/Table/components/TableHead/TableHead.js +3 -2
  93. package/__inner__/esm/components/Table/index.d.ts +1 -0
  94. package/__inner__/esm/components/Table/index.js +1 -0
  95. package/__inner__/esm/components/Table/types.d.ts +4 -0
  96. package/__inner__/esm/components/Table/types.js +1 -0
  97. package/__inner__/esm/components/TagNext/index.d.ts +1 -0
  98. package/__inner__/esm/components/TagNext/index.js +1 -0
  99. package/__inner__/esm/hooks/useBreakpointsNext/useBreakpoints.d.ts +1 -1
  100. package/__inner__/esm/hooks/useIntersectionObserver/index.d.ts +2 -0
  101. package/__inner__/esm/hooks/useIntersectionObserver/index.js +2 -0
  102. package/__inner__/esm/hooks/useIntersectionObserver/types.d.ts +29 -0
  103. package/__inner__/esm/hooks/useIntersectionObserver/types.js +1 -0
  104. package/__inner__/esm/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +6 -0
  105. package/__inner__/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +76 -0
  106. package/__inner__/esm/types/index.d.ts +10 -0
  107. package/__inner__/esm/types/index.js +10 -0
  108. package/__inner__/esm/types/object/withRequired.d.ts +1 -3
  109. package/__inner__/esm/utils/index.d.ts +30 -0
  110. package/__inner__/esm/utils/index.js +30 -0
  111. package/__inner__/esm/utils/react/extractRef.d.ts +2 -0
  112. package/__inner__/esm/utils/react/extractRef.js +7 -0
  113. package/__inner__/esm/utils/react/index.d.ts +1 -0
  114. package/__inner__/esm/utils/react/index.js +1 -0
  115. package/package.json +4 -4
  116. package/types/package.json +5 -0
  117. package/useDevEffect/package.json +5 -0
  118. package/useIntersectionObserver/package.json +5 -0
  119. package/utils/package.json +5 -0
@@ -0,0 +1,29 @@
1
+ import type { RefObject } from 'react';
2
+ import type { StoredValue } from '../useStoredValue';
3
+ export type UseIntersectionObserverElement = RefObject<Element | null | undefined> | Element | undefined | null;
4
+ export type UseIntersectionObserverOnEntryChange = (entry: IntersectionObserverEntry | null) => void;
5
+ export type UseIntersectionObserverOnViewChange = (inView: boolean) => void;
6
+ export type UseIntersectionObserverOnShow = () => void;
7
+ export type UseIntersectionObserverOnHidden = () => void;
8
+ export type UseIntersectionObserverOptions = Omit<IntersectionObserverInit, 'root'> & {
9
+ /** Вызывается при изменении entry наблюдателя */
10
+ onEntryChange?: UseIntersectionObserverOnEntryChange;
11
+ /** Вызывается при входе/выходе элемента из viewport */
12
+ onViewChange?: UseIntersectionObserverOnViewChange;
13
+ /** Вызывается при входе элемента во viewport */
14
+ onShow?: UseIntersectionObserverOnShow;
15
+ /** Вызывается при выходе элемента из viewport */
16
+ onHidden?: UseIntersectionObserverOnHidden;
17
+ /** Если `true`, то включен */
18
+ enabled?: boolean;
19
+ /** Root наблюдателя */
20
+ root?: UseIntersectionObserverElement;
21
+ };
22
+ export type UseIntersectionObserverReturn = {
23
+ /** Entry наблюдателя */
24
+ entry: StoredValue<IntersectionObserverEntry | undefined>;
25
+ /** Если `true`, то элемент находится во viewport */
26
+ inView: StoredValue<boolean>;
27
+ /** Функция для переподключения к наблюдателю */
28
+ reconnect: () => void;
29
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import type { UseIntersectionObserverElement, UseIntersectionObserverOptions, UseIntersectionObserverReturn } from './types';
2
+ export declare function useIntersectionObserver(
3
+ /** Отслеживаемый компонент */
4
+ target: UseIntersectionObserverElement,
5
+ /** Параметры отслеживания */
6
+ options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useIntersectionObserver = useIntersectionObserver;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = require("react");
6
+ var utils_1 = require("../../utils");
7
+ var useMutableRef_1 = require("../useMutableRef");
8
+ var useStoredValue_1 = require("../useStoredValue");
9
+ function useIntersectionObserver(
10
+ /** Отслеживаемый компонент */
11
+ target,
12
+ /** Параметры отслеживания */
13
+ options) {
14
+ var _a;
15
+ var isEnabled = (_a = options === null || options === void 0 ? void 0 : options.enabled) !== null && _a !== void 0 ? _a : true;
16
+ var savedOnEntryChange = (0, useMutableRef_1.useMutableRef)(options === null || options === void 0 ? void 0 : options.onEntryChange);
17
+ var savedOnViewChange = (0, useMutableRef_1.useMutableRef)(options === null || options === void 0 ? void 0 : options.onViewChange);
18
+ var savedOnShow = (0, useMutableRef_1.useMutableRef)(options === null || options === void 0 ? void 0 : options.onShow);
19
+ var savedOnHidden = (0, useMutableRef_1.useMutableRef)(options === null || options === void 0 ? void 0 : options.onHidden);
20
+ var entry = (0, useStoredValue_1.useStoredValue)(undefined);
21
+ var inView = (0, useStoredValue_1.useStoredValue)(false);
22
+ var observer = (0, useStoredValue_1.useStoredValue)(function () { return new IntersectionObserver(function () { }); });
23
+ var connect = (0, react_1.useCallback)(function () {
24
+ if (!isEnabled) {
25
+ return;
26
+ }
27
+ var element = (0, utils_1.isRef)(target) ? target.current : target;
28
+ if (!element) {
29
+ return;
30
+ }
31
+ var root = (function () {
32
+ var root = options === null || options === void 0 ? void 0 : options.root;
33
+ if (!root) {
34
+ return document;
35
+ }
36
+ return (0, utils_1.isRef)(options.root) ? options.root.current : options.root;
37
+ })();
38
+ observer.current = new IntersectionObserver(function (_a) {
39
+ var _b, _c, _d, _e, _f;
40
+ var _g = tslib_1.__read(_a, 1), newEntry = _g[0];
41
+ var previousInView = !!((_b = entry.current) === null || _b === void 0 ? void 0 : _b.isIntersecting);
42
+ var currentInView = !!(newEntry === null || newEntry === void 0 ? void 0 : newEntry.isIntersecting);
43
+ entry.current = newEntry;
44
+ inView.current = currentInView;
45
+ (_c = savedOnEntryChange.current) === null || _c === void 0 ? void 0 : _c.call(savedOnEntryChange, newEntry !== null && newEntry !== void 0 ? newEntry : null);
46
+ if (previousInView === currentInView) {
47
+ return;
48
+ }
49
+ (_d = savedOnViewChange.current) === null || _d === void 0 ? void 0 : _d.call(savedOnViewChange, currentInView);
50
+ if (currentInView) {
51
+ (_e = savedOnShow.current) === null || _e === void 0 ? void 0 : _e.call(savedOnShow);
52
+ }
53
+ else {
54
+ (_f = savedOnHidden.current) === null || _f === void 0 ? void 0 : _f.call(savedOnHidden);
55
+ }
56
+ }, tslib_1.__assign(tslib_1.__assign({}, options), { root: root }));
57
+ observer.current.observe(element);
58
+ }, [
59
+ (0, utils_1.isRef)(target) ? target.current : target,
60
+ options === null || options === void 0 ? void 0 : options.rootMargin,
61
+ options === null || options === void 0 ? void 0 : options.threshold,
62
+ options === null || options === void 0 ? void 0 : options.root,
63
+ isEnabled,
64
+ ]);
65
+ var disconnect = (0, react_1.useCallback)(function () {
66
+ observer.current.disconnect();
67
+ }, [observer]);
68
+ var reconnect = (0, react_1.useCallback)(function () {
69
+ disconnect();
70
+ connect();
71
+ }, [disconnect, connect]);
72
+ (0, react_1.useEffect)(function () {
73
+ reconnect();
74
+ }, [connect]);
75
+ (0, react_1.useEffect)(function () { return function () {
76
+ disconnect();
77
+ }; }, []);
78
+ return { entry: entry, inView: inView, reconnect: reconnect };
79
+ }
@@ -0,0 +1,10 @@
1
+ export * from './css';
2
+ export * from './function';
3
+ export * from './object';
4
+ export * from './react';
5
+ export * from './Breakpoints';
6
+ export * from './ExtendableComponentPropsWithRef';
7
+ export * from './ExtendableProps';
8
+ export * from './FormElementSizeVariant';
9
+ export * from './KeyCode';
10
+ export * from './ResponsiveValue';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./css"), exports);
5
+ tslib_1.__exportStar(require("./function"), exports);
6
+ tslib_1.__exportStar(require("./object"), exports);
7
+ tslib_1.__exportStar(require("./react"), exports);
8
+ tslib_1.__exportStar(require("./Breakpoints"), exports);
9
+ tslib_1.__exportStar(require("./ExtendableComponentPropsWithRef"), exports);
10
+ tslib_1.__exportStar(require("./ExtendableProps"), exports);
11
+ tslib_1.__exportStar(require("./FormElementSizeVariant"), exports);
12
+ tslib_1.__exportStar(require("./KeyCode"), exports);
13
+ tslib_1.__exportStar(require("./ResponsiveValue"), exports);
@@ -1,3 +1 @@
1
- export type WithRequired<T, K extends keyof T> = T & {
2
- [P in K]-?: T[P];
3
- };
1
+ export type WithRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
@@ -0,0 +1,30 @@
1
+ export * from './array';
2
+ export * from './breakpoint';
3
+ export * from './capitalizeFirstLetter';
4
+ export * from './css';
5
+ export * from './date';
6
+ export * from './generateUniqKey';
7
+ export * from './getByMap';
8
+ export * from './getScrollBarSize';
9
+ export * from './math';
10
+ export * from './number';
11
+ export * from './object';
12
+ export * from './react';
13
+ export * from './renderContent';
14
+ export * from './shallowEqual';
15
+ export * from './string';
16
+ export * from './animateProperty';
17
+ export * from './classname';
18
+ export * from './getFocusableElements';
19
+ export * from './getIconSizeToFormElement';
20
+ export * from './getNextIndex';
21
+ export * from './getPaperSizeToFormElement';
22
+ export * from './getPrevIndex';
23
+ export * from './isFunction';
24
+ export * from './isKey';
25
+ export * from './isKeys';
26
+ export * from './isNotNil';
27
+ export * from './isString';
28
+ export * from './polymorphicComponentWithRef';
29
+ export * from './scrollContainerToElement';
30
+ export * from './setRef';
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./array"), exports);
5
+ tslib_1.__exportStar(require("./breakpoint"), exports);
6
+ tslib_1.__exportStar(require("./capitalizeFirstLetter"), exports);
7
+ tslib_1.__exportStar(require("./css"), exports);
8
+ tslib_1.__exportStar(require("./date"), exports);
9
+ tslib_1.__exportStar(require("./generateUniqKey"), exports);
10
+ tslib_1.__exportStar(require("./getByMap"), exports);
11
+ tslib_1.__exportStar(require("./getScrollBarSize"), exports);
12
+ tslib_1.__exportStar(require("./math"), exports);
13
+ tslib_1.__exportStar(require("./number"), exports);
14
+ tslib_1.__exportStar(require("./object"), exports);
15
+ tslib_1.__exportStar(require("./react"), exports);
16
+ tslib_1.__exportStar(require("./renderContent"), exports);
17
+ tslib_1.__exportStar(require("./shallowEqual"), exports);
18
+ tslib_1.__exportStar(require("./string"), exports);
19
+ tslib_1.__exportStar(require("./animateProperty"), exports);
20
+ tslib_1.__exportStar(require("./classname"), exports);
21
+ tslib_1.__exportStar(require("./getFocusableElements"), exports);
22
+ tslib_1.__exportStar(require("./getIconSizeToFormElement"), exports);
23
+ tslib_1.__exportStar(require("./getNextIndex"), exports);
24
+ tslib_1.__exportStar(require("./getPaperSizeToFormElement"), exports);
25
+ tslib_1.__exportStar(require("./getPrevIndex"), exports);
26
+ tslib_1.__exportStar(require("./isFunction"), exports);
27
+ tslib_1.__exportStar(require("./isKey"), exports);
28
+ tslib_1.__exportStar(require("./isKeys"), exports);
29
+ tslib_1.__exportStar(require("./isNotNil"), exports);
30
+ tslib_1.__exportStar(require("./isString"), exports);
31
+ tslib_1.__exportStar(require("./polymorphicComponentWithRef"), exports);
32
+ tslib_1.__exportStar(require("./scrollContainerToElement"), exports);
33
+ tslib_1.__exportStar(require("./setRef"), exports);
@@ -0,0 +1,2 @@
1
+ import type { RefObject } from 'react';
2
+ export declare const extractRef: <Element extends HTMLElement>(element: RefObject<Element | null> | Element | null | undefined) => Element | null;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractRef = void 0;
4
+ var isRef_1 = require("./isRef");
5
+ var extractRef = function (element) {
6
+ if ((0, isRef_1.isRef)(element)) {
7
+ return element.current;
8
+ }
9
+ return element !== null && element !== void 0 ? element : null;
10
+ };
11
+ exports.extractRef = extractRef;
@@ -1,4 +1,5 @@
1
1
  export * from './extractElementsFromChildren';
2
+ export * from './extractRef';
2
3
  export * from './isNodeWithDisplayName';
3
4
  export * from './isRef';
4
5
  export * from './resolveChildren';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./extractElementsFromChildren"), exports);
5
+ tslib_1.__exportStar(require("./extractRef"), exports);
5
6
  tslib_1.__exportStar(require("./isNodeWithDisplayName"), exports);
6
7
  tslib_1.__exportStar(require("./isRef"), exports);
7
8
  tslib_1.__exportStar(require("./resolveChildren"), exports);
@@ -4,7 +4,7 @@ export declare const defaultGetOptionLabel: AutocompletePropGetOptionLabel<Autoc
4
4
  export declare const defaultGetOptionDisabled: AutocompletePropGetOptionDisabled<AutocompleteDefaultOption>;
5
5
  export declare function withDefaultGetters<OPTION>(props: AutocompleteProps<OPTION>): {
6
6
  options: OPTION[];
7
- size?: import("../../types/FormElementSizeVariant").FormElementSizeVariant;
7
+ size?: import("../../types").FormElementSizeVariant;
8
8
  value?: import("./types").AutocompletePropValue<OPTION>;
9
9
  defaultValue?: import("./types").AutocompletePropValue<OPTION>;
10
10
  open?: boolean;
@@ -35,6 +35,19 @@ export var useAutocompleteBaseInputEvents = function (_a) {
35
35
  }
36
36
  }
37
37
  }, [observableValuesAllowCustomValueSync, allowCustomValue]);
38
+ var previousMultiple = useStoredValue(multiple);
39
+ /** Исправляет баг, когда при переключении режимов "input" не сбрасывается */
40
+ useEffect(function () {
41
+ if (previousMultiple.current === multiple) {
42
+ return;
43
+ }
44
+ var isFromSingleToMultiple = !previousMultiple.current && multiple;
45
+ if (isFromSingleToMultiple) {
46
+ lastInputValue.current = '';
47
+ inputControl.setValue(null, '');
48
+ }
49
+ previousMultiple.current = multiple;
50
+ }, [multiple]);
38
51
  var onChange = function (event) {
39
52
  var value = event.target.value;
40
53
  // Открываем список при вводе первого символа (при условии, что список еще не открыт)
@@ -1 +1 @@
1
- export declare const AUTOCOMPLETE_BASE_DROPDOWN_DEFAULT_TAG: import("../../../../utils/polymorphicComponentWithRef").PolymorphicComponentWithRef<import("../../../Paper").PaperBaseProps, "div", "as">;
1
+ export declare const AUTOCOMPLETE_BASE_DROPDOWN_DEFAULT_TAG: import("../../../../utils").PolymorphicComponentWithRef<import("../../../Paper").PaperBaseProps, "div", "as">;
@@ -80,20 +80,6 @@
80
80
  }
81
81
 
82
82
 
83
- .AutocompleteBaseInput-Input_responsive {
84
- flex-wrap: nowrap;
85
- gap: unset;
86
- }
87
-
88
-
89
- /* ToDo. Tag */
90
-
91
-
92
- .AutocompleteBaseInput-Input_responsive .AutocompleteBaseInput-Tag {
93
- margin-inline-end: var(--spacing-3xs);
94
- }
95
-
96
-
97
83
  .AutocompleteBaseInput-Input_multiple {
98
84
  display: flex;
99
85
  flex-wrap: wrap;
@@ -126,3 +112,14 @@
126
112
  .AutocompleteBaseInput-Input_multiple * + input::placeholder, .AutocompleteBaseInput-Input_multiple input:focus::placeholder, .AutocompleteBaseInput-Input_multiple.AutocompleteBaseInput-Input_hasLabel * + input::placeholder, .AutocompleteBaseInput-Input_multiple.AutocompleteBaseInput-Input_hasLabel input:focus::placeholder {
127
113
  opacity: 1;
128
114
  }
115
+
116
+
117
+ .AutocompleteBaseInput-Input_responsive {
118
+ flex-wrap: nowrap;
119
+ gap: unset;
120
+ }
121
+
122
+
123
+ .AutocompleteBaseInput-Input_responsive .AutocompleteBaseInput-Tag {
124
+ margin-inline-end: var(--spacing-3xs);
125
+ }
@@ -81,14 +81,13 @@ var AutocompleteInputMultipleRender = function (_a, ref) {
81
81
  return renderTag(option, {
82
82
  key: option.id,
83
83
  label: option.label,
84
- className: cnAutocompleteBaseInput('Tag'),
84
+ className: cnAutocompleteBaseInput('Tag', {
85
+ hidden: (responsive || hasLimitTags) && !(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap[index]),
86
+ }),
85
87
  disabled: option.disabled,
86
88
  iconRight: function (_a) {
87
89
  var size = _a.size;
88
- return (React.createElement("span", { "aria-hidden": "true", "data-testid": "clear-tag", className: cnAutocompleteBaseInput('ClearTag', {
89
- hidden: (responsive || hasLimitTags) && !(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap[index]),
90
- disabled: option.disabled,
91
- }), onClick: function (event) {
90
+ return (React.createElement("span", { "aria-hidden": "true", "data-testid": "clear-tag", className: cnAutocompleteBaseInput('ClearTag'), onClick: function (event) {
92
91
  if (option.disabled) {
93
92
  return;
94
93
  }
@@ -5,6 +5,7 @@ import { useControlled } from '../../hooks/useControlled';
5
5
  import { useElementSize } from '../../hooks/useElementSize';
6
6
  import { useMultiRef } from '../../hooks/useMultiRef';
7
7
  import { useMutableRef } from '../../hooks/useMutableRef';
8
+ import { useStoredValue } from '../../hooks/useStoredValue';
8
9
  import { useThemeProps } from '../../hooks/useThemeProps';
9
10
  import { cn } from '../../utils/classname';
10
11
  import { isKeys } from '../../utils/isKeys';
@@ -107,6 +108,19 @@ function AutocompleteRender(inProps, ref) {
107
108
  changeInputValue(null, lastInputValue.current);
108
109
  }
109
110
  }, [valueState, allowCustomValue]);
111
+ var previousMultiple = useStoredValue(multiple);
112
+ /** Исправляет баг, когда при переключении режимов "input" не сбрасывается */
113
+ useEffect(function () {
114
+ if (previousMultiple.current === multiple) {
115
+ return;
116
+ }
117
+ var isFromSingleToMultiple = !previousMultiple.current && multiple;
118
+ if (isFromSingleToMultiple) {
119
+ lastInputValue.current = '';
120
+ changeInputValue(null, '');
121
+ }
122
+ previousMultiple.current = multiple;
123
+ }, [multiple]);
110
124
  /** Эффект — автофокусировка в текстовом поле */
111
125
  useEffect(function () {
112
126
  var _a;
@@ -24,7 +24,7 @@ var AutocompleteInputRender = function (inProps, ref) {
24
24
  }
25
25
  if (isMultipleParams(inProps)) {
26
26
  var selectedOptions_1 = inProps.selectedOptions;
27
- return (React.createElement(AutocompleteInputMultiple, __assign({ label: label, renderTag: renderTag, limitTags: limitTags, onRemoveTag: onRemoveTag, getOptionKey: getOptionKey, renderMoreTag: renderMoreTag, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, selectedOptions: selectedOptions_1, ref: ref }, other)));
27
+ return (React.createElement(AutocompleteInputMultiple, __assign({ label: label, renderTag: renderTag, limitTags: limitTags, onRemoveTag: onRemoveTag, getOptionKey: getOptionKey, renderMoreTag: renderMoreTag, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, selectedOptions: selectedOptions_1, ref: ref, size: size }, other)));
28
28
  }
29
29
  return null;
30
30
  };
@@ -6,14 +6,15 @@ import type { InputProps, InputRef } from '../Input';
6
6
  import type { AutocompleteDropdownProps } from './components';
7
7
  export declare const autocompleteRenderRightPosition: readonly ["before", "between", "after"];
8
8
  export type AutocompleteRenderRightPosition = (typeof autocompleteRenderRightPosition)[number];
9
+ export type AutocompleteRenderOptionState = {
10
+ key?: string | number;
11
+ selected?: boolean;
12
+ disabled?: boolean;
13
+ focused?: boolean;
14
+ };
9
15
  export type AutocompleteRenderOptionProps<OPTION> = {
10
16
  option: OPTION;
11
- state: {
12
- key?: string | number;
13
- selected?: boolean;
14
- disabled?: boolean;
15
- focused?: boolean;
16
- };
17
+ state: AutocompleteRenderOptionState;
17
18
  props: HTMLAttributes<HTMLElement> & {
18
19
  key?: string | number;
19
20
  };
@@ -1,4 +1,4 @@
1
- import type { ElementType, ReactNode } from 'react';
1
+ import type { ComponentRef, ElementType, ReactNode } from 'react';
2
2
  import type { PolymorphicComponentPropsWithRef } from '../../utils/polymorphicComponentWithRef';
3
3
  export declare const cardSizeVariant: readonly ["s", "m", "l"];
4
4
  export declare const cardBorderWidthVariant: readonly ["none", "s", "m"];
@@ -33,3 +33,4 @@ export type CardBaseProps = {
33
33
  'data-testid'?: string;
34
34
  };
35
35
  export type CardProps<As extends ElementType = 'div'> = PolymorphicComponentPropsWithRef<CardBaseProps, As>;
36
+ export type CardRef<As extends ElementType = 'div'> = ComponentRef<As>;
@@ -15,7 +15,11 @@ import { formatDateToString, formatStringToDate, getCommonCalendarProps, getComm
15
15
  import { DateInput, DatePickerRenderRight } from '../index';
16
16
  import { formatDateForCalendar, getOffsetDateInRange, getValueForDoubleProp, } from './utils';
17
17
  export var DatePickerModeDateRange = forwardRef(function (props, ref) {
18
- var size = props.size, error = props.error, openProp = props.open, label = props.label, onKeyDown = props.onKeyDown, onInputChange = props.onInputChange, renderLeft = props.renderLeft, renderRight = props.renderRight, required = props.required, fullWidth = props.fullWidth, placeholder = props.placeholder, hint = props.hint, disableStroke = props.disableStroke, hintProps = props.hintProps, onChange = props.onChange, labelProps = props.labelProps, popoverPropsProp = props.popoverProps, calendarPropsProp = props.calendarProps, defaultOpen = props.defaultOpen, onCloseProp = props.onClose, defaultValue = props.defaultValue, valueProp = props.value, inputProps = props.inputProps, disabled = props.disabled, className = props.className, _a = props.calendars, calendars = _a === void 0 ? 2 : _a, onError = props.onError, clearText = props.clearText, disableCloseOnSelect = props.disableCloseOnSelect, disableClearButton = props.disableClearButton, onOpenProp = props.onOpen, fieldsProps = props.fieldsProps, other = __rest(props, ["size", "error", "open", "label", "onKeyDown", "onInputChange", "renderLeft", "renderRight", "required", "fullWidth", "placeholder", "hint", "disableStroke", "hintProps", "onChange", "labelProps", "popoverProps", "calendarProps", "defaultOpen", "onClose", "defaultValue", "value", "inputProps", "disabled", "className", "calendars", "onError", "clearText", "disableCloseOnSelect", "disableClearButton", "onOpen", "fieldsProps"]);
18
+ var size = props.size, error = props.error, openProp = props.open, label = props.label, onKeyDown = props.onKeyDown, onInputChange = props.onInputChange, renderLeft = props.renderLeft, renderRight = props.renderRight, required = props.required, fullWidth = props.fullWidth, placeholder = props.placeholder, hint = props.hint, disableStroke = props.disableStroke, hintProps = props.hintProps, onChange = props.onChange, labelProps = props.labelProps, popoverPropsProp = props.popoverProps, calendarPropsProp = props.calendarProps, defaultOpen = props.defaultOpen, onCloseProp = props.onClose, defaultValue = props.defaultValue, valueProp = props.value, inputProps = props.inputProps, disabled = props.disabled, className = props.className, _a = props.calendars, calendars = _a === void 0 ? 2 : _a, onError = props.onError, clearText = props.clearText, disableCloseOnSelect = props.disableCloseOnSelect, disableClearButton = props.disableClearButton, onOpenProp = props.onOpen, fieldsProps = props.fieldsProps,
19
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
+ minDate = props.minDate,
21
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
22
+ maxDate = props.maxDate, other = __rest(props, ["size", "error", "open", "label", "onKeyDown", "onInputChange", "renderLeft", "renderRight", "required", "fullWidth", "placeholder", "hint", "disableStroke", "hintProps", "onChange", "labelProps", "popoverProps", "calendarProps", "defaultOpen", "onClose", "defaultValue", "value", "inputProps", "disabled", "className", "calendars", "onError", "clearText", "disableCloseOnSelect", "disableClearButton", "onOpen", "fieldsProps", "minDate", "maxDate"]);
19
23
  var _b = __read(getValueForDoubleProp(label), 2), labelFrom = _b[0], labelTo = _b[1];
20
24
  var _c = __read(getValueForDoubleProp(renderLeft), 2), renderLeftFrom = _c[0], renderLeftTo = _c[1];
21
25
  var _d = __read(getValueForDoubleProp(renderRight), 2), renderRightFrom = _d[0], renderRightTo = _d[1];
@@ -105,7 +105,7 @@ export type DatePickerProps<MODE extends DatePickerModeVariant = typeof DATE_PIC
105
105
  disableStroke?: boolean;
106
106
  /** Если `true` переводит поле в состояние ошибки */
107
107
  error?: boolean;
108
- /** Свойства обертки для текстовых полей. Принимает свойства компонента [Stack](https://ozen-ui.netlify.app/?path=/docs/components-stack--docs) */
108
+ /** Свойства обертки для текстовых полей. Принимает свойства компонента [Stack](https://ozen-ui.bereke.tech/?path=/docs/components-stack--docs) */
109
109
  fieldsProps?: DatePickerPropFieldsProps<MODE>;
110
110
  /** Количество отображаемых календарей в компоненте: один или два */
111
111
  calendars?: 1 | 2;
@@ -1,5 +1,5 @@
1
1
  import './Grid.css';
2
- import type { ReactNode, ElementType } from 'react';
2
+ import type { ReactNode, ElementType, ComponentRef } from 'react';
3
3
  import type { ResponsiveValue } from '../../types/ResponsiveValue';
4
4
  import { type PolymorphicComponentPropsWithRef } from '../../utils/polymorphicComponentWithRef';
5
5
  export declare const gridColsVariant: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
@@ -30,4 +30,5 @@ export type GridBaseProps = {
30
30
  className?: string;
31
31
  };
32
32
  export type GridProps<As extends ElementType = 'div'> = PolymorphicComponentPropsWithRef<GridBaseProps, As>;
33
+ export type GridRef<As extends ElementType = 'div'> = ComponentRef<As>;
33
34
  export declare const Grid: import("../../utils/polymorphicComponentWithRef").PolymorphicComponentWithRef<GridBaseProps, "div", "as">;
@@ -1,5 +1,5 @@
1
1
  import './Grid.css';
2
- import type { ReactNode, ElementType } from 'react';
2
+ import type { ReactNode, ElementType, ComponentRef } from 'react';
3
3
  import type { ResponsiveValue } from '../../types/ResponsiveValue';
4
4
  import { type PolymorphicComponentPropsWithRef } from '../../utils/polymorphicComponentWithRef';
5
5
  export declare const gridItemColVariant: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
@@ -22,4 +22,5 @@ export type GridItemBaseProps = {
22
22
  className?: string;
23
23
  };
24
24
  export type GridItemProps<As extends ElementType = 'div'> = PolymorphicComponentPropsWithRef<GridItemBaseProps, As>;
25
+ export type GridItemRef<As extends ElementType = 'div'> = ComponentRef<As>;
25
26
  export declare const GridItem: import("../../utils/polymorphicComponentWithRef").PolymorphicComponentWithRef<GridItemBaseProps, "div", "as">;
@@ -169,4 +169,4 @@
169
169
  --color-additional-h1: #9f891a;
170
170
  --color-additional-h2: #ffda1f;
171
171
  --color-additional-h3: #fff0a5;
172
- }
172
+ }
@@ -169,4 +169,4 @@
169
169
  --color-additional-h1: #9f891a;
170
170
  --color-additional-h2: #ffda1f;
171
171
  --color-additional-h3: #fff0a5;
172
- }
172
+ }
@@ -169,4 +169,4 @@
169
169
  --color-additional-h1: #9f891a;
170
170
  --color-additional-h2: #ffda1f;
171
171
  --color-additional-h3: #fff0a5;
172
- }
172
+ }
@@ -169,4 +169,4 @@
169
169
  --color-additional-h1: #9f891a;
170
170
  --color-additional-h2: #ffda1f;
171
171
  --color-additional-h3: #fff0a5;
172
- }
172
+ }
@@ -169,4 +169,4 @@
169
169
  --color-additional-h1: #9f891a;
170
170
  --color-additional-h2: #ffda1f;
171
171
  --color-additional-h3: #fff0a5;
172
- }
172
+ }
@@ -169,4 +169,4 @@
169
169
  --color-additional-h1: #9f891a;
170
170
  --color-additional-h2: #ffda1f;
171
171
  --color-additional-h3: #fff0a5;
172
- }
172
+ }
@@ -2,4 +2,4 @@
2
2
  --shadow-l: 0px 8px 32px rgb(0 0 0 / 8%);
3
3
  --shadow-m: 0px 4px 20px rgb(0 0 0 / 6%);
4
4
  --shadow-s: 0px 4px 8px rgb(0 0 0 / 3%);
5
- }
5
+ }
@@ -21,7 +21,7 @@ export type PopoverBaseProps = {
21
21
  open?: boolean;
22
22
  /** Ссылка на элемент, относительно которого будет позиционироваться поповер */
23
23
  anchorRef?: RefObject<HTMLElement>;
24
- /** Список ссылок на элементы при клике на которые Popover не будет закрываться (см. хук [useClickOutside](https://ozen-ui.netlify.app/?path=/docs/hooks-useclickoutside--docs)) */
24
+ /** Список ссылок на элементы при клике на которые Popover не будет закрываться (см. хук [useClickOutside](https://ozen-ui.bereke.tech/?path=/docs/hooks-useclickoutside--docs)) */
25
25
  ignoreClickOutsideRefs?: Array<RefObject<HTMLElement>>;
26
26
  /** Позиция, относительно которой будет позиционироваться поповер */
27
27
  position?: {
@@ -42,6 +42,12 @@
42
42
  --section-message-button-color: var(--color-content-error);
43
43
  --section-message-button-color-hover: var(--color-content-error-dark);
44
44
  }
45
+ .SectionMessage_status_action {
46
+ --section-message-icon-color: var(--color-content-action);
47
+ --section-message-background-color: var(--color-background-action-light);
48
+ --section-message-button-color: var(--color-content-action);
49
+ --section-message-button-color-hover: var(--color-content-action-dark);
50
+ }
45
51
  .SectionMessage_size_xs {
46
52
  --section-message-padding: 12px;
47
53
  --section-message-column-gap: var(--spacing-2xs);
@@ -3,9 +3,9 @@ import './modules/SectionMessageButton/SectionMessageButton.css';
3
3
  import './SectionMessage.css';
4
4
  import React, { forwardRef } from 'react';
5
5
  import { useThemeProps } from '../../hooks/useThemeProps';
6
- import { cn } from '../../utils/classname';
6
+ import { renderContent, cn } from '../../utils';
7
7
  import { SECTION_MESSAGE_ICON_BY_STATUS } from './config';
8
- import { SECTION_MESSAGE_DEFAULT_SIZE, SECTION_MESSAGE_DEFAULT_STATUS, } from './constants';
8
+ import { SECTION_MESSAGE_DEFAULT_SIZE, SECTION_MESSAGE_DEFAULT_STATUS, SECTION_MESSAGE_SIZE_TO_ICON_SIZE, } from './constants';
9
9
  import { SectionMessageContext } from './SectionMessageContext';
10
10
  export var cnSectionMessage = cn('SectionMessage');
11
11
  export var SectionMessage = forwardRef(function (inProps, ref) {
@@ -13,8 +13,11 @@ export var SectionMessage = forwardRef(function (inProps, ref) {
13
13
  props: inProps,
14
14
  name: 'SectionMessage',
15
15
  });
16
- var _a = props.status, status = _a === void 0 ? SECTION_MESSAGE_DEFAULT_STATUS : _a, _b = props.size, size = _b === void 0 ? SECTION_MESSAGE_DEFAULT_SIZE : _b, _c = props.showIcon, showIcon = _c === void 0 ? true : _c, children = props.children, action = props.action, title = props.title, className = props.className, otherProps = __rest(props, ["status", "size", "showIcon", "children", "action", "title", "className"]);
17
- var iconSize = size === 'm' || size === 'l' ? 'm' : 's';
16
+ var _a = props.status, status = _a === void 0 ? SECTION_MESSAGE_DEFAULT_STATUS : _a, _b = props.size, size = _b === void 0 ? SECTION_MESSAGE_DEFAULT_SIZE : _b, _c = props.showIcon, showIcon = _c === void 0 ? true : _c, iconProp = props.icon, children = props.children, action = props.action, title = props.title, className = props.className, otherProps = __rest(props, ["status", "size", "showIcon", "icon", "children", "action", "title", "className"]);
17
+ var icon = renderContent({
18
+ content: iconProp !== null && iconProp !== void 0 ? iconProp : SECTION_MESSAGE_ICON_BY_STATUS[status],
19
+ props: { size: SECTION_MESSAGE_SIZE_TO_ICON_SIZE[size] },
20
+ });
18
21
  var resolveAction = function (action) {
19
22
  var actionProps = {
20
23
  variant: 'function',
@@ -33,7 +36,7 @@ export var SectionMessage = forwardRef(function (inProps, ref) {
33
36
  size: size,
34
37
  } },
35
38
  React.createElement("div", __assign({ className: cnSectionMessage({ status: status, size: size }, [className]), role: "alert" }, otherProps, { ref: ref }),
36
- showIcon && (React.createElement("div", { className: cnSectionMessage('Icon') }, SECTION_MESSAGE_ICON_BY_STATUS[status][iconSize])),
39
+ showIcon && React.createElement("div", { className: cnSectionMessage('Icon') }, icon),
37
40
  React.createElement("div", { className: cnSectionMessage('Content') },
38
41
  title && React.createElement("div", { className: cnSectionMessage('Title') }, title),
39
42
  children && (React.createElement("div", { className: cnSectionMessage('Body') }, children)),
@@ -1,3 +1,2 @@
1
- import type { ReactNode } from 'react';
2
- import type { SectionMessageStatusVariant } from './types';
3
- export declare const SECTION_MESSAGE_ICON_BY_STATUS: Readonly<Record<SectionMessageStatusVariant, Record<'s' | 'm', ReactNode>>>;
1
+ import type { SectionMessageIconType, SectionMessageStatusVariant } from './types';
2
+ export declare const SECTION_MESSAGE_ICON_BY_STATUS: Readonly<Record<SectionMessageStatusVariant, SectionMessageIconType>>;