@yselimcan/ui 0.0.6 → 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 (236) hide show
  1. package/dist/index100.js +5 -32
  2. package/dist/index101.js +8 -19
  3. package/dist/index102.js +86 -4
  4. package/dist/index103.js +13 -4
  5. package/dist/index104.js +63 -5
  6. package/dist/index105.js +38 -12
  7. package/dist/index106.js +14 -19
  8. package/dist/index107.js +33 -13
  9. package/dist/index108.js +19 -297
  10. package/dist/index109.js +5 -4
  11. package/dist/index110.js +4 -39
  12. package/dist/index111.js +5 -126
  13. package/dist/index112.js +11 -4
  14. package/dist/index113.js +19 -21
  15. package/dist/index114.js +13 -77
  16. package/dist/index115.js +291 -59
  17. package/dist/index116.js +4 -45
  18. package/dist/index117.js +37 -65
  19. package/dist/index118.js +125 -8
  20. package/dist/index119.js +20 -13
  21. package/dist/index120.js +76 -3
  22. package/dist/index121.js +64 -3
  23. package/dist/index122.js +45 -5
  24. package/dist/index123.js +14 -134
  25. package/dist/index124.js +5 -27
  26. package/dist/index125.js +27 -6
  27. package/dist/index127.js +26 -11
  28. package/dist/index128.js +15 -20
  29. package/dist/index129.js +22 -14
  30. package/dist/index130.js +58 -5
  31. package/dist/index131.js +16 -28
  32. package/dist/index132.js +25 -15
  33. package/dist/index133.js +40 -21
  34. package/dist/index134.js +43 -59
  35. package/dist/index135.js +19 -15
  36. package/dist/index136.js +47 -26
  37. package/dist/index137.js +49 -38
  38. package/dist/index138.js +18 -43
  39. package/dist/index139.js +11 -21
  40. package/dist/index140.js +22 -48
  41. package/dist/index141.js +34 -50
  42. package/dist/index142.js +229 -16
  43. package/dist/index143.js +283 -11
  44. package/dist/index144.js +52 -21
  45. package/dist/index145.js +15 -35
  46. package/dist/index146.js +74 -225
  47. package/dist/index147.js +3 -283
  48. package/dist/index148.js +30 -53
  49. package/dist/index149.js +24 -16
  50. package/dist/index150.js +15 -79
  51. package/dist/index151.js +69 -3
  52. package/dist/index152.js +4 -31
  53. package/dist/index153.js +103 -22
  54. package/dist/index154.js +79 -15
  55. package/dist/index155.js +259 -65
  56. package/dist/index156.js +12 -4
  57. package/dist/index157.js +11 -105
  58. package/dist/index158.js +37 -76
  59. package/dist/index159.js +4 -263
  60. package/dist/index160.js +66 -11
  61. package/dist/index161.js +9 -10
  62. package/dist/index162.js +8 -40
  63. package/dist/index163.js +5 -4
  64. package/dist/index164.js +129 -62
  65. package/dist/index165.js +54 -10
  66. package/dist/index166.js +11 -8
  67. package/dist/index167.js +118 -6
  68. package/dist/index168.js +11 -53
  69. package/dist/index169.js +6 -6
  70. package/dist/index17.js +4 -4
  71. package/dist/index170.js +63 -114
  72. package/dist/index171.js +8 -7
  73. package/dist/index172.js +13 -12
  74. package/dist/index173.js +11 -65
  75. package/dist/index174.js +10 -11
  76. package/dist/index175.js +87 -12
  77. package/dist/index176.js +7 -8
  78. package/dist/index177.js +11 -11
  79. package/dist/index178.js +52 -83
  80. package/dist/index179.js +11 -11
  81. package/dist/index18.js +4 -4
  82. package/dist/index180.js +11 -11
  83. package/dist/index181.js +16 -54
  84. package/dist/index182.js +8 -11
  85. package/dist/index183.js +7 -10
  86. package/dist/index184.js +102 -17
  87. package/dist/index185.js +7 -8
  88. package/dist/index186.js +32 -8
  89. package/dist/index187.js +73 -102
  90. package/dist/index188.js +14 -7
  91. package/dist/index189.js +27 -31
  92. package/dist/index19.js +9 -9
  93. package/dist/index190.js +12 -74
  94. package/dist/index191.js +7 -14
  95. package/dist/index192.js +21 -27
  96. package/dist/index193.js +25 -8
  97. package/dist/index194.js +159 -21
  98. package/dist/index195.js +114 -25
  99. package/dist/index196.js +67 -152
  100. package/dist/index197.js +62 -111
  101. package/dist/index198.js +8 -75
  102. package/dist/index199.js +22 -64
  103. package/dist/index20.js +2 -2
  104. package/dist/index200.js +5 -47
  105. package/dist/index201.js +4 -200
  106. package/dist/index202.js +9 -47
  107. package/dist/index203.js +39 -20
  108. package/dist/index204.js +57 -27
  109. package/dist/index205.js +27 -5
  110. package/dist/index206.js +7 -9
  111. package/dist/index207.js +12 -11
  112. package/dist/index208.js +11 -16
  113. package/dist/index209.js +11 -6
  114. package/dist/index21.js +3 -3
  115. package/dist/index210.js +22 -4
  116. package/dist/index211.js +11 -21
  117. package/dist/index212.js +7 -127
  118. package/dist/index213.js +43 -45
  119. package/dist/index214.js +595 -16
  120. package/dist/index215.js +12 -5
  121. package/dist/index216.js +15 -179
  122. package/dist/index217.js +47 -75
  123. package/dist/index218.js +186 -385
  124. package/dist/index219.js +48 -4
  125. package/dist/index22.js +5 -5
  126. package/dist/index220.js +19 -4
  127. package/dist/index221.js +30 -12
  128. package/dist/index222.js +5 -31
  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 -208
  144. package/dist/index237.js +6 -4
  145. package/dist/index238.js +208 -13
  146. package/dist/index239.js +3 -47
  147. package/dist/index24.js +9 -9
  148. package/dist/index240.js +13 -3
  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/index256.js +1 -1
  163. package/dist/index257.js +1 -1
  164. package/dist/index260.js +1 -1
  165. package/dist/index261.js +1 -1
  166. package/dist/index262.js +2 -2
  167. package/dist/index264.js +2 -2
  168. package/dist/index28.js +1 -1
  169. package/dist/index29.js +1 -1
  170. package/dist/index30.js +1 -1
  171. package/dist/index31.js +1 -1
  172. package/dist/index32.js +1 -1
  173. package/dist/index33.js +16 -16
  174. package/dist/index34.js +5 -5
  175. package/dist/index35.js +12 -12
  176. package/dist/index36.js +10 -10
  177. package/dist/index37.js +7 -7
  178. package/dist/index38.js +8 -8
  179. package/dist/index39.js +4 -4
  180. package/dist/index40.js +2 -2
  181. package/dist/index41.js +2 -2
  182. package/dist/index42.js +2 -2
  183. package/dist/index43.js +1 -1
  184. package/dist/index45.js +5 -5
  185. package/dist/index46.js +9 -9
  186. package/dist/index47.js +9 -9
  187. package/dist/index48.js +18 -18
  188. package/dist/index49.js +4 -4
  189. package/dist/index50.js +11 -11
  190. package/dist/index51.js +1 -1
  191. package/dist/index52.js +24 -24
  192. package/dist/index53.js +3 -3
  193. package/dist/index54.js +30 -30
  194. package/dist/index55.js +13 -13
  195. package/dist/index56.js +12 -12
  196. package/dist/index57.js +1 -1
  197. package/dist/index58.js +2 -2
  198. package/dist/index59.js +5 -5
  199. package/dist/index60.js +11 -11
  200. package/dist/index61.js +4 -4
  201. package/dist/index62.js +3 -3
  202. package/dist/index63.js +11 -11
  203. package/dist/index64.js +4 -4
  204. package/dist/index65.js +3 -3
  205. package/dist/index66.js +13 -13
  206. package/dist/index68.js +1 -1
  207. package/dist/index69.js +31 -31
  208. package/dist/index70.js +5 -5
  209. package/dist/index71.js +16 -16
  210. package/dist/index72.js +22 -22
  211. package/dist/index73.js +7 -7
  212. package/dist/index74.js +1 -1
  213. package/dist/index75.js +12 -12
  214. package/dist/index76.js +2 -2
  215. package/dist/index77.js +4 -4
  216. package/dist/index78.js +2 -2
  217. package/dist/index79.js +1 -1
  218. package/dist/index80.js +1 -1
  219. package/dist/index81.js +17 -17
  220. package/dist/index82.js +4 -4
  221. package/dist/index83.js +4 -4
  222. package/dist/index87.js +7 -7
  223. package/dist/index88.js +9 -9
  224. package/dist/index89.js +19 -90
  225. package/dist/index90.js +15 -18
  226. package/dist/index91.js +33 -16
  227. package/dist/index92.js +12 -33
  228. package/dist/index93.js +90 -12
  229. package/dist/index94.js +4 -7
  230. package/dist/index95.js +65 -86
  231. package/dist/index96.js +8 -12
  232. package/dist/index97.js +12 -61
  233. package/dist/index98.js +4 -38
  234. package/dist/index99.js +4 -14
  235. package/dist/styles.css +1 -1
  236. package/package.json +7 -4
