@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/index145.js CHANGED
@@ -1,106 +1,18 @@
1
- import * as o from "react";
2
- import { EMPTY_OBJECT as s } from "./index106.js";
3
- import { useRefWithInit as l } from "./index168.js";
4
- import { FloatingTreeStore as u } from "./index155.js";
5
- import { ReactStore as p } from "./index211.js";
6
- import { PopupTriggerMap as d } from "./index212.js";
7
- import { createSelector as t } from "./index213.js";
8
- import { popupStoreSelectors as f, createInitialPopupStoreState as c } from "./index214.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;
1
+ import * as c from "react";
2
+ import { s as i } from "./index251.js";
3
+ import { w as S } from "./index252.js";
4
+ import { isReactVersionAtLeast as a } from "./index200.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);
80
12
  }
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
- };
13
+ function l(t, e, o, r, n) {
14
+ return S.useSyncExternalStoreWithSelector(t.subscribe, t.getSnapshot, t.getSnapshot, (s) => e(s, o, r, n));
103
15
  }
104
16
  export {
105
- a as MenuStore
17
+ b as useStore
106
18
  };
package/dist/index146.js CHANGED
@@ -1,10 +1,82 @@
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);
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
+ }
6
79
  }
7
80
  export {
8
- t as MenuSubmenuRootContext,
9
- n as useMenuSubmenuRootContext
81
+ e as Store
10
82
  };
package/dist/index147.js CHANGED
@@ -1,35 +1,6 @@
1
- import { useId as f } from "./index139.js";
2
- import { useRefWithInit as g } from "./index168.js";
3
- import { useIsoLayoutEffect as E } from "./index97.js";
4
- import { isElement as d } from "./index94.js";
5
- import { useFloatingParentNodeId as S } from "./index135.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;
1
+ function e(n) {
2
+ return n?.ownerDocument || document;
32
3
  }
33
4
  export {
34
- v as useSyncedFloatingRootContext
5
+ e as ownerDocument
35
6
  };
package/dist/index148.js CHANGED
@@ -1,233 +1,33 @@
1
- import * as p from "react";
2
- import { isElement as P, isLastTraversableNode as U, getParentNode as Ce, isHTMLElement as Oe, getComputedStyle as Se, getOverflowAncestors as j, isWebKit as De } from "./index94.js";
3
- import { useTimeout as ce, Timeout as ke } from "./index138.js";
4
- import { useStableCallback as s } from "./index95.js";
5
- import { useFloatingTree as Me } from "./index135.js";
6
- import { createChangeEventDetails as S } from "./index115.js";
7
- import { createAttribute as Ke } from "./index238.js";
8
- import { isReactEvent as Ie } from "./index225.js";
9
- import { getTarget as w, getDocument as ie, contains as X, isRootElement as xe, isEventTargetWithin as f } from "./index166.js";
10
- import { getNodeChildren as G } from "./index241.js";
11
- import { triggerPress as le, escapeKey as Xe, outsidePress as Ye, none as We } from "./index116.js";
12
- const _e = {
13
- intentional: "onClick",
14
- sloppy: "onPointerDown"
15
- };
16
- function He(d) {
17
- return {
18
- escapeKey: typeof d == "boolean" ? d : d?.escapeKey ?? !1,
19
- outsidePress: typeof d == "boolean" ? d : d?.outsidePress ?? !0
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);
20
23
  };
24
+ disposeEffect = () => this.clear;
21
25
  }
