reso-ui 3.9.0 → 3.10.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 (60) hide show
  1. package/dist/cjs/components/Banners/Banner/Banner.js.map +1 -1
  2. package/dist/cjs/components/Drawer/DrawerContent.js +1 -0
  3. package/dist/cjs/components/Drawer/DrawerContent.js.map +1 -1
  4. package/dist/cjs/components/Enlarged-Image-Modal/Enlarged-Image-Modal.js +2 -1
  5. package/dist/cjs/components/Enlarged-Image-Modal/Enlarged-Image-Modal.js.map +1 -1
  6. package/dist/cjs/components/Nav/Navbar/Navbar.js +1 -0
  7. package/dist/cjs/components/Nav/Navbar/Navbar.js.map +1 -1
  8. package/dist/cjs/context/OverlayRegistryContext.js +16 -0
  9. package/dist/cjs/context/OverlayRegistryContext.js.map +1 -0
  10. package/dist/cjs/forms/Controls/Dropdown/Dropdown-Select/Dropdown-Select.js +1 -0
  11. package/dist/cjs/forms/Controls/Dropdown/Dropdown-Select/Dropdown-Select.js.map +1 -1
  12. package/dist/cjs/hooks/useOverlayRegistration.js +20 -0
  13. package/dist/cjs/hooks/useOverlayRegistration.js.map +1 -0
  14. package/dist/cjs/index.js +6 -0
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/providers/OverlayRegistryProvider.js +96 -0
  17. package/dist/cjs/providers/OverlayRegistryProvider.js.map +1 -0
  18. package/dist/cjs/providers/ResoUiProvider.js +4 -2
  19. package/dist/cjs/providers/ResoUiProvider.js.map +1 -1
  20. package/dist/esm/components/Banners/Banner/Banner.d.ts +1 -0
  21. package/dist/esm/components/Banners/Banner/Banner.js.map +1 -1
  22. package/dist/esm/components/Drawer/DrawerContent.js +1 -0
  23. package/dist/esm/components/Drawer/DrawerContent.js.map +1 -1
  24. package/dist/esm/components/Enlarged-Image-Modal/Enlarged-Image-Modal.js +2 -1
  25. package/dist/esm/components/Enlarged-Image-Modal/Enlarged-Image-Modal.js.map +1 -1
  26. package/dist/esm/components/Nav/Navbar/Navbar.js +1 -0
  27. package/dist/esm/components/Nav/Navbar/Navbar.js.map +1 -1
  28. package/dist/esm/context/OverlayRegistryContext.d.ts +18 -0
  29. package/dist/esm/context/OverlayRegistryContext.js +14 -0
  30. package/dist/esm/context/OverlayRegistryContext.js.map +1 -0
  31. package/dist/esm/context/index.d.ts +1 -0
  32. package/dist/esm/forms/Controls/Dropdown/Dropdown-Select/Dropdown-Select.js +1 -0
  33. package/dist/esm/forms/Controls/Dropdown/Dropdown-Select/Dropdown-Select.js.map +1 -1
  34. package/dist/esm/hooks/index.d.ts +1 -0
  35. package/dist/esm/hooks/useOverlayRegistration.d.ts +9 -0
  36. package/dist/esm/hooks/useOverlayRegistration.js +18 -0
  37. package/dist/esm/hooks/useOverlayRegistration.js.map +1 -0
  38. package/dist/esm/index.js +3 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/providers/OverlayRegistryProvider.d.ts +9 -0
  41. package/dist/esm/providers/OverlayRegistryProvider.js +94 -0
  42. package/dist/esm/providers/OverlayRegistryProvider.js.map +1 -0
  43. package/dist/esm/providers/ResoUiProvider.d.ts +9 -1
  44. package/dist/esm/providers/ResoUiProvider.js +4 -2
  45. package/dist/esm/providers/ResoUiProvider.js.map +1 -1
  46. package/dist/esm/providers/index.d.ts +1 -0
  47. package/dist/src/library/components/Banners/Banner/Banner.d.ts +1 -0
  48. package/dist/src/library/components/Dialog/stories/Dialog.stories.d.ts +7 -7
  49. package/dist/src/library/context/OverlayRegistryContext.d.ts +18 -0
  50. package/dist/src/library/context/index.d.ts +1 -0
  51. package/dist/src/library/hooks/__test__/useOverlayRegistration.test.d.ts +1 -0
  52. package/dist/src/library/hooks/index.d.ts +1 -0
  53. package/dist/src/library/hooks/useOverlayRegistration.d.ts +9 -0
  54. package/dist/src/library/providers/OverlayRegistryProvider.d.ts +9 -0
  55. package/dist/src/library/providers/ResoUiProvider.d.ts +9 -1
  56. package/dist/src/library/providers/__test__/OverlayRegistryProvider.test.d.ts +1 -0
  57. package/dist/src/library/providers/index.d.ts +1 -0
  58. package/dist/src/library/providers/stories/OverlayRegistry.stories.d.ts +44 -0
  59. package/dist/styles.css +1 -1
  60. package/package.json +1 -1
