@okam/stack-ui 1.42.1 → 1.42.3

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 (181) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/components/ShareButton/interface.d.ts +0 -1
  3. package/index100.js +1 -1
  4. package/index100.mjs +1 -1
  5. package/index101.js +1 -1
  6. package/index101.mjs +1 -1
  7. package/index102.js +1 -1
  8. package/index102.mjs +1 -1
  9. package/index151.js +1 -1
  10. package/index151.mjs +1 -1
  11. package/index153.js +1 -1
  12. package/index153.mjs +4 -4
  13. package/index154.js +1 -1
  14. package/index154.mjs +2 -2
  15. package/index155.js +1 -1
  16. package/index155.mjs +1 -1
  17. package/index156.js +1 -1
  18. package/index156.mjs +1 -1
  19. package/index161.js +1 -1
  20. package/index161.mjs +2 -2
  21. package/index163.js +1 -1
  22. package/index163.mjs +2 -2
  23. package/index164.js +1 -1
  24. package/index164.mjs +5 -5
  25. package/index165.js +1 -1
  26. package/index165.mjs +3 -3
  27. package/index167.js +1 -1
  28. package/index167.mjs +2 -2
  29. package/index172.js +1 -1
  30. package/index172.mjs +2 -2
  31. package/index176.js +1 -1
  32. package/index176.mjs +4 -4
  33. package/index177.js +1 -1
  34. package/index177.mjs +1 -1
  35. package/index178.js +1 -1
  36. package/index178.mjs +2 -2
  37. package/index179.js +1 -1
  38. package/index179.mjs +3 -3
  39. package/index181.js +1 -1
  40. package/index181.mjs +3 -3
  41. package/index187.js +1 -1
  42. package/index187.mjs +5 -11
  43. package/index188.js +2 -1
  44. package/index188.mjs +49 -5
  45. package/index189.js +1 -2
  46. package/index189.mjs +11 -49
  47. package/index232.js +1 -1
  48. package/index232.mjs +132 -117
  49. package/index233.js +1 -1
  50. package/index233.mjs +196 -26
  51. package/index234.js +1 -1
  52. package/index234.mjs +18 -69
  53. package/index235.js +1 -1
  54. package/index235.mjs +4 -382
  55. package/index236.js +1 -1
  56. package/index236.mjs +28 -46
  57. package/index237.js +1 -1
  58. package/index237.mjs +50 -4
  59. package/index238.js +1 -1
  60. package/index238.mjs +52 -22
  61. package/index239.js +1 -1
  62. package/index239.mjs +46 -45
  63. package/index240.js +1 -1
  64. package/index240.mjs +96 -4
  65. package/index241.js +1 -1
  66. package/index241.mjs +5 -24
  67. package/index242.js +1 -1
  68. package/index242.mjs +6 -12
  69. package/index243.js +1 -1
  70. package/index243.mjs +41 -4
  71. package/index244.js +1 -1
  72. package/index244.mjs +72 -15
  73. package/index245.js +1 -1
  74. package/index245.mjs +14 -42
  75. package/index246.js +1 -1
  76. package/index246.mjs +66 -55
  77. package/index247.js +1 -1
  78. package/index247.mjs +7 -41
  79. package/index248.js +1 -1
  80. package/index248.mjs +10 -27
  81. package/index249.js +1 -1
  82. package/index249.mjs +46 -30
  83. package/index250.js +1 -1
  84. package/index250.mjs +124 -13
  85. package/index251.js +1 -1
  86. package/index251.mjs +73 -10
  87. package/index252.js +1 -1
  88. package/index252.mjs +378 -25
  89. package/index253.js +1 -1
  90. package/index253.mjs +45 -8
  91. package/index254.js +1 -1
  92. package/index254.mjs +24 -6
  93. package/index255.js +1 -1
  94. package/index255.mjs +24 -5
  95. package/index256.js +1 -1
  96. package/index256.mjs +12 -7
  97. package/index257.js +1 -1
  98. package/index257.mjs +4 -29
  99. package/index258.js +1 -1
  100. package/index258.mjs +14 -18
  101. package/index259.js +1 -1
  102. package/index259.mjs +42 -13
  103. package/index260.js +1 -1
  104. package/index260.mjs +54 -40
  105. package/index261.js +1 -1
  106. package/index261.mjs +27 -7
  107. package/index262.js +1 -1
  108. package/index262.mjs +29 -15
  109. package/index263.js +1 -1
  110. package/index263.mjs +11 -3
  111. package/index264.js +1 -1
  112. package/index264.mjs +9 -4
  113. package/index265.js +1 -1
  114. package/index265.mjs +5 -19
  115. package/index266.js +1 -1
  116. package/index266.mjs +7 -54
  117. package/index267.js +1 -1
  118. package/index267.mjs +25 -136
  119. package/index268.js +1 -1
  120. package/index268.mjs +17 -196
  121. package/index269.js +1 -1
  122. package/index269.mjs +12 -21
  123. package/index270.js +1 -1
  124. package/index270.mjs +41 -47
  125. package/index271.js +1 -1
  126. package/index271.mjs +7 -47
  127. package/index272.js +1 -1
  128. package/index272.mjs +15 -95
  129. package/index273.js +1 -1
  130. package/index273.mjs +3 -72
  131. package/index274.js +1 -1
  132. package/index274.mjs +4 -68
  133. package/index275.js +1 -1
  134. package/index275.mjs +19 -7
  135. package/index276.js +1 -1
  136. package/index276.mjs +27 -11
  137. package/index277.js +1 -1
  138. package/index277.mjs +31 -5
  139. package/index278.js +1 -1
  140. package/index278.mjs +5 -121
  141. package/index279.js +1 -1
  142. package/index279.mjs +121 -43
  143. package/index280.js +1 -1
  144. package/index280.mjs +43 -230
  145. package/index281.js +1 -1
  146. package/index281.mjs +226 -27
  147. package/index324.js +1 -1
  148. package/index324.mjs +7 -63
  149. package/index325.js +1 -1
  150. package/index325.mjs +28 -7
  151. package/index326.js +1 -1
  152. package/index326.mjs +89 -24
  153. package/index327.js +1 -1
  154. package/index327.mjs +58 -88
  155. package/index330.js +1 -1
  156. package/index330.mjs +3 -3
  157. package/index333.js +1 -1
  158. package/index333.mjs +5 -5
  159. package/index334.js +1 -1
  160. package/index334.mjs +2 -2
  161. package/index335.js +1 -1
  162. package/index335.mjs +5 -5
  163. package/index336.js +1 -1
  164. package/index336.mjs +65 -20
  165. package/index337.js +1 -1
  166. package/index337.mjs +53 -29
  167. package/index338.js +1 -1
  168. package/index338.mjs +51 -63
  169. package/index339.js +1 -1
  170. package/index339.mjs +271 -43
  171. package/index340.js +1 -1
  172. package/index340.mjs +18 -52
  173. package/index341.js +1 -1
  174. package/index341.mjs +21 -281
  175. package/index342.js +1 -1
  176. package/index342.mjs +29 -20
  177. package/index8.js +1 -1
  178. package/index8.mjs +32 -32
  179. package/index99.js +1 -1
  180. package/index99.mjs +1 -1
  181. package/package.json +1 -1
