@rpcbase/ui 0.240.0 → 0.241.0

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 (414) hide show
  1. package/dist/index106.js +36 -36
  2. package/dist/index118.js +6 -6
  3. package/dist/index121.js +10 -10
  4. package/dist/index123.js +2 -2
  5. package/dist/index124.js +3 -3
  6. package/dist/index125.js +1 -1
  7. package/dist/index127.js +2 -2
  8. package/dist/index129.js +2 -2
  9. package/dist/index172.js +3 -3
  10. package/dist/index175.js +1 -1
  11. package/dist/index176.js +4 -4
  12. package/dist/index178.js +1 -1
  13. package/dist/index182.js +2 -2
  14. package/dist/index184.js +12 -12
  15. package/dist/index187.js +6 -6
  16. package/dist/index189.js +3 -3
  17. package/dist/index190.js +1 -1
  18. package/dist/index193.js +3 -3
  19. package/dist/index194.js +5 -5
  20. package/dist/index196.js +59 -20
  21. package/dist/index196.js.map +1 -1
  22. package/dist/index197.js +8 -66
  23. package/dist/index197.js.map +1 -1
  24. package/dist/index198.js +87 -6
  25. package/dist/index198.js.map +1 -1
  26. package/dist/index199.js +19 -11
  27. package/dist/index199.js.map +1 -1
  28. package/dist/index200.js +14 -48
  29. package/dist/index200.js.map +1 -1
  30. package/dist/index201.js +6 -4
  31. package/dist/index201.js.map +1 -1
  32. package/dist/index202.js +5 -29
  33. package/dist/index202.js.map +1 -1
  34. package/dist/index203.js +6 -16
  35. package/dist/index203.js.map +1 -1
  36. package/dist/index204.js +4 -5
  37. package/dist/index204.js.map +1 -1
  38. package/dist/index205.js +6 -21
  39. package/dist/index205.js.map +1 -1
  40. package/dist/index206.js +16 -51
  41. package/dist/index206.js.map +1 -1
  42. package/dist/index207.js +4 -25
  43. package/dist/index207.js.map +1 -1
  44. package/dist/index208.js +4 -41
  45. package/dist/index208.js.map +1 -1
  46. package/dist/index209.js +12 -39
  47. package/dist/index209.js.map +1 -1
  48. package/dist/index210.js +10 -45
  49. package/dist/index210.js.map +1 -1
  50. package/dist/index211.js +13 -20
  51. package/dist/index211.js.map +1 -1
  52. package/dist/index212.js +13 -70
  53. package/dist/index212.js.map +1 -1
  54. package/dist/index213.js +4 -17
  55. package/dist/index213.js.map +1 -1
  56. package/dist/index214.js +5 -11
  57. package/dist/index214.js.map +1 -1
  58. package/dist/index215.js +6 -27
  59. package/dist/index215.js.map +1 -1
  60. package/dist/index216.js +5 -13
  61. package/dist/index216.js.map +1 -1
  62. package/dist/index217.js +53 -17
  63. package/dist/index217.js.map +1 -1
  64. package/dist/index218.js +8 -36
  65. package/dist/index218.js.map +1 -1
  66. package/dist/index219.js +4 -262
  67. package/dist/index219.js.map +1 -1
  68. package/dist/index220.js +4 -278
  69. package/dist/index220.js.map +1 -1
  70. package/dist/index221.js +8 -68
  71. package/dist/index221.js.map +1 -1
  72. package/dist/index222.js +4 -99
  73. package/dist/index222.js.map +1 -1
  74. package/dist/index223.js +4 -83
  75. package/dist/index223.js.map +1 -1
  76. package/dist/index224.js +3 -3
  77. package/dist/index224.js.map +1 -1
  78. package/dist/index225.js +10 -29
  79. package/dist/index225.js.map +1 -1
  80. package/dist/index226.js +9 -16
  81. package/dist/index226.js.map +1 -1
  82. package/dist/index227.js +10 -35
  83. package/dist/index227.js.map +1 -1
  84. package/dist/index228.js +10 -16
  85. package/dist/index228.js.map +1 -1
  86. package/dist/index229.js +10 -3
  87. package/dist/index229.js.map +1 -1
  88. package/dist/index230.js +9 -26
  89. package/dist/index230.js.map +1 -1
  90. package/dist/index231.js +6 -28
  91. package/dist/index231.js.map +1 -1
  92. package/dist/index232.js +6 -4
  93. package/dist/index232.js.map +1 -1
  94. package/dist/index233.js +4 -78
  95. package/dist/index233.js.map +1 -1
  96. package/dist/index234.js +5 -269
  97. package/dist/index234.js.map +1 -1
  98. package/dist/index235.js +6 -11
  99. package/dist/index235.js.map +1 -1
  100. package/dist/index236.js +5 -10
  101. package/dist/index236.js.map +1 -1
  102. package/dist/index237.js +16 -25
  103. package/dist/index237.js.map +1 -1
  104. package/dist/index238.js +7 -16
  105. package/dist/index238.js.map +1 -1
  106. package/dist/index239.js +9 -124
  107. package/dist/index239.js.map +1 -1
  108. package/dist/index240.js +10 -5
  109. package/dist/index240.js.map +1 -1
  110. package/dist/index241.js +21 -40
  111. package/dist/index241.js.map +1 -1
  112. package/dist/index242.js +10 -65
  113. package/dist/index242.js.map +1 -1
  114. package/dist/index243.js +10 -14
  115. package/dist/index243.js.map +1 -1
  116. package/dist/index244.js +9 -7
  117. package/dist/index244.js.map +1 -1
  118. package/dist/index245.js +4 -5
  119. package/dist/index245.js.map +1 -1
  120. package/dist/index246.js +5 -3
  121. package/dist/index246.js.map +1 -1
  122. package/dist/index247.js +16 -10
  123. package/dist/index247.js.map +1 -1
  124. package/dist/index248.js +9 -7
  125. package/dist/index248.js.map +1 -1
  126. package/dist/index249.js +17 -132
  127. package/dist/index249.js.map +1 -1
  128. package/dist/index250.js +13 -397
  129. package/dist/index250.js.map +1 -1
  130. package/dist/index251.js +12 -52
  131. package/dist/index251.js.map +1 -1
  132. package/dist/index252.js +28 -10
  133. package/dist/index252.js.map +1 -1
  134. package/dist/index253.js +12 -11
  135. package/dist/index253.js.map +1 -1
  136. package/dist/index254.js +24 -15
  137. package/dist/index254.js.map +1 -1
  138. package/dist/index255.js +5 -5
  139. package/dist/index255.js.map +1 -1
  140. package/dist/index256.js +20 -6
  141. package/dist/index256.js.map +1 -1
  142. package/dist/index257.js +65 -57
  143. package/dist/index257.js.map +1 -1
  144. package/dist/index258.js +6 -87
  145. package/dist/index258.js.map +1 -1
  146. package/dist/index259.js +11 -6
  147. package/dist/index259.js.map +1 -1
  148. package/dist/index260.js +50 -4
  149. package/dist/index260.js.map +1 -1
  150. package/dist/index261.js +4 -7
  151. package/dist/index261.js.map +1 -1
  152. package/dist/index262.js +29 -16
  153. package/dist/index262.js.map +1 -1
  154. package/dist/index263.js +16 -4
  155. package/dist/index263.js.map +1 -1
  156. package/dist/index264.js +5 -4
  157. package/dist/index264.js.map +1 -1
  158. package/dist/index265.js +21 -12
  159. package/dist/index265.js.map +1 -1
  160. package/dist/index266.js +51 -9
  161. package/dist/index266.js.map +1 -1
  162. package/dist/index267.js +25 -13
  163. package/dist/index267.js.map +1 -1
  164. package/dist/index268.js +41 -13
  165. package/dist/index268.js.map +1 -1
  166. package/dist/index269.js +39 -4
  167. package/dist/index269.js.map +1 -1
  168. package/dist/index270.js +45 -6
  169. package/dist/index270.js.map +1 -1
  170. package/dist/index271.js +20 -6
  171. package/dist/index271.js.map +1 -1
  172. package/dist/index272.js +70 -5
  173. package/dist/index272.js.map +1 -1
  174. package/dist/index273.js +16 -53
  175. package/dist/index273.js.map +1 -1
  176. package/dist/index274.js +11 -8
  177. package/dist/index274.js.map +1 -1
  178. package/dist/index275.js +27 -4
  179. package/dist/index275.js.map +1 -1
  180. package/dist/index276.js +13 -4
  181. package/dist/index276.js.map +1 -1
  182. package/dist/index277.js +18 -8
  183. package/dist/index277.js.map +1 -1
  184. package/dist/index278.js +36 -4
  185. package/dist/index278.js.map +1 -1
  186. package/dist/index279.js +262 -4
  187. package/dist/index279.js.map +1 -1
  188. package/dist/index280.js +278 -3
  189. package/dist/index280.js.map +1 -1
  190. package/dist/index281.js +68 -10
  191. package/dist/index281.js.map +1 -1
  192. package/dist/index282.js +99 -9
  193. package/dist/index282.js.map +1 -1
  194. package/dist/index283.js +83 -9
  195. package/dist/index283.js.map +1 -1
  196. package/dist/index284.js +3 -10
  197. package/dist/index284.js.map +1 -1
  198. package/dist/index285.js +29 -10
  199. package/dist/index285.js.map +1 -1
  200. package/dist/index286.js +16 -9
  201. package/dist/index286.js.map +1 -1
  202. package/dist/index287.js +35 -7
  203. package/dist/index287.js.map +1 -1
  204. package/dist/index288.js +16 -5
  205. package/dist/index288.js.map +1 -1
  206. package/dist/index289.js +3 -4
  207. package/dist/index289.js.map +1 -1
  208. package/dist/index290.js +26 -5
  209. package/dist/index290.js.map +1 -1
  210. package/dist/index291.js +28 -6
  211. package/dist/index291.js.map +1 -1
  212. package/dist/index292.js +4 -6
  213. package/dist/index292.js.map +1 -1
  214. package/dist/index293.js +78 -8
  215. package/dist/index293.js.map +1 -1
  216. package/dist/index294.js +268 -18
  217. package/dist/index294.js.map +1 -1
  218. package/dist/index295.js +10 -15
  219. package/dist/index295.js.map +1 -1
  220. package/dist/index296.js +10 -7
  221. package/dist/index296.js.map +1 -1
  222. package/dist/index297.js +25 -10
  223. package/dist/index297.js.map +1 -1
  224. package/dist/index298.js +16 -10
  225. package/dist/index298.js.map +1 -1
  226. package/dist/index299.js +125 -21
  227. package/dist/index299.js.map +1 -1
  228. package/dist/index300.js +5 -10
  229. package/dist/index300.js.map +1 -1
  230. package/dist/index301.js +40 -9
  231. package/dist/index301.js.map +1 -1
  232. package/dist/index302.js +65 -9
  233. package/dist/index302.js.map +1 -1
  234. package/dist/index303.js +14 -5
  235. package/dist/index303.js.map +1 -1
  236. package/dist/index304.js +7 -5
  237. package/dist/index304.js.map +1 -1
  238. package/dist/index305.js +5 -16
  239. package/dist/index305.js.map +1 -1
  240. package/dist/index306.js +3 -9
  241. package/dist/index306.js.map +1 -1
  242. package/dist/index307.js +10 -18
  243. package/dist/index307.js.map +1 -1
  244. package/dist/index308.js +7 -15
  245. package/dist/index308.js.map +1 -1
  246. package/dist/index309.js +132 -11
  247. package/dist/index309.js.map +1 -1
  248. package/dist/index310.js +399 -29
  249. package/dist/index310.js.map +1 -1
  250. package/dist/index311.js +52 -12
  251. package/dist/index311.js.map +1 -1
  252. package/dist/index312.js +11 -25
  253. package/dist/index312.js.map +1 -1
  254. package/dist/index313.js +11 -5
  255. package/dist/index313.js.map +1 -1
  256. package/dist/index317.js +1 -1
  257. package/dist/index318.js +1 -1
  258. package/dist/index321.js +2 -2
  259. package/dist/index324.js +1 -1
  260. package/dist/index328.js +3 -116
  261. package/dist/index328.js.map +1 -1
  262. package/dist/index329.js +9 -17
  263. package/dist/index329.js.map +1 -1
  264. package/dist/index330.js +114 -13
  265. package/dist/index330.js.map +1 -1
  266. package/dist/index331.js +17 -3
  267. package/dist/index331.js.map +1 -1
  268. package/dist/index332.js +12 -33
  269. package/dist/index332.js.map +1 -1
  270. package/dist/index333.js +35 -19
  271. package/dist/index333.js.map +1 -1
  272. package/dist/index334.js +20 -8
  273. package/dist/index334.js.map +1 -1
  274. package/dist/index335.js +7 -8
  275. package/dist/index335.js.map +1 -1
  276. package/dist/index336.js +2 -2
  277. package/dist/index345.js +17 -51
  278. package/dist/index345.js.map +1 -1
  279. package/dist/index346.js +51 -17
  280. package/dist/index346.js.map +1 -1
  281. package/dist/index348.js +8 -8
  282. package/dist/index349.js +4 -4
  283. package/dist/index350.js +3 -3
  284. package/dist/index351.js +5 -5
  285. package/dist/index353.js +1 -1
  286. package/dist/index359.js +4 -11
  287. package/dist/index359.js.map +1 -1
  288. package/dist/index360.js +18 -17
  289. package/dist/index360.js.map +1 -1
  290. package/dist/index361.js +13 -4
  291. package/dist/index361.js.map +1 -1
  292. package/dist/index362.js +11 -5
  293. package/dist/index362.js.map +1 -1
  294. package/dist/index363.js +15 -19
  295. package/dist/index363.js.map +1 -1
  296. package/dist/index364.js +4 -45
  297. package/dist/index364.js.map +1 -1
  298. package/dist/index365.js +6 -18
  299. package/dist/index365.js.map +1 -1
  300. package/dist/index366.js +21 -5
  301. package/dist/index366.js.map +1 -1
  302. package/dist/index367.js +44 -200
  303. package/dist/index367.js.map +1 -1
  304. package/dist/index368.js +17 -77
  305. package/dist/index368.js.map +1 -1
  306. package/dist/index369.js +5 -5
  307. package/dist/index369.js.map +1 -1
  308. package/dist/index370.js +199 -16
  309. package/dist/index370.js.map +1 -1
  310. package/dist/index371.js +77 -12
  311. package/dist/index371.js.map +1 -1
  312. package/dist/index374.js +3 -3
  313. package/dist/index375.js +1 -1
  314. package/dist/index376.js +3 -3
  315. package/dist/index378.js +2 -2
  316. package/dist/index380.js +1 -1
  317. package/dist/index381.js +2 -2
  318. package/dist/index387.js +5 -3
  319. package/dist/index387.js.map +1 -1
  320. package/dist/index388.js +5 -3
  321. package/dist/index388.js.map +1 -1
  322. package/dist/index389.js +4 -5
  323. package/dist/index389.js.map +1 -1
  324. package/dist/index390.js +15 -4
  325. package/dist/index390.js.map +1 -1
  326. package/dist/index391.js +9 -4
  327. package/dist/index391.js.map +1 -1
  328. package/dist/index392.js +5 -15
  329. package/dist/index392.js.map +1 -1
  330. package/dist/index393.js +4 -8
  331. package/dist/index393.js.map +1 -1
  332. package/dist/index394.js +545 -5
  333. package/dist/index394.js.map +1 -1
  334. package/dist/index395.js +47 -5
  335. package/dist/index395.js.map +1 -1
  336. package/dist/index396.js +15 -543
  337. package/dist/index396.js.map +1 -1
  338. package/dist/index397.js +6 -47
  339. package/dist/index397.js.map +1 -1
  340. package/dist/index398.js +7 -17
  341. package/dist/index398.js.map +1 -1
  342. package/dist/index399.js +6 -5
  343. package/dist/index399.js.map +1 -1
  344. package/dist/index400.js +7 -7
  345. package/dist/index400.js.map +1 -1
  346. package/dist/index401.js +11 -6
  347. package/dist/index401.js.map +1 -1
  348. package/dist/index402.js +8 -7
  349. package/dist/index402.js.map +1 -1
  350. package/dist/index403.js +12 -11
  351. package/dist/index403.js.map +1 -1
  352. package/dist/index404.js +3 -9
  353. package/dist/index404.js.map +1 -1
  354. package/dist/index405.js +3 -13
  355. package/dist/index405.js.map +1 -1
  356. package/dist/index407.js +1 -1
  357. package/dist/index408.js +4 -7
  358. package/dist/index408.js.map +1 -1
  359. package/dist/index409.js +56 -2
  360. package/dist/index409.js.map +1 -1
  361. package/dist/index410.js +67 -43
  362. package/dist/index410.js.map +1 -1
  363. package/dist/index411.js +31 -56
  364. package/dist/index411.js.map +1 -1
  365. package/dist/index412.js +9 -8
  366. package/dist/index412.js.map +1 -1
  367. package/dist/index413.js +153 -2
  368. package/dist/index413.js.map +1 -1
  369. package/dist/index414.js +107 -54
  370. package/dist/index414.js.map +1 -1
  371. package/dist/index415.js +7 -55
  372. package/dist/index415.js.map +1 -1
  373. package/dist/index416.js +2 -5
  374. package/dist/index416.js.map +1 -1
  375. package/dist/index417.js +42 -54
  376. package/dist/index417.js.map +1 -1
  377. package/dist/index418.js +56 -68
  378. package/dist/index418.js.map +1 -1
  379. package/dist/index419.js +8 -31
  380. package/dist/index419.js.map +1 -1
  381. package/dist/index420.js +2 -9
  382. package/dist/index420.js.map +1 -1
  383. package/dist/index421.js +54 -152
  384. package/dist/index421.js.map +1 -1
  385. package/dist/index422.js +56 -108
  386. package/dist/index422.js.map +1 -1
  387. package/dist/index44.js +1 -1
  388. package/dist/index45.js +2 -2
  389. package/dist/index49.js +28 -28
  390. package/dist/index50.js +21 -21
  391. package/dist/index51.js +1 -1
  392. package/dist/index52.js +8 -8
  393. package/dist/index53.js +2 -2
  394. package/dist/index55.js +17 -17
  395. package/dist/index56.js +4 -4
  396. package/dist/index57.js +3 -3
  397. package/dist/index58.js +7 -7
  398. package/dist/index59.js +4 -4
  399. package/dist/index60.js +12 -12
  400. package/dist/index61.js +2 -2
  401. package/dist/index62.js +2 -2
  402. package/dist/index70.js +1 -1
  403. package/dist/index71.js +1 -1
  404. package/dist/index74.js +2 -6
  405. package/dist/index74.js.map +1 -1
  406. package/dist/index75.js +2 -8
  407. package/dist/index75.js.map +1 -1
  408. package/dist/index76.js +5 -5
  409. package/dist/index76.js.map +1 -1
  410. package/dist/index77.js +8 -2
  411. package/dist/index77.js.map +1 -1
  412. package/dist/index78.js +6 -2
  413. package/dist/index78.js.map +1 -1
  414. package/package.json +1 -1
