@yselimcan/ui 0.0.7 → 0.0.8

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 (233) hide show
  1. package/dist/index100.js +5 -4
  2. package/dist/index101.js +7 -66
  3. package/dist/index102.js +87 -8
  4. package/dist/index103.js +11 -12
  5. package/dist/index104.js +62 -3
  6. package/dist/index105.js +38 -4
  7. package/dist/index106.js +14 -6
  8. package/dist/index107.js +32 -29
  9. package/dist/index108.js +19 -12
  10. package/dist/index109.js +4 -65
  11. package/dist/index110.js +3 -53
  12. package/dist/index111.js +5 -13
  13. package/dist/index112.js +11 -5
  14. package/dist/index113.js +19 -13
  15. package/dist/index114.js +13 -13
  16. package/dist/index115.js +296 -32
  17. package/dist/index116.js +5 -19
  18. package/dist/index117.js +38 -40
  19. package/dist/index118.js +123 -16
  20. package/dist/index119.js +21 -12
  21. package/dist/index120.js +77 -38
  22. package/dist/index121.js +65 -14
  23. package/dist/index122.js +45 -8
  24. package/dist/index123.js +14 -13
  25. package/dist/index124.js +5 -5
  26. package/dist/index125.js +29 -87
  27. package/dist/index126.js +4 -296
  28. package/dist/index127.js +26 -10
  29. package/dist/index128.js +14 -122
  30. package/dist/index129.js +21 -4
  31. package/dist/index130.js +54 -259
  32. package/dist/index131.js +16 -78
  33. package/dist/index132.js +26 -37
  34. package/dist/index133.js +41 -21
  35. package/dist/index134.js +43 -12
  36. package/dist/index135.js +20 -55
  37. package/dist/index136.js +48 -11
  38. package/dist/index137.js +51 -11
  39. package/dist/index138.js +16 -29
  40. package/dist/index139.js +11 -18
  41. package/dist/index140.js +21 -65
  42. package/dist/index141.js +34 -103
  43. package/dist/index142.js +230 -8
  44. package/dist/index143.js +283 -8
  45. package/dist/index144.js +52 -21
  46. package/dist/index145.js +14 -102
  47. package/dist/index146.js +79 -7
  48. package/dist/index147.js +3 -32
  49. package/dist/index148.js +28 -228
  50. package/dist/index149.js +23 -74
  51. package/dist/index150.js +15 -283
  52. package/dist/index151.js +68 -52
  53. package/dist/index152.js +4 -46
  54. package/dist/index153.js +98 -70
  55. package/dist/index154.js +79 -3
  56. package/dist/index155.js +262 -13
  57. package/dist/index156.js +11 -15
  58. package/dist/index157.js +10 -28
  59. package/dist/index158.js +40 -7
  60. package/dist/index159.js +4 -22
  61. package/dist/index160.js +66 -24
  62. package/dist/index161.js +9 -160
  63. package/dist/index162.js +8 -113
  64. package/dist/index163.js +5 -64
  65. package/dist/index164.js +132 -74
  66. package/dist/index165.js +53 -64
  67. package/dist/index166.js +10 -68
  68. package/dist/index167.js +118 -14
  69. package/dist/index168.js +11 -7
  70. package/dist/index169.js +10 -4
  71. package/dist/index17.js +4 -4
  72. package/dist/index170.js +64 -15
  73. package/dist/index171.js +12 -21
  74. package/dist/index172.js +12 -58
  75. package/dist/index173.js +11 -16
  76. package/dist/index174.js +11 -27
  77. package/dist/index175.js +88 -43
  78. package/dist/index176.js +11 -21
  79. package/dist/index177.js +11 -48
  80. package/dist/index178.js +53 -48
  81. package/dist/index179.js +11 -17
  82. package/dist/index18.js +4 -4
  83. package/dist/index180.js +11 -11
  84. package/dist/index181.js +17 -34
  85. package/dist/index182.js +8 -15
  86. package/dist/index183.js +8 -79
  87. package/dist/index184.js +103 -23
  88. package/dist/index185.js +6 -2
  89. package/dist/index186.js +32 -11
  90. package/dist/index187.js +74 -10
  91. package/dist/index188.js +13 -39
  92. package/dist/index189.js +28 -4
  93. package/dist/index19.js +9 -9
  94. package/dist/index190.js +13 -10
  95. package/dist/index191.js +7 -11
  96. package/dist/index192.js +21 -116
  97. package/dist/index193.js +25 -12
  98. package/dist/index194.js +158 -85
  99. package/dist/index195.js +113 -12
  100. package/dist/index196.js +72 -59
  101. package/dist/index197.js +65 -4
  102. package/dist/index198.js +9 -5
  103. package/dist/index199.js +22 -11
  104. package/dist/index20.js +2 -2
  105. package/dist/index201.js +4 -22
  106. package/dist/index202.js +10 -4
  107. package/dist/index203.js +38 -26
  108. package/dist/index204.js +56 -127
  109. package/dist/index205.js +28 -45
  110. package/dist/index206.js +8 -18
  111. package/dist/index207.js +13 -5
  112. package/dist/index208.js +11 -180
  113. package/dist/index209.js +11 -75
  114. package/dist/index21.js +3 -3
  115. package/dist/index210.js +19 -396
  116. package/dist/index211.js +11 -199
  117. package/dist/index212.js +7 -47
  118. package/dist/index213.js +43 -20
  119. package/dist/index214.js +593 -44
  120. package/dist/index215.js +11 -6
  121. package/dist/index216.js +17 -5
  122. package/dist/index217.js +45 -14
  123. package/dist/index218.js +197 -12
  124. package/dist/index219.js +47 -32
  125. package/dist/index22.js +5 -5
  126. package/dist/index220.js +20 -4
  127. package/dist/index221.js +32 -11
  128. package/dist/index222.js +6 -9
  129. package/dist/index223.js +26 -38
  130. package/dist/index224.js +12 -57
  131. package/dist/index225.js +21 -27
  132. package/dist/index226.js +127 -7
  133. package/dist/index227.js +45 -13
  134. package/dist/index228.js +18 -12
  135. package/dist/index229.js +5 -12
  136. package/dist/index23.js +2 -2
  137. package/dist/index230.js +178 -19
  138. package/dist/index231.js +75 -11
  139. package/dist/index232.js +398 -7
  140. package/dist/index233.js +4 -43
  141. package/dist/index234.js +5 -597
  142. package/dist/index235.js +14 -11
  143. package/dist/index236.js +20 -3
  144. package/dist/index237.js +5 -208
  145. package/dist/index238.js +209 -4
  146. package/dist/index239.js +3 -13
  147. package/dist/index24.js +9 -9
  148. package/dist/index240.js +13 -47
  149. package/dist/index241.js +45 -10
  150. package/dist/index242.js +3 -57
  151. package/dist/index243.js +11 -28
  152. package/dist/index244.js +56 -12
  153. package/dist/index245.js +30 -9
  154. package/dist/index246.js +12 -205
  155. package/dist/index247.js +9 -15
  156. package/dist/index248.js +189 -304
  157. package/dist/index249.js +15 -3
  158. package/dist/index250.js +322 -3
  159. package/dist/index251.js +3 -21
  160. package/dist/index252.js +3 -6
  161. package/dist/index253.js +1 -1
  162. package/dist/index27.js +1 -1
  163. package/dist/index28.js +1 -1
  164. package/dist/index29.js +1 -1
  165. package/dist/index30.js +1 -1
  166. package/dist/index31.js +1 -1
  167. package/dist/index32.js +1 -1
  168. package/dist/index33.js +16 -16
  169. package/dist/index34.js +5 -5
  170. package/dist/index35.js +13 -13
  171. package/dist/index36.js +10 -10
  172. package/dist/index37.js +7 -7
  173. package/dist/index38.js +9 -9
  174. package/dist/index39.js +4 -4
  175. package/dist/index40.js +2 -2
  176. package/dist/index41.js +3 -3
  177. package/dist/index42.js +2 -2
  178. package/dist/index43.js +1 -1
  179. package/dist/index45.js +5 -5
  180. package/dist/index46.js +9 -9
  181. package/dist/index47.js +9 -9
  182. package/dist/index48.js +18 -18
  183. package/dist/index49.js +4 -4
  184. package/dist/index50.js +11 -11
  185. package/dist/index51.js +1 -1
  186. package/dist/index52.js +25 -25
  187. package/dist/index53.js +3 -3
  188. package/dist/index54.js +31 -31
  189. package/dist/index55.js +13 -13
  190. package/dist/index56.js +12 -12
  191. package/dist/index57.js +1 -1
  192. package/dist/index58.js +3 -3
  193. package/dist/index59.js +5 -5
  194. package/dist/index60.js +11 -11
  195. package/dist/index61.js +4 -4
  196. package/dist/index62.js +3 -3
  197. package/dist/index63.js +11 -11
  198. package/dist/index64.js +4 -4
  199. package/dist/index65.js +3 -3
  200. package/dist/index66.js +13 -13
  201. package/dist/index67.js +1 -1
  202. package/dist/index68.js +1 -1
  203. package/dist/index69.js +32 -32
  204. package/dist/index70.js +5 -5
  205. package/dist/index71.js +17 -17
  206. package/dist/index72.js +23 -23
  207. package/dist/index73.js +7 -7
  208. package/dist/index74.js +1 -1
  209. package/dist/index75.js +13 -13
  210. package/dist/index76.js +2 -2
  211. package/dist/index77.js +4 -4
  212. package/dist/index78.js +3 -3
  213. package/dist/index79.js +1 -1
  214. package/dist/index80.js +1 -1
  215. package/dist/index81.js +17 -17
  216. package/dist/index82.js +4 -4
  217. package/dist/index83.js +4 -4
  218. package/dist/index86.js +11 -89
  219. package/dist/index87.js +8 -8
  220. package/dist/index88.js +96 -12
  221. package/dist/index89.js +19 -96
  222. package/dist/index90.js +15 -18
  223. package/dist/index91.js +33 -16
  224. package/dist/index92.js +12 -33
  225. package/dist/index93.js +90 -12
  226. package/dist/index94.js +4 -133
  227. package/dist/index95.js +63 -24
  228. package/dist/index96.js +8 -8
  229. package/dist/index97.js +14 -5
  230. package/dist/index98.js +3 -12
  231. package/dist/index99.js +3 -22
  232. package/dist/styles.css +1 -1
  233. package/package.json +3 -3
