@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
@@ -0,0 +1,337 @@
1
+ import { j as m } from "./jsx-runtime-tc70JA_2.js";
2
+ import { TimeSpan as g, location as a, xy as M, box as d, color as V, record as te } from "@synnaxlabs/x";
3
+ import { useState as Y, useRef as I, useCallback as v, useMemo as W, createElement as ne, useId as oe, cloneElement as se, isValidElement as re } from "react";
4
+ import { C as c } from "./css-D90kZTM8.js";
5
+ import { c as le, L as ce, T as ie, F as ue, G as ae } from "./Text-BSTMZRuo.js";
6
+ import { d as de, T as K, i as me } from "./Editable-4ZwvICC4.js";
7
+ import { a as fe, C as pe, d as Te } from "./types-CGRCBVD4.js";
8
+ import { a as xe } from "./Provider-ZIy-UlnE.js";
9
+ import "./provider-Bt-E2O6g.js";
10
+ import { createPortal as Ee } from "react-dom";
11
+ import { u as ye } from "./hooks-CWEfATTF.js";
12
+ const [ge, Se] = le({
13
+ defaultValue: { delay: g.milliseconds(750), startAccelerating: () => {
14
+ } },
15
+ displayName: "Tooltip.Context"
16
+ }), He = ({
17
+ delay: e = g.milliseconds(700),
18
+ accelerate: t = !0,
19
+ // Disabling this for now because it's annoying.
20
+ acceleratedDelay: o = g.minutes(60),
21
+ accelerationDelay: s = g.seconds(0),
22
+ children: i
23
+ }) => {
24
+ const [r, n] = Y(!1), u = I(null), E = v(() => {
25
+ r || !t || (n(!0), u.current = setTimeout(() => {
26
+ n(!1);
27
+ }, new g(s).milliseconds));
28
+ }, [r, s]), y = W(
29
+ () => r ? o : e,
30
+ [r, o, e]
31
+ ), p = W(
32
+ () => ({ delay: y, startAccelerating: E }),
33
+ [y, E]
34
+ );
35
+ return /* @__PURE__ */ m.jsx(ge, { value: p, children: i });
36
+ }, Ue = (e) => ({ key: t, ...o }) => /* @__PURE__ */ ne(e, { ...o, key: t }), Ce = (e) => typeof e == "function", Le = 150, Q = ["top", "bottom"], z = ["left", "right"], ee = [
37
+ ...z,
38
+ ...Q
39
+ ], J = [
40
+ ...ee,
41
+ "center"
42
+ ], ve = {
43
+ [a.xyToString(a.TOP_RIGHT)]: (e, t) => M.translate(e, "x", -d.width(t)),
44
+ [a.xyToString(a.TOP_LEFT)]: (e, t) => M.translate(e, "x", d.width(t)),
45
+ [a.xyToString(a.BOTTOM_RIGHT)]: (e, t) => M.translate(e, "x", -d.width(t)),
46
+ [a.xyToString(a.BOTTOM_LEFT)]: (e, t) => M.translate(e, "x", d.width(t))
47
+ }, U = (e, t, o) => {
48
+ for (const s of o)
49
+ if (Math.abs(d.loc(t, s) - d.loc(e, s)) > Le) return s;
50
+ return o[0];
51
+ }, Me = (e, t, o) => {
52
+ const s = a.location.safeParse(e), i = (n) => {
53
+ let u;
54
+ return n === "center" ? u = ee : a.isX(n) ? u = ["center", ...Q] : u = ["center", ...z], a.construct(U(t, o, u));
55
+ };
56
+ if (s.success)
57
+ return a.constructXY(s.data, i(s.data));
58
+ if (e != null) {
59
+ const n = { ...e };
60
+ return n.x == null && n.y != null ? n.x = i(a.construct(n.y)) : n.y == null && n.x != null ? n.y = i(a.construct(n.x)) : n.x == null && n.y == null && (n.x = U(t, o, J), n.y = i(a.construct(n.x))), a.constructXY(n);
61
+ }
62
+ const r = U(t, o, J);
63
+ return a.constructXY(r, i(r));
64
+ }, he = (e, t) => {
65
+ let o = e;
66
+ for (; o != null; ) {
67
+ if (o.id === t) return o;
68
+ o = o.parentElement;
69
+ }
70
+ return e;
71
+ }, we = ({
72
+ delay: e,
73
+ children: t,
74
+ location: o,
75
+ hide: s = !1
76
+ }) => {
77
+ const { startAccelerating: i, delay: r } = Se(), n = new g(e ?? r), [u, E, y] = de(null), [p, h] = Y(""), w = I(null), P = oe(), S = I(null), R = I(null), T = v((l) => {
78
+ l == null && y.current == null || R.current != null || (l != null ? (E(l), R.current = setTimeout(() => {
79
+ h(c.M("loaded")), R.current = null;
80
+ }, 1)) : (h(""), R.current = setTimeout(() => {
81
+ E(null), R.current = null;
82
+ }, 500)));
83
+ }, []), C = v(
84
+ (l, H) => {
85
+ if (!H || s)
86
+ return S.current?.(), T(null);
87
+ i();
88
+ const f = d.construct(he(l.target, P));
89
+ d.contains(f, M.construct(l)) || (S.current?.(), T(null));
90
+ const O = d.construct(document.documentElement), N = Me(o, f, O);
91
+ let L = d.xyLoc(f, N);
92
+ const Z = ve[a.xyToString(N)];
93
+ Z != null && (L = Z(L, f));
94
+ const b = d.construct(document.body);
95
+ T({
96
+ location: N,
97
+ position: M.translate(L, M.scale(d.topLeft(b), -1)),
98
+ triggerDims: d.dims(f)
99
+ }), S.current?.();
100
+ const _ = (k) => {
101
+ const $ = M.construct(k);
102
+ d.contains(f, $) || (T(null), document.removeEventListener("mousemove", _), S.current = null, w.current != null && clearTimeout(w.current));
103
+ };
104
+ document.addEventListener("mousemove", _), S.current = () => document.removeEventListener("mousemove", _), document.addEventListener(
105
+ "mousedown",
106
+ () => {
107
+ T(null), S.current?.();
108
+ },
109
+ { once: !0 }
110
+ );
111
+ },
112
+ [i, o, s, P, n.milliseconds]
113
+ );
114
+ s && u != null && T(null);
115
+ const F = v(
116
+ (l) => {
117
+ w.current = setTimeout(
118
+ () => C(l, !0),
119
+ n.milliseconds
120
+ );
121
+ },
122
+ [C, n.milliseconds]
123
+ ), j = v(
124
+ (l) => {
125
+ w.current != null && clearTimeout(w.current), C(l, !1);
126
+ },
127
+ [C]
128
+ ), [D, A] = t, X = document.body;
129
+ return /* @__PURE__ */ m.jsxs(m.Fragment, { children: [
130
+ u != null && Ee(
131
+ /* @__PURE__ */ m.jsx(
132
+ "div",
133
+ {
134
+ className: c(
135
+ c.B("tooltip"),
136
+ c.loc(u.location.x),
137
+ c.loc(u.location.y),
138
+ p
139
+ ),
140
+ style: {
141
+ [c.var("pos-x")]: c.px(u.position.x),
142
+ [c.var("pos-y")]: c.px(u.position.y)
143
+ },
144
+ children: Ce(D) ? D(u) : Re(D)
145
+ },
146
+ P
147
+ ),
148
+ X
149
+ ),
150
+ se(A, {
151
+ onMouseEnter: (l) => {
152
+ F(l), A.props.onMouseEnter?.(l);
153
+ },
154
+ onMouseLeave: (l) => {
155
+ j(l), A.props.onMouseLeave?.(l);
156
+ },
157
+ onMouseDown: v(
158
+ (l) => {
159
+ j(l), A.props.onMouseDown?.(l);
160
+ },
161
+ [C]
162
+ )
163
+ })
164
+ ] });
165
+ }, Re = (e) => typeof e == "string" || typeof e == "number" || !re(e) ? /* @__PURE__ */ m.jsx(K, { level: "small", color: 11, children: e }) : e, Oe = (e) => {
166
+ const t = ({
167
+ tooltipDelay: o,
168
+ tooltip: s,
169
+ tooltipLocation: i,
170
+ ...r
171
+ }) => {
172
+ const n = /* @__PURE__ */ m.jsx(e, { ...r });
173
+ return s == null ? n : /* @__PURE__ */ m.jsxs(we, { delay: o, location: i, children: [
174
+ s,
175
+ n
176
+ ] });
177
+ };
178
+ return t.displayName = `Tooltip.Wrap(${e.displayName ?? e.name})`, t;
179
+ }, B = "btn", Ne = (e, t) => {
180
+ if (e === !0) return t;
181
+ if (e != null && e !== !1) return e;
182
+ }, be = ({
183
+ size: e,
184
+ variant: t = "outlined",
185
+ className: o,
186
+ disabled: s,
187
+ preventClick: i,
188
+ level: r,
189
+ trigger: n,
190
+ triggerIndicator: u,
191
+ onClickDelay: E = 0,
192
+ onClick: y,
193
+ color: p,
194
+ status: h,
195
+ style: w,
196
+ onMouseDown: P,
197
+ textColor: S,
198
+ textVariant: R,
199
+ tabIndex: T,
200
+ contrast: C,
201
+ children: F,
202
+ defaultEl: j = "button",
203
+ el: D,
204
+ ghost: A,
205
+ propagateClick: X = !1,
206
+ href: l,
207
+ ...H
208
+ }) => {
209
+ const f = g.fromMilliseconds(E), O = s === !0 || h === "loading" || h === "disabled";
210
+ t === "preview" && (i = !0), (s || i && T == null) && (T = -1);
211
+ const N = (x) => {
212
+ if (X || x.stopPropagation(), !(O || t === "preview" || i === !0) && f.isZero)
213
+ return y?.(x);
214
+ }, L = I(null), Z = (x) => {
215
+ T == -1 && x.preventDefault(), P?.(x), !(O || t === "preview" || f.isZero) && (document.addEventListener(
216
+ "mouseup",
217
+ () => L.current != null && clearTimeout(L.current)
218
+ ), L.current = setTimeout(() => {
219
+ y?.(x), L.current = null;
220
+ }, f.milliseconds));
221
+ };
222
+ ye({
223
+ triggers: n,
224
+ callback: v(
225
+ ({ stage: x }) => {
226
+ x !== "end" || O || t === "preview" || N(
227
+ new MouseEvent("click")
228
+ );
229
+ },
230
+ [N, O]
231
+ )
232
+ });
233
+ let b = w;
234
+ const _ = V.colorZ.safeParse(p), k = _.success && (t === "filled" || t === "outlined");
235
+ if (k) {
236
+ const x = xe();
237
+ b = {
238
+ ...b,
239
+ [c.var("btn-color")]: V.rgbString(_.data),
240
+ [c.var("btn-text-color")]: V.rgbCSS(
241
+ V.pickByContrast(_.data, x.colors.text, x.colors.textInverted)
242
+ )
243
+ };
244
+ }
245
+ f.isZero || (b = {
246
+ ...b,
247
+ [c.var("btn-delay")]: `${f.seconds.toString()}s`
248
+ }), e == null && r != null ? e = fe[r] : e != null && r == null ? r = pe[e] : j !== "div" && (e ??= "medium"), r ??= "p";
249
+ const $ = h === "loading", G = me(F), q = Ne(u, n);
250
+ return /* @__PURE__ */ m.jsxs(
251
+ K,
252
+ {
253
+ el: D,
254
+ defaultEl: j,
255
+ direction: "x",
256
+ className: c(
257
+ c.B(B),
258
+ C != null && c.BM(B, `contrast-${C}`),
259
+ i === !0 && c.BM(B, "prevent-click"),
260
+ t !== "preview" && c.disabled(O),
261
+ c.BM(B, t),
262
+ k && c.BM(B, "custom-color"),
263
+ A && c.BM(B, "ghost"),
264
+ o
265
+ ),
266
+ size: e,
267
+ tabIndex: T,
268
+ onClick: N,
269
+ onMouseDown: Z,
270
+ style: b,
271
+ color: S,
272
+ gap: e === "small" || e === "tiny" ? "small" : void 0,
273
+ bordered: t !== "text",
274
+ level: r,
275
+ variant: R,
276
+ square: G,
277
+ overflow: "nowrap",
278
+ status: h,
279
+ href: l,
280
+ ...te.purgeUndefined(H),
281
+ children: [
282
+ (!$ || !G) && F,
283
+ $ && /* @__PURE__ */ m.jsx(ce, {}),
284
+ q != null && /* @__PURE__ */ m.jsx(
285
+ ie,
286
+ {
287
+ className: c.B("trigger-indicator"),
288
+ "aria-label": "trigger-indicator",
289
+ trigger: q,
290
+ color: 9,
291
+ gap: "tiny",
292
+ level: Te(r)
293
+ }
294
+ )
295
+ ]
296
+ }
297
+ );
298
+ }, _e = Oe(be), Ae = g.seconds(2).milliseconds, Ye = ({
299
+ text: e,
300
+ onCopy: t,
301
+ onCopyError: o,
302
+ copiedDuration: s = Ae,
303
+ tooltip: i = "Copy",
304
+ children: r,
305
+ ...n
306
+ }) => {
307
+ const [u, E] = Y(!1), y = v(() => {
308
+ (async () => {
309
+ try {
310
+ const p = typeof e == "function" ? e() : e;
311
+ await navigator.clipboard.writeText(p), E(!0), t?.(), setTimeout(
312
+ () => E(!1),
313
+ g.fromMilliseconds(s).milliseconds
314
+ );
315
+ } catch (p) {
316
+ o?.(p instanceof Error ? p : new Error(String(p)));
317
+ }
318
+ })();
319
+ }, [e, t, o, s]);
320
+ return /* @__PURE__ */ m.jsxs(_e, { tooltip: u ? "Copied!" : i, onClick: y, ...n, children: [
321
+ u ? /* @__PURE__ */ m.jsx(ue, {}) : /* @__PURE__ */ m.jsx(ae, {}),
322
+ " ",
323
+ r
324
+ ] });
325
+ };
326
+ export {
327
+ _e as B,
328
+ Ye as C,
329
+ we as D,
330
+ He as a,
331
+ Me as c,
332
+ Re as f,
333
+ Ce as i,
334
+ Ue as r,
335
+ Se as u,
336
+ Oe as w
337
+ };
@@ -0,0 +1 @@
1
+ "use strict";const m=require("./jsx-runtime-nZSsnGb7.cjs"),t=require("@synnaxlabs/x"),l=require("react"),u=require("./css-CloSmhZB.cjs"),A=require("./Text-C2_VsLzw.cjs"),I=require("./Editable-HUPqTaui.cjs"),V=require("./types-DI2vtOGs.cjs"),ne=require("./Provider-DSMJjyuY.cjs");require("./provider-DQkVj3tA.cjs");const se=require("react-dom"),re=require("./hooks-C4ji1BSZ.cjs"),[le,$]=A.create({defaultValue:{delay:t.TimeSpan.milliseconds(750),startAccelerating:()=>{}},displayName:"Tooltip.Context"}),ce=({delay:e=t.TimeSpan.milliseconds(700),accelerate:o=!0,acceleratedDelay:s=t.TimeSpan.minutes(60),accelerationDelay:r=t.TimeSpan.seconds(0),children:a})=>{const[c,n]=l.useState(!1),d=l.useRef(null),C=l.useCallback(()=>{c||!o||(n(!0),d.current=setTimeout(()=>{n(!1)},new t.TimeSpan(r).milliseconds))},[c,r]),E=l.useMemo(()=>c?s:e,[c,s,e]),S=l.useMemo(()=>({delay:E,startAccelerating:C}),[E,C]);return m.jsxRuntimeExports.jsx(le,{value:S,children:a})},ie=e=>({key:o,...s})=>l.createElement(e,{...s,key:o}),G=e=>typeof e=="function",ue=150,W=["top","bottom"],J=["left","right"],K=[...J,...W],Y=[...K,"center"],ae={[t.location.xyToString(t.location.TOP_RIGHT)]:(e,o)=>t.xy.translate(e,"x",-t.box.width(o)),[t.location.xyToString(t.location.TOP_LEFT)]:(e,o)=>t.xy.translate(e,"x",t.box.width(o)),[t.location.xyToString(t.location.BOTTOM_RIGHT)]:(e,o)=>t.xy.translate(e,"x",-t.box.width(o)),[t.location.xyToString(t.location.BOTTOM_LEFT)]:(e,o)=>t.xy.translate(e,"x",t.box.width(o))},X=(e,o,s)=>{for(const r of s)if(Math.abs(t.box.loc(o,r)-t.box.loc(e,r))>ue)return r;return s[0]},Q=(e,o,s)=>{const r=t.location.location.safeParse(e),a=n=>{let d;return n==="center"?d=K:t.location.isX(n)?d=["center",...W]:d=["center",...J],t.location.construct(X(o,s,d))};if(r.success)return t.location.constructXY(r.data,a(r.data));if(e!=null){const n={...e};return n.x==null&&n.y!=null?n.x=a(t.location.construct(n.y)):n.y==null&&n.x!=null?n.y=a(t.location.construct(n.x)):n.x==null&&n.y==null&&(n.x=X(o,s,Y),n.y=a(t.location.construct(n.x))),t.location.constructXY(n)}const c=X(o,s,Y);return t.location.constructXY(c,a(c))},de=(e,o)=>{let s=e;for(;s!=null;){if(s.id===o)return s;s=s.parentElement}return e},z=({delay:e,children:o,location:s,hide:r=!1})=>{const{startAccelerating:a,delay:c}=$(),n=new t.TimeSpan(e??c),[d,C,E]=I.useCombinedStateAndRef(null),[S,R]=l.useState(""),b=l.useRef(null),N=l.useId(),T=l.useRef(null),L=l.useRef(null),f=l.useCallback(i=>{i==null&&E.current==null||L.current!=null||(i!=null?(C(i),L.current=setTimeout(()=>{R(u.CSS.M("loaded")),L.current=null},1)):(R(""),L.current=setTimeout(()=>{C(null),L.current=null},500)))},[]),y=l.useCallback((i,Z)=>{if(!Z||r)return T.current?.(),f(null);a();const x=t.box.construct(de(i.target,N));t.box.contains(x,t.xy.construct(i))||(T.current?.(),f(null));const h=t.box.construct(document.documentElement),v=Q(s,x,h);let g=t.box.xyLoc(x,v);const D=ae[t.location.xyToString(v)];D!=null&&(g=D(g,x));const M=t.box.construct(document.body);f({location:v,position:t.xy.translate(g,t.xy.scale(t.box.topLeft(M),-1)),triggerDims:t.box.dims(x)}),T.current?.();const j=k=>{const q=t.xy.construct(k);t.box.contains(x,q)||(f(null),document.removeEventListener("mousemove",j),T.current=null,b.current!=null&&clearTimeout(b.current))};document.addEventListener("mousemove",j),T.current=()=>document.removeEventListener("mousemove",j),document.addEventListener("mousedown",()=>{f(null),T.current?.()},{once:!0})},[a,s,r,N,n.milliseconds]);r&&d!=null&&f(null);const B=l.useCallback(i=>{b.current=setTimeout(()=>y(i,!0),n.milliseconds)},[y,n.milliseconds]),_=l.useCallback(i=>{b.current!=null&&clearTimeout(b.current),y(i,!1)},[y]),[P,w]=o,F=document.body;return m.jsxRuntimeExports.jsxs(m.jsxRuntimeExports.Fragment,{children:[d!=null&&se.createPortal(m.jsxRuntimeExports.jsx("div",{className:u.CSS(u.CSS.B("tooltip"),u.CSS.loc(d.location.x),u.CSS.loc(d.location.y),S),style:{[u.CSS.var("pos-x")]:u.CSS.px(d.position.x),[u.CSS.var("pos-y")]:u.CSS.px(d.position.y)},children:G(P)?P(d):ee(P)},N),F),l.cloneElement(w,{onMouseEnter:i=>{B(i),w.props.onMouseEnter?.(i)},onMouseLeave:i=>{_(i),w.props.onMouseLeave?.(i)},onMouseDown:l.useCallback(i=>{_(i),w.props.onMouseDown?.(i)},[y])})]})},ee=e=>typeof e=="string"||typeof e=="number"||!l.isValidElement(e)?m.jsxRuntimeExports.jsx(I.Text,{level:"small",color:11,children:e}):e,te=e=>{const o=({tooltipDelay:s,tooltip:r,tooltipLocation:a,...c})=>{const n=m.jsxRuntimeExports.jsx(e,{...c});return r==null?n:m.jsxRuntimeExports.jsxs(z,{delay:s,location:a,children:[r,n]})};return o.displayName=`Tooltip.Wrap(${e.displayName??e.name})`,o},O="btn",me=(e,o)=>{if(e===!0)return o;if(e!=null&&e!==!1)return e},xe=({size:e,variant:o="outlined",className:s,disabled:r,preventClick:a,level:c,trigger:n,triggerIndicator:d,onClickDelay:C=0,onClick:E,color:S,status:R,style:b,onMouseDown:N,textColor:T,textVariant:L,tabIndex:f,contrast:y,children:B,defaultEl:_="button",el:P,ghost:w,propagateClick:F=!1,href:i,...Z})=>{const x=t.TimeSpan.fromMilliseconds(C),h=r===!0||R==="loading"||R==="disabled";o==="preview"&&(a=!0),(r||a&&f==null)&&(f=-1);const v=p=>{if(F||p.stopPropagation(),!(h||o==="preview"||a===!0)&&x.isZero)return E?.(p)},g=l.useRef(null),D=p=>{f==-1&&p.preventDefault(),N?.(p),!(h||o==="preview"||x.isZero)&&(document.addEventListener("mouseup",()=>g.current!=null&&clearTimeout(g.current)),g.current=setTimeout(()=>{E?.(p),g.current=null},x.milliseconds))};re.use({triggers:n,callback:l.useCallback(({stage:p})=>{p!=="end"||h||o==="preview"||v(new MouseEvent("click"))},[v,h])});let M=b;const j=t.color.colorZ.safeParse(S),k=j.success&&(o==="filled"||o==="outlined");if(k){const p=ne.use();M={...M,[u.CSS.var("btn-color")]:t.color.rgbString(j.data),[u.CSS.var("btn-text-color")]:t.color.rgbCSS(t.color.pickByContrast(j.data,p.colors.text,p.colors.textInverted))}}x.isZero||(M={...M,[u.CSS.var("btn-delay")]:`${x.seconds.toString()}s`}),e==null&&c!=null?e=V.LEVEL_COMPONENT_SIZES[c]:e!=null&&c==null?c=V.COMPONENT_SIZE_LEVELS[e]:_!=="div"&&(e??="medium"),c??="p";const q=R==="loading",H=I.isSquare(B),U=me(d,n);return m.jsxRuntimeExports.jsxs(I.Text,{el:P,defaultEl:_,direction:"x",className:u.CSS(u.CSS.B(O),y!=null&&u.CSS.BM(O,`contrast-${y}`),a===!0&&u.CSS.BM(O,"prevent-click"),o!=="preview"&&u.CSS.disabled(h),u.CSS.BM(O,o),k&&u.CSS.BM(O,"custom-color"),w&&u.CSS.BM(O,"ghost"),s),size:e,tabIndex:f,onClick:v,onMouseDown:D,style:M,color:T,gap:e==="small"||e==="tiny"?"small":void 0,bordered:o!=="text",level:c,variant:L,square:H,overflow:"nowrap",status:R,href:i,...t.record.purgeUndefined(Z),children:[(!q||!H)&&B,q&&m.jsxRuntimeExports.jsx(A.Loading,{}),U!=null&&m.jsxRuntimeExports.jsx(A.Text,{className:u.CSS.B("trigger-indicator"),"aria-label":"trigger-indicator",trigger:U,color:9,gap:"tiny",level:V.downLevel(c)})]})},oe=te(xe),Se=t.TimeSpan.seconds(2).milliseconds,fe=({text:e,onCopy:o,onCopyError:s,copiedDuration:r=Se,tooltip:a="Copy",children:c,...n})=>{const[d,C]=l.useState(!1),E=l.useCallback(()=>{(async()=>{try{const S=typeof e=="function"?e():e;await navigator.clipboard.writeText(S),C(!0),o?.(),setTimeout(()=>C(!1),t.TimeSpan.fromMilliseconds(r).milliseconds)}catch(S){s?.(S instanceof Error?S:new Error(String(S)))}})()},[e,o,s,r]);return m.jsxRuntimeExports.jsxs(oe,{tooltip:d?"Copied!":a,onClick:E,...n,children:[d?m.jsxRuntimeExports.jsx(A.Check,{}):m.jsxRuntimeExports.jsx(A.Copy,{})," ",c]})};exports.Button=oe;exports.Config=ce;exports.Copy=fe;exports.Dialog=z;exports.chooseLocation=Q;exports.formatTip=ee;exports.isRenderProp=G;exports.renderProp=ie;exports.useConfig=$;exports.wrap=te;
@@ -0,0 +1 @@
1
+ "use strict";const u=require("./jsx-runtime-nZSsnGb7.cjs"),n=require("./Animated-xK__WUQp.cjs"),j=require("react-dom");require("@synnaxlabs/x");const e=require("./css-CloSmhZB.cjs"),q=require("./Box-CNUz5BsV.cjs"),b=(i="root")=>document.getElementById(i)??document.body,f=({style:i,background:d=0,className:g,bordered:S=!0,rounded:m=1,passthrough:l=!1,children:x,...C})=>{const{ref:y,targetCorner:a,dialogCorner:s,style:c,modalPosition:B}=n.useInternalContext("Dialog.Dialog"),{visible:r,variant:t}=n.useContext();if(!r&&!l)return null;const E=r&&(Object.keys(c).length>0||t==="modal");let o=u.jsxRuntimeExports.jsx(q.Box$1,{pack:!0,ref:y,y:!0,background:d,className:e.CSS(e.CSS.BE("dialog","dialog"),e.CSS.loc(a.x),e.CSS.loc(a.y),e.CSS.BEM("dialog","dialog",s.x),e.CSS.BEM("dialog","dialog",s.y),e.CSS.visible(E),l&&e.CSS.BM("dialog","passthrough"),e.CSS.M(t),t==="modal"&&e.CSS.BM("dialog","modal","position",B.toString()),g),rounded:m,role:"dialog",empty:!0,bordered:S,align:"stretch",style:{...c,...i},...C,children:x});return t==="modal"&&(o=u.jsxRuntimeExports.jsx(n.Background,{empty:!0,align:"center",visible:r,children:o})),l?o:j.createPortal(o,b())};exports.Dialog=f;
@@ -1,9 +1,10 @@
1
- import { j as m } from "./jsx-runtime-BbD0H88J.js";
2
- import { b, u as C, B as E } from "./Animated-C4xrEVd-.js";
1
+ import { j as m } from "./jsx-runtime-tc70JA_2.js";
2
+ import { b, u as C, B as E } from "./Animated-6qL1fRZx.js";
3
3
  import { createPortal as j } from "react-dom";