package/dist/index148.js CHANGED
@@ -1,56 +1,33 @@
1
- import * as o from "react";
2
- import { useStableCallback as S } from "./index124.js";
3
- import { useIsoLayoutEffect as T } from "./index126.js";
4
- import { useTimeout as D } from "./index152.js";
5
- import { EMPTY_ARRAY as U } from "./index122.js";
6
- import { stopEvent as O } from "./index225.js";
7
- function H(l, b) {
8
- const g = "rootStore" in l ? l.rootStore : l, c = g.useState("open"), u = g.context.dataRef, {
9
- listRef: E,
10
- activeIndex: p,
11
- onMatch: A,
12
- onTypingChange: R,
13
- enabled: h = !0,
14
- findMatch: L = null,
15
- resetMs: F = 750,
16
- ignoreKeys: P = U,
17
- selectedIndex: y = null
18
- } = b, m = D(), r = o.useRef(""), i = o.useRef(y ?? p ?? -1), f = o.useRef(null);
19
- T(() => {
20
- c && (m.clear(), f.current = null, r.current = "");
21
- }, [c, m]), T(() => {
22
- c && r.current === "" && (i.current = y ?? p ?? -1);
23
- }, [c, y, p]);
24
- const n = S((e) => {
25
- e ? u.current.typing || (u.current.typing = e, R?.(e)) : u.current.typing && (u.current.typing = e, R?.(e));
26
- }), a = S((e) => {
27
- function C(s, x, I) {
28
- const K = L ? L(x, I) : x.find((Y) => Y?.toLocaleLowerCase().indexOf(I.toLocaleLowerCase()) === 0);
29
- return K ? s.indexOf(K) : -1;
30
- }
31
- const t = E.current;
32
- if (r.current.length > 0 && r.current[0] !== " " && (C(t, t, r.current) === -1 ? n(!1) : e.key === " " && O(e)), t == null || P.includes(e.key) || // Character key.
33
- e.key.length !== 1 || // Modifier key.
34
- e.ctrlKey || e.metaKey || e.altKey)
35
- return;
36
- c && e.key !== " " && (O(e), n(!0)), t.every((s) => s ? s[0]?.toLocaleLowerCase() !== s[1]?.toLocaleLowerCase() : !0) && r.current === e.key && (r.current = "", i.current = f.current), r.current += e.key, m.start(F, () => {
37
- r.current = "", i.current = f.current, n(!1);
38
- });
39
- const w = i.current, d = C(t, [...t.slice((w || 0) + 1), ...t.slice(0, (w || 0) + 1)], r.current);
40
- d !== -1 ? (A?.(d), f.current = d) : e.key !== " " && (r.current = "", n(!1));
41
- }), k = o.useMemo(() => ({
42
- onKeyDown: a
43
- }), [a]), M = o.useMemo(() => ({
44
- onKeyDown: a,
45
- onKeyUp(e) {
46
- e.key === " " && n(!1);
47
- }
48
- }), [a, n]);
49
- return o.useMemo(() => h ? {
50
- reference: k,
51
- floating: M
52
- } : {}, [h, k, M]);
1
+ "use client";
2
+ import { useRefWithInit as c } from "./index101.js";
3
+ import { useOnMount as u } from "./index222.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;
53
29
  }