package/dist/index120.js CHANGED
@@ -1,40 +1,79 @@
1
- import { TransitionStatusDataAttributes as p } from "./index121.js";
2
- let r = (function(n) {
3
- return n.open = "data-open", n.closed = "data-closed", n[n.startingStyle = p.startingStyle] = "startingStyle", n[n.endingStyle = p.endingStyle] = "endingStyle", n.anchorHidden = "data-anchor-hidden", n;
4
- })({}), e = /* @__PURE__ */ (function(n) {
5
- return n.popupOpen = "data-popup-open", n.pressed = "data-pressed", n;
6
- })({});
7
- const t = {
8
- [e.popupOpen]: ""
9
- }, d = {
10
- [e.popupOpen]: "",
11
- [e.pressed]: ""
12
- }, O = {
13
- [r.open]: ""
14
- }, l = {
15
- [r.closed]: ""
16
- }, s = {
17
- [r.anchorHidden]: ""
18
- }, i = {
19
- open(n) {
20
- return n ? t : null;
21
- }
22
- }, a = {
23
- open(n) {
24
- return n ? d : null;
25
- }
26
- }, o = {
27
- open(n) {
28
- return n ? O : l;
29
- },
30
- anchorHidden(n) {
31
- return n ? s : null;
32
- }
33
- };
1
+ import * as l from "react";
2
+ import { useStableCallback as a } from "./index127.js";
3
+ import { useIsoLayoutEffect as o } from "./index126.js";
4
+ import { useTransitionStatus as s } from "./index133.js";
5
+ import { useOpenChangeComplete as f } from "./index113.js";
6
+ function m(e, n) {
7
+ const t = l.useRef(null);
8
+ return l.useCallback((i) => {
9
+ e !== void 0 && (t.current !== null && (n.context.triggerElements.delete(t.current), t.current = null), i !== null && (t.current = e, n.context.triggerElements.add(e, i)));
10
+ }, [n, e]);
11
+ }
12
+ function E(e, n, t, i) {
13
+ const r = t.useState("isMountedByTrigger", e), c = m(e, t), g = a((u) => {
14
+ c(u), u !== null && t.select("open") && t.select("activeTriggerId") == null && t.update({
15
+ activeTriggerId: e,
16
+ activeTriggerElement: u,
17
+ ...i
18
+ });
19
+ });
20
+ return o(() => {
21
+ r && t.update({
22
+ activeTriggerElement: n.current,
23
+ ...i
24
+ });
25
+ }, [r, t, n, ...Object.values(i)]), {
26
+ registerTrigger: g,
27
+ isMountedByThisTrigger: r
28
+ };
29
+ }
30
+ function C(e) {
31
+ const n = e.useState("open");
32
+ o(() => {
33
+ if (n && !e.select("activeTriggerId") && e.context.triggerElements.size === 1) {
34
+ const t = e.context.triggerElements.entries().next();
35
+ if (!t.done) {
36
+ const [i, r] = t.value;
37
+ e.update({
38
+ activeTriggerId: i,
39
+ activeTriggerElement: r
40
+ });
41
+ }
42
+ }
43
+ }, [n, e]);
44
+ }
45
+ function x(e, n, t) {
46
+ const {
47
+ mounted: i,
48
+ setMounted: r,
49
+ transitionStatus: c
50
+ } = s(e);
51
+ n.useSyncedValues({
52
+ mounted: i,
53
+ transitionStatus: c
54
+ });
55
+ const g = a(() => {
56
+ r(!1), n.update({
57
+ activeTriggerId: null,
58
+ activeTriggerElement: null,
59
+ mounted: !1
60
+ }), t?.(), n.context.onOpenChangeComplete?.(!1);
61
+ }), u = n.useState("preventUnmountingOnClose");
62
+ return f({
63
+ enabled: !u,
64
+ open: e,
65
+ ref: n.context.popupRef,
66
+ onComplete() {
67
+ e || g();
68
+ }
69
+ }), {
70
+ forceUnmount: g,
71
+ transitionStatus: c
72
+ };
73
+ }
34
74
  export {
35
- r as CommonPopupDataAttributes,
36
- e as CommonTriggerDataAttributes,
37
- o as popupStateMapping,
38
- a as pressableTriggerOpenStateMapping,
39
- i as triggerOpenStateMapping
75
+ C as useImplicitActiveTrigger,
76
+ x as useOpenStateTransitions,
77
+ E as useTriggerDataForwarding,
78
+ m as useTriggerRegistration
40
79
  };