22
- function Je(d, ue = {}) {
23
- const r = "rootStore" in d ? d.rootStore : d, Y = r.useState("open"), D = r.useState("floatingElement"), C = r.useState("referenceElement"), W = r.useState("domReferenceElement"), {
24
- onOpenChange: ae,
25
- dataRef: m
26
- } = r.context, {
27
- enabled: E = !0,
28
- escapeKey: k = !0,
29
- outsidePress: M = !0,
30
- outsidePressEvent: _ = "sloppy",
31
- referencePress: J = !1,
32
- referencePressEvent: H = "sloppy",
33
- ancestorScroll: Q = !1,
34
- bubbles: fe,
35
- externalTree: de
36
- } = ue, T = Me(de), pe = s(typeof M == "function" ? M : () => !1), v = typeof M == "function" ? pe : M, A = p.useRef(!1), {
37
- escapeKey: K,
38
- outsidePress: Z
39
- } = He(fe), u = p.useRef(null), I = ce(), z = ce(), b = s(() => {
40
- z.clear(), m.current.insideReactTree = !1;
41
- }), B = p.useRef(!1), ee = p.useRef(""), N = s((e) => {
42
- ee.current = e.pointerType;
43
- }), L = s(() => {
44
- const e = ee.current, n = e === "pen" || !e ? "mouse" : e, t = typeof _ == "function" ? _() : _;
45
- return typeof t == "string" ? t : t[n];
46
- }), h = s((e) => {
47
- if (!Y || !E || !k || e.key !== "Escape" || B.current)
48
- return;
49
- const n = m.current.floatingContext?.nodeId, t = T ? G(T.nodesRef.current, n) : [];
50
- if (!K && t.length > 0) {
51
- let i = !0;
52
- if (t.forEach((c) => {
53
- c.context?.open && !c.context.dataRef.current.__escapeKeyBubbles && (i = !1);
54
- }), !i)
55
- return;
56
- }
57
- const a = Ie(e) ? e.nativeEvent : e, o = S(Xe, a);
58
- r.setOpen(!1, o), !K && !o.isPropagationAllowed && e.stopPropagation();
59
- }), me = s((e) => {
60
- const n = L();
61
- return n === "intentional" && e.type !== "click" || n === "sloppy" && e.type === "click";
62
- }), g = s(() => {
63
- m.current.insideReactTree = !0, z.start(0, b);
64
- }), O = s((e, n = !1) => {
65
- if (me(e)) {
66
- b();
67
- return;
68
- }
69
- if (m.current.insideReactTree) {
70
- b();
71
- return;
72
- }
73
- if (L() === "intentional" && n || typeof v == "function" && !v(e))
74
- return;
75
- const t = w(e), a = `[${Ke("inert")}]`, o = ie(r.select("floatingElement")).querySelectorAll(a), i = r.context.triggerElements;
76
- if (t && (i.hasElement(t) || i.hasMatchingElement((l) => X(l, t))))
77
- return;
78
- let c = P(t) ? t : null;
79
- for (; c && !U(c); ) {
80
- const l = Ce(c);
81
- if (U(l) || !P(l))
82
- break;
83
- c = l;
84
- }
85
- if (o.length && P(t) && !xe(t) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
86
- !X(t, r.select("floatingElement")) && // If the target root element contains none of the markers, then the
87
- // element was injected after the floating element rendered.
88
- Array.from(o).every((l) => !X(c, l)))
89
- return;
90
- if (Oe(t) && !("touches" in e)) {
91
- const l = U(t), R = Se(t), se = /auto|scroll/, Te = l || se.test(R.overflowX), ve = l || se.test(R.overflowY), be = Te && t.clientWidth > 0 && t.scrollWidth > t.clientWidth, Le = ve && t.clientHeight > 0 && t.scrollHeight > t.clientHeight, Re = R.direction === "rtl", Pe = Le && (Re ? e.offsetX <= t.offsetWidth - t.clientWidth : e.offsetX > t.clientWidth), we = be && e.offsetY > t.clientHeight;
92
- if (Pe || we)
93
- return;
94
- }
95
- const oe = m.current.floatingContext?.nodeId, ye = T && G(T.nodesRef.current, oe).some((l) => f(e, l.context?.elements.floating));
96
- if (f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")) || ye)
97
- return;
98
- const re = T ? G(T.nodesRef.current, oe) : [];
99
- if (re.length > 0) {
100
- let l = !0;
101
- if (re.forEach((R) => {
102
- R.context?.open && !R.context.dataRef.current.__outsidePressBubbles && (l = !1);
103
- }), !l)
104
- return;
105
- }
106
- r.setOpen(!1, S(Ye, e)), b();
107
- }), te = s((e) => {
108
- L() !== "sloppy" || e.pointerType === "touch" || !r.select("open") || !E || f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")) || O(e);
109
- }), Ee = s((e) => {
110
- if (L() !== "sloppy" || !r.select("open") || !E || f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")))
111
- return;
112
- const n = e.touches[0];
113
- n && (u.current = {
114
- startTime: Date.now(),
115
- startX: n.clientX,
116
- startY: n.clientY,
117
- dismissOnTouchEnd: !1,
118
- dismissOnMouseDown: !0
119
- }, I.start(1e3, () => {
120
- u.current && (u.current.dismissOnTouchEnd = !1, u.current.dismissOnMouseDown = !1);
121
- }));
122
- }), V = s((e) => {
123
- const n = w(e);
124
- function t() {
125
- Ee(e), n?.removeEventListener(e.type, t);
126
- }
127
- n?.addEventListener(e.type, t);
128
- }), y = s((e) => {
129
- const n = A.current;
130
- if (A.current = !1, I.clear(), e.type === "mousedown" && u.current && !u.current.dismissOnMouseDown)
131
- return;
132
- const t = w(e);
133
- function a() {
134
- e.type === "pointerdown" ? te(e) : O(e, n), t?.removeEventListener(e.type, a);
135
- }
136
- t?.addEventListener(e.type, a);
137
- }), he = s((e) => {
138
- if (L() !== "sloppy" || !u.current || f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")))
139
- return;
140
- const n = e.touches[0];
141
- if (!n)
142
- return;
143
- const t = Math.abs(n.clientX - u.current.startX), a = Math.abs(n.clientY - u.current.startY), o = Math.sqrt(t * t + a * a);
144
- o > 5 && (u.current.dismissOnTouchEnd = !0), o > 10 && (O(e), I.clear(), u.current = null);
145
- }), $ = s((e) => {
146
- const n = w(e);
147
- function t() {
148
- he(e), n?.removeEventListener(e.type, t);
149
- }
150
- n?.addEventListener(e.type, t);
151
- }), ge = s((e) => {
152
- L() !== "sloppy" || !u.current || f(e, r.select("floatingElement")) || f(e, r.select("domReferenceElement")) || (u.current.dismissOnTouchEnd && O(e), I.clear(), u.current = null);
153
- }), q = s((e) => {
154
- const n = w(e);
155
- function t() {
156
- ge(e), n?.removeEventListener(e.type, t);
157
- }
158
- n?.addEventListener(e.type, t);
159
- });
160
- p.useEffect(() => {
161
- if (!Y || !E)
162
- return;
163
- m.current.__escapeKeyBubbles = K, m.current.__outsidePressBubbles = Z;
164
- const e = new ke();
165
- function n(c) {
166
- r.setOpen(!1, S(We, c));
167
- }
168
- function t() {
169
- e.clear(), B.current = !0;
170
- }
171
- function a() {
172
- e.start(
173
- // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.
174
- // Only apply to WebKit for the test to remain 0ms.
175
- De() ? 5 : 0,
176
- () => {
177
- B.current = !1;
178
- }
179
- );
180
- }
181
- const o = ie(D);
182
- o.addEventListener("pointerdown", N, !0), k && (o.addEventListener("keydown", h), o.addEventListener("compositionstart", t), o.addEventListener("compositionend", a)), v && (o.addEventListener("click", y, !0), o.addEventListener("pointerdown", y, !0), o.addEventListener("touchstart", V, !0), o.addEventListener("touchmove", $, !0), o.addEventListener("touchend", q, !0), o.addEventListener("mousedown", y, !0));
183
- let i = [];
184
- return Q && (P(W) && (i = j(W)), P(D) && (i = i.concat(j(D))), !P(C) && C && C.contextElement && (i = i.concat(j(C.contextElement)))), i = i.filter((c) => c !== o.defaultView?.visualViewport), i.forEach((c) => {
185
- c.addEventListener("scroll", n, {
186
- passive: !0
187
- });
188
- }), () => {
189
- o.removeEventListener("pointerdown", N, !0), k && (o.removeEventListener("keydown", h), o.removeEventListener("compositionstart", t), o.removeEventListener("compositionend", a)), v && (o.removeEventListener("click", y, !0), o.removeEventListener("pointerdown", y, !0), o.removeEventListener("touchstart", V, !0), o.removeEventListener("touchmove", $, !0), o.removeEventListener("touchend", q, !0), o.removeEventListener("mousedown", y, !0)), i.forEach((c) => {
190
- c.removeEventListener("scroll", n);
191
- }), e.clear();
192
- };
193
- }, [m, D, C, W, k, v, Y, ae, Q, E, K, Z, h, O, y, te, V, $, q, N, r]), p.useEffect(b, [v, b]);
194
- const F = p.useMemo(() => ({
195
- onKeyDown: h,
196
- ...J && {
197
- [_e[H]]: (e) => {
198
- r.setOpen(!1, S(le, e.nativeEvent));
199
- },
200
- ...H !== "intentional" && {
201
- onClick(e) {
202
- r.setOpen(!1, S(le, e.nativeEvent));
203
- }
204
- }
205
- }
206
- }), [h, r, J, H]), x = s((e) => {
207
- const n = w(e.nativeEvent);
208
- !X(r.select("floatingElement"), n) || e.button !== 0 || (A.current = !0);
209
- }), ne = p.useMemo(() => ({
210
- onKeyDown: h,
211
- // `onMouseDown` may be blocked if `event.preventDefault()` is called in
212
- // `onPointerDown`, such as with <NumberField.ScrubArea>.
213
- // See https://github.com/mui/base-ui/pull/3379
214
- onPointerDown: x,
215
- onMouseDown: x,
216
- onMouseUp: x,
217
- onClickCapture: g,
218
- onMouseDownCapture: g,
219
- onPointerDownCapture: g,
220
- onMouseUpCapture: g,
221
- onTouchEndCapture: g,
222
- onTouchMoveCapture: g
223
- }), [h, x, g]);
224
- return p.useMemo(() => E ? {
225
- reference: F,
226
- floating: ne,
227
- trigger: F
228
- } : {}, [E, F, ne]);
26
+ function a() {
27
+ const r = c(e.create).current;
28
+ return u(r.disposeEffect), r;
229
29
  }
230
30
  export {
231
- He as normalizeProp,
232
- Je as useDismiss
31
+ e as Timeout,
32
+ a as useTimeout
233
33
  };
package/dist/index149.js CHANGED
@@ -1,77 +1,26 @@
1
- import * as r from "react";
2
- import { useId as P } from "./index139.js";
3
- import { useFloatingParentNodeId as S } from "./index135.js";
4
- import { EMPTY_OBJECT as F } from "./index106.js";
5
- import { getFloatingFocusElement as y } from "./index166.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
- }
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]: ""
41
20
  };
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
- }
21
+ }
22
+ };
75
23
  export {
76
- k as useRole
24
+ e as DEFAULT_VALIDITY_STATE,
25
+ r as fieldValidityMapping
77
26
  };