@okam/stack-ui 1.43.0 → 1.44.1

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 (359) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/components/Popover/interface.d.ts +3 -3
  3. package/components/TagGroup/interface.d.ts +2 -2
  4. package/index.d.ts +2 -0
  5. package/index145.js +1 -1
  6. package/index145.mjs +1 -1
  7. package/index149.mjs +1 -1
  8. package/index155.js +1 -1
  9. package/index155.mjs +4 -4
  10. package/index157.js +1 -1
  11. package/index157.mjs +4 -4
  12. package/index158.js +1 -1
  13. package/index158.mjs +2 -2
  14. package/index159.js +1 -1
  15. package/index159.mjs +1 -1
  16. package/index160.js +1 -1
  17. package/index160.mjs +1 -1
  18. package/index161.js +1 -2
  19. package/index161.mjs +39 -12
  20. package/index162.js +1 -1
  21. package/index162.mjs +12 -38
  22. package/index163.js +2 -1
  23. package/index163.mjs +26 -11
  24. package/index164.js +2 -1
  25. package/index164.mjs +38 -13
  26. package/index165.js +1 -1
  27. package/index165.mjs +21 -38
  28. package/index166.js +1 -2
  29. package/index166.mjs +44 -24
  30. package/index167.js +1 -1
  31. package/index167.mjs +25 -22
  32. package/index168.js +1 -1
  33. package/index168.mjs +40 -45
  34. package/index169.js +2 -1
  35. package/index169.mjs +57 -25
  36. package/index170.js +1 -1
  37. package/index170.mjs +39 -41
  38. package/index171.js +1 -2
  39. package/index171.mjs +30 -57
  40. package/index172.js +2 -1
  41. package/index172.mjs +8 -38
  42. package/index173.js +2 -1
  43. package/index173.mjs +9 -30
  44. package/index174.js +1 -2
  45. package/index174.mjs +32 -9
  46. package/index175.js +1 -2
  47. package/index175.mjs +14 -9
  48. package/index176.js +1 -1
  49. package/index176.mjs +16 -31
  50. package/index177.js +1 -1
  51. package/index177.mjs +11 -15
  52. package/index178.js +2 -1
  53. package/index178.mjs +47 -16
  54. package/index179.js +1 -2
  55. package/index179.mjs +36 -46
  56. package/index180.js +1 -1
  57. package/index180.mjs +31 -36
  58. package/index181.js +1 -1
  59. package/index181.mjs +20 -31
  60. package/index182.js +1 -1
  61. package/index182.mjs +32 -18
  62. package/index183.js +1 -1
  63. package/index183.mjs +14 -36
  64. package/index185.js +1 -1
  65. package/index185.mjs +3 -3
  66. package/index186.js +1 -1
  67. package/index186.mjs +23 -23
  68. package/index187.js +1 -1
  69. package/index187.mjs +12 -12
  70. package/index188.js +1 -1
  71. package/index188.mjs +104 -105
  72. package/index191.js +1 -1
  73. package/index191.mjs +203 -5
  74. package/index192.js +1 -2
  75. package/index192.mjs +62 -47
  76. package/index193.js +1 -1
  77. package/index193.mjs +141 -9
  78. package/index194.js +1 -1
  79. package/index194.mjs +110 -189
  80. package/index195.js +1 -1
  81. package/index195.mjs +213 -53
  82. package/index196.js +1 -1
  83. package/index196.mjs +176 -129
  84. package/index197.js +1 -1
  85. package/index197.mjs +61 -116
  86. package/index198.js +1 -1
  87. package/index198.mjs +265 -210
  88. package/index199.js +1 -1
  89. package/index199.mjs +88 -180
  90. package/index2.mjs +35 -35
  91. package/index200.js +1 -1
  92. package/index200.mjs +179 -60
  93. package/index201.js +1 -1
  94. package/index201.mjs +71 -266
  95. package/index202.js +1 -1
  96. package/index202.mjs +52 -92
  97. package/index203.js +1 -1
  98. package/index203.mjs +120 -182
  99. package/index204.js +1 -1
  100. package/index204.mjs +108 -76
  101. package/index205.js +1 -1
  102. package/index205.mjs +114 -50
  103. package/index206.js +1 -1
  104. package/index206.mjs +64 -118
  105. package/index207.js +1 -1
  106. package/index207.mjs +105 -111
  107. package/index208.js +1 -1
  108. package/index208.mjs +47 -117
  109. package/index209.js +1 -1
  110. package/index209.mjs +88 -67
  111. package/index210.js +1 -1
  112. package/index210.mjs +68 -108
  113. package/index211.js +1 -1
  114. package/index211.mjs +45 -41
  115. package/index212.js +1 -1
  116. package/index212.mjs +83 -77
  117. package/index213.js +5 -1
  118. package/index213.mjs +59 -49
  119. package/index214.js +1 -1
  120. package/index214.mjs +12 -57
  121. package/index215.js +1 -1
  122. package/index215.mjs +5 -99
  123. package/index216.js +2 -5
  124. package/index216.mjs +48 -79
  125. package/index217.js +1 -1
  126. package/index217.mjs +9 -130
  127. package/index218.js +1 -1
  128. package/index218.mjs +52 -184
  129. package/index219.js +1 -1
  130. package/index219.mjs +130 -121
  131. package/index220.js +1 -1
  132. package/index220.mjs +14 -134
  133. package/index221.js +1 -1
  134. package/index221.mjs +41 -73
  135. package/index222.js +1 -1
  136. package/index222.mjs +231 -14
  137. package/index223.js +1 -1
  138. package/index223.mjs +120 -90
  139. package/index224.js +1 -1
  140. package/index224.mjs +66 -100
  141. package/index225.js +7 -1
  142. package/index225.mjs +439 -4
  143. package/index226.js +1 -1
  144. package/index226.mjs +58 -3
  145. package/index227.js +1 -1
  146. package/index227.mjs +52 -123
  147. package/index228.js +1 -1
  148. package/index228.mjs +4 -30
  149. package/index229.js +1 -1
  150. package/index229.mjs +24 -50
  151. package/index230.js +1 -1
  152. package/index230.mjs +46 -43
  153. package/index231.js +1 -1
  154. package/index231.mjs +5 -37
  155. package/index232.js +1 -1
  156. package/index232.mjs +24 -113
  157. package/index233.js +1 -1
  158. package/index233.mjs +11 -76
  159. package/index234.js +1 -1
  160. package/index234.mjs +4 -101
  161. package/index235.js +1 -1
  162. package/index235.mjs +15 -98
  163. package/index236.js +1 -1
  164. package/index236.mjs +36 -119
  165. package/index237.js +1 -1
  166. package/index237.mjs +41 -70
  167. package/index238.js +1 -7
  168. package/index238.mjs +27 -434
  169. package/index239.js +1 -1
  170. package/index239.mjs +30 -57
  171. package/index240.js +1 -1
  172. package/index240.mjs +11 -4
  173. package/index241.js +1 -1
  174. package/index241.mjs +27 -23
  175. package/index242.js +1 -1
  176. package/index242.mjs +15 -47
  177. package/index243.js +1 -1
  178. package/index243.mjs +9 -5
  179. package/index244.js +1 -1
  180. package/index244.mjs +6 -24
  181. package/index245.js +1 -1
  182. package/index245.mjs +5 -12
  183. package/index246.js +1 -1
  184. package/index246.mjs +7 -4
  185. package/index247.js +1 -1
  186. package/index247.mjs +29 -14
  187. package/index248.js +1 -1
  188. package/index248.mjs +17 -42
  189. package/index249.js +1 -1
  190. package/index249.mjs +41 -55
  191. package/index250.js +1 -1
  192. package/index250.mjs +7 -42
  193. package/index251.js +1 -1
  194. package/index251.mjs +15 -31
  195. package/index252.js +1 -1
  196. package/index252.mjs +3 -32
  197. package/index253.js +1 -1
  198. package/index253.mjs +19 -14
  199. package/index254.js +1 -1
  200. package/index254.mjs +34 -10
  201. package/index255.js +1 -1
  202. package/index255.mjs +21 -28
  203. package/index256.js +1 -1
  204. package/index256.mjs +26 -14
  205. package/index257.js +1 -1
  206. package/index257.mjs +129 -8
  207. package/index258.js +1 -1
  208. package/index258.mjs +190 -6
  209. package/index259.js +1 -1
  210. package/index259.mjs +9 -5
  211. package/index260.js +1 -1
  212. package/index260.mjs +3 -7
  213. package/index261.js +1 -1
  214. package/index261.mjs +35 -28
  215. package/index262.js +1 -1
  216. package/index262.mjs +5 -17
  217. package/index263.js +1 -1
  218. package/index263.mjs +27 -42
  219. package/index264.js +1 -1
  220. package/index264.mjs +6 -8
  221. package/index265.js +1 -1
  222. package/index265.mjs +124 -16
  223. package/index266.js +1 -1
  224. package/index266.mjs +135 -3
  225. package/index267.js +1 -1
  226. package/index267.mjs +75 -19
  227. package/index268.js +1 -1
  228. package/index268.mjs +12 -32
  229. package/index269.js +1 -1
  230. package/index269.mjs +93 -20
  231. package/index270.js +1 -1
  232. package/index270.mjs +105 -53
  233. package/index271.js +1 -1
  234. package/index271.mjs +4 -27
  235. package/index272.js +1 -1
  236. package/index272.mjs +3 -144
  237. package/index273.js +1 -1
  238. package/index273.mjs +119 -207
  239. package/index274.js +1 -1
  240. package/index274.mjs +29 -22
  241. package/index275.js +1 -1
  242. package/index275.mjs +51 -49
  243. package/index276.js +1 -1
  244. package/index276.mjs +43 -45
  245. package/index277.js +1 -6
  246. package/index277.mjs +35 -111
  247. package/index278.js +1 -1
  248. package/index278.mjs +114 -72
  249. package/index279.js +1 -1
  250. package/index279.mjs +76 -73
  251. package/index28.js +1 -1
  252. package/index28.mjs +38 -94
  253. package/index280.js +1 -1
  254. package/index280.mjs +101 -7
  255. package/index281.js +1 -1
  256. package/index281.mjs +98 -12
  257. package/index282.js +1 -1
  258. package/index282.mjs +141 -28
  259. package/index283.js +1 -1
  260. package/index283.mjs +213 -9
  261. package/index284.js +1 -1
  262. package/index284.mjs +20 -131
  263. package/index285.js +1 -1
  264. package/index285.mjs +49 -43
  265. package/index286.js +1 -1
  266. package/index286.mjs +43 -228
  267. package/index287.js +6 -1
  268. package/index287.mjs +112 -8
  269. package/index288.js +1 -1
  270. package/index288.mjs +72 -4
  271. package/index289.js +1 -1
  272. package/index289.mjs +71 -33
  273. package/index29.js +1 -1
  274. package/index29.mjs +2 -2
  275. package/index290.js +1 -1
  276. package/index290.mjs +7 -5
  277. package/index291.js +1 -1
  278. package/index291.mjs +11 -29
  279. package/index292.js +1 -1
  280. package/index292.mjs +31 -6
  281. package/index293.js +1 -1
  282. package/index293.mjs +3 -4
  283. package/index294.js +1 -1
  284. package/index294.mjs +4 -3
  285. package/index30.js +1 -1
  286. package/index30.mjs +1 -1
  287. package/index329.js +1 -1
  288. package/index329.mjs +17 -59
  289. package/index33.js +1 -1
  290. package/index33.mjs +2 -2
  291. package/index330.js +1 -1
  292. package/index330.mjs +30 -7
  293. package/index331.js +1 -1
  294. package/index331.mjs +63 -27
  295. package/index332.js +1 -1
  296. package/index332.mjs +15 -87
  297. package/index333.js +1 -1
  298. package/index333.mjs +48 -7
  299. package/index334.js +1 -1
  300. package/index334.mjs +7 -26
  301. package/index335.js +1 -1
  302. package/index335.mjs +26 -32
  303. package/index336.js +1 -1
  304. package/index336.mjs +87 -6
  305. package/index337.js +1 -1
  306. package/index337.mjs +9 -6
  307. package/index338.js +1 -1
  308. package/index338.mjs +23 -48
  309. package/index339.js +1 -1
  310. package/index339.mjs +32 -28
  311. package/index34.js +1 -1
  312. package/index34.mjs +3 -3
  313. package/index340.js +1 -1
  314. package/index340.mjs +6 -15
  315. package/index341.js +1 -1
  316. package/index341.mjs +6 -66
  317. package/index342.js +1 -1
  318. package/index342.mjs +29 -54
  319. package/index343.js +1 -1
  320. package/index343.mjs +63 -51
  321. package/index344.js +1 -1
  322. package/index344.mjs +44 -271
  323. package/index345.js +1 -1
  324. package/index345.mjs +52 -18
  325. package/index346.js +1 -1
  326. package/index346.mjs +281 -21
  327. package/index347.js +1 -1
  328. package/index347.mjs +20 -29
  329. package/index35.js +1 -1
  330. package/index35.mjs +1 -1
  331. package/index36.js +1 -1
  332. package/index36.mjs +2 -2
  333. package/index38.js +1 -1
  334. package/index38.mjs +3 -3
  335. package/index39.js +1 -1
  336. package/index39.mjs +3 -3
  337. package/index40.js +1 -1
  338. package/index40.mjs +3 -3
  339. package/index42.js +1 -1
  340. package/index42.mjs +1 -1
  341. package/index44.js +1 -1
  342. package/index44.mjs +2 -2
  343. package/index45.js +1 -1
  344. package/index45.mjs +1 -1
  345. package/index48.js +1 -1
  346. package/index48.mjs +2 -2
  347. package/index52.js +1 -1
  348. package/index52.mjs +1 -1
  349. package/index54.js +1 -1
  350. package/index54.mjs +3 -3
  351. package/index56.js +1 -1
  352. package/index56.mjs +2 -2
  353. package/index57.js +1 -1
  354. package/index57.mjs +1 -1
  355. package/index59.js +1 -1
  356. package/index59.mjs +2 -2
  357. package/index8.js +1 -1
  358. package/index8.mjs +1 -1
  359. package/package.json +1 -1