54
30
  export {
55
- H as useTypeahead
31
+ e as Timeout,
32
+ a as useTimeout
56
33
  };
package/dist/index149.js CHANGED
@@ -1,18 +1,26 @@
1
- import * as c from "react";
2
- import { s as i } from "./index249.js";
3
- import { w as S } from "./index250.js";
4
- import { isReactVersionAtLeast as a } from "./index205.js";
5
- const u = a(19), m = u ? p : l;
6
- function b(t, e, o, r, n) {
7
- return m(t, e, o, r, n);
8
- }
9
- function p(t, e, o, r, n) {
10
- const s = c.useCallback(() => e(t.getSnapshot(), o, r, n), [t, e, o, r, n]);
11
- return i.useSyncExternalStore(t.subscribe, s, s);
12
- }
13
- function l(t, e, o, r, n) {
14
- return S.useSyncExternalStoreWithSelector(t.subscribe, t.getSnapshot, t.getSnapshot, (s) => e(s, o, r, n));
15
- }
1
+ import { FieldControlDataAttributes as a } from "./index201.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
+ };
16
23
  export {
17
- b as useStore
24
+ e as DEFAULT_VALIDITY_STATE,
25
+ r as fieldValidityMapping
18
26
  };
package/dist/index150.js CHANGED
@@ -1,82 +1,18 @@
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;
13
- }
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
- }
42
- }
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
- }
57
- }
58
- /**
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.
63
- */
64
- set(t, s) {
65
- Object.is(this.state[t], s) || e.prototype.setState.call(this, {
66
- ...this.state,
67
- [t]: s
68
- });
69
- }
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
- }
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
+ };
79
15
  }
