@ozen-ui/kit 0.73.0 → 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 (57) hide show
  1. package/__inner__/cjs/components/Grid/Grid.d.ts +2 -1
  2. package/__inner__/cjs/components/Grid/GridItem.d.ts +2 -1
  3. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/b-business-dark/color-b-business-dark.css +1 -1
  4. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/b-business-default/color-b-business-default.css +1 -1
  5. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/ozen-dark/color-ozen-dark.css +1 -1
  6. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/ozen-default/color-ozen-default.css +1 -1
  7. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/vip-dark/color-vip-dark.css +1 -1
  8. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/vip-default/color-vip-default.css +1 -1
  9. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/shadow/ozen-default/shadow-ozen-default.css +1 -1
  10. package/__inner__/cjs/components/SectionMessage/SectionMessage.css +6 -0
  11. package/__inner__/cjs/components/SectionMessage/SectionMessage.js +8 -5
  12. package/__inner__/cjs/components/SectionMessage/config.d.ts +2 -3
  13. package/__inner__/cjs/components/SectionMessage/config.js +6 -22
  14. package/__inner__/cjs/components/SectionMessage/constants.d.ts +3 -0
  15. package/__inner__/cjs/components/SectionMessage/constants.js +7 -1
  16. package/__inner__/cjs/components/SectionMessage/types.d.ts +6 -1
  17. package/__inner__/cjs/components/SectionMessage/types.js +1 -0
  18. package/__inner__/cjs/hooks/useIntersectionObserver/index.d.ts +2 -0
  19. package/__inner__/cjs/hooks/useIntersectionObserver/index.js +5 -0
  20. package/__inner__/cjs/hooks/useIntersectionObserver/types.d.ts +29 -0
  21. package/__inner__/cjs/hooks/useIntersectionObserver/types.js +2 -0
  22. package/__inner__/cjs/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +6 -0
  23. package/__inner__/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +79 -0
  24. package/__inner__/cjs/utils/react/extractRef.d.ts +2 -0
  25. package/__inner__/cjs/utils/react/extractRef.js +11 -0
  26. package/__inner__/cjs/utils/react/index.d.ts +1 -0
  27. package/__inner__/cjs/utils/react/index.js +1 -0
  28. package/__inner__/esm/components/Grid/Grid.d.ts +2 -1
  29. package/__inner__/esm/components/Grid/GridItem.d.ts +2 -1
  30. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/b-business-dark/color-b-business-dark.css +1 -1
  31. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/b-business-default/color-b-business-default.css +1 -1
  32. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/ozen-dark/color-ozen-dark.css +1 -1
  33. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/ozen-default/color-ozen-default.css +1 -1
  34. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/vip-dark/color-vip-dark.css +1 -1
  35. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/vip-default/color-vip-default.css +1 -1
  36. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/shadow/ozen-default/shadow-ozen-default.css +1 -1
  37. package/__inner__/esm/components/SectionMessage/SectionMessage.css +6 -0
  38. package/__inner__/esm/components/SectionMessage/SectionMessage.js +8 -5
  39. package/__inner__/esm/components/SectionMessage/config.d.ts +2 -3
  40. package/__inner__/esm/components/SectionMessage/config.js +6 -21
  41. package/__inner__/esm/components/SectionMessage/constants.d.ts +3 -0
  42. package/__inner__/esm/components/SectionMessage/constants.js +6 -0
  43. package/__inner__/esm/components/SectionMessage/types.d.ts +6 -1
  44. package/__inner__/esm/components/SectionMessage/types.js +1 -0
  45. package/__inner__/esm/hooks/useIntersectionObserver/index.d.ts +2 -0
  46. package/__inner__/esm/hooks/useIntersectionObserver/index.js +2 -0
  47. package/__inner__/esm/hooks/useIntersectionObserver/types.d.ts +29 -0
  48. package/__inner__/esm/hooks/useIntersectionObserver/types.js +1 -0
  49. package/__inner__/esm/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +6 -0
  50. package/__inner__/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +76 -0
  51. package/__inner__/esm/utils/react/extractRef.d.ts +2 -0
  52. package/__inner__/esm/utils/react/extractRef.js +7 -0
  53. package/__inner__/esm/utils/react/index.d.ts +1 -0
  54. package/__inner__/esm/utils/react/index.js +1 -0
  55. package/package.json +4 -4
  56. package/useDevEffect/package.json +5 -0
  57. package/useIntersectionObserver/package.json +5 -0