package/dist/index121.js CHANGED
@@ -1,16 +1,67 @@
1
- let n = /* @__PURE__ */ (function(t) {
2
- return t.startingStyle = "data-starting-style", t.endingStyle = "data-ending-style", t;
3
- })({});
4
- const e = {
5
- [n.startingStyle]: ""
6
- }, i = {
7
- [n.endingStyle]: ""
8
- }, r = {
9
- transitionStatus(t) {
10
- return t === "starting" ? e : t === "ending" ? i : null;
11
- }
12
- };
1
+ "use client";
2
+ import * as v from "react";
3
+ import { useAnimationFrame as P } from "./index160.js";
4
+ import { useTimeout as b } from "./index148.js";
5
+ import { createChangeEventDetails as k } from "./index107.js";
6
+ import { isMouseLikePointerType as w, isClickLikeEvent as I } from "./index205.js";
7
+ import { isTypeableElement as x } from "./index151.js";
8
+ import { EMPTY_OBJECT as L } from "./index100.js";
9
+ import { triggerPress as y } from "./index108.js";
10
+ function Y(d, M = {}) {
11
+ const e = "rootStore" in d ? d.rootStore : d, T = e.context.dataRef, {
12
+ enabled: h = !0,
13
+ event: p = "click",
14
+ toggle: g = !0,
15
+ ignoreMouse: E = !1,
16
+ stickIfOpen: O = !0,
17
+ touchOpenDelay: n = 0
18
+ } = M, s = v.useRef(void 0), C = P(), a = b(), R = v.useMemo(() => ({
19
+ onPointerDown(t) {
20
+ s.current = t.pointerType;
21
+ },
22
+ onMouseDown(t) {
23
+ const r = s.current, o = t.nativeEvent, c = e.select("open");
24
+ if (t.button !== 0 || p === "click" || w(r, !0) && E)
25
+ return;
26
+ const m = T.current.openEvent, i = m?.type, f = e.select("domReferenceElement") !== t.currentTarget, l = c && f || !(c && g && (!(m && O) || i === "click" || i === "mousedown"));
27
+ if (x(o.target)) {
28
+ const u = k(y, o, o.target);
29
+ l && r === "touch" && n > 0 ? a.start(n, () => {
30
+ e.setOpen(!0, u);
31
+ }) : e.setOpen(l, u);
32
+ return;
33
+ }
34
+ const D = t.currentTarget;
35
+ C.request(() => {
36
+ const u = k(y, o, D);
37
+ l && r === "touch" && n > 0 ? a.start(n, () => {
38
+ e.setOpen(!0, u);
39
+ }) : e.setOpen(l, u);
40
+ });
41
+ },
42
+ onClick(t) {
43
+ if (p === "mousedown-only")
44
+ return;
45
+ const r = s.current;
46
+ if (p === "mousedown" && r) {
47
+ s.current = void 0;
48
+ return;
49
+ }
50
+ if (w(r, !0) && E)
51
+ return;
52
+ const o = e.select("open"), c = T.current.openEvent, m = e.select("domReferenceElement") !== t.currentTarget, i = o && m || !(o && g && (!(c && O) || I(c))), f = k(y, t.nativeEvent, t.currentTarget);
53
+ i && r === "touch" && n > 0 ? a.start(n, () => {
54
+ e.setOpen(!0, f);
55
+ }) : e.setOpen(i, f);
56
+ },
57
+ onKeyDown() {
58
+ s.current = void 0;
59
+ }
60
+ }), [T, p, E, e, O, g, C, a, n]);
61
+ return v.useMemo(() => h ? {
62
+ reference: R
63
+ } : L, [h, R]);
64
+ }
13
65
  export {
14
- n as TransitionStatusDataAttributes,
15
- r as transitionStatusMapping
66
+ Y as useClick
16
67
  };