package/dist/index277.js CHANGED
@@ -1,12 +1,22 @@
1
- import { millisecondsInWeek as f } from "./index391.js";
2
- import { startOfWeek as m } from "./index291.js";
3
- import { startOfWeekYear as i } from "./index404.js";
4
- import { toDate as n } from "./index390.js";
5
- function s(r, t) {
6
- const e = n(r, t?.in), o = +m(e, t) - +i(e, t);
7
- return Math.round(o / f) + 1;
1
+ import * as c from "react";
2
+ import { s as u } from "./index404.js";
3
+ import { w as i } from "./index405.js";
4
+ import { isReactVersionAtLeast as S } from "./index347.js";
5
+ const a = S(19), m = a ? f : l;
6
+ function g(t, e, r, n, o) {
7
+ return m(t, e, r, n, o);
8
+ }
9
+ function p(t, e, r, n, o) {
10
+ const s = c.useCallback(() => e(t.getSnapshot(), r, n, o), [t, e, r, n, o]);
11
+ return u.useSyncExternalStore(t.subscribe, s, s);
12
+ }
13
+ function f(t, e, r, n, o) {
14
+ return p(t, e, r, n, o);
15
+ }
16
+ function l(t, e, r, n, o) {
17
+ return i.useSyncExternalStoreWithSelector(t.subscribe, t.getSnapshot, t.getSnapshot, (s) => e(s, r, n, o));
8
18
  }
9
19
  export {
10
- s as getWeek
20
+ g as useStore
11
21
  };
12
22
  //# sourceMappingURL=index277.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index277.js","sources":["../../../node_modules/date-fns/getWeek.js"],"sourcesContent":["import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n"],"names":["getWeek","date","options","_date","toDate","diff","startOfWeek","startOfWeekYear","millisecondsInWeek"],"mappings":";;;;AA2CO,SAASA,EAAQC,GAAMC,GAAS;AACrC,QAAMC,IAAQC,EAAOH,GAAMC,GAAS,EAAE,GAChCG,IAAO,CAACC,EAAYH,GAAOD,CAAO,IAAI,CAACK,EAAgBJ,GAAOD,CAAO;AAK3E,SAAO,KAAK,MAAMG,IAAOG,CAAkB,IAAI;AACjD;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index277.js","sources":["../../../node_modules/@base-ui/utils/esm/store/useStore.js"],"sourcesContent":["import * as React from 'react';\n/* We need to import the shim because React 17 does not support the `useSyncExternalStore` API.\n * More info: https://github.com/mui/mui-x/issues/18303#issuecomment-2958392341 */\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { isReactVersionAtLeast } from \"../reactVersion.js\";\nimport { register, getInstance } from \"../fastHooks.js\";\n/* Some tests fail in R18 with the raw useSyncExternalStore. It may be possible to make it work\n * but for now we only enable it for R19+. */\nconst canUseRawUseSyncExternalStore = isReactVersionAtLeast(19);\nconst useStoreImplementation = canUseRawUseSyncExternalStore ? useStoreFast : useStoreLegacy;\nexport function useStore(store, selector, a1, a2, a3) {\n return useStoreImplementation(store, selector, a1, a2, a3);\n}\nfunction useStoreR19(store, selector, a1, a2, a3) {\n const getSelection = React.useCallback(() => selector(store.getSnapshot(), a1, a2, a3), [store, selector, a1, a2, a3]);\n return useSyncExternalStore(store.subscribe, getSelection, getSelection);\n}\nregister({\n before(instance) {\n instance.syncIndex = 0;\n if (!instance.didInitialize) {\n instance.syncTick = 1;\n instance.syncHooks = [];\n instance.didChangeStore = true;\n instance.getSnapshot = () => {\n let didChange = false;\n for (let i = 0; i < instance.syncHooks.length; i += 1) {\n const hook = instance.syncHooks[i];\n const value = hook.selector(hook.store.state, hook.a1, hook.a2, hook.a3);\n if (hook.didChange || !Object.is(hook.value, value)) {\n didChange = true;\n hook.value = value;\n hook.didChange = false;\n }\n }\n if (didChange) {\n instance.syncTick += 1;\n }\n return instance.syncTick;\n };\n }\n },\n after(instance) {\n if (instance.syncHooks.length > 0) {\n if (instance.didChangeStore) {\n instance.didChangeStore = false;\n instance.subscribe = onStoreChange => {\n const stores = new Set();\n for (const hook of instance.syncHooks) {\n stores.add(hook.store);\n }\n const unsubscribes = [];\n for (const store of stores) {\n unsubscribes.push(store.subscribe(onStoreChange));\n }\n return () => {\n for (const unsubscribe of unsubscribes) {\n unsubscribe();\n }\n };\n };\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useSyncExternalStore(instance.subscribe, instance.getSnapshot, instance.getSnapshot);\n }\n }\n});\nfunction useStoreFast(store, selector, a1, a2, a3) {\n const instance = getInstance();\n if (!instance) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStoreR19(store, selector, a1, a2, a3);\n }\n const index = instance.syncIndex;\n instance.syncIndex += 1;\n let hook;\n if (!instance.didInitialize) {\n hook = {\n store,\n selector,\n a1,\n a2,\n a3,\n value: selector(store.getSnapshot(), a1, a2, a3),\n didChange: false\n };\n instance.syncHooks.push(hook);\n } else {\n hook = instance.syncHooks[index];\n if (hook.store !== store || hook.selector !== selector || !Object.is(hook.a1, a1) || !Object.is(hook.a2, a2) || !Object.is(hook.a3, a3)) {\n if (hook.store !== store) {\n instance.didChangeStore = true;\n }\n hook.store = store;\n hook.selector = selector;\n hook.a1 = a1;\n hook.a2 = a2;\n hook.a3 = a3;\n hook.didChange = true;\n }\n }\n return hook.value;\n}\nfunction useStoreLegacy(store, selector, a1, a2, a3) {\n return useSyncExternalStoreWithSelector(store.subscribe, store.getSnapshot, store.getSnapshot, state => selector(state, a1, a2, a3));\n}"],"names":["canUseRawUseSyncExternalStore","isReactVersionAtLeast","useStoreImplementation","useStoreFast","useStoreLegacy","useStore","store","selector","a1","a2","a3","useStoreR19","getSelection","React","useSyncExternalStore","useSyncExternalStoreWithSelector","state"],"mappings":";;;;AASA,MAAMA,IAAgCC,EAAsB,EAAE,GACxDC,IAAyBF,IAAgCG,IAAeC;AACvE,SAASC,EAASC,GAAOC,GAAUC,GAAIC,GAAIC,GAAI;AACpD,SAAOR,EAAuBI,GAAOC,GAAUC,GAAIC,GAAIC,CAAE;AAC3D;AACA,SAASC,EAAYL,GAAOC,GAAUC,GAAIC,GAAIC,GAAI;AAChD,QAAME,IAAeC,EAAM,YAAY,MAAMN,EAASD,EAAM,eAAeE,GAAIC,GAAIC,CAAE,GAAG,CAACJ,GAAOC,GAAUC,GAAIC,GAAIC,CAAE,CAAC;AACrH,SAAOI,EAAAA,qBAAqBR,EAAM,WAAWM,GAAcA,CAAY;AACzE;AAmDA,SAAST,EAAaG,GAAOC,GAAUC,GAAIC,GAAIC,GAAI;AAI/C,SAAOC,EAAYL,GAAOC,GAAUC,GAAIC,GAAIC,CAAE;AA+BlD;AACA,SAASN,EAAeE,GAAOC,GAAUC,GAAIC,GAAIC,GAAI;AACnD,SAAOK,EAAAA,iCAAiCT,EAAM,WAAWA,EAAM,aAAaA,EAAM,aAAa,CAAAU,MAAST,EAASS,GAAOR,GAAIC,GAAIC,CAAE,CAAC;AACrI;","x_google_ignoreList":[0]}
package/dist/index278.js CHANGED
@@ -1,8 +1,40 @@
1
- import { toDate as t } from "./index390.js";
2
- function f(r, o) {
3
- return +t(r) > +t(o);
1
+ import { isElement as l } from "./index309.js";
2
+ import { useId as c } from "./index345.js";
3
+ import { useRefWithInit as a } from "./index258.js";
4
+ import { useIsoLayoutEffect as m } from "./index261.js";
5
+ import { useFloatingParentNodeId as u } from "./index382.js";
6
+ import { FloatingRootStore as p } from "./index384.js";
7
+ import { PopupTriggerMap as d } from "./index352.js";
8
+ function y(s) {
9
+ const {
10
+ open: o = !1,
11
+ onOpenChange: f,
12
+ elements: e = {}
13
+ } = s, r = c(), i = u() != null;
14
+ if (process.env.NODE_ENV !== "production") {
15
+ const n = e.reference;
16
+ n && !l(n) && console.error("Cannot pass a virtual element to the `elements.reference` option,", "as it must be a real DOM element. Use `context.setPositionReference()`", "instead.");
17
+ }
18
+ const t = a(() => new p({
19
+ open: o,
20
+ transitionStatus: void 0,
21
+ onOpenChange: f,
22
+ referenceElement: e.reference ?? null,
23
+ floatingElement: e.floating ?? null,
24
+ triggerElements: new d(),
25
+ floatingId: r,
26
+ syncOnly: !1,
27
+ nested: i
28
+ })).current;
29
+ return m(() => {
30
+ const n = {
31
+ open: o,
32
+ floatingId: r
33
+ };
34
+ e.reference !== void 0 && (n.referenceElement = e.reference, n.domReferenceElement = l(e.reference) ? e.reference : null), e.floating !== void 0 && (n.floatingElement = e.floating), t.update(n);
35
+ }, [o, r, e.reference, e.floating, t]), t.context.onOpenChange = f, t.context.nested = i, t;
4
36
  }
5
37
  export {
6
- f as isAfter
38
+ y as useFloatingRootContext
7
39
  };
8
40
  //# sourceMappingURL=index278.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index278.js","sources":["../../../node_modules/date-fns/isAfter.js"],"sourcesContent":["import { toDate } from \"./toDate.js\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n return +toDate(date) > +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n"],"names":["isAfter","date","dateToCompare","toDate"],"mappings":";AAoBO,SAASA,EAAQC,GAAMC,GAAe;AAC3C,SAAO,CAACC,EAAOF,CAAI,IAAI,CAACE,EAAOD,CAAa;AAC9C;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index278.js","sources":["../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.js"],"sourcesContent":["'use client';\n\nimport { isElement } from '@floating-ui/utils/dom';\nimport { useId } from '@base-ui/utils/useId';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useFloatingParentNodeId } from \"../components/FloatingTree.js\";\nimport { FloatingRootStore } from \"../components/FloatingRootStore.js\";\nimport { PopupTriggerMap } from \"../../utils/popups/index.js\";\nexport function useFloatingRootContext(options) {\n const {\n open = false,\n onOpenChange,\n elements = {}\n } = options;\n const floatingId = useId();\n const nested = useFloatingParentNodeId() != null;\n if (process.env.NODE_ENV !== 'production') {\n const optionDomReference = elements.reference;\n if (optionDomReference && !isElement(optionDomReference)) {\n console.error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `context.setPositionReference()`', 'instead.');\n }\n }\n const store = useRefWithInit(() => new FloatingRootStore({\n open,\n transitionStatus: undefined,\n onOpenChange,\n referenceElement: elements.reference ?? null,\n floatingElement: elements.floating ?? null,\n triggerElements: new PopupTriggerMap(),\n floatingId,\n syncOnly: false,\n nested\n })).current;\n useIsoLayoutEffect(() => {\n const valuesToSync = {\n open,\n floatingId\n };\n\n // Only sync elements that are defined to avoid overwriting existing ones\n if (elements.reference !== undefined) {\n valuesToSync.referenceElement = elements.reference;\n valuesToSync.domReferenceElement = isElement(elements.reference) ? elements.reference : null;\n }\n if (elements.floating !== undefined) {\n valuesToSync.floatingElement = elements.floating;\n }\n store.update(valuesToSync);\n }, [open, floatingId, elements.reference, elements.floating, store]);\n store.context.onOpenChange = onOpenChange;\n store.context.nested = nested;\n return store;\n}"],"names":["useFloatingRootContext","options","open","onOpenChange","elements","floatingId","useId","nested","useFloatingParentNodeId","optionDomReference","isElement","store","useRefWithInit","FloatingRootStore","PopupTriggerMap","useIsoLayoutEffect","valuesToSync"],"mappings":";;;;;;;AASO,SAASA,EAAuBC,GAAS;AAC9C,QAAM;AAAA,IACJ,MAAAC,IAAO;AAAA,IACP,cAAAC;AAAA,IACA,UAAAC,IAAW,CAAA;AAAA,EACf,IAAMH,GACEI,IAAaC,EAAK,GAClBC,IAASC,EAAuB,KAAM;AAC5C,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAMC,IAAqBL,EAAS;AACpC,IAAIK,KAAsB,CAACC,EAAUD,CAAkB,KACrD,QAAQ,MAAM,qEAAqE,0EAA0E,UAAU;AAAA,EAE3K;AACA,QAAME,IAAQC,EAAe,MAAM,IAAIC,EAAkB;AAAA,IACvD,MAAAX;AAAA,IACA,kBAAkB;AAAA,IAClB,cAAAC;AAAA,IACA,kBAAkBC,EAAS,aAAa;AAAA,IACxC,iBAAiBA,EAAS,YAAY;AAAA,IACtC,iBAAiB,IAAIU,EAAe;AAAA,IACpC,YAAAT;AAAA,IACA,UAAU;AAAA,IACV,QAAAE;AAAA,EACJ,CAAG,CAAC,EAAE;AACJ,SAAAQ,EAAmB,MAAM;AACvB,UAAMC,IAAe;AAAA,MACnB,MAAAd;AAAA,MACA,YAAAG;AAAA,IACN;AAGI,IAAID,EAAS,cAAc,WACzBY,EAAa,mBAAmBZ,EAAS,WACzCY,EAAa,sBAAsBN,EAAUN,EAAS,SAAS,IAAIA,EAAS,YAAY,OAEtFA,EAAS,aAAa,WACxBY,EAAa,kBAAkBZ,EAAS,WAE1CO,EAAM,OAAOK,CAAY;AAAA,EAC3B,GAAG,CAACd,GAAMG,GAAYD,EAAS,WAAWA,EAAS,UAAUO,CAAK,CAAC,GACnEA,EAAM,QAAQ,eAAeR,GAC7BQ,EAAM,QAAQ,SAASJ,GAChBI;AACT;","x_google_ignoreList":[0]}
package/dist/index279.js CHANGED
@@ -1,8 +1,266 @@
1
- import { toDate as o } from "./index390.js";
2
- function f(r, t) {
3
- return +o(r) < +o(t);
1
+ import * as a from "react";
2
+ import { isWebKit as Ae, isElement as v, isShadowRoot as Be, isLastTraversableNode as Z, getParentNode as Ne, isHTMLElement as Le, getComputedStyle as Fe } from "./index309.js";
3
+ import { addEventListener as u } from "./index300.js";
4
+ import { mergeCleanups as z } from "./index373.js";
5
+ import { useTimeout as de, Timeout as pe } from "./index285.js";
6
+ import { useStableCallback as y } from "./index262.js";
7
+ import { ownerDocument as me } from "./index284.js";
8
+ import { isEventTargetWithin as f, isRootElement as $e } from "./index290.js";
9
+ import { isReactEvent as qe } from "./index375.js";
10
+ import { getNodeChildren as ee } from "./index377.js";
11
+ import { useFloatingTree as Ve } from "./index382.js";
12
+ import { createChangeEventDetails as A } from "./index175.js";
13
+ import { createAttribute as Ue } from "./index379.js";
14
+ import { getTarget as te, contains as B } from "./index291.js";
15
+ import { triggerPress as he, escapeKey as je, outsidePress as Ge } from "./index177.js";
16
+ const Je = {
17
+ intentional: "onClick",
18
+ sloppy: "onPointerDown"
19
+ };
20
+ function Qe() {
21
+ return !1;
22
+ }
23
+ function Ze(d) {
24
+ return {
25
+ escapeKey: typeof d == "boolean" ? d : d?.escapeKey ?? !1,
26
+ outsidePress: typeof d == "boolean" ? d : d?.outsidePress ?? !0
27
+ };
28
+ }
29
+ function pt(d, Ee = {}) {
30
+ const n = "rootStore" in d ? d.rootStore : d, S = n.useState("open"), ne = n.useState("floatingElement"), {
31
+ dataRef: m
32
+ } = n.context, {
33
+ enabled: h = !0,
34
+ escapeKey: N = !0,
35
+ outsidePress: x = !0,
36
+ outsidePressEvent: ge = "sloppy",
37
+ referencePress: ye = Qe,
38
+ referencePressEvent: L = "sloppy",
39
+ bubbles: Pe,
40
+ externalTree: Re
41
+ } = Ee, P = Ve(Re), Te = y(typeof x == "function" ? x : () => !1), R = typeof x == "function" ? Te : x, re = R !== !1, se = y(() => ge), O = a.useRef(!1), X = a.useRef(!1), b = a.useRef(!1), {
42
+ escapeKey: W,
43
+ outsidePress: oe
44
+ } = Ze(Pe), s = a.useRef(null), D = de(), ce = de(), E = y(() => {
45
+ ce.clear(), m.current.insideReactTree = !1;
46
+ }), F = a.useRef(!1), $ = a.useRef(""), q = y(ye), w = y((r) => {
47
+ if (!S || !h || !N || r.key !== "Escape" || F.current)
48
+ return;
49
+ const g = m.current.floatingContext?.nodeId, Y = P ? ee(P.nodesRef.current, g) : [];
50
+ if (!W && Y.length > 0) {
51
+ let M = !0;
52
+ if (Y.forEach((p) => {
53
+ p.context?.open && !p.context.dataRef.current.__escapeKeyBubbles && (M = !1);
54
+ }), !M)
55
+ return;
56
+ }
57
+ const G = qe(r) ? r.nativeEvent : r, I = A(je, G);
58
+ n.setOpen(!1, I), !W && !I.isPropagationAllowed && r.stopPropagation();
59
+ }), T = y(() => {
60
+ m.current.insideReactTree = !0, ce.start(0, E);
61
+ });
62
+ a.useEffect(() => {
63
+ if (!S || !h)
64
+ return;
65
+ m.current.__escapeKeyBubbles = W, m.current.__outsidePressBubbles = oe;
66
+ const r = new pe(), g = new pe();
67
+ function Y() {
68
+ r.clear(), F.current = !0;
69
+ }
70
+ function G() {
71
+ r.start(
72
+ // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.
73
+ // Only apply to WebKit for the test to remain 0ms.
74
+ Ae() ? 5 : 0,
75
+ () => {
76
+ F.current = !1;
77
+ }
78
+ );
79
+ }
80
+ function I() {
81
+ b.current = !0, g.start(0, () => {
82
+ b.current = !1;
83
+ });
84
+ }
85
+ function M() {
86
+ O.current = !1, X.current = !1;
87
+ }
88
+ function p() {
89
+ const e = $.current, t = e === "pen" || !e ? "mouse" : e, o = se(), c = typeof o == "function" ? o() : o;
90
+ return typeof c == "string" ? c : c[t];
91
+ }
92
+ function be(e) {
93
+ const t = p();
94
+ return t === "intentional" && e.type !== "click" || t === "sloppy" && e.type === "click";
95
+ }
96
+ function ue(e) {
97
+ const t = m.current.floatingContext?.nodeId, o = P && ee(P.nodesRef.current, t).some((c) => f(e, c.context?.elements.floating));
98
+ return f(e, n.select("floatingElement")) || f(e, n.select("domReferenceElement")) || o;
99
+ }
100
+ function _(e) {
101
+ if (be(e)) {
102
+ E();
103
+ return;
104
+ }
105
+ if (m.current.insideReactTree) {
106
+ E();
107
+ return;
108
+ }
109
+ const t = te(e), o = `[${Ue("inert")}]`, c = v(t) ? t.getRootNode() : null, k = Array.from((Be(c) ? c : me(n.select("floatingElement"))).querySelectorAll(o)), le = n.context.triggerElements;
110
+ if (t && (le.hasElement(t) || le.hasMatchingElement((i) => B(i, t))))
111
+ return;
112
+ let K = v(t) ? t : null;
113
+ for (; K && !Z(K); ) {
114
+ const i = Ne(K);
115
+ if (Z(i) || !v(i))
116
+ break;
117
+ K = i;
118
+ }
119
+ if (k.length && v(t) && !$e(t) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
120
+ !B(t, n.select("floatingElement")) && // If the target root element contains none of the markers, then the
121
+ // element was injected after the floating element rendered.
122
+ k.every((i) => !B(K, i)))
123
+ return;
124
+ if (Le(t) && !("touches" in e)) {
125
+ const i = Z(t), C = Fe(t), fe = /auto|scroll/, xe = i || fe.test(C.overflowX), Xe = i || fe.test(C.overflowY), We = xe && t.clientWidth > 0 && t.scrollWidth > t.clientWidth, Ye = Xe && t.clientHeight > 0 && t.scrollHeight > t.clientHeight, _e = C.direction === "rtl", He = Ye && (_e ? e.offsetX <= t.offsetWidth - t.clientWidth : e.offsetX > t.clientWidth), ve = We && e.offsetY > t.clientHeight;
126
+ if (He || ve)
127
+ return;
128
+ }
129
+ if (ue(e))
130
+ return;
131
+ if (p() === "intentional" && b.current) {
132
+ g.clear(), b.current = !1;
133
+ return;
134
+ }
135
+ if (typeof R == "function" && !R(e))
136
+ return;
137
+ const Ke = m.current.floatingContext?.nodeId, ae = P ? ee(P.nodesRef.current, Ke) : [];
138
+ if (ae.length > 0) {
139
+ let i = !0;
140
+ if (ae.forEach((C) => {
141
+ C.context?.open && !C.context.dataRef.current.__outsidePressBubbles && (i = !1);
142
+ }), !i)
143
+ return;
144
+ }
145
+ n.setOpen(!1, A(Ge, e)), E();
146
+ }
147
+ function we(e) {
148
+ p() !== "sloppy" || e.pointerType === "touch" || !n.select("open") || !h || f(e, n.select("floatingElement")) || f(e, n.select("domReferenceElement")) || _(e);
149
+ }
150
+ function Ce(e) {
151
+ if (p() !== "sloppy" || !n.select("open") || !h || f(e, n.select("floatingElement")) || f(e, n.select("domReferenceElement")))
152
+ return;
153
+ const t = e.touches[0];
154
+ t && (s.current = {
155
+ startTime: Date.now(),
156
+ startX: t.clientX,
157
+ startY: t.clientY,
158
+ dismissOnTouchEnd: !1,
159
+ dismissOnMouseDown: !0
160
+ }, D.start(1e3, () => {
161
+ s.current && (s.current.dismissOnTouchEnd = !1, s.current.dismissOnMouseDown = !1);
162
+ }));
163
+ }
164
+ function H(e, t) {
165
+ const o = te(e);
166
+ if (!o)
167
+ return;
168
+ const c = u(o, e.type, () => {
169
+ t(e), c();
170
+ });
171
+ }
172
+ function Se(e) {
173
+ $.current = "touch", H(e, Ce);
174
+ }
175
+ function J(e) {
176
+ D.clear(), e.type === "pointerdown" && ($.current = e.pointerType), !(e.type === "mousedown" && s.current && !s.current.dismissOnMouseDown) && H(e, (t) => {
177
+ t.type === "pointerdown" ? we(t) : _(t);
178
+ });
179
+ }
180
+ function Q(e) {
181
+ if (!O.current)
182
+ return;
183
+ const t = X.current;
184
+ if (M(), p() === "intentional") {
185
+ if (e.type === "pointercancel") {
186
+ t && I();
187
+ return;
188
+ }
189
+ if (!ue(e)) {
190
+ if (t) {
191
+ I();
192
+ return;
193
+ }
194
+ typeof R == "function" && !R(e) || (g.clear(), b.current = !0, E());
195
+ }
196
+ }
197
+ }
198
+ function Oe(e) {
199
+ if (p() !== "sloppy" || !s.current || f(e, n.select("floatingElement")) || f(e, n.select("domReferenceElement")))
200
+ return;
201
+ const t = e.touches[0];
202
+ if (!t)
203
+ return;
204
+ const o = Math.abs(t.clientX - s.current.startX), c = Math.abs(t.clientY - s.current.startY), k = Math.sqrt(o * o + c * c);
205
+ k > 5 && (s.current.dismissOnTouchEnd = !0), k > 10 && (_(e), D.clear(), s.current = null);
206
+ }
207
+ function De(e) {
208
+ H(e, Oe);
209
+ }
210
+ function Ie(e) {
211
+ p() !== "sloppy" || !s.current || f(e, n.select("floatingElement")) || f(e, n.select("domReferenceElement")) || (s.current.dismissOnTouchEnd && _(e), D.clear(), s.current = null);
212
+ }
213
+ function Me(e) {
214
+ H(e, Ie);
215
+ }
216
+ const l = me(ne), ke = z(N && z(u(l, "keydown", w), u(l, "compositionstart", Y), u(l, "compositionend", G)), re && z(u(l, "click", J, !0), u(l, "pointerdown", J, !0), u(l, "pointerup", Q, !0), u(l, "pointercancel", Q, !0), u(l, "mousedown", J, !0), u(l, "mouseup", Q, !0), u(l, "touchstart", Se, !0), u(l, "touchmove", De, !0), u(l, "touchend", Me, !0)));
217
+ return () => {
218
+ ke(), r.clear(), g.clear(), M(), b.current = !1;
219
+ };
220
+ }, [m, ne, N, re, R, S, h, W, oe, w, E, se, P, n, D]), a.useEffect(E, [R, E]);
221
+ const V = a.useMemo(() => ({
222
+ onKeyDown: w,
223
+ [Je[L]]: (r) => {
224
+ q() && n.setOpen(!1, A(he, r.nativeEvent));
225
+ },
226
+ ...L !== "intentional" && {
227
+ onClick(r) {
228
+ q() && n.setOpen(!1, A(he, r.nativeEvent));
229
+ }
230
+ }
231
+ }), [w, n, L, q]), U = y((r) => {
232
+ if (!S || !h || r.button !== 0)
233
+ return;
234
+ const g = te(r.nativeEvent);
235
+ B(n.select("floatingElement"), g) && (O.current || (O.current = !0, X.current = !1));
236
+ }), j = y((r) => {
237
+ !S || !h || (r.defaultPrevented || r.nativeEvent.defaultPrevented) && O.current && (X.current = !0);
238
+ }), ie = a.useMemo(() => ({
239
+ onKeyDown: w,
240
+ // `onMouseDown` may be blocked if `event.preventDefault()` is called in
241
+ // `onPointerDown`, such as with <NumberField.ScrubArea>.
242
+ // See https://github.com/mui/base-ui/pull/3379
243
+ onPointerDown: j,
244
+ onMouseDown: j,
245
+ onClickCapture: T,
246
+ onMouseDownCapture(r) {
247
+ T(), U(r);
248
+ },
249
+ onPointerDownCapture(r) {
250
+ T(), U(r);
251
+ },
252
+ onMouseUpCapture: T,
253
+ onTouchEndCapture: T,
254
+ onTouchMoveCapture: T
255
+ }), [w, T, U, j]);
256
+ return a.useMemo(() => h ? {
257
+ reference: V,
258
+ floating: ie,
259
+ trigger: V
260
+ } : {}, [h, V, ie]);
4
261
  }
5
262
  export {
6
- f as isBefore
263
+ Ze as normalizeProp,
264
+ pt as useDismiss
7
265
  };
8
266
  //# sourceMappingURL=index279.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index279.js","sources":["../../../node_modules/date-fns/isBefore.js"],"sourcesContent":["import { toDate } from \"./toDate.js\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n return +toDate(date) < +toDate(dateToCompare);\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n"],"names":["isBefore","date","dateToCompare","toDate"],"mappings":";AAoBO,SAASA,EAASC,GAAMC,GAAe;AAC5C,SAAO,CAACC,EAAOF,CAAI,IAAI,CAACE,EAAOD,CAAa;AAC9C;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index279.js","sources":["../../../node_modules/@base-ui/react/esm/floating-ui-react/hooks/useDismiss.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getComputedStyle, getParentNode, isElement, isHTMLElement, isLastTraversableNode, isShadowRoot, isWebKit } from '@floating-ui/utils/dom';\nimport { addEventListener } from '@base-ui/utils/addEventListener';\nimport { mergeCleanups } from '@base-ui/utils/mergeCleanups';\nimport { Timeout, useTimeout } from '@base-ui/utils/useTimeout';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { contains, getTarget, isEventTargetWithin, isRootElement } from \"../utils/element.js\";\nimport { isReactEvent } from \"../utils/event.js\";\nimport { getNodeChildren } from \"../utils/nodes.js\";\n\n/* eslint-disable no-underscore-dangle */\n\nimport { useFloatingTree } from \"../components/FloatingTree.js\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../internals/reasons.js\";\nimport { createAttribute } from \"../utils/createAttribute.js\";\nconst bubbleHandlerKeys = {\n intentional: 'onClick',\n sloppy: 'onPointerDown'\n};\nfunction alwaysFalse() {\n return false;\n}\nexport function normalizeProp(normalizable) {\n return {\n escapeKey: typeof normalizable === 'boolean' ? normalizable : normalizable?.escapeKey ?? false,\n outsidePress: typeof normalizable === 'boolean' ? normalizable : normalizable?.outsidePress ?? true\n };\n}\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nexport function useDismiss(context, props = {}) {\n const store = 'rootStore' in context ? context.rootStore : context;\n const open = store.useState('open');\n const floatingElement = store.useState('floatingElement');\n const {\n dataRef\n } = store.context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: outsidePressProp = true,\n outsidePressEvent = 'sloppy',\n referencePress = alwaysFalse,\n referencePressEvent = 'sloppy',\n bubbles,\n externalTree\n } = props;\n const tree = useFloatingTree(externalTree);\n const outsidePressFn = useStableCallback(typeof outsidePressProp === 'function' ? outsidePressProp : () => false);\n const outsidePress = typeof outsidePressProp === 'function' ? outsidePressFn : outsidePressProp;\n const outsidePressEnabled = outsidePress !== false;\n const getOutsidePressEventProp = useStableCallback(() => outsidePressEvent);\n const pressStartedInsideRef = React.useRef(false);\n const pressStartPreventedRef = React.useRef(false);\n // Ignore only the very next outside click after dragging from inside to outside.\n const suppressNextOutsideClickRef = React.useRef(false);\n const {\n escapeKey: escapeKeyBubbles,\n outsidePress: outsidePressBubbles\n } = normalizeProp(bubbles);\n const touchStateRef = React.useRef(null);\n const cancelDismissOnEndTimeout = useTimeout();\n const clearInsideReactTreeTimeout = useTimeout();\n const clearInsideReactTree = useStableCallback(() => {\n clearInsideReactTreeTimeout.clear();\n dataRef.current.insideReactTree = false;\n });\n const isComposingRef = React.useRef(false);\n const currentPointerTypeRef = React.useRef('');\n const isReferencePressEnabled = useStableCallback(referencePress);\n const closeOnEscapeKeyDown = useStableCallback(event => {\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n\n // Wait until IME is settled. Pressing `Escape` while composing should\n // close the compose menu, but not the floating element.\n if (isComposingRef.current) {\n return;\n }\n const nodeId = dataRef.current.floatingContext?.nodeId;\n const children = tree ? getNodeChildren(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n if (child.context?.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n const native = isReactEvent(event) ? event.nativeEvent : event;\n const eventDetails = createChangeEventDetails(REASONS.escapeKey, native);\n store.setOpen(false, eventDetails);\n if (!escapeKeyBubbles && !eventDetails.isPropagationAllowed) {\n event.stopPropagation();\n }\n });\n const markInsideReactTree = useStableCallback(() => {\n dataRef.current.insideReactTree = true;\n clearInsideReactTreeTimeout.start(0, clearInsideReactTree);\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return undefined;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n const compositionTimeout = new Timeout();\n const preventedPressSuppressionTimeout = new Timeout();\n function handleCompositionStart() {\n compositionTimeout.clear();\n isComposingRef.current = true;\n }\n function handleCompositionEnd() {\n // Safari fires `compositionend` before `keydown`, so we need to wait\n // until the next tick to set `isComposing` to `false`.\n // https://bugs.webkit.org/show_bug.cgi?id=165004\n compositionTimeout.start(\n // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.\n // Only apply to WebKit for the test to remain 0ms.\n isWebKit() ? 5 : 0, () => {\n isComposingRef.current = false;\n });\n }\n function suppressImmediateOutsideClickAfterPreventedStart() {\n suppressNextOutsideClickRef.current = true;\n // Firefox can emit the synthetic outside click in a later task after\n // pointer lock exit, so microtask clearing is too early here.\n preventedPressSuppressionTimeout.start(0, () => {\n suppressNextOutsideClickRef.current = false;\n });\n }\n function resetPressStartState() {\n pressStartedInsideRef.current = false;\n pressStartPreventedRef.current = false;\n }\n function getOutsidePressEvent() {\n const type = currentPointerTypeRef.current;\n const computedType = type === 'pen' || !type ? 'mouse' : type;\n const outsidePressEventValue = getOutsidePressEventProp();\n const resolved = typeof outsidePressEventValue === 'function' ? outsidePressEventValue() : outsidePressEventValue;\n if (typeof resolved === 'string') {\n return resolved;\n }\n return resolved[computedType];\n }\n function shouldIgnoreEvent(event) {\n const computedOutsidePressEvent = getOutsidePressEvent();\n return computedOutsidePressEvent === 'intentional' && event.type !== 'click' || computedOutsidePressEvent === 'sloppy' && event.type === 'click';\n }\n function isEventWithinFloatingTree(event) {\n const nodeId = dataRef.current.floatingContext?.nodeId;\n const targetIsInsideChildren = tree && getNodeChildren(tree.nodesRef.current, nodeId).some(node => isEventTargetWithin(event, node.context?.elements.floating));\n return isEventTargetWithin(event, store.select('floatingElement')) || isEventTargetWithin(event, store.select('domReferenceElement')) || targetIsInsideChildren;\n }\n function closeOnPressOutside(event) {\n if (shouldIgnoreEvent(event)) {\n clearInsideReactTree();\n return;\n }\n if (dataRef.current.insideReactTree) {\n clearInsideReactTree();\n return;\n }\n const target = getTarget(event);\n const inertSelector = `[${createAttribute('inert')}]`;\n const targetRoot = isElement(target) ? target.getRootNode() : null;\n const markers = Array.from((isShadowRoot(targetRoot) ? targetRoot : ownerDocument(store.select('floatingElement'))).querySelectorAll(inertSelector));\n const triggers = store.context.triggerElements;\n\n // If another trigger is clicked, don't close the floating element.\n if (target && (triggers.hasElement(target) || triggers.hasMatchingElement(trigger => contains(trigger, target)))) {\n return;\n }\n let targetRootAncestor = isElement(target) ? target : null;\n while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n const nextParent = getParentNode(targetRootAncestor);\n if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {\n break;\n }\n targetRootAncestor = nextParent;\n }\n\n // Check if the click occurred on a third-party element injected after the\n // floating element rendered.\n if (markers.length && isElement(target) && !isRootElement(target) &&\n // Clicked on a direct ancestor (e.g. FloatingOverlay).\n !contains(target, store.select('floatingElement')) &&\n // If the target root element contains none of the markers, then the\n // element was injected after the floating element rendered.\n markers.every(marker => !contains(targetRootAncestor, marker))) {\n return;\n }\n\n // Check if the click occurred on the scrollbar\n // Skip for touch events: scrollbars don't receive touch events on most platforms\n if (isHTMLElement(target) && !('touches' in event)) {\n const lastTraversableNode = isLastTraversableNode(target);\n const style = getComputedStyle(target);\n const scrollRe = /auto|scroll/;\n const isScrollableX = lastTraversableNode || scrollRe.test(style.overflowX);\n const isScrollableY = lastTraversableNode || scrollRe.test(style.overflowY);\n const canScrollX = isScrollableX && target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = isScrollableY && target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n const isRTL = style.direction === 'rtl';\n\n // Check click position relative to scrollbar.\n // In some browsers it is possible to change the <body> (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n const pressedVerticalScrollbar = canScrollY && (isRTL ? event.offsetX <= target.offsetWidth - target.clientWidth : event.offsetX > target.clientWidth);\n const pressedHorizontalScrollbar = canScrollX && event.offsetY > target.clientHeight;\n if (pressedVerticalScrollbar || pressedHorizontalScrollbar) {\n return;\n }\n }\n if (isEventWithinFloatingTree(event)) {\n return;\n }\n\n // In intentional mode, a press that starts inside and ends outside gets\n // one suppressed outside click. Run this after inside-target checks so\n // inside clicks don't consume the one-shot suppression.\n if (getOutsidePressEvent() === 'intentional' && suppressNextOutsideClickRef.current) {\n preventedPressSuppressionTimeout.clear();\n suppressNextOutsideClickRef.current = false;\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const nodeId = dataRef.current.floatingContext?.nodeId;\n const children = tree ? getNodeChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n if (child.context?.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n store.setOpen(false, createChangeEventDetails(REASONS.outsidePress, event));\n clearInsideReactTree();\n }\n function handlePointerDown(event) {\n if (getOutsidePressEvent() !== 'sloppy' || event.pointerType === 'touch' || !store.select('open') || !enabled || isEventTargetWithin(event, store.select('floatingElement')) || isEventTargetWithin(event, store.select('domReferenceElement'))) {\n return;\n }\n closeOnPressOutside(event);\n }\n function handleTouchStart(event) {\n if (getOutsidePressEvent() !== 'sloppy' || !store.select('open') || !enabled || isEventTargetWithin(event, store.select('floatingElement')) || isEventTargetWithin(event, store.select('domReferenceElement'))) {\n return;\n }\n const touch = event.touches[0];\n if (touch) {\n touchStateRef.current = {\n startTime: Date.now(),\n startX: touch.clientX,\n startY: touch.clientY,\n dismissOnTouchEnd: false,\n dismissOnMouseDown: true\n };\n cancelDismissOnEndTimeout.start(1000, () => {\n if (touchStateRef.current) {\n touchStateRef.current.dismissOnTouchEnd = false;\n touchStateRef.current.dismissOnMouseDown = false;\n }\n });\n }\n }\n function addTargetEventListenerOnce(event, listener) {\n const target = getTarget(event);\n if (!target) {\n return;\n }\n const unsubscribe = addEventListener(target, event.type, () => {\n listener(event);\n unsubscribe();\n });\n }\n function handleTouchStartCapture(event) {\n currentPointerTypeRef.current = 'touch';\n addTargetEventListenerOnce(event, handleTouchStart);\n }\n function closeOnPressOutsideCapture(event) {\n cancelDismissOnEndTimeout.clear();\n if (event.type === 'pointerdown') {\n currentPointerTypeRef.current = event.pointerType;\n }\n if (event.type === 'mousedown' && touchStateRef.current && !touchStateRef.current.dismissOnMouseDown) {\n return;\n }\n addTargetEventListenerOnce(event, targetEvent => {\n if (targetEvent.type === 'pointerdown') {\n handlePointerDown(targetEvent);\n } else {\n closeOnPressOutside(targetEvent);\n }\n });\n }\n function handlePressEndCapture(event) {\n if (!pressStartedInsideRef.current) {\n return;\n }\n const pressStartedInsideDefaultPrevented = pressStartPreventedRef.current;\n resetPressStartState();\n if (getOutsidePressEvent() !== 'intentional') {\n return;\n }\n if (event.type === 'pointercancel') {\n if (pressStartedInsideDefaultPrevented) {\n suppressImmediateOutsideClickAfterPreventedStart();\n }\n return;\n }\n if (isEventWithinFloatingTree(event)) {\n return;\n }\n\n // If pointerdown was prevented, no click may be generated for that\n // interaction. However, Firefox may still emit an immediate click after\n // pointerup (e.g. NumberField scrub with pointer lock), so suppress for\n // one tick to absorb that synthetic click only.\n if (pressStartedInsideDefaultPrevented) {\n suppressImmediateOutsideClickAfterPreventedStart();\n return;\n }\n\n // Avoid suppressing when outsidePress explicitly ignores this target.\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n preventedPressSuppressionTimeout.clear();\n suppressNextOutsideClickRef.current = true;\n clearInsideReactTree();\n }\n function handleTouchMove(event) {\n if (getOutsidePressEvent() !== 'sloppy' || !touchStateRef.current || isEventTargetWithin(event, store.select('floatingElement')) || isEventTargetWithin(event, store.select('domReferenceElement'))) {\n return;\n }\n const touch = event.touches[0];\n if (!touch) {\n return;\n }\n const deltaX = Math.abs(touch.clientX - touchStateRef.current.startX);\n const deltaY = Math.abs(touch.clientY - touchStateRef.current.startY);\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n if (distance > 5) {\n touchStateRef.current.dismissOnTouchEnd = true;\n }\n if (distance > 10) {\n closeOnPressOutside(event);\n cancelDismissOnEndTimeout.clear();\n touchStateRef.current = null;\n }\n }\n function handleTouchMoveCapture(event) {\n addTargetEventListenerOnce(event, handleTouchMove);\n }\n function handleTouchEnd(event) {\n if (getOutsidePressEvent() !== 'sloppy' || !touchStateRef.current || isEventTargetWithin(event, store.select('floatingElement')) || isEventTargetWithin(event, store.select('domReferenceElement'))) {\n return;\n }\n if (touchStateRef.current.dismissOnTouchEnd) {\n closeOnPressOutside(event);\n }\n cancelDismissOnEndTimeout.clear();\n touchStateRef.current = null;\n }\n function handleTouchEndCapture(event) {\n addTargetEventListenerOnce(event, handleTouchEnd);\n }\n const doc = ownerDocument(floatingElement);\n const unsubscribe = mergeCleanups(escapeKey && mergeCleanups(addEventListener(doc, 'keydown', closeOnEscapeKeyDown), addEventListener(doc, 'compositionstart', handleCompositionStart), addEventListener(doc, 'compositionend', handleCompositionEnd)), outsidePressEnabled && mergeCleanups(addEventListener(doc, 'click', closeOnPressOutsideCapture, true), addEventListener(doc, 'pointerdown', closeOnPressOutsideCapture, true), addEventListener(doc, 'pointerup', handlePressEndCapture, true), addEventListener(doc, 'pointercancel', handlePressEndCapture, true), addEventListener(doc, 'mousedown', closeOnPressOutsideCapture, true), addEventListener(doc, 'mouseup', handlePressEndCapture, true), addEventListener(doc, 'touchstart', handleTouchStartCapture, true), addEventListener(doc, 'touchmove', handleTouchMoveCapture, true), addEventListener(doc, 'touchend', handleTouchEndCapture, true)));\n return () => {\n unsubscribe();\n compositionTimeout.clear();\n preventedPressSuppressionTimeout.clear();\n resetPressStartState();\n suppressNextOutsideClickRef.current = false;\n };\n }, [dataRef, floatingElement, escapeKey, outsidePressEnabled, outsidePress, open, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, clearInsideReactTree, getOutsidePressEventProp, tree, store, cancelDismissOnEndTimeout]);\n React.useEffect(clearInsideReactTree, [outsidePress, clearInsideReactTree]);\n const reference = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n if (!isReferencePressEnabled()) {\n return;\n }\n store.setOpen(false, createChangeEventDetails(REASONS.triggerPress, event.nativeEvent));\n },\n ...(referencePressEvent !== 'intentional' && {\n onClick(event) {\n if (!isReferencePressEnabled()) {\n return;\n }\n store.setOpen(false, createChangeEventDetails(REASONS.triggerPress, event.nativeEvent));\n }\n })\n }), [closeOnEscapeKeyDown, store, referencePressEvent, isReferencePressEnabled]);\n const markPressStartedInsideReactTree = useStableCallback(event => {\n if (!open || !enabled || event.button !== 0) {\n return;\n }\n const target = getTarget(event.nativeEvent);\n // Only treat presses that start within the floating DOM subtree as inside.\n // This avoids suppressing parent dismissal when interacting with nested portals.\n if (!contains(store.select('floatingElement'), target)) {\n return;\n }\n if (!pressStartedInsideRef.current) {\n pressStartedInsideRef.current = true;\n pressStartPreventedRef.current = false;\n }\n });\n const markInsidePressStartPrevented = useStableCallback(event => {\n if (!open || !enabled) {\n return;\n }\n if (!(event.defaultPrevented || event.nativeEvent.defaultPrevented)) {\n return;\n }\n if (pressStartedInsideRef.current) {\n pressStartPreventedRef.current = true;\n }\n });\n const floating = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n // `onMouseDown` may be blocked if `event.preventDefault()` is called in\n // `onPointerDown`, such as with <NumberField.ScrubArea>.\n // See https://github.com/mui/base-ui/pull/3379\n onPointerDown: markInsidePressStartPrevented,\n onMouseDown: markInsidePressStartPrevented,\n onClickCapture: markInsideReactTree,\n onMouseDownCapture(event) {\n markInsideReactTree();\n markPressStartedInsideReactTree(event);\n },\n onPointerDownCapture(event) {\n markInsideReactTree();\n markPressStartedInsideReactTree(event);\n },\n onMouseUpCapture: markInsideReactTree,\n onTouchEndCapture: markInsideReactTree,\n onTouchMoveCapture: markInsideReactTree\n }), [closeOnEscapeKeyDown, markInsideReactTree, markPressStartedInsideReactTree, markInsidePressStartPrevented]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n trigger: reference\n } : {}, [enabled, reference, floating]);\n}"],"names":["bubbleHandlerKeys","alwaysFalse","normalizeProp","normalizable","useDismiss","context","props","store","open","floatingElement","dataRef","enabled","escapeKey","outsidePressProp","outsidePressEvent","referencePress","referencePressEvent","bubbles","externalTree","tree","useFloatingTree","outsidePressFn","useStableCallback","outsidePress","outsidePressEnabled","getOutsidePressEventProp","pressStartedInsideRef","React","pressStartPreventedRef","suppressNextOutsideClickRef","escapeKeyBubbles","outsidePressBubbles","touchStateRef","cancelDismissOnEndTimeout","useTimeout","clearInsideReactTreeTimeout","clearInsideReactTree","isComposingRef","currentPointerTypeRef","isReferencePressEnabled","closeOnEscapeKeyDown","event","nodeId","children","getNodeChildren","shouldDismiss","child","native","isReactEvent","eventDetails","createChangeEventDetails","REASONS.escapeKey","markInsideReactTree","compositionTimeout","Timeout","preventedPressSuppressionTimeout","handleCompositionStart","handleCompositionEnd","isWebKit","suppressImmediateOutsideClickAfterPreventedStart","resetPressStartState","getOutsidePressEvent","type","computedType","outsidePressEventValue","resolved","shouldIgnoreEvent","computedOutsidePressEvent","isEventWithinFloatingTree","targetIsInsideChildren","node","isEventTargetWithin","closeOnPressOutside","target","getTarget","inertSelector","createAttribute","targetRoot","isElement","markers","isShadowRoot","ownerDocument","triggers","trigger","contains","targetRootAncestor","isLastTraversableNode","nextParent","getParentNode","isRootElement","marker","isHTMLElement","lastTraversableNode","style","getComputedStyle","scrollRe","isScrollableX","isScrollableY","canScrollX","canScrollY","isRTL","pressedVerticalScrollbar","pressedHorizontalScrollbar","REASONS.outsidePress","handlePointerDown","handleTouchStart","touch","addTargetEventListenerOnce","listener","unsubscribe","addEventListener","handleTouchStartCapture","closeOnPressOutsideCapture","targetEvent","handlePressEndCapture","pressStartedInsideDefaultPrevented","handleTouchMove","deltaX","deltaY","distance","handleTouchMoveCapture","handleTouchEnd","handleTouchEndCapture","doc","mergeCleanups","reference","REASONS.triggerPress","markPressStartedInsideReactTree","markInsidePressStartPrevented","floating"],"mappings":"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","x_google_ignoreList":[0]}