@@ -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
+ }
@@ -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);
@@ -6,18 +6,21 @@ require("./modules/SectionMessageButton/SectionMessageButton.css");
6
6
  require("./SectionMessage.css");
7
7
  var react_1 = tslib_1.__importStar(require("react"));
8
8
  var useThemeProps_1 = require("../../hooks/useThemeProps");
9
- var classname_1 = require("../../utils/classname");
9
+ var utils_1 = require("../../utils");
10
10
  var config_1 = require("./config");
11
11
  var constants_1 = require("./constants");
12
12
  var SectionMessageContext_1 = require("./SectionMessageContext");
13
- exports.cnSectionMessage = (0, classname_1.cn)('SectionMessage');
13
+ exports.cnSectionMessage = (0, utils_1.cn)('SectionMessage');
14
14
  exports.SectionMessage = (0, react_1.forwardRef)(function (inProps, ref) {
15
15
  var props = (0, useThemeProps_1.useThemeProps)({
16
16
  props: inProps,
17
17
  name: 'SectionMessage',
18
18
  });
19
- var _a = props.status, status = _a === void 0 ? constants_1.SECTION_MESSAGE_DEFAULT_STATUS : _a, _b = props.size, size = _b === void 0 ? constants_1.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 = tslib_1.__rest(props, ["status", "size", "showIcon", "children", "action", "title", "className"]);
20
- var iconSize = size === 'm' || size === 'l' ? 'm' : 's';
19
+ var _a = props.status, status = _a === void 0 ? constants_1.SECTION_MESSAGE_DEFAULT_STATUS : _a, _b = props.size, size = _b === void 0 ? constants_1.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 = tslib_1.__rest(props, ["status", "size", "showIcon", "icon", "children", "action", "title", "className"]);
20
+ var icon = (0, utils_1.renderContent)({
21
+ content: iconProp !== null && iconProp !== void 0 ? iconProp : config_1.SECTION_MESSAGE_ICON_BY_STATUS[status],
22
+ props: { size: constants_1.SECTION_MESSAGE_SIZE_TO_ICON_SIZE[size] },
23
+ });
21
24
  var resolveAction = function (action) {
22
25
  var actionProps = {
23
26
  variant: 'function',
@@ -36,7 +39,7 @@ exports.SectionMessage = (0, react_1.forwardRef)(function (inProps, ref) {
36
39
  size: size,
37
40
  } },
38
41
  react_1.default.createElement("div", tslib_1.__assign({ className: (0, exports.cnSectionMessage)({ status: status, size: size }, [className]), role: "alert" }, otherProps, { ref: ref }),
39
- showIcon && (react_1.default.createElement("div", { className: (0, exports.cnSectionMessage)('Icon') }, config_1.SECTION_MESSAGE_ICON_BY_STATUS[status][iconSize])),
42
+ showIcon && react_1.default.createElement("div", { className: (0, exports.cnSectionMessage)('Icon') }, icon),
40
43
  react_1.default.createElement("div", { className: (0, exports.cnSectionMessage)('Content') },
41
44
  title && react_1.default.createElement("div", { className: (0, exports.cnSectionMessage)('Title') }, title),
42
45
  children && (react_1.default.createElement("div", { className: (0, exports.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>>;
@@ -1,28 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SECTION_MESSAGE_ICON_BY_STATUS = void 0;
4
- var tslib_1 = require("tslib");
5
- var react_1 = tslib_1.__importDefault(require("react"));
6
4
  var icons_1 = require("@ozen-ui/icons");
7
5
  exports.SECTION_MESSAGE_ICON_BY_STATUS = {
8
- neutral: {
9
- m: react_1.default.createElement(icons_1.InfoCircleOutlineIcon, { size: "m" }),
10
- s: react_1.default.createElement(icons_1.InfoCircleOutlineIcon, { size: "s" }),
11
- },
12
- info: {
13
- m: react_1.default.createElement(icons_1.InfoCircleOutlineIcon, { size: "m" }),
14
- s: react_1.default.createElement(icons_1.InfoCircleOutlineIcon, { size: "s" }),
15
- },
16
- warning: {
17
- m: react_1.default.createElement(icons_1.WarningTriangleOutlineIcon, { size: "m" }),
18
- s: react_1.default.createElement(icons_1.WarningTriangleOutlineIcon, { size: "s" }),
19
- },
20
- success: {
21
- m: react_1.default.createElement(icons_1.CheckCircleOutlineIcon, { size: "m" }),
22
- s: react_1.default.createElement(icons_1.CheckCircleOutlineIcon, { size: "s" }),
23
- },
24
- error: {
25
- m: react_1.default.createElement(icons_1.WarningCircleOutlineIcon, { size: "m" }),
26
- s: react_1.default.createElement(icons_1.WarningCircleOutlineIcon, { size: "s" }),
27
- },
6
+ neutral: icons_1.InfoCircleOutlineIcon,
7
+ info: icons_1.InfoCircleOutlineIcon,
8
+ warning: icons_1.WarningTriangleOutlineIcon,
9
+ success: icons_1.CheckCircleOutlineIcon,
10
+ error: icons_1.WarningCircleOutlineIcon,
11
+ action: icons_1.InfoCircleOutlineIcon,
28
12
  };
@@ -1,2 +1,5 @@
1
+ import type { IconSize } from '@ozen-ui/icons';
2
+ import type { SectionMessageSizeVariant } from './types';
1
3
  export declare const SECTION_MESSAGE_DEFAULT_STATUS = "info";
2
4
  export declare const SECTION_MESSAGE_DEFAULT_SIZE = "m";
5
+ export declare const SECTION_MESSAGE_SIZE_TO_ICON_SIZE: Readonly<Record<SectionMessageSizeVariant, IconSize>>;
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SECTION_MESSAGE_DEFAULT_SIZE = exports.SECTION_MESSAGE_DEFAULT_STATUS = void 0;
3
+ exports.SECTION_MESSAGE_SIZE_TO_ICON_SIZE = exports.SECTION_MESSAGE_DEFAULT_SIZE = exports.SECTION_MESSAGE_DEFAULT_STATUS = void 0;
4
4
  exports.SECTION_MESSAGE_DEFAULT_STATUS = 'info';
5
5
  exports.SECTION_MESSAGE_DEFAULT_SIZE = 'm';
6
+ exports.SECTION_MESSAGE_SIZE_TO_ICON_SIZE = {
7
+ xs: 's',
8
+ s: 's',
9
+ m: 'm',
10
+ l: 'm',
11
+ };
@@ -1,10 +1,13 @@
1
1
  import type { ComponentRef, ReactElement, ReactNode } from 'react';
2
+ import type { IconProps } from '@ozen-ui/icons';
2
3
  import type { ExtendableComponentPropsWithRef } from '../../types/ExtendableComponentPropsWithRef';
4
+ import type { RenderContentType } from '../../utils';
3
5
  import type { ButtonProps } from '../ButtonNext';
4
- export declare const sectionMessageStatusVariant: readonly ["success", "error", "warning", "info", "neutral"];
6
+ export declare const sectionMessageStatusVariant: readonly ["success", "error", "warning", "info", "neutral", "action"];
5
7
  export type SectionMessageStatusVariant = (typeof sectionMessageStatusVariant)[number];
6
8
  export declare const sectionMessageSizeVariant: readonly ["xs", "s", "m", "l"];
7
9
  export type SectionMessageSizeVariant = (typeof sectionMessageSizeVariant)[number];
10
+ export type SectionMessageIconType = RenderContentType<IconProps>['content'];
8
11
  export type SectionMessageRef = ComponentRef<'div'>;
9
12
  export type SectionMessageProps = ExtendableComponentPropsWithRef<{
10
13
  /**
@@ -17,6 +20,8 @@ export type SectionMessageProps = ExtendableComponentPropsWithRef<{
17
20
  * @default true
18
21
  */
19
22
  showIcon?: boolean;
23
+ /** Кастомная иконка */
24
+ icon?: SectionMessageIconType;
20
25
  /**
21
26
  * Размер
22
27
  * @default m
@@ -7,5 +7,6 @@ exports.sectionMessageStatusVariant = [
7
7
  'warning',
8
8
  'info',
9
9
  'neutral',
10
+ 'action',
10
11
  ];
11
12
  exports.sectionMessageSizeVariant = ['xs', 's', 'm', 'l'];
@@ -0,0 +1,2 @@
1
+ export * from './useIntersectionObserver';
2
+ export * from './types';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./useIntersectionObserver"), exports);
5
+ tslib_1.__exportStar(require("./types"), exports);
@@ -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,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);
@@ -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
+ }
@@ -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>>;
@@ -1,24 +1,9 @@
1
- import React from 'react';
2
1
  import { CheckCircleOutlineIcon, InfoCircleOutlineIcon, WarningCircleOutlineIcon, WarningTriangleOutlineIcon, } from '@ozen-ui/icons';
3
2
  export var SECTION_MESSAGE_ICON_BY_STATUS = {
4
- neutral: {
5
- m: React.createElement(InfoCircleOutlineIcon, { size: "m" }),
6
- s: React.createElement(InfoCircleOutlineIcon, { size: "s" }),
7
- },
8
- info: {
9
- m: React.createElement(InfoCircleOutlineIcon, { size: "m" }),
10
- s: React.createElement(InfoCircleOutlineIcon, { size: "s" }),
11
- },
12
- warning: {
13
- m: React.createElement(WarningTriangleOutlineIcon, { size: "m" }),
14
- s: React.createElement(WarningTriangleOutlineIcon, { size: "s" }),
15
- },
16
- success: {
17
- m: React.createElement(CheckCircleOutlineIcon, { size: "m" }),
18
- s: React.createElement(CheckCircleOutlineIcon, { size: "s" }),
19
- },
20
- error: {
21
- m: React.createElement(WarningCircleOutlineIcon, { size: "m" }),
22
- s: React.createElement(WarningCircleOutlineIcon, { size: "s" }),
23
- },
3
+ neutral: InfoCircleOutlineIcon,
4
+ info: InfoCircleOutlineIcon,
5
+ warning: WarningTriangleOutlineIcon,
6
+ success: CheckCircleOutlineIcon,
7
+ error: WarningCircleOutlineIcon,
8
+ action: InfoCircleOutlineIcon,
24
9
  };
@@ -1,2 +1,5 @@
1
+ import type { IconSize } from '@ozen-ui/icons';
2
+ import type { SectionMessageSizeVariant } from './types';
1
3
  export declare const SECTION_MESSAGE_DEFAULT_STATUS = "info";
2
4
  export declare const SECTION_MESSAGE_DEFAULT_SIZE = "m";
5
+ export declare const SECTION_MESSAGE_SIZE_TO_ICON_SIZE: Readonly<Record<SectionMessageSizeVariant, IconSize>>;
@@ -1,2 +1,8 @@
1
1
  export var SECTION_MESSAGE_DEFAULT_STATUS = 'info';
2
2
  export var SECTION_MESSAGE_DEFAULT_SIZE = 'm';
3
+ export var SECTION_MESSAGE_SIZE_TO_ICON_SIZE = {
4
+ xs: 's',
5
+ s: 's',
6
+ m: 'm',
7
+ l: 'm',
8
+ };
@@ -1,10 +1,13 @@
1
1
  import type { ComponentRef, ReactElement, ReactNode } from 'react';
2
+ import type { IconProps } from '@ozen-ui/icons';
2
3
  import type { ExtendableComponentPropsWithRef } from '../../types/ExtendableComponentPropsWithRef';
4
+ import type { RenderContentType } from '../../utils';
3
5
  import type { ButtonProps } from '../ButtonNext';
4
- export declare const sectionMessageStatusVariant: readonly ["success", "error", "warning", "info", "neutral"];
6
+ export declare const sectionMessageStatusVariant: readonly ["success", "error", "warning", "info", "neutral", "action"];
5
7
  export type SectionMessageStatusVariant = (typeof sectionMessageStatusVariant)[number];
6
8
  export declare const sectionMessageSizeVariant: readonly ["xs", "s", "m", "l"];
7
9
  export type SectionMessageSizeVariant = (typeof sectionMessageSizeVariant)[number];
10
+ export type SectionMessageIconType = RenderContentType<IconProps>['content'];
8
11
  export type SectionMessageRef = ComponentRef<'div'>;
9
12
  export type SectionMessageProps = ExtendableComponentPropsWithRef<{
10
13
  /**
@@ -17,6 +20,8 @@ export type SectionMessageProps = ExtendableComponentPropsWithRef<{
17
20
  * @default true
18
21
  */
19
22
  showIcon?: boolean;
23
+ /** Кастомная иконка */
24
+ icon?: SectionMessageIconType;
20
25
  /**
21
26
  * Размер
22
27
  * @default m
@@ -4,5 +4,6 @@ export var sectionMessageStatusVariant = [
4
4
  'warning',
5
5
  'info',
6
6
  'neutral',
7
+ 'action',
7
8
  ];
8
9
  export var sectionMessageSizeVariant = ['xs', 's', 'm', 'l'];
@@ -0,0 +1,2 @@
1
+ export * from './useIntersectionObserver';
2
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ export * from './useIntersectionObserver';
2
+ export * from './types';
@@ -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,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,76 @@
1
+ import { __assign, __read } from "tslib";
2
+ import { useCallback, useEffect } from 'react';
3
+ import { isRef } from '../../utils';
4
+ import { useMutableRef } from '../useMutableRef';
5
+ import { useStoredValue } from '../useStoredValue';
6
+ export function useIntersectionObserver(
7
+ /** Отслеживаемый компонент */
8
+ target,
9
+ /** Параметры отслеживания */
10
+ options) {
11
+ var _a;
12
+ var isEnabled = (_a = options === null || options === void 0 ? void 0 : options.enabled) !== null && _a !== void 0 ? _a : true;
13
+ var savedOnEntryChange = useMutableRef(options === null || options === void 0 ? void 0 : options.onEntryChange);
14
+ var savedOnViewChange = useMutableRef(options === null || options === void 0 ? void 0 : options.onViewChange);
15
+ var savedOnShow = useMutableRef(options === null || options === void 0 ? void 0 : options.onShow);
16
+ var savedOnHidden = useMutableRef(options === null || options === void 0 ? void 0 : options.onHidden);
17
+ var entry = useStoredValue(undefined);
18
+ var inView = useStoredValue(false);
19
+ var observer = useStoredValue(function () { return new IntersectionObserver(function () { }); });
20
+ var connect = useCallback(function () {
21
+ if (!isEnabled) {
22
+ return;
23
+ }
24
+ var element = isRef(target) ? target.current : target;
25
+ if (!element) {
26
+ return;
27
+ }
28
+ var root = (function () {
29
+ var root = options === null || options === void 0 ? void 0 : options.root;
30
+ if (!root) {
31
+ return document;
32
+ }
33
+ return isRef(options.root) ? options.root.current : options.root;
34
+ })();
35
+ observer.current = new IntersectionObserver(function (_a) {
36
+ var _b, _c, _d, _e, _f;
37
+ var _g = __read(_a, 1), newEntry = _g[0];
38
+ var previousInView = !!((_b = entry.current) === null || _b === void 0 ? void 0 : _b.isIntersecting);
39
+ var currentInView = !!(newEntry === null || newEntry === void 0 ? void 0 : newEntry.isIntersecting);
40
+ entry.current = newEntry;
41
+ inView.current = currentInView;
42
+ (_c = savedOnEntryChange.current) === null || _c === void 0 ? void 0 : _c.call(savedOnEntryChange, newEntry !== null && newEntry !== void 0 ? newEntry : null);
43
+ if (previousInView === currentInView) {
44
+ return;
45
+ }
46
+ (_d = savedOnViewChange.current) === null || _d === void 0 ? void 0 : _d.call(savedOnViewChange, currentInView);
47
+ if (currentInView) {
48
+ (_e = savedOnShow.current) === null || _e === void 0 ? void 0 : _e.call(savedOnShow);
49
+ }
50
+ else {
51
+ (_f = savedOnHidden.current) === null || _f === void 0 ? void 0 : _f.call(savedOnHidden);
52
+ }
53
+ }, __assign(__assign({}, options), { root: root }));
54
+ observer.current.observe(element);
55
+ }, [
56
+ isRef(target) ? target.current : target,
57
+ options === null || options === void 0 ? void 0 : options.rootMargin,
58
+ options === null || options === void 0 ? void 0 : options.threshold,
59
+ options === null || options === void 0 ? void 0 : options.root,
60
+ isEnabled,
61
+ ]);
62
+ var disconnect = useCallback(function () {
63
+ observer.current.disconnect();
64
+ }, [observer]);
65
+ var reconnect = useCallback(function () {
66
+ disconnect();
67
+ connect();
68
+ }, [disconnect, connect]);
69
+ useEffect(function () {
70
+ reconnect();
71
+ }, [connect]);
72
+ useEffect(function () { return function () {
73
+ disconnect();
74
+ }; }, []);
75
+ return { entry: entry, inView: inView, reconnect: reconnect };
76
+ }
@@ -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,7 @@
1
+ import { isRef } from './isRef';
2
+ export var extractRef = function (element) {
3
+ if (isRef(element)) {
4
+ return element.current;
5
+ }
6
+ return element !== null && element !== void 0 ? element : null;
7
+ };
@@ -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';
@@ -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';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozen-ui/kit",
3
- "version": "0.73.0",
3
+ "version": "0.74.0",
4
4
  "description": "React component library",
5
5
  "files": [
6
6
  "*"
@@ -29,9 +29,9 @@
29
29
  "react-popper": "^2.3.0",
30
30
  "react-transition-group": "^4.4.5",
31
31
  "tslib": "^2.6.3",
32
- "@ozen-ui/icons": "0.73.0",
33
- "@ozen-ui/logger": "0.73.0",
34
- "@ozen-ui/fonts": "0.73.0"
32
+ "@ozen-ui/icons": "0.74.0",
33
+ "@ozen-ui/fonts": "0.74.0",
34
+ "@ozen-ui/logger": "0.74.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/lodash.isequal": "^4.5.0"
@@ -0,0 +1,5 @@
1
+ {
2
+ "main": "../__inner__/cjs/hooks/useDevEffect/index.js",
3
+ "module": "../__inner__/esm/hooks/useDevEffect/index.js",
4
+ "types": "../__inner__/esm/hooks/useDevEffect/index.d.ts"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "main": "../__inner__/cjs/hooks/useIntersectionObserver/index.js",
3
+ "module": "../__inner__/esm/hooks/useIntersectionObserver/index.js",
4
+ "types": "../__inner__/esm/hooks/useIntersectionObserver/index.d.ts"
5
+ }