@yselimcan/ui 0.0.3 → 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 (208) hide show
  1. package/dist/index100.js +5 -4
  2. package/dist/index101.js +128 -61
  3. package/dist/index102.js +27 -8
  4. package/dist/index103.js +7 -12
  5. package/dist/index104.js +5 -4
  6. package/dist/index105.js +12 -3
  7. package/dist/index106.js +22 -5
  8. package/dist/index108.js +7 -7
  9. package/dist/index109.js +1 -1
  10. package/dist/index110.js +4 -4
  11. package/dist/index113.js +1 -1
  12. package/dist/index115.js +1 -1
  13. package/dist/index118.js +1 -1
  14. package/dist/index119.js +2 -2
  15. package/dist/index121.js +19 -19
  16. package/dist/index122.js +1 -1
  17. package/dist/index124.js +7 -7
  18. package/dist/index126.js +3 -3
  19. package/dist/index127.js +5 -5
  20. package/dist/index128.js +1 -1
  21. package/dist/index129.js +14 -30
  22. package/dist/index130.js +4 -10
  23. package/dist/index131.js +27 -64
  24. package/dist/index132.js +15 -51
  25. package/dist/index133.js +21 -12
  26. package/dist/index134.js +58 -12
  27. package/dist/index135.js +16 -11
  28. package/dist/index136.js +23 -36
  29. package/dist/index137.js +40 -11
  30. package/dist/index138.js +43 -9
  31. package/dist/index139.js +21 -5
  32. package/dist/index140.js +46 -85
  33. package/dist/index141.js +51 -11
  34. package/dist/index142.js +14 -260
  35. package/dist/index143.js +11 -79
  36. package/dist/index144.js +21 -10
  37. package/dist/index145.js +34 -55
  38. package/dist/index146.js +230 -11
  39. package/dist/index147.js +283 -11
  40. package/dist/index148.js +53 -30
  41. package/dist/index149.js +14 -17
  42. package/dist/index150.js +72 -59
  43. package/dist/index151.js +3 -104
  44. package/dist/index152.js +29 -7
  45. package/dist/index153.js +24 -9
  46. package/dist/index154.js +15 -22
  47. package/dist/index155.js +66 -100
  48. package/dist/index156.js +2 -6
  49. package/dist/index157.js +103 -31
  50. package/dist/index158.js +75 -226
  51. package/dist/index159.js +257 -68
  52. package/dist/index160.js +11 -283
  53. package/dist/index161.js +10 -53
  54. package/dist/index162.js +40 -3
  55. package/dist/index163.js +4 -14
  56. package/dist/index164.js +65 -14
  57. package/dist/index165.js +10 -29
  58. package/dist/index166.js +8 -7
  59. package/dist/index167.js +5 -22
  60. package/dist/index168.js +53 -24
  61. package/dist/index169.js +11 -160
  62. package/dist/index170.js +114 -110
  63. package/dist/index171.js +11 -75
  64. package/dist/index172.js +11 -64
  65. package/dist/index173.js +65 -68
  66. package/dist/index174.js +13 -14
  67. package/dist/index175.js +13 -6
  68. package/dist/index176.js +11 -16
  69. package/dist/index177.js +11 -21
  70. package/dist/index178.js +86 -57
  71. package/dist/index179.js +11 -17
  72. package/dist/index18.js +1 -1
  73. package/dist/index180.js +11 -27
  74. package/dist/index181.js +56 -42
  75. package/dist/index182.js +10 -20
  76. package/dist/index183.js +11 -48
  77. package/dist/index184.js +15 -48
  78. package/dist/index185.js +8 -17
  79. package/dist/index186.js +8 -11
  80. package/dist/index187.js +102 -34
  81. package/dist/index188.js +7 -15
  82. package/dist/index189.js +31 -78
  83. package/dist/index190.js +74 -23
  84. package/dist/index191.js +15 -4
  85. package/dist/index192.js +28 -11
  86. package/dist/index193.js +7 -10
  87. package/dist/index194.js +22 -40
  88. package/dist/index195.js +25 -5
  89. package/dist/index196.js +160 -9
  90. package/dist/index197.js +113 -11
  91. package/dist/index198.js +73 -115
  92. package/dist/index199.js +64 -11
  93. package/dist/index200.js +47 -5
  94. package/dist/index201.js +193 -41
  95. package/dist/index202.js +30 -182
  96. package/dist/index203.js +20 -48
  97. package/dist/index204.js +6 -20
  98. package/dist/index205.js +3 -3
  99. package/dist/index206.js +12 -4
  100. package/dist/index207.js +9 -21
  101. package/dist/index208.js +14 -125
  102. package/dist/index209.js +7 -45
  103. package/dist/index210.js +4 -18
  104. package/dist/index211.js +22 -5
  105. package/dist/index212.js +122 -175
  106. package/dist/index213.js +45 -76
  107. package/dist/index214.js +15 -396
  108. package/dist/index215.js +5 -7
  109. package/dist/index216.js +181 -5
  110. package/dist/index217.js +74 -15
  111. package/dist/index218.js +396 -12
  112. package/dist/index219.js +38 -32
  113. package/dist/index220.js +57 -39
  114. package/dist/index221.js +28 -57
  115. package/dist/index222.js +7 -27
  116. package/dist/index223.js +12 -7
  117. package/dist/index224.js +10 -11
  118. package/dist/index225.js +5 -5
  119. package/dist/index226.js +21 -11
  120. package/dist/index227.js +11 -21
  121. package/dist/index228.js +7 -11
  122. package/dist/index229.js +42 -7
  123. package/dist/index230.js +594 -40
  124. package/dist/index231.js +11 -596
  125. package/dist/index232.js +32 -11
  126. package/dist/index233.js +3 -3
  127. package/dist/index234.js +5 -10
  128. package/dist/index235.js +14 -11
  129. package/dist/index236.js +208 -14
  130. package/dist/index237.js +4 -209
  131. package/dist/index238.js +13 -3
  132. package/dist/index239.js +47 -13
  133. package/dist/index24.js +2 -2
  134. package/dist/index240.js +3 -47
  135. package/dist/index241.js +12 -3
  136. package/dist/index242.js +56 -11
  137. package/dist/index243.js +29 -57
  138. package/dist/index244.js +13 -29
  139. package/dist/index245.js +9 -14
  140. package/dist/index246.js +207 -9
  141. package/dist/index247.js +304 -189
  142. package/dist/index248.js +3 -21
  143. package/dist/index249.js +3 -6
  144. package/dist/index250.js +14 -321
  145. package/dist/index251.js +21 -3
  146. package/dist/index252.js +6 -3
  147. package/dist/index253.js +1 -1
  148. package/dist/index28.js +1 -1
  149. package/dist/index32.js +1 -1
  150. package/dist/index33.js +12 -12
  151. package/dist/index34.js +4 -4
  152. package/dist/index35.js +9 -9
  153. package/dist/index36.js +6 -6
  154. package/dist/index37.js +7 -7
  155. package/dist/index38.js +9 -9
  156. package/dist/index39.js +2 -2
  157. package/dist/index40.js +2 -2
  158. package/dist/index41.js +2 -2
  159. package/dist/index42.js +2 -2
  160. package/dist/index43.js +1 -1
  161. package/dist/index45.js +5 -5
  162. package/dist/index46.js +7 -7
  163. package/dist/index47.js +7 -7
  164. package/dist/index48.js +14 -14
  165. package/dist/index49.js +4 -4
  166. package/dist/index50.js +6 -6
  167. package/dist/index52.js +20 -20
  168. package/dist/index53.js +2 -2
  169. package/dist/index54.js +23 -23
  170. package/dist/index55.js +7 -7
  171. package/dist/index56.js +5 -5
  172. package/dist/index57.js +1 -1
  173. package/dist/index58.js +2 -2
  174. package/dist/index59.js +4 -4
  175. package/dist/index60.js +8 -8
  176. package/dist/index61.js +3 -3
  177. package/dist/index62.js +3 -3
  178. package/dist/index63.js +8 -8
  179. package/dist/index64.js +3 -3
  180. package/dist/index65.js +3 -3
  181. package/dist/index66.js +8 -8
  182. package/dist/index67.js +1 -1
  183. package/dist/index69.js +26 -26
  184. package/dist/index70.js +4 -4
  185. package/dist/index71.js +11 -11
  186. package/dist/index72.js +16 -16
  187. package/dist/index73.js +7 -7
  188. package/dist/index74.js +1 -1
  189. package/dist/index75.js +11 -11
  190. package/dist/index76.js +2 -2
  191. package/dist/index77.js +2 -2
  192. package/dist/index78.js +2 -2
  193. package/dist/index79.js +1 -1
  194. package/dist/index80.js +1 -1
  195. package/dist/index81.js +14 -14
  196. package/dist/index82.js +3 -3
  197. package/dist/index83.js +4 -4
  198. package/dist/index86.js +7 -7
  199. package/dist/index88.js +81 -87
  200. package/dist/index89.js +87 -81
  201. package/dist/index94.js +4 -133
  202. package/dist/index95.js +63 -24
  203. package/dist/index96.js +8 -8
  204. package/dist/index97.js +14 -5
  205. package/dist/index98.js +3 -12
  206. package/dist/index99.js +3 -22
  207. package/dist/styles.css +1 -1
  208. package/package.json +1 -1