4
- import { C as o } from "./css-BkBrZtKZ.js";
5
- import { a as M } from "./Box-DLO7l9hM.js";
6
- const D = (l = "root") => document.getElementById(l) ?? document.body, R = ({
4
+ import "@synnaxlabs/x";
5
+ import { C as o } from "./css-D90kZTM8.js";
6
+ import { a as M } from "./Box-Bi280MYh.js";
7
+ const D = (l = "root") => document.getElementById(l) ?? document.body, h = ({
7
8
  style: l,
8
9
  background: d = 0,
9
10
  className: g,
@@ -11,14 +12,14 @@ const D = (l = "root") => document.getElementById(l) ?? document.body, R = ({
11
12
  rounded: u = 1,
12
13
  passthrough: a = !1,
13
14
  children: y,
14
- ...x
15
+ ...p
15
16
  }) => {
16
17
  const {
17
- ref: f,
18
+ ref: x,
18
19
  targetCorner: i,
19
20
  dialogCorner: n,
20
21
  style: s,
21
- modalPosition: p
22
+ modalPosition: f
22
23
  } = b("Dialog.Dialog"), { visible: r, variant: t } = C();
23
24
  if (!r && !a) return null;
24
25
  const B = r && (Object.keys(s).length > 0 || t === "modal");
@@ -26,7 +27,7 @@ const D = (l = "root") => document.getElementById(l) ?? document.body, R = ({
26
27
  M,
27
28
  {
28
29
  pack: !0,
29
- ref: f,
30
+ ref: x,
30
31
  y: !0,
31
32
  background: d,
32
33
  className: o(
@@ -38,7 +39,7 @@ const D = (l = "root") => document.getElementById(l) ?? document.body, R = ({
38
39
  o.visible(B),
39
40
  a && o.BM("dialog", "passthrough"),
40
41
  o.M(t),
41
- t === "modal" && o.BM("dialog", "modal", "position", p.toString()),
42
+ t === "modal" && o.BM("dialog", "modal", "position", f.toString()),
42
43
  g
43
44
  ),
44
45
  rounded: u,
@@ -47,12 +48,12 @@ const D = (l = "root") => document.getElementById(l) ?? document.body, R = ({
47
48
  bordered: c,
48
49
  align: "stretch",
49
50
  style: { ...s, ...l },
50
- ...x,
51
+ ...p,
51
52
  children: y
52
53
  }
53
54
  );
54
55
  return t === "modal" && (e = /* @__PURE__ */ m.jsx(E, { empty: !0, align: "center", visible: r, children: e })), a ? e : j(e, D());
55
56
  };
56
57
  export {
57
- R as D
58
+ h as D
58
59
  };
@@ -1,9 +1,10 @@
1
- import { j as x } from "./jsx-runtime-BbD0H88J.js";
1
+ import { j as x } from "./jsx-runtime-tc70JA_2.js";
2
2
  import { useCallback as y, useRef as l, useState as N, isValidElement as v, Children as C, useLayoutEffect as z } from "react";
3
- import { C as i } from "./css-BkBrZtKZ.js";
4
- import { e as I, c as B } from "./types-B5-Tni3G.js";
5
- import { a as U } from "./Box-DLO7l9hM.js";
6
- const ie = (e) => {
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) => {
7
8
  const t = l(I(e)), n = y((s) => {
8
9
  t.current = B(s, t.current);
9
10
  }, []);
@@ -11,7 +12,7 @@ const ie = (e) => {
11
12
  }, q = (e) => {
12
13
  const t = l(e);
13
14
  return t.current = e, t;
14
- }, le = (e) => {
15
+ }, ae = (e) => {
15
16
  const t = l(!1), n = l(null);
16
17
  return t.current || (n.current = e(), t.current = !0), n;
17
18
  }, W = (...e) => y(
@@ -19,15 +20,15 @@ const ie = (e) => {
19
20
  n != null && (typeof n == "function" ? n(t) : n.current = t);
20
21
  }, t),
21
22
  []
22
- ), ae = (e) => {
23
+ ), fe = (e) => {
23
24
  const t = l(null), [n, s] = N(() => {
24
25
  const c = I(e);
25
26
  return t.current = c, c;
26
- }), u = y((c) => {
27
+ }), o = y((c) => {
27
28
  s((a) => (t.current = B(c, a), t.current));
28
29
  }, []);
29
- return [n, u, t];
30
- }, fe = (e) => {
30
+ return [n, o, t];
31
+ }, Ee = (e) => {
31
32
  const t = l(void 0), n = t.current;
32
33
  return t.current = e, n;
33
34
  }, O = (e) => (
@@ -43,7 +44,7 @@ const ie = (e) => {
43
44
  e = t[0];
44
45
  }
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));
46
- }, F = (e, t, n, s, u) => t ?? (u != null || s === "link" ? "a" : n ?? e ?? "p"), J = (e, t, n) => {
47
+ }, F = (e, t, n, s, o) => t ?? (o != null || s === "link" ? "a" : n ?? e ?? "p"), J = (e, t, n) => {
47
48
  const s = {
48
49
  ...e,
49
50
  fontWeight: t
@@ -54,7 +55,7 @@ const ie = (e) => {
54
55
  className: t,
55
56
  style: n,
56
57
  weight: s,
57
- defaultEl: u,
58
+ defaultEl: o,
58
59
  el: c,
59
60
  variant: a,
60
61
  overflow: d,
@@ -62,12 +63,12 @@ const ie = (e) => {
62
63
  autoFormatHref: T,
63
64
  status: f,
64
65
  lineClamp: p,
65
- ...o
66
+ ...u
66
67
  }) => /* @__PURE__ */ x.jsx(
67
68
  U,
68
69
  {
69
70
  direction: "x",
70
- el: F(e, c, u, a, S),
71
+ el: F(e, c, o, a, S),
71
72
  style: J(n, s, p),
72
73
  className: i(
73
74
  i.B("text"),
@@ -78,10 +79,10 @@ const ie = (e) => {
78
79
  f != null && i.M("status", f),
79
80
  t
80
81
  ),
81
- square: Y(o.children),
82
+ square: Y(u.children),
82
83
  gap: "small",
83
84
  href: G(S, T),
84
- ...o
85
+ ...u
85
86
  }
86
87
  ), R = (e) => {
87
88
  e != null && (e.style.display = "none", e.offsetHeight, e.style.display = "");
@@ -89,61 +90,61 @@ const ie = (e) => {
89
90
  let n = 0;
90
91
  const s = () => {
91
92
  n++;
92
- const u = document.querySelector(`#${CSS.escape(e)}.${w}`);
93
- if (u == null || !u.classList.contains(w)) {
93
+ const o = document.querySelector(`#${CSS.escape(e)}.${w}`);
94
+ if (o == null || !o.classList.contains(w)) {
94
95
  if (n < Z) setTimeout(() => s(), 100);
95
96
  else throw new Error(`Could not find element with id ${e}`);
96
97
  return;
97
98
  }
98
- u.dispatchEvent(new Event(j)), u.setAttribute("contenteditable", "true"), t != null && (u.addEventListener(
99
+ o.dispatchEvent(new Event(j)), o.setAttribute("contenteditable", "true"), t != null && (o.addEventListener(
99
100
  k,
100
101
  (c) => t(g(c.target), !0)
101
- ), u.addEventListener(
102
+ ), o.addEventListener(
102
103
  V,
103
104
  (c) => t(g(c.target), !1)
104
105
  ));
105
106
  };
106
107
  s();
107
- }, Ee = (e) => new Promise((t) => {
108
- ee(e, (s, u) => t([s, u]));
108
+ }, de = (e) => new Promise((t) => {
109
+ ee(e, (s, o) => t([s, o]));
109
110
  }), g = (e) => e.innerText.trim(), te = (e, t) => e == null || t == null ? !1 : e.maxInlineSize === t.maxInlineSize, ne = ({
110
111
  onChange: e,
111
112
  value: t,
112
113
  className: n,
113
114
  useEditableState: s = N,
114
- allowDoubleClick: u = !0,
115
+ allowDoubleClick: o = !0,
115
116
  onDoubleClick: c,
116
117
  allowEmpty: a = !1,
117
118
  style: d,
118
119
  outline: S = !0,
119
120
  ...T
120
121
  }) => {
121
- const [f, p] = s(!1), o = l(null), M = q(t), b = l(d), A = l(t);
122
- (b.current != null && !te(d, b.current) || t !== A.current) && (R(o.current), b.current = d, A.current = t);
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);
123
124
  const h = (r) => {
124
- u && (p(!0), R(o.current)), c?.(r);
125
+ o && (p(!0), R(u.current)), c?.(r);
125
126
  }, _ = (r, m = !1) => {
126
127
  const E = g(r);
127
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))));
128
129
  }, H = (r) => {
129
- if (o.current == null || (R(o.current), !f || !Q.includes(r.key))) return;
130
+ if (u.current == null || (R(u.current), !f || !Q.includes(r.key))) return;
130
131
  r.stopPropagation(), r.preventDefault();
131
- const m = o.current;
132
- o.current != null && (p(!1), _(m, r.key === "Escape"), m.blur());
132
+ const m = u.current;
133
+ u.current != null && (p(!1), _(m, r.key === "Escape"), m.blur());
133
134
  }, P = (r) => r.preventDefault();
134
135
  z(() => {
135
- if (o.current == null || !f) return;
136
- R(o.current);
137
- const { current: r } = o;
136
+ if (u.current == null || !f) return;
137
+ R(u.current);
138
+ const { current: r } = u;
138
139
  r.focus();
139
140
  const m = document.createRange();
140
141
  m.selectNodeContents(r);
141
142
  const E = window.getSelection();
142
143
  E?.removeAllRanges(), E?.addRange(m);
143
- }, [f]), o.current !== null && !f && (o.current.innerHTML = t);
144
+ }, [f]), u.current !== null && !f && (u.current.innerHTML = t);
144
145
  const $ = y((r) => {
145
146
  r?.addEventListener(j, () => p(!0));
146
- }, []), K = W(o, $);
147
+ }, []), K = W(u, $);
147
148
  return /* @__PURE__ */ x.jsx(
148
149
  L,
149
150
  {
@@ -155,7 +156,7 @@ const ie = (e) => {
155
156
  ),
156
157
  onBlur: () => {
157
158
  p(!1);
158
- const r = o.current;
159
+ const r = u.current;
159
160
  r != null && _(r);
160
161
  },
161
162
  onKeyDown: H,
@@ -168,34 +169,34 @@ const ie = (e) => {
168
169
  children: t
169
170
  }
170
171
  );
171
- }, de = ({
172
+ }, pe = ({
172
173
  onChange: e,
173
174
  disabled: t = !1,
174
175
  value: n,
175
176
  allowDoubleClick: s,
176
- ...u
177
- }) => t || e == null || e === !1 ? /* @__PURE__ */ x.jsx(L, { ...u, children: n }) : (e === !0 && (e = () => {
177
+ ...o
178
+ }) => t || e == null || e === !1 ? /* @__PURE__ */ x.jsx(L, { ...o, children: n }) : (e === !0 && (e = () => {
178
179
  }), /* @__PURE__ */ x.jsx(
179
180
  ne,
180
181
  {
181
182
  allowDoubleClick: s,
182
183
  onChange: e,
183
184
  value: n,
184
- ...u
185
+ ...o
185
186
  }
186
187
  ));
187
188
  export {
188
189
  ne as E,
189
- de as M,
190
+ pe as M,
190
191
  L as T,
191
- Ee as a,
192
- le as b,
192
+ de as a,
193
+ ae as b,
193
194
  q as c,
194
- ae as d,
195
+ fe as d,
195
196
  ee as e,
196
197
  W as f,
197
- fe as g,
198
+ Ee as g,
198
199
  Y as i,
199
200
  R as t,
200
- ie as u
201
+ le as u
201
202
  };
@@ -0,0 +1 @@
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;