@synnaxlabs/pluto 0.53.2 → 0.54.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 (286) hide show
  1. package/dist/aether-BBeeeA1z.cjs +10 -0
  2. package/dist/aether-Bl3vMZO3.js +716 -0
  3. package/dist/aether-DmSenWd4.js +704 -0
  4. package/dist/aether-VeYJQDcf.cjs +11 -0
  5. package/dist/button-DBdzH6Ky.cjs +1 -0
  6. package/dist/button-KtgabnXL.js +251 -0
  7. package/dist/button.cjs +1 -1
  8. package/dist/button.js +2 -4
  9. package/dist/chunk-DeC0fbbY.js +23 -0
  10. package/dist/chunk-FeXHwk1_.cjs +1 -0
  11. package/dist/color-Cspp5cKp.js +7904 -0
  12. package/dist/color-DCCr0Z1b.cjs +29 -0
  13. package/dist/color.cjs +1 -1
  14. package/dist/color.js +2 -4
  15. package/dist/css-Ce-x3HcK.cjs +1 -0
  16. package/dist/css-UEo6g0SR.js +69 -0
  17. package/dist/css.cjs +1 -1
  18. package/dist/css.js +2 -8
  19. package/dist/dialog-BTCrp5Yv.cjs +1 -0
  20. package/dist/dialog-ClQI4sHo.js +331 -0
  21. package/dist/dialog.cjs +1 -1
  22. package/dist/dialog.js +2 -4
  23. package/dist/divider-BYRH8-5K.js +13 -0
  24. package/dist/divider-CEyntx31.cjs +1 -0
  25. package/dist/ether-CZlE80D0.cjs +53 -0
  26. package/dist/ether-KMGPzrZR.js +6222 -0
  27. package/dist/ether.cjs +1 -1
  28. package/dist/ether.js +4 -104
  29. package/dist/event-Btz3eWg1.cjs +1 -0
  30. package/dist/event-Z4V8c501.js +4 -0
  31. package/dist/flex-Bgtu0DK6.js +62 -0
  32. package/dist/flex-D_GoD3ed.cjs +1 -0
  33. package/dist/flex.cjs +1 -1
  34. package/dist/flex.js +2 -4
  35. package/dist/haul-BdMc4rLJ.js +171 -0
  36. package/dist/haul-ZdSHqhp6.cjs +1 -0
  37. package/dist/header-CNx3pAkx.js +64 -0
  38. package/dist/header-lD0sRjCR.cjs +1 -0
  39. package/dist/header.cjs +1 -1
  40. package/dist/header.js +2 -4
  41. package/dist/input-CdL1OPDU.cjs +74 -0
  42. package/dist/input-h-4axMs7.js +47772 -0
  43. package/dist/input.cjs +1 -1
  44. package/dist/input.js +2 -4
  45. package/dist/list-DacuSBB3.cjs +4 -0
  46. package/dist/list-dZDsxTzd.js +1756 -0
  47. package/dist/list.cjs +1 -1
  48. package/dist/list.js +2 -4
  49. package/dist/menu-eeXfR_zT.js +170 -0
  50. package/dist/menu-yADx33I8.cjs +1 -0
  51. package/dist/menu.cjs +1 -1
  52. package/dist/menu.js +2 -4
  53. package/dist/pluto.cjs +52 -0
  54. package/dist/pluto.css +2 -1
  55. package/dist/pluto.js +36474 -0
  56. package/dist/select-B93mFqvf.js +1328 -0
  57. package/dist/select-gt7wGGO4.cjs +1 -0
  58. package/dist/src/access/policy/queries.d.ts +34 -34
  59. package/dist/src/access/policy/queries.d.ts.map +1 -1
  60. package/dist/src/access/queries.d.ts +1 -1
  61. package/dist/src/access/queries.d.ts.map +1 -1
  62. package/dist/src/access/role/queries.d.ts +2 -12
  63. package/dist/src/access/role/queries.d.ts.map +1 -1
  64. package/dist/src/arc/queries.d.ts +1167 -29
  65. package/dist/src/arc/queries.d.ts.map +1 -1
  66. package/dist/src/channel/LinePlot.d.ts +2 -2
  67. package/dist/src/channel/LinePlot.d.ts.map +1 -1
  68. package/dist/src/channel/queries.d.ts +108 -60
  69. package/dist/src/channel/queries.d.ts.map +1 -1
  70. package/dist/src/color/Provider.d.ts +8 -8
  71. package/dist/src/device/queries.d.ts +148 -363
  72. package/dist/src/device/queries.d.ts.map +1 -1
  73. package/dist/src/flux/result.d.ts +5 -5
  74. package/dist/src/flux/result.d.ts.map +1 -1
  75. package/dist/src/flux/update.d.ts +1 -1
  76. package/dist/src/flux/update.d.ts.map +1 -1
  77. package/dist/src/icon/Icon.d.ts.map +1 -1
  78. package/dist/src/icon/registry.d.ts +1 -0
  79. package/dist/src/icon/registry.d.ts.map +1 -1
  80. package/dist/src/label/queries.d.ts +21 -21
  81. package/dist/src/label/queries.d.ts.map +1 -1
  82. package/dist/src/lineplot/aether/XAxis.d.ts +28 -28
  83. package/dist/src/lineplot/aether/YAxis.d.ts +28 -28
  84. package/dist/src/lineplot/aether/axis.d.ts +14 -14
  85. package/dist/src/lineplot/queries.d.ts +2 -2
  86. package/dist/src/lineplot/queries.d.ts.map +1 -1
  87. package/dist/src/lineplot/range/aether/provider.d.ts +126 -102
  88. package/dist/src/lineplot/range/aether/provider.d.ts.map +1 -1
  89. package/dist/src/lineplot/tooltip/aether/tooltip.d.ts +56 -56
  90. package/dist/src/log/aether/Log.d.ts +21 -21
  91. package/dist/src/log/queries.d.ts +2 -2
  92. package/dist/src/log/queries.d.ts.map +1 -1
  93. package/dist/src/memo/index.d.ts +0 -1
  94. package/dist/src/memo/index.d.ts.map +1 -1
  95. package/dist/src/memo/useMemoCompare.d.ts +0 -1
  96. package/dist/src/memo/useMemoCompare.d.ts.map +1 -1
  97. package/dist/src/rack/queries.d.ts.map +1 -1
  98. package/dist/src/ranger/aether/queries.d.ts.map +1 -1
  99. package/dist/src/ranger/queries.d.ts +19 -19
  100. package/dist/src/ranger/queries.d.ts.map +1 -1
  101. package/dist/src/schematic/queries.d.ts +2 -2
  102. package/dist/src/schematic/queries.d.ts.map +1 -1
  103. package/dist/src/schematic/symbol/Forms.d.ts.map +1 -1
  104. package/dist/src/schematic/symbol/Primitives.d.ts +2 -1
  105. package/dist/src/schematic/symbol/Primitives.d.ts.map +1 -1
  106. package/dist/src/schematic/symbol/SelectOrientation.d.ts.map +1 -1
  107. package/dist/src/schematic/symbol/Symbols.d.ts +35 -34
  108. package/dist/src/schematic/symbol/Symbols.d.ts.map +1 -1
  109. package/dist/src/schematic/symbol/queries.d.ts +96 -50
  110. package/dist/src/schematic/symbol/queries.d.ts.map +1 -1
  111. package/dist/src/schematic/symbol/registry.d.ts.map +1 -1
  112. package/dist/src/select/Dialog.d.ts +2 -1
  113. package/dist/src/select/Dialog.d.ts.map +1 -1
  114. package/dist/src/status/Select.d.ts.map +1 -1
  115. package/dist/src/status/SelectMulipleVariants.spec.d.ts +2 -0
  116. package/dist/src/status/SelectMulipleVariants.spec.d.ts.map +1 -0
  117. package/dist/src/status/SelectMultipleVariants.d.ts +9 -0
  118. package/dist/src/status/SelectMultipleVariants.d.ts.map +1 -0
  119. package/dist/src/status/SelectVariant.d.ts +2 -2
  120. package/dist/src/status/SelectVariant.d.ts.map +1 -1
  121. package/dist/src/status/SelectVariant.spec.d.ts +2 -0
  122. package/dist/src/status/SelectVariant.spec.d.ts.map +1 -0
  123. package/dist/src/status/aether/aggregator.d.ts +16 -2
  124. package/dist/src/status/aether/aggregator.d.ts.map +1 -1
  125. package/dist/src/status/aether/errorHandler.d.ts +2 -1
  126. package/dist/src/status/aether/errorHandler.d.ts.map +1 -1
  127. package/dist/src/status/base/Aggregator.d.ts +3 -2
  128. package/dist/src/status/base/Aggregator.d.ts.map +1 -1
  129. package/dist/src/status/external.d.ts +1 -0
  130. package/dist/src/status/external.d.ts.map +1 -1
  131. package/dist/src/status/queries.d.ts +25 -9
  132. package/dist/src/status/queries.d.ts.map +1 -1
  133. package/dist/src/status/variantData.d.ts +4 -0
  134. package/dist/src/status/variantData.d.ts.map +1 -0
  135. package/dist/src/table/cells/Cells.d.ts +17 -17
  136. package/dist/src/table/queries.d.ts +2 -2
  137. package/dist/src/table/queries.d.ts.map +1 -1
  138. package/dist/src/task/queries.d.ts +3 -3
  139. package/dist/src/task/queries.d.ts.map +1 -1
  140. package/dist/src/telem/aether/noop.d.ts.map +1 -1
  141. package/dist/src/telem/aether/static.d.ts +10 -10
  142. package/dist/src/telem/aether/telem.d.ts +1 -1
  143. package/dist/src/telem/aether/telem.d.ts.map +1 -1
  144. package/dist/src/telem/aether/transformers.d.ts +15 -15
  145. package/dist/src/telem/aether/transformers.d.ts.map +1 -1
  146. package/dist/src/telem/client/cache/cache.d.ts +1 -1
  147. package/dist/src/telem/client/cache/cache.d.ts.map +1 -1
  148. package/dist/src/telem/client/client.d.ts +4 -4
  149. package/dist/src/telem/client/client.d.ts.map +1 -1
  150. package/dist/src/telem/client/reader.d.ts +1 -1
  151. package/dist/src/telem/client/reader.d.ts.map +1 -1
  152. package/dist/src/telem/client/streamer.d.ts +1 -1
  153. package/dist/src/telem/client/streamer.d.ts.map +1 -1
  154. package/dist/src/telem/control/Controller.d.ts +1 -1
  155. package/dist/src/telem/control/Controller.d.ts.map +1 -1
  156. package/dist/src/telem/control/aether/chip.d.ts +16 -2
  157. package/dist/src/telem/control/aether/chip.d.ts.map +1 -1
  158. package/dist/src/telem/control/aether/controller.d.ts +16 -16
  159. package/dist/src/telem/control/aether/controller.d.ts.map +1 -1
  160. package/dist/src/telem/control/aether/indicator.d.ts +51 -37
  161. package/dist/src/telem/control/aether/indicator.d.ts.map +1 -1
  162. package/dist/src/telem/control/aether/legend.d.ts +18 -16
  163. package/dist/src/telem/control/aether/legend.d.ts.map +1 -1
  164. package/dist/src/telem/control/aether/state.d.ts +9 -8
  165. package/dist/src/telem/control/aether/state.d.ts.map +1 -1
  166. package/dist/src/theming/aether/provider.d.ts +990 -990
  167. package/dist/src/theming/base/theme.d.ts +330 -330
  168. package/dist/src/user/queries.d.ts +2 -2
  169. package/dist/src/view/queries.d.ts +2 -2
  170. package/dist/src/vis/axis/axis.d.ts +14 -14
  171. package/dist/src/vis/gauge/aether/gauge.d.ts +21 -21
  172. package/dist/src/vis/gauge/use.d.ts +7 -7
  173. package/dist/src/vis/line/aether/line.d.ts +7 -7
  174. package/dist/src/vis/measure/aether/measure.d.ts +56 -56
  175. package/dist/src/vis/rule/aether/aether.d.ts +14 -14
  176. package/dist/src/vis/value/aether/value.d.ts +42 -42
  177. package/dist/src/vis/value/redline.d.ts +5 -5
  178. package/dist/src/vis/value/redline.d.ts.map +1 -1
  179. package/dist/src/vis/value/use.d.ts +14 -14
  180. package/dist/src/workspace/queries.d.ts +6 -4
  181. package/dist/src/workspace/queries.d.ts.map +1 -1
  182. package/dist/tabs-CB7d2_0h.cjs +1 -0
  183. package/dist/tabs-DEXXNOZA.js +253 -0
  184. package/dist/tabs.cjs +1 -1
  185. package/dist/tabs.js +2 -4
  186. package/dist/text-Dd6wYgQM.js +142 -0
  187. package/dist/text-n3Fetdk6.cjs +1 -0
  188. package/dist/text.cjs +1 -1
  189. package/dist/text.js +2 -5
  190. package/dist/theming-Blgv4Cvi.js +591 -0
  191. package/dist/theming-KFfFjsRJ.cjs +1 -0
  192. package/dist/theming.cjs +1 -1
  193. package/dist/theming.js +2 -5
  194. package/dist/tree-B4jJAzS1.js +294 -0
  195. package/dist/tree-CsgSEpgy.cjs +1 -0
  196. package/dist/tree.cjs +1 -1
  197. package/dist/tree.js +2 -4
  198. package/dist/triggers-AqBSAR_T.cjs +1 -0
  199. package/dist/triggers-DDlalLoO.js +4748 -0
  200. package/dist/triggers.cjs +1 -1
  201. package/dist/triggers.js +2 -4
  202. package/dist/types-BGbd8pRh.js +73 -0
  203. package/dist/types-ByXvRm2h.cjs +1 -0
  204. package/dist/video-Bnr-2W9p.cjs +1 -0
  205. package/dist/video-ByMlaeKI.js +15 -0
  206. package/dist/video.cjs +1 -1
  207. package/dist/video.js +2 -4
  208. package/package.json +28 -29
  209. package/dist/Animated-B_N04fe6.cjs +0 -1
  210. package/dist/Animated-BsbNkFLg.cjs +0 -1
  211. package/dist/Animated-CLo1CLgn.js +0 -29
  212. package/dist/Animated-CO--9HPM.js +0 -354
  213. package/dist/Box-Bi280MYh.js +0 -96
  214. package/dist/Box-CNUz5BsV.cjs +0 -1
  215. package/dist/Copy-BgRUUzWz.cjs +0 -1
  216. package/dist/Copy-COWBkO_v.js +0 -337
  217. package/dist/Dialog-Bj7FiHJD.js +0 -59
  218. package/dist/Dialog-DBm6Fap1.cjs +0 -1
  219. package/dist/Editable-C17ILP50.js +0 -202
  220. package/dist/Editable-HUPqTaui.cjs +0 -1
  221. package/dist/Haul-CnZK3e-n.js +0 -132
  222. package/dist/Haul-DlwI4b25.cjs +0 -1
  223. package/dist/Items-CXBBG9Ip.cjs +0 -4
  224. package/dist/Items-DQba1BFQ.js +0 -842
  225. package/dist/Menu-BZ6ZGIv3.cjs +0 -1
  226. package/dist/Menu-CniMpPmC.js +0 -139
  227. package/dist/Provider-cSwm-2e_.cjs +0 -1
  228. package/dist/Provider-jFWpR0CX.js +0 -520
  229. package/dist/Tags-CxzMdPpm.cjs +0 -1
  230. package/dist/Tags-DvfGhiWv.js +0 -925
  231. package/dist/Text-2MISZsc5.js +0 -1712
  232. package/dist/Text-XHBXXDRS.cjs +0 -1
  233. package/dist/Video-Bew5_j16.js +0 -10
  234. package/dist/Video-BryrVNlH.cjs +0 -1
  235. package/dist/css-CloSmhZB.cjs +0 -1
  236. package/dist/css-D90kZTM8.js +0 -63
  237. package/dist/dimensions-CdFEW3oU.cjs +0 -1
  238. package/dist/dimensions-DbMN4145.js +0 -19
  239. package/dist/eraser-BShvqlBE.js +0 -958
  240. package/dist/eraser-rFMFKqsg.cjs +0 -11
  241. package/dist/event-BxvV3arE.cjs +0 -1
  242. package/dist/event-nNH_pXSr.js +0 -36
  243. package/dist/external-4jf1Bv96.cjs +0 -1
  244. package/dist/external-B2YeNEwd.cjs +0 -1
  245. package/dist/external-B9PnwQOL.js +0 -29
  246. package/dist/external-BBbkXXN0.js +0 -47
  247. package/dist/external-BByOkVID.cjs +0 -1
  248. package/dist/external-BrEnYrZV.js +0 -32
  249. package/dist/external-BwbypKCk.cjs +0 -1
  250. package/dist/external-C65vBow6.cjs +0 -1
  251. package/dist/external-CCcIJ20u.cjs +0 -1
  252. package/dist/external-CF4uh-dm.js +0 -51423
  253. package/dist/external-Cn6EfkLd.cjs +0 -1
  254. package/dist/external-CovFw1fv.cjs +0 -1
  255. package/dist/external-D2Zb9O5J.js +0 -93
  256. package/dist/external-D6aLGjMg.js +0 -8969
  257. package/dist/external-DDvmnE2k.js +0 -341
  258. package/dist/external-DTi9a-iK.cjs +0 -1
  259. package/dist/external-DYP1_xpd.js +0 -80
  260. package/dist/external-DxsuBuKe.js +0 -392
  261. package/dist/external-DysGdnTb.js +0 -130
  262. package/dist/external-N2L8ffzi.js +0 -71
  263. package/dist/external-UzXlHlr9.js +0 -24
  264. package/dist/external-_Ht_yCRf.cjs +0 -1
  265. package/dist/external-igNfmRSB.cjs +0 -28
  266. package/dist/external-uUEGzmui.cjs +0 -84
  267. package/dist/fontString-76R2eWDd.js +0 -29
  268. package/dist/fontString-BNnhiwug.cjs +0 -1
  269. package/dist/hooks-Co6IVYNw.cjs +0 -1
  270. package/dist/hooks-QNj6PdUo.js +0 -73
  271. package/dist/index.cjs +0 -60
  272. package/dist/index.js +0 -36886
  273. package/dist/jsx-runtime-nZSsnGb7.cjs +0 -6
  274. package/dist/jsx-runtime-tc70JA_2.js +0 -264
  275. package/dist/provider-Bt-E2O6g.js +0 -810
  276. package/dist/provider-DQkVj3tA.cjs +0 -10
  277. package/dist/src/memo/proxyMemo.d.ts +0 -3
  278. package/dist/src/memo/proxyMemo.d.ts.map +0 -1
  279. package/dist/types-CGRCBVD4.js +0 -82
  280. package/dist/types-DI2vtOGs.cjs +0 -1
  281. package/dist/units-Bu36uC6z.cjs +0 -1
  282. package/dist/units-DMip-eZH.js +0 -14
  283. package/dist/useStaticData-BTwIe0Il.cjs +0 -1
  284. package/dist/useStaticData-p8sk2VCJ.js +0 -1051
  285. package/dist/value-BkUH03tl.cjs +0 -53
  286. package/dist/value-D0vfKEY3.js +0 -6821