package/dist/esm/index.js CHANGED
@@ -71,6 +71,7 @@ export { useDynamicBodyHeight } from './hooks/useDynamicBodyHeight.js';
71
71
  export { useComponentWidthHeight } from './hooks/useComponentWidthHeight.js';
72
72
  export { useReducedMotion } from './hooks/useReducedMotion.js';
73
73
  export { useTheme } from './hooks/useTheme.js';
74
+ export { useOverlayRegistration } from './hooks/useOverlayRegistration.js';
74
75
  export { default as AboutIcon } from './icons/svg/about.svg.js';
75
76
  export { default as ChevronSingleLeft } from './icons/svg/ChevronSingleLeft.svg.js';
76
77
  export { default as ChevronSingleRight } from './icons/svg/ChevronSingleRight.svg.js';
@@ -99,9 +100,11 @@ export { default as CartIcon } from './icons/svg/cart.svg.js';
99
100
  export { DefaultTheme } from './interfaces/Theme.js';
100
101
  export { ResponsiveContext } from './context/ResponsiveContext.js';
101
102
  export { ThemeContext } from './context/ThemeContext.js';
103
+ export { OverlayRegistryContext } from './context/OverlayRegistryContext.js';
102
104
  export { ResoUiProvider } from './providers/ResoUiProvider.js';
103
105
  export { ResponsiveProvider } from './providers/ResponsiveProvider.js';
104
106
  export { ThemeProvider } from './providers/ThemeProvider.js';
107
+ export { OverlayRegistryProvider } from './providers/OverlayRegistryProvider.js';
105
108
  export { defaultTheme } from './themes/defaultTheme.js';
106
109
  export { darkTheme } from './themes/darkTheme.js';
107
110
  export { numberIsLessThan, numberIsMoreThanOrEqualsTo, numberIsPositiveInteger, numberIsRequired, valueIsNumber } from './forms/Validators/Number.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export interface IOverlayRegistryProviderProps {