package/index279.mjs CHANGED
@@ -1,46 +1,124 @@
1
- class r {
2
- getKeyLeftOf(e) {
3
- return this.flipDirection ? this.getNextKey(e) : this.getPreviousKey(e);
4
- }
5
- getKeyRightOf(e) {
6
- return this.flipDirection ? this.getPreviousKey(e) : this.getNextKey(e);
7
- }
8
- isDisabled(e) {
9
- var t, i;
10
- return this.disabledKeys.has(e) || !!(!((i = this.collection.getItem(e)) === null || i === void 0 || (t = i.props) === null || t === void 0) && t.isDisabled);
11
- }
12
- getFirstKey() {
13
- let e = this.collection.getFirstKey();
14
- return e != null && this.isDisabled(e) && (e = this.getNextKey(e)), e;
15
- }
16
- getLastKey() {
17
- let e = this.collection.getLastKey();
18
- return e != null && this.isDisabled(e) && (e = this.getPreviousKey(e)), e;
19
- }
20
- getKeyAbove(e) {
21
- return this.tabDirection ? null : this.getPreviousKey(e);
22
- }
23
- getKeyBelow(e) {
24
- return this.tabDirection ? null : this.getNextKey(e);
25
- }
26
- getNextKey(e) {
27
- let t = e;
28
- do
29
- t = this.collection.getKeyAfter(t), t == null && (t = this.collection.getFirstKey());
30
- while (t != null && this.isDisabled(t));
31
- return t;
32
- }
33
- getPreviousKey(e) {
34
- let t = e;
35
- do
36
- t = this.collection.getKeyBefore(t), t == null && (t = this.collection.getLastKey());
37
- while (t != null && this.isDisabled(t));
38
- return t;
39
- }
40
- constructor(e, t, i, s = /* @__PURE__ */ new Set()) {
41
- this.collection = e, this.flipDirection = t === "rtl" && i === "horizontal", this.disabledKeys = s, this.tabDirection = i === "horizontal";
42
- }
1
+ import { getCollectionId as R, isNonContiguousSelectionModifier as N } from "./index341.mjs";
2
+ import { usePress as j } from "./index252.mjs";
3
+ import { useLongPress as q } from "./index333.mjs";
4
+ import { focusSafely as z } from "./index335.mjs";
5
+ import { useId as G } from "./index181.mjs";
6
+ import { mergeProps as K } from "./index154.mjs";
7
+ import { useRouter as H, openLink as J } from "./index260.mjs";
8
+ import { isCtrlKeyPressed as Q } from "./index274.mjs";
9
+ import { moveVirtualFocus as W } from "@react-aria/focus";
10
+ import { useEffect as X, useRef as k } from "react";
11
+ function le(r) {
12
+ let { id: $, selectionManager: o, key: t, ref: s, shouldSelectOnPressUp: O, shouldUseVirtualFocus: l, focus: T, isDisabled: c, onAction: g, allowsDifferentPressOrigin: C, linkBehavior: p = "action" } = r, D = H();
13
+ $ = G($);
14
+ let a = (e) => {
15
+ if (e.pointerType === "keyboard" && N(e)) o.toggleSelection(t);
16
+ else {
17
+ if (o.selectionMode === "none") return;
18
+ if (o.isLink(t)) {
19
+ if (p === "selection" && s.current) {
20
+ let y = o.getItemProps(t);
21
+ D.open(s.current, e, y.href, y.routerOptions), o.setSelectedKeys(o.selectedKeys);
22
+ return;
23
+ } else if (p === "override" || p === "none") return;
24
+ }
25
+ o.selectionMode === "single" ? o.isSelected(t) && !o.disallowEmptySelection ? o.toggleSelection(t) : o.replaceSelection(t) : e && e.shiftKey ? o.extendSelection(t) : o.selectionBehavior === "toggle" || e && (Q(e) || e.pointerType === "touch" || e.pointerType === "virtual") ? o.toggleSelection(t) : o.replaceSelection(t);
26
+ }
27
+ };
28
+ X(() => {
29
+ t === o.focusedKey && o.isFocused && (l ? W(s.current) : T ? T() : document.activeElement !== s.current && s.current && z(s.current));
30
+ }, [
31
+ s,
32
+ t,
33
+ o.focusedKey,
34
+ o.childFocusStrategy,
35
+ o.isFocused,
36
+ l
37
+ ]), c = c || o.isDisabled(t);
38
+ let u = {};
39
+ !l && !c ? u = {
40
+ tabIndex: t === o.focusedKey ? 0 : -1,
41
+ onFocus(e) {
42
+ e.target === s.current && o.setFocusedKey(t);
43
+ }
44
+ } : c && (u.onMouseDown = (e) => {
45
+ e.preventDefault();
46
+ });
47
+ let L = o.isLink(t) && p === "override", F = o.isLink(t) && p !== "selection" && p !== "none", i = !c && o.canSelectItem(t) && !L, S = (g || F) && !c, f = S && (o.selectionBehavior === "replace" ? !i : !i || o.isEmpty), v = S && i && o.selectionBehavior === "replace", d = f || v, b = k(null), m = d && i, h = k(!1), x = k(!1), P = (e) => {
48
+ if (g && g(), F && s.current) {
49
+ let y = o.getItemProps(t);
50
+ D.open(s.current, e, y.href, y.routerOptions);
51
+ }
52
+ }, n = {
53
+ ref: s
54
+ };
55
+ O ? (n.onPressStart = (e) => {
56
+ b.current = e.pointerType, h.current = m, e.pointerType === "keyboard" && (!d || A()) && a(e);
57
+ }, C ? (n.onPressUp = f ? void 0 : (e) => {
58
+ e.pointerType === "mouse" && i && a(e);
59
+ }, n.onPress = f ? P : (e) => {
60
+ e.pointerType !== "keyboard" && e.pointerType !== "mouse" && i && a(e);
61
+ }) : n.onPress = (e) => {
62
+ if (f || v && e.pointerType !== "mouse") {
63
+ if (e.pointerType === "keyboard" && !w()) return;
64
+ P(e);
65
+ } else e.pointerType !== "keyboard" && i && a(e);
66
+ }) : (n.onPressStart = (e) => {
67
+ b.current = e.pointerType, h.current = m, x.current = f, i && (e.pointerType === "mouse" && !f || e.pointerType === "keyboard" && (!S || A())) && a(e);
68
+ }, n.onPress = (e) => {
69
+ (e.pointerType === "touch" || e.pointerType === "pen" || e.pointerType === "virtual" || e.pointerType === "keyboard" && d && w() || e.pointerType === "mouse" && x.current) && (d ? P(e) : i && a(e));
70
+ }), u["data-collection"] = R(o.collection), u["data-key"] = t, n.preventFocusOnPress = l, l && (n = K(n, {
71
+ onPressStart(e) {
72
+ e.pointerType !== "touch" && (o.setFocused(!0), o.setFocusedKey(t));
73
+ },
74
+ onPress(e) {
75
+ e.pointerType === "touch" && (o.setFocused(!0), o.setFocusedKey(t));
76
+ }
77
+ }));
78
+ let { pressProps: E, isPressed: I } = j(n), B = v ? (e) => {
79
+ b.current === "mouse" && (e.stopPropagation(), e.preventDefault(), P(e));
80
+ } : void 0, { longPressProps: M } = q({
81
+ isDisabled: !m,
82
+ onLongPress(e) {
83
+ e.pointerType === "touch" && (a(e), o.setSelectionBehavior("toggle"));
84
+ }
85
+ }), U = (e) => {
86
+ b.current === "touch" && h.current && e.preventDefault();
87
+ }, V = o.isLink(t) ? (e) => {
88
+ J.isOpening || e.preventDefault();
89
+ } : void 0;
90
+ return {
91
+ itemProps: K(
92
+ u,
93
+ i || f || l ? E : {},
94
+ m ? M : {},
95
+ {
96
+ onDoubleClick: B,
97
+ onDragStartCapture: U,
98
+ onClick: V,
99
+ id: $
100
+ },
101
+ // Prevent DOM focus from moving on mouse down when using virtual focus
102
+ l ? {
103
+ onMouseDown: (e) => e.preventDefault()
104
+ } : void 0
105
+ ),
106
+ isPressed: I,
107
+ isSelected: o.isSelected(t),
108
+ isFocused: o.isFocused && o.focusedKey === t,
109
+ isDisabled: c,
110
+ allowsSelection: i,
111
+ hasAction: d
112
+ };
113
+ }
114
+ function w() {
115
+ let r = window.event;
116
+ return (r == null ? void 0 : r.key) === "Enter";
117
+ }
118
+ function A() {
119
+ let r = window.event;
120
+ return (r == null ? void 0 : r.key) === " " || (r == null ? void 0 : r.code) === "Space";
43
121
  }
44
122
  export {
45
- r as TabsKeyboardDelegate
123
+ le as useSelectableItem
46
124
  };
package/index280.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("./index336.js"),fe=require("./index337.js"),$=require("./index154.js"),H=require("./index245.js"),ae=require("./index246.js"),j=require("./index251.js"),w=require("./index258.js"),O=require("./index260.js"),G=require("./index259.js"),J=require("./index263.js"),b=require("./index264.js"),de=require("react-dom"),p=require("react"),Q=require("./index324.js"),X=require("./index335.js"),Y=require("@react-aria/focus"),ve=require("@react-aria/i18n");function ye(Z){let{selectionManager:e,keyboardDelegate:t,ref:i,autoFocus:P=!1,shouldFocusWrap:S=!1,disallowEmptySelection:_=!1,disallowSelectAll:ee=!1,escapeKeyBehavior:le="clearSelection",selectOnFocus:m=e.selectionBehavior==="replace",disallowTypeAhead:te=!1,shouldUseVirtualFocus:K,allowsTabNavigation:oe=!1,isVirtualized:L,scrollRef:f=i,linkBehavior:N="action"}=Z,{direction:T}=ve.useLocale(),re=ae.useRouter(),ue=l=>{var r;if(l.altKey&&l.key==="Tab"&&l.preventDefault(),!(!((r=i.current)===null||r===void 0)&&r.contains(l.target)))return;const u=(o,v)=>{if(o!=null){if(e.isLink(o)&&N==="selection"&&m&&!F.isNonContiguousSelectionModifier(l)){de.flushSync(()=>{e.setFocusedKey(o,v)});let y=F.getItemElement(i,o),W=e.getItemProps(o);y&&re.open(y,l,W.href,W.routerOptions);return}if(e.setFocusedKey(o,v),e.isLink(o)&&N==="override")return;l.shiftKey&&e.selectionMode==="multiple"?e.extendSelection(o):m&&!F.isNonContiguousSelectionModifier(l)&&e.replaceSelection(o)}};switch(l.key){case"ArrowDown":if(t.getKeyBelow){var n,s,c;let o=e.focusedKey!=null?(n=t.getKeyBelow)===null||n===void 0?void 0:n.call(t,e.focusedKey):(s=t.getFirstKey)===null||s===void 0?void 0:s.call(t);o==null&&S&&(o=(c=t.getFirstKey)===null||c===void 0?void 0:c.call(t,e.focusedKey)),o!=null&&(l.preventDefault(),u(o))}break;case"ArrowUp":if(t.getKeyAbove){var a,d,k;let o=e.focusedKey!=null?(a=t.getKeyAbove)===null||a===void 0?void 0:a.call(t,e.focusedKey):(d=t.getLastKey)===null||d===void 0?void 0:d.call(t);o==null&&S&&(o=(k=t.getLastKey)===null||k===void 0?void 0:k.call(t,e.focusedKey)),o!=null&&(l.preventDefault(),u(o))}break;case"ArrowLeft":if(t.getKeyLeftOf){var q,A,M;let o=e.focusedKey!=null?(q=t.getKeyLeftOf)===null||q===void 0?void 0:q.call(t,e.focusedKey):null;o==null&&S&&(o=T==="rtl"?(A=t.getFirstKey)===null||A===void 0?void 0:A.call(t,e.focusedKey):(M=t.getLastKey)===null||M===void 0?void 0:M.call(t,e.focusedKey)),o!=null&&(l.preventDefault(),u(o,T==="rtl"?"first":"last"))}break;case"ArrowRight":if(t.getKeyRightOf){var C,x,V;let o=e.focusedKey!=null?(C=t.getKeyRightOf)===null||C===void 0?void 0:C.call(t,e.focusedKey):null;o==null&&S&&(o=T==="rtl"?(x=t.getLastKey)===null||x===void 0?void 0:x.call(t,e.focusedKey):(V=t.getFirstKey)===null||V===void 0?void 0:V.call(t,e.focusedKey)),o!=null&&(l.preventDefault(),u(o,T==="rtl"?"last":"first"))}break;case"Home":if(t.getFirstKey){if(e.focusedKey===null&&l.shiftKey)return;l.preventDefault();let o=t.getFirstKey(e.focusedKey,b.isCtrlKeyPressed(l));e.setFocusedKey(o),o!=null&&(b.isCtrlKeyPressed(l)&&l.shiftKey&&e.selectionMode==="multiple"?e.extendSelection(o):m&&e.replaceSelection(o))}break;case"End":if(t.getLastKey){if(e.focusedKey===null&&l.shiftKey)return;l.preventDefault();let o=t.getLastKey(e.focusedKey,b.isCtrlKeyPressed(l));e.setFocusedKey(o),o!=null&&(b.isCtrlKeyPressed(l)&&l.shiftKey&&e.selectionMode==="multiple"?e.extendSelection(o):m&&e.replaceSelection(o))}break;case"PageDown":if(t.getKeyPageBelow&&e.focusedKey!=null){let o=t.getKeyPageBelow(e.focusedKey);o!=null&&(l.preventDefault(),u(o))}break;case"PageUp":if(t.getKeyPageAbove&&e.focusedKey!=null){let o=t.getKeyPageAbove(e.focusedKey);o!=null&&(l.preventDefault(),u(o))}break;case"a":b.isCtrlKeyPressed(l)&&e.selectionMode==="multiple"&&ee!==!0&&(l.preventDefault(),e.selectAll());break;case"Escape":le==="clearSelection"&&!_&&e.selectedKeys.size!==0&&(l.stopPropagation(),l.preventDefault(),e.clearSelection());break;case"Tab":if(!oe){if(l.shiftKey)i.current.focus();else{let o=Y.getFocusableTreeWalker(i.current,{tabbable:!0}),v,y;do y=o.lastChild(),y&&(v=y);while(y);v&&!v.contains(document.activeElement)&&H.focusWithoutScrolling(v)}break}}},D=p.useRef({top:0,left:0});w.useEvent(f,"scroll",L?void 0:()=>{var l,r,u,n;D.current={top:(u=(l=f.current)===null||l===void 0?void 0:l.scrollTop)!==null&&u!==void 0?u:0,left:(n=(r=f.current)===null||r===void 0?void 0:r.scrollLeft)!==null&&n!==void 0?n:0}});let ie=l=>{if(e.isFocused){l.currentTarget.contains(l.target)||e.setFocused(!1);return}if(l.currentTarget.contains(l.target)){if(e.setFocused(!0),e.focusedKey==null){var r,u;let c=d=>{d!=null&&(e.setFocusedKey(d),m&&!e.isSelected(d)&&e.replaceSelection(d))},a=l.relatedTarget;var n,s;a&&l.currentTarget.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_FOLLOWING?c((n=e.lastSelectedKey)!==null&&n!==void 0?n:(r=t.getLastKey)===null||r===void 0?void 0:r.call(t)):c((s=e.firstSelectedKey)!==null&&s!==void 0?s:(u=t.getFirstKey)===null||u===void 0?void 0:u.call(t))}else!L&&f.current&&(f.current.scrollTop=D.current.top,f.current.scrollLeft=D.current.left);if(e.focusedKey!=null&&f.current){let c=F.getItemElement(i,e.focusedKey);c instanceof HTMLElement&&(!c.contains(document.activeElement)&&!K&&H.focusWithoutScrolling(c),Q.getInteractionModality()==="keyboard"&&O.scrollIntoViewport(c,{containingElement:i.current}))}}},ne=l=>{l.currentTarget.contains(l.relatedTarget)||e.setFocused(!1)},E=p.useRef(!1);w.useEvent(i,J.FOCUS_EVENT,K?l=>{let{detail:r}=l;l.stopPropagation(),e.setFocused(!0),(r==null?void 0:r.focusStrategy)==="first"&&(E.current=!0)}:void 0);let U=G.useEffectEvent(()=>{var l,r;let u=(r=(l=t.getFirstKey)===null||l===void 0?void 0:l.call(t))!==null&&r!==void 0?r:null;u==null?(Y.moveVirtualFocus(i.current),e.collection.size>0&&(E.current=!1)):(e.setFocusedKey(u),E.current=!1)});j.useUpdateLayoutEffect(()=>{E.current&&U()},[e.collection,U]);let g=G.useEffectEvent(()=>{e.collection.size>0&&(E.current=!1)});j.useUpdateLayoutEffect(()=>{g()},[e.focusedKey,g]),w.useEvent(i,J.CLEAR_FOCUS_EVENT,K?l=>{var r;l.stopPropagation(),e.setFocused(!1),!((r=l.detail)===null||r===void 0)&&r.clearFocusKey&&e.setFocusedKey(null)}:void 0);const B=p.useRef(P),h=p.useRef(!1);p.useEffect(()=>{if(B.current){var l,r;let s=null;var u;P==="first"&&(s=(u=(l=t.getFirstKey)===null||l===void 0?void 0:l.call(t))!==null&&u!==void 0?u:null);var n;P==="last"&&(s=(n=(r=t.getLastKey)===null||r===void 0?void 0:r.call(t))!==null&&n!==void 0?n:null);let c=e.selectedKeys;if(c.size){for(let a of c)if(e.canSelectItem(a)){s=a;break}}e.setFocused(!0),e.setFocusedKey(s),s==null&&!K&&i.current&&X.focusSafely(i.current),e.collection.size>0&&(B.current=!1,h.current=!0)}});let I=p.useRef(e.focusedKey);p.useEffect(()=>{if(e.isFocused&&e.focusedKey!=null&&(e.focusedKey!==I.current||h.current)&&f.current&&i.current){let l=Q.getInteractionModality(),r=F.getItemElement(i,e.focusedKey);if(!(r instanceof HTMLElement))return;(l==="keyboard"||h.current)&&(O.scrollIntoView(f.current,r),l!=="virtual"&&O.scrollIntoViewport(r,{containingElement:i.current}))}!K&&e.isFocused&&e.focusedKey==null&&I.current!=null&&i.current&&X.focusSafely(i.current),I.current=e.focusedKey,h.current=!1}),w.useEvent(i,"react-aria-focus-scope-restore",l=>{l.preventDefault(),e.setFocused(!0)});let R={onKeyDown:ue,onFocus:ie,onBlur:ne,onMouseDown(l){f.current===l.target&&l.preventDefault()}},{typeSelectProps:ce}=fe.useTypeSelect({keyboardDelegate:t,selectionManager:e});te||(R=$.mergeProps(ce,R));let z;K||(z=e.focusedKey==null?0:-1);let se=F.useCollectionId(e.collection);return{collectionProps:$.mergeProps(R,{tabIndex:z,"data-collection":se})}}exports.useSelectableCollection=ye;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class s{getKeyLeftOf(e){return this.flipDirection?this.getNextKey(e):this.getPreviousKey(e)}getKeyRightOf(e){return this.flipDirection?this.getPreviousKey(e):this.getNextKey(e)}isDisabled(e){var t,i;return this.disabledKeys.has(e)||!!(!((i=this.collection.getItem(e))===null||i===void 0||(t=i.props)===null||t===void 0)&&t.isDisabled)}getFirstKey(){let e=this.collection.getFirstKey();return e!=null&&this.isDisabled(e)&&(e=this.getNextKey(e)),e}getLastKey(){let e=this.collection.getLastKey();return e!=null&&this.isDisabled(e)&&(e=this.getPreviousKey(e)),e}getKeyAbove(e){return this.tabDirection?null:this.getPreviousKey(e)}getKeyBelow(e){return this.tabDirection?null:this.getNextKey(e)}getNextKey(e){let t=e;do t=this.collection.getKeyAfter(t),t==null&&(t=this.collection.getFirstKey());while(t!=null&&this.isDisabled(t));return t}getPreviousKey(e){let t=e;do t=this.collection.getKeyBefore(t),t==null&&(t=this.collection.getLastKey());while(t!=null&&this.isDisabled(t));return t}constructor(e,t,i,l=new Set){this.collection=e,this.flipDirection=t==="rtl"&&i==="horizontal",this.disabledKeys=l,this.tabDirection=i==="horizontal"}}exports.TabsKeyboardDelegate=s;
package/index280.mjs CHANGED
@@ -1,233 +1,46 @@
1
- import { getItemElement as V, useCollectionId as fe, isNonContiguousSelectionModifier as H } from "./index336.mjs";
2
- import { useTypeSelect as ae } from "./index337.mjs";
3
- import { mergeProps as G } from "./index154.mjs";
4
- import { focusWithoutScrolling as j } from "./index245.mjs";
5
- import { useRouter as de } from "./index246.mjs";
6
- import { useUpdateLayoutEffect as q } from "./index251.mjs";
7
- import { useEvent as S } from "./index258.mjs";
8
- import { scrollIntoView as ve, scrollIntoViewport as J } from "./index260.mjs";
9
- import { useEffectEvent as Q } from "./index259.mjs";
10
- import { FOCUS_EVENT as pe, CLEAR_FOCUS_EVENT as ye } from "./index263.mjs";
11
- import { isCtrlKeyPressed as m } from "./index264.mjs";
12
- import { flushSync as be } from "react-dom";
13
- import { useRef as $, useEffect as X } from "react";
14
- import { getInteractionModality as Y } from "./index324.mjs";
15
- import { focusSafely as Z } from "./index335.mjs";
16
- import { moveVirtualFocus as Ke, getFocusableTreeWalker as me } from "@react-aria/focus";
17
- import { useLocale as $e } from "@react-aria/i18n";
18
- function Ce(g) {
19
- let { selectionManager: e, keyboardDelegate: o, ref: i, autoFocus: h = !1, shouldFocusWrap: F = !1, disallowEmptySelection: _ = !1, disallowSelectAll: ee = !1, escapeKeyBehavior: le = "clearSelection", selectOnFocus: b = e.selectionBehavior === "replace", disallowTypeAhead: oe = !1, shouldUseVirtualFocus: y, allowsTabNavigation: te = !1, isVirtualized: B, scrollRef: f = i, linkBehavior: C = "action" } = g, { direction: x } = $e(), re = de(), ce = (l) => {
20
- var r;
21
- if (l.altKey && l.key === "Tab" && l.preventDefault(), !(!((r = i.current) === null || r === void 0) && r.contains(l.target))) return;
22
- const c = (t, v) => {
23
- if (t != null) {
24
- if (e.isLink(t) && C === "selection" && b && !H(l)) {
25
- be(() => {
26
- e.setFocusedKey(t, v);
27
- });
28
- let p = V(i, t), W = e.getItemProps(t);
29
- p && re.open(p, l, W.href, W.routerOptions);
30
- return;
31
- }
32
- if (e.setFocusedKey(t, v), e.isLink(t) && C === "override") return;
33
- l.shiftKey && e.selectionMode === "multiple" ? e.extendSelection(t) : b && !H(l) && e.replaceSelection(t);
34
- }
35
- };
36
- switch (l.key) {
37
- case "ArrowDown":
38
- if (o.getKeyBelow) {
39
- var n, s, u;
40
- let t = e.focusedKey != null ? (n = o.getKeyBelow) === null || n === void 0 ? void 0 : n.call(o, e.focusedKey) : (s = o.getFirstKey) === null || s === void 0 ? void 0 : s.call(o);
41
- t == null && F && (t = (u = o.getFirstKey) === null || u === void 0 ? void 0 : u.call(o, e.focusedKey)), t != null && (l.preventDefault(), c(t));
42
- }
43
- break;
44
- case "ArrowUp":
45
- if (o.getKeyAbove) {
46
- var a, d, P;
47
- let t = e.focusedKey != null ? (a = o.getKeyAbove) === null || a === void 0 ? void 0 : a.call(o, e.focusedKey) : (d = o.getLastKey) === null || d === void 0 ? void 0 : d.call(o);
48
- t == null && F && (t = (P = o.getLastKey) === null || P === void 0 ? void 0 : P.call(o, e.focusedKey)), t != null && (l.preventDefault(), c(t));
49
- }
50
- break;
51
- case "ArrowLeft":
52
- if (o.getKeyLeftOf) {
53
- var k, A, I;
54
- let t = e.focusedKey != null ? (k = o.getKeyLeftOf) === null || k === void 0 ? void 0 : k.call(o, e.focusedKey) : null;
55
- t == null && F && (t = x === "rtl" ? (A = o.getFirstKey) === null || A === void 0 ? void 0 : A.call(o, e.focusedKey) : (I = o.getLastKey) === null || I === void 0 ? void 0 : I.call(o, e.focusedKey)), t != null && (l.preventDefault(), c(t, x === "rtl" ? "first" : "last"));
56
- }
57
- break;
58
- case "ArrowRight":
59
- if (o.getKeyRightOf) {
60
- var M, R, O;
61
- let t = e.focusedKey != null ? (M = o.getKeyRightOf) === null || M === void 0 ? void 0 : M.call(o, e.focusedKey) : null;
62
- t == null && F && (t = x === "rtl" ? (R = o.getLastKey) === null || R === void 0 ? void 0 : R.call(o, e.focusedKey) : (O = o.getFirstKey) === null || O === void 0 ? void 0 : O.call(o, e.focusedKey)), t != null && (l.preventDefault(), c(t, x === "rtl" ? "last" : "first"));
63
- }
64
- break;
65
- case "Home":
66
- if (o.getFirstKey) {
67
- if (e.focusedKey === null && l.shiftKey) return;
68
- l.preventDefault();
69
- let t = o.getFirstKey(e.focusedKey, m(l));
70
- e.setFocusedKey(t), t != null && (m(l) && l.shiftKey && e.selectionMode === "multiple" ? e.extendSelection(t) : b && e.replaceSelection(t));
71
- }
72
- break;
73
- case "End":
74
- if (o.getLastKey) {
75
- if (e.focusedKey === null && l.shiftKey) return;
76
- l.preventDefault();
77
- let t = o.getLastKey(e.focusedKey, m(l));
78
- e.setFocusedKey(t), t != null && (m(l) && l.shiftKey && e.selectionMode === "multiple" ? e.extendSelection(t) : b && e.replaceSelection(t));
79
- }
80
- break;
81
- case "PageDown":
82
- if (o.getKeyPageBelow && e.focusedKey != null) {
83
- let t = o.getKeyPageBelow(e.focusedKey);
84
- t != null && (l.preventDefault(), c(t));
85
- }
86
- break;
87
- case "PageUp":
88
- if (o.getKeyPageAbove && e.focusedKey != null) {
89
- let t = o.getKeyPageAbove(e.focusedKey);
90
- t != null && (l.preventDefault(), c(t));
91
- }
92
- break;
93
- case "a":
94
- m(l) && e.selectionMode === "multiple" && ee !== !0 && (l.preventDefault(), e.selectAll());
95
- break;
96
- case "Escape":
97
- le === "clearSelection" && !_ && e.selectedKeys.size !== 0 && (l.stopPropagation(), l.preventDefault(), e.clearSelection());
98
- break;
99
- case "Tab":
100
- if (!te) {
101
- if (l.shiftKey) i.current.focus();
102
- else {
103
- let t = me(i.current, {
104
- tabbable: !0
105
- }), v, p;
106
- do
107
- p = t.lastChild(), p && (v = p);
108
- while (p);
109
- v && !v.contains(document.activeElement) && j(v);
110
- }
111
- break;
112
- }
113
- }
114
- }, w = $({
115
- top: 0,
116
- left: 0
117
- });
118
- S(f, "scroll", B ? void 0 : () => {
119
- var l, r, c, n;
120
- w.current = {
121
- top: (c = (l = f.current) === null || l === void 0 ? void 0 : l.scrollTop) !== null && c !== void 0 ? c : 0,
122
- left: (n = (r = f.current) === null || r === void 0 ? void 0 : r.scrollLeft) !== null && n !== void 0 ? n : 0
123
- };
124
- });
125
- let ie = (l) => {
126
- if (e.isFocused) {
127
- l.currentTarget.contains(l.target) || e.setFocused(!1);
128
- return;
129
- }
130
- if (l.currentTarget.contains(l.target)) {
131
- if (e.setFocused(!0), e.focusedKey == null) {
132
- var r, c;
133
- let u = (d) => {
134
- d != null && (e.setFocusedKey(d), b && !e.isSelected(d) && e.replaceSelection(d));
135
- }, a = l.relatedTarget;
136
- var n, s;
137
- a && l.currentTarget.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING ? u((n = e.lastSelectedKey) !== null && n !== void 0 ? n : (r = o.getLastKey) === null || r === void 0 ? void 0 : r.call(o)) : u((s = e.firstSelectedKey) !== null && s !== void 0 ? s : (c = o.getFirstKey) === null || c === void 0 ? void 0 : c.call(o));
138
- } else !B && f.current && (f.current.scrollTop = w.current.top, f.current.scrollLeft = w.current.left);
139
- if (e.focusedKey != null && f.current) {
140
- let u = V(i, e.focusedKey);
141
- u instanceof HTMLElement && (!u.contains(document.activeElement) && !y && j(u), Y() === "keyboard" && J(u, {
142
- containingElement: i.current
143
- }));
144
- }
145
- }
146
- }, ne = (l) => {
147
- l.currentTarget.contains(l.relatedTarget) || e.setFocused(!1);
148
- }, K = $(!1);
149
- S(i, pe, y ? (l) => {
150
- let { detail: r } = l;
151
- l.stopPropagation(), e.setFocused(!0), (r == null ? void 0 : r.focusStrategy) === "first" && (K.current = !0);
152
- } : void 0);
153
- let N = Q(() => {
154
- var l, r;
155
- let c = (r = (l = o.getFirstKey) === null || l === void 0 ? void 0 : l.call(o)) !== null && r !== void 0 ? r : null;
156
- c == null ? (Ke(i.current), e.collection.size > 0 && (K.current = !1)) : (e.setFocusedKey(c), K.current = !1);
157
- });
158
- q(() => {
159
- K.current && N();
160
- }, [
161
- e.collection,
162
- N
163
- ]);
164
- let U = Q(() => {
165
- e.collection.size > 0 && (K.current = !1);
166
- });
167
- q(() => {
168
- U();
169
- }, [
170
- e.focusedKey,
171
- U
172
- ]), S(i, ye, y ? (l) => {
173
- var r;
174
- l.stopPropagation(), e.setFocused(!1), !((r = l.detail) === null || r === void 0) && r.clearFocusKey && e.setFocusedKey(null);
175
- } : void 0);
176
- const z = $(h), T = $(!1);
177
- X(() => {
178
- if (z.current) {
179
- var l, r;
180
- let s = null;
181
- var c;
182
- h === "first" && (s = (c = (l = o.getFirstKey) === null || l === void 0 ? void 0 : l.call(o)) !== null && c !== void 0 ? c : null);
183
- var n;
184
- h === "last" && (s = (n = (r = o.getLastKey) === null || r === void 0 ? void 0 : r.call(o)) !== null && n !== void 0 ? n : null);
185
- let u = e.selectedKeys;
186
- if (u.size) {
187
- for (let a of u) if (e.canSelectItem(a)) {
188
- s = a;
189
- break;
190
- }
191
- }
192
- e.setFocused(!0), e.setFocusedKey(s), s == null && !y && i.current && Z(i.current), e.collection.size > 0 && (z.current = !1, T.current = !0);
193
- }
194
- });
195
- let D = $(e.focusedKey);
196
- X(() => {
197
- if (e.isFocused && e.focusedKey != null && (e.focusedKey !== D.current || T.current) && f.current && i.current) {
198
- let l = Y(), r = V(i, e.focusedKey);
199
- if (!(r instanceof HTMLElement))
200
- return;
201
- (l === "keyboard" || T.current) && (ve(f.current, r), l !== "virtual" && J(r, {
202
- containingElement: i.current
203
- }));
204
- }
205
- !y && e.isFocused && e.focusedKey == null && D.current != null && i.current && Z(i.current), D.current = e.focusedKey, T.current = !1;
206
- }), S(i, "react-aria-focus-scope-restore", (l) => {
207
- l.preventDefault(), e.setFocused(!0);
208
- });
209
- let E = {
210
- onKeyDown: ce,
211
- onFocus: ie,
212
- onBlur: ne,
213
- onMouseDown(l) {
214
- f.current === l.target && l.preventDefault();
215
- }
216
- }, { typeSelectProps: ue } = ae({
217
- keyboardDelegate: o,
218
- selectionManager: e
219
- });
220
- oe || (E = G(ue, E));
221
- let L;
222
- y || (L = e.focusedKey == null ? 0 : -1);
223
- let se = fe(e.collection);
224
- return {
225
- collectionProps: G(E, {
226
- tabIndex: L,
227
- "data-collection": se
228
- })
229
- };
1
+ class r {
2
+ getKeyLeftOf(e) {
3
+ return this.flipDirection ? this.getNextKey(e) : this.getPreviousKey(e);
4
+ }
5
+ getKeyRightOf(e) {
6
+ return this.flipDirection ? this.getPreviousKey(e) : this.getNextKey(e);
7
+ }
8
+ isDisabled(e) {
9
+ var t, i;
10
+ return this.disabledKeys.has(e) || !!(!((i = this.collection.getItem(e)) === null || i === void 0 || (t = i.props) === null || t === void 0) && t.isDisabled);
11
+ }
12
+ getFirstKey() {
13
+ let e = this.collection.getFirstKey();
14
+ return e != null && this.isDisabled(e) && (e = this.getNextKey(e)), e;
15
+ }
16
+ getLastKey() {
17
+ let e = this.collection.getLastKey();
18
+ return e != null && this.isDisabled(e) && (e = this.getPreviousKey(e)), e;
19
+ }
20
+ getKeyAbove(e) {
21
+ return this.tabDirection ? null : this.getPreviousKey(e);
22
+ }
23
+ getKeyBelow(e) {
24
+ return this.tabDirection ? null : this.getNextKey(e);
25
+ }
26
+ getNextKey(e) {
27
+ let t = e;
28
+ do
29
+ t = this.collection.getKeyAfter(t), t == null && (t = this.collection.getFirstKey());
30
+ while (t != null && this.isDisabled(t));
31
+ return t;
32
+ }
33
+ getPreviousKey(e) {
34
+ let t = e;
35
+ do
36
+ t = this.collection.getKeyBefore(t), t == null && (t = this.collection.getLastKey());
37
+ while (t != null && this.isDisabled(t));
38
+ return t;
39
+ }
40
+ constructor(e, t, i, s = /* @__PURE__ */ new Set()) {
41
+ this.collection = e, this.flipDirection = t === "rtl" && i === "horizontal", this.disabledKeys = s, this.tabDirection = i === "horizontal";
42
+ }
230
43
  }
231
44
  export {
232
- Ce as useSelectableCollection
45
+ r as TabsKeyboardDelegate
233
46
  };
package/index281.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("./index338.js"),y=require("./index233.js"),g=require("react");function K(t){var l;let[e,s]=y.useControlledState(t.selectedKey,(l=t.defaultSelectedKey)!==null&&l!==void 0?l:null,t.onSelectionChange),i=g.useMemo(()=>e!=null?[e]:[],[e]),{collection:a,disabledKeys:u,selectionManager:d}=S.useListState({...t,selectionMode:"single",disallowEmptySelection:!0,allowDuplicateSelectionEvents:!0,selectedKeys:i,onSelectionChange:o=>{if(o==="all")return;var n;let c=(n=o.values().next().value)!==null&&n!==void 0?n:null;c===e&&t.onSelectionChange&&t.onSelectionChange(c),s(c)}}),r=e!=null?a.getItem(e):null;return{collection:a,disabledKeys:u,selectionManager:d,selectedKey:e,setSelectedKey:s,selectedItem:r}}exports.useSingleSelectListState=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("./index341.js"),fe=require("./index342.js"),$=require("./index154.js"),H=require("./index259.js"),ae=require("./index260.js"),j=require("./index263.js"),w=require("./index268.js"),O=require("./index270.js"),G=require("./index269.js"),J=require("./index273.js"),b=require("./index274.js"),de=require("react-dom"),p=require("react"),Q=require("./index327.js"),X=require("./index335.js"),Y=require("@react-aria/focus"),ve=require("@react-aria/i18n");function ye(Z){let{selectionManager:e,keyboardDelegate:t,ref:i,autoFocus:P=!1,shouldFocusWrap:S=!1,disallowEmptySelection:_=!1,disallowSelectAll:ee=!1,escapeKeyBehavior:le="clearSelection",selectOnFocus:m=e.selectionBehavior==="replace",disallowTypeAhead:te=!1,shouldUseVirtualFocus:K,allowsTabNavigation:oe=!1,isVirtualized:L,scrollRef:f=i,linkBehavior:N="action"}=Z,{direction:T}=ve.useLocale(),re=ae.useRouter(),ue=l=>{var r;if(l.altKey&&l.key==="Tab"&&l.preventDefault(),!(!((r=i.current)===null||r===void 0)&&r.contains(l.target)))return;const u=(o,v)=>{if(o!=null){if(e.isLink(o)&&N==="selection"&&m&&!F.isNonContiguousSelectionModifier(l)){de.flushSync(()=>{e.setFocusedKey(o,v)});let y=F.getItemElement(i,o),W=e.getItemProps(o);y&&re.open(y,l,W.href,W.routerOptions);return}if(e.setFocusedKey(o,v),e.isLink(o)&&N==="override")return;l.shiftKey&&e.selectionMode==="multiple"?e.extendSelection(o):m&&!F.isNonContiguousSelectionModifier(l)&&e.replaceSelection(o)}};switch(l.key){case"ArrowDown":if(t.getKeyBelow){var n,s,c;let o=e.focusedKey!=null?(n=t.getKeyBelow)===null||n===void 0?void 0:n.call(t,e.focusedKey):(s=t.getFirstKey)===null||s===void 0?void 0:s.call(t);o==null&&S&&(o=(c=t.getFirstKey)===null||c===void 0?void 0:c.call(t,e.focusedKey)),o!=null&&(l.preventDefault(),u(o))}break;case"ArrowUp":if(t.getKeyAbove){var a,d,k;let o=e.focusedKey!=null?(a=t.getKeyAbove)===null||a===void 0?void 0:a.call(t,e.focusedKey):(d=t.getLastKey)===null||d===void 0?void 0:d.call(t);o==null&&S&&(o=(k=t.getLastKey)===null||k===void 0?void 0:k.call(t,e.focusedKey)),o!=null&&(l.preventDefault(),u(o))}break;case"ArrowLeft":if(t.getKeyLeftOf){var q,A,M;let o=e.focusedKey!=null?(q=t.getKeyLeftOf)===null||q===void 0?void 0:q.call(t,e.focusedKey):null;o==null&&S&&(o=T==="rtl"?(A=t.getFirstKey)===null||A===void 0?void 0:A.call(t,e.focusedKey):(M=t.getLastKey)===null||M===void 0?void 0:M.call(t,e.focusedKey)),o!=null&&(l.preventDefault(),u(o,T==="rtl"?"first":"last"))}break;case"ArrowRight":if(t.getKeyRightOf){var C,x,V;let o=e.focusedKey!=null?(C=t.getKeyRightOf)===null||C===void 0?void 0:C.call(t,e.focusedKey):null;o==null&&S&&(o=T==="rtl"?(x=t.getLastKey)===null||x===void 0?void 0:x.call(t,e.focusedKey):(V=t.getFirstKey)===null||V===void 0?void 0:V.call(t,e.focusedKey)),o!=null&&(l.preventDefault(),u(o,T==="rtl"?"last":"first"))}break;case"Home":if(t.getFirstKey){if(e.focusedKey===null&&l.shiftKey)return;l.preventDefault();let o=t.getFirstKey(e.focusedKey,b.isCtrlKeyPressed(l));e.setFocusedKey(o),o!=null&&(b.isCtrlKeyPressed(l)&&l.shiftKey&&e.selectionMode==="multiple"?e.extendSelection(o):m&&e.replaceSelection(o))}break;case"End":if(t.getLastKey){if(e.focusedKey===null&&l.shiftKey)return;l.preventDefault();let o=t.getLastKey(e.focusedKey,b.isCtrlKeyPressed(l));e.setFocusedKey(o),o!=null&&(b.isCtrlKeyPressed(l)&&l.shiftKey&&e.selectionMode==="multiple"?e.extendSelection(o):m&&e.replaceSelection(o))}break;case"PageDown":if(t.getKeyPageBelow&&e.focusedKey!=null){let o=t.getKeyPageBelow(e.focusedKey);o!=null&&(l.preventDefault(),u(o))}break;case"PageUp":if(t.getKeyPageAbove&&e.focusedKey!=null){let o=t.getKeyPageAbove(e.focusedKey);o!=null&&(l.preventDefault(),u(o))}break;case"a":b.isCtrlKeyPressed(l)&&e.selectionMode==="multiple"&&ee!==!0&&(l.preventDefault(),e.selectAll());break;case"Escape":le==="clearSelection"&&!_&&e.selectedKeys.size!==0&&(l.stopPropagation(),l.preventDefault(),e.clearSelection());break;case"Tab":if(!oe){if(l.shiftKey)i.current.focus();else{let o=Y.getFocusableTreeWalker(i.current,{tabbable:!0}),v,y;do y=o.lastChild(),y&&(v=y);while(y);v&&!v.contains(document.activeElement)&&H.focusWithoutScrolling(v)}break}}},D=p.useRef({top:0,left:0});w.useEvent(f,"scroll",L?void 0:()=>{var l,r,u,n;D.current={top:(u=(l=f.current)===null||l===void 0?void 0:l.scrollTop)!==null&&u!==void 0?u:0,left:(n=(r=f.current)===null||r===void 0?void 0:r.scrollLeft)!==null&&n!==void 0?n:0}});let ie=l=>{if(e.isFocused){l.currentTarget.contains(l.target)||e.setFocused(!1);return}if(l.currentTarget.contains(l.target)){if(e.setFocused(!0),e.focusedKey==null){var r,u;let c=d=>{d!=null&&(e.setFocusedKey(d),m&&!e.isSelected(d)&&e.replaceSelection(d))},a=l.relatedTarget;var n,s;a&&l.currentTarget.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_FOLLOWING?c((n=e.lastSelectedKey)!==null&&n!==void 0?n:(r=t.getLastKey)===null||r===void 0?void 0:r.call(t)):c((s=e.firstSelectedKey)!==null&&s!==void 0?s:(u=t.getFirstKey)===null||u===void 0?void 0:u.call(t))}else!L&&f.current&&(f.current.scrollTop=D.current.top,f.current.scrollLeft=D.current.left);if(e.focusedKey!=null&&f.current){let c=F.getItemElement(i,e.focusedKey);c instanceof HTMLElement&&(!c.contains(document.activeElement)&&!K&&H.focusWithoutScrolling(c),Q.getInteractionModality()==="keyboard"&&O.scrollIntoViewport(c,{containingElement:i.current}))}}},ne=l=>{l.currentTarget.contains(l.relatedTarget)||e.setFocused(!1)},E=p.useRef(!1);w.useEvent(i,J.FOCUS_EVENT,K?l=>{let{detail:r}=l;l.stopPropagation(),e.setFocused(!0),(r==null?void 0:r.focusStrategy)==="first"&&(E.current=!0)}:void 0);let U=G.useEffectEvent(()=>{var l,r;let u=(r=(l=t.getFirstKey)===null||l===void 0?void 0:l.call(t))!==null&&r!==void 0?r:null;u==null?(Y.moveVirtualFocus(i.current),e.collection.size>0&&(E.current=!1)):(e.setFocusedKey(u),E.current=!1)});j.useUpdateLayoutEffect(()=>{E.current&&U()},[e.collection,U]);let g=G.useEffectEvent(()=>{e.collection.size>0&&(E.current=!1)});j.useUpdateLayoutEffect(()=>{g()},[e.focusedKey,g]),w.useEvent(i,J.CLEAR_FOCUS_EVENT,K?l=>{var r;l.stopPropagation(),e.setFocused(!1),!((r=l.detail)===null||r===void 0)&&r.clearFocusKey&&e.setFocusedKey(null)}:void 0);const B=p.useRef(P),h=p.useRef(!1);p.useEffect(()=>{if(B.current){var l,r;let s=null;var u;P==="first"&&(s=(u=(l=t.getFirstKey)===null||l===void 0?void 0:l.call(t))!==null&&u!==void 0?u:null);var n;P==="last"&&(s=(n=(r=t.getLastKey)===null||r===void 0?void 0:r.call(t))!==null&&n!==void 0?n:null);let c=e.selectedKeys;if(c.size){for(let a of c)if(e.canSelectItem(a)){s=a;break}}e.setFocused(!0),e.setFocusedKey(s),s==null&&!K&&i.current&&X.focusSafely(i.current),e.collection.size>0&&(B.current=!1,h.current=!0)}});let I=p.useRef(e.focusedKey);p.useEffect(()=>{if(e.isFocused&&e.focusedKey!=null&&(e.focusedKey!==I.current||h.current)&&f.current&&i.current){let l=Q.getInteractionModality(),r=F.getItemElement(i,e.focusedKey);if(!(r instanceof HTMLElement))return;(l==="keyboard"||h.current)&&(O.scrollIntoView(f.current,r),l!=="virtual"&&O.scrollIntoViewport(r,{containingElement:i.current}))}!K&&e.isFocused&&e.focusedKey==null&&I.current!=null&&i.current&&X.focusSafely(i.current),I.current=e.focusedKey,h.current=!1}),w.useEvent(i,"react-aria-focus-scope-restore",l=>{l.preventDefault(),e.setFocused(!0)});let R={onKeyDown:ue,onFocus:ie,onBlur:ne,onMouseDown(l){f.current===l.target&&l.preventDefault()}},{typeSelectProps:ce}=fe.useTypeSelect({keyboardDelegate:t,selectionManager:e});te||(R=$.mergeProps(ce,R));let z;K||(z=e.focusedKey==null?0:-1);let se=F.useCollectionId(e.collection);return{collectionProps:$.mergeProps(R,{tabIndex:z,"data-collection":se})}}exports.useSelectableCollection=ye;