@@ -1,202 +0,0 @@
1
- import { j as x } from "./jsx-runtime-tc70JA_2.js";
2
- import { useCallback as y, useRef as l, useState as N, isValidElement as v, Children as C, useLayoutEffect as z } from "react";
3
- import "@synnaxlabs/x";
4
- import { C as i } from "./css-D90kZTM8.js";
5
- import { c as I, e as B } from "./types-CGRCBVD4.js";
6
- import { a as U } from "./Box-Bi280MYh.js";
7
- const le = (e) => {
8
- const t = l(I(e)), n = y((s) => {
9
- t.current = B(s, t.current);
10
- }, []);
11
- return [t, n];
12
- }, q = (e) => {
13
- const t = l(e);
14
- return t.current = e, t;
15
- }, ae = (e) => {
16
- const t = l(!1), n = l(null);
17
- return t.current || (n.current = e(), t.current = !0), n;
18
- }, W = (...e) => y(
19
- (t) => e.forEach((n) => {
20
- n != null && (typeof n == "function" ? n(t) : n.current = t);
21
- }, t),
22
- []
23
- ), fe = (e) => {
24
- const t = l(null), [n, s] = N(() => {
25
- const c = I(e);
26
- return t.current = c, c;
27
- }), o = y((c) => {
28
- s((a) => (t.current = B(c, a), t.current));
29
- }, []);
30
- return [n, o, t];
31
- }, Ee = (e) => {
32
- const t = l(void 0), n = t.current;
33
- return t.current = e, n;
34
- }, O = (e) => (
35
- // The hydrate props check lets us avoid considering Astro slots as valid react
36
- // elements.
37
- v(e) && !("hydrate" in e.props)
38
- ), D = "://", X = `https${D}`, G = (e, t = !1) => e == null ? e : t && !e.includes(D) ? X + e : e, Y = (e) => {
39
- if (C.count(e) !== 1) {
40
- const t = C.toArray(e).filter(
41
- (n) => typeof n != "boolean"
42
- );
43
- if (t.length !== 1) return !1;
44
- e = t[0];
45
- }
46
- return typeof e == "string" ? e.length === 1 : !!(O(e) && typeof e.props == "object" && e.props != null && !("children" in e.props) && !("role" in e.props));
47
- }, F = (e, t, n, s, o) => t ?? (o != null || s === "link" ? "a" : n ?? e ?? "p"), J = (e, t, n) => {
48
- const s = {
49
- ...e,
50
- fontWeight: t
51
- };
52
- return n != null && (s.WebkitLineClamp = n), s;
53
- }, L = ({
54
- level: e = "p",
55
- className: t,
56
- style: n,
57
- weight: s,
58
- defaultEl: o,
59
- el: c,
60
- variant: a,
61
- overflow: d,
62
- href: S,
63
- autoFormatHref: T,
64
- status: f,
65
- lineClamp: p,
66
- ...u
67
- }) => /* @__PURE__ */ x.jsx(
68
- U,
69
- {
70
- direction: "x",
71
- el: F(e, c, o, a, S),
72
- style: J(n, s, p),
73
- className: i(
74
- i.B("text"),
75
- a != null && i.BM("text", a),
76
- i.BM("text", e),
77
- d != null && i.BM("text", "overflow", d),
78
- p != null && i.BM("text", "line-clamp"),
79
- f != null && i.M("status", f),
80
- t
81
- ),
82
- square: Y(u.children),
83
- gap: "small",
84
- href: G(S, T),
85
- ...u
86
- }
87
- ), R = (e) => {
88
- e != null && (e.style.display = "none", e.offsetHeight, e.style.display = "");
89
- }, Q = ["Escape", "Enter"], w = i.BM("text", "editable"), Z = 10, k = "renamed", V = "escaped", j = "start-editing", ee = (e, t) => {
90
- let n = 0;
91
- const s = () => {
92
- n++;
93
- const o = document.querySelector(`#${CSS.escape(e)}.${w}`);
94
- if (o == null || !o.classList.contains(w)) {
95
- if (n < Z) setTimeout(() => s(), 100);
96
- else throw new Error(`Could not find element with id ${e}`);
97
- return;
98
- }
99
- o.dispatchEvent(new Event(j)), o.setAttribute("contenteditable", "true"), t != null && (o.addEventListener(
100
- k,
101
- (c) => t(g(c.target), !0)
102
- ), o.addEventListener(
103
- V,
104
- (c) => t(g(c.target), !1)
105
- ));
106
- };
107
- s();
108
- }, de = (e) => new Promise((t) => {
109
- ee(e, (s, o) => t([s, o]));
110
- }), g = (e) => e.innerText.trim(), te = (e, t) => e == null || t == null ? !1 : e.maxInlineSize === t.maxInlineSize, ne = ({
111
- onChange: e,
112
- value: t,
113
- className: n,
114
- useEditableState: s = N,
115
- allowDoubleClick: o = !0,
116
- onDoubleClick: c,
117
- allowEmpty: a = !1,
118
- style: d,
119
- outline: S = !0,
120
- ...T
121
- }) => {
122
- const [f, p] = s(!1), u = l(null), M = q(t), b = l(d), A = l(t);
123
- (b.current != null && !te(d, b.current) || t !== A.current) && (R(u.current), b.current = d, A.current = t);
124
- const h = (r) => {
125
- o && (p(!0), R(u.current)), c?.(r);
126
- }, _ = (r, m = !1) => {
127
- const E = g(r);
128
- M.current === E && (E.length > 0 || a) || (m || E.length === 0 && !a ? (r.innerText = t, r.dispatchEvent(new Event(V))) : (e?.(E), M.current = E, r.dispatchEvent(new Event(k))));
129
- }, H = (r) => {
130
- if (u.current == null || (R(u.current), !f || !Q.includes(r.key))) return;
131
- r.stopPropagation(), r.preventDefault();
132
- const m = u.current;
133
- u.current != null && (p(!1), _(m, r.key === "Escape"), m.blur());
134
- }, P = (r) => r.preventDefault();
135
- z(() => {
136
- if (u.current == null || !f) return;
137
- R(u.current);
138
- const { current: r } = u;
139
- r.focus();
140
- const m = document.createRange();
141
- m.selectNodeContents(r);
142
- const E = window.getSelection();
143
- E?.removeAllRanges(), E?.addRange(m);
144
- }, [f]), u.current !== null && !f && (u.current.innerHTML = t);
145
- const $ = y((r) => {
146
- r?.addEventListener(j, () => p(!0));
147
- }, []), K = W(u, $);
148
- return /* @__PURE__ */ x.jsx(
149
- L,
150
- {
151
- ref: K,
152
- className: i(
153
- n,
154
- i.BM("text", "editable"),
155
- S && i.M("outline")
156
- ),
157
- onBlur: () => {
158
- p(!1);
159
- const r = u.current;
160
- r != null && _(r);
161
- },
162
- onKeyDown: H,
163
- onKeyUp: P,
164
- onDoubleClick: h,
165
- contentEditable: f,
166
- suppressContentEditableWarning: !0,
167
- style: d,
168
- ...T,
169
- children: t
170
- }
171
- );
172
- }, pe = ({
173
- onChange: e,
174
- disabled: t = !1,
175
- value: n,
176
- allowDoubleClick: s,
177
- ...o
178
- }) => t || e == null || e === !1 ? /* @__PURE__ */ x.jsx(L, { ...o, children: n }) : (e === !0 && (e = () => {
179
- }), /* @__PURE__ */ x.jsx(
180
- ne,
181
- {
182
- allowDoubleClick: s,
183
- onChange: e,
184
- value: n,
185
- ...o
186
- }
187
- ));
188
- export {
189
- ne as E,
190
- pe as M,
191
- L as T,
192
- de as a,
193
- W as b,
194
- ae as c,
195
- q as d,
196
- ee as e,
197
- fe as f,
198
- Ee as g,
199
- Y as i,
200
- R as t,
201
- le as u
202
- };
@@ -1 +0,0 @@
1
- "use strict";const b=require("./jsx-runtime-nZSsnGb7.cjs"),c=require("react");require("@synnaxlabs/x");const l=require("./css-CloSmhZB.cjs"),m=require("./types-DI2vtOGs.cjs"),K=require("./Box-CNUz5BsV.cjs"),$=e=>{const t=c.useRef(m.executeInitialSetter(e)),n=c.useCallback(s=>{t.current=m.executeSetter(s,t.current)},[]);return[t,n]},I=e=>{const t=c.useRef(e);return t.current=e,t},U=e=>{const t=c.useRef(!1),n=c.useRef(null);return t.current||(n.current=e(),t.current=!0),n},N=(...e)=>c.useCallback(t=>e.forEach(n=>{n!=null&&(typeof n=="function"?n(t):n.current=t)},t),[]),W=e=>{const t=c.useRef(null),[n,s]=c.useState(()=>{const o=m.executeInitialSetter(e);return t.current=o,o}),u=c.useCallback(o=>{s(f=>(t.current=m.executeSetter(o,f),t.current))},[]);return[n,u,t]},O=e=>{const t=c.useRef(void 0),n=t.current;return t.current=e,n},X=e=>c.isValidElement(e)&&!("hydrate"in e.props),k="://",G=`https${k}`,Y=(e,t=!1)=>e==null?e:t&&!e.includes(k)?G+e:e,B=e=>{if(c.Children.count(e)!==1){const t=c.Children.toArray(e).filter(n=>typeof n!="boolean");if(t.length!==1)return!1;e=t[0]}return typeof e=="string"?e.length===1:!!(X(e)&&typeof e.props=="object"&&e.props!=null&&!("children"in e.props)&&!("role"in e.props))},F=(e,t,n,s,u)=>t??(u!=null||s==="link"?"a":n??e??"p"),J=(e,t,n)=>{const s={...e,fontWeight:t};return n!=null&&(s.WebkitLineClamp=n),s},g=({level:e="p",className:t,style:n,weight:s,defaultEl:u,el:o,variant:f,overflow:E,href:x,autoFormatHref:C,status:a,lineClamp:S,...i})=>b.jsxRuntimeExports.jsx(K.Box$1,{direction:"x",el:F(e,o,u,f,x),style:J(n,s,S),className:l.CSS(l.CSS.B("text"),f!=null&&l.CSS.BM("text",f),l.CSS.BM("text",e),E!=null&&l.CSS.BM("text","overflow",E),S!=null&&l.CSS.BM("text","line-clamp"),a!=null&&l.CSS.M("status",a),t),square:B(i.children),gap:"small",href:Y(x,C),...i}),R=e=>{e!=null&&(e.style.display="none",e.offsetHeight,e.style.display="")},Q=["Escape","Enter"],w=l.CSS.BM("text","editable"),Z=10,j="renamed",q="escaped",D="start-editing",L=(e,t)=>{let n=0;const s=()=>{n++;const u=document.querySelector(`#${CSS.escape(e)}.${w}`);if(u==null||!u.classList.contains(w)){if(n<Z)setTimeout(()=>s(),100);else throw new Error(`Could not find element with id ${e}`);return}u.dispatchEvent(new Event(D)),u.setAttribute("contenteditable","true"),t!=null&&(u.addEventListener(j,o=>t(T(o.target),!0)),u.addEventListener(q,o=>t(T(o.target),!1)))};s()},ee=e=>new Promise(t=>{L(e,(s,u)=>t([s,u]))}),T=e=>e.innerText.trim(),te=(e,t)=>e==null||t==null?!1:e.maxInlineSize===t.maxInlineSize,h=({onChange:e,value:t,className:n,useEditableState:s=c.useState,allowDoubleClick:u=!0,onDoubleClick:o,allowEmpty:f=!1,style:E,outline:x=!0,...C})=>{const[a,S]=s(!1),i=c.useRef(null),M=I(t),y=c.useRef(E),A=c.useRef(t);(y.current!=null&&!te(E,y.current)||t!==A.current)&&(R(i.current),y.current=E,A.current=t);const P=r=>{u&&(S(!0),R(i.current)),o?.(r)},_=(r,p=!1)=>{const d=T(r);M.current===d&&(d.length>0||f)||(p||d.length===0&&!f?(r.innerText=t,r.dispatchEvent(new Event(q))):(e?.(d),M.current=d,r.dispatchEvent(new Event(j))))},V=r=>{if(i.current==null||(R(i.current),!a||!Q.includes(r.key)))return;r.stopPropagation(),r.preventDefault();const p=i.current;i.current!=null&&(S(!1),_(p,r.key==="Escape"),p.blur())},H=r=>r.preventDefault();c.useLayoutEffect(()=>{if(i.current==null||!a)return;R(i.current);const{current:r}=i;r.focus();const p=document.createRange();p.selectNodeContents(r);const d=window.getSelection();d?.removeAllRanges(),d?.addRange(p)},[a]),i.current!==null&&!a&&(i.current.innerHTML=t);const v=c.useCallback(r=>{r?.addEventListener(D,()=>S(!0))},[]),z=N(i,v);return b.jsxRuntimeExports.jsx(g,{ref:z,className:l.CSS(n,l.CSS.BM("text","editable"),x&&l.CSS.M("outline")),onBlur:()=>{S(!1);const r=i.current;r!=null&&_(r)},onKeyDown:V,onKeyUp:H,onDoubleClick:P,contentEditable:a,suppressContentEditableWarning:!0,style:E,...C,children:t})},ne=({onChange:e,disabled:t=!1,value:n,allowDoubleClick:s,...u})=>t||e==null||e===!1?b.jsxRuntimeExports.jsx(g,{...u,children:n}):(e===!0&&(e=()=>{}),b.jsxRuntimeExports.jsx(h,{allowDoubleClick:s,onChange:e,value:n,...u}));exports.Editable=h;exports.MaybeEditable=ne;exports.Text=g;exports.asyncEdit=ee;exports.edit=L;exports.isSquare=B;exports.triggerReflow=R;exports.useCombinedRefs=N;exports.useCombinedStateAndRef=W;exports.useInitializerRef=U;exports.usePrevious=O;exports.useStateRef=$;exports.useSyncedRef=I;
@@ -1,132 +0,0 @@
1
- import { j as L } from "./jsx-runtime-tc70JA_2.js";
2
- import { record as P, xy as T } from "@synnaxlabs/x";
3
- import h, { memo as H, useRef as x, useCallback as i, useMemo as _, useId as O } from "react";
4
- import { z as d } from "zod";
5
- import { c as Z } from "./Text-2MISZsc5.js";
6
- const b = d.object({
7
- key: d.string().or(d.number()),
8
- type: d.string(),
9
- elementID: d.string().optional(),
10
- data: P.unknownZ.optional()
11
- }), w = d.object({ source: b, items: d.array(b) }), F = { key: "", type: "" }, p = { source: F, items: [] }, R = "file", G = { key: "file", type: R }, M = /* @__PURE__ */ new Set(["all", "copyLink"]), N = (t, e) => M.has(t.dataTransfer.effectAllowed) && e.items.length === 0, [Y, m] = Z({
12
- defaultValue: null,
13
- displayName: "Haul.Context"
14
- }), S = {
15
- ...p,
16
- onSuccessfulDrop: () => {
17
- }
18
- }, A = H(
19
- ({
20
- children: t,
21
- useState: e = h.useState,
22
- onDropOutside: n
23
- }) => {
24
- const o = m(), [l, r] = e(p), c = x(S), a = x(/* @__PURE__ */ new Set()), f = i(
25
- (s, u, D) => {
26
- c.current = { source: s, items: u, onSuccessfulDrop: D }, r({ source: s, items: u });
27
- },
28
- [r, n]
29
- ), g = i(
30
- ({ target: s, dropped: u }) => {
31
- const D = c.current.items;
32
- c.current.onSuccessfulDrop?.({ target: s, dropped: u, hauled: D }), c.current = S, r(p);
33
- },
34
- [r]
35
- ), y = i(
36
- (s) => {
37
- let u = null;
38
- a.current.forEach((D) => {
39
- u == null && (u = D(c.current, s));
40
- }), u != null && g(u), c.current = S, r(p);
41
- },
42
- [r]
43
- ), E = i((s) => (a.current.add(s), () => a.current.delete(s)), []), k = _(
44
- () => o ?? { state: l, start: f, end: y, drop: g, bind: E },
45
- [l, f, y, g, o]
46
- );
47
- return /* @__PURE__ */ L.jsx(Y, { value: k, children: t });
48
- }
49
- );
50
- A.displayName = "HaulProvider";
51
- const j = () => {
52
- const t = x(p), e = m();
53
- return e == null || (t.current = e.state), t;
54
- }, z = () => {
55
- const t = m();
56
- return t == null ? p : t.state;
57
- }, v = ({ type: t, key: e }) => {
58
- const n = e ?? O(), o = _(() => ({ key: n, type: t }), [n, t]), l = m();
59
- if (l == null) return { startDrag: () => {
60
- }, onDragEnd: () => {
61
- } };
62
- const { start: r, end: c } = l;
63
- return {
64
- startDrag: i((a, f) => r(o, a, f), [r, o]),
65
- onDragEnd: (a) => c(T.construct({ x: a.screenX, y: a.screenY }))
66
- };
67
- }, C = ({
68
- type: t,
69
- key: e,
70
- canDrop: n,
71
- onDrop: o,
72
- onDragOver: l
73
- }) => {
74
- const r = j(), c = m();
75
- if (c == null) return { onDragOver: () => {
76
- }, onDrop: () => {
77
- } };
78
- const { drop: a } = c, f = e ?? O(), g = _(() => ({ key: f, type: t }), [f, t]), y = x({ x: -1, y: -1 }), E = i(
79
- (s) => {
80
- s.preventDefault();
81
- const u = T.construct({ x: s.screenX, y: s.screenY });
82
- T.equals(u, y.current) || (y.current = u, n(r.current) && l?.({ event: s, ...r.current }));
83
- },
84
- [r, n]
85
- ), k = i(
86
- (s) => {
87
- n(r.current) && (s.preventDefault(), a({ target: g, dropped: o({ ...r.current, event: s }) }));
88
- },
89
- [r, o, n, a, g]
90
- );
91
- return { onDragOver: E, onDrop: k };
92
- }, B = ({
93
- type: t,
94
- key: e,
95
- ...n
96
- }) => {
97
- const o = e ?? O(), l = _(() => ({ key: o, type: t }), [o, t]), r = v(l), c = C({ ...n, ...l });
98
- return { ...r, ...c };
99
- }, X = (t) => ({ items: e }) => e.some((n) => n.type === t), I = (t, e) => e.filter((n) => n.type === t), q = (t, e, n) => i(
100
- (o) => e({ ...o, items: I(t, o.items) }),
101
- n
102
- ), Q = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
103
- __proto__: null,
104
- FILE: G,
105
- FILE_TYPE: R,
106
- Provider: A,
107
- ZERO_DRAGGING_STATE: p,
108
- ZERO_ITEM: F,
109
- canDropOfType: X,
110
- draggingStateZ: w,
111
- filterByType: I,
112
- isFileDrag: N,
113
- itemZ: b,
114
- useContext: m,
115
- useDrag: v,
116
- useDragAndDrop: B,
117
- useDraggingRef: j,
118
- useDraggingState: z,
119
- useDrop: C,
120
- useFilterByTypeCallback: q
121
- }, Symbol.toStringTag, { value: "Module" }));
122
- export {
123
- R as F,
124
- Q as H,
125
- A as P,
126
- B as a,
127
- q as b,
128
- C as c,
129
- X as d,
130
- I as f,
131
- z as u
132
- };
@@ -1 +0,0 @@
1
- "use strict";const P=require("./jsx-runtime-nZSsnGb7.cjs"),x=require("@synnaxlabs/x"),t=require("react"),f=require("zod"),j=require("./Text-XHBXXDRS.cjs"),T=f.z.object({key:f.z.string().or(f.z.number()),type:f.z.string(),elementID:f.z.string().optional(),data:x.record.unknownZ.optional()}),h=f.z.object({source:T,items:f.z.array(T)}),O={key:"",type:""},g={source:O,items:[]},_="file",q={key:"file",type:_},M=new Set(["all","copyLink"]),H=(e,r)=>M.has(e.dataTransfer.effectAllowed)&&r.items.length===0,[Z,y]=j.create({defaultValue:null,displayName:"Haul.Context"}),b={...g,onSuccessfulDrop:()=>{}},C=t.memo(({children:e,useState:r=t.useState,onDropOutside:s})=>{const c=y(),[i,n]=r(g),u=t.useRef(b),l=t.useRef(new Set),d=t.useCallback((o,a,k)=>{u.current={source:o,items:a,onSuccessfulDrop:k},n({source:o,items:a})},[n,s]),p=t.useCallback(({target:o,dropped:a})=>{const k=u.current.items;u.current.onSuccessfulDrop?.({target:o,dropped:a,hauled:k}),u.current=b,n(g)},[n]),D=t.useCallback(o=>{let a=null;l.current.forEach(k=>{a==null&&(a=k(u.current,o))}),a!=null&&p(a),u.current=b,n(g)},[n]),m=t.useCallback(o=>(l.current.add(o),()=>l.current.delete(o)),[]),E=t.useMemo(()=>c??{state:i,start:d,end:D,drop:p,bind:m},[i,d,D,p,c]);return P.jsxRuntimeExports.jsx(Z,{value:E,children:e})});C.displayName="HaulProvider";const F=()=>{const e=t.useRef(g),r=y();return r==null||(e.current=r.state),e},I=()=>{const e=y();return e==null?g:e.state},z=({type:e,key:r})=>{const s=r??t.useId(),c=t.useMemo(()=>({key:s,type:e}),[s,e]),i=y();if(i==null)return{startDrag:()=>{},onDragEnd:()=>{}};const{start:n,end:u}=i;return{startDrag:t.useCallback((l,d)=>n(c,l,d),[n,c]),onDragEnd:l=>u(x.xy.construct({x:l.screenX,y:l.screenY}))}},R=({type:e,key:r,canDrop:s,onDrop:c,onDragOver:i})=>{const n=F(),u=y();if(u==null)return{onDragOver:()=>{},onDrop:()=>{}};const{drop:l}=u,d=r??t.useId(),p=t.useMemo(()=>({key:d,type:e}),[d,e]),D=t.useRef({x:-1,y:-1}),m=t.useCallback(o=>{o.preventDefault();const a=x.xy.construct({x:o.screenX,y:o.screenY});x.xy.equals(a,D.current)||(D.current=a,s(n.current)&&i?.({event:o,...n.current}))},[n,s]),E=t.useCallback(o=>{s(n.current)&&(o.preventDefault(),l({target:p,dropped:c({...n.current,event:o})}))},[n,c,s,l,p]);return{onDragOver:m,onDrop:E}},A=({type:e,key:r,...s})=>{const c=r??t.useId(),i=t.useMemo(()=>({key:c,type:e}),[c,e]),n=z(i),u=R({...s,...i});return{...n,...u}},v=e=>({items:r})=>r.some(s=>s.type===e),S=(e,r)=>r.filter(s=>s.type===e),L=(e,r,s)=>t.useCallback(c=>r({...c,items:S(e,c.items)}),s),w=Object.freeze(Object.defineProperty({__proto__:null,FILE:q,FILE_TYPE:_,Provider:C,ZERO_DRAGGING_STATE:g,ZERO_ITEM:O,canDropOfType:v,draggingStateZ:h,filterByType:S,isFileDrag:H,itemZ:T,useContext:y,useDrag:z,useDragAndDrop:A,useDraggingRef:F,useDraggingState:I,useDrop:R,useFilterByTypeCallback:L},Symbol.toStringTag,{value:"Module"}));exports.FILE_TYPE=_;exports.Haul=w;exports.Provider=C;exports.canDropOfType=v;exports.filterByType=S;exports.useDragAndDrop=A;exports.useDraggingState=I;exports.useDrop=R;exports.useFilterByTypeCallback=L;
@@ -1,4 +0,0 @@
1
- "use strict";const E=require("./jsx-runtime-nZSsnGb7.cjs"),P=require("./Copy-BgRUUzWz.cjs"),U=require("@synnaxlabs/x"),b=require("./css-CloSmhZB.cjs"),D=require("./Animated-B_N04fe6.cjs"),d=require("react"),_=require("./Box-CNUz5BsV.cjs"),$=require("react-dom"),N=require("./Text-XHBXXDRS.cjs"),R=require("./Editable-HUPqTaui.cjs");require("./types-DI2vtOGs.cjs");require("./Provider-cSwm-2e_.cjs");function H(n){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const s=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(l,e,s.get?s:{enumerable:!0,get:()=>n[e]})}}return l.default=n,Object.freeze(l)}const y=H(d);function M(n,l,e){let s=e.initialDeps??[],t;function i(){var o,r,c,u;let a;e.key&&((o=e.debug)!=null&&o.call(e))&&(a=Date.now());const h=n();if(!(h.length!==s.length||h.some((m,g)=>s[g]!==m)))return t;s=h;let p;if(e.key&&((r=e.debug)!=null&&r.call(e))&&(p=Date.now()),t=l(...h),e.key&&((c=e.debug)!=null&&c.call(e))){const m=Math.round((Date.now()-a)*100)/100,g=Math.round((Date.now()-p)*100)/100,v=g/16,S=(x,C)=>{for(x=String(x);x.length<C;)x=" "+x;return x};console.info(`%c⏱ ${S(g,5)} /${S(m,5)} ms`,`
2
- font-size: .6rem;
3
- font-weight: bold;
4
- color: hsl(${Math.max(0,Math.min(120-120*v,120))}deg 100% 31%);`,e?.key)}return(u=e?.onChange)==null||u.call(e,t),t}return i.updateDeps=o=>{s=o},i}function T(n,l){if(n===void 0)throw new Error("Unexpected undefined");return n}const K=(n,l)=>Math.abs(n-l)<1,G=(n,l,e)=>{let s;return function(...t){n.clearTimeout(s),s=n.setTimeout(()=>l.apply(this,t),e)}},X=n=>n,Y=n=>{const l=Math.max(n.startIndex-n.overscan,0),e=Math.min(n.endIndex+n.overscan,n.count-1),s=[];for(let t=l;t<=e;t++)s.push(t);return s},J=(n,l)=>{const e=n.scrollElement;if(!e)return;const s=n.targetWindow;if(!s)return;const t=o=>{const{width:r,height:c}=o;l({width:Math.round(r),height:Math.round(c)})};if(t(e.getBoundingClientRect()),!s.ResizeObserver)return()=>{};const i=new s.ResizeObserver(o=>{const r=()=>{const c=o[0];if(c?.borderBoxSize){const u=c.borderBoxSize[0];if(u){t({width:u.inlineSize,height:u.blockSize});return}}t(e.getBoundingClientRect())};n.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return i.observe(e,{box:"border-box"}),()=>{i.unobserve(e)}},j={passive:!0},F=typeof window>"u"?!0:"onscrollend"in window,Q=(n,l)=>{const e=n.scrollElement;if(!e)return;const s=n.targetWindow;if(!s)return;let t=0;const i=n.options.useScrollendEvent&&F?()=>{}:G(s,()=>{l(t,!1)},n.options.isScrollingResetDelay),o=a=>()=>{const{horizontal:h,isRtl:f}=n.options;t=h?e.scrollLeft*(f&&-1||1):e.scrollTop,i(),l(t,a)},r=o(!0),c=o(!1);c(),e.addEventListener("scroll",r,j);const u=n.options.useScrollendEvent&&F;return u&&e.addEventListener("scrollend",c,j),()=>{e.removeEventListener("scroll",r),u&&e.removeEventListener("scrollend",c)}},Z=(n,l,e)=>{if(l?.borderBoxSize){const s=l.borderBoxSize[0];if(s)return Math.round(s[e.options.horizontal?"inlineSize":"blockSize"])}return Math.round(n.getBoundingClientRect()[e.options.horizontal?"width":"height"])},ee=(n,{adjustments:l=0,behavior:e},s)=>{var t,i;const o=n+l;(i=(t=s.scrollElement)==null?void 0:t.scrollTo)==null||i.call(t,{[s.options.horizontal?"left":"top"]:o,behavior:e})};class te{constructor(l){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const s=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(t=>{t.forEach(i=>{const o=()=>{this._measureElement(i.target,i)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var t;(t=s())==null||t.disconnect(),e=null},observe:t=>{var i;return(i=s())==null?void 0:i.observe(t,{box:"border-box"})},unobserve:t=>{var i;return(i=s())==null?void 0:i.unobserve(t)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([s,t])=>{typeof t>"u"&&delete e[s]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:X,rangeExtractor:Y,onChange:()=>{},measureElement:Z,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var s,t;(t=(s=this.options).onChange)==null||t.call(s,this,e)},this.maybeNotify=M(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:process.env.NODE_ENV!=="production"&&"maybeNotify",debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s){this.maybeNotify();return}this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(t=>{this.observer.observe(t)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,t=>{this.scrollRect=t,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(t,i)=>{this.scrollAdjustments=0,this.scrollDirection=i?this.getScrollOffset()<t?"forward":"backward":null,this.scrollOffset=t,this.isScrolling=i,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,s)=>{const t=new Map,i=new Map;for(let o=s-1;o>=0;o--){const r=e[o];if(t.has(r.lane))continue;const c=i.get(r.lane);if(c==null||r.end>c.end?i.set(r.lane,r):r.end<c.end&&t.set(r.lane,!0),t.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort((o,r)=>o.end===r.end?o.index-r.index:o.end-r.end)[0]:void 0},this.getMeasurementOptions=M(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,s,t,i,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:s,scrollMargin:t,getItemKey:i,enabled:o}),{key:!1}),this.getMeasurements=M(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:s,scrollMargin:t,getItemKey:i,enabled:o},r)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(a=>{this.itemSizeCache.set(a.key,a.size)}));const c=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const u=this.measurementsCache.slice(0,c);for(let a=c;a<e;a++){const h=i(a),f=this.options.lanes===1?u[a-1]:this.getFurthestMeasurement(u,a),p=f?f.end+this.options.gap:s+t,m=r.get(h),g=typeof m=="number"?m:this.options.estimateSize(a),v=p+g,S=f?f.lane:a%this.options.lanes;u[a]={index:a,start:p,size:g,end:v,key:h,lane:S}}return this.measurementsCache=u,u},{key:process.env.NODE_ENV!=="production"&&"getMeasurements",debug:()=>this.options.debug}),this.calculateRange=M(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,s,t,i)=>this.range=e.length>0&&s>0?se({measurements:e,outerSize:s,scrollOffset:t,lanes:i}):null,{key:process.env.NODE_ENV!=="production"&&"calculateRange",debug:()=>this.options.debug}),this.getVirtualIndexes=M(()=>{let e=null,s=null;const t=this.calculateRange();return t&&(e=t.startIndex,s=t.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,s]},(e,s,t,i,o)=>i===null||o===null?[]:e({startIndex:i,endIndex:o,overscan:s,count:t}),{key:process.env.NODE_ENV!=="production"&&"getVirtualIndexes",debug:()=>this.options.debug}),this.indexFromElement=e=>{const s=this.options.indexAttribute,t=e.getAttribute(s);return t?parseInt(t,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this._measureElement=(e,s)=>{const t=this.indexFromElement(e),i=this.measurementsCache[t];if(!i)return;const o=i.key,r=this.elementsCache.get(o);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(t,this.options.measureElement(e,s,this))},this.resizeItem=(e,s)=>{const t=this.measurementsCache[e];if(!t)return;const i=this.itemSizeCache.get(t.key)??t.size,o=s-i;o!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(t,o,this):t.start<this.getScrollOffset()+this.scrollAdjustments)&&(process.env.NODE_ENV!=="production"&&this.options.debug&&console.info("correction",o),this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=o,behavior:void 0})),this.pendingMeasuredCacheIndexes.push(t.index),this.itemSizeCache=new Map(this.itemSizeCache.set(t.key,s)),this.notify(!1))},this.measureElement=e=>{if(!e){this.elementsCache.forEach((s,t)=>{s.isConnected||(this.observer.unobserve(s),this.elementsCache.delete(t))});return}this._measureElement(e,void 0)},this.getVirtualItems=M(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,s)=>{const t=[];for(let i=0,o=e.length;i<o;i++){const r=e[i],c=s[r];t.push(c)}return t},{key:process.env.NODE_ENV!=="production"&&"getVirtualItems",debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const s=this.getMeasurements();if(s.length!==0)return T(s[A(0,s.length-1,t=>T(s[t]).start,e)])},this.getOffsetForAlignment=(e,s,t=0)=>{const i=this.getSize(),o=this.getScrollOffset();s==="auto"&&(s=e>=o+i?"end":"start"),s==="center"?e+=(t-i)/2:s==="end"&&(e-=i);const r=this.options.horizontal?"scrollWidth":"scrollHeight",u=(this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[r]:this.scrollElement[r]:0)-i;return Math.max(Math.min(u,e),0)},this.getOffsetForIndex=(e,s="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const t=this.measurementsCache[e];if(!t)return;const i=this.getSize(),o=this.getScrollOffset();if(s==="auto")if(t.end>=o+i-this.options.scrollPaddingEnd)s="end";else if(t.start<=o+this.options.scrollPaddingStart)s="start";else return[o,s];const r=s==="end"?t.end+this.options.scrollPaddingEnd:t.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(r,s,t.size),s]},this.isDynamicMode=()=>this.elementsCache.size>0,this.cancelScrollToIndex=()=>{this.scrollToIndexTimeoutId!==null&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=(e,{align:s="start",behavior:t}={})=>{this.cancelScrollToIndex(),t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,s),{adjustments:void 0,behavior:t})},this.scrollToIndex=(e,{align:s="auto",behavior:t}={})=>{e=Math.max(0,Math.min(e,this.options.count-1)),this.cancelScrollToIndex(),t==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");const i=this.getOffsetForIndex(e,s);if(!i)return;const[o,r]=i;this._scrollToOffset(o,{adjustments:void 0,behavior:t}),t!=="smooth"&&this.isDynamicMode()&&this.targetWindow&&(this.scrollToIndexTimeoutId=this.targetWindow.setTimeout(()=>{if(this.scrollToIndexTimeoutId=null,this.elementsCache.has(this.options.getItemKey(e))){const[u]=T(this.getOffsetForIndex(e,r));K(u,this.getScrollOffset())||this.scrollToIndex(e,{align:r,behavior:t})}else this.scrollToIndex(e,{align:r,behavior:t})}))},this.scrollBy=(e,{behavior:s}={})=>{this.cancelScrollToIndex(),s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:s})},this.getTotalSize=()=>{var e;const s=this.getMeasurements();let t;if(s.length===0)t=this.options.paddingStart;else if(this.options.lanes===1)t=((e=s[s.length-1])==null?void 0:e.end)??0;else{const i=Array(this.options.lanes).fill(null);let o=s.length-1;for(;o>=0&&i.some(r=>r===null);){const r=s[o];i[r.lane]===null&&(i[r.lane]=r.end),o--}t=Math.max(...i.filter(r=>r!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:s,behavior:t})=>{this.options.scrollToFn(e,{behavior:t,adjustments:s},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(l)}}const A=(n,l,e,s)=>{for(;n<=l;){const t=(n+l)/2|0,i=e(t);if(i<s)n=t+1;else if(i>s)l=t-1;else return t}return n>0?n-1:0};function se({measurements:n,outerSize:l,scrollOffset:e,lanes:s}){const t=n.length-1,i=c=>n[c].start;if(n.length<=s)return{startIndex:0,endIndex:t};let o=A(0,t,i,e),r=o;if(s===1)for(;r<t&&n[r].end<e+l;)r++;else if(s>1){const c=Array(s).fill(0);for(;r<t&&c.some(a=>a<e+l);){const a=n[r];c[a.lane]=a.end,r++}const u=Array(s).fill(e+l);for(;o>=0&&u.some(a=>a>=e);){const a=n[o];u[a.lane]=a.start,o--}o=Math.max(0,o-o%s),r=Math.min(t,r+(s-1-r%s))}return{startIndex:o,endIndex:r}}const k=typeof document<"u"?y.useLayoutEffect:y.useEffect;function ne(n){const l=y.useReducer(()=>({}),{})[1],e={...n,onChange:(t,i)=>{var o;i?$.flushSync(l):l(),(o=n.onChange)==null||o.call(n,t,i)}},[s]=y.useState(()=>new te(e));return s.setOptions(e),k(()=>s._didMount(),[]),k(()=>s._willUpdate()),s}function ie(n){return ne({observeElementRect:J,observeElementOffset:Q,scrollToFn:ee,...n})}const oe=(n,l)=>(e=>Array.isArray(e)?l(e):n(e)),[V,re]=N.create({displayName:"List.DataContext",providerName:"List.Frame"}),[L,z]=N.create({displayName:"List.UtilContext",providerName:"List.Frame"}),le=()=>z("List.useUtilContext"),ce=()=>{const{scrollToIndex:n}=z("List.useScroller");return d.useMemo(()=>({scrollToIndex:n}),[n])},ae=n=>{const{getItem:l,subscribe:e}=z("List.useItem");return d.useSyncExternalStore(d.useCallback(s=>e==null?()=>{}:e(s,n),[n,e]),d.useCallback(()=>l?.(n),[l,n]),()=>{})},B=()=>{const{data:n,getItems:l,getTotalSize:e,itemHeight:s,sentinelRef:t}=re("List.useData"),{ref:i,getItem:o,scrollToIndex:r,subscribe:c}=z("List.useData");return d.useMemo(()=>({data:n,getItems:l,getTotalSize:e,ref:i,getItem:o,scrollToIndex:r,subscribe:c,itemHeight:s,sentinelRef:t}),[n,l,e,i,o,r,c,s,t])},W=(n,l,e)=>{const s=R.useSyncedRef(e),{visible:t}=D.useContext(),i=d.useRef(!1);return d.useCallback(o=>{n.current=o,!(n.current==null||i.current)&&(i.current=!0,s.current?.())},[s,t,l])},ue=100,he=(n,l)=>{const e=R.useSyncedRef(n),s=d.useRef(!1),t=d.useRef(null),i=d.useRef(null),o=d.useRef(null),r=R.usePrevious(l);r!==void 0&&l!==r&&(s.current=!1);const c=d.useCallback(()=>{t.current?.disconnect(),t.current=null;const h=i.current,f=o.current;h==null||f==null||(t.current=new IntersectionObserver(p=>{p[0].isIntersecting&&!s.current&&(s.current=!0,e.current?.())},{root:h,rootMargin:`0px 0px ${ue}px 0px`,threshold:0}),t.current.observe(f))},[e]),u=d.useCallback(h=>{i.current=h,c()},[c]),a=d.useCallback(h=>{o.current=h,c()},[c]);return{containerRef:u,sentinelRef:a}},de=({data:n,getItem:l,subscribe:e,children:s,onFetchMore:t,overscan:i=10,itemHeight:o=36})=>{const r=d.useRef(null),c=n.length>0,u=W(r,c,t),a=ie({count:n.length,getScrollElement:()=>r.current,estimateSize:()=>o,overscan:i,onChange:d.useCallback(m=>{const g=m.getVirtualItems();g.length>0&&g[g.length-1].index===n.length-1&&t?.()},[n.length,t])}),h=a.getVirtualItems(),f=d.useMemo(()=>({ref:u,getItem:l,data:n,subscribe:e,getTotalSize:()=>a.getTotalSize(),getItems:()=>h.map(({index:m,start:g})=>({key:n[m],index:m,translate:g})),itemHeight:o}),[u,a,n,l,o,h]),p=d.useMemo(()=>({ref:u,getItem:l,scrollToIndex:m=>a.scrollToIndex(m),subscribe:e}),[u,a,l,e]);return E.jsxRuntimeExports.jsx(V,{value:f,children:E.jsxRuntimeExports.jsx(L,{value:p,children:s})})},fe=({data:n,getItem:l,subscribe:e,children:s,onFetchMore:t,itemHeight:i})=>{const o=d.useRef(null),r=n.length>0,c=d.useCallback((v,S)=>{const x=o.current?.children[0];if(x==null)return;const C=S==="top"?1:-1;let I;const w=v+C;U.bounds.contains({lower:0,upper:x.children.length},w)?I=v+C:I=v;const O=x.children[I];O?.scrollIntoView({block:"nearest",inline:"nearest",behavior:"smooth"})},[]),u=W(o,r,t),{containerRef:a,sentinelRef:h}=he(t,n.length),f=R.useCombinedRefs(u,a),p=d.useMemo(()=>n.map((v,S)=>({key:v,index:S})),[n]),m=d.useMemo(()=>({ref:f,getItem:l,data:n,subscribe:e,getTotalSize:()=>{},getItems:()=>p,itemHeight:i,sentinelRef:h}),[f,n,l,e,i,h,p]),g=d.useMemo(()=>({ref:f,getItem:l,scrollToIndex:c,subscribe:e}),[f,l,e,c]);return E.jsxRuntimeExports.jsx(V,{value:m,children:E.jsxRuntimeExports.jsx(L,{value:g,children:s})})},q=({virtual:n=!1,...l})=>n?E.jsxRuntimeExports.jsx(de,{...l}):E.jsxRuntimeExports.jsx(fe,{...l}),me=d.memo(q),ge=({itemKey:n,className:l,index:e,el:s,draggingOver:t=!1,rightAligned:i=!1,highlightHovered:o=!1,selected:r=!1,translate:c,onSelect:u,onClick:a,hovered:h,style:f,...p})=>E.jsxRuntimeExports.jsx(P.Button,{el:s,defaultEl:"div",id:n.toString(),variant:"text",onClick:m=>{u?.(n),a?.(m)},className:b.CSS(l,D.CONTEXT_TARGET,r&&D.CONTEXT_SELECTED,h&&b.CSS.M("hovered"),i&&b.CSS.M("right-aligned"),o&&b.CSS.M("highlight-hover"),t&&b.CSS.M("dragging-over"),b.CSS.BE("list","item"),b.CSS.selected(r)),style:{position:c!=null?"absolute":"relative",transform:`translateY(${c}px)`,...f},square:!1,...p}),pe=({className:n,children:l,emptyContent:e,displayItems:s,style:t,direction:i,x:o,y:r,...c})=>{const{ref:u,getItems:a,getTotalSize:h,data:f,itemHeight:p,sentinelRef:m}=B(),g=a();let v=e;const S=f.length>0;S&&(v=E.jsxRuntimeExports.jsxs("div",{className:b.CSS.BE("list","virtualizer"),style:{minHeight:h()},children:[g.map(({key:I,index:w,translate:O})=>l({key:I,index:w,itemKey:I,translate:O})),m!=null&&E.jsxRuntimeExports.jsx("div",{ref:m,className:b.CSS.BE("list","sentinel"),"aria-hidden":"true"})]}));let x;p!=null&&s!=null&&isFinite(s)&&S&&(x=Math.min(s,g.length)*p+1);const C=_.parseDirection(i,o,r);return E.jsxRuntimeExports.jsx(_.Box$1,{gap:0,ref:u,className:b.CSS(n,b.CSS.BE("list","items"),!S&&b.CSS.BEM("list","items","empty")),style:{height:x,...t},full:C,direction:C,...c,children:v})},xe=d.memo(pe);exports.BaseFrame=q;exports.Frame=me;exports.Item=ge;exports.Items=xe;exports.createGetItem=oe;exports.useData=B;exports.useItem=ae;exports.useScroller=ce;exports.useUtilContext=le;