80
16
  export {
81
- e as Store
17
+ l as getPseudoElementBounds
82
18
  };
package/dist/index151.js CHANGED
@@ -1,6 +1,72 @@
1
- function e(n) {
2
- return n?.ownerDocument || document;
1
+ import { isHTMLElement as u, isShadowRoot as i } from "./index164.js";
2
+ import { isJSDOM as c } from "./index158.js";
3
+ import { TYPEABLE_SELECTOR as s, FOCUSABLE_ATTRIBUTE as n } from "./index247.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
+ }
23
+ }
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;
56
+ }
57
+ }
58
+ function w(t) {
59
+ return t ? t.hasAttribute(n) ? t : t.querySelector(`[${n}]`) || t : null;
3
60
  }
4
61
  export {
5
- e as ownerDocument
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
6
72
  };
package/dist/index152.js CHANGED
@@ -1,33 +1,6 @@
1
- "use client";
2
- import { useRefWithInit as c } from "./index94.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;
29
- }
1
+ import * as e from "react";
2
+ const t = /* @__PURE__ */ e.createContext(void 0);
3
+ process.env.NODE_ENV !== "production" && (t.displayName = "SelectPortalContext");
30
4
  export {
31
- e as Timeout,
32
- a as useTimeout
5
+ t as SelectPortalContext
33
6
  };
package/dist/index153.js CHANGED
@@ -1,26 +1,107 @@
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]: ""
1
+ "use client";
2
+ import { getWindow as u, isOverflowElement as Y } from "./index164.js";
3
+ import { isIOS as W, isWebKit as E } from "./index158.js";
4
+ import { ownerDocument as n } from "./index147.js";
5
+ import { useIsoLayoutEffect as T } from "./index126.js";
6
+ import { Timeout as k } from "./index148.js";
7
+ import { AnimationFrame as z } from "./index160.js";
8
+ import { NOOP as H } from "./index100.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 () => {
20
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";
21
61
  }
