@yselimcan/ui 0.0.2 → 0.0.4

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 (266) hide show
  1. package/dist/index.js +100 -15331
  2. package/dist/index10.js +137 -0
  3. package/dist/index100.js +8 -0
  4. package/dist/index101.js +136 -0
  5. package/dist/index102.js +30 -0
  6. package/dist/index103.js +11 -0
  7. package/dist/index104.js +7 -0
  8. package/dist/index105.js +15 -0
  9. package/dist/index106.js +25 -0
  10. package/dist/index107.js +10 -0
  11. package/dist/index108.js +90 -0
  12. package/dist/index109.js +15 -0
  13. package/dist/index11.js +21 -0
  14. package/dist/index110.js +65 -0
  15. package/dist/index111.js +40 -0
  16. package/dist/index112.js +16 -0
  17. package/dist/index113.js +35 -0
  18. package/dist/index114.js +21 -0
  19. package/dist/index115.js +8 -0
  20. package/dist/index116.js +6 -0
  21. package/dist/index117.js +7 -0
  22. package/dist/index118.js +14 -0
  23. package/dist/index119.js +21 -0
  24. package/dist/index12.js +20 -0
  25. package/dist/index120.js +15 -0
  26. package/dist/index121.js +299 -0
  27. package/dist/index122.js +7 -0
  28. package/dist/index123.js +41 -0
  29. package/dist/index124.js +128 -0
  30. package/dist/index125.js +23 -0
  31. package/dist/index126.js +79 -0
  32. package/dist/index127.js +67 -0
  33. package/dist/index128.js +48 -0
  34. package/dist/index129.js +16 -0
  35. package/dist/index13.js +206 -0
  36. package/dist/index130.js +8 -0
  37. package/dist/index131.js +32 -0
  38. package/dist/index132.js +20 -0
  39. package/dist/index133.js +24 -0
  40. package/dist/index134.js +61 -0
  41. package/dist/index135.js +20 -0
  42. package/dist/index136.js +30 -0
  43. package/dist/index137.js +43 -0
  44. package/dist/index138.js +45 -0
  45. package/dist/index139.js +24 -0
  46. package/dist/index14.js +24 -0
  47. package/dist/index140.js +51 -0
  48. package/dist/index141.js +54 -0
  49. package/dist/index142.js +20 -0
  50. package/dist/index143.js +14 -0
  51. package/dist/index144.js +25 -0
  52. package/dist/index145.js +38 -0
  53. package/dist/index146.js +233 -0
  54. package/dist/index147.js +286 -0
  55. package/dist/index148.js +56 -0
  56. package/dist/index149.js +18 -0
  57. package/dist/index15.js +19 -0
  58. package/dist/index150.js +82 -0
  59. package/dist/index151.js +6 -0
  60. package/dist/index152.js +33 -0
  61. package/dist/index153.js +26 -0
  62. package/dist/index154.js +18 -0
  63. package/dist/index155.js +72 -0
  64. package/dist/index156.js +6 -0
  65. package/dist/index157.js +107 -0
  66. package/dist/index158.js +82 -0
  67. package/dist/index159.js +266 -0
  68. package/dist/index16.js +8 -0
  69. package/dist/index160.js +14 -0
  70. package/dist/index161.js +13 -0
  71. package/dist/index162.js +43 -0
  72. package/dist/index163.js +7 -0
  73. package/dist/index164.js +69 -0
  74. package/dist/index165.js +12 -0
  75. package/dist/index166.js +11 -0
  76. package/dist/index167.js +8 -0
  77. package/dist/index168.js +56 -0
  78. package/dist/index169.js +14 -0
  79. package/dist/index17.js +46 -0
  80. package/dist/index170.js +120 -0
  81. package/dist/index171.js +14 -0
  82. package/dist/index172.js +14 -0
  83. package/dist/index173.js +69 -0
  84. package/dist/index174.js +15 -0
  85. package/dist/index175.js +15 -0
  86. package/dist/index176.js +15 -0
  87. package/dist/index177.js +14 -0
  88. package/dist/index178.js +90 -0
  89. package/dist/index179.js +14 -0
  90. package/dist/index18.js +41 -0
  91. package/dist/index180.js +14 -0
  92. package/dist/index181.js +59 -0
  93. package/dist/index182.js +14 -0
  94. package/dist/index183.js +14 -0
  95. package/dist/index184.js +21 -0
  96. package/dist/index185.js +11 -0
  97. package/dist/index186.js +11 -0
  98. package/dist/index187.js +106 -0
  99. package/dist/index188.js +10 -0
  100. package/dist/index189.js +35 -0
  101. package/dist/index19.js +80 -0
  102. package/dist/index190.js +77 -0
  103. package/dist/index191.js +17 -0
  104. package/dist/index192.js +31 -0
  105. package/dist/index193.js +10 -0
  106. package/dist/index194.js +25 -0
  107. package/dist/index195.js +27 -0
  108. package/dist/index196.js +163 -0
  109. package/dist/index197.js +116 -0
  110. package/dist/index198.js +78 -0
  111. package/dist/index199.js +67 -0
  112. package/dist/index20.js +25 -0
  113. package/dist/index200.js +50 -0
  114. package/dist/index201.js +202 -0
  115. package/dist/index202.js +50 -0
  116. package/dist/index203.js +22 -0
  117. package/dist/index204.js +8 -0
  118. package/dist/index205.js +29 -0
  119. package/dist/index206.js +14 -0
  120. package/dist/index207.js +12 -0
  121. package/dist/index208.js +19 -0
  122. package/dist/index209.js +9 -0
  123. package/dist/index21.js +40 -0
  124. package/dist/index210.js +6 -0
  125. package/dist/index211.js +24 -0
  126. package/dist/index212.js +130 -0
  127. package/dist/index213.js +47 -0
  128. package/dist/index214.js +20 -0
  129. package/dist/index215.js +7 -0
  130. package/dist/index216.js +183 -0
  131. package/dist/index217.js +78 -0
  132. package/dist/index218.js +401 -0
  133. package/dist/index219.js +41 -0
  134. package/dist/index22.js +31 -0
  135. package/dist/index220.js +59 -0
  136. package/dist/index221.js +30 -0
  137. package/dist/index222.js +10 -0
  138. package/dist/index223.js +15 -0
  139. package/dist/index224.js +14 -0
  140. package/dist/index225.js +14 -0
  141. package/dist/index226.js +24 -0
  142. package/dist/index227.js +14 -0
  143. package/dist/index228.js +10 -0
  144. package/dist/index229.js +45 -0
  145. package/dist/index23.js +25 -0
  146. package/dist/index230.js +599 -0
  147. package/dist/index231.js +14 -0
  148. package/dist/index232.js +35 -0
  149. package/dist/index233.js +6 -0
  150. package/dist/index234.js +7 -0
  151. package/dist/index235.js +17 -0
  152. package/dist/index236.js +211 -0
  153. package/dist/index237.js +6 -0
  154. package/dist/index238.js +16 -0
  155. package/dist/index239.js +50 -0
  156. package/dist/index24.js +56 -0
  157. package/dist/index240.js +6 -0
  158. package/dist/index241.js +15 -0
  159. package/dist/index242.js +60 -0
  160. package/dist/index243.js +32 -0
  161. package/dist/index244.js +16 -0
  162. package/dist/index245.js +11 -0
  163. package/dist/index246.js +209 -0
  164. package/dist/index247.js +324 -0
  165. package/dist/index248.js +5 -0
  166. package/dist/index249.js +5 -0
  167. package/dist/index25.js +35 -0
  168. package/dist/index250.js +17 -0
  169. package/dist/index251.js +23 -0
  170. package/dist/index252.js +8 -0
  171. package/dist/index253.js +489 -0
  172. package/dist/index254.js +10 -0
  173. package/dist/index255.js +4 -0
  174. package/dist/index256.js +46 -0
  175. package/dist/index257.js +58 -0
  176. package/dist/index258.js +10 -0
  177. package/dist/index259.js +4 -0
  178. package/dist/index26.js +7 -0
  179. package/dist/index260.js +57 -0
  180. package/dist/index261.js +58 -0
  181. package/dist/index262.js +4 -0
  182. package/dist/index263.js +4 -0
  183. package/dist/index264.js +4 -0
  184. package/dist/index265.js +4 -0
  185. package/dist/index27.js +82 -0
  186. package/dist/index28.js +32 -0
  187. package/dist/index29.js +6 -0
  188. package/dist/index3.js +181 -0
  189. package/dist/index30.js +9 -0
  190. package/dist/index31.js +6 -0
  191. package/dist/index32.js +23 -0
  192. package/dist/index33.js +207 -0
  193. package/dist/index34.js +25 -0
  194. package/dist/index35.js +102 -0
  195. package/dist/index36.js +69 -0
  196. package/dist/index37.js +66 -0
  197. package/dist/index38.js +113 -0
  198. package/dist/index39.js +53 -0
  199. package/dist/index4.js +47 -0
  200. package/dist/index40.js +35 -0
  201. package/dist/index41.js +28 -0
  202. package/dist/index42.js +18 -0
  203. package/dist/index43.js +27 -0
  204. package/dist/index44.js +25 -0
  205. package/dist/index45.js +36 -0
  206. package/dist/index46.js +78 -0
  207. package/dist/index47.js +65 -0
  208. package/dist/index48.js +128 -0
  209. package/dist/index49.js +19 -0
  210. package/dist/index5.js +52 -0
  211. package/dist/index50.js +86 -0
  212. package/dist/index51.js +6 -0
  213. package/dist/index52.js +268 -0
  214. package/dist/index53.js +25 -0
  215. package/dist/index54.js +207 -0
  216. package/dist/index55.js +146 -0
  217. package/dist/index56.js +88 -0
  218. package/dist/index57.js +29 -0
  219. package/dist/index58.js +30 -0
  220. package/dist/index59.js +48 -0
  221. package/dist/index6.js +93 -0
  222. package/dist/index60.js +79 -0
  223. package/dist/index61.js +45 -0
  224. package/dist/index62.js +46 -0
  225. package/dist/index63.js +76 -0
  226. package/dist/index64.js +45 -0
  227. package/dist/index65.js +22 -0
  228. package/dist/index66.js +101 -0
  229. package/dist/index67.js +14 -0
  230. package/dist/index68.js +6 -0
  231. package/dist/index69.js +321 -0
  232. package/dist/index7.js +294 -0
  233. package/dist/index70.js +24 -0
  234. package/dist/index71.js +143 -0
  235. package/dist/index72.js +200 -0
  236. package/dist/index73.js +43 -0
  237. package/dist/index74.js +29 -0
  238. package/dist/index75.js +148 -0
  239. package/dist/index76.js +32 -0
  240. package/dist/index77.js +53 -0
  241. package/dist/index78.js +28 -0
  242. package/dist/index79.js +15 -0
  243. package/dist/index8.js +264 -0
  244. package/dist/index80.js +15 -0
  245. package/dist/index81.js +135 -0
  246. package/dist/index82.js +31 -0
  247. package/dist/index83.js +35 -0
  248. package/dist/index84.js +17 -0
  249. package/dist/index85.js +2765 -0
  250. package/dist/index86.js +57 -0
  251. package/dist/index87.js +14 -0
  252. package/dist/index88.js +92 -0
  253. package/dist/index89.js +98 -0
  254. package/dist/index9.js +197 -0
  255. package/dist/index90.js +21 -0
  256. package/dist/index91.js +18 -0
  257. package/dist/index92.js +35 -0
  258. package/dist/index93.js +14 -0
  259. package/dist/index94.js +7 -0
  260. package/dist/index95.js +69 -0
  261. package/dist/index96.js +11 -0
  262. package/dist/index97.js +16 -0
  263. package/dist/index98.js +6 -0
  264. package/dist/index99.js +6 -0
  265. package/dist/styles.css +1 -1
  266. package/package.json +3 -2
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import * as t from "react";
3
+ const e = /* @__PURE__ */ t.createContext(null);
4
+ process.env.NODE_ENV !== "production" && (e.displayName = "MenubarContext");
5
+ function r(n) {
6
+ return t.useContext(e);
7
+ }
8
+ export {
9
+ e as MenubarContext,
10
+ r as useMenubarContext
11
+ };
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import * as t from "react";
3
+ const e = /* @__PURE__ */ t.createContext(void 0);
4
+ process.env.NODE_ENV !== "production" && (e.displayName = "DirectionContext");
5
+ function o() {
6
+ return t.useContext(e)?.direction ?? "ltr";
7
+ }
8
+ export {
9
+ e as DirectionContext,
10
+ o as useDirection
11
+ };
@@ -0,0 +1,106 @@
1
+ import * as o from "react";
2
+ import { EMPTY_OBJECT as s } from "./index100.js";
3
+ import { useRefWithInit as l } from "./index107.js";
4
+ import { FloatingTreeStore as u } from "./index191.js";
5
+ import { ReactStore as p } from "./index201.js";
6
+ import { PopupTriggerMap as d } from "./index202.js";
7
+ import { createSelector as t } from "./index203.js";
8
+ import { popupStoreSelectors as f, createInitialPopupStoreState as c } from "./index200.js";
9
+ const m = {
10
+ ...f,
11
+ disabled: t((e) => e.parent.type === "menubar" && e.parent.context.disabled || e.disabled),
12
+ modal: t((e) => (e.parent.type === void 0 || e.parent.type === "context-menu") && (e.modal ?? !0)),
13
+ allowMouseEnter: t((e) => e.parent.type === "menu" ? e.parent.store.select("allowMouseEnter") : e.allowMouseEnter),
14
+ stickIfOpen: t((e) => e.stickIfOpen),
15
+ parent: t((e) => e.parent),
16
+ rootId: t((e) => e.parent.type === "menu" ? e.parent.store.select("rootId") : e.parent.type !== void 0 ? e.parent.context.rootId : e.rootId),
17
+ activeIndex: t((e) => e.activeIndex),
18
+ isActive: t((e, n) => e.activeIndex === n),
19
+ hoverEnabled: t((e) => e.hoverEnabled),
20
+ instantType: t((e) => e.instantType),
21
+ lastOpenChangeReason: t((e) => e.openChangeReason),
22
+ floatingTreeRoot: t((e) => e.parent.type === "menu" ? e.parent.store.select("floatingTreeRoot") : e.floatingTreeRoot),
23
+ floatingNodeId: t((e) => e.floatingNodeId),
24
+ floatingParentNodeId: t((e) => e.floatingParentNodeId),
25
+ itemProps: t((e) => e.itemProps),
26
+ closeDelay: t((e) => e.closeDelay),
27
+ keyboardEventRelay: t((e) => {
28
+ if (e.keyboardEventRelay)
29
+ return e.keyboardEventRelay;
30
+ if (e.parent.type === "menu")
31
+ return e.parent.store.select("keyboardEventRelay");
32
+ })
33
+ };
34
+ class a extends p {
35
+ constructor(n) {
36
+ super({
37
+ ...g(),
38
+ ...n
39
+ }, {
40
+ positionerRef: /* @__PURE__ */ o.createRef(),
41
+ popupRef: /* @__PURE__ */ o.createRef(),
42
+ typingRef: {
43
+ current: !1
44
+ },
45
+ itemDomElements: {
46
+ current: []
47
+ },
48
+ itemLabels: {
49
+ current: []
50
+ },
51
+ allowMouseUpTriggerRef: {
52
+ current: !1
53
+ },
54
+ triggerFocusTargetRef: /* @__PURE__ */ o.createRef(),
55
+ beforeContentFocusGuardRef: /* @__PURE__ */ o.createRef(),
56
+ onOpenChangeComplete: void 0,
57
+ triggerElements: new d()
58
+ }, m), this.observe(t((r) => r.allowMouseEnter), (r, i) => {
59
+ this.state.parent.type === "menu" && r !== i && this.state.parent.store.set("allowMouseEnter", r);
60
+ }), this.unsubscribeParentListener = this.observe("parent", (r) => {
61
+ if (this.unsubscribeParentListener?.(), r.type === "menu") {
62
+ this.unsubscribeParentListener = r.store.subscribe(() => {
63
+ this.notifyAll();
64
+ }), this.context.allowMouseUpTriggerRef = r.store.context.allowMouseUpTriggerRef;
65
+ return;
66
+ }
67
+ r.type !== void 0 && (this.context.allowMouseUpTriggerRef = r.context.allowMouseUpTriggerRef), this.unsubscribeParentListener = null;
68
+ });
69
+ }
70
+ setOpen(n, r) {
71
+ this.state.floatingRootContext.context.events.emit("setOpen", {
72
+ open: n,
73
+ eventDetails: r
74
+ });
75
+ }
76
+ static useStore(n, r) {
77
+ return l(() => n ?? new a(r)).current;
78
+ }
79
+ unsubscribeParentListener = null;
80
+ }
81
+ function g() {
82
+ return {
83
+ ...c(),
84
+ disabled: !1,
85
+ modal: !0,
86
+ allowMouseEnter: !0,
87
+ stickIfOpen: !0,
88
+ parent: {
89
+ type: void 0
90
+ },
91
+ rootId: void 0,
92
+ activeIndex: null,
93
+ hoverEnabled: !0,
94
+ instantType: void 0,
95
+ openChangeReason: null,
96
+ floatingTreeRoot: new u(),
97
+ floatingNodeId: void 0,
98
+ floatingParentNodeId: null,
99
+ itemProps: s,
100
+ keyboardEventRelay: void 0,
101
+ closeDelay: 0
102
+ };
103
+ }
104
+ export {
105
+ a as MenuStore
106
+ };
@@ -0,0 +1,10 @@
1
+ import * as e from "react";
2
+ const t = /* @__PURE__ */ e.createContext(void 0);
3
+ process.env.NODE_ENV !== "production" && (t.displayName = "MenuSubmenuRootContext");
4
+ function n() {
5
+ return e.useContext(t);
6
+ }
7
+ export {
8
+ t as MenuSubmenuRootContext,
9
+ n as useMenuSubmenuRootContext
10
+ };
@@ -0,0 +1,35 @@
1
+ import { useId as f } from "./index184.js";
2
+ import { useRefWithInit as g } from "./index107.js";
3
+ import { useIsoLayoutEffect as E } from "./index104.js";
4
+ import { isElement as d } from "./index101.js";
5
+ import { useFloatingParentNodeId as S } from "./index181.js";
6
+ import { FloatingRootStore as x } from "./index242.js";
7
+ function v(p) {
8
+ const {
9
+ popupStore: o,
10
+ noEmit: i = !1,
11
+ treatPopupAsFloatingElement: a = !1,
12
+ onOpenChange: m
13
+ } = p, n = f(), c = S() != null, r = o.useState("open"), t = o.useState("activeTriggerElement"), s = o.useState(a ? "popupElement" : "positionerElement"), u = o.context.triggerElements, e = g(() => new x({
14
+ open: r,
15
+ referenceElement: t,
16
+ floatingElement: s,
17
+ triggerElements: u,
18
+ onOpenChange: m,
19
+ floatingId: n,
20
+ nested: c,
21
+ noEmit: i
22
+ })).current;
23
+ return E(() => {
24
+ const l = {
25
+ open: r,
26
+ floatingId: n,
27
+ referenceElement: t,
28
+ floatingElement: s
29
+ };
30
+ d(t) && (l.domReferenceElement = t), e.update(l);
31
+ }, [r, n, t, s, e]), e.context.onOpenChange = m, e.context.nested = c, e.context.noEmit = i, e;
32
+ }
33
+ export {
34
+ v as useSyncedFloatingRootContext
35
+ };
@@ -0,0 +1,80 @@
1
+ "use client";
2
+ import * as c from "react";
3
+ import { useDialogRootContext as h } from "./index109.js";
4
+ import { useRenderElement as M } from "./index86.js";
5
+ import { popupStateMapping as y } from "./index111.js";
6
+ import { transitionStatusMapping as N } from "./index112.js";
7
+ import { DialogPopupCssVars as v } from "./index116.js";
8
+ import { DialogPopupDataAttributes as w } from "./index117.js";
9
+ import { useDialogPortalContext as A } from "./index118.js";
10
+ import { useOpenChangeComplete as K } from "./index119.js";
11
+ import { COMPOSITE_KEYS as T } from "./index120.js";
12
+ import { jsx as V } from "react/jsx-runtime";
13
+ import { FloatingFocusManager as _ } from "./index121.js";
14
+ const j = {
15
+ ...y,
16
+ ...N,
17
+ nestedDialogOpen(n) {
18
+ return n ? {
19
+ [w.nestedDialogOpen]: ""
20
+ } : null;
21
+ }
22
+ }, k = /* @__PURE__ */ c.forwardRef(function(s, d) {
23
+ const {
24
+ className: Y,
25
+ finalFocus: m,
26
+ initialFocus: i,
27
+ render: q,
28
+ ...f
29
+ } = s, {
30
+ store: t
31
+ } = h(), g = t.useState("descriptionElementId"), S = t.useState("disablePointerDismissal"), D = t.useState("floatingRootContext"), C = t.useState("popupProps"), P = t.useState("modal"), a = t.useState("mounted"), p = t.useState("nested"), r = t.useState("nestedOpenDialogCount"), e = t.useState("open"), x = t.useState("openMethod"), O = t.useState("titleElementId"), u = t.useState("transitionStatus"), b = t.useState("role");
32
+ A(), K({
33
+ open: e,
34
+ ref: t.context.popupRef,
35
+ onComplete() {
36
+ e && t.context.onOpenChangeComplete?.(!0);
37
+ }
38
+ });
39
+ function E(o) {
40
+ return o === "touch" ? t.context.popupRef.current : !0;
41
+ }
42
+ const F = i === void 0 ? E : i, l = r > 0, I = c.useMemo(() => ({
43
+ open: e,
44
+ nested: p,
45
+ transitionStatus: u,
46
+ nestedDialogOpen: l
47
+ }), [e, p, u, l]), R = M("div", s, {
48
+ state: I,
49
+ props: [C, {
50
+ "aria-labelledby": O ?? void 0,
51
+ "aria-describedby": g ?? void 0,
52
+ role: b,
53
+ tabIndex: -1,
54
+ hidden: !a,
55
+ onKeyDown(o) {
56
+ T.has(o.key) && o.stopPropagation();
57
+ },
58
+ style: {
59
+ [v.nestedDialogs]: r
60
+ }
61
+ }, f],
62
+ ref: [d, t.context.popupRef, t.useStateSetter("popupElement")],
63
+ stateAttributesMapping: j
64
+ });
65
+ return /* @__PURE__ */ V(_, {
66
+ context: D,
67
+ openInteractionType: x,
68
+ disabled: !a,
69
+ closeOnFocusOut: !S,
70
+ initialFocus: F,
71
+ returnFocus: m,
72
+ modal: P !== !1,
73
+ restoreFocus: "popup",
74
+ children: R
75
+ });
76
+ });
77
+ process.env.NODE_ENV !== "production" && (k.displayName = "DialogPopup");
78
+ export {
79
+ k as DialogPopup
80
+ };
@@ -0,0 +1,77 @@
1
+ import * as r from "react";
2
+ import { useId as P } from "./index184.js";
3
+ import { useFloatingParentNodeId as S } from "./index181.js";
4
+ import { EMPTY_OBJECT as F } from "./index100.js";
5
+ import { getFloatingFocusElement as y } from "./index155.js";
6
+ const T = /* @__PURE__ */ new Map([["select", "listbox"], ["combobox", "listbox"], ["label", !1]]);
7
+ function k(c, I = {}) {
8
+ const a = "rootStore" in c ? c.rootStore : c, l = a.useState("open"), u = a.useState("floatingId"), x = a.useState("domReferenceElement"), d = a.useState("floatingElement"), {
9
+ enabled: m = !0,
10
+ role: o = "dialog"
11
+ } = I, M = P(), s = x?.id || M, t = r.useMemo(() => y(d)?.id || u, [d, u]), e = T.get(o) ?? o, p = S() != null, i = r.useMemo(() => e === "tooltip" || o === "label" ? F : {
12
+ "aria-haspopup": e === "alertdialog" ? "dialog" : e,
13
+ "aria-expanded": "false",
14
+ ...e === "listbox" && {
15
+ role: "combobox"
16
+ },
17
+ ...e === "menu" && p && {
18
+ role: "menuitem"
19
+ },
20
+ ...o === "select" && {
21
+ "aria-autocomplete": "none"
22
+ },
23
+ ...o === "combobox" && {
24
+ "aria-autocomplete": "list"
25
+ }
26
+ }, [e, p, o]), f = r.useMemo(() => e === "tooltip" || o === "label" ? {
27
+ [`aria-${o === "label" ? "labelledby" : "describedby"}`]: l ? t : void 0
28
+ } : {
29
+ ...i,
30
+ "aria-expanded": l ? "true" : "false",
31
+ "aria-controls": l ? t : void 0,
32
+ ...e === "menu" && {
33
+ id: s
34
+ }
35
+ }, [e, t, l, s, o, i]), b = r.useMemo(() => {
36
+ const n = {
37
+ id: t,
38
+ ...e && {
39
+ role: e
40
+ }
41
+ };
42
+ return e === "tooltip" || o === "label" ? n : {
43
+ ...n,
44
+ ...e === "menu" && {
45
+ "aria-labelledby": s
46
+ }
47
+ };
48
+ }, [e, t, s, o]), g = r.useCallback(({
49
+ active: n,
50
+ selected: R
51
+ }) => {
52
+ const E = {
53
+ role: "option",
54
+ ...n && {
55
+ id: `${t}-fui-option`
56
+ }
57
+ };
58
+ switch (o) {
59
+ case "select":
60
+ case "combobox":
61
+ return {
62
+ ...E,
63
+ "aria-selected": R
64
+ };
65
+ }
66
+ return {};
67
+ }, [t, o]);
68
+ return r.useMemo(() => m ? {
69
+ reference: f,
70
+ floating: b,
71
+ item: g,
72
+ trigger: i
73
+ } : {}, [m, f, b, i, g]);
74
+ }
75
+ export {
76
+ k as useRole
77
+ };
@@ -0,0 +1,17 @@
1
+ import { createEventEmitter as n } from "./index235.js";
2
+ class d {
3
+ nodesRef = {
4
+ current: []
5
+ };
6
+ events = n();
7
+ addNode(e) {
8
+ this.nodesRef.current.push(e);
9
+ }
10
+ removeNode(e) {
11
+ const t = this.nodesRef.current.findIndex((r) => r === e);
12
+ t !== -1 && this.nodesRef.current.splice(t, 1);
13
+ }
14
+ }
15
+ export {
16
+ d as FloatingTreeStore
17
+ };
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { useRenderElement as c } from "./index86.js";
3
+ import { useCompositeItem as u } from "./index232.js";
4
+ import { EMPTY_OBJECT as d, EMPTY_ARRAY as t } from "./index100.js";
5
+ function M(e) {
6
+ const {
7
+ render: l,
8
+ className: E,
9
+ state: o = d,
10
+ props: r = t,
11
+ refs: s = t,
12
+ metadata: m,
13
+ stateAttributesMapping: p,
14
+ tag: i = "div",
15
+ ...a
16
+ } = e, {
17
+ compositeProps: n,
18
+ compositeRef: f
19
+ } = u({
20
+ metadata: m
21
+ });
22
+ return c(i, e, {
23
+ state: o,
24
+ ref: [...s, f],
25
+ props: [n, ...r, a],
26
+ stateAttributesMapping: p
27
+ });
28
+ }
29
+ export {
30
+ M as CompositeItem
31
+ };
@@ -0,0 +1,10 @@
1
+ import { isHTMLElement as r, isLastTraversableNode as e, getParentNode as i } from "./index101.js";
2
+ function n(t) {
3
+ if (r(t) && t.hasAttribute("data-rootownerid"))
4
+ return t.getAttribute("data-rootownerid") ?? void 0;
5
+ if (!e(t))
6
+ return n(i(t));
7
+ }
8
+ export {
9
+ n as findRootOwnerId
10
+ };
@@ -0,0 +1,25 @@
1
+ import * as c from "react";
2
+ import { ownerDocument as i } from "./index151.js";
3
+ import { EMPTY_OBJECT as s } from "./index100.js";
4
+ function a(u) {
5
+ const {
6
+ enabled: t = !0,
7
+ mouseDownAction: r,
8
+ open: n
9
+ } = u, e = c.useRef(!1);
10
+ return c.useMemo(() => t ? {
11
+ onMouseDown: (o) => {
12
+ (r === "open" && !n || r === "close" && n) && (e.current = !0, i(o.currentTarget).addEventListener("click", () => {
13
+ e.current = !1;
14
+ }, {
15
+ once: !0
16
+ }));
17
+ },
18
+ onClick: (o) => {
19
+ e.current && (e.current = !1, o.preventBaseUIHandler());
20
+ }
21
+ } : s, [t, r, n]);
22
+ }
23
+ export {
24
+ a as useMixedToggleClickHandler
25
+ };
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import * as r from "react";
3
+ import { useIsoLayoutEffect as a } from "./index104.js";
4
+ import { isSafari as u } from "./index162.js";
5
+ import { visuallyHidden as i } from "./index129.js";
6
+ import { jsx as f } from "react/jsx-runtime";
7
+ const n = /* @__PURE__ */ r.forwardRef(function(e, t) {
8
+ const [o, s] = r.useState();
9
+ return a(() => {
10
+ u && s("button");
11
+ }, []), /* @__PURE__ */ f("span", {
12
+ ...e,
13
+ ref: t,
14
+ style: i,
15
+ "aria-hidden": o ? void 0 : !0,
16
+ ...{
17
+ tabIndex: 0,
18
+ // Role is only for VoiceOver
19
+ role: o
20
+ },
21
+ "data-base-ui-focus-guard": ""
22
+ });
23
+ });
24
+ process.env.NODE_ENV !== "production" && (n.displayName = "FocusGuard");
25
+ export {
26
+ n as FocusGuard
27
+ };
@@ -0,0 +1,163 @@
1
+ import * as H from "react";
2
+ import * as te from "react-dom";
3
+ import { isElement as re } from "./index101.js";
4
+ import { useValueAsRef as N } from "./index132.js";
5
+ import { useStableCallback as Y } from "./index102.js";
6
+ import { createChangeEventDetails as C } from "./index113.js";
7
+ import { getDelay as V } from "./index244.js";
8
+ import { useFloatingTree as ne } from "./index181.js";
9
+ import { useHoverInteractionSharedState as oe, safePolygonIdentifier as ce } from "./index243.js";
10
+ import { triggerHover as L } from "./index114.js";
11
+ import { getDocument as z, contains as O } from "./index155.js";
12
+ import { isMouseLikePointerType as B } from "./index221.js";
13
+ function W(l) {
14
+ return typeof l == "function" ? l() : l;
15
+ }
16
+ const se = {
17
+ current: null
18
+ };
19
+ function Re(l, G = {}) {
20
+ const t = "rootStore" in l ? l.rootStore : l, {
21
+ dataRef: a,
22
+ events: A
23
+ } = t.context, {
24
+ enabled: x = !0,
25
+ delay: J = 0,
26
+ handleClose: K = null,
27
+ mouseOnly: D = !1,
28
+ restMs: Q = 0,
29
+ move: X = !0,
30
+ triggerElementRef: b = se,
31
+ externalTree: U,
32
+ isActiveTrigger: _ = !0
33
+ } = G, w = ne(U), {
34
+ pointerTypeRef: o,
35
+ interactedInsideRef: Z,
36
+ handlerRef: d,
37
+ blockMouseMoveRef: p,
38
+ performedPointerEventsMutationRef: j,
39
+ unbindMouseMoveRef: P,
40
+ restTimeoutPendingRef: f,
41
+ openChangeTimeout: c,
42
+ restTimeout: m,
43
+ handleCloseOptionsRef: $
44
+ } = oe(t), v = N(K), M = N(J), T = N(Q);
45
+ _ && ($.current = v.current?.__options);
46
+ const y = Y(() => Z.current ? !0 : a.current.openEvent ? ["click", "mousedown"].includes(a.current.openEvent.type) : !1), S = H.useCallback((e, r = !0) => {
47
+ const s = V(M.current, "close", o.current);
48
+ s && !d.current ? c.start(s, () => t.setOpen(!1, C(L, e))) : r && (c.clear(), t.setOpen(!1, C(L, e)));
49
+ }, [M, d, t, o, c]), F = Y(() => {
50
+ P.current(), d.current = void 0;
51
+ }), k = Y(() => {
52
+ if (j.current) {
53
+ const e = z(t.select("domReferenceElement")).body;
54
+ e.style.pointerEvents = "", e.removeAttribute(ce), j.current = !1;
55
+ }
56
+ });
57
+ H.useEffect(() => {
58
+ if (!x)
59
+ return;
60
+ function e(r) {
61
+ r.open || (c.clear(), m.clear(), p.current = !0, f.current = !1);
62
+ }
63
+ return A.on("openchange", e), () => {
64
+ A.off("openchange", e);
65
+ };
66
+ }, [x, A, c, m, p, f]);
67
+ const q = Y((e) => {
68
+ if (y() || !a.current.floatingContext)
69
+ return;
70
+ const r = t.context.triggerElements;
71
+ if (e.relatedTarget && r.hasElement(e.relatedTarget))
72
+ return;
73
+ const s = b.current;
74
+ v.current?.({
75
+ ...a.current.floatingContext,
76
+ tree: w,
77
+ x: e.clientX,
78
+ y: e.clientY,
79
+ onClose() {
80
+ k(), F(), !y() && s === t.select("domReferenceElement") && S(e);
81
+ }
82
+ })(e);
83
+ });
84
+ return H.useEffect(() => {
85
+ if (!x)
86
+ return;
87
+ const e = b.current ?? (_ ? t.select("domReferenceElement") : null);
88
+ if (!re(e))
89
+ return;
90
+ function r(n) {
91
+ if (c.clear(), p.current = !1, D && !B(o.current) || W(T.current) > 0 && !V(M.current, "open"))
92
+ return;
93
+ const g = V(M.current, "open", o.current), u = t.select("domReferenceElement"), i = t.context.triggerElements, E = (i.hasElement(n.target) || i.hasMatchingElement((ee) => O(ee, n.target))) && (!u || !O(u, n.target)), R = n.currentTarget ?? null, h = !t.select("open") || E;
94
+ g ? c.start(g, () => {
95
+ h && t.setOpen(!0, C(L, n, R));
96
+ }) : h && t.setOpen(!0, C(L, n, R));
97
+ }
98
+ function s(n) {
99
+ if (y()) {
100
+ k();
101
+ return;
102
+ }
103
+ P.current();
104
+ const g = t.select("domReferenceElement"), u = z(g);
105
+ m.clear(), f.current = !1;
106
+ const i = t.context.triggerElements;
107
+ if (n.relatedTarget && i.hasElement(n.relatedTarget))
108
+ return;
109
+ if (v.current && a.current.floatingContext) {
110
+ t.select("open") || c.clear();
111
+ const R = b.current;
112
+ d.current = v.current({
113
+ ...a.current.floatingContext,
114
+ tree: w,
115
+ x: n.clientX,
116
+ y: n.clientY,
117
+ onClose() {
118
+ k(), F(), !y() && R === t.select("domReferenceElement") && S(n, !0);
119
+ }
120
+ });
121
+ const h = d.current;
122
+ h(n), u.addEventListener("mousemove", h), P.current = () => {
123
+ u.removeEventListener("mousemove", h);
124
+ };
125
+ return;
126
+ }
127
+ (o.current !== "touch" || !O(t.select("floatingElement"), n.relatedTarget)) && S(n);
128
+ }
129
+ function I(n) {
130
+ q(n);
131
+ }
132
+ return t.select("open") && e.addEventListener("mouseleave", I), X && e.addEventListener("mousemove", r, {
133
+ once: !0
134
+ }), e.addEventListener("mouseenter", r), e.addEventListener("mouseleave", s), () => {
135
+ e.removeEventListener("mouseleave", I), X && e.removeEventListener("mousemove", r), e.removeEventListener("mouseenter", r), e.removeEventListener("mouseleave", s);
136
+ };
137
+ }, [F, k, p, a, M, S, t, x, v, q, _, y, D, X, o, T, m, f, c, b, w, P, d]), H.useMemo(() => {
138
+ function e(r) {
139
+ o.current = r.pointerType;
140
+ }
141
+ return {
142
+ onPointerDown: e,
143
+ onPointerEnter: e,
144
+ onMouseMove(r) {
145
+ const {
146
+ nativeEvent: s
147
+ } = r, I = r.currentTarget, n = t.select("domReferenceElement"), g = t.context.triggerElements, u = t.select("open"), i = (g.hasElement(r.target) || g.hasMatchingElement((R) => O(R, r.target))) && (!n || !O(n, r.target));
148
+ if (D && !B(o.current) || u && !i || W(T.current) === 0 || !i && f.current && r.movementX ** 2 + r.movementY ** 2 < 2)
149
+ return;
150
+ m.clear();
151
+ function E() {
152
+ !p.current && (!u || i) && t.setOpen(!0, C(L, s, I));
153
+ }
154
+ o.current === "touch" ? te.flushSync(() => {
155
+ E();
156
+ }) : i && u ? E() : (f.current = !0, m.start(W(T.current), E));
157
+ }
158
+ };
159
+ }, [p, D, t, o, T, m, f]);
160
+ }
161
+ export {
162
+ Re as useHoverReferenceInteraction
163
+ };