@synnaxlabs/pluto 0.53.2 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/aether-BBeeeA1z.cjs +10 -0
  2. package/dist/aether-Bl3vMZO3.js +716 -0
  3. package/dist/aether-DmSenWd4.js +704 -0
  4. package/dist/aether-VeYJQDcf.cjs +11 -0
  5. package/dist/button-DBdzH6Ky.cjs +1 -0
  6. package/dist/button-KtgabnXL.js +251 -0
  7. package/dist/button.cjs +1 -1
  8. package/dist/button.js +2 -4
  9. package/dist/chunk-DeC0fbbY.js +23 -0
  10. package/dist/chunk-FeXHwk1_.cjs +1 -0
  11. package/dist/color-Cspp5cKp.js +7904 -0
  12. package/dist/color-DCCr0Z1b.cjs +29 -0
  13. package/dist/color.cjs +1 -1
  14. package/dist/color.js +2 -4
  15. package/dist/css-Ce-x3HcK.cjs +1 -0
  16. package/dist/css-UEo6g0SR.js +69 -0
  17. package/dist/css.cjs +1 -1
  18. package/dist/css.js +2 -8
  19. package/dist/dialog-BTCrp5Yv.cjs +1 -0
  20. package/dist/dialog-ClQI4sHo.js +331 -0
  21. package/dist/dialog.cjs +1 -1
  22. package/dist/dialog.js +2 -4
  23. package/dist/divider-BYRH8-5K.js +13 -0
  24. package/dist/divider-CEyntx31.cjs +1 -0
  25. package/dist/ether-CZlE80D0.cjs +53 -0
  26. package/dist/ether-KMGPzrZR.js +6222 -0
  27. package/dist/ether.cjs +1 -1
  28. package/dist/ether.js +4 -104
  29. package/dist/event-Btz3eWg1.cjs +1 -0
  30. package/dist/event-Z4V8c501.js +4 -0
  31. package/dist/flex-Bgtu0DK6.js +62 -0
  32. package/dist/flex-D_GoD3ed.cjs +1 -0
  33. package/dist/flex.cjs +1 -1
  34. package/dist/flex.js +2 -4
  35. package/dist/haul-BdMc4rLJ.js +171 -0
  36. package/dist/haul-ZdSHqhp6.cjs +1 -0
  37. package/dist/header-CNx3pAkx.js +64 -0
  38. package/dist/header-lD0sRjCR.cjs +1 -0
  39. package/dist/header.cjs +1 -1
  40. package/dist/header.js +2 -4
  41. package/dist/input-CdL1OPDU.cjs +74 -0
  42. package/dist/input-h-4axMs7.js +47772 -0
  43. package/dist/input.cjs +1 -1
  44. package/dist/input.js +2 -4
  45. package/dist/list-DacuSBB3.cjs +4 -0
  46. package/dist/list-dZDsxTzd.js +1756 -0
  47. package/dist/list.cjs +1 -1
  48. package/dist/list.js +2 -4
  49. package/dist/menu-eeXfR_zT.js +170 -0
  50. package/dist/menu-yADx33I8.cjs +1 -0
  51. package/dist/menu.cjs +1 -1
  52. package/dist/menu.js +2 -4
  53. package/dist/pluto.cjs +52 -0
  54. package/dist/pluto.css +2 -1
  55. package/dist/pluto.js +36474 -0
  56. package/dist/select-B93mFqvf.js +1328 -0
  57. package/dist/select-gt7wGGO4.cjs +1 -0
  58. package/dist/src/access/policy/queries.d.ts +34 -34
  59. package/dist/src/access/policy/queries.d.ts.map +1 -1
  60. package/dist/src/access/queries.d.ts +1 -1
  61. package/dist/src/access/queries.d.ts.map +1 -1
  62. package/dist/src/access/role/queries.d.ts +2 -12
  63. package/dist/src/access/role/queries.d.ts.map +1 -1
  64. package/dist/src/arc/queries.d.ts +1167 -29
  65. package/dist/src/arc/queries.d.ts.map +1 -1
  66. package/dist/src/channel/LinePlot.d.ts +2 -2
  67. package/dist/src/channel/LinePlot.d.ts.map +1 -1
  68. package/dist/src/channel/queries.d.ts +108 -60
  69. package/dist/src/channel/queries.d.ts.map +1 -1
  70. package/dist/src/color/Provider.d.ts +8 -8
  71. package/dist/src/device/queries.d.ts +148 -363
  72. package/dist/src/device/queries.d.ts.map +1 -1
  73. package/dist/src/flux/result.d.ts +5 -5
  74. package/dist/src/flux/result.d.ts.map +1 -1
  75. package/dist/src/flux/update.d.ts +1 -1
  76. package/dist/src/flux/update.d.ts.map +1 -1
  77. package/dist/src/icon/Icon.d.ts.map +1 -1
  78. package/dist/src/icon/registry.d.ts +1 -0
  79. package/dist/src/icon/registry.d.ts.map +1 -1
  80. package/dist/src/label/queries.d.ts +21 -21
  81. package/dist/src/label/queries.d.ts.map +1 -1
  82. package/dist/src/lineplot/aether/XAxis.d.ts +28 -28
  83. package/dist/src/lineplot/aether/YAxis.d.ts +28 -28
  84. package/dist/src/lineplot/aether/axis.d.ts +14 -14
  85. package/dist/src/lineplot/queries.d.ts +2 -2
  86. package/dist/src/lineplot/queries.d.ts.map +1 -1
  87. package/dist/src/lineplot/range/aether/provider.d.ts +126 -102
  88. package/dist/src/lineplot/range/aether/provider.d.ts.map +1 -1
  89. package/dist/src/lineplot/tooltip/aether/tooltip.d.ts +56 -56
  90. package/dist/src/log/aether/Log.d.ts +21 -21
  91. package/dist/src/log/queries.d.ts +2 -2
  92. package/dist/src/log/queries.d.ts.map +1 -1
  93. package/dist/src/memo/index.d.ts +0 -1
  94. package/dist/src/memo/index.d.ts.map +1 -1
  95. package/dist/src/memo/useMemoCompare.d.ts +0 -1
  96. package/dist/src/memo/useMemoCompare.d.ts.map +1 -1
  97. package/dist/src/rack/queries.d.ts.map +1 -1
  98. package/dist/src/ranger/aether/queries.d.ts.map +1 -1
  99. package/dist/src/ranger/queries.d.ts +19 -19
  100. package/dist/src/ranger/queries.d.ts.map +1 -1
  101. package/dist/src/schematic/queries.d.ts +2 -2
  102. package/dist/src/schematic/queries.d.ts.map +1 -1
  103. package/dist/src/schematic/symbol/Forms.d.ts.map +1 -1
  104. package/dist/src/schematic/symbol/Primitives.d.ts +2 -1
  105. package/dist/src/schematic/symbol/Primitives.d.ts.map +1 -1
  106. package/dist/src/schematic/symbol/SelectOrientation.d.ts.map +1 -1
  107. package/dist/src/schematic/symbol/Symbols.d.ts +35 -34
  108. package/dist/src/schematic/symbol/Symbols.d.ts.map +1 -1
  109. package/dist/src/schematic/symbol/queries.d.ts +96 -50
  110. package/dist/src/schematic/symbol/queries.d.ts.map +1 -1
  111. package/dist/src/schematic/symbol/registry.d.ts.map +1 -1
  112. package/dist/src/select/Dialog.d.ts +2 -1
  113. package/dist/src/select/Dialog.d.ts.map +1 -1
  114. package/dist/src/status/Select.d.ts.map +1 -1
  115. package/dist/src/status/SelectMulipleVariants.spec.d.ts +2 -0
  116. package/dist/src/status/SelectMulipleVariants.spec.d.ts.map +1 -0
  117. package/dist/src/status/SelectMultipleVariants.d.ts +9 -0
  118. package/dist/src/status/SelectMultipleVariants.d.ts.map +1 -0
  119. package/dist/src/status/SelectVariant.d.ts +2 -2
  120. package/dist/src/status/SelectVariant.d.ts.map +1 -1
  121. package/dist/src/status/SelectVariant.spec.d.ts +2 -0
  122. package/dist/src/status/SelectVariant.spec.d.ts.map +1 -0
  123. package/dist/src/status/aether/aggregator.d.ts +16 -2
  124. package/dist/src/status/aether/aggregator.d.ts.map +1 -1
  125. package/dist/src/status/aether/errorHandler.d.ts +2 -1
  126. package/dist/src/status/aether/errorHandler.d.ts.map +1 -1
  127. package/dist/src/status/base/Aggregator.d.ts +3 -2
  128. package/dist/src/status/base/Aggregator.d.ts.map +1 -1
  129. package/dist/src/status/external.d.ts +1 -0
  130. package/dist/src/status/external.d.ts.map +1 -1
  131. package/dist/src/status/queries.d.ts +25 -9
  132. package/dist/src/status/queries.d.ts.map +1 -1
  133. package/dist/src/status/variantData.d.ts +4 -0
  134. package/dist/src/status/variantData.d.ts.map +1 -0
  135. package/dist/src/table/cells/Cells.d.ts +17 -17
  136. package/dist/src/table/queries.d.ts +2 -2
  137. package/dist/src/table/queries.d.ts.map +1 -1
  138. package/dist/src/task/queries.d.ts +3 -3
  139. package/dist/src/task/queries.d.ts.map +1 -1
  140. package/dist/src/telem/aether/noop.d.ts.map +1 -1
  141. package/dist/src/telem/aether/static.d.ts +10 -10
  142. package/dist/src/telem/aether/telem.d.ts +1 -1
  143. package/dist/src/telem/aether/telem.d.ts.map +1 -1
  144. package/dist/src/telem/aether/transformers.d.ts +15 -15
  145. package/dist/src/telem/aether/transformers.d.ts.map +1 -1
  146. package/dist/src/telem/client/cache/cache.d.ts +1 -1
  147. package/dist/src/telem/client/cache/cache.d.ts.map +1 -1
  148. package/dist/src/telem/client/client.d.ts +4 -4
  149. package/dist/src/telem/client/client.d.ts.map +1 -1
  150. package/dist/src/telem/client/reader.d.ts +1 -1
  151. package/dist/src/telem/client/reader.d.ts.map +1 -1
  152. package/dist/src/telem/client/streamer.d.ts +1 -1
  153. package/dist/src/telem/client/streamer.d.ts.map +1 -1
  154. package/dist/src/telem/control/Controller.d.ts +1 -1
  155. package/dist/src/telem/control/Controller.d.ts.map +1 -1
  156. package/dist/src/telem/control/aether/chip.d.ts +16 -2
  157. package/dist/src/telem/control/aether/chip.d.ts.map +1 -1
  158. package/dist/src/telem/control/aether/controller.d.ts +16 -16
  159. package/dist/src/telem/control/aether/controller.d.ts.map +1 -1
  160. package/dist/src/telem/control/aether/indicator.d.ts +51 -37
  161. package/dist/src/telem/control/aether/indicator.d.ts.map +1 -1
  162. package/dist/src/telem/control/aether/legend.d.ts +18 -16
  163. package/dist/src/telem/control/aether/legend.d.ts.map +1 -1
  164. package/dist/src/telem/control/aether/state.d.ts +9 -8
  165. package/dist/src/telem/control/aether/state.d.ts.map +1 -1
  166. package/dist/src/theming/aether/provider.d.ts +990 -990
  167. package/dist/src/theming/base/theme.d.ts +330 -330
  168. package/dist/src/user/queries.d.ts +2 -2
  169. package/dist/src/view/queries.d.ts +2 -2
  170. package/dist/src/vis/axis/axis.d.ts +14 -14
  171. package/dist/src/vis/gauge/aether/gauge.d.ts +21 -21
  172. package/dist/src/vis/gauge/use.d.ts +7 -7
  173. package/dist/src/vis/line/aether/line.d.ts +7 -7
  174. package/dist/src/vis/measure/aether/measure.d.ts +56 -56
  175. package/dist/src/vis/rule/aether/aether.d.ts +14 -14
  176. package/dist/src/vis/value/aether/value.d.ts +42 -42
  177. package/dist/src/vis/value/redline.d.ts +5 -5
  178. package/dist/src/vis/value/redline.d.ts.map +1 -1
  179. package/dist/src/vis/value/use.d.ts +14 -14
  180. package/dist/src/workspace/queries.d.ts +6 -4
  181. package/dist/src/workspace/queries.d.ts.map +1 -1
  182. package/dist/tabs-CB7d2_0h.cjs +1 -0
  183. package/dist/tabs-DEXXNOZA.js +253 -0
  184. package/dist/tabs.cjs +1 -1
  185. package/dist/tabs.js +2 -4
  186. package/dist/text-Dd6wYgQM.js +142 -0
  187. package/dist/text-n3Fetdk6.cjs +1 -0
  188. package/dist/text.cjs +1 -1
  189. package/dist/text.js +2 -5
  190. package/dist/theming-Blgv4Cvi.js +591 -0
  191. package/dist/theming-KFfFjsRJ.cjs +1 -0
  192. package/dist/theming.cjs +1 -1
  193. package/dist/theming.js +2 -5
  194. package/dist/tree-B4jJAzS1.js +294 -0
  195. package/dist/tree-CsgSEpgy.cjs +1 -0
  196. package/dist/tree.cjs +1 -1
  197. package/dist/tree.js +2 -4
  198. package/dist/triggers-AqBSAR_T.cjs +1 -0
  199. package/dist/triggers-DDlalLoO.js +4748 -0
  200. package/dist/triggers.cjs +1 -1
  201. package/dist/triggers.js +2 -4
  202. package/dist/types-BGbd8pRh.js +73 -0
  203. package/dist/types-ByXvRm2h.cjs +1 -0
  204. package/dist/video-Bnr-2W9p.cjs +1 -0
  205. package/dist/video-ByMlaeKI.js +15 -0
  206. package/dist/video.cjs +1 -1
  207. package/dist/video.js +2 -4
  208. package/package.json +28 -29
  209. package/dist/Animated-B_N04fe6.cjs +0 -1
  210. package/dist/Animated-BsbNkFLg.cjs +0 -1
  211. package/dist/Animated-CLo1CLgn.js +0 -29
  212. package/dist/Animated-CO--9HPM.js +0 -354
  213. package/dist/Box-Bi280MYh.js +0 -96
  214. package/dist/Box-CNUz5BsV.cjs +0 -1
  215. package/dist/Copy-BgRUUzWz.cjs +0 -1
  216. package/dist/Copy-COWBkO_v.js +0 -337
  217. package/dist/Dialog-Bj7FiHJD.js +0 -59
  218. package/dist/Dialog-DBm6Fap1.cjs +0 -1
  219. package/dist/Editable-C17ILP50.js +0 -202
  220. package/dist/Editable-HUPqTaui.cjs +0 -1
  221. package/dist/Haul-CnZK3e-n.js +0 -132
  222. package/dist/Haul-DlwI4b25.cjs +0 -1
  223. package/dist/Items-CXBBG9Ip.cjs +0 -4
  224. package/dist/Items-DQba1BFQ.js +0 -842
  225. package/dist/Menu-BZ6ZGIv3.cjs +0 -1
  226. package/dist/Menu-CniMpPmC.js +0 -139
  227. package/dist/Provider-cSwm-2e_.cjs +0 -1
  228. package/dist/Provider-jFWpR0CX.js +0 -520
  229. package/dist/Tags-CxzMdPpm.cjs +0 -1
  230. package/dist/Tags-DvfGhiWv.js +0 -925
  231. package/dist/Text-2MISZsc5.js +0 -1712
  232. package/dist/Text-XHBXXDRS.cjs +0 -1
  233. package/dist/Video-Bew5_j16.js +0 -10
  234. package/dist/Video-BryrVNlH.cjs +0 -1
  235. package/dist/css-CloSmhZB.cjs +0 -1
  236. package/dist/css-D90kZTM8.js +0 -63
  237. package/dist/dimensions-CdFEW3oU.cjs +0 -1
  238. package/dist/dimensions-DbMN4145.js +0 -19
  239. package/dist/eraser-BShvqlBE.js +0 -958
  240. package/dist/eraser-rFMFKqsg.cjs +0 -11
  241. package/dist/event-BxvV3arE.cjs +0 -1
  242. package/dist/event-nNH_pXSr.js +0 -36
  243. package/dist/external-4jf1Bv96.cjs +0 -1
  244. package/dist/external-B2YeNEwd.cjs +0 -1
  245. package/dist/external-B9PnwQOL.js +0 -29
  246. package/dist/external-BBbkXXN0.js +0 -47
  247. package/dist/external-BByOkVID.cjs +0 -1
  248. package/dist/external-BrEnYrZV.js +0 -32
  249. package/dist/external-BwbypKCk.cjs +0 -1
  250. package/dist/external-C65vBow6.cjs +0 -1
  251. package/dist/external-CCcIJ20u.cjs +0 -1
  252. package/dist/external-CF4uh-dm.js +0 -51423
  253. package/dist/external-Cn6EfkLd.cjs +0 -1
  254. package/dist/external-CovFw1fv.cjs +0 -1
  255. package/dist/external-D2Zb9O5J.js +0 -93
  256. package/dist/external-D6aLGjMg.js +0 -8969
  257. package/dist/external-DDvmnE2k.js +0 -341
  258. package/dist/external-DTi9a-iK.cjs +0 -1
  259. package/dist/external-DYP1_xpd.js +0 -80
  260. package/dist/external-DxsuBuKe.js +0 -392
  261. package/dist/external-DysGdnTb.js +0 -130
  262. package/dist/external-N2L8ffzi.js +0 -71
  263. package/dist/external-UzXlHlr9.js +0 -24
  264. package/dist/external-_Ht_yCRf.cjs +0 -1
  265. package/dist/external-igNfmRSB.cjs +0 -28
  266. package/dist/external-uUEGzmui.cjs +0 -84
  267. package/dist/fontString-76R2eWDd.js +0 -29
  268. package/dist/fontString-BNnhiwug.cjs +0 -1
  269. package/dist/hooks-Co6IVYNw.cjs +0 -1
  270. package/dist/hooks-QNj6PdUo.js +0 -73
  271. package/dist/index.cjs +0 -60
  272. package/dist/index.js +0 -36886
  273. package/dist/jsx-runtime-nZSsnGb7.cjs +0 -6
  274. package/dist/jsx-runtime-tc70JA_2.js +0 -264
  275. package/dist/provider-Bt-E2O6g.js +0 -810
  276. package/dist/provider-DQkVj3tA.cjs +0 -10
  277. package/dist/src/memo/proxyMemo.d.ts +0 -3
  278. package/dist/src/memo/proxyMemo.d.ts.map +0 -1
  279. package/dist/types-CGRCBVD4.js +0 -82
  280. package/dist/types-DI2vtOGs.cjs +0 -1
  281. package/dist/units-Bu36uC6z.cjs +0 -1
  282. package/dist/units-DMip-eZH.js +0 -14
  283. package/dist/useStaticData-BTwIe0Il.cjs +0 -1
  284. package/dist/useStaticData-p8sk2VCJ.js +0 -1051
  285. package/dist/value-BkUH03tl.cjs +0 -53
  286. package/dist/value-D0vfKEY3.js +0 -6821
