react-bounded-overlay-manager 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/assets/Overlay.css +1 -0
- package/dist/assets/OverlaysContainer.css +1 -0
- package/dist/events-B7I8KoZ9.js +228 -0
- package/dist/index-7ofMxoL9.js +8811 -0
- package/dist/index.module-WXM1Xk0w.js +60 -0
- package/dist/main.d.ts +7 -0
- package/dist/main.js +12 -0
- package/dist/react.esm-GKFzux-6.js +12736 -0
- package/dist/src/api/BoundedOverlayManagerApi.d.ts +14 -0
- package/dist/src/api/BoundedOverlayManagerApi.js +24 -0
- package/dist/src/components/BoundedOverlayManager.d.ts +7 -0
- package/dist/src/components/BoundedOverlayManager.js +17 -0
- package/dist/src/components/BoundedOverlayManagerContent.d.ts +15 -0
- package/dist/src/components/BoundedOverlayManagerContent.js +46 -0
- package/dist/src/components/Overlay.d.ts +26 -0
- package/dist/src/components/Overlay.js +43 -0
- package/dist/src/components/OverlaysContainer.d.ts +11 -0
- package/dist/src/components/OverlaysContainer.js +12 -0
- package/dist/src/components/test/BoundedOverlayManager.test.d.ts +0 -0
- package/dist/src/components/test/BoundedOverlayManager.test.js +37 -0
- package/dist/src/components/test/BoundedOverlayManagerContent.test.d.ts +0 -0
- package/dist/src/components/test/BoundedOverlayManagerContent.test.js +92 -0
- package/dist/src/components/test/Overlay.test.d.ts +0 -0
- package/dist/src/components/test/Overlay.test.js +245 -0
- package/dist/src/components/test/OverlaysContainer.test.d.ts +0 -0
- package/dist/src/components/test/OverlaysContainer.test.js +36 -0
- package/dist/src/config.d.ts +6 -0
- package/dist/src/config.js +9 -0
- package/dist/src/context/OverlayManagerContext.d.ts +13 -0
- package/dist/src/context/OverlayManagerContext.js +23 -0
- package/dist/src/context/test/OverlayManagerContext.test.d.ts +1 -0
- package/dist/src/context/test/OverlayManagerContext.test.js +31 -0
- package/dist/src/enum/PredefinedPosition.d.ts +12 -0
- package/dist/src/enum/PredefinedPosition.js +4 -0
- package/dist/src/hooks/test/useApiUpdateHandler.test.d.ts +1 -0
- package/dist/src/hooks/test/useApiUpdateHandler.test.js +28 -0
- package/dist/src/hooks/test/useForwardBoundingComponentEvents.test.d.ts +1 -0
- package/dist/src/hooks/test/useForwardBoundingComponentEvents.test.js +62 -0
- package/dist/src/hooks/test/useForwardOverlayEvents.test.d.ts +1 -0
- package/dist/src/hooks/test/useForwardOverlayEvents.test.js +43 -0
- package/dist/src/hooks/test/useFullscreenChange.test.d.ts +1 -0
- package/dist/src/hooks/test/useFullscreenChange.test.js +33 -0
- package/dist/src/hooks/test/useOverlayManagerEvents.test.d.ts +1 -0
- package/dist/src/hooks/test/useOverlayManagerEvents.test.js +87 -0
- package/dist/src/hooks/test/useResizeObserver.test.d.ts +1 -0
- package/dist/src/hooks/test/useResizeObserver.test.js +47 -0
- package/dist/src/hooks/test/useScrollOnDocument.test.d.ts +1 -0
- package/dist/src/hooks/test/useScrollOnDocument.test.js +38 -0
- package/dist/src/hooks/test/useTimedEventManager.test.d.ts +1 -0
- package/dist/src/hooks/test/useTimedEventManager.test.js +41 -0
- package/dist/src/hooks/test/useWindowResize.test.d.ts +1 -0
- package/dist/src/hooks/test/useWindowResize.test.js +38 -0
- package/dist/src/hooks/test/util.d.ts +7 -0
- package/dist/src/hooks/test/util.js +20 -0
- package/dist/src/hooks/useApiUpdateHandler.d.ts +6 -0
- package/dist/src/hooks/useApiUpdateHandler.js +10 -0
- package/dist/src/hooks/useForwardBoundingComponentEvents.d.ts +2 -0
- package/dist/src/hooks/useForwardBoundingComponentEvents.js +20 -0
- package/dist/src/hooks/useForwardOverlayEvents.d.ts +6 -0
- package/dist/src/hooks/useForwardOverlayEvents.js +21 -0
- package/dist/src/hooks/useFullscreenChange.d.ts +5 -0
- package/dist/src/hooks/useFullscreenChange.js +16 -0
- package/dist/src/hooks/useOverlayManagerEvents.d.ts +8 -0
- package/dist/src/hooks/useOverlayManagerEvents.js +34 -0
- package/dist/src/hooks/useResizeObserver.d.ts +6 -0
- package/dist/src/hooks/useResizeObserver.js +19 -0
- package/dist/src/hooks/useScrollOnDocument.d.ts +5 -0
- package/dist/src/hooks/useScrollOnDocument.js +11 -0
- package/dist/src/hooks/useTimedEventManager.d.ts +6 -0
- package/dist/src/hooks/useTimedEventManager.js +15 -0
- package/dist/src/hooks/useWindowResize.d.ts +5 -0
- package/dist/src/hooks/useWindowResize.js +11 -0
- package/dist/src/timer/TimedEventManager.d.ts +16 -0
- package/dist/src/timer/TimedEventManager.js +25 -0
- package/dist/src/timer/test/TimedEventManager.test.d.ts +1 -0
- package/dist/src/timer/test/TimedEventManager.test.js +26 -0
- package/dist/src/types/OffsetProps.d.ts +37 -0
- package/dist/src/types/OffsetProps.js +1 -0
- package/dist/src/util/bbox.d.ts +7 -0
- package/dist/src/util/bbox.js +20 -0
- package/dist/vite-env.d.js +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useEffect as v } from "react";
|
|
2
|
+
import { useOverlayManagerContext as a } from "../context/OverlayManagerContext.js";
|
|
3
|
+
const l = ({ overlayRef: t }) => {
|
|
4
|
+
const { overlayManagerEventEmitter: o } = a();
|
|
5
|
+
v(() => {
|
|
6
|
+
const e = t.current;
|
|
7
|
+
if (!e)
|
|
8
|
+
return;
|
|
9
|
+
const r = (s) => {
|
|
10
|
+
o.emit("mouseleaveOnOverlay", s);
|
|
11
|
+
}, n = () => {
|
|
12
|
+
o.emit("mousemoveOnOverlay");
|
|
13
|
+
};
|
|
14
|
+
return e.addEventListener("mouseleave", r), e.addEventListener("mousemove", n), () => {
|
|
15
|
+
e.removeEventListener("mouseleave", r), e.removeEventListener("mousemove", n);
|
|
16
|
+
};
|
|
17
|
+
}, [t]);
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
l as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect as c } from "react";
|
|
2
|
+
const o = ({ handleFullscreenChange: e }) => {
|
|
3
|
+
c(() => {
|
|
4
|
+
const n = ["fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "MSFullscreenChange"];
|
|
5
|
+
return n.forEach((t) => {
|
|
6
|
+
document.addEventListener(t, e);
|
|
7
|
+
}), () => {
|
|
8
|
+
n.forEach((t) => {
|
|
9
|
+
document.removeEventListener(t, e);
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
}, [e]);
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
o as default
|
|
16
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import TimedEventManager from "../timer/TimedEventManager";
|
|
2
|
+
type Options = {
|
|
3
|
+
timedEventManager: TimedEventManager | null;
|
|
4
|
+
requestStartOnMouseMove?: boolean;
|
|
5
|
+
requestStopOnMouseMove?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare const useOverlayManagerEvents: ({ timedEventManager, requestStartOnMouseMove, requestStopOnMouseMove, }: Options) => void;
|
|
8
|
+
export default useOverlayManagerEvents;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useEffect as v } from "react";
|
|
2
|
+
import { useOverlayManagerContext as i } from "../context/OverlayManagerContext.js";
|
|
3
|
+
const d = ({
|
|
4
|
+
timedEventManager: e,
|
|
5
|
+
requestStartOnMouseMove: o = !0,
|
|
6
|
+
requestStopOnMouseMove: r = !0
|
|
7
|
+
}) => {
|
|
8
|
+
const { overlayManagerEventEmitter: n, boundingComponentRef: u } = i();
|
|
9
|
+
v(() => {
|
|
10
|
+
if (e === null)
|
|
11
|
+
return;
|
|
12
|
+
const a = () => {
|
|
13
|
+
o && e.requestStart();
|
|
14
|
+
}, l = () => {
|
|
15
|
+
r && e.requestStop();
|
|
16
|
+
}, s = (O) => {
|
|
17
|
+
var m;
|
|
18
|
+
if (r) {
|
|
19
|
+
const t = O.relatedTarget;
|
|
20
|
+
if (t && ((m = u.current) != null && m.contains(t) || u.current === t))
|
|
21
|
+
return;
|
|
22
|
+
e.requestStop();
|
|
23
|
+
}
|
|
24
|
+
}, f = () => {
|
|
25
|
+
o && e.requestStart();
|
|
26
|
+
};
|
|
27
|
+
return n.on("mousemoveOnBoundingComponent", a), n.on("mouseleaveOnBoundingComponent", l), n.on("mouseleaveOnOverlay", s), n.on("mousemoveOnOverlay", f), () => {
|
|
28
|
+
n.off("mousemoveOnBoundingComponent", a), n.off("mouseleaveOnBoundingComponent", l), n.off("mouseleaveOnOverlay", s), n.off("mousemoveOnOverlay", f);
|
|
29
|
+
};
|
|
30
|
+
}, [e, o, r]);
|
|
31
|
+
};
|
|
32
|
+
export {
|
|
33
|
+
d as default
|
|
34
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useEffect as f } from "react";
|
|
2
|
+
import { c as t } from "../../index.module-WXM1Xk0w.js";
|
|
3
|
+
function b(e, { handleResize: s }) {
|
|
4
|
+
const r = t(s, 1);
|
|
5
|
+
f(() => {
|
|
6
|
+
if (!e.current)
|
|
7
|
+
return;
|
|
8
|
+
const o = new ResizeObserver((n) => {
|
|
9
|
+
for (const c of n)
|
|
10
|
+
r(c);
|
|
11
|
+
});
|
|
12
|
+
return o.observe(e.current), () => {
|
|
13
|
+
o.disconnect();
|
|
14
|
+
};
|
|
15
|
+
}, [e, r]);
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
b as default
|
|
19
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useEffect as t } from "react";
|
|
2
|
+
import { c as r } from "../../index.module-WXM1Xk0w.js";
|
|
3
|
+
const l = ({ handleScroll: o }) => {
|
|
4
|
+
const e = r(o, 1);
|
|
5
|
+
t(() => (document.addEventListener("scroll", e), () => {
|
|
6
|
+
document.removeEventListener("scroll", e);
|
|
7
|
+
}), [e]);
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
l as default
|
|
11
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import TimedEventManager, { TimeoutManagerOptions } from '../timer/TimedEventManager';
|
|
2
|
+
type Options = TimeoutManagerOptions & {
|
|
3
|
+
returnNull?: boolean;
|
|
4
|
+
};
|
|
5
|
+
declare function useTimedEventManager({ onStart, onStop, timeoutDuration, returnNull }: Options): TimedEventManager | null;
|
|
6
|
+
export default useTimedEventManager;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useMemo as u, useEffect as t } from "react";
|
|
2
|
+
import m from "../timer/TimedEventManager.js";
|
|
3
|
+
function c({ onStart: r, onStop: f, timeoutDuration: n, returnNull: s = !1 }) {
|
|
4
|
+
const e = u(() => s ? null : new m({
|
|
5
|
+
onStart: r,
|
|
6
|
+
onStop: f,
|
|
7
|
+
timeoutDuration: n
|
|
8
|
+
}), [r, f, n, s]);
|
|
9
|
+
return t(() => () => {
|
|
10
|
+
e == null || e.requestStop();
|
|
11
|
+
}, [e]), e;
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
c as default
|
|
15
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useEffect as o } from "react";
|
|
2
|
+
import { c as r } from "../../index.module-WXM1Xk0w.js";
|
|
3
|
+
const s = ({ handleResize: n }) => {
|
|
4
|
+
const e = r(n, 1);
|
|
5
|
+
o(() => (window.addEventListener("resize", e), () => {
|
|
6
|
+
window.removeEventListener("resize", e);
|
|
7
|
+
}), [e]);
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
s as default
|
|
11
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type TimeoutManagerOptions = {
|
|
2
|
+
onStart: () => void;
|
|
3
|
+
onStop: () => void;
|
|
4
|
+
timeoutDuration: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const NO_TIMEOUT = -1;
|
|
7
|
+
declare class TimedEventManager {
|
|
8
|
+
private onStart;
|
|
9
|
+
private onStop;
|
|
10
|
+
private timeoutDuration;
|
|
11
|
+
private timeoutId;
|
|
12
|
+
constructor({ onStart, onStop, timeoutDuration }: TimeoutManagerOptions);
|
|
13
|
+
requestStart(): void;
|
|
14
|
+
requestStop(): void;
|
|
15
|
+
}
|
|
16
|
+
export default TimedEventManager;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var s = Object.defineProperty;
|
|
2
|
+
var r = (e, t, i) => t in e ? s(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i;
|
|
3
|
+
var o = (e, t, i) => (r(e, typeof t != "symbol" ? t + "" : t, i), i);
|
|
4
|
+
const n = -1;
|
|
5
|
+
class h {
|
|
6
|
+
constructor({ onStart: t, onStop: i, timeoutDuration: u }) {
|
|
7
|
+
o(this, "onStart");
|
|
8
|
+
o(this, "onStop");
|
|
9
|
+
o(this, "timeoutDuration");
|
|
10
|
+
o(this, "timeoutId", null);
|
|
11
|
+
this.onStart = t, this.onStop = i, this.timeoutDuration = u;
|
|
12
|
+
}
|
|
13
|
+
requestStart() {
|
|
14
|
+
this.timeoutId ? (clearTimeout(this.timeoutId), this.timeoutId = null) : this.onStart(), this.timeoutDuration === -1 ? this.timeoutId = -1 : this.timeoutId = setTimeout(() => {
|
|
15
|
+
this.requestStop();
|
|
16
|
+
}, this.timeoutDuration);
|
|
17
|
+
}
|
|
18
|
+
requestStop() {
|
|
19
|
+
this.timeoutId && (this.timeoutId !== -1 && clearTimeout(this.timeoutId), this.timeoutId = null, this.onStop());
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
n as NO_TIMEOUT,
|
|
24
|
+
h as default
|
|
25
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import r, { NO_TIMEOUT as s } from "../TimedEventManager.js";
|
|
2
|
+
describe("TimedEventManager", () => {
|
|
3
|
+
let a, t, e;
|
|
4
|
+
const o = ({ onStart: i, onStop: l, timeoutDuration: n } = {}) => new r({
|
|
5
|
+
onStart: i || a,
|
|
6
|
+
onStop: l || t,
|
|
7
|
+
timeoutDuration: n || 1e3
|
|
8
|
+
});
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
a = jest.fn(), t = jest.fn(), e = o(), jest.useFakeTimers(), jest.spyOn(global, "setTimeout"), jest.spyOn(global, "clearTimeout");
|
|
11
|
+
}), afterEach(() => {
|
|
12
|
+
jest.useRealTimers(), jest.restoreAllMocks();
|
|
13
|
+
}), it("should call onStart when requestStart is called", () => {
|
|
14
|
+
e.requestStart(), expect(a).toHaveBeenCalled();
|
|
15
|
+
}), it("should set a timeout and call onStop after the specified duration", () => {
|
|
16
|
+
e.requestStart(), expect(setTimeout).toHaveBeenCalledWith(expect.any(Function), 1e3), expect(a).toHaveBeenCalled(), jest.advanceTimersByTime(1e3), expect(t).toHaveBeenCalled();
|
|
17
|
+
}), it("should clear the timeout when requestStop is called", () => {
|
|
18
|
+
e.requestStart(), e.requestStop(), expect(clearTimeout).toHaveBeenCalledWith(expect.any(Number)), jest.advanceTimersByTime(1e3), expect(t).toHaveBeenCalled();
|
|
19
|
+
}), it("should handle NO_TIMEOUT case correctly", () => {
|
|
20
|
+
e = o({ timeoutDuration: s }), e.requestStart(), expect(setTimeout).not.toHaveBeenCalled(), expect(a).toHaveBeenCalled(), e.requestStop(), expect(clearTimeout).not.toHaveBeenCalled(), expect(t).toHaveBeenCalled();
|
|
21
|
+
}), it("should handle multiple requestStart calls before timeout clears", () => {
|
|
22
|
+
e.requestStart(), jest.advanceTimersByTime(1e3 / 2), e.requestStart(), expect(setTimeout).toHaveBeenCalledTimes(2), expect(clearTimeout).toHaveBeenCalledTimes(1), expect(a).toHaveBeenCalledTimes(1), jest.advanceTimersByTime(1e3), expect(t).toHaveBeenCalledTimes(1);
|
|
23
|
+
}), it("should not do anything on requestStop call without an active timeout", () => {
|
|
24
|
+
e.requestStop(), expect(t).not.toHaveBeenCalled();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CSSProperties } from "react";
|
|
2
|
+
export type TopLeftOffsetProps = {
|
|
3
|
+
top?: CSSProperties['top'];
|
|
4
|
+
left?: CSSProperties['left'];
|
|
5
|
+
};
|
|
6
|
+
export type TopRightOffsetProps = {
|
|
7
|
+
top?: CSSProperties['top'];
|
|
8
|
+
right?: CSSProperties['right'];
|
|
9
|
+
};
|
|
10
|
+
export type BottomLeftOffsetProps = {
|
|
11
|
+
bottom?: CSSProperties['bottom'];
|
|
12
|
+
left?: CSSProperties['left'];
|
|
13
|
+
};
|
|
14
|
+
export type BottomRightOffsetProps = {
|
|
15
|
+
bottom?: CSSProperties['bottom'];
|
|
16
|
+
right?: CSSProperties['right'];
|
|
17
|
+
};
|
|
18
|
+
export type TopCenterOffsetProps = {
|
|
19
|
+
top?: CSSProperties['top'];
|
|
20
|
+
leftInPercent?: number;
|
|
21
|
+
};
|
|
22
|
+
export type BottomCenterOffsetProps = {
|
|
23
|
+
bottom?: CSSProperties['bottom'];
|
|
24
|
+
leftInPercent?: number;
|
|
25
|
+
};
|
|
26
|
+
export type MidLeftOffsetProps = {
|
|
27
|
+
left?: CSSProperties['left'];
|
|
28
|
+
topInPercent?: number;
|
|
29
|
+
};
|
|
30
|
+
export type MidRightOffsetProps = {
|
|
31
|
+
right?: CSSProperties['right'];
|
|
32
|
+
topInPercent?: number;
|
|
33
|
+
};
|
|
34
|
+
export type CenterOffsetProps = {
|
|
35
|
+
topInPercent?: number;
|
|
36
|
+
leftInPercent?: number;
|
|
37
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const getComponentBoundingBoxRelativeToBody: (ref: React.RefObject<HTMLElement>) => {
|
|
2
|
+
top: number;
|
|
3
|
+
left: number;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const copyComponentBoundingBox: (sourceRef: React.RefObject<HTMLElement>, targetRef: React.RefObject<HTMLElement>) => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const i = (e) => {
|
|
2
|
+
if (!e.current)
|
|
3
|
+
throw new Error("The ref is not attached to any element");
|
|
4
|
+
const { top: t, left: n, width: o, height: c } = e.current.getBoundingClientRect(), r = window.pageYOffset || document.documentElement.scrollTop, l = window.pageXOffset || document.documentElement.scrollLeft;
|
|
5
|
+
return {
|
|
6
|
+
top: t + r,
|
|
7
|
+
left: n + l,
|
|
8
|
+
width: o,
|
|
9
|
+
height: c
|
|
10
|
+
};
|
|
11
|
+
}, p = (e, t) => {
|
|
12
|
+
if (e.current && t.current) {
|
|
13
|
+
const { top: n, left: o, width: c, height: r } = i(e);
|
|
14
|
+
t.current.style.top = `${n}px`, t.current.style.left = `${o}px`, t.current.style.width = `${c}px`, t.current.style.height = `${r}px`;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
p as copyComponentBoundingBox,
|
|
19
|
+
i as getComponentBoundingBoxRelativeToBody
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/dist/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "react-bounded-overlay-manager",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "1.0.0-beta.1",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/main.js",
|
|
7
|
+
"types": "dist/main.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"dev": "vite",
|
|
13
|
+
"build": "tsc --p ./tsconfig-build.json && vite build",
|
|
14
|
+
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
15
|
+
"preview": "vite preview",
|
|
16
|
+
"test": "jest",
|
|
17
|
+
"storybook": "storybook dev -p 6007",
|
|
18
|
+
"build-storybook": "storybook build"
|
|
19
|
+
},
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"react": "^18.2.0",
|
|
22
|
+
"react-dom": "^18.2.0"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@cypress/react18": "^2.0.0",
|
|
26
|
+
"@cypress/vite-dev-server": "^5.0.7",
|
|
27
|
+
"@storybook/addon-essentials": "^7.6.6",
|
|
28
|
+
"@storybook/addon-interactions": "^7.6.6",
|
|
29
|
+
"@storybook/addon-links": "^7.6.6",
|
|
30
|
+
"@storybook/addon-onboarding": "^1.0.10",
|
|
31
|
+
"@storybook/blocks": "^7.6.6",
|
|
32
|
+
"@storybook/react": "^7.6.6",
|
|
33
|
+
"@storybook/react-vite": "^7.6.6",
|
|
34
|
+
"@storybook/test": "^7.6.6",
|
|
35
|
+
"@testing-library/jest-dom": "^6.1.5",
|
|
36
|
+
"@testing-library/react": "^14.1.2",
|
|
37
|
+
"@types/events": "^3.0.3",
|
|
38
|
+
"@types/jest": "^29.5.11",
|
|
39
|
+
"@types/node": "^20.10.5",
|
|
40
|
+
"@types/react": "^18.2.43",
|
|
41
|
+
"@types/react-dom": "^18.2.17",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
43
|
+
"@typescript-eslint/parser": "^6.14.0",
|
|
44
|
+
"@vitejs/plugin-react": "^4.2.1",
|
|
45
|
+
"cypress": "^13.6.2",
|
|
46
|
+
"eslint": "^8.55.0",
|
|
47
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
48
|
+
"eslint-plugin-react-refresh": "^0.4.5",
|
|
49
|
+
"eslint-plugin-storybook": "^0.6.15",
|
|
50
|
+
"glob": "^10.3.10",
|
|
51
|
+
"identity-obj-proxy": "^3.0.0",
|
|
52
|
+
"jest": "^29.7.0",
|
|
53
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
54
|
+
"react": "^18.2.0",
|
|
55
|
+
"react-dom": "^18.2.0",
|
|
56
|
+
"react-full-screen": "^1.1.1",
|
|
57
|
+
"react-fullscreen-crossbrowser": "^1.1.3",
|
|
58
|
+
"storybook": "^7.6.6",
|
|
59
|
+
"ts-jest": "^29.1.1",
|
|
60
|
+
"ts-node": "^10.9.2",
|
|
61
|
+
"typescript": "^5.2.2",
|
|
62
|
+
"vite": "^5.0.8",
|
|
63
|
+
"vite-plugin-dts": "^3.6.4",
|
|
64
|
+
"vite-plugin-lib-inject-css": "^1.3.0"
|
|
65
|
+
},
|
|
66
|
+
"dependencies": {
|
|
67
|
+
"events": "^3.3.0",
|
|
68
|
+
"use-debounce": "^10.0.0"
|
|
69
|
+
}
|
|
70
|
+
}
|