package/dist/index122.js CHANGED
@@ -1,11 +1,48 @@
1
- "use client";
2
- import * as o from "react";
3
- const t = /* @__PURE__ */ o.createContext(void 0);
4
- process.env.NODE_ENV !== "production" && (t.displayName = "ToolbarRootContext");
5
- function r(e) {
6
- return o.useContext(t);
1
+ import * as l from "react";
2
+ import { FOCUSABLE_ATTRIBUTE as C, ACTIVE_KEY as s, SELECTED_KEY as E } from "./index247.js";
3
+ function k(e = []) {
4
+ const a = e.map((n) => n?.reference), g = e.map((n) => n?.floating), f = e.map((n) => n?.item), t = e.map((n) => n?.trigger), o = l.useCallback(
5
+ (n) => u(n, e, "reference"),
6
+ // eslint-disable-next-line react-hooks/exhaustive-deps
7
+ a
8
+ ), c = l.useCallback(
9
+ (n) => u(n, e, "floating"),
10
+ // eslint-disable-next-line react-hooks/exhaustive-deps
11
+ g
12
+ ), i = l.useCallback(
13
+ (n) => u(n, e, "item"),
14
+ // eslint-disable-next-line react-hooks/exhaustive-deps
15
+ f
16
+ ), r = l.useCallback(
17
+ (n) => u(n, e, "trigger"),
18
+ // eslint-disable-next-line react-hooks/exhaustive-deps
19
+ t
20
+ );
21
+ return l.useMemo(() => ({
22
+ getReferenceProps: o,
23
+ getFloatingProps: c,
24
+ getItemProps: i,
25
+ getTriggerProps: r
26
+ }), [o, c, i, r]);
27
+ }
28
+ function u(e, a, g) {
29
+ const f = /* @__PURE__ */ new Map(), t = g === "item", o = {};
30
+ g === "floating" && (o.tabIndex = -1, o[C] = "");
31
+ for (const c in e)
32
+ t && e && (c === s || c === E) || (o[c] = e[c]);
33
+ for (let c = 0; c < a.length; c += 1) {
34
+ let i;
35
+ const r = a[c]?.[g];
36
+ typeof r == "function" ? i = e ? r(e) : null : i = r, i && m(o, i, t, f);
37
+ }
38
+ return m(o, e, t, f), o;
39
+ }
40
+ function m(e, a, g, f) {
41
+ for (const t in a) {
42
+ const o = a[t];
43
+ g && (t === s || t === E) || (t.startsWith("on") ? (f.has(t) || f.set(t, []), typeof o == "function" && (f.get(t)?.push(o), e[t] = (...c) => f.get(t)?.map((i) => i(...c)).find((i) => i !== void 0))) : e[t] = o);
44
+ }
7
45
  }
8
46
  export {
9
- t as ToolbarRootContext,
10
- r as useToolbarRootContext
47
+ k as useInteractions
11
48
  };
package/dist/index123.js CHANGED
@@ -1,15 +1,16 @@
1
- const t = "ArrowUp", n = "ArrowDown", o = "ArrowLeft", R = "ArrowRight", e = "Home", c = "End", E = /* @__PURE__ */ new Set([o, R]), A = /* @__PURE__ */ new Set([t, n]), O = /* @__PURE__ */ new Set([...E, ...A]);
2
- [...O];
3
- const s = /* @__PURE__ */ new Set([t, n, o, R, e, "End"]);
1
+ const i = {
2
+ clip: "rect(0 0 0 0)",
3
+ overflow: "hidden",
4
+ whiteSpace: "nowrap",
5
+ position: "fixed",
6
+ top: 0,
7
+ left: 0,
8
+ border: 0,
9
+ padding: 0,
10
+ width: 1,
11
+ height: 1,
12
+ margin: -1
13
+ };
4
14
  export {
5
- n as ARROW_DOWN,
6
- O as ARROW_KEYS,
7
- o as ARROW_LEFT,
8
- R as ARROW_RIGHT,
9
- t as ARROW_UP,
10
- s as COMPOSITE_KEYS,
11
- c as END,
12
- e as HOME,
13
- E as HORIZONTAL_KEYS,
14
- A as VERTICAL_KEYS
15
+ i as visuallyHidden
15
16
  };
package/dist/index124.js CHANGED
@@ -1,8 +1,8 @@
1
- import { DISABLED_TRANSITIONS_STYLE as r } from "./index133.js";
2
- import { EMPTY_OBJECT as o } from "./index106.js";
3
- function T(t) {
4
- return t === "starting" ? r : o;
1
+ import * as t from "react";
2
+ function n(r) {
3
+ const e = t.useRef(!0);
4
+ e.current && (e.current = !1, r());
5
5
  }
6
6
  export {
7
- T as getDisabledMountTransitionStyles
7
+ n as useOnFirstRender
8
8
  };
package/dist/index125.js CHANGED
@@ -1,90 +1,32 @@
1
- import * as L from "react";
2
- import { isElement as j } from "./index94.js";
3
- import { useStableCallback as f } from "./index95.js";
4
- import { useIsoLayoutEffect as F } from "./index97.js";
5
- import { createChangeEventDetails as w } from "./index115.js";
6
- import { useFloatingTree as q, useFloatingParentNodeId as z } from "./index135.js";
7
- import { useHoverInteractionSharedState as B, safePolygonIdentifier as H, isInteractiveElement as G } from "./index243.js";
8
- import { triggerHover as O } from "./index116.js";
9
- import { getDocument as x, getTarget as J } from "./index166.js";
10
- import { isMouseLikePointerType as K } from "./index225.js";
11
- const Q = /* @__PURE__ */ new Set(["click", "mousedown"]);
12
- function re(i, d = {}) {
13
- const n = "rootStore" in i ? i.rootStore : i, m = n.useState("open"), u = n.useState("floatingElement"), b = n.useState("domReferenceElement"), {
14
- dataRef: p
15
- } = n.context, {
16
- enabled: R = !0,
17
- closeDelay: I = 0,
18
- externalTree: A
19
- } = d, {
20
- pointerTypeRef: E,
21
- interactedInsideRef: l,
22
- handlerRef: v,
23
- performedPointerEventsMutationRef: g,
24
- unbindMouseMoveRef: N,
25
- restTimeoutPendingRef: S,
26
- openChangeTimeout: y,
27
- handleCloseOptionsRef: k
28
- } = B(n), M = q(A), T = z(), h = f(() => l.current ? !0 : p.current.openEvent ? Q.has(p.current.openEvent.type) : !1), C = f(() => {
29
- const e = p.current.openEvent?.type;
30
- return e?.includes("mouse") && e !== "mousedown";
31
- }), P = L.useCallback((e, r = !0) => {
32
- const s = U(I, E.current);
33
- s && !v.current ? y.start(s, () => n.setOpen(!1, w(O, e))) : r && (y.clear(), n.setOpen(!1, w(O, e)));
34
- }, [I, v, n, E, y]), c = f(() => {
35
- N.current(), v.current = void 0;
36
- }), a = f(() => {
37
- if (g.current) {
38
- const e = x(u).body;
39
- e.style.pointerEvents = "", e.removeAttribute(H), g.current = !1;
40
- }
41
- }), D = f((e) => {
42
- const r = J(e);
43
- if (!G(r)) {
44
- l.current = !1;
45
- return;
46
- }
47
- l.current = !0;
48
- });
49
- F(() => {
50
- m || (E.current = void 0, S.current = !1, l.current = !1, c(), a());
51
- }, [m, E, S, l, c, a]), L.useEffect(() => () => {
52
- c();
53
- }, [c]), L.useEffect(() => a, [a]), F(() => {
54
- if (R && m && k.current?.blockPointerEvents && C() && j(b) && u) {
55
- g.current = !0;
56
- const e = x(u).body;
57
- e.setAttribute(H, "");
58
- const r = b, s = u, t = M?.nodesRef.current.find((o) => o.id === T)?.context?.elements.floating;
59
- return t && (t.style.pointerEvents = ""), e.style.pointerEvents = "none", r.style.pointerEvents = "auto", s.style.pointerEvents = "auto", () => {
60
- e.style.pointerEvents = "", r.style.pointerEvents = "", s.style.pointerEvents = "";
61
- };
62
- }
63
- }, [R, m, b, u, k, C, M, T, g]), L.useEffect(() => {
64
- if (!R)
65
- return;
66
- function e(o) {
67
- if (h() || !p.current.floatingContext || !n.select("open"))
68
- return;
69
- const W = n.context.triggerElements;
70
- o.relatedTarget && W.hasElement(o.relatedTarget) || (a(), c(), h() || P(o));
71
- }
72
- function r(o) {
73
- y.clear(), a(), v.current?.(o), c();
74
- }
75
- function s(o) {
76
- h() || P(o, !1);
77
- }
78
- const t = u;
79
- return t && (t.addEventListener("mouseleave", e), t.addEventListener("mouseenter", r), t.addEventListener("mouseleave", s), t.addEventListener("pointerdown", D, !0)), () => {
80
- t && (t.removeEventListener("mouseleave", e), t.removeEventListener("mouseenter", r), t.removeEventListener("mouseleave", s), t.removeEventListener("pointerdown", D, !0));
81
- };
82
- });
83
- }
84
- function U(i, d) {
85
- return d && !K(d) ? 0 : typeof i == "function" ? i() : i;
1
+ "use client";
2
+ import * as n from "react";
3
+ function d({
4
+ controlled: o,
5
+ default: s,
6
+ name: t,
7
+ state: i = "value"
8
+ }) {
9
+ const {
10
+ current: e
11
+ } = n.useRef(o !== void 0), [l, c] = n.useState(s), u = e ? o : l;
12
+ if (process.env.NODE_ENV !== "production") {
13
+ n.useEffect(() => {
14
+ e !== (o !== void 0) && console.error([`Base UI: A component is changing the ${e ? "" : "un"}controlled ${i} state of ${t} to be ${e ? "un" : ""}controlled.`, "Elements should not switch from uncontrolled to controlled (or vice versa).", `Decide between using a controlled or uncontrolled ${t} element for the lifetime of the component.`, "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", "More info: https://fb.me/react-controlled-components"].join(`
15
+ `));
16
+ }, [i, t, o]);
17
+ const {
18
+ current: r
19
+ } = n.useRef(s);
20
+ n.useEffect(() => {
21
+ !e && JSON.stringify(r) !== JSON.stringify(s) && console.error([`Base UI: A component is changing the default ${i} state of an uncontrolled ${t} after being initialized. To suppress this warning opt to use a controlled ${t}.`].join(`
22
+ `));
23
+ }, [JSON.stringify(s)]);
24
+ }
25
+ const f = n.useCallback((r) => {
26
+ e || c(r);
27
+ }, []);
28
+ return [u, f];
86
29
  }
87
30
  export {
88
- U as getDelay,
89
- re as useHoverFloatingInteraction
31
+ d as useControlled
90
32
  };