package/index344.mjs CHANGED
@@ -1,284 +1,57 @@
1
- import { Selection as n } from "./index351.mjs";
2
- import { compareNodeOrder as r, getFirstItem as d, getChildNodes as u } from "./index352.mjs";
3
- class h {
4
- /**
5
- * The type of selection that is allowed in the collection.
6
- */
7
- get selectionMode() {
8
- return this.state.selectionMode;
1
+ class a {
2
+ *[Symbol.iterator]() {
3
+ yield* this.iterable;
9
4
  }
10
- /**
11
- * Whether the collection allows empty selection.
12
- */
13
- get disallowEmptySelection() {
14
- return this.state.disallowEmptySelection;
5
+ get size() {
6
+ return this._size;
15
7
  }
16
- /**
17
- * The selection behavior for the collection.
18
- */
19
- get selectionBehavior() {
20
- return this.state.selectionBehavior;
8
+ getKeys() {
9
+ return this.keyMap.keys();
21
10
  }
22
- /**
23
- * Sets the selection behavior for the collection.
24
- */
25
- setSelectionBehavior(t) {
26
- this.state.setSelectionBehavior(t);
11
+ getKeyBefore(i) {
12
+ let e = this.keyMap.get(i);
13
+ var t;
14
+ return e && (t = e.prevKey) !== null && t !== void 0 ? t : null;
27
15
  }
28
- /**
29
- * Whether the collection is currently focused.
30
- */
31
- get isFocused() {
32
- return this.state.isFocused;
16
+ getKeyAfter(i) {
17
+ let e = this.keyMap.get(i);
18
+ var t;
19
+ return e && (t = e.nextKey) !== null && t !== void 0 ? t : null;
33
20
  }
34
- /**
35
- * Sets whether the collection is focused.
36
- */
37
- setFocused(t) {
38
- this.state.setFocused(t);
21
+ getFirstKey() {
22
+ return this.firstKey;
39
23
  }
40
- /**
41
- * The current focused key in the collection.
42
- */
43
- get focusedKey() {
44
- return this.state.focusedKey;
24
+ getLastKey() {
25
+ return this.lastKey;
45
26
  }
46
- /** Whether the first or last child of the focused key should receive focus. */
47
- get childFocusStrategy() {
48
- return this.state.childFocusStrategy;
49
- }
50
- /**
51
- * Sets the focused key.
52
- */
53
- setFocusedKey(t, e) {
54
- (t == null || this.collection.getItem(t)) && this.state.setFocusedKey(t, e);
55
- }
56
- /**
57
- * The currently selected keys in the collection.
58
- */
59
- get selectedKeys() {
60
- return this.state.selectedKeys === "all" ? new Set(this.getSelectAllKeys()) : this.state.selectedKeys;
61
- }
62
- /**
63
- * The raw selection value for the collection.
64
- * Either 'all' for select all, or a set of keys.
65
- */
66
- get rawSelection() {
67
- return this.state.selectedKeys;
68
- }
69
- /**
70
- * Returns whether a key is selected.
71
- */
72
- isSelected(t) {
73
- if (this.state.selectionMode === "none") return !1;
74
- let e = this.getKey(t);
75
- return e == null ? !1 : this.state.selectedKeys === "all" ? this.canSelectItem(e) : this.state.selectedKeys.has(e);
76
- }
77
- /**
78
- * Whether the selection is empty.
79
- */
80
- get isEmpty() {
81
- return this.state.selectedKeys !== "all" && this.state.selectedKeys.size === 0;
82
- }
83
- /**
84
- * Whether all items in the collection are selected.
85
- */
86
- get isSelectAll() {
87
- if (this.isEmpty) return !1;
88
- if (this.state.selectedKeys === "all") return !0;
89
- if (this._isSelectAll != null) return this._isSelectAll;
90
- let t = this.getSelectAllKeys(), e = this.state.selectedKeys;
91
- return this._isSelectAll = t.every((l) => e.has(l)), this._isSelectAll;
92
- }
93
- get firstSelectedKey() {
94
- let t = null;
95
- for (let l of this.state.selectedKeys) {
96
- let s = this.collection.getItem(l);
97
- (!t || s && r(this.collection, s, t) < 0) && (t = s);
98
- }
99
- var e;
100
- return (e = t == null ? void 0 : t.key) !== null && e !== void 0 ? e : null;
101
- }
102
- get lastSelectedKey() {
103
- let t = null;
104
- for (let l of this.state.selectedKeys) {
105
- let s = this.collection.getItem(l);
106
- (!t || s && r(this.collection, s, t) > 0) && (t = s);
107
- }
27
+ getItem(i) {
108
28
  var e;
109
- return (e = t == null ? void 0 : t.key) !== null && e !== void 0 ? e : null;
110
- }
111
- get disabledKeys() {
112
- return this.state.disabledKeys;
113
- }
114
- get disabledBehavior() {
115
- return this.state.disabledBehavior;
116
- }
117
- /**
118
- * Extends the selection to the given key.
119
- */
120
- extendSelection(t) {
121
- if (this.selectionMode === "none") return;
122
- if (this.selectionMode === "single") {
123
- this.replaceSelection(t);
124
- return;
125
- }
126
- let e = this.getKey(t);
127
- if (e == null) return;
128
- let l;
129
- if (this.state.selectedKeys === "all") l = new n([
130
- e
131
- ], e, e);
132
- else {
133
- let i = this.state.selectedKeys;
134
- var s;
135
- let a = (s = i.anchorKey) !== null && s !== void 0 ? s : e;
136
- l = new n(i, a, e);
137
- var o;
138
- for (let c of this.getKeyRange(a, (o = i.currentKey) !== null && o !== void 0 ? o : e)) l.delete(c);
139
- for (let c of this.getKeyRange(e, a)) this.canSelectItem(c) && l.add(c);
140
- }
141
- this.state.setSelectedKeys(l);
142
- }
143
- getKeyRange(t, e) {
144
- let l = this.collection.getItem(t), s = this.collection.getItem(e);
145
- return l && s ? r(this.collection, l, s) <= 0 ? this.getKeyRangeInternal(t, e) : this.getKeyRangeInternal(e, t) : [];
146
- }
147
- getKeyRangeInternal(t, e) {
148
- var l;
149
- if (!((l = this.layoutDelegate) === null || l === void 0) && l.getKeyRange) return this.layoutDelegate.getKeyRange(t, e);
150
- let s = [], o = t;
151
- for (; o != null; ) {
152
- let i = this.collection.getItem(o);
153
- if (i && (i.type === "item" || i.type === "cell" && this.allowsCellSelection) && s.push(o), o === e) return s;
154
- o = this.collection.getKeyAfter(o);
155
- }
156
- return [];
157
- }
158
- getKey(t) {
159
- let e = this.collection.getItem(t);
160
- if (!e || e.type === "cell" && this.allowsCellSelection) return t;
161
- for (; e && e.type !== "item" && e.parentKey != null; ) e = this.collection.getItem(e.parentKey);
162
- return !e || e.type !== "item" ? null : e.key;
163
- }
164
- /**
165
- * Toggles whether the given key is selected.
166
- */
167
- toggleSelection(t) {
168
- if (this.selectionMode === "none") return;
169
- if (this.selectionMode === "single" && !this.isSelected(t)) {
170
- this.replaceSelection(t);
171
- return;
172
- }
173
- let e = this.getKey(t);
174
- if (e == null) return;
175
- let l = new n(this.state.selectedKeys === "all" ? this.getSelectAllKeys() : this.state.selectedKeys);
176
- l.has(e) ? l.delete(e) : this.canSelectItem(e) && (l.add(e), l.anchorKey = e, l.currentKey = e), !(this.disallowEmptySelection && l.size === 0) && this.state.setSelectedKeys(l);
177
- }
178
- /**
179
- * Replaces the selection with only the given key.
180
- */
181
- replaceSelection(t) {
182
- if (this.selectionMode === "none") return;
183
- let e = this.getKey(t);
184
- if (e == null) return;
185
- let l = this.canSelectItem(e) ? new n([
186
- e
187
- ], e, e) : new n();
188
- this.state.setSelectedKeys(l);
189
- }
190
- /**
191
- * Replaces the selection with the given keys.
192
- */
193
- setSelectedKeys(t) {
194
- if (this.selectionMode === "none") return;
195
- let e = new n();
196
- for (let l of t) {
197
- let s = this.getKey(l);
198
- if (s != null && (e.add(s), this.selectionMode === "single"))
199
- break;
200
- }
201
- this.state.setSelectedKeys(e);
202
- }
203
- getSelectAllKeys() {
204
- let t = [], e = (l) => {
205
- for (; l != null; ) {
206
- if (this.canSelectItem(l)) {
207
- var s;
208
- let i = this.collection.getItem(l);
209
- (i == null ? void 0 : i.type) === "item" && t.push(l);
210
- var o;
211
- i != null && i.hasChildNodes && (this.allowsCellSelection || i.type !== "item") && e((o = (s = d(u(i, this.collection))) === null || s === void 0 ? void 0 : s.key) !== null && o !== void 0 ? o : null);
212
- }
213
- l = this.collection.getKeyAfter(l);
214
- }
29
+ return (e = this.keyMap.get(i)) !== null && e !== void 0 ? e : null;
30
+ }
31
+ at(i) {
32
+ const e = [
33
+ ...this.getKeys()
34
+ ];
35
+ return this.getItem(e[i]);
36
+ }
37
+ getChildren(i) {
38
+ let e = this.keyMap.get(i);
39
+ return (e == null ? void 0 : e.childNodes) || [];
40
+ }
41
+ constructor(i) {
42
+ this.keyMap = /* @__PURE__ */ new Map(), this.firstKey = null, this.lastKey = null, this.iterable = i;
43
+ let e = (l) => {
44
+ if (this.keyMap.set(l.key, l), l.childNodes && l.type === "section") for (let s of l.childNodes) e(s);
215
45
  };
216
- return e(this.collection.getFirstKey()), t;
217
- }
218
- /**
219
- * Selects all items in the collection.
220
- */
221
- selectAll() {
222
- !this.isSelectAll && this.selectionMode === "multiple" && this.state.setSelectedKeys("all");
223
- }
224
- /**
225
- * Removes all keys from the selection.
226
- */
227
- clearSelection() {
228
- !this.disallowEmptySelection && (this.state.selectedKeys === "all" || this.state.selectedKeys.size > 0) && this.state.setSelectedKeys(new n());
229
- }
230
- /**
231
- * Toggles between select all and an empty selection.
232
- */
233
- toggleSelectAll() {
234
- this.isSelectAll ? this.clearSelection() : this.selectAll();
235
- }
236
- select(t, e) {
237
- this.selectionMode !== "none" && (this.selectionMode === "single" ? this.isSelected(t) && !this.disallowEmptySelection ? this.toggleSelection(t) : this.replaceSelection(t) : this.selectionBehavior === "toggle" || e && (e.pointerType === "touch" || e.pointerType === "virtual") ? this.toggleSelection(t) : this.replaceSelection(t));
238
- }
239
- /**
240
- * Returns whether the current selection is equal to the given selection.
241
- */
242
- isSelectionEqual(t) {
243
- if (t === this.state.selectedKeys) return !0;
244
- let e = this.selectedKeys;
245
- if (t.size !== e.size) return !1;
246
- for (let l of t)
247
- if (!e.has(l)) return !1;
248
- for (let l of e)
249
- if (!t.has(l)) return !1;
250
- return !0;
251
- }
252
- canSelectItem(t) {
253
- var e;
254
- if (this.state.selectionMode === "none" || this.state.disabledKeys.has(t)) return !1;
255
- let l = this.collection.getItem(t);
256
- return !(!l || !(l == null || (e = l.props) === null || e === void 0) && e.isDisabled || l.type === "cell" && !this.allowsCellSelection);
257
- }
258
- isDisabled(t) {
259
- var e, l;
260
- return this.state.disabledBehavior === "all" && (this.state.disabledKeys.has(t) || !!(!((l = this.collection.getItem(t)) === null || l === void 0 || (e = l.props) === null || e === void 0) && e.isDisabled));
261
- }
262
- isLink(t) {
263
- var e, l;
264
- return !!(!((l = this.collection.getItem(t)) === null || l === void 0 || (e = l.props) === null || e === void 0) && e.href);
265
- }
266
- getItemProps(t) {
267
- var e;
268
- return (e = this.collection.getItem(t)) === null || e === void 0 ? void 0 : e.props;
269
- }
270
- withCollection(t) {
271
- return new h(t, this.state, {
272
- allowsCellSelection: this.allowsCellSelection,
273
- layoutDelegate: this.layoutDelegate || void 0
274
- });
275
- }
276
- constructor(t, e, l) {
277
- this.collection = t, this.state = e;
278
- var s;
279
- this.allowsCellSelection = (s = l == null ? void 0 : l.allowsCellSelection) !== null && s !== void 0 ? s : !1, this._isSelectAll = null, this.layoutDelegate = (l == null ? void 0 : l.layoutDelegate) || null;
46
+ for (let l of i) e(l);
47
+ let t = null, y = 0, n = 0;
48
+ for (let [l, s] of this.keyMap)
49
+ t ? (t.nextKey = l, s.prevKey = t.key) : (this.firstKey = l, s.prevKey = void 0), s.type === "item" && (s.index = y++), (s.type === "section" || s.type === "item") && n++, t = s, t.nextKey = void 0;
50
+ this._size = n;
51
+ var r;
52
+ this.lastKey = (r = t == null ? void 0 : t.key) !== null && r !== void 0 ? r : null;
280
53
  }
281
54
  }
282
55
  export {
283
- h as SelectionManager
56
+ a as ListCollection
284
57
  };
package/index345.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./index353.js"),n=require("react");function s(u,l,t){let i=n.useMemo(()=>new d.CollectionBuilder,[]),{children:r,items:o,collection:e}=u;return n.useMemo(()=>{if(e)return e;let c=i.build({children:r,items:o},t);return l(c)},[i,r,o,e,t,l])}exports.useCollection=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./index351.js"),F=require("./index256.js"),t=require("react");function M(e,o){if(e.size!==o.size)return!1;for(let c of e)if(!o.has(c))return!1;return!0}function R(e){let{selectionMode:o="none",disallowEmptySelection:c=!1,allowDuplicateSelectionEvents:K,selectionBehavior:s="toggle",disabledBehavior:b="all"}=e,r=t.useRef(!1),[,v]=t.useState(!1),u=t.useRef(null),a=t.useRef(null),[,h]=t.useState(null),g=t.useMemo(()=>S(e.selectedKeys),[e.selectedKeys]),w=t.useMemo(()=>S(e.defaultSelectedKeys,new y.Selection),[e.defaultSelectedKeys]),[i,B]=F.useControlledState(g,w,e.onSelectionChange),$=t.useMemo(()=>e.disabledKeys?new Set(e.disabledKeys):new Set,[e.disabledKeys]),[d,n]=t.useState(s);s==="replace"&&d==="toggle"&&typeof i=="object"&&i.size===0&&n("replace");let f=t.useRef(s);return t.useEffect(()=>{s!==f.current&&(n(s),f.current=s)},[s]),{selectionMode:o,disallowEmptySelection:c,selectionBehavior:d,setSelectionBehavior:n,get isFocused(){return r.current},setFocused(l){r.current=l,v(l)},get focusedKey(){return u.current},get childFocusStrategy(){return a.current},setFocusedKey(l,m="first"){u.current=l,a.current=m,h(l)},selectedKeys:i,setSelectedKeys(l){(K||!M(l,i))&&B(l)},disabledKeys:$,disabledBehavior:b}}function S(e,o){return e?e==="all"?"all":new y.Selection(e):o}exports.useMultipleSelectionState=R;
package/index345.mjs CHANGED
@@ -1,23 +1,57 @@
1
- import { CollectionBuilder as u } from "./index353.mjs";
2
- import { useMemo as n } from "react";
3
- function b(d, l, r) {
4
- let t = n(() => new u(), []), { children: i, items: o, collection: e } = d;
5
- return n(() => {
6
- if (e) return e;
7
- let c = t.build({
8
- children: i,
9
- items: o
10
- }, r);
11
- return l(c);
1
+ import { Selection as K } from "./index351.mjs";
2
+ import { useControlledState as M } from "./index256.mjs";
3
+ import { useRef as a, useState as r, useMemo as n, useEffect as x } from "react";
4
+ function R(e, s) {
5
+ if (e.size !== s.size) return !1;
6
+ for (let c of e)
7
+ if (!s.has(c)) return !1;
8
+ return !0;
9
+ }
10
+ function C(e) {
11
+ let { selectionMode: s = "none", disallowEmptySelection: c = !1, allowDuplicateSelectionEvents: v, selectionBehavior: l = "toggle", disabledBehavior: $ = "all" } = e, d = a(!1), [, h] = r(!1), u = a(null), f = a(null), [, m] = r(null), g = n(() => b(e.selectedKeys), [
12
+ e.selectedKeys
13
+ ]), w = n(() => b(e.defaultSelectedKeys, new K()), [
14
+ e.defaultSelectedKeys
15
+ ]), [o, B] = M(g, w, e.onSelectionChange), F = n(() => e.disabledKeys ? new Set(e.disabledKeys) : /* @__PURE__ */ new Set(), [
16
+ e.disabledKeys
17
+ ]), [S, i] = r(l);
18
+ l === "replace" && S === "toggle" && typeof o == "object" && o.size === 0 && i("replace");
19
+ let y = a(l);
20
+ return x(() => {
21
+ l !== y.current && (i(l), y.current = l);
12
22
  }, [
13
- t,
14
- i,
15
- o,
16
- e,
17
- r,
18
23
  l
19
- ]);
24
+ ]), {
25
+ selectionMode: s,
26
+ disallowEmptySelection: c,
27
+ selectionBehavior: S,
28
+ setSelectionBehavior: i,
29
+ get isFocused() {
30
+ return d.current;
31
+ },
32
+ setFocused(t) {
33
+ d.current = t, h(t);
34
+ },
35
+ get focusedKey() {
36
+ return u.current;
37
+ },
38
+ get childFocusStrategy() {
39
+ return f.current;
40
+ },
41
+ setFocusedKey(t, E = "first") {
42
+ u.current = t, f.current = E, m(t);
43
+ },
44
+ selectedKeys: o,
45
+ setSelectedKeys(t) {
46
+ (v || !R(t, o)) && B(t);
47
+ },
48
+ disabledKeys: F,
49
+ disabledBehavior: $
50
+ };
51
+ }
52
+ function b(e, s) {
53
+ return e ? e === "all" ? "all" : new K(e) : s;
20
54
  }
21
55
  export {
22
- b as useCollection
56
+ C as useMultipleSelectionState
23
57
  };
package/index346.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index185.js"),i=require("./index250.js");function u(e){return i.isAppleDevice()?e.altKey:e.ctrlKey}function a(e,t){var o,f;let r=`[data-key="${CSS.escape(String(t))}"]`,n=(o=e.current)===null||o===void 0?void 0:o.dataset.collection;return n&&(r=`[data-collection="${CSS.escape(n)}"]${r}`),(f=e.current)===null||f===void 0?void 0:f.querySelector(r)}const c=new WeakMap;function d(e){let t=l.useId();return c.set(e,t),t}function $(e){return c.get(e)}exports.getCollectionId=$;exports.getItemElement=a;exports.isNonContiguousSelectionModifier=u;exports.useCollectionId=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index351.js"),c=require("./index352.js");class h{get selectionMode(){return this.state.selectionMode}get disallowEmptySelection(){return this.state.disallowEmptySelection}get selectionBehavior(){return this.state.selectionBehavior}setSelectionBehavior(t){this.state.setSelectionBehavior(t)}get isFocused(){return this.state.isFocused}setFocused(t){this.state.setFocused(t)}get focusedKey(){return this.state.focusedKey}get childFocusStrategy(){return this.state.childFocusStrategy}setFocusedKey(t,e){(t==null||this.collection.getItem(t))&&this.state.setFocusedKey(t,e)}get selectedKeys(){return this.state.selectedKeys==="all"?new Set(this.getSelectAllKeys()):this.state.selectedKeys}get rawSelection(){return this.state.selectedKeys}isSelected(t){if(this.state.selectionMode==="none")return!1;let e=this.getKey(t);return e==null?!1:this.state.selectedKeys==="all"?this.canSelectItem(e):this.state.selectedKeys.has(e)}get isEmpty(){return this.state.selectedKeys!=="all"&&this.state.selectedKeys.size===0}get isSelectAll(){if(this.isEmpty)return!1;if(this.state.selectedKeys==="all")return!0;if(this._isSelectAll!=null)return this._isSelectAll;let t=this.getSelectAllKeys(),e=this.state.selectedKeys;return this._isSelectAll=t.every(l=>e.has(l)),this._isSelectAll}get firstSelectedKey(){let t=null;for(let l of this.state.selectedKeys){let i=this.collection.getItem(l);(!t||i&&c.compareNodeOrder(this.collection,i,t)<0)&&(t=i)}var e;return(e=t==null?void 0:t.key)!==null&&e!==void 0?e:null}get lastSelectedKey(){let t=null;for(let l of this.state.selectedKeys){let i=this.collection.getItem(l);(!t||i&&c.compareNodeOrder(this.collection,i,t)>0)&&(t=i)}var e;return(e=t==null?void 0:t.key)!==null&&e!==void 0?e:null}get disabledKeys(){return this.state.disabledKeys}get disabledBehavior(){return this.state.disabledBehavior}extendSelection(t){if(this.selectionMode==="none")return;if(this.selectionMode==="single"){this.replaceSelection(t);return}let e=this.getKey(t);if(e==null)return;let l;if(this.state.selectedKeys==="all")l=new n.Selection([e],e,e);else{let s=this.state.selectedKeys;var i;let a=(i=s.anchorKey)!==null&&i!==void 0?i:e;l=new n.Selection(s,a,e);var o;for(let r of this.getKeyRange(a,(o=s.currentKey)!==null&&o!==void 0?o:e))l.delete(r);for(let r of this.getKeyRange(e,a))this.canSelectItem(r)&&l.add(r)}this.state.setSelectedKeys(l)}getKeyRange(t,e){let l=this.collection.getItem(t),i=this.collection.getItem(e);return l&&i?c.compareNodeOrder(this.collection,l,i)<=0?this.getKeyRangeInternal(t,e):this.getKeyRangeInternal(e,t):[]}getKeyRangeInternal(t,e){var l;if(!((l=this.layoutDelegate)===null||l===void 0)&&l.getKeyRange)return this.layoutDelegate.getKeyRange(t,e);let i=[],o=t;for(;o!=null;){let s=this.collection.getItem(o);if(s&&(s.type==="item"||s.type==="cell"&&this.allowsCellSelection)&&i.push(o),o===e)return i;o=this.collection.getKeyAfter(o)}return[]}getKey(t){let e=this.collection.getItem(t);if(!e||e.type==="cell"&&this.allowsCellSelection)return t;for(;e&&e.type!=="item"&&e.parentKey!=null;)e=this.collection.getItem(e.parentKey);return!e||e.type!=="item"?null:e.key}toggleSelection(t){if(this.selectionMode==="none")return;if(this.selectionMode==="single"&&!this.isSelected(t)){this.replaceSelection(t);return}let e=this.getKey(t);if(e==null)return;let l=new n.Selection(this.state.selectedKeys==="all"?this.getSelectAllKeys():this.state.selectedKeys);l.has(e)?l.delete(e):this.canSelectItem(e)&&(l.add(e),l.anchorKey=e,l.currentKey=e),!(this.disallowEmptySelection&&l.size===0)&&this.state.setSelectedKeys(l)}replaceSelection(t){if(this.selectionMode==="none")return;let e=this.getKey(t);if(e==null)return;let l=this.canSelectItem(e)?new n.Selection([e],e,e):new n.Selection;this.state.setSelectedKeys(l)}setSelectedKeys(t){if(this.selectionMode==="none")return;let e=new n.Selection;for(let l of t){let i=this.getKey(l);if(i!=null&&(e.add(i),this.selectionMode==="single"))break}this.state.setSelectedKeys(e)}getSelectAllKeys(){let t=[],e=l=>{for(;l!=null;){if(this.canSelectItem(l)){var i;let s=this.collection.getItem(l);(s==null?void 0:s.type)==="item"&&t.push(l);var o;s!=null&&s.hasChildNodes&&(this.allowsCellSelection||s.type!=="item")&&e((o=(i=c.getFirstItem(c.getChildNodes(s,this.collection)))===null||i===void 0?void 0:i.key)!==null&&o!==void 0?o:null)}l=this.collection.getKeyAfter(l)}};return e(this.collection.getFirstKey()),t}selectAll(){!this.isSelectAll&&this.selectionMode==="multiple"&&this.state.setSelectedKeys("all")}clearSelection(){!this.disallowEmptySelection&&(this.state.selectedKeys==="all"||this.state.selectedKeys.size>0)&&this.state.setSelectedKeys(new n.Selection)}toggleSelectAll(){this.isSelectAll?this.clearSelection():this.selectAll()}select(t,e){this.selectionMode!=="none"&&(this.selectionMode==="single"?this.isSelected(t)&&!this.disallowEmptySelection?this.toggleSelection(t):this.replaceSelection(t):this.selectionBehavior==="toggle"||e&&(e.pointerType==="touch"||e.pointerType==="virtual")?this.toggleSelection(t):this.replaceSelection(t))}isSelectionEqual(t){if(t===this.state.selectedKeys)return!0;let e=this.selectedKeys;if(t.size!==e.size)return!1;for(let l of t)if(!e.has(l))return!1;for(let l of e)if(!t.has(l))return!1;return!0}canSelectItem(t){var e;if(this.state.selectionMode==="none"||this.state.disabledKeys.has(t))return!1;let l=this.collection.getItem(t);return!(!l||!(l==null||(e=l.props)===null||e===void 0)&&e.isDisabled||l.type==="cell"&&!this.allowsCellSelection)}isDisabled(t){var e,l;return this.state.disabledBehavior==="all"&&(this.state.disabledKeys.has(t)||!!(!((l=this.collection.getItem(t))===null||l===void 0||(e=l.props)===null||e===void 0)&&e.isDisabled))}isLink(t){var e,l;return!!(!((l=this.collection.getItem(t))===null||l===void 0||(e=l.props)===null||e===void 0)&&e.href)}getItemProps(t){var e;return(e=this.collection.getItem(t))===null||e===void 0?void 0:e.props}withCollection(t){return new h(t,this.state,{allowsCellSelection:this.allowsCellSelection,layoutDelegate:this.layoutDelegate||void 0})}constructor(t,e,l){this.collection=t,this.state=e;var i;this.allowsCellSelection=(i=l==null?void 0:l.allowsCellSelection)!==null&&i!==void 0?i:!1,this._isSelectAll=null,this.layoutDelegate=(l==null?void 0:l.layoutDelegate)||null}}exports.SelectionManager=h;