@synnaxlabs/pluto 0.50.1 → 0.52.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/dist/{Animated-C4xrEVd-.js → Animated-6qL1fRZx.js} +61 -60
  2. package/dist/Animated-Bn4jMc7c.js +29 -0
  3. package/dist/Animated-vGAs0qOH.cjs +1 -0
  4. package/dist/Animated-xK__WUQp.cjs +1 -0
  5. package/dist/{Box-DLO7l9hM.js → Box-Bi280MYh.js} +28 -27
  6. package/dist/Box-CNUz5BsV.cjs +1 -0
  7. package/dist/Copy-CzkBKGca.js +337 -0
  8. package/dist/Copy-DuC8dTK7.cjs +1 -0
  9. package/dist/Dialog-DNrgykEv.cjs +1 -0
  10. package/dist/{Dialog-BspO7uo8.js → Dialog-Dos5l3K2.js} +13 -12
  11. package/dist/{Editable-DjQORuR1.js → Editable-4ZwvICC4.js} +46 -45
  12. package/dist/Editable-HUPqTaui.cjs +1 -0
  13. package/dist/{Haul-DBy-2ds_.js → Haul-CxbMtSY4.js} +18 -18
  14. package/dist/Haul-V5NQI3MY.cjs +1 -0
  15. package/dist/{Items-CX11yLMf.js → Items-CNPUoiob.js} +22 -21
  16. package/dist/Items-DYYNNIjr.cjs +4 -0
  17. package/dist/Menu-C0scum-k.cjs +1 -0
  18. package/dist/{Menu-GBo3ayoP.js → Menu-CTuOX5DR.js} +42 -41
  19. package/dist/Provider-DSMJjyuY.cjs +1 -0
  20. package/dist/{Provider-BkxUzTWS.js → Provider-ZIy-UlnE.js} +95 -93
  21. package/dist/Tags-6OV0_eBz.cjs +1 -0
  22. package/dist/{Tags-V7sNuGZv.js → Tags-BUDnOqms.js} +223 -222
  23. package/dist/{Text-XeD58Fq8.js → Text-BSTMZRuo.js} +717 -675
  24. package/dist/Text-C2_VsLzw.cjs +1 -0
  25. package/dist/Video-Bew5_j16.js +10 -0
  26. package/dist/Video-BryrVNlH.cjs +1 -0
  27. package/dist/button.cjs +1 -1
  28. package/dist/button.js +1 -1
  29. package/dist/color.cjs +1 -1
  30. package/dist/color.js +1 -1
  31. package/dist/css-CloSmhZB.cjs +1 -0
  32. package/dist/css-D90kZTM8.js +63 -0
  33. package/dist/css.cjs +1 -1
  34. package/dist/css.js +2 -2
  35. package/dist/dialog.cjs +1 -1
  36. package/dist/dialog.js +1 -1
  37. package/dist/dimensions-CdFEW3oU.cjs +1 -0
  38. package/dist/{dimensions-qj2CkPTy.js → dimensions-DbMN4145.js} +8 -8
  39. package/dist/{eraser-DuAfpO0P.js → eraser-BShvqlBE.js} +52 -49
  40. package/dist/eraser-rFMFKqsg.cjs +11 -0
  41. package/dist/eslint.config.d.ts +2 -2
  42. package/dist/eslint.config.d.ts.map +1 -1
  43. package/dist/ether.cjs +1 -1
  44. package/dist/ether.js +65 -62
  45. package/dist/external--liXQuyF.cjs +1 -0
  46. package/dist/external-B3ipr7m2.cjs +1 -0
  47. package/dist/{external-Ct1k30Nd.js → external-B7UnU0MW.js} +27 -26
  48. package/dist/{external-PXU0gc_j.cjs → external-BRxBwBtj.cjs} +44 -44
  49. package/dist/{external-MvcifV4O.js → external-Ba2qQp_c.js} +3 -3
  50. package/dist/{external-g_vt4Lku.js → external-Bjd-DyWx.js} +22 -30
  51. package/dist/{external-B3o5P8Yw.cjs → external-BwbypKCk.cjs} +1 -1
  52. package/dist/external-C0rrTDhu.cjs +1 -0
  53. package/dist/{external-Dp5OkGYV.js → external-CG70NZqY.js} +97 -96
  54. package/dist/external-Ci1Iy9ku.js +32 -0
  55. package/dist/external-CmYpRWry.cjs +1 -0
  56. package/dist/{external-B-JsNciM.js → external-CoCI_tg5.js} +9 -8
  57. package/dist/{external-CLQdSLv0.js → external-Ctnukdzx.js} +10 -9
  58. package/dist/{external-DXWEyk9d.js → external-CvYxFUrc.js} +17 -17
  59. package/dist/{external-DNbIzfVy.js → external-Czkrdv2A.js} +55 -54
  60. package/dist/external-Czv2P05t.cjs +1 -0
  61. package/dist/{external-DxmgAHkn.js → external-DAotNquC.js} +3 -3
  62. package/dist/external-DFvPOUIQ.cjs +1 -0
  63. package/dist/{external-DojNoICL.cjs → external-DWEpl5aM.cjs} +1 -1
  64. package/dist/{external-xfkS0zGI.js → external-JwicH0Yv.js} +18 -17
  65. package/dist/external-N5bKB8Zx.cjs +1 -0
  66. package/dist/external-ZtJmVgiY.cjs +1 -0
  67. package/dist/external-ieDANY3X.cjs +28 -0
  68. package/dist/{external-sYHm9OG8.js → external-s6DOSL29.js} +16 -15
  69. package/dist/flex.cjs +1 -1
  70. package/dist/flex.js +1 -1
  71. package/dist/{fontString-CSWLcJcC.js → fontString-76R2eWDd.js} +3 -3
  72. package/dist/fontString-BNnhiwug.cjs +1 -0
  73. package/dist/header.cjs +1 -1
  74. package/dist/header.js +1 -1
  75. package/dist/hooks-C4ji1BSZ.cjs +1 -0
  76. package/dist/{hooks-BeSuo_di.js → hooks-CWEfATTF.js} +16 -16
  77. package/dist/index.cjs +35 -18
  78. package/dist/index.js +15379 -14087
  79. package/dist/input.cjs +1 -1
  80. package/dist/input.js +1 -1
  81. package/dist/{jsx-runtime-BbD0H88J.js → jsx-runtime-tc70JA_2.js} +2 -2
  82. package/dist/list.cjs +1 -1
  83. package/dist/list.js +1 -1
  84. package/dist/menu.cjs +1 -1
  85. package/dist/menu.js +1 -1
  86. package/dist/pluto.css +1 -1
  87. package/dist/provider-Bt-E2O6g.js +810 -0
  88. package/dist/provider-DQkVj3tA.cjs +10 -0
  89. package/dist/src/access/policy/queries.d.ts +6 -6
  90. package/dist/src/button/Copy.d.ts +28 -0
  91. package/dist/src/button/Copy.d.ts.map +1 -0
  92. package/dist/src/button/Copy.spec.d.ts +2 -0
  93. package/dist/src/button/Copy.spec.d.ts.map +1 -0
  94. package/dist/src/button/external.d.ts +1 -0
  95. package/dist/src/button/external.d.ts.map +1 -1
  96. package/dist/src/channel/queries.d.ts +1 -1
  97. package/dist/src/channel/queries.d.ts.map +1 -1
  98. package/dist/src/color/Provider.d.ts +11 -1
  99. package/dist/src/color/Provider.d.ts.map +1 -1
  100. package/dist/src/device/queries.d.ts +122 -72
  101. package/dist/src/device/queries.d.ts.map +1 -1
  102. package/dist/src/errors/Fallback.d.ts.map +1 -1
  103. package/dist/src/flux/base/store.d.ts +2 -2
  104. package/dist/src/flux/base/store.d.ts.map +1 -1
  105. package/dist/src/flux/retrieve.d.ts +1 -1
  106. package/dist/src/flux/retrieve.d.ts.map +1 -1
  107. package/dist/src/icon/EtherCAT.d.ts +2 -0
  108. package/dist/src/icon/EtherCAT.d.ts.map +1 -0
  109. package/dist/src/icon/registry.d.ts +3 -0
  110. package/dist/src/icon/registry.d.ts.map +1 -1
  111. package/dist/src/index.d.ts +2 -0
  112. package/dist/src/index.d.ts.map +1 -1
  113. package/dist/src/input/Numeric.d.ts.map +1 -1
  114. package/dist/src/json/SelectType.d.ts +8 -0
  115. package/dist/src/json/SelectType.d.ts.map +1 -0
  116. package/dist/src/json/external.d.ts +3 -0
  117. package/dist/src/json/external.d.ts.map +1 -0
  118. package/dist/src/json/index.d.ts +2 -0
  119. package/dist/src/json/index.d.ts.map +1 -0
  120. package/dist/src/json/primitive.d.ts +7 -0
  121. package/dist/src/json/primitive.d.ts.map +1 -0
  122. package/dist/src/json/primitive.spec.d.ts +2 -0
  123. package/dist/src/json/primitive.spec.d.ts.map +1 -0
  124. package/dist/src/label/queries.d.ts +30 -2
  125. package/dist/src/label/queries.d.ts.map +1 -1
  126. package/dist/src/lineplot/aether/XAxis.d.ts +40 -0
  127. package/dist/src/lineplot/aether/XAxis.d.ts.map +1 -1
  128. package/dist/src/lineplot/aether/YAxis.d.ts +40 -0
  129. package/dist/src/lineplot/aether/YAxis.d.ts.map +1 -1
  130. package/dist/src/lineplot/aether/axis.d.ts +20 -0
  131. package/dist/src/lineplot/aether/axis.d.ts.map +1 -1
  132. package/dist/src/lineplot/range/aether/provider.d.ts +90 -6
  133. package/dist/src/lineplot/range/aether/provider.d.ts.map +1 -1
  134. package/dist/src/lineplot/tooltip/aether/tooltip.d.ts +80 -0
  135. package/dist/src/lineplot/tooltip/aether/tooltip.d.ts.map +1 -1
  136. package/dist/src/log/aether/Log.d.ts +30 -0
  137. package/dist/src/log/aether/Log.d.ts.map +1 -1
  138. package/dist/src/pluto/aether/pluto.d.ts.map +1 -1
  139. package/dist/src/ranger/queries.d.ts +33 -5
  140. package/dist/src/ranger/queries.d.ts.map +1 -1
  141. package/dist/src/schematic/symbol/Forms.d.ts +2 -0
  142. package/dist/src/schematic/symbol/Forms.d.ts.map +1 -1
  143. package/dist/src/schematic/symbol/Primitives.d.ts +23 -0
  144. package/dist/src/schematic/symbol/Primitives.d.ts.map +1 -1
  145. package/dist/src/schematic/symbol/Symbols.d.ts +14 -0
  146. package/dist/src/schematic/symbol/Symbols.d.ts.map +1 -1
  147. package/dist/src/schematic/symbol/queries.d.ts +6 -6
  148. package/dist/src/schematic/symbol/registry.d.ts +2 -0
  149. package/dist/src/schematic/symbol/registry.d.ts.map +1 -1
  150. package/dist/src/status/aether/errorHandler.d.ts.map +1 -1
  151. package/dist/src/status/queries.d.ts +3 -2
  152. package/dist/src/status/queries.d.ts.map +1 -1
  153. package/dist/src/table/cells/Cells.d.ts +20 -0
  154. package/dist/src/table/cells/Cells.d.ts.map +1 -1
  155. package/dist/src/telem/aether/static.d.ts +10 -0
  156. package/dist/src/telem/aether/static.d.ts.map +1 -1
  157. package/dist/src/telem/aether/transformers.d.ts +15 -0
  158. package/dist/src/telem/aether/transformers.d.ts.map +1 -1
  159. package/dist/src/telem/control/Controller.d.ts +1 -0
  160. package/dist/src/telem/control/Controller.d.ts.map +1 -1
  161. package/dist/src/telem/control/Legend.d.ts +4 -2
  162. package/dist/src/telem/control/Legend.d.ts.map +1 -1
  163. package/dist/src/telem/control/aether/controller.d.ts +10 -0
  164. package/dist/src/telem/control/aether/controller.d.ts.map +1 -1
  165. package/dist/src/telem/control/aether/indicator.d.ts +50 -0
  166. package/dist/src/telem/control/aether/indicator.d.ts.map +1 -1
  167. package/dist/src/telem/control/aether/legend.d.ts +22 -0
  168. package/dist/src/telem/control/aether/legend.d.ts.map +1 -1
  169. package/dist/src/telem/control/aether/state.d.ts +13 -0
  170. package/dist/src/telem/control/aether/state.d.ts.map +1 -1
  171. package/dist/src/theming/aether/provider.d.ts +1413 -3
  172. package/dist/src/theming/aether/provider.d.ts.map +1 -1
  173. package/dist/src/theming/base/theme.d.ts +941 -1
  174. package/dist/src/theming/base/theme.d.ts.map +1 -1
  175. package/dist/src/user/queries.d.ts +1 -1
  176. package/dist/src/vis/axis/axis.d.ts +20 -0
  177. package/dist/src/vis/axis/axis.d.ts.map +1 -1
  178. package/dist/src/vis/gauge/aether/gauge.d.ts +30 -0
  179. package/dist/src/vis/gauge/aether/gauge.d.ts.map +1 -1
  180. package/dist/src/vis/gauge/use.d.ts +10 -0
  181. package/dist/src/vis/gauge/use.d.ts.map +1 -1
  182. package/dist/src/vis/line/aether/line.d.ts +10 -0
  183. package/dist/src/vis/line/aether/line.d.ts.map +1 -1
  184. package/dist/src/vis/measure/aether/measure.d.ts +80 -0
  185. package/dist/src/vis/measure/aether/measure.d.ts.map +1 -1
  186. package/dist/src/vis/rule/aether/aether.d.ts +20 -0
  187. package/dist/src/vis/rule/aether/aether.d.ts.map +1 -1
  188. package/dist/src/vis/stateIndicator/aether/index.d.ts +2 -0
  189. package/dist/src/vis/stateIndicator/aether/index.d.ts.map +1 -0
  190. package/dist/src/vis/stateIndicator/aether/stateIndicator.d.ts +48 -0
  191. package/dist/src/vis/stateIndicator/aether/stateIndicator.d.ts.map +1 -0
  192. package/dist/src/vis/stateIndicator/index.d.ts +2 -0
  193. package/dist/src/vis/stateIndicator/index.d.ts.map +1 -0
  194. package/dist/src/vis/stateIndicator/use.d.ts +9 -0
  195. package/dist/src/vis/stateIndicator/use.d.ts.map +1 -0
  196. package/dist/src/vis/value/aether/value.d.ts +60 -0
  197. package/dist/src/vis/value/aether/value.d.ts.map +1 -1
  198. package/dist/src/vis/value/redline.d.ts +5 -0
  199. package/dist/src/vis/value/redline.d.ts.map +1 -1
  200. package/dist/src/vis/value/use.d.ts +20 -0
  201. package/dist/src/vis/value/use.d.ts.map +1 -1
  202. package/dist/src/workspace/queries.d.ts +1 -1
  203. package/dist/stylelint.config.d.ts +3 -0
  204. package/dist/stylelint.config.d.ts.map +1 -0
  205. package/dist/tabs.cjs +1 -1
  206. package/dist/tabs.js +1 -1
  207. package/dist/text.cjs +1 -1
  208. package/dist/text.js +2 -2
  209. package/dist/theming.cjs +1 -1
  210. package/dist/theming.js +2 -2
  211. package/dist/tree.cjs +1 -1
  212. package/dist/tree.js +1 -1
  213. package/dist/triggers.cjs +1 -1
  214. package/dist/triggers.js +1 -1
  215. package/dist/{types-B5-Tni3G.js → types-CGRCBVD4.js} +2 -2
  216. package/dist/{types-C0tUDfsz.cjs → types-DI2vtOGs.cjs} +1 -1
  217. package/dist/units-Bu36uC6z.cjs +1 -0
  218. package/dist/units-DMip-eZH.js +14 -0
  219. package/dist/value-Bfn0uQuG.cjs +53 -0
  220. package/dist/{value-BmuhX6zs.js → value-DimszMFu.js} +2108 -2057
  221. package/dist/video.cjs +1 -1
  222. package/dist/video.js +1 -1
  223. package/package.json +25 -21
  224. package/dist/Animated-BbeJdao0.js +0 -28
  225. package/dist/Animated-Dvm2k_z_.cjs +0 -1
  226. package/dist/Animated-umWjgTzy.cjs +0 -1
  227. package/dist/Box-D27bV7QJ.cjs +0 -1
  228. package/dist/Button-BSek5HG5.cjs +0 -1
  229. package/dist/Button-DLtxKGH5.js +0 -308
  230. package/dist/Dialog-BpjxXSmw.cjs +0 -1
  231. package/dist/Editable-C-z-stcD.cjs +0 -1
  232. package/dist/Haul-WgPKptr9.cjs +0 -1
  233. package/dist/Items-07R286kW.cjs +0 -4
  234. package/dist/Menu-58O-OOPJ.cjs +0 -1
  235. package/dist/Provider-BA3zQVbv.cjs +0 -1
  236. package/dist/Tags-DWsEZD9t.cjs +0 -1
  237. package/dist/Text-DW5FpCk9.cjs +0 -1
  238. package/dist/Video-C56z7qvH.js +0 -9
  239. package/dist/Video-CBPTBLTB.cjs +0 -1
  240. package/dist/css-BkBrZtKZ.js +0 -5328
  241. package/dist/css-D3NdC2sx.cjs +0 -8
  242. package/dist/dimensions-C7b02rFi.cjs +0 -1
  243. package/dist/eraser-Bocga8Eb.cjs +0 -11
  244. package/dist/external-5_uHky7w.cjs +0 -28
  245. package/dist/external-B9omdiDK.cjs +0 -1
  246. package/dist/external-BIbdeWQE.cjs +0 -1
  247. package/dist/external-BRA_zA83.cjs +0 -1
  248. package/dist/external-Bjh6lsVm.cjs +0 -1
  249. package/dist/external-BwRkgEyo.cjs +0 -1
  250. package/dist/external-CdHyPhLI.js +0 -31
  251. package/dist/external-Ct2A_YCT.cjs +0 -1
  252. package/dist/external-DT82RBon.cjs +0 -1
  253. package/dist/external-DyTk_hS7.cjs +0 -1
  254. package/dist/fontString-TocVNWmy.cjs +0 -1
  255. package/dist/hooks-Eb94kuDd.cjs +0 -1
  256. package/dist/provider-D0K9E52u.js +0 -16236
  257. package/dist/provider-DksyuJua.cjs +0 -78
  258. package/dist/units-Bd_mf9Ye.cjs +0 -1
  259. package/dist/units-CEfK1L7C.js +0 -14
  260. package/dist/value-CZfzRi_x.cjs +0 -53
