@x-plat/design-system 0.8.0 → 0.8.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.
@@ -35,30 +35,25 @@ __export(Dropdown_exports, {
35
35
  module.exports = __toCommonJS(Dropdown_exports);
36
36
 
37
37
  // src/components/Dropdown/Dropdown.tsx
38
- var import_react4 = __toESM(require("react"), 1);
38
+ var import_react3 = __toESM(require("react"), 1);
39
39
 
40
40
  // src/tokens/hooks/Portal.tsx
41
- var import_react = __toESM(require("react"), 1);
42
41
  var import_react_dom = __toESM(require("react-dom"), 1);
43
- var import_jsx_runtime = require("react/jsx-runtime");
44
- var PortalContainerContext = import_react.default.createContext(null);
45
42
  var Portal = ({ children }) => {
46
- const contextContainer = import_react.default.useContext(PortalContainerContext);
47
43
  if (typeof document === "undefined") return null;
48
- const container = contextContainer ?? document.body;
49
- return import_react_dom.default.createPortal(children, container);
44
+ return import_react_dom.default.createPortal(children, document.body);
50
45
  };
51
46
  Portal.displayName = "Portal";
52
47
  var Portal_default = Portal;
53
48
 
54
49
  // src/tokens/hooks/useAutoPosition.ts
55
- var import_react2 = __toESM(require("react"), 1);
50
+ var import_react = __toESM(require("react"), 1);
56
51
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
57
- const [position, setPosition] = import_react2.default.useState({
52
+ const [position, setPosition] = import_react.default.useState({
58
53
  position: {},
59
54
  direction: "bottom"
60
55
  });
61
- const calculatePosition = import_react2.default.useCallback(() => {
56
+ const calculatePosition = import_react.default.useCallback(() => {
62
57
  if (!triggerRef.current || !popRef.current) return;
63
58
  const triggerRect = triggerRef.current.getBoundingClientRect();
64
59
  const popW = popRef.current.offsetWidth;
@@ -85,13 +80,13 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
85
80
  direction
86
81
  });
87
82
  }, [triggerRef, popRef]);
88
- import_react2.default.useLayoutEffect(() => {
83
+ import_react.default.useLayoutEffect(() => {
89
84
  if (!enabled) return;
90
85
  calculatePosition();
91
86
  const raf = requestAnimationFrame(calculatePosition);
92
87
  return () => cancelAnimationFrame(raf);
93
88
  }, [calculatePosition, enabled]);
94
- import_react2.default.useEffect(() => {
89
+ import_react.default.useEffect(() => {
95
90
  if (!enabled || !popRef.current) return;
96
91
  const observer = new ResizeObserver(() => {
97
92
  calculatePosition();
@@ -99,7 +94,7 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
99
94
  observer.observe(popRef.current);
100
95
  return () => observer.disconnect();
101
96
  }, [calculatePosition, enabled, popRef]);
102
- import_react2.default.useEffect(() => {
97
+ import_react.default.useEffect(() => {
103
98
  if (!enabled) return;
104
99
  window.addEventListener("resize", calculatePosition);
105
100
  window.addEventListener("scroll", calculatePosition, true);
@@ -113,9 +108,9 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
113
108
  var useAutoPosition_default = useAutoPosition;
114
109
 
115
110
  // src/tokens/hooks/useClickOutside.ts
116
- var import_react3 = __toESM(require("react"), 1);
111
+ var import_react2 = __toESM(require("react"), 1);
117
112
  var useClickOutside = (refs, handler, enabled = true) => {
118
- import_react3.default.useEffect(() => {
113
+ import_react2.default.useEffect(() => {
119
114
  if (!enabled) return;
120
115
  const refArray = Array.isArray(refs) ? refs : [refs];
121
116
  const listener = (event) => {
@@ -154,17 +149,17 @@ function clsx() {
154
149
  var clsx_default = clsx;
155
150
 
156
151
  // src/components/Dropdown/Dropdown.tsx
157
- var import_jsx_runtime2 = require("react/jsx-runtime");
152
+ var import_jsx_runtime = require("react/jsx-runtime");
158
153
  var Dropdown = (props) => {
159
154
  const { items, children } = props;
160
- const [isOpen, setIsOpen] = import_react4.default.useState(false);
161
- const [mounted, setMounted] = import_react4.default.useState(false);
162
- const [visible, setVisible] = import_react4.default.useState(false);
163
- const triggerRef = import_react4.default.useRef(null);
164
- const menuRef = import_react4.default.useRef(null);
155
+ const [isOpen, setIsOpen] = import_react3.default.useState(false);
156
+ const [mounted, setMounted] = import_react3.default.useState(false);
157
+ const [visible, setVisible] = import_react3.default.useState(false);
158
+ const triggerRef = import_react3.default.useRef(null);
159
+ const menuRef = import_react3.default.useRef(null);
165
160
  const { position, direction } = useAutoPosition_default(triggerRef, menuRef, mounted);
166
161
  useClickOutside_default([triggerRef, menuRef], () => setIsOpen(false), isOpen);
167
- import_react4.default.useEffect(() => {
162
+ import_react3.default.useEffect(() => {
168
163
  if (isOpen) {
169
164
  setMounted(true);
170
165
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -179,8 +174,8 @@ var Dropdown = (props) => {
179
174
  item.onClick?.();
180
175
  setIsOpen(false);
181
176
  };
182
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lib-xplat-dropdown", children: [
183
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
177
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lib-xplat-dropdown", children: [
178
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
184
179
  "div",
185
180
  {
186
181
  ref: triggerRef,
@@ -189,14 +184,14 @@ var Dropdown = (props) => {
189
184
  children
190
185
  }
191
186
  ),
192
- mounted && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
187
+ mounted && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
193
188
  "div",
194
189
  {
195
190
  ref: menuRef,
196
191
  className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }),
197
192
  style: { top: position.top, left: position.left },
198
193
  role: "menu",
199
- children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
194
+ children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
200
195
  "button",
201
196
  {
202
197
  className: clsx_default("dropdown-item", {
@@ -1,28 +1,23 @@
1
1
  // src/components/Dropdown/Dropdown.tsx
2
- import React4 from "react";
2
+ import React3 from "react";
3
3
 
4
4
  // src/tokens/hooks/Portal.tsx
5
- import React from "react";
6
5
  import ReactDOM from "react-dom";
7
- import { jsx } from "react/jsx-runtime";
8
- var PortalContainerContext = React.createContext(null);
9
6
  var Portal = ({ children }) => {
10
- const contextContainer = React.useContext(PortalContainerContext);
11
7
  if (typeof document === "undefined") return null;
12
- const container = contextContainer ?? document.body;
13
- return ReactDOM.createPortal(children, container);
8
+ return ReactDOM.createPortal(children, document.body);
14
9
  };
15
10
  Portal.displayName = "Portal";
16
11
  var Portal_default = Portal;
17
12
 
18
13
  // src/tokens/hooks/useAutoPosition.ts
19
- import React2 from "react";
14
+ import React from "react";
20
15
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
21
- const [position, setPosition] = React2.useState({
16
+ const [position, setPosition] = React.useState({
22
17
  position: {},
23
18
  direction: "bottom"
24
19
  });
25
- const calculatePosition = React2.useCallback(() => {
20
+ const calculatePosition = React.useCallback(() => {
26
21
  if (!triggerRef.current || !popRef.current) return;
27
22
  const triggerRect = triggerRef.current.getBoundingClientRect();
28
23
  const popW = popRef.current.offsetWidth;
@@ -49,13 +44,13 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
49
44
  direction
50
45
  });
51
46
  }, [triggerRef, popRef]);
52
- React2.useLayoutEffect(() => {
47
+ React.useLayoutEffect(() => {
53
48
  if (!enabled) return;
54
49
  calculatePosition();
55
50
  const raf = requestAnimationFrame(calculatePosition);
56
51
  return () => cancelAnimationFrame(raf);
57
52
  }, [calculatePosition, enabled]);
58
- React2.useEffect(() => {
53
+ React.useEffect(() => {
59
54
  if (!enabled || !popRef.current) return;
60
55
  const observer = new ResizeObserver(() => {
61
56
  calculatePosition();
@@ -63,7 +58,7 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
63
58
  observer.observe(popRef.current);
64
59
  return () => observer.disconnect();
65
60
  }, [calculatePosition, enabled, popRef]);
66
- React2.useEffect(() => {
61
+ React.useEffect(() => {
67
62
  if (!enabled) return;
68
63
  window.addEventListener("resize", calculatePosition);
69
64
  window.addEventListener("scroll", calculatePosition, true);
@@ -77,9 +72,9 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
77
72
  var useAutoPosition_default = useAutoPosition;
78
73
 
79
74
  // src/tokens/hooks/useClickOutside.ts
80
- import React3 from "react";
75
+ import React2 from "react";
81
76
  var useClickOutside = (refs, handler, enabled = true) => {
82
- React3.useEffect(() => {
77
+ React2.useEffect(() => {
83
78
  if (!enabled) return;
84
79
  const refArray = Array.isArray(refs) ? refs : [refs];
85
80
  const listener = (event) => {
@@ -118,17 +113,17 @@ function clsx() {
118
113
  var clsx_default = clsx;
119
114
 
120
115
  // src/components/Dropdown/Dropdown.tsx
121
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
116
+ import { jsx, jsxs } from "react/jsx-runtime";
122
117
  var Dropdown = (props) => {
123
118
  const { items, children } = props;
124
- const [isOpen, setIsOpen] = React4.useState(false);
125
- const [mounted, setMounted] = React4.useState(false);
126
- const [visible, setVisible] = React4.useState(false);
127
- const triggerRef = React4.useRef(null);
128
- const menuRef = React4.useRef(null);
119
+ const [isOpen, setIsOpen] = React3.useState(false);
120
+ const [mounted, setMounted] = React3.useState(false);
121
+ const [visible, setVisible] = React3.useState(false);
122
+ const triggerRef = React3.useRef(null);
123
+ const menuRef = React3.useRef(null);
129
124
  const { position, direction } = useAutoPosition_default(triggerRef, menuRef, mounted);
130
125
  useClickOutside_default([triggerRef, menuRef], () => setIsOpen(false), isOpen);
131
- React4.useEffect(() => {
126
+ React3.useEffect(() => {
132
127
  if (isOpen) {
133
128
  setMounted(true);
134
129
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -144,7 +139,7 @@ var Dropdown = (props) => {
144
139
  setIsOpen(false);
145
140
  };
146
141
  return /* @__PURE__ */ jsxs("div", { className: "lib-xplat-dropdown", children: [
147
- /* @__PURE__ */ jsx2(
142
+ /* @__PURE__ */ jsx(
148
143
  "div",
149
144
  {
150
145
  ref: triggerRef,
@@ -153,14 +148,14 @@ var Dropdown = (props) => {
153
148
  children
154
149
  }
155
150
  ),
156
- mounted && /* @__PURE__ */ jsx2(Portal_default, { children: /* @__PURE__ */ jsx2(
151
+ mounted && /* @__PURE__ */ jsx(Portal_default, { children: /* @__PURE__ */ jsx(
157
152
  "div",
158
153
  {
159
154
  ref: menuRef,
160
155
  className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }),
161
156
  style: { top: position.top, left: position.left },
162
157
  role: "menu",
163
- children: items.map((item) => /* @__PURE__ */ jsx2(
158
+ children: items.map((item) => /* @__PURE__ */ jsx(
164
159
  "button",
165
160
  {
166
161
  className: clsx_default("dropdown-item", {
@@ -35,22 +35,8 @@ __export(Modal_exports, {
35
35
  module.exports = __toCommonJS(Modal_exports);
36
36
 
37
37
  // src/components/Modal/Modal.tsx
38
- var import_react2 = __toESM(require("react"), 1);
39
- var import_react_dom2 = require("react-dom");
40
-
41
- // src/tokens/hooks/Portal.tsx
42
38
  var import_react = __toESM(require("react"), 1);
43
- var import_react_dom = __toESM(require("react-dom"), 1);
44
- var import_jsx_runtime = require("react/jsx-runtime");
45
- var PortalContainerContext = import_react.default.createContext(null);
46
- var PortalProvider = ({ container, children }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalContainerContext.Provider, { value: container, children });
47
- var Portal = ({ children }) => {
48
- const contextContainer = import_react.default.useContext(PortalContainerContext);
49
- if (typeof document === "undefined") return null;
50
- const container = contextContainer ?? document.body;
51
- return import_react_dom.default.createPortal(children, container);
52
- };
53
- Portal.displayName = "Portal";
39
+ var import_react_dom = require("react-dom");
54
40
 
55
41
  // ../../node_modules/clsx/dist/clsx.mjs
56
42
  function r(e) {
@@ -69,19 +55,24 @@ function clsx() {
69
55
  var clsx_default = clsx;
70
56
 
71
57
  // src/components/Modal/Modal.tsx
72
- var import_jsx_runtime2 = require("react/jsx-runtime");
58
+ var import_jsx_runtime = require("react/jsx-runtime");
73
59
  var ANIMATION_DURATION_MS = 200;
74
60
  var Modal = (props) => {
75
61
  const { isOpen, onClose, children } = props;
76
- const [mounted, setMounted] = import_react2.default.useState(false);
77
- const [visible, setVisible] = import_react2.default.useState(false);
78
- const boxRef = import_react2.default.useRef(null);
79
- import_react2.default.useEffect(() => {
62
+ const [mounted, setMounted] = import_react.default.useState(false);
63
+ const [visible, setVisible] = import_react.default.useState(false);
64
+ const [settled, setSettled] = import_react.default.useState(false);
65
+ import_react.default.useEffect(() => {
80
66
  if (isOpen) {
81
67
  setMounted(true);
82
- const t2 = setTimeout(() => setVisible(true), 1);
83
- return () => clearTimeout(t2);
68
+ const show = setTimeout(() => setVisible(true), 1);
69
+ const settle = setTimeout(() => setSettled(true), ANIMATION_DURATION_MS + 50);
70
+ return () => {
71
+ clearTimeout(show);
72
+ clearTimeout(settle);
73
+ };
84
74
  }
75
+ setSettled(false);
85
76
  setVisible(false);
86
77
  const t = setTimeout(() => setMounted(false), ANIMATION_DURATION_MS);
87
78
  return () => clearTimeout(t);
@@ -89,21 +80,20 @@ var Modal = (props) => {
89
80
  if (typeof document === "undefined") return null;
90
81
  if (!mounted) return null;
91
82
  const stateClass = visible ? "enter" : "exit";
92
- return (0, import_react_dom2.createPortal)(
93
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
83
+ return (0, import_react_dom.createPortal)(
84
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
94
85
  "div",
95
86
  {
96
87
  className: clsx_default("lib-xplat-modal", "dim", stateClass),
97
88
  onClick: onClose,
98
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
89
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
99
90
  "div",
100
91
  {
101
- ref: boxRef,
102
- className: clsx_default("lib-xplat-modal", "modal-box", stateClass),
92
+ className: clsx_default("lib-xplat-modal", "modal-box", stateClass, settled && "settled"),
103
93
  role: "dialog",
104
94
  "aria-modal": "true",
105
95
  onClick: (e) => e.stopPropagation(),
106
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PortalProvider, { container: boxRef.current, children })
96
+ children
107
97
  }
108
98
  )
109
99
  }
@@ -18,6 +18,9 @@
18
18
  transform: scale(1);
19
19
  opacity: 1;
20
20
  }
21
+ .lib-xplat-modal.modal-box.enter.settled {
22
+ transform: none;
23
+ }
21
24
  .lib-xplat-modal.modal-box.exit {
22
25
  transform: scale(0.9);
23
26
  opacity: 0;
@@ -1,20 +1,6 @@
1
1
  // src/components/Modal/Modal.tsx
2
- import React2 from "react";
3
- import { createPortal } from "react-dom";
4
-
5
- // src/tokens/hooks/Portal.tsx
6
2
  import React from "react";
7
- import ReactDOM from "react-dom";
8
- import { jsx } from "react/jsx-runtime";
9
- var PortalContainerContext = React.createContext(null);
10
- var PortalProvider = ({ container, children }) => /* @__PURE__ */ jsx(PortalContainerContext.Provider, { value: container, children });
11
- var Portal = ({ children }) => {
12
- const contextContainer = React.useContext(PortalContainerContext);
13
- if (typeof document === "undefined") return null;
14
- const container = contextContainer ?? document.body;
15
- return ReactDOM.createPortal(children, container);
16
- };
17
- Portal.displayName = "Portal";
3
+ import { createPortal } from "react-dom";
18
4
 
19
5
  // ../../node_modules/clsx/dist/clsx.mjs
20
6
  function r(e) {
@@ -33,19 +19,24 @@ function clsx() {
33
19
  var clsx_default = clsx;
34
20
 
35
21
  // src/components/Modal/Modal.tsx
36
- import { jsx as jsx2 } from "react/jsx-runtime";
22
+ import { jsx } from "react/jsx-runtime";
37
23
  var ANIMATION_DURATION_MS = 200;
38
24
  var Modal = (props) => {
39
25
  const { isOpen, onClose, children } = props;
40
- const [mounted, setMounted] = React2.useState(false);
41
- const [visible, setVisible] = React2.useState(false);
42
- const boxRef = React2.useRef(null);
43
- React2.useEffect(() => {
26
+ const [mounted, setMounted] = React.useState(false);
27
+ const [visible, setVisible] = React.useState(false);
28
+ const [settled, setSettled] = React.useState(false);
29
+ React.useEffect(() => {
44
30
  if (isOpen) {
45
31
  setMounted(true);
46
- const t2 = setTimeout(() => setVisible(true), 1);
47
- return () => clearTimeout(t2);
32
+ const show = setTimeout(() => setVisible(true), 1);
33
+ const settle = setTimeout(() => setSettled(true), ANIMATION_DURATION_MS + 50);
34
+ return () => {
35
+ clearTimeout(show);
36
+ clearTimeout(settle);
37
+ };
48
38
  }
39
+ setSettled(false);
49
40
  setVisible(false);
50
41
  const t = setTimeout(() => setMounted(false), ANIMATION_DURATION_MS);
51
42
  return () => clearTimeout(t);
@@ -54,20 +45,19 @@ var Modal = (props) => {
54
45
  if (!mounted) return null;
55
46
  const stateClass = visible ? "enter" : "exit";
56
47
  return createPortal(
57
- /* @__PURE__ */ jsx2(
48
+ /* @__PURE__ */ jsx(
58
49
  "div",
59
50
  {
60
51
  className: clsx_default("lib-xplat-modal", "dim", stateClass),
61
52
  onClick: onClose,
62
- children: /* @__PURE__ */ jsx2(
53
+ children: /* @__PURE__ */ jsx(
63
54
  "div",
64
55
  {
65
- ref: boxRef,
66
- className: clsx_default("lib-xplat-modal", "modal-box", stateClass),
56
+ className: clsx_default("lib-xplat-modal", "modal-box", stateClass, settled && "settled"),
67
57
  role: "dialog",
68
58
  "aria-modal": "true",
69
59
  onClick: (e) => e.stopPropagation(),
70
- children: /* @__PURE__ */ jsx2(PortalProvider, { container: boxRef.current, children })
60
+ children
71
61
  }
72
62
  )
73
63
  }
@@ -35,30 +35,25 @@ __export(PopOver_exports, {
35
35
  module.exports = __toCommonJS(PopOver_exports);
36
36
 
37
37
  // src/components/PopOver/PopOver.tsx
38
- var import_react4 = __toESM(require("react"), 1);
38
+ var import_react3 = __toESM(require("react"), 1);
39
39
 
40
40
  // src/tokens/hooks/Portal.tsx
41
- var import_react = __toESM(require("react"), 1);
42
41
  var import_react_dom = __toESM(require("react-dom"), 1);
43
- var import_jsx_runtime = require("react/jsx-runtime");
44
- var PortalContainerContext = import_react.default.createContext(null);
45
42
  var Portal = ({ children }) => {
46
- const contextContainer = import_react.default.useContext(PortalContainerContext);
47
43
  if (typeof document === "undefined") return null;
48
- const container = contextContainer ?? document.body;
49
- return import_react_dom.default.createPortal(children, container);
44
+ return import_react_dom.default.createPortal(children, document.body);
50
45
  };
51
46
  Portal.displayName = "Portal";
52
47
  var Portal_default = Portal;
53
48
 
54
49
  // src/tokens/hooks/useAutoPosition.ts
55
- var import_react2 = __toESM(require("react"), 1);
50
+ var import_react = __toESM(require("react"), 1);
56
51
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
57
- const [position, setPosition] = import_react2.default.useState({
52
+ const [position, setPosition] = import_react.default.useState({
58
53
  position: {},
59
54
  direction: "bottom"
60
55
  });
61
- const calculatePosition = import_react2.default.useCallback(() => {
56
+ const calculatePosition = import_react.default.useCallback(() => {
62
57
  if (!triggerRef.current || !popRef.current) return;
63
58
  const triggerRect = triggerRef.current.getBoundingClientRect();
64
59
  const popW = popRef.current.offsetWidth;
@@ -85,13 +80,13 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
85
80
  direction
86
81
  });
87
82
  }, [triggerRef, popRef]);
88
- import_react2.default.useLayoutEffect(() => {
83
+ import_react.default.useLayoutEffect(() => {
89
84
  if (!enabled) return;
90
85
  calculatePosition();
91
86
  const raf = requestAnimationFrame(calculatePosition);
92
87
  return () => cancelAnimationFrame(raf);
93
88
  }, [calculatePosition, enabled]);
94
- import_react2.default.useEffect(() => {
89
+ import_react.default.useEffect(() => {
95
90
  if (!enabled || !popRef.current) return;
96
91
  const observer = new ResizeObserver(() => {
97
92
  calculatePosition();
@@ -99,7 +94,7 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
99
94
  observer.observe(popRef.current);
100
95
  return () => observer.disconnect();
101
96
  }, [calculatePosition, enabled, popRef]);
102
- import_react2.default.useEffect(() => {
97
+ import_react.default.useEffect(() => {
103
98
  if (!enabled) return;
104
99
  window.addEventListener("resize", calculatePosition);
105
100
  window.addEventListener("scroll", calculatePosition, true);
@@ -113,9 +108,9 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
113
108
  var useAutoPosition_default = useAutoPosition;
114
109
 
115
110
  // src/tokens/hooks/useClickOutside.ts
116
- var import_react3 = __toESM(require("react"), 1);
111
+ var import_react2 = __toESM(require("react"), 1);
117
112
  var useClickOutside = (refs, handler, enabled = true) => {
118
- import_react3.default.useEffect(() => {
113
+ import_react2.default.useEffect(() => {
119
114
  if (!enabled) return;
120
115
  const refArray = Array.isArray(refs) ? refs : [refs];
121
116
  const listener = (event) => {
@@ -154,16 +149,16 @@ function clsx() {
154
149
  var clsx_default = clsx;
155
150
 
156
151
  // src/components/PopOver/PopOver.tsx
157
- var import_jsx_runtime2 = require("react/jsx-runtime");
152
+ var import_jsx_runtime = require("react/jsx-runtime");
158
153
  var PopOver = (props) => {
159
154
  const { children, isOpen, onClose, PopOverEl } = props;
160
- const popRef = import_react4.default.useRef(null);
161
- const triggerRef = import_react4.default.useRef(null);
162
- const [localOpen, setLocalOpen] = import_react4.default.useState(false);
163
- const [eventTrigger, setEventTrigger] = import_react4.default.useState(false);
155
+ const popRef = import_react3.default.useRef(null);
156
+ const triggerRef = import_react3.default.useRef(null);
157
+ const [localOpen, setLocalOpen] = import_react3.default.useState(false);
158
+ const [eventTrigger, setEventTrigger] = import_react3.default.useState(false);
164
159
  useClickOutside_default([popRef, triggerRef], onClose, isOpen);
165
160
  const position = useAutoPosition_default(triggerRef, popRef, localOpen);
166
- import_react4.default.useEffect(() => {
161
+ import_react3.default.useEffect(() => {
167
162
  if (isOpen) {
168
163
  setLocalOpen(isOpen);
169
164
  setTimeout(() => {
@@ -176,7 +171,7 @@ var PopOver = (props) => {
176
171
  }, 200);
177
172
  }
178
173
  }, [isOpen]);
179
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
174
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
180
175
  "div",
181
176
  {
182
177
  className: "lib-xplat-pop-over",
@@ -186,7 +181,7 @@ var PopOver = (props) => {
186
181
  },
187
182
  children: [
188
183
  children,
189
- localOpen && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
184
+ localOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
190
185
  "div",
191
186
  {
192
187
  className: clsx_default(
@@ -1,28 +1,23 @@
1
1
  // src/components/PopOver/PopOver.tsx
2
- import React4 from "react";
2
+ import React3 from "react";
3
3
 
4
4
  // src/tokens/hooks/Portal.tsx
5
- import React from "react";
6
5
  import ReactDOM from "react-dom";
7
- import { jsx } from "react/jsx-runtime";
8
- var PortalContainerContext = React.createContext(null);
9
6
  var Portal = ({ children }) => {
10
- const contextContainer = React.useContext(PortalContainerContext);
11
7
  if (typeof document === "undefined") return null;
12
- const container = contextContainer ?? document.body;
13
- return ReactDOM.createPortal(children, container);
8
+ return ReactDOM.createPortal(children, document.body);
14
9
  };
15
10
  Portal.displayName = "Portal";
16
11
  var Portal_default = Portal;
17
12
 
18
13
  // src/tokens/hooks/useAutoPosition.ts
19
- import React2 from "react";
14
+ import React from "react";
20
15
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
21
- const [position, setPosition] = React2.useState({
16
+ const [position, setPosition] = React.useState({
22
17
  position: {},
23
18
  direction: "bottom"
24
19
  });
25
- const calculatePosition = React2.useCallback(() => {
20
+ const calculatePosition = React.useCallback(() => {
26
21
  if (!triggerRef.current || !popRef.current) return;
27
22
  const triggerRect = triggerRef.current.getBoundingClientRect();
28
23
  const popW = popRef.current.offsetWidth;
@@ -49,13 +44,13 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
49
44
  direction
50
45
  });
51
46
  }, [triggerRef, popRef]);
52
- React2.useLayoutEffect(() => {
47
+ React.useLayoutEffect(() => {
53
48
  if (!enabled) return;
54
49
  calculatePosition();
55
50
  const raf = requestAnimationFrame(calculatePosition);
56
51
  return () => cancelAnimationFrame(raf);
57
52
  }, [calculatePosition, enabled]);
58
- React2.useEffect(() => {
53
+ React.useEffect(() => {
59
54
  if (!enabled || !popRef.current) return;
60
55
  const observer = new ResizeObserver(() => {
61
56
  calculatePosition();
@@ -63,7 +58,7 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
63
58
  observer.observe(popRef.current);
64
59
  return () => observer.disconnect();
65
60
  }, [calculatePosition, enabled, popRef]);
66
- React2.useEffect(() => {
61
+ React.useEffect(() => {
67
62
  if (!enabled) return;
68
63
  window.addEventListener("resize", calculatePosition);
69
64
  window.addEventListener("scroll", calculatePosition, true);
@@ -77,9 +72,9 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
77
72
  var useAutoPosition_default = useAutoPosition;
78
73
 
79
74
  // src/tokens/hooks/useClickOutside.ts
80
- import React3 from "react";
75
+ import React2 from "react";
81
76
  var useClickOutside = (refs, handler, enabled = true) => {
82
- React3.useEffect(() => {
77
+ React2.useEffect(() => {
83
78
  if (!enabled) return;
84
79
  const refArray = Array.isArray(refs) ? refs : [refs];
85
80
  const listener = (event) => {
@@ -118,16 +113,16 @@ function clsx() {
118
113
  var clsx_default = clsx;
119
114
 
120
115
  // src/components/PopOver/PopOver.tsx
121
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
116
+ import { jsx, jsxs } from "react/jsx-runtime";
122
117
  var PopOver = (props) => {
123
118
  const { children, isOpen, onClose, PopOverEl } = props;
124
- const popRef = React4.useRef(null);
125
- const triggerRef = React4.useRef(null);
126
- const [localOpen, setLocalOpen] = React4.useState(false);
127
- const [eventTrigger, setEventTrigger] = React4.useState(false);
119
+ const popRef = React3.useRef(null);
120
+ const triggerRef = React3.useRef(null);
121
+ const [localOpen, setLocalOpen] = React3.useState(false);
122
+ const [eventTrigger, setEventTrigger] = React3.useState(false);
128
123
  useClickOutside_default([popRef, triggerRef], onClose, isOpen);
129
124
  const position = useAutoPosition_default(triggerRef, popRef, localOpen);
130
- React4.useEffect(() => {
125
+ React3.useEffect(() => {
131
126
  if (isOpen) {
132
127
  setLocalOpen(isOpen);
133
128
  setTimeout(() => {
@@ -150,7 +145,7 @@ var PopOver = (props) => {
150
145
  },
151
146
  children: [
152
147
  children,
153
- localOpen && /* @__PURE__ */ jsx2(Portal_default, { children: /* @__PURE__ */ jsx2(
148
+ localOpen && /* @__PURE__ */ jsx(Portal_default, { children: /* @__PURE__ */ jsx(
154
149
  "div",
155
150
  {
156
151
  className: clsx_default(