package/dist/index150.js CHANGED
@@ -1,69 +1,82 @@
1
- "use client";
2
- import { useRefWithInit as u } from "./index107.js";
3
- import { useOnMount as h } from "./index215.js";
4
- const s = null;
5
- let l = globalThis.requestAnimationFrame;
6
- class o {
7
- /* This implementation uses an array as a backing data-structure for frame callbacks.
8
- * It allows `O(1)` callback cancelling by inserting a `null` in the array, though it
9
- * never calls the native `cancelAnimationFrame` if there are no frames left. This can
10
- * be much more efficient if there is a call pattern that alterns as
11
- * "request-cancel-request-cancel-…".
12
- * But in the case of "request-request-…-cancel-cancel-…", it leaves the final animation
13
- * frame to run anyway. We turn that frame into a `O(1)` no-op via `callbacksCount`. */
14
- callbacks = [];
15
- callbacksCount = 0;
16
- nextId = 1;
17
- startId = 1;
18
- isScheduled = !1;
19
- tick = (t) => {
20
- this.isScheduled = !1;
21
- const e = this.callbacks, i = this.callbacksCount;
22
- if (this.callbacks = [], this.callbacksCount = 0, this.startId = this.nextId, i > 0)
23
- for (let r = 0; r < e.length; r += 1)
24
- e[r]?.(t);
25
- };
26
- request(t) {
27
- const e = this.nextId;
28
- this.nextId += 1, this.callbacks.push(t), this.callbacksCount += 1;
29
- const i = process.env.NODE_ENV === "test" && l !== requestAnimationFrame && (l = requestAnimationFrame, !0);
30
- return (!this.isScheduled || i) && (requestAnimationFrame(this.tick), this.isScheduled = !0), e;
31
- }
32
- cancel(t) {
33
- const e = t - this.startId;
34
- e < 0 || e >= this.callbacks.length || (this.callbacks[e] = null, this.callbacksCount -= 1);
35
- }
36
- }
37
- const c = new o();
38
- class a {
39
- static create() {
40
- return new a();
1
+ class e {
2
+ /**
3
+ * The current state of the store.
4
+ * This property is updated immediately when the state changes as a result of calling {@link setState}, {@link update}, or {@link set}.
5
+ * To subscribe to state changes, use the {@link useState} method. The value returned by {@link useState} is updated after the component renders (similarly to React's useState).
6
+ * The values can be used directly (to avoid subscribing to the store) in effects or event handlers.
7
+ *
8
+ * Do not modify properties in state directly. Instead, use the provided methods to ensure proper state management and listener notification.
9
+ */
10
+ // Internal state to handle recursive `setState()` calls
11
+ constructor(t) {
12
+ this.state = t, this.listeners = /* @__PURE__ */ new Set(), this.updateTick = 0;
41
13
  }
42
- static request(t) {
43
- return c.request(t);
14
+ /**
15
+ * Registers a listener that will be called whenever the store's state changes.
16
+ *
17
+ * @param fn The listener function to be called on state changes.
18
+ * @returns A function to unsubscribe the listener.
19
+ */
20
+ subscribe = (t) => (this.listeners.add(t), () => {
21
+ this.listeners.delete(t);
22
+ });
23
+ /**
24
+ * Returns the current state of the store.
25
+ */
26
+ getSnapshot = () => this.state;
27
+ /**
28
+ * Updates the entire store's state and notifies all registered listeners.
29
+ *
30
+ * @param newState The new state to set for the store.
31
+ */
32
+ setState(t) {
33
+ if (this.state === t)
34
+ return;
35
+ this.state = t, this.updateTick += 1;
36
+ const s = this.updateTick;
37
+ for (const i of this.listeners) {
38
+ if (s !== this.updateTick)
39
+ return;
40
+ i(t);
41
+ }
44
42
  }
45
- static cancel(t) {
46
- return c.cancel(t);
43
+ /**
44
+ * Merges the provided changes into the current state and notifies listeners if there are changes.
45
+ *
46
+ * @param changes An object containing the changes to apply to the current state.
47
+ */
48
+ update(t) {
49
+ for (const s in t)
50
+ if (!Object.is(this.state[s], t[s])) {
51
+ e.prototype.setState.call(this, {
52
+ ...this.state,
53
+ ...t
54
+ });
55
+ return;
56
+ }
47
57
  }
48
- currentId = s;
49
58
  /**
50
- * Executes `fn` after `delay`, clearing any previously scheduled call.
59
+ * Sets a specific key in the store's state to a new value and notifies listeners if the value has changed.
60
+ *
61
+ * @param key The key in the store's state to update.
62
+ * @param value The new value to set for the specified key.
51
63
  */
52
- request(t) {
53
- this.cancel(), this.currentId = c.request(() => {
54
- this.currentId = s, t();
64
+ set(t, s) {
65
+ Object.is(this.state[t], s) || e.prototype.setState.call(this, {
66
+ ...this.state,
67
+ [t]: s
55
68
  });
56
69
  }
57
- cancel = () => {
58
- this.currentId !== s && (c.cancel(this.currentId), this.currentId = s);
59
- };
60
- disposeEffect = () => this.cancel;
61
- }
62
- function k() {
63
- const n = u(a.create).current;
64
- return h(n.disposeEffect), n;
70
+ /**
71
+ * Gives the state a new reference and updates all registered listeners.
72
+ */
73
+ notifyAll() {
74
+ const t = {
75
+ ...this.state
76
+ };
77
+ e.prototype.setState.call(this, t);
78
+ }
65
79
  }
66
80
  export {
67
- a as AnimationFrame,
68
- k as useAnimationFrame
81
+ e as Store
69
82
  };
package/dist/index151.js CHANGED
@@ -1,107 +1,6 @@
1
- "use client";
2
- import { getWindow as u, isOverflowElement as Y } from "./index94.js";
3
- import { isIOS as W, isWebKit as E } from "./index194.js";
4
- import { ownerDocument as n } from "./index162.js";
5
- import { useIsoLayoutEffect as T } from "./index97.js";
6
- import { Timeout as k } from "./index148.js";
7
- import { AnimationFrame as z } from "./index150.js";
8
- import { NOOP as H } from "./index106.js";
9
- let L = {}, C = {}, O = "";
10
- function F(r) {
11
- if (typeof document > "u")
12
- return !1;
13
- const o = n(r);
14
- return u(o).innerWidth - o.documentElement.clientWidth > 0;
15
- }
16
- function j(r) {
17
- const o = n(r), t = o.documentElement, e = o.body, l = Y(t) ? t : e, s = l.style.overflow;
18
- return l.style.overflow = "hidden", () => {
19
- l.style.overflow = s;
20
- };
21
- }
22
- function I(r) {
23
- const o = n(r), t = o.documentElement, e = o.body, l = u(t);
24
- let s = 0, c = 0;
25
- const h = z.create(), f = typeof CSS < "u" && CSS.supports?.("scrollbar-gutter", "stable");
26
- if (E && (l.visualViewport?.scale ?? 1) !== 1)
27
- return () => {
28
- };
29
- function d() {
30
- const a = l.getComputedStyle(t), i = l.getComputedStyle(e), y = (a.scrollbarGutter || "").includes("both-edges") ? "stable both-edges" : "stable";
31
- s = t.scrollTop, c = t.scrollLeft, L = {
32
- scrollbarGutter: t.style.scrollbarGutter,
33
- overflowY: t.style.overflowY,
34
- overflowX: t.style.overflowX
35
- }, O = t.style.scrollBehavior, C = {
36
- position: e.style.position,
37
- height: e.style.height,
38
- width: e.style.width,
39
- boxSizing: e.style.boxSizing,
40
- overflowY: e.style.overflowY,
41
- overflowX: e.style.overflowX,
42
- scrollBehavior: e.style.scrollBehavior
43
- };
44
- const X = t.scrollHeight > t.clientHeight, B = t.scrollWidth > t.clientWidth, x = a.overflowY === "scroll" || i.overflowY === "scroll", G = a.overflowX === "scroll" || i.overflowX === "scroll", b = Math.max(0, l.innerWidth - t.clientWidth), w = Math.max(0, l.innerHeight - t.clientHeight), p = parseFloat(i.marginTop) + parseFloat(i.marginBottom), g = parseFloat(i.marginLeft) + parseFloat(i.marginRight), S = Y(t) ? t : e;
45
- if (f) {
46
- t.style.scrollbarGutter = y, S.style.overflowY = "hidden", S.style.overflowX = "hidden";
47
- return;
48
- }
49
- Object.assign(t.style, {
50
- scrollbarGutter: y,
51
- overflowY: "hidden",
52
- overflowX: "hidden"
53
- }), (X || x) && (t.style.overflowY = "scroll"), (B || G) && (t.style.overflowX = "scroll"), Object.assign(e.style, {
54
- position: "relative",
55
- height: p || w ? `calc(100dvh - ${p + w}px)` : "100dvh",
56
- width: g || b ? `calc(100vw - ${g + b}px)` : "100vw",
57
- boxSizing: "border-box",
58
- overflow: "hidden",
59
- scrollBehavior: "unset"
60
- }), e.scrollTop = s, e.scrollLeft = c, t.setAttribute("data-base-ui-scroll-locked", ""), t.style.scrollBehavior = "unset";
61
- }
62
- function m() {
63
- Object.assign(t.style, L), Object.assign(e.style, C), f || (t.scrollTop = s, t.scrollLeft = c, t.removeAttribute("data-base-ui-scroll-locked"), t.style.scrollBehavior = O);
64
- }
65
- function v() {
66
- m(), h.request(d);
67
- }
68
- return d(), l.addEventListener("resize", v), () => {
69
- h.cancel(), m(), typeof l.removeEventListener == "function" && l.removeEventListener("resize", v);
70
- };
71
- }
72
- class R {
73
- lockCount = 0;
74
- restore = null;
75
- timeoutLock = k.create();
76
- timeoutUnlock = k.create();
77
- acquire(o) {
78
- return this.lockCount += 1, this.lockCount === 1 && this.restore === null && this.timeoutLock.start(0, () => this.lock(o)), this.release;
79
- }
80
- release = () => {
81
- this.lockCount -= 1, this.lockCount === 0 && this.restore && this.timeoutUnlock.start(0, this.unlock);
82
- };
83
- unlock = () => {
84
- this.lockCount === 0 && this.restore && (this.restore?.(), this.restore = null);
85
- };
86
- lock(o) {
87
- if (this.lockCount === 0 || this.restore !== null)
88
- return;
89
- const e = n(o).documentElement, l = u(e).getComputedStyle(e).overflowY;
90
- if (l === "hidden" || l === "clip") {
91
- this.restore = H;
92
- return;
93
- }
94
- const s = W || !F(o);
95
- this.restore = s ? j(o) : I(o);
96
- }
97
- }
98
- const V = new R();
99
- function _(r = !0, o = null) {
100
- T(() => {
101
- if (r)
102
- return V.acquire(o);
103
- }, [r, o]);
1
+ function e(n) {
2
+ return n?.ownerDocument || document;
104
3
  }
105
4
  export {
106
- _ as useScrollLock
5
+ e as ownerDocument
107
6
  };
package/dist/index152.js CHANGED
@@ -1,11 +1,33 @@
1
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);
2
+ import { useRefWithInit as c } from "./index107.js";
3
+ import { useOnMount as u } from "./index209.js";
4
+ const t = 0;
5
+ class e {
6
+ static create() {
7
+ return new e();
8
+ }
9
+ currentId = t;
10
+ /**
11
+ * Executes `fn` after `delay`, clearing any previously scheduled call.
12
+ */
13
+ start(s, i) {
14
+ this.clear(), this.currentId = setTimeout(() => {
15
+ this.currentId = t, i();
16
+ }, s);
17
+ }
18
+ isStarted() {
19
+ return this.currentId !== t;
20
+ }
21
+ clear = () => {
22
+ this.currentId !== t && (clearTimeout(this.currentId), this.currentId = t);
23
+ };
24
+ disposeEffect = () => this.clear;
25
+ }
26
+ function a() {
27
+ const r = c(e.create).current;
28
+ return u(r.disposeEffect), r;
7
29
  }
8
30
  export {
9
- e as MenubarContext,
10
- r as useMenubarContext
31
+ e as Timeout,
32
+ a as useTimeout
11
33
  };
package/dist/index153.js CHANGED
@@ -1,11 +1,26 @@
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
- }
1
+ import { FieldControlDataAttributes as a } from "./index210.js";
2
+ const e = {
3
+ badInput: !1,
4
+ customError: !1,
5
+ patternMismatch: !1,
6
+ rangeOverflow: !1,
7
+ rangeUnderflow: !1,
8
+ stepMismatch: !1,
9
+ tooLong: !1,
10
+ tooShort: !1,
11
+ typeMismatch: !1,
12
+ valid: null,
13
+ valueMissing: !1
14
+ }, r = {
15
+ valid(l) {
16
+ return l === null ? null : l ? {
17
+ [a.valid]: ""
18
+ } : {
19
+ [a.invalid]: ""
20
+ };
21
+ }
22
+ };
8
23
  export {
9
- e as DirectionContext,
10
- o as useDirection
24
+ e as DEFAULT_VALIDITY_STATE,
25
+ r as fieldValidityMapping
11
26
  };
package/dist/index154.js CHANGED
@@ -1,25 +1,18 @@
1
- "use client";
2
- import * as e from "react";
3
- import { useStableCallback as a } from "./index95.js";
4
- import { useEnhancedClickHandler as u } from "./index217.js";
5
- function f(s) {
6
- const [n, t] = e.useState(null), c = a((p, i) => {
7
- s || t(i);
8
- }), o = e.useCallback(() => {
9
- t(null);
10
- }, []), {
11
- onClick: r,
12
- onPointerDown: l
13
- } = u(c);
14
- return e.useMemo(() => ({
15
- openMethod: n,
16
- reset: o,
17
- triggerProps: {
18
- onClick: r,
19
- onPointerDown: l
20
- }
21
- }), [n, o, r, l]);
1
+ function l(e) {
2
+ const t = e.getBoundingClientRect();
3
+ if (process.env.NODE_ENV === "test")
4
+ return t;
5
+ const o = window.getComputedStyle(e, "::before"), n = window.getComputedStyle(e, "::after");
6
+ if (!(o.content !== "none" || n.content !== "none"))
7
+ return t;
8
+ const i = parseFloat(o.width) || 0, r = parseFloat(o.height) || 0, a = parseFloat(n.width) || 0, c = parseFloat(n.height) || 0, d = Math.max(t.width, i, a), f = Math.max(t.height, r, c), s = d - t.width, h = f - t.height;
9
+ return {
10
+ left: t.left - s / 2,
11
+ right: t.right + s / 2,
12
+ top: t.top - h / 2,
13
+ bottom: t.bottom + h / 2
14
+ };
22
15
  }
23
16
  export {
24
- f as useOpenInteractionType
17
+ l as getPseudoElementBounds
25
18
  };
package/dist/index155.js CHANGED
@@ -1,106 +1,72 @@
1
- import * as o from "react";
2
- import { EMPTY_OBJECT as s } from "./index106.js";
3
- import { useRefWithInit as l } from "./index107.js";
4
- import { FloatingTreeStore as u } from "./index163.js";
5
- import { ReactStore as p } from "./index202.js";
6
- import { PopupTriggerMap as d } from "./index203.js";
7
- import { createSelector as t } from "./index204.js";
8
- import { popupStoreSelectors as f, createInitialPopupStoreState as c } from "./index201.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
- });
1
+ import { isHTMLElement as u, isShadowRoot as i } from "./index101.js";
2
+ import { isJSDOM as c } from "./index162.js";
3
+ import { TYPEABLE_SELECTOR as s, FOCUSABLE_ATTRIBUTE as n } from "./index245.js";
4
+ function h(t) {
5
+ let e = t.activeElement;
6
+ for (; e?.shadowRoot?.activeElement != null; )
7
+ e = e.shadowRoot.activeElement;
8
+ return e;
9
+ }
10
+ function b(t, e) {
11
+ if (!t || !e)
12
+ return !1;
13
+ const r = e.getRootNode?.();
14
+ if (t.contains(e))
15
+ return !0;
16
+ if (r && i(r)) {
17
+ let o = e;
18
+ for (; o; ) {
19
+ if (t === o)
20
+ return !0;
21
+ o = o.parentNode || o.host;
22
+ }
75
23
  }
76
- static useStore(n, r) {
77
- return l(() => n ?? new a(r)).current;
24
+ return !1;
25
+ }
26
+ function E(t) {
27
+ return "composedPath" in t ? t.composedPath()[0] : t.target;
28
+ }
29
+ function T(t, e) {
30
+ if (e == null)
31
+ return !1;
32
+ if ("composedPath" in t)
33
+ return t.composedPath().includes(e);
34
+ const r = t;
35
+ return r.target != null && e.contains(r.target);
36
+ }
37
+ function p(t) {
38
+ return t.matches("html,body");
39
+ }
40
+ function d(t) {
41
+ return t?.ownerDocument || document;
42
+ }
43
+ function a(t) {
44
+ return u(t) && t.matches(s);
45
+ }
46
+ function g(t) {
47
+ return t ? t.getAttribute("role") === "combobox" && a(t) : !1;
48
+ }
49
+ function R(t) {
50
+ if (!t || c)
51
+ return !0;
52
+ try {
53
+ return t.matches(":focus-visible");
54
+ } catch {
55
+ return !0;
78
56
  }
79
- unsubscribeParentListener = null;
80
57
  }
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
- };
58
+ function w(t) {
59
+ return t ? t.hasAttribute(n) ? t : t.querySelector(`[${n}]`) || t : null;
103
60
  }
104
61
  export {
105
- a as MenuStore
62
+ h as activeElement,
63
+ b as contains,
64
+ d as getDocument,
65
+ w as getFloatingFocusElement,
66
+ E as getTarget,
67
+ T as isEventTargetWithin,
68
+ p as isRootElement,
69
+ g as isTypeableCombobox,
70
+ a as isTypeableElement,
71
+ R as matchesFocusVisible
106
72
  };
package/dist/index156.js CHANGED
@@ -1,10 +1,6 @@
1
1
  import * as e from "react";
2
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
- }
3
+ process.env.NODE_ENV !== "production" && (t.displayName = "SelectPortalContext");
7
4
  export {
8
- t as MenuSubmenuRootContext,
9
- n as useMenuSubmenuRootContext
5
+ t as SelectPortalContext
10
6
  };