@@ -1,27 +1,27 @@
1
- import { j as L } from "./jsx-runtime-BbD0H88J.js";
2
- import { a as P, A as T } from "./css-BkBrZtKZ.js";
3
- import h, { memo as H, useRef as _, useCallback as i, useMemo as x, useId as A } from "react";
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
4
  import { z as d } from "zod";
5
- import { c as Z } from "./Text-XeD58Fq8.js";
5
+ import { c as Z } from "./Text-BSTMZRuo.js";
6
6
  const b = d.object({
7
7
  key: d.string().or(d.number()),
8
8
  type: d.string(),
9
9
  elementID: d.string().optional(),
10
10
  data: P.unknownZ.optional()
11
- }), w = d.object({ source: b, items: d.array(b) }), O = { key: "", type: "" }, p = { source: O, items: [] }, F = "file", G = { key: "file", type: F }, M = /* @__PURE__ */ new Set(["all", "copyLink"]), N = (t, e) => M.has(t.dataTransfer.effectAllowed) && e.items.length === 0, [Y, m] = Z({
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
12
  defaultValue: null,
13
13
  displayName: "Haul.Context"
14
14
  }), S = {
15
15
  ...p,
16
16
  onSuccessfulDrop: () => {
17
17
  }
18
- }, R = H(
18
+ }, A = H(
19
19
  ({
20
20
  children: t,
21
21
  useState: e = h.useState,
22
22
  onDropOutside: n
23
23
  }) => {
24
- const o = m(), [l, r] = e(p), c = _(S), a = _(/* @__PURE__ */ new Set()), f = i(
24
+ const o = m(), [l, r] = e(p), c = x(S), a = x(/* @__PURE__ */ new Set()), f = i(
25
25
  (s, u, D) => {
26
26
  c.current = { source: s, items: u, onSuccessfulDrop: D }, r({ source: s, items: u });
27
27
  },
@@ -40,22 +40,22 @@ const b = d.object({
40
40
  }), u != null && g(u), c.current = S, r(p);
41
41
  },
42
42
  [r]
43
- ), E = i((s) => (a.current.add(s), () => a.current.delete(s)), []), k = x(
43
+ ), E = i((s) => (a.current.add(s), () => a.current.delete(s)), []), k = _(
44
44
  () => o ?? { state: l, start: f, end: y, drop: g, bind: E },
45
45
  [l, f, y, g, o]
46
46
  );
47
47
  return /* @__PURE__ */ L.jsx(Y, { value: k, children: t });
48
48
  }
49
49
  );