@@ -0,0 +1,716 @@
1
+ import { n as e } from "./chunk-DeC0fbbY.js";
2
+ import { d as t, o as n, t as r } from "./types-BGbd8pRh.js";
3
+ import { NotFoundError as i, UnexpectedError as a, ValidationError as o } from "@synnaxlabs/client";
4
+ import { color as s, deep as c, shallow as l, status as u } from "@synnaxlabs/x";
5
+ import { z as d } from "zod";
6
+ import { alamos as f } from "@synnaxlabs/alamos";
7
+ //#region src/util/zod.ts
8
+ var p = (e, t, n = "") => {
9
+ try {
10
+ return e.parse(t);
11
+ } catch (e) {
12
+ if (e instanceof d.ZodError) {
13
+ let t = e.issues.map((e) => e.path.length === 0 ? e.message : `${e.path.join(".")}: ${e.message}`);
14
+ throw Error(`${n} - ${t.join("\n")}`, { cause: e });
15
+ } else throw e;
16
+ }
17
+ }, ee = /* @__PURE__ */ e({
18
+ Composite: () => _,
19
+ Leaf: () => g,
20
+ Root: () => v,
21
+ isFireAndForget: () => h,
22
+ render: () => y
23
+ }), m = (e, t) => e instanceof Error ? (e.message = `[${t}] - ${e.message}`, e) : Error(t ?? "unknown error", { cause: e }), h = (e) => {
24
+ let t = e._zod.def.output;
25
+ return t instanceof d.ZodVoid || t instanceof d.ZodNever || t instanceof d.ZodUnknown;
26
+ }, g = class {
27
+ type;
28
+ key;
29
+ sender;
30
+ _internalState;
31
+ _state;
32
+ _prevState;
33
+ _deleted = !1;
34
+ parentCtxValues;
35
+ childCtxValues;
36
+ childCtxChangedKeys;
37
+ instrumentation;
38
+ schema = void 0;
39
+ methods = void 0;
40
+ _methodImplementations = null;
41
+ constructor({ key: e, type: t, sender: n, instrumentation: r, parentCtxValues: i }) {
42
+ this.type = t, this.key = e, this.sender = n, this._internalState = {}, this.instrumentation = r.child(this.toString()), this.parentCtxValues = /* @__PURE__ */ new Map(), i?.forEach((e, t) => this.parentCtxValues.set(t, e)), this.childCtxValues = /* @__PURE__ */ new Map(), this.childCtxChangedKeys = /* @__PURE__ */ new Set();
43
+ }
44
+ initializeMethods() {
45
+ if (!(this.methods == null || this._methodImplementations != null)) {
46
+ this._methodImplementations = {};
47
+ for (let [e, t] of Object.entries(this.methods)) {
48
+ let n = this[e];
49
+ if (typeof n != "function") throw Error(`Method ${e} is not a function`);
50
+ this._methodImplementations[e] = h(t) ? t.implement(n.bind(this)) : t.implementAsync(n.bind(this));
51
+ }
52
+ }
53
+ }
54
+ get _schema() {
55
+ if (this.schema == null) throw new o("[AetherLeaf] - expected subclass to define component schema, but none was found.\n Make sure to define a property 'schema' on the class.");
56
+ return this.schema;
57
+ }
58
+ setState(e) {
59
+ let n = t(e, this.state);
60
+ this._prevState = l.copy(this._state), this._state = p(this._schema, n, `${this.toString()}`), this.sender.send({
61
+ variant: "update",
62
+ key: this.key,
63
+ state: this._state
64
+ });
65
+ }
66
+ get state() {
67
+ if (this._state == null) throw new a(`[AetherLeaf] - state not defined in ${this.toString()}`);
68
+ return this._state;
69
+ }
70
+ get internal() {
71
+ return this._internalState;
72
+ }
73
+ get prevState() {
74
+ if (this._prevState === void 0) throw Error("prevState not defined");
75
+ return this._prevState;
76
+ }
77
+ get deleted() {
78
+ return this._deleted;
79
+ }
80
+ get ctx() {
81
+ return {
82
+ get: (e) => {
83
+ let t = this.parentCtxValues.get(e);
84
+ if (t === void 0) throw new i(`Context value for ${e} not found on ${this.toString()}`);
85
+ return t;
86
+ },
87
+ getOptional: (e) => this.parentCtxValues.get(e),
88
+ has: (e) => this.parentCtxValues.has(e),
89
+ wasSetPreviously: (e) => this.childCtxValues.has(e),
90
+ set: (e, t, n = !0) => {
91
+ this.childCtxValues.set(e, t), n && this.childCtxChangedKeys.add(e);
92
+ }
93
+ };
94
+ }
95
+ toString() {
96
+ return `${this.type}(${this.key})`;
97
+ }
98
+ _updateState({ path: e, state: t }) {
99
+ if (!this.deleted) try {
100
+ this.initializeMethods();
101
+ let n = this.instrumentation.T.debug(`${this.toString()}:updateState`);
102
+ this.validatePath(e);
103
+ let r = p(this._schema, t, `${this.toString()}`);
104
+ this._state == null ? this.instrumentation.L.debug("setting initial state", {
105
+ state: t,
106
+ path: e
107
+ }) : this.instrumentation.L.debug("updating state", () => ({ diff: c.difference(this.state, r) })), this._prevState = this._state ?? r, this._state = r, this.afterUpdate(this.ctx), n();
108
+ } catch (e) {
109
+ throw m(e, `${this.toString()}.updateState`);
110
+ }
111
+ }
112
+ _updateContext(e) {
113
+ try {
114
+ let t = this.instrumentation.T.debug(`${this.toString()}:updateContext`);
115
+ e.forEach((e, t) => this.parentCtxValues.set(t, e)), this.afterUpdate(this.ctx), t();
116
+ } catch (e) {
117
+ throw m(e, `${this.type}.${this.key}.updateContext`);
118
+ }
119
+ }
120
+ _delete(e) {
121
+ try {
122
+ let t = this.instrumentation.T.debug(`${this.toString()}:delete`);
123
+ this.validatePath(e), this._deleted = !0, this.afterDelete(this.ctx), t();
124
+ } catch (e) {
125
+ throw m(e, `[${this.toString()}:delete]`);
126
+ }
127
+ }
128
+ afterUpdate(e) {}
129
+ afterDelete(e) {}
130
+ validatePath(e) {
131
+ if (e.length === 0) throw new a(`[Leaf.setState] - ${this.toString()} received an empty path`);
132
+ let t = e[e.length - 1];
133
+ if (e.length > 1) throw new a(`[Leaf.setState] - ${this.toString()} received a subPath ${e.join(".")} but is a leaf`);
134
+ if (t !== this.key) throw new a(`[Leaf.setState] - ${this.toString()} received a key ${t} but expected ${this.key}`);
135
+ }
136
+ handleInvokeError({ method: e, key: t, args: n }, r) {
137
+ if (t == null) return console.error(`Error in fire and forget method ${e} on ${this.toString()}`, r);
138
+ let i = r instanceof Error ? r : Error(String(r));
139
+ this.sender.send({
140
+ variant: "invoke_response",
141
+ key: t,
142
+ result: void 0,
143
+ error: {
144
+ name: i.name,
145
+ message: `Failed to execute ${e}(${t}) with args ${JSON.stringify(n)} on ${this.toString()}: ${i.message}`,
146
+ stack: i.stack ?? ""
147
+ }
148
+ });
149
+ }
150
+ _invokeMethod(e) {
151
+ if (this.deleted) return;
152
+ let { method: t, key: n, args: r } = e, i = n != null, a = this._methodImplementations?.[t];
153
+ if (a == null) return this.handleInvokeError(e, /* @__PURE__ */ Error(`Method ${t} not found on ${this.toString()}`));
154
+ try {
155
+ let t = a(...r);
156
+ t instanceof Promise && t.then((e) => {
157
+ i && this.sender.send({
158
+ variant: "invoke_response",
159
+ key: n,
160
+ result: e
161
+ });
162
+ }).catch((t) => this.handleInvokeError(e, t));
163
+ } catch (t) {
164
+ this.handleInvokeError(e, t);
165
+ }
166
+ }
167
+ }, _ = class extends g {
168
+ _children = /* @__PURE__ */ new Map();
169
+ get children() {
170
+ return Array.from(this._children.values());
171
+ }
172
+ getChild(e) {
173
+ return this._children.get(e) ?? null;
174
+ }
175
+ childrenOfType(...e) {
176
+ return this.children.filter((t) => e.includes(t.type));
177
+ }
178
+ _updateState(e) {
179
+ let { path: t, type: n, create: r } = e;
180
+ if (this.deleted) return;
181
+ let i = this.parsePath(t);
182
+ if (i.length === 0) {
183
+ if (this.childCtxChangedKeys.clear(), super._updateState(e), this.childCtxChangedKeys.size == 0) return;
184
+ this.updateChildContexts();
185
+ return;
186
+ }
187
+ let o = i[0], s = this.getChild(o);
188
+ if (s != null) return s._updateState({
189
+ ...e,
190
+ path: i
191
+ });
192
+ if (i.length > 1) {
193
+ let e = t.slice(0, t.indexOf(o) + 1).join("."), r = t.join(".");
194
+ throw new a(`Child of ${this.toString()} at path ${e} does not exist,
195
+ but an extended path ${r} was provided. This means that the aether
196
+ tree is attempting to create a new child of type ${n} (or nested children)
197
+ on a child that does not exist.
198
+
199
+ Children present: ${this.children.map((e) => `${e.type}:${e.key}`).join(".")}
200
+
201
+ `);
202
+ }
203
+ let c = r(this.childCtx());
204
+ c._updateState({
205
+ ...e,
206
+ path: i
207
+ }), this._children.set(o, c);
208
+ }
209
+ _updateContext(e) {
210
+ super._updateContext(e), this.updateChildContexts();
211
+ }
212
+ childCtx() {
213
+ return {
214
+ get: (e) => this.childCtxValues.get(e) ?? this.parentCtxValues.get(e),
215
+ forEach: (e) => {
216
+ this.childCtxValues.forEach((t, n) => e(t, n, this.childCtxValues)), this.parentCtxValues.forEach((t, n) => {
217
+ this.childCtxValues.has(n) || e(t, n, this.parentCtxValues);
218
+ });
219
+ }
220
+ };
221
+ }
222
+ updateChildContexts() {
223
+ let e = this.childCtx();
224
+ this.children.forEach((t) => t._updateContext(e));
225
+ }
226
+ _delete(e) {
227
+ let t = this.parsePath(e);
228
+ if (t.length === 0) {
229
+ for (let e of this.children) e._delete([e.key]);
230
+ this._children.clear(), super._delete([this.key]);
231
+ }
232
+ let n = this.getChild(t[0]);
233
+ if (n != null) {
234
+ if (t.length > 1) return n._delete(t);
235
+ this._children.delete(n.key), n._delete(t);
236
+ }
237
+ }
238
+ findChildAtPath(e) {
239
+ if (e.length === 0) return null;
240
+ let [t, ...n] = e, r = this.getChild(t);
241
+ return r == null ? null : n.length === 0 ? r : "findChildAtPath" in r && typeof r.findChildAtPath == "function" ? r.findChildAtPath(n) : null;
242
+ }
243
+ parsePath(e, t) {
244
+ let [n, ...r] = e;
245
+ if (n == null) throw Error(`Composite ${this.toString()} received an empty path${t == null ? "" : ` for ${t}`}`);
246
+ if (n !== this.key) throw new a(`[Composite.getRequiredKey] - ${this.toString()} received a key ${n} but expected ${this.key}`);
247
+ return r;
248
+ }
249
+ }, te = d.object({}), ne = () => {
250
+ throw Error("should not call create");
251
+ }, v = class e extends _ {
252
+ static TYPE = "root";
253
+ static KEY = "root";
254
+ comms;
255
+ registry;
256
+ schema = te;
257
+ constructor({ comms: t, instrumentation: n = f.Instrumentation.NOOP, registry: r }) {
258
+ super({
259
+ key: e.KEY,
260
+ type: e.TYPE,
261
+ sender: t,
262
+ instrumentation: n,
263
+ parentCtxValues: null
264
+ }), this.comms = t, this.registry = r;
265
+ }
266
+ static render(t) {
267
+ let n = new e(t);
268
+ return n._updateState({
269
+ path: [e.KEY],
270
+ type: "",
271
+ state: {},
272
+ create: ne
273
+ }), n.comms.handle((e) => {
274
+ try {
275
+ n.handle(e);
276
+ } catch (e) {
277
+ let t = {
278
+ name: "unknown",
279
+ message: JSON.stringify(e),
280
+ stack: "unknown"
281
+ };
282
+ e instanceof Error && (t.name = e.name, t.message = e.message, t.stack = e.stack), n.comms.send({
283
+ variant: "error",
284
+ error: t
285
+ });
286
+ }
287
+ }), n;
288
+ }
289
+ handle(e) {
290
+ let { variant: t } = e;
291
+ if (t === "invoke_request") {
292
+ this.invokeAtPath(e);
293
+ return;
294
+ }
295
+ let { path: n, type: r } = e;
296
+ if (t === "delete") {
297
+ this._delete(n);
298
+ return;
299
+ }
300
+ let { state: i } = e;
301
+ this._updateState({
302
+ path: n,
303
+ type: r,
304
+ state: i,
305
+ create: (e) => {
306
+ let t = n[n.length - 1];
307
+ return this.create({
308
+ key: t,
309
+ type: r,
310
+ parentCtxValues: e
311
+ });
312
+ }
313
+ });
314
+ }
315
+ invokeAtPath(t) {
316
+ let { path: n } = t, [r, ...a] = n;
317
+ if (r !== e.KEY) {
318
+ this.handleInvokeError(t, /* @__PURE__ */ Error(`Invalid path: expected root key '${e.KEY}', got '${r}'`));
319
+ return;
320
+ }
321
+ if (a.length === 0) {
322
+ this._invokeMethod(t);
323
+ return;
324
+ }
325
+ let o = this.findChildAtPath(a);
326
+ if (o == null) {
327
+ this.handleInvokeError(t, new i(`Component at path ${n.join(".")} not found`));
328
+ return;
329
+ }
330
+ o._invokeMethod(t);
331
+ }
332
+ create({ key: e, type: t, parentCtxValues: n }) {
333
+ let r = this.registry[t];
334
+ if (r == null) throw new a(`[Root.create] - ${t} not found in registry`);
335
+ return new r({
336
+ key: e,
337
+ type: t,
338
+ sender: this.comms,
339
+ instrumentation: this.instrumentation,
340
+ parentCtxValues: n
341
+ });
342
+ }
343
+ }, y = v.render.bind(v), b = (e, t) => Array.isArray(t) ? t.some((t) => t.matches(e)) : t?.matches(e) ?? !1, re = (e) => {
344
+ console.error(u.toString(e));
345
+ }, x = (e, t, n) => {
346
+ let r = u.fromException(e, t);
347
+ return re(r), b(e, n) ? null : r;
348
+ }, S = (e, t, n, r) => {
349
+ if (typeof e == "function") return !0;
350
+ let i = x(e, n, r);
351
+ return i != null && t(i), !1;
352
+ }, C = async (e, t, n, r) => {
353
+ try {
354
+ let t = e();
355
+ t != null && await t;
356
+ } catch (e) {
357
+ let i = x(e, n, r);
358
+ if (i != null) return t(i);
359
+ }
360
+ }, w = (e) => (t, n, r) => {
361
+ S(t, e, n, r) && C(t, e, n, r);
362
+ }, T = (e) => async (t, n, r) => {
363
+ S(t, e, n, r) && await C(t, e, n, r);
364
+ }, E = d.object({ statuses: u.statusZ().array() }), D = "status.aggregator", O = class extends _ {
365
+ static TYPE = "status.Aggregator";
366
+ schema = E;
367
+ afterUpdate(e) {
368
+ e.wasSetPreviously(D) || e.set(D, {
369
+ add: this.add.bind(this),
370
+ create: u.create
371
+ });
372
+ }
373
+ add(e) {
374
+ this.setState((t) => ({
375
+ ...t,
376
+ statuses: [...t.statuses, u.create(e)]
377
+ }));
378
+ }
379
+ }, k = (e) => e.get(D).add, ie = (e) => {
380
+ let t = e.getOptional(D);
381
+ return t == null ? () => {} : t.add;
382
+ }, A = (e) => w(k(e)), ae = (e) => T(k(e)), oe = { [O.TYPE]: O }, se = d.object({
383
+ l0: s.colorZ,
384
+ l1: s.colorZ,
385
+ l2: s.colorZ,
386
+ l3: s.colorZ,
387
+ l4: s.colorZ,
388
+ l5: s.colorZ,
389
+ l6: s.colorZ,
390
+ l7: s.colorZ,
391
+ l8: s.colorZ,
392
+ l9: s.colorZ,
393
+ l10: s.colorZ,
394
+ l11: s.colorZ
395
+ }), j = (e, t) => [
396
+ e[0],
397
+ e[1],
398
+ t,
399
+ e[3]
400
+ ], M = d.object({
401
+ m2: s.colorZ,
402
+ m1: s.colorZ,
403
+ z: s.colorZ,
404
+ p1: s.colorZ,
405
+ p2: s.colorZ
406
+ }).or(s.colorZ.transform((e) => {
407
+ let t = s.hsla(e);
408
+ return {
409
+ m2: s.fromHSLA(j(t, 40)),
410
+ m1: s.fromHSLA(j(t, 45)),
411
+ z: e,
412
+ p1: s.fromHSLA(j(t, 55)),
413
+ p2: s.fromHSLA(j(t, 65))
414
+ };
415
+ })), N = d.object({
416
+ name: d.string(),
417
+ key: d.string(),
418
+ colors: d.object({
419
+ border: s.colorZ,
420
+ primary: M,
421
+ gray: se,
422
+ error: M,
423
+ secondary: M,
424
+ warning: M,
425
+ palettes: d.record(d.string(), s.paletteZ),
426
+ visualization: d.object({ palettes: d.record(d.string(), d.array(s.colorZ)) }).default({ palettes: {} }),
427
+ white: s.colorZ,
428
+ black: s.colorZ,
429
+ text: s.colorZ,
430
+ textInverted: s.colorZ,
431
+ textOnPrimary: s.colorZ.default(s.ZERO),
432
+ primaryText: s.colorZ,
433
+ errorText: s.colorZ,
434
+ warningText: s.colorZ,
435
+ logo: d.string()
436
+ }),
437
+ sizes: d.object({
438
+ base: d.number(),
439
+ border: d.object({
440
+ radius: d.number(),
441
+ width: d.number(),
442
+ thickWidth: d.number()
443
+ }),
444
+ schematic: d.object({ elementStrokeWidth: d.number() })
445
+ }),
446
+ typography: d.object({
447
+ family: d.string(),
448
+ codeFamily: d.string(),
449
+ h1: n,
450
+ h2: n,
451
+ h3: n,
452
+ h4: n,
453
+ h5: n,
454
+ p: n,
455
+ small: n
456
+ })
457
+ }).transform((e) => ((e.colors.textOnPrimary == null || s.isZero(e.colors.textOnPrimary)) && (e.colors.textOnPrimary = s.pickByContrast(e.colors.primary.z, e.colors.text, e.colors.textInverted)), e)), P = "\"Inter Variable\", sans-serif", F = "\"Geist Mono\", monospace", ce = 6, I = [
458
+ 357,
459
+ 91,
460
+ 55,
461
+ 1
462
+ ], L = [
463
+ 48,
464
+ 90,
465
+ 55,
466
+ 1
467
+ ], R = Object.fromEntries([
468
+ "#FEFEFE",
469
+ "#FAFAFA",
470
+ "#F2F2F2",
471
+ "#ECECEC",
472
+ "#E4E4E4",
473
+ "#D1D1D1",
474
+ "#BCBCBC",
475
+ "#ACACAC",
476
+ "#8F8F8F",
477
+ "#4F4F4F",
478
+ "#292929",
479
+ "#050505"
480
+ ].map((e, t) => [`l${t}`, e])), le = typeof window > "u" ? !1 : window.devicePixelRatio > 1, z = {
481
+ key: "synnaxBase",
482
+ name: "Synnax Base",
483
+ colors: {
484
+ primary: {
485
+ m2: "#041B3D",
486
+ m1: "#356fc5",
487
+ z: "#3774D0",
488
+ p1: "#5E94EE",
489
+ p2: "#8AB8FF"
490
+ },
491
+ secondary: {
492
+ m2: "#2D8F4E",
493
+ m1: "#38B261",
494
+ z: "#50C878",
495
+ p1: "#73D393",
496
+ p2: "#96DEAE"
497
+ },
498
+ gray: R,
499
+ border: R.l4,
500
+ error: {
501
+ m2: s.fromHSLA(j(I, 30)),
502
+ m1: s.fromHSLA(j(I, 40)),
503
+ z: s.fromHSLA(I),
504
+ p1: s.fromHSLA(j(I, 65)),
505
+ p2: s.fromHSLA(j(I, 77))
506
+ },
507
+ warning: {
508
+ m2: s.fromHSLA(j(L, 30)),
509
+ m1: s.fromHSLA(j(L, 40)),
510
+ z: s.fromHSLA(L),
511
+ p1: s.fromHSLA(j(L, 65)),
512
+ p2: s.fromHSLA(j(L, 75))
513
+ },
514
+ palettes: { recent: {
515
+ key: "recent",
516
+ name: "Recent",
517
+ swatches: []
518
+ } },
519
+ visualization: { palettes: { default: [
520
+ "#DC136C",
521
+ "#20A4F3",
522
+ "#7AC74F",
523
+ "#FFC43D",
524
+ "#FE5F55",
525
+ "#8075FF",
526
+ "#D90429",
527
+ "#f7aef8",
528
+ "#f18f01",
529
+ "#791e94",
530
+ "#279af1",
531
+ "#d9fff5",
532
+ "#ff6b6b",
533
+ "#52ffb8"
534
+ ] } },
535
+ logo: "url(#synnax-linear-gradient)",
536
+ white: "#FFFFFF",
537
+ black: "#000000",
538
+ text: R.l11,
539
+ textInverted: R.l0,
540
+ textOnPrimary: R.l0,
541
+ primaryText: "#3b82f6",
542
+ errorText: "#ef4444",
543
+ warningText: "#f59e0b"
544
+ },
545
+ sizes: {
546
+ base: ce,
547
+ border: {
548
+ radius: 3,
549
+ width: le ? .5 : 1,
550
+ thickWidth: 1
551
+ },
552
+ schematic: { elementStrokeWidth: 2 }
553
+ },
554
+ typography: {
555
+ family: P,
556
+ codeFamily: F,
557
+ h1: {
558
+ size: 5.5,
559
+ weight: "500",
560
+ lineHeight: 5.5 * 1.5
561
+ },
562
+ h2: {
563
+ size: 4.5,
564
+ weight: "medium",
565
+ lineHeight: 4.5 * 1.5
566
+ },
567
+ h3: {
568
+ size: 3.5,
569
+ weight: "medium",
570
+ lineHeight: 3.5 * 1.5
571
+ },
572
+ h4: {
573
+ size: 2.6666,
574
+ weight: "medium",
575
+ lineHeight: 2.6666 * 1.5
576
+ },
577
+ h5: {
578
+ size: 2.333333,
579
+ weight: 450,
580
+ lineHeight: 2.333333 * 1.5
581
+ },
582
+ p: {
583
+ size: 2.1666666666,
584
+ weight: "regular",
585
+ lineHeight: 2 * 1.5
586
+ },
587
+ small: {
588
+ size: 1.916666,
589
+ weight: "regular",
590
+ lineHeight: 2.3333333
591
+ }
592
+ }
593
+ }, B = Object.freeze({
594
+ ...z,
595
+ key: "synnaxLight",
596
+ name: "Synnax Light"
597
+ }), V = Object.fromEntries([
598
+ "#020202",
599
+ "#080808",
600
+ "#151515",
601
+ "#202020",
602
+ "#272727",
603
+ "#3B3B3B",
604
+ "#4A4A4A",
605
+ "#5C5C5C",
606
+ "#767676",
607
+ "#959595",
608
+ "#dadada",
609
+ "#FAFAFA"
610
+ ].map((e, t) => [`l${t}`, e])), H = Object.freeze({
611
+ ...z,
612
+ key: "synnaxDark",
613
+ name: "Synnax Dark",
614
+ colors: {
615
+ ...z.colors,
616
+ gray: V,
617
+ logo: "var(--pluto-text-color)",
618
+ border: V.l4,
619
+ text: V.l11,
620
+ textInverted: V.l0,
621
+ textOnPrimary: V.l11,
622
+ primaryText: "#93c5fd",
623
+ errorText: "#fca5a5",
624
+ warningText: "#fcd34d"
625
+ }
626
+ }), U = {
627
+ synnaxDark: H,
628
+ synnaxLight: B
629
+ }, W = [
630
+ "tiny",
631
+ "small",
632
+ "medium",
633
+ "large",
634
+ "huge"
635
+ ], G = d.enum(W), K = (e) => G.safeParse(e).success, q = [
636
+ {
637
+ weight: 200,
638
+ style: "light",
639
+ value: "Inter 200, sans-serif"
640
+ },
641
+ {
642
+ weight: 300,
643
+ value: "Inter Threee, sans-serif"
644
+ },
645
+ {
646
+ weight: 400,
647
+ value: "Inter Four, sans-serif"
648
+ },
649
+ {
650
+ weight: 500,
651
+ value: "Inter Five, sans-serif"
652
+ },
653
+ {
654
+ weight: 600,
655
+ value: "Inter Six, sans-serif"
656
+ },
657
+ {
658
+ weight: 700,
659
+ value: "Inter Seven, sans-serif"
660
+ },
661
+ {
662
+ weight: 800,
663
+ value: "Inter Eight, sans-serif"
664
+ },
665
+ {
666
+ weight: 900,
667
+ style: "bold",
668
+ value: "Inter Nine, sans-serif"
669
+ }
670
+ ], ue = (e) => q.find((t, n) => n === q.length - 1 ? !0 : typeof e == "number" ? e >= t.weight && e < q[n + 1].weight : t.style === e), J = (e, { level: t, weight: n, code: i }) => {
671
+ let { typography: a, sizes: { base: o } } = e, s = a.family;
672
+ if (i) s = a.codeFamily;
673
+ else if (n != null) {
674
+ let e = ue(n);
675
+ s = e == null ? "Inter Light, sans-serif" : e.value;
676
+ }
677
+ let c = (o * a[K(t) ? r[t] : t].size).toFixed(1), [l, u] = s.split(", ");
678
+ return n == null ? ` ${c}px ${s}` : ` ${n} ${c}px ${l}, ${u}`;
679
+ }, Y = "pluto-theming-context", X = d.object({
680
+ name: d.string(),
681
+ url: d.string()
682
+ }), de = d.object({
683
+ theme: N,
684
+ fontURLs: d.array(X)
685
+ }), Z = class e extends _ {
686
+ static TYPE = "theming.Provider";
687
+ static z = de;
688
+ schema = e.z;
689
+ afterUpdate(e) {
690
+ e.getOptional(Y) != null && this.state.theme.key === this.prevState.theme.key || (e.set(Y, this.state.theme), A(e)(async () => {
691
+ await this.loadFonts();
692
+ }, "failed to load theme fonts"));
693
+ }
694
+ async loadFonts() {
695
+ await Promise.all(this.state.fontURLs.map(async ({ name: e, url: t }) => {
696
+ let n = new FontFace(e, `url(${t})`);
697
+ try {
698
+ await n.load(), self.fonts.add(n);
699
+ } catch (e) {
700
+ console.error(e);
701
+ }
702
+ }));
703
+ }
704
+ }, Q = (e) => e.get(Y), $ = { [Z.TYPE]: Z }, fe = /* @__PURE__ */ e({
705
+ Provider: () => Z,
706
+ REGISTRY: () => $,
707
+ SYNNAX_DARK: () => H,
708
+ SYNNAX_LIGHT: () => B,
709
+ SYNNAX_THEMES: () => U,
710
+ fontSpecZ: () => X,
711
+ fontString: () => J,
712
+ themeZ: () => N,
713
+ use: () => Q
714
+ });
715
+ //#endregion
716
+ export { g as C, p as D, y as E, _ as S, h as T, ae as _, J as a, T as b, G as c, U as d, N as f, k as g, E as h, Q as i, H as l, oe as m, Z as n, W as o, O as p, $ as r, K as s, fe as t, B as u, A as v, ee as w, w as x, ie as y };