3
+ children: React.ReactNode;
4
+ beforeDrawerOpens?: () => Promise<void> | void;
5
+ beforeModalOpens?: () => Promise<void> | void;
6
+ afterDrawerCloses?: () => void;
7
+ afterModalCloses?: () => void;
8
+ }
9
+ export declare const OverlayRegistryProvider: ({ children, beforeDrawerOpens, beforeModalOpens, afterDrawerCloses, afterModalCloses, }: IOverlayRegistryProviderProps) => React.JSX.Element;
@@ -0,0 +1,94 @@
1
+ import React__default, { useRef, useState, useCallback } from 'react';
2
+ import { OverlayRegistryContext } from '../context/OverlayRegistryContext.js';
3
+
4
+ const OverlayRegistryProvider = ({ children, beforeDrawerOpens, beforeModalOpens, afterDrawerCloses, afterModalCloses, }) => {
5
+ const registryRef = useRef(new Map());
6
+ const [hasOpenDrawer, setHasOpenDrawer] = useState(false);
7
+ const [hasOpenModal, setHasOpenModal] = useState(false);
8
+ const busyRef = useRef(false);
9
+ const pendingRef = useRef(null);
10
+ const recalculate = useCallback(() => {
11
+ let drawerOpen = false;
12
+ let modalOpen = false;
13
+ registryRef.current.forEach((entry) => {
14
+ const isOpen = entry.getIsOpen();
15
+ if (isOpen && entry.type === "drawer")
16
+ drawerOpen = true;
17
+ if (isOpen && entry.type === "modal")
18
+ modalOpen = true;
19
+ });
20
+ setHasOpenDrawer(drawerOpen);
21
+ setHasOpenModal(modalOpen);
22
+ }, []);
23
+ const register = useCallback((overlay) => {
24
+ registryRef.current.set(overlay.name, overlay);
25
+ recalculate();
26
+ }, [recalculate]);
27
+ const unregister = useCallback((name) => {
28
+ registryRef.current.delete(name);
29
+ recalculate();
30
+ }, [recalculate]);
31
+ const showOverlay = useCallback(async (name) => {
32
+ if (busyRef.current) {
33
+ pendingRef.current = name;
34
+ return;
35
+ }
36
+ const entry = registryRef.current.get(name);
37
+ if (!entry)
38
+ return;
39
+ busyRef.current = true;
40
+ if (entry.type === "drawer") {
41
+ registryRef.current.forEach((other) => {
42
+ if (other.type === "drawer" && other.getIsOpen() && other.name !== name) {
43
+ other.hide();
44
+ }
45
+ });
46
+ if (beforeDrawerOpens) {
47
+ await beforeDrawerOpens();
48
+ }
49
+ }
50
+ else if (entry.type === "modal") {
51
+ registryRef.current.forEach((other) => {
52
+ if (other.type === "modal" && other.getIsOpen() && other.name !== name) {
53
+ other.hide();
54
+ }
55
+ });
56
+ if (beforeModalOpens) {
57
+ await beforeModalOpens();
58
+ }
59
+ }
60
+ entry.show();
61
+ busyRef.current = false;
62
+ if (pendingRef.current) {
63
+ const pending = pendingRef.current;
64
+ pendingRef.current = null;
65
+ // eslint-disable-next-line react-hooks/immutability
66
+ showOverlay(pending);
67
+ }
68
+ }, [beforeDrawerOpens, beforeModalOpens]);
69
+ const hideOverlay = useCallback((name) => {
70
+ const entry = registryRef.current.get(name);
71
+ if (!entry)
72
+ return;
73
+ entry.hide();
74
+ recalculate();
75
+ if (entry.type === "drawer" && afterDrawerCloses) {
76
+ afterDrawerCloses();
77
+ }
78
+ else if (entry.type === "modal" && afterModalCloses) {
79
+ afterModalCloses();
80
+ }
81
+ }, [afterDrawerCloses, afterModalCloses, recalculate]);
82
+ return (React__default.createElement(OverlayRegistryContext.Provider, { value: {
83
+ register,
84
+ unregister,
85
+ notifyChange: recalculate,
86
+ showOverlay,
87
+ hideOverlay,
88
+ hasOpenDrawer,
89
+ hasOpenModal,
90
+ } }, children));
91
+ };
92
+
93
+ export { OverlayRegistryProvider };
94
+ //# sourceMappingURL=OverlayRegistryProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverlayRegistryProvider.js","sources":["../../../src/library/providers/OverlayRegistryProvider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -1,9 +1,17 @@
1
1
  import React from "react";
2
2
  import "../styles/global.scss";
3
+ import { IOverlayRegistryProviderProps } from "./OverlayRegistryProvider";
3
4
  import { ResoThemeConfig, ThemeMode } from "../types/theme";
5
+ export interface IOverlayConfig {
6
+ beforeDrawerOpens?: IOverlayRegistryProviderProps["beforeDrawerOpens"];
7
+ beforeModalOpens?: IOverlayRegistryProviderProps["beforeModalOpens"];
8
+ afterDrawerCloses?: IOverlayRegistryProviderProps["afterDrawerCloses"];
9
+ afterModalCloses?: IOverlayRegistryProviderProps["afterModalCloses"];
10
+ }
4
11
  export interface IResoUiProviderProps {
5
12
  children: React.ReactNode;
6
13
  theme?: ResoThemeConfig;
7
14
  mode?: ThemeMode;
15
+ overlayConfigs?: IOverlayConfig;
8
16
  }
9
- export declare const ResoUiProvider: ({ children, theme, mode }: IResoUiProviderProps) => React.JSX.Element;
17
+ export declare const ResoUiProvider: ({ children, theme, mode, overlayConfigs }: IResoUiProviderProps) => React.JSX.Element;
@@ -1,10 +1,12 @@
1
1
  import React__default from 'react';
2
2
  import { ResponsiveProvider } from './ResponsiveProvider.js';
3
3
  import { ThemeProvider } from './ThemeProvider.js';
4
+ import { OverlayRegistryProvider } from './OverlayRegistryProvider.js';
4
5
 
5
- const ResoUiProvider = ({ children, theme, mode = "light" }) => {
6
+ const ResoUiProvider = ({ children, theme, mode = "light", overlayConfigs }) => {
6
7
  return (React__default.createElement(ThemeProvider, { theme: theme, mode: mode },
7
- React__default.createElement(ResponsiveProvider, null, children)));
8
+ React__default.createElement(ResponsiveProvider, null,
9
+ React__default.createElement(OverlayRegistryProvider, { beforeDrawerOpens: overlayConfigs === null || overlayConfigs === void 0 ? void 0 : overlayConfigs.beforeDrawerOpens, beforeModalOpens: overlayConfigs === null || overlayConfigs === void 0 ? void 0 : overlayConfigs.beforeModalOpens, afterDrawerCloses: overlayConfigs === null || overlayConfigs === void 0 ? void 0 : overlayConfigs.afterDrawerCloses, afterModalCloses: overlayConfigs === null || overlayConfigs === void 0 ? void 0 : overlayConfigs.afterModalCloses }, children))));
8
10
  };