50
- R.displayName = "HaulProvider";
50
+ A.displayName = "HaulProvider";
51
51
  const j = () => {
52
- const t = _(p), e = m();
52
+ const t = x(p), e = m();
53
53
  return e == null || (t.current = e.state), t;
54
54
  }, z = () => {
55
55
  const t = m();
56
56
  return t == null ? p : t.state;
57
57
  }, v = ({ type: t, key: e }) => {
58
- const n = e ?? A(), o = x(() => ({ key: n, type: t }), [n, t]), l = m();
58
+ const n = e ?? O(), o = _(() => ({ key: n, type: t }), [n, t]), l = m();
59
59
  if (l == null) return { startDrag: () => {
60
60
  }, onDragEnd: () => {
61
61
  } };
@@ -75,7 +75,7 @@ const j = () => {
75
75
  if (c == null) return { onDragOver: () => {
76
76
  }, onDrop: () => {
77
77
  } };
78
- const { drop: a } = c, f = e ?? A(), g = x(() => ({ key: f, type: t }), [f, t]), y = _({ x: -1, y: -1 }), E = i(
78
+ const { drop: a } = c, f = e ?? O(), g = _(() => ({ key: f, type: t }), [f, t]), y = x({ x: -1, y: -1 }), E = i(
79
79
  (s) => {
80
80
  s.preventDefault();
81
81
  const u = T.construct({ x: s.screenX, y: s.screenY });
@@ -94,7 +94,7 @@ const j = () => {
94
94
  key: e,
95
95
  ...n
96
96
  }) => {
97
- const o = e ?? A(), l = x(() => ({ key: o, type: t }), [o, t]), r = v(l), c = C({ ...n, ...l });
97
+ const o = e ?? O(), l = _(() => ({ key: o, type: t }), [o, t]), r = v(l), c = C({ ...n, ...l });
98
98
  return { ...r, ...c };
99
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
100
  (o) => e({ ...o, items: I(t, o.items) }),
@@ -102,10 +102,10 @@ const j = () => {
102
102
  ), Q = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
103
103
  __proto__: null,
104
104
  FILE: G,
105
- FILE_TYPE: F,
106
- Provider: R,
105
+ FILE_TYPE: R,
106
+ Provider: A,
107
107
  ZERO_DRAGGING_STATE: p,
108
- ZERO_ITEM: O,
108
+ ZERO_ITEM: F,
109
109
  canDropOfType: X,
110
110
  draggingStateZ: w,
111
111
  filterByType: I,
@@ -120,9 +120,9 @@ const j = () => {
120
120
  useFilterByTypeCallback: q
121
121
  }, Symbol.toStringTag, { value: "Module" }));
122
122
  export {
123
- F,
123
+ R as F,
124
124
  Q as H,
125
- R as P,
125
+ A as P,
126
126
  B as a,
127
127
  q as b,
128
128
  C as c,
@@ -0,0 +1 @@
1
+ "use strict";const P=require("./jsx-runtime-nZSsnGb7.cjs"),x=require("@synnaxlabs/x"),t=require("react"),f=require("zod"),j=require("./Text-C2_VsLzw.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,15 +1,16 @@
1
- import { j as E } from "./jsx-runtime-BbD0H88J.js";
2
- import { B as P } from "./Button-DLtxKGH5.js";
3
- import { I as U, C as b } from "./css-BkBrZtKZ.js";
4
- import { u as $, d as H, c as q } from "./Animated-C4xrEVd-.js";
1
+ import { j as E } from "./jsx-runtime-tc70JA_2.js";
2
+ import { B as P } from "./Copy-CzkBKGca.js";
3
+ import { bounds as U } from "@synnaxlabs/x";
4
+ import { C as b } from "./css-D90kZTM8.js";
5
+ import { u as $, d as H, c as q } from "./Animated-6qL1fRZx.js";
5
6
  import * as w from "react";
6
7
  import { memo as A, useRef as C, useCallback as S, useMemo as M, useSyncExternalStore as K } from "react";
7
- import { p as X, a as G } from "./Box-DLO7l9hM.js";
8
+ import { p as X, a as G } from "./Box-Bi280MYh.js";
8
9
  import { flushSync as Y } from "react-dom";
9
- import { c as V } from "./Text-XeD58Fq8.js";
10
- import { f as J, c as j, g as Q } from "./Editable-DjQORuR1.js";
11
- import "./types-B5-Tni3G.js";
12
- import "./Provider-BkxUzTWS.js";
10
+ import { c as V } from "./Text-BSTMZRuo.js";
11
+ import { f as J, c as j, g as Q } from "./Editable-4ZwvICC4.js";
12
+ import "./types-CGRCBVD4.js";
13
+ import "./Provider-ZIy-UlnE.js";
13
14
  function O(n, l, e) {
14
15
  let s = e.initialDeps ?? [], t;
15
16
  function i() {
@@ -551,16 +552,16 @@ function he(n) {
551
552
  ...n
552
553
  });
553
554
  }
554
- const Re = (n, l) => ((e) => Array.isArray(e) ? l(e) : n(e)), [L, ue] = V({
555
+ const De = (n, l) => ((e) => Array.isArray(e) ? l(e) : n(e)), [L, ue] = V({
555
556
  displayName: "List.DataContext",
556
557
  providerName: "List.Frame"
557
558
  }), [B, T] = V({
558
559
  displayName: "List.UtilContext",
559
560
  providerName: "List.Frame"
560
- }), De = () => T("List.useUtilContext"), _e = () => {
561
+ }), _e = () => T("List.useUtilContext"), Fe = () => {
561
562
  const { scrollToIndex: n } = T("List.useScroller");
562
563
  return M(() => ({ scrollToIndex: n }), [n]);
563
- }, Fe = (n) => {
564
+ }, Ne = (n) => {
564
565
  const { getItem: l, subscribe: e } = T(
565
566
  "List.useItem"
566
567
  );
@@ -729,7 +730,7 @@ const Re = (n, l) => ((e) => Array.isArray(e) ? l(e) : n(e)), [L, ue] = V({
729
730
  }, ve = ({
730
731
  virtual: n = !1,
731
732
  ...l
732
- }) => n ? /* @__PURE__ */ E.jsx(ge, { ...l }) : /* @__PURE__ */ E.jsx(pe, { ...l }), Ne = A(ve), Ae = ({
733
+ }) => n ? /* @__PURE__ */ E.jsx(ge, { ...l }) : /* @__PURE__ */ E.jsx(pe, { ...l }), Ae = A(ve), Ve = ({
733
734
  itemKey: n,
734
735
  className: l,
735
736
  index: e,
@@ -827,15 +828,15 @@ const Re = (n, l) => ((e) => Array.isArray(e) ? l(e) : n(e)), [L, ue] = V({
827
828
  children: v
828
829
  }
829
830
  );
830
- }, Ve = A(xe);
831
+ }, je = A(xe);
831
832
  export {
832
833
  ve as B,
833
- Ne as F,
834
- Ae as I,
835
- Ve as a,
836
- Fe as b,
837
- Re as c,
838
- _e as d,
839
- De as e,
834
+ Ae as F,
835
+ Ve as I,
836
+ je as a,
837
+ Ne as b,
838
+ De as c,
839
+ Fe as d,
840
+ _e as e,
840
841
  de as u
841
842
  };
@@ -0,0 +1,4 @@
1
+ "use strict";const E=require("./jsx-runtime-nZSsnGb7.cjs"),P=require("./Copy-DuC8dTK7.cjs"),U=require("@synnaxlabs/x"),b=require("./css-CloSmhZB.cjs"),D=require("./Animated-xK__WUQp.cjs"),d=require("react"),_=require("./Box-CNUz5BsV.cjs"),$=require("react-dom"),N=require("./Text-C2_VsLzw.cjs"),R=require("./Editable-HUPqTaui.cjs");require("./types-DI2vtOGs.cjs");require("./Provider-DSMJjyuY.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;
@@ -0,0 +1 @@
1
+ "use strict";const d=require("./jsx-runtime-nZSsnGb7.cjs"),t=require("@synnaxlabs/x"),a=require("react"),R=require("react-dom"),E=require("./css-CloSmhZB.cjs"),C=require("./Animated-xK__WUQp.cjs"),q=require("./Box-CNUz5BsV.cjs");require("./Copy-DuC8dTK7.cjs");const M=require("./Text-C2_VsLzw.cjs");require("./Editable-HUPqTaui.cjs");require("./types-DI2vtOGs.cjs");require("./Provider-DSMJjyuY.cjs");const f={visible:!1,position:t.xy.ZERO,cursor:t.xy.ZERO,keys:[]},O=E.CSS.BE("menu-context","container"),S=o=>{let e=o;for(;!e.classList.contains(C.CONTEXT_TARGET);){if(e.classList.contains(O)||e.parentElement==null)return o;e=e.parentElement}return e},_=o=>{const e=S(o);if(e==null)return[];const r=Array.from(e.parentElement?.querySelectorAll(`.${C.CONTEXT_SELECTED}`)??[]);return r.includes(e)?r:[e]},N=[{targetCorner:t.location.BOTTOM_RIGHT,dialogCorner:t.location.TOP_LEFT},{targetCorner:t.location.BOTTOM_LEFT,dialogCorner:t.location.TOP_RIGHT},{targetCorner:t.location.TOP_RIGHT,dialogCorner:t.location.BOTTOM_LEFT},{targetCorner:t.location.TOP_LEFT,dialogCorner:t.location.BOTTOM_RIGHT}],b=()=>{const o=a.useRef(null),[e,r]=a.useState(f),x=a.useCallback(n=>{const s=t.xy.construct(n);let i=[];if(typeof n=="object"&&"preventDefault"in n){n.preventDefault(),n.stopPropagation();const l=_(n.target);i=t.unique.unique(l.map(T=>T.id).filter(T=>T.length>0))}r({visible:!0,keys:i,position:s,cursor:s})},[]),u=a.useCallback(n=>{o.current=n,n!=null&&r(s=>{if(!s.visible)return s;const{adjustedDialog:i}=C.position({container:t.box.construct(0,0,window.innerWidth,window.innerHeight),dialog:t.box.construct(n),target:t.box.construct(s.cursor,0,0),prefer:N}),l=t.box.topLeft(i);return t.xy.equals(s.position,l)?s:{...s,position:l}})},[]),c=()=>r(f);return C.useClickOutside({ref:o,onClickOutside:c}),{...e,close:c,open:x,ref:u,className:O}},j=({ref:o,menu:e,visible:r,open:x,close:u,position:c,keys:n,className:s,cursor:i,style:l,onClick:T,...m})=>r?R.createPortal(d.jsxRuntimeExports.jsx(q.Box$1,{className:E.CSS(C.CONTEXT_MENU_CLASS,E.CSS.bordered(),s),ref:o,style:{...t.xy.css(c),...l},onClick:p=>{u(),T?.(p)},gap:"tiny",...m,children:e?.({keys:n,visible:r,position:c,cursor:i})}),document.body):null,y=({menu:o,children:e,...r})=>d.jsxRuntimeExports.jsxs(d.jsxRuntimeExports.Fragment,{children:[d.jsxRuntimeExports.jsx(j,{menu:o,...r}),e]}),[g,L]=M.create({defaultValue:{onClick:()=>{},selected:""},displayName:"Menu.Context"}),I=({children:o,onChange:e,level:r,gap:x,background:u,value:c=""})=>{const n=a.useCallback(i=>{typeof e=="function"?e(i):e&&i in e&&e[i](i)},[e]),s=a.useMemo(()=>({onClick:n,selected:c,level:r,gap:x,background:u}),[c,n,r,x,u]);return d.jsxRuntimeExports.jsx(g,{value:s,children:o})};exports.ContextMenu=y;exports.Menu=I;exports.useContext=L;exports.useContextMenu=b;
@@ -1,22 +1,23 @@
1
- import { j as T } from "./jsx-runtime-BbD0H88J.js";
2
- import { A as m, C as p, M as a, b as _, E as d } from "./css-BkBrZtKZ.js";
3
- import { useRef as N, useState as R, useCallback as E, useMemo as S } from "react";
1
+ import { j as T } from "./jsx-runtime-tc70JA_2.js";
2
+ import { xy as m, location as c, unique as M, box as d } from "@synnaxlabs/x";
3
+ import { useRef as N, useState as R, useCallback as p, useMemo as S } from "react";
4
4
  import { createPortal as g } from "react-dom";
5
- import { a as L, e as A, c as I, C as b, d as j } from "./Animated-C4xrEVd-.js";
6
- import { a as P } from "./Box-DLO7l9hM.js";
7
- import "./Button-DLtxKGH5.js";
8
- import { c as y } from "./Text-XeD58Fq8.js";
9
- import "./Editable-DjQORuR1.js";
10
- import "./types-B5-Tni3G.js";
11
- import "./Provider-BkxUzTWS.js";
12
- const C = {
5
+ import { C } from "./css-D90kZTM8.js";
6
+ import { a as L, e as I, c as j, C as y, d as P } from "./Animated-6qL1fRZx.js";
7
+ import { a as b } from "./Box-Bi280MYh.js";
8
+ import "./Copy-CzkBKGca.js";
9
+ import { c as A } from "./Text-BSTMZRuo.js";
10
+ import "./Editable-4ZwvICC4.js";
11
+ import "./types-CGRCBVD4.js";
12
+ import "./Provider-ZIy-UlnE.js";
13
+ const E = {
13
14
  visible: !1,
14
15
  position: m.ZERO,
15
16
  cursor: m.ZERO,
16
17
  keys: []
17
- }, O = p.BE("menu-context", "container"), B = (n) => {
18
+ }, O = C.BE("menu-context", "container"), B = (n) => {
18
19
  let t = n;
19
- for (; !t.classList.contains(j); ) {
20
+ for (; !t.classList.contains(P); ) {
20
21
  if (t.classList.contains(O) || t.parentElement == null) return n;
21
22
  t = t.parentElement;
22
23
  }
@@ -25,25 +26,25 @@ const C = {
25
26
  const t = B(n);
26
27
  if (t == null) return [];
27
28
  const r = Array.from(
28
- t.parentElement?.querySelectorAll(`.${I}`) ?? []
29
+ t.parentElement?.querySelectorAll(`.${j}`) ?? []
29
30
  );
30
31
  return r.includes(t) ? r : [t];
31
32
  }, k = [
32
- { targetCorner: a.BOTTOM_RIGHT, dialogCorner: a.TOP_LEFT },
33
- { targetCorner: a.BOTTOM_LEFT, dialogCorner: a.TOP_RIGHT },
34
- { targetCorner: a.TOP_RIGHT, dialogCorner: a.BOTTOM_LEFT },
35
- { targetCorner: a.TOP_LEFT, dialogCorner: a.BOTTOM_RIGHT }
36
- ], z = () => {
37
- const n = N(null), [t, r] = R(C), l = E((e) => {
33
+ { targetCorner: c.BOTTOM_RIGHT, dialogCorner: c.TOP_LEFT },
34
+ { targetCorner: c.BOTTOM_LEFT, dialogCorner: c.TOP_RIGHT },
35
+ { targetCorner: c.TOP_RIGHT, dialogCorner: c.BOTTOM_LEFT },
36
+ { targetCorner: c.TOP_LEFT, dialogCorner: c.BOTTOM_RIGHT }
37
+ ], J = () => {
38
+ const n = N(null), [t, r] = R(E), l = p((e) => {
38
39
  const o = m.construct(e);
39
40
  let s = [];
40
41
  if (typeof e == "object" && "preventDefault" in e) {
41
42
  e.preventDefault(), e.stopPropagation();
42
43
  const u = F(e.target);
43
- s = _.unique(u.map((f) => f.id).filter((f) => f.length > 0));
44
+ s = M.unique(u.map((f) => f.id).filter((f) => f.length > 0));
44
45
  }
45
46
  r({ visible: !0, keys: s, position: o, cursor: o });
46
- }, []), c = E((e) => {
47
+ }, []), a = p((e) => {
47
48
  n.current = e, e != null && r((o) => {
48
49
  if (!o.visible) return o;
49
50
  const { adjustedDialog: s } = L({
@@ -54,12 +55,12 @@ const C = {
54
55
  }), u = d.topLeft(s);
55
56
  return m.equals(o.position, u) ? o : { ...o, position: u };
56
57
  });
57
- }, []), i = () => r(C);
58
- return A({ ref: n, onClickOutside: i }), {
58
+ }, []), i = () => r(E);
59
+ return I({ ref: n, onClickOutside: i }), {
59
60
  ...t,
60
61
  close: i,
61
62
  open: l,
62
- ref: c,
63
+ ref: a,
63
64
  className: O
64
65
  };
65
66
  }, w = ({
@@ -67,7 +68,7 @@ const C = {
67
68
  menu: t,
68
69
  visible: r,
69
70
  open: l,
70
- close: c,
71
+ close: a,
71
72
  position: i,
72
73
  keys: e,
73
74
  className: o,
@@ -77,13 +78,13 @@ const C = {
77
78
  ...x
78
79
  }) => r ? g(
79
80
  /* @__PURE__ */ T.jsx(
80
- P,
81
+ b,
81
82
  {
82
- className: p(b, p.bordered(), o),
83
+ className: C(y, C.bordered(), o),
83
84
  ref: n,
84
85
  style: { ...m.css(i), ...u },
85
- onClick: (M) => {
86
- c(), f?.(M);
86
+ onClick: (_) => {
87
+ a(), f?.(_);
87
88
  },
88
89
  gap: "tiny",
89
90
  ...x,
@@ -91,26 +92,26 @@ const C = {
91
92
  }
92
93
  ),
93
94
  document.body
94
- ) : null, J = ({
95
+ ) : null, K = ({
95
96
  menu: n,
96
97
  children: t,
97
98
  ...r
98
99
  }) => /* @__PURE__ */ T.jsxs(T.Fragment, { children: [
99
100
  /* @__PURE__ */ T.jsx(w, { menu: n, ...r }),
100
101
  t
101
- ] }), [G, K] = y({
102
+ ] }), [G, Q] = A({
102
103
  defaultValue: { onClick: () => {
103
104
  }, selected: "" },
104
105
  displayName: "Menu.Context"
105
- }), Q = ({
106
+ }), Y = ({
106
107
  children: n,
107
108
  onChange: t,
108
109
  level: r,
109
110
  gap: l,
110
- background: c,
111
+ background: a,
111
112
  value: i = ""
112
113
  }) => {
113
- const e = E(
114
+ const e = p(
114
115
  (s) => {
115
116
  typeof t == "function" ? t(s) : t && s in t && t[s](s);
116
117
  },
@@ -121,15 +122,15 @@ const C = {
121
122
  selected: i,
122
123
  level: r,
123
124
  gap: l,
124
- background: c
125
+ background: a
125
126
  }),
126
- [i, e, r, l, c]
127
+ [i, e, r, l, a]
127
128
  );
128
129
  return /* @__PURE__ */ T.jsx(G, { value: o, children: n });
129
130
  };
130
131
  export {
131
- J as C,
132
- Q as M,
133
- z as a,
134
- K as u
132
+ K as C,
133
+ Y as M,
134
+ J as a,
135
+ Q as u
135
136
  };