22
- };
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]);
104
+ }
23
105
  export {
24
- e as DEFAULT_VALIDITY_STATE,
25
- r as fieldValidityMapping
106
+ _ as useScrollLock
26
107
  };
package/dist/index154.js CHANGED
@@ -1,18 +1,82 @@
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
- };
1
+ "use client";
2
+ import * as a from "react";
3
+ import { useRefWithInit as T } from "./index101.js";
4
+ import { useStableCallback as m } from "./index127.js";
5
+ import { useIsoLayoutEffect as f } from "./index126.js";
6
+ import { CompositeListContext as D } from "./index225.js";
7
+ import { jsx as L } from "react/jsx-runtime";
8
+ function k(h) {
9
+ const {
10
+ children: N,
11
+ elementsRef: t,
12
+ labelsRef: o,
13
+ onMapChange: _
14
+ } = h, C = m(_), O = a.useRef(0), d = T(R).current, i = T(P).current, [p, M] = a.useState(0), c = a.useRef(p), E = m((e, u) => {
15
+ i.set(e, u ?? null), c.current += 1, M(c.current);
16
+ }), I = m((e) => {
17
+ i.delete(e), c.current += 1, M(c.current);
18
+ }), r = a.useMemo(() => {
19
+ const e = /* @__PURE__ */ new Map();
20
+ return Array.from(i.keys()).filter((n) => n.isConnected).sort(S).forEach((n, l) => {
21
+ const s = i.get(n) ?? {};
22
+ e.set(n, {
23
+ ...s,
24
+ index: l
25
+ });
26
+ }), e;
27
+ }, [i, p]);
28
+ f(() => {
29
+ if (typeof MutationObserver != "function" || r.size === 0)
30
+ return;
31
+ const e = new MutationObserver((u) => {
32
+ const n = /* @__PURE__ */ new Set(), l = (s) => n.has(s) ? n.delete(s) : n.add(s);
33
+ u.forEach((s) => {
34
+ s.removedNodes.forEach(l), s.addedNodes.forEach(l);
35
+ }), n.size === 0 && (c.current += 1, M(c.current));
36
+ });
37
+ return r.forEach((u, n) => {
38
+ n.parentElement && e.observe(n.parentElement, {
39
+ childList: !0
40
+ });
41
+ }), () => {
42
+ e.disconnect();
43
+ };
44
+ }, [r]), f(() => {
45
+ c.current === p && (t.current.length !== r.size && (t.current.length = r.size), o && o.current.length !== r.size && (o.current.length = r.size), O.current = r.size), C(r);
46
+ }, [C, r, t, o, p]), f(() => () => {
47
+ t.current = [];
48
+ }, [t]), f(() => () => {
49
+ o && (o.current = []);
50
+ }, [o]);
51
+ const g = m((e) => (d.add(e), () => {
52
+ d.delete(e);
53
+ }));
54
+ f(() => {
55
+ d.forEach((e) => e(r));
56
+ }, [d, r]);
57
+ const b = a.useMemo(() => ({
58
+ register: E,
59
+ unregister: I,
60
+ subscribeMapChange: g,
61
+ elementsRef: t,
62
+ labelsRef: o,
63
+ nextIndexRef: O
64
+ }), [E, I, g, t, o, O]);
65
+ return /* @__PURE__ */ L(D.Provider, {
66
+ value: b,
67
+ children: N
68
+ });
69
+ }
70
+ function P() {
71
+ return /* @__PURE__ */ new Map();
72
+ }
73
+ function R() {
74
+ return /* @__PURE__ */ new Set();
75
+ }
76
+ function S(h, N) {
77
+ const t = h.compareDocumentPosition(N);
78
+ return t & Node.DOCUMENT_POSITION_FOLLOWING || t & Node.DOCUMENT_POSITION_CONTAINED_BY ? -1 : t & Node.DOCUMENT_POSITION_PRECEDING || t & Node.DOCUMENT_POSITION_CONTAINS ? 1 : 0;
15
79
  }
16
80
  export {
17
- l as getPseudoElementBounds
81
+ k as CompositeList
18
82
  };