9
11
 
10
12
  export { ResoUiProvider };
@@ -1 +1 @@
1
- {"version":3,"file":"ResoUiProvider.js","sources":["../../../src/library/providers/ResoUiProvider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":";;;;AAYO,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,EAAwB,KAAI;IAC1F,QACEA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAA;AACrC,QAAAA,cAAA,CAAA,aAAA,CAAC,kBAAkB,EAAA,IAAA,EAAE,QAAQ,CAAsB,CACrC;AAEpB;;;;"}
1
+ {"version":3,"file":"ResoUiProvider.js","sources":["../../../src/library/providers/ResoUiProvider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":";;;;;AAqBO,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,EAAE,cAAc,EAAwB,KAAI;IAC1G,QACEA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAA;AACrC,QAAAA,cAAA,CAAA,aAAA,CAAC,kBAAkB,EAAA,IAAA;YACjBA,cAAA,CAAA,aAAA,CAAC,uBAAuB,IACtB,iBAAiB,EAAE,cAAc,KAAA,IAAA,IAAd,cAAc,uBAAd,cAAc,CAAE,iBAAiB,EACpD,gBAAgB,EAAE,cAAc,KAAA,IAAA,IAAd,cAAc,KAAA,MAAA,GAAA,MAAA,GAAd,cAAc,CAAE,gBAAgB,EAClD,iBAAiB,EAAE,cAAc,KAAA,IAAA,IAAd,cAAc,KAAA,MAAA,GAAA,MAAA,GAAd,cAAc,CAAE,iBAAiB,EACpD,gBAAgB,EAAE,cAAc,KAAA,IAAA,IAAd,cAAc,KAAA,MAAA,GAAA,MAAA,GAAd,cAAc,CAAE,gBAAgB,EAAA,EAEjD,QAAQ,CACe,CACP,CACP;AAEpB;;;;"}
@@ -1,3 +1,4 @@
1
1
  export * from "./ResoUiProvider";
2
2
  export * from "./ResponsiveProvider";
3
3
  export * from "./ThemeProvider";
4
+ export * from "./OverlayRegistryProvider";
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import IComponent from "../../../interfaces/IComponent";
3
3
  import "./styles/Banner.layout.scss";
4
+ import "./styles/Banner.theme.scss";
4
5
  export declare const TRANSITION_DURATION = 250;
5
6
  export interface IBannerProps extends IComponent {
6
7
  type: "info" | "warning" | "error" | "success";
@@ -23,15 +23,15 @@ declare const _default: {
23
23
  okButtonStyles?: React.CSSProperties;
24
24
  rootClassName?: string;
25
25
  rootStyles?: React.CSSProperties;
26
- pa?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
27
- pv?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
28
- ph?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
29
- pt?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
30
- pb?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
31
- pr?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
32
- pl?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
33
26
  isOpen: boolean;
34
27
  layer?: number;
28
+ pa?: 0 | 2 | 1 | 3 | 4 | 8 | 5 | 6 | 7 | 9;
29
+ pv?: 0 | 2 | 1 | 3 | 4 | 8 | 5 | 6 | 7 | 9;
30
+ ph?: 0 | 2 | 1 | 3 | 4 | 8 | 5 | 6 | 7 | 9;
31
+ pt?: 0 | 2 | 1 | 3 | 4 | 8 | 5 | 6 | 7 | 9;
32
+ pb?: 0 | 2 | 1 | 3 | 4 | 8 | 5 | 6 | 7 | 9;
33
+ pr?: 0 | 2 | 1 | 3 | 4 | 8 | 5 | 6 | 7 | 9;
34
+ pl?: 0 | 2 | 1 | 3 | 4 | 8 | 5 | 6 | 7 | 9;
35
35
  }>) => React.JSX.Element)[];
36
36
  parameters: {
37
37
  docs: {
@@ -0,0 +1,18 @@
1
+ export type OverlayType = "drawer" | "modal" | "dialog";
2
+ export interface OverlayRegistration {
3
+ name: string;
4
+ type: OverlayType;
5
+ getIsOpen: () => boolean;
6
+ show: () => void;
7
+ hide: () => void;
8
+ }
9
+ export interface IOverlayRegistryContext {
10
+ register: (overlay: OverlayRegistration) => void;
11
+ unregister: (name: string) => void;
12
+ notifyChange: () => void;
13
+ showOverlay: (name: string) => void;
14
+ hideOverlay: (name: string) => void;
15
+ hasOpenDrawer: boolean;
16
+ hasOpenModal: boolean;
17
+ }
18
+ export declare const OverlayRegistryContext: import("react").Context<IOverlayRegistryContext>;
@@ -1,2 +1,3 @@
1
1
  export * from "./ResponsiveContext";
2
2
  export * from "./ThemeContext";
3
+ export * from "./OverlayRegistryContext";
@@ -5,3 +5,4 @@ export * from "./useDynamicBodyHeight";
5
5
  export * from "./useComponentWidthHeight";
6
6
  export * from "./useReducedMotion";
7
7
  export * from "./useTheme";
8
+ export * from "./useOverlayRegistration";
@@ -0,0 +1,9 @@
1
+ import { OverlayType } from "../context/OverlayRegistryContext";
2
+ export interface UseOverlayRegistrationProps {
3
+ name: string;
4
+ type: OverlayType;
5
+ isOpen: boolean;
6
+ show: () => void;
7
+ hide: () => void;
8
+ }
9
+ export declare const useOverlayRegistration: ({ name, type, isOpen, show, hide, }: UseOverlayRegistrationProps) => void;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export interface IOverlayRegistryProviderProps {
3
+ children: React.ReactNode;
4
+ beforeDrawerOpens?: () => Promise<void> | void;
5
+ beforeModalOpens?: () => Promise<void> | void;
6
+ afterDrawerCloses?: () => void;
7
+ afterModalCloses?: () => void;
8
+ }
9
+ export declare const OverlayRegistryProvider: ({ children, beforeDrawerOpens, beforeModalOpens, afterDrawerCloses, afterModalCloses, }: IOverlayRegistryProviderProps) => React.JSX.Element;
@@ -1,9 +1,17 @@
1
1
  import React from "react";
2
2
  import "../styles/global.scss";
3
+ import { IOverlayRegistryProviderProps } from "./OverlayRegistryProvider";
3
4
  import { ResoThemeConfig, ThemeMode } from "../types/theme";
5
+ export interface IOverlayConfig {
6
+ beforeDrawerOpens?: IOverlayRegistryProviderProps["beforeDrawerOpens"];
7
+ beforeModalOpens?: IOverlayRegistryProviderProps["beforeModalOpens"];
8
+ afterDrawerCloses?: IOverlayRegistryProviderProps["afterDrawerCloses"];
9
+ afterModalCloses?: IOverlayRegistryProviderProps["afterModalCloses"];
10
+ }
4
11
  export interface IResoUiProviderProps {
5
12
  children: React.ReactNode;
6
13
  theme?: ResoThemeConfig;
7
14
  mode?: ThemeMode;
15
+ overlayConfigs?: IOverlayConfig;
8
16
  }
9
- export declare const ResoUiProvider: ({ children, theme, mode }: IResoUiProviderProps) => React.JSX.Element;
17
+ export declare const ResoUiProvider: ({ children, theme, mode, overlayConfigs }: IResoUiProviderProps) => React.JSX.Element;
@@ -1,3 +1,4 @@
1
1
  export * from "./ResoUiProvider";
2
2
  export * from "./ResponsiveProvider";
3
3
  export * from "./ThemeProvider";
4
+ export * from "./OverlayRegistryProvider";
@@ -0,0 +1,44 @@
1
+ import React from "react";
2
+ import { Meta } from "@storybook/react";
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ export declare const ExclusiveDrawers: {
6
+ (): React.JSX.Element;
7
+ parameters: {
8
+ docs: {
9
+ description: {
10
+ story: string;
11
+ };
12
+ };
13
+ };
14
+ };
15
+ export declare const OverlayState: {
16
+ (): React.JSX.Element;
17
+ parameters: {
18
+ docs: {
19
+ description: {
20
+ story: string;
21
+ };
22
+ };
23
+ };
24
+ };
25
+ export declare const RootSetup: {
26
+ (): React.JSX.Element;
27
+ parameters: {
28
+ docs: {
29
+ description: {
30
+ story: string;
31
+ };
32
+ };
33
+ };
34
+ };
35
+ export declare const WithLifecycleCallbacks: {
36
+ (): React.JSX.Element;
37
+ parameters: {
38
+ docs: {
39
+ description: {
40
+ story: string;
41
+ };
42
+ };
43
+ };
44
+ };