@synnaxlabs/pluto 0.21.10 → 0.23.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 (615) hide show
  1. package/dist/Animated-DPIV1IH6.js +19 -0
  2. package/dist/Animated-DjcnDVGC.cjs +1 -0
  3. package/dist/Keyboard-BLHHROrq.js +13 -0
  4. package/dist/Keyboard-CJLEUbYu.cjs +1 -0
  5. package/dist/LinePlot-C9MVJErC.js +10771 -0
  6. package/dist/LinePlot-DkAUE5Nq.cjs +68 -0
  7. package/dist/Link-BsqVxj6V.js +10 -0
  8. package/dist/Link-C3NUk5cp.cjs +1 -0
  9. package/dist/List-BbB1S5Vo.cjs +1 -0
  10. package/dist/List-DPugi06W.js +22 -0
  11. package/dist/Pack-CBNcamuh.cjs +1 -0
  12. package/dist/Pack-mkZBsSIU.js +125 -0
  13. package/dist/Toggle-BBGPiXIA.cjs +188 -0
  14. package/dist/Toggle-W4K3cLf7.js +43751 -0
  15. package/dist/Video-C2EYBKLN.js +14 -0
  16. package/dist/Video-Kb-c-N69.cjs +1 -0
  17. package/dist/aggregator-BZJAV5yZ.js +11109 -0
  18. package/dist/aggregator-DueF6Q-Z.cjs +45 -0
  19. package/dist/align.cjs +1 -5
  20. package/dist/align.js +2 -3
  21. package/dist/button.cjs +1 -5
  22. package/dist/button.js +1 -2
  23. package/dist/color.cjs +1 -5
  24. package/dist/color.js +1 -2
  25. package/dist/css-DZx3bWkH.cjs +1 -0
  26. package/dist/css-TXuXKs3A.js +1364 -0
  27. package/dist/css.cjs +1 -9
  28. package/dist/css.js +6 -7
  29. package/dist/dropdown.cjs +1 -5
  30. package/dist/dropdown.js +2 -3
  31. package/dist/ether.cjs +1 -84
  32. package/dist/ether.js +72 -77
  33. package/dist/external-0w2SHXg_.js +13 -0
  34. package/dist/external-B-CtJFCn.js +96 -0
  35. package/dist/external-B39SmpRo.js +201 -0
  36. package/dist/external-BB2SaR1o.js +14 -0
  37. package/dist/external-BKWizK6o.cjs +1 -0
  38. package/dist/external-BbnWD0Pc.js +66 -0
  39. package/dist/external-BphNoXuB.js +92 -0
  40. package/dist/external-CduvGaPN.js +1183 -0
  41. package/dist/external-CsPOXIEm.cjs +1 -0
  42. package/dist/external-CyiLaYmg.js +322 -0
  43. package/dist/external-CztU6wom.cjs +1 -0
  44. package/dist/external-D1NnASGa.cjs +1 -0
  45. package/dist/external-DjjMU4Z6.cjs +1 -0
  46. package/dist/external-DlCoToEB.cjs +1 -0
  47. package/dist/external-DrS33VU5.cjs +1 -0
  48. package/dist/external-DsNtnR-y.cjs +1 -0
  49. package/dist/external-TNsi3_BK.js +111 -0
  50. package/dist/external-WGyRiKbb.js +129 -0
  51. package/dist/external-WzX6JA2j.cjs +1 -0
  52. package/dist/external-XoJlPNFB.js +22 -0
  53. package/dist/external-fg-pJfZR.js +260 -0
  54. package/dist/external-mlV4Onnq.cjs +1 -0
  55. package/dist/external-vZfda3xX.cjs +1 -0
  56. package/dist/external-vgqH7hLg.cjs +1 -0
  57. package/dist/header.cjs +1 -5
  58. package/dist/header.js +2 -3
  59. package/dist/index.cjs +1 -8532
  60. package/dist/index.js +5919 -7438
  61. package/dist/input.cjs +1 -5
  62. package/dist/input.js +2 -3
  63. package/dist/jsx-runtime-DqxPLdyS.js +623 -0
  64. package/dist/jsx-runtime-fmb_vB8K.cjs +25 -0
  65. package/dist/list.cjs +1 -5
  66. package/dist/list.js +2 -3
  67. package/dist/menu.cjs +1 -5
  68. package/dist/menu.js +2 -3
  69. package/dist/src/accordion/Accordion.d.ts.map +1 -1
  70. package/dist/src/aether/aether/aether.d.ts +1 -1
  71. package/dist/src/aether/aether/aether.d.ts.map +1 -1
  72. package/dist/src/aether/main.d.ts +1 -1
  73. package/dist/src/aether/main.d.ts.map +1 -1
  74. package/dist/src/aether/main.spec.d.ts.map +1 -1
  75. package/dist/src/aether/test/test.d.ts.map +1 -1
  76. package/dist/src/alamos/Provider.d.ts +1 -1
  77. package/dist/src/alamos/Provider.d.ts.map +1 -1
  78. package/dist/src/alamos/aether/alamos.d.ts +6 -6
  79. package/dist/src/align/Center.d.ts.map +1 -1
  80. package/dist/src/align/Pack.d.ts.map +1 -1
  81. package/dist/src/align/Space.d.ts +1 -1
  82. package/dist/src/align/Space.d.ts.map +1 -1
  83. package/dist/src/align/external.d.ts +2 -2
  84. package/dist/src/align/external.d.ts.map +1 -1
  85. package/dist/src/button/Button.d.ts +1 -1
  86. package/dist/src/button/Button.d.ts.map +1 -1
  87. package/dist/src/button/Icon.d.ts.map +1 -1
  88. package/dist/src/button/Toggle.d.ts.map +1 -1
  89. package/dist/src/caret/Animated.d.ts +9 -0
  90. package/dist/src/caret/Animated.d.ts.map +1 -0
  91. package/dist/src/caret/index.d.ts +2 -0
  92. package/dist/src/caret/index.d.ts.map +1 -0
  93. package/dist/src/channel/AliasProvider.d.ts +1 -1
  94. package/dist/src/channel/AliasProvider.d.ts.map +1 -1
  95. package/dist/src/channel/LinePlot.d.ts +1 -1
  96. package/dist/src/channel/LinePlot.d.ts.map +1 -1
  97. package/dist/src/channel/Select.d.ts +1 -1
  98. package/dist/src/channel/Select.d.ts.map +1 -1
  99. package/dist/src/channel/external.d.ts +1 -1
  100. package/dist/src/channel/external.d.ts.map +1 -1
  101. package/dist/src/color/Picker/Picker.d.ts.map +1 -1
  102. package/dist/src/color/Swatch/Swatch.d.ts +1 -1
  103. package/dist/src/color/Swatch/Swatch.d.ts.map +1 -1
  104. package/dist/src/color/core/color.d.ts.map +1 -1
  105. package/dist/src/color/external.d.ts +1 -1
  106. package/dist/src/color/external.d.ts.map +1 -1
  107. package/dist/src/css/bem.d.ts.map +1 -1
  108. package/dist/src/css/css.d.ts +2 -1
  109. package/dist/src/css/css.d.ts.map +1 -1
  110. package/dist/src/css/index.d.ts +2 -2
  111. package/dist/src/css/index.d.ts.map +1 -1
  112. package/dist/src/cursor/cursor.d.ts +1 -1
  113. package/dist/src/cursor/cursor.d.ts.map +1 -1
  114. package/dist/src/divider/Divider.d.ts +1 -1
  115. package/dist/src/divider/Divider.d.ts.map +1 -1
  116. package/dist/src/dropdown/Dropdown.d.ts +1 -1
  117. package/dist/src/dropdown/Dropdown.d.ts.map +1 -1
  118. package/dist/src/ether.d.ts +6 -6
  119. package/dist/src/ether.d.ts.map +1 -1
  120. package/dist/src/form/Form.d.ts +6 -6
  121. package/dist/src/form/Form.d.ts.map +1 -1
  122. package/dist/src/hardware/device/Select.d.ts +1 -1
  123. package/dist/src/hardware/device/Select.d.ts.map +1 -1
  124. package/dist/src/haul/Haul.d.ts +17 -5
  125. package/dist/src/haul/Haul.d.ts.map +1 -1
  126. package/dist/src/header/Actions.d.ts.map +1 -1
  127. package/dist/src/header/Header.d.ts.map +1 -1
  128. package/dist/src/hooks/index.d.ts +4 -4
  129. package/dist/src/hooks/index.d.ts.map +1 -1
  130. package/dist/src/hooks/ref.d.ts +1 -1
  131. package/dist/src/hooks/ref.d.ts.map +1 -1
  132. package/dist/src/hooks/useClickOutside.d.ts.map +1 -1
  133. package/dist/src/hooks/useCursorDrag/useCursorDrag.d.ts +1 -1
  134. package/dist/src/hooks/useCursorDrag/useCursorDrag.d.ts.map +1 -1
  135. package/dist/src/hooks/useCursorDrag/useVirtualCursorDragWebKit.d.ts.map +1 -1
  136. package/dist/src/hooks/useCursorDrag/useVirtualCursorDragWebView.d.ts.map +1 -1
  137. package/dist/src/hooks/useDebouncedCallback.d.ts.map +1 -1
  138. package/dist/src/hooks/useFilter.d.ts +1 -1
  139. package/dist/src/hooks/useFilter.d.ts.map +1 -1
  140. package/dist/src/hooks/useResize.d.ts +1 -1
  141. package/dist/src/hooks/useResize.d.ts.map +1 -1
  142. package/dist/src/hooks/useTransforms.d.ts.map +1 -1
  143. package/dist/src/hooks/useUniqueKey.d.ts.map +1 -1
  144. package/dist/src/index.d.ts +23 -22
  145. package/dist/src/index.d.ts.map +1 -1
  146. package/dist/src/input/Date.d.ts.map +1 -1
  147. package/dist/src/input/DateTime.d.ts.map +1 -1
  148. package/dist/src/input/DragButton.d.ts +1 -1
  149. package/dist/src/input/DragButton.d.ts.map +1 -1
  150. package/dist/src/input/HelpText.d.ts.map +1 -1
  151. package/dist/src/input/Item.d.ts.map +1 -1
  152. package/dist/src/input/Label.d.ts.map +1 -1
  153. package/dist/src/input/Numeric.d.ts.map +1 -1
  154. package/dist/src/input/Switch.d.ts.map +1 -1
  155. package/dist/src/input/Text.d.ts.map +1 -1
  156. package/dist/src/input/TextArea.d.ts.map +1 -1
  157. package/dist/src/input/Time.d.ts.map +1 -1
  158. package/dist/src/input/external.d.ts +4 -4
  159. package/dist/src/input/external.d.ts.map +1 -1
  160. package/dist/src/input/types.d.ts +1 -1
  161. package/dist/src/input/types.d.ts.map +1 -1
  162. package/dist/src/list/Column.d.ts +1 -1
  163. package/dist/src/list/Column.d.ts.map +1 -1
  164. package/dist/src/list/Core.d.ts +1 -1
  165. package/dist/src/list/Core.d.ts.map +1 -1
  166. package/dist/src/list/Data.d.ts +1 -1
  167. package/dist/src/list/Data.d.ts.map +1 -1
  168. package/dist/src/list/Filter.d.ts +1 -1
  169. package/dist/src/list/Filter.d.ts.map +1 -1
  170. package/dist/src/list/Hover.d.ts +1 -1
  171. package/dist/src/list/Hover.d.ts.map +1 -1
  172. package/dist/src/list/Infinite.d.ts.map +1 -1
  173. package/dist/src/list/Item.d.ts +3 -3
  174. package/dist/src/list/Item.d.ts.map +1 -1
  175. package/dist/src/list/List.d.ts +1 -1
  176. package/dist/src/list/List.d.ts.map +1 -1
  177. package/dist/src/list/Search.d.ts +1 -1
  178. package/dist/src/list/Search.d.ts.map +1 -1
  179. package/dist/src/list/Selector.d.ts +2 -2
  180. package/dist/src/list/Selector.d.ts.map +1 -1
  181. package/dist/src/list/external.d.ts +4 -4
  182. package/dist/src/list/external.d.ts.map +1 -1
  183. package/dist/src/list/useSelect.d.ts +18 -12
  184. package/dist/src/list/useSelect.d.ts.map +1 -1
  185. package/dist/src/memo/index.d.ts +1 -1
  186. package/dist/src/memo/index.d.ts.map +1 -1
  187. package/dist/src/memo/useMemoCompare.d.ts +1 -1
  188. package/dist/src/memo/useMemoCompare.d.ts.map +1 -1
  189. package/dist/src/menu/ContextMenu.d.ts +20 -13
  190. package/dist/src/menu/ContextMenu.d.ts.map +1 -1
  191. package/dist/src/menu/Item.d.ts.map +1 -1
  192. package/dist/src/menu/external.d.ts +1 -1
  193. package/dist/src/menu/external.d.ts.map +1 -1
  194. package/dist/src/mock/MockGLBufferController.d.ts.map +1 -1
  195. package/dist/src/mosaic/Mosaic.d.ts +2 -1
  196. package/dist/src/mosaic/Mosaic.d.ts.map +1 -1
  197. package/dist/src/mosaic/use.d.ts.map +1 -1
  198. package/dist/src/nav/Bar.d.ts +1 -1
  199. package/dist/src/nav/Bar.d.ts.map +1 -1
  200. package/dist/src/nav/Drawer.d.ts.map +1 -1
  201. package/dist/src/nav/external.d.ts +1 -1
  202. package/dist/src/nav/external.d.ts.map +1 -1
  203. package/dist/src/note/Note.d.ts.map +1 -1
  204. package/dist/src/note/index.d.ts.map +1 -1
  205. package/dist/src/os/Controls/Controls.d.ts +1 -1
  206. package/dist/src/os/Controls/Controls.d.ts.map +1 -1
  207. package/dist/src/os/Controls/Mac.d.ts.map +1 -1
  208. package/dist/src/os/Controls/Windows.d.ts.map +1 -1
  209. package/dist/src/os/Controls/index.d.ts +1 -1
  210. package/dist/src/os/Controls/index.d.ts.map +1 -1
  211. package/dist/src/os/use.d.ts +1 -1
  212. package/dist/src/os/use.d.ts.map +1 -1
  213. package/dist/src/pluto/Pluto.d.ts.map +1 -1
  214. package/dist/src/portal/Portal.d.ts.map +1 -1
  215. package/dist/src/portal/index.d.ts.map +1 -1
  216. package/dist/src/progress/Progress.d.ts.map +1 -1
  217. package/dist/src/ranger/SelectLabel.d.ts +1 -1
  218. package/dist/src/ranger/SelectLabel.d.ts.map +1 -1
  219. package/dist/src/ranger/TimeRangeChip.d.ts +1 -1
  220. package/dist/src/ranger/TimeRangeChip.d.ts.map +1 -1
  221. package/dist/src/ranger/external.d.ts +1 -1
  222. package/dist/src/ranger/external.d.ts.map +1 -1
  223. package/dist/src/resize/Core.d.ts +1 -1
  224. package/dist/src/resize/Core.d.ts.map +1 -1
  225. package/dist/src/resize/Multiple.d.ts +1 -1
  226. package/dist/src/resize/Multiple.d.ts.map +1 -1
  227. package/dist/src/resize/Single.d.ts +1 -1
  228. package/dist/src/resize/Single.d.ts.map +1 -1
  229. package/dist/src/select/Button.d.ts +1 -1
  230. package/dist/src/select/Button.d.ts.map +1 -1
  231. package/dist/src/select/ClearButton.d.ts.map +1 -1
  232. package/dist/src/select/DataType.d.ts.map +1 -1
  233. package/dist/src/select/Direction.d.ts +3 -3
  234. package/dist/src/select/Direction.d.ts.map +1 -1
  235. package/dist/src/select/List.d.ts +4 -4
  236. package/dist/src/select/List.d.ts.map +1 -1
  237. package/dist/src/select/Multiple.d.ts +1 -1
  238. package/dist/src/select/Multiple.d.ts.map +1 -1
  239. package/dist/src/select/Select.spec.d.ts.map +1 -1
  240. package/dist/src/select/Single.d.ts +2 -2
  241. package/dist/src/select/Single.d.ts.map +1 -1
  242. package/dist/src/select/external.d.ts +3 -3
  243. package/dist/src/select/external.d.ts.map +1 -1
  244. package/dist/src/state/state.d.ts +1 -1
  245. package/dist/src/state/state.d.ts.map +1 -1
  246. package/dist/src/status/Aggregator.d.ts +1 -1
  247. package/dist/src/status/Aggregator.d.ts.map +1 -1
  248. package/dist/src/status/Circle.d.ts +1 -1
  249. package/dist/src/status/Circle.d.ts.map +1 -1
  250. package/dist/src/status/Notification.d.ts +1 -1
  251. package/dist/src/status/Notification.d.ts.map +1 -1
  252. package/dist/src/status/Text.d.ts.map +1 -1
  253. package/dist/src/status/aether/aggregator.d.ts +12 -60
  254. package/dist/src/status/aether/aggregator.d.ts.map +1 -1
  255. package/dist/src/status/aether/external.d.ts +1 -1
  256. package/dist/src/status/aether/external.d.ts.map +1 -1
  257. package/dist/src/status/aether/types.d.ts +3 -15
  258. package/dist/src/status/aether/types.d.ts.map +1 -1
  259. package/dist/src/status/external.d.ts +1 -1
  260. package/dist/src/status/external.d.ts.map +1 -1
  261. package/dist/src/steps/Steps.d.ts.map +1 -1
  262. package/dist/src/synnax/Provider.d.ts +1 -1
  263. package/dist/src/synnax/Provider.d.ts.map +1 -1
  264. package/dist/src/synnax/aether/provider.d.ts +24 -24
  265. package/dist/src/tabs/Selector.d.ts +3 -1
  266. package/dist/src/tabs/Selector.d.ts.map +1 -1
  267. package/dist/src/tabs/Tabs.d.ts +2 -1
  268. package/dist/src/tabs/Tabs.d.ts.map +1 -1
  269. package/dist/src/tag/Tag.d.ts +1 -1
  270. package/dist/src/tag/Tag.d.ts.map +1 -1
  271. package/dist/src/telem/aether/convertSeries.d.ts +1 -1
  272. package/dist/src/telem/aether/convertSeries.d.ts.map +1 -1
  273. package/dist/src/telem/aether/external.d.ts +5 -5
  274. package/dist/src/telem/aether/external.d.ts.map +1 -1
  275. package/dist/src/telem/aether/noop.d.ts +1 -1
  276. package/dist/src/telem/aether/noop.d.ts.map +1 -1
  277. package/dist/src/telem/aether/pipeline.d.ts +21 -13
  278. package/dist/src/telem/aether/pipeline.d.ts.map +1 -1
  279. package/dist/src/telem/aether/remote.d.ts +34 -296
  280. package/dist/src/telem/aether/remote.d.ts.map +1 -1
  281. package/dist/src/telem/aether/static.d.ts +12 -10
  282. package/dist/src/telem/aether/static.d.ts.map +1 -1
  283. package/dist/src/telem/aether/telem.d.ts +99 -48
  284. package/dist/src/telem/aether/telem.d.ts.map +1 -1
  285. package/dist/src/telem/aether/transformers.d.ts +4 -4
  286. package/dist/src/telem/aether/transformers.d.ts.map +1 -1
  287. package/dist/src/telem/client/cache/cache.d.ts +2 -2
  288. package/dist/src/telem/client/cache/cache.d.ts.map +1 -1
  289. package/dist/src/telem/client/cache/dynamic.d.ts +1 -1
  290. package/dist/src/telem/client/cache/dynamic.d.ts.map +1 -1
  291. package/dist/src/telem/client/cache/static.d.ts +1 -1
  292. package/dist/src/telem/client/cache/static.d.ts.map +1 -1
  293. package/dist/src/telem/client/cache/unary.d.ts +1 -1
  294. package/dist/src/telem/client/cache/unary.d.ts.map +1 -1
  295. package/dist/src/telem/client/external.d.ts +1 -1
  296. package/dist/src/telem/client/external.d.ts.map +1 -1
  297. package/dist/src/telem/client/reader.d.ts +2 -2
  298. package/dist/src/telem/client/reader.d.ts.map +1 -1
  299. package/dist/src/telem/client/streamer.d.ts +1 -0
  300. package/dist/src/telem/client/streamer.d.ts.map +1 -1
  301. package/dist/src/telem/client/types.d.ts +1 -1
  302. package/dist/src/telem/client/types.d.ts.map +1 -1
  303. package/dist/src/telem/control/Chip.d.ts.map +1 -1
  304. package/dist/src/telem/control/Controller.d.ts +1 -1
  305. package/dist/src/telem/control/Controller.d.ts.map +1 -1
  306. package/dist/src/telem/control/Indicator.d.ts.map +1 -1
  307. package/dist/src/telem/control/Legend.d.ts.map +1 -1
  308. package/dist/src/telem/control/StateProvider.d.ts.map +1 -1
  309. package/dist/src/telem/control/aether/chip.d.ts +52 -84
  310. package/dist/src/telem/control/aether/chip.d.ts.map +1 -1
  311. package/dist/src/telem/control/aether/controller.d.ts +4 -4
  312. package/dist/src/telem/control/aether/controller.d.ts.map +1 -1
  313. package/dist/src/telem/control/aether/external.d.ts +3 -3
  314. package/dist/src/telem/control/aether/external.d.ts.map +1 -1
  315. package/dist/src/telem/control/aether/indicator.d.ts +46 -78
  316. package/dist/src/telem/control/aether/indicator.d.ts.map +1 -1
  317. package/dist/src/telem/control/aether/legend.d.ts +33 -96
  318. package/dist/src/telem/control/aether/legend.d.ts.map +1 -1
  319. package/dist/src/telem/control/aether/state.d.ts +15 -29
  320. package/dist/src/telem/control/aether/state.d.ts.map +1 -1
  321. package/dist/src/telem/control/external.d.ts +3 -3
  322. package/dist/src/telem/control/external.d.ts.map +1 -1
  323. package/dist/src/telem/test/index.d.ts.map +1 -1
  324. package/dist/src/telem/test/mock.d.ts +2 -2
  325. package/dist/src/telem/test/mock.d.ts.map +1 -1
  326. package/dist/src/text/DateTime.d.ts +1 -1
  327. package/dist/src/text/DateTime.d.ts.map +1 -1
  328. package/dist/src/text/Editable.d.ts +1 -1
  329. package/dist/src/text/Editable.d.ts.map +1 -1
  330. package/dist/src/text/Keyboard.d.ts.map +1 -1
  331. package/dist/src/text/Link.d.ts.map +1 -1
  332. package/dist/src/text/Text.d.ts.map +1 -1
  333. package/dist/src/text/WithIcon.d.ts +1 -1
  334. package/dist/src/text/WithIcon.d.ts.map +1 -1
  335. package/dist/src/text/core/types.d.ts.map +1 -1
  336. package/dist/src/text/external.d.ts +3 -3
  337. package/dist/src/text/external.d.ts.map +1 -1
  338. package/dist/src/text/symbols.d.ts.map +1 -1
  339. package/dist/src/theming/Provider.d.ts +1 -1
  340. package/dist/src/theming/Provider.d.ts.map +1 -1
  341. package/dist/src/theming/aether/external.d.ts +1 -1
  342. package/dist/src/theming/aether/external.d.ts.map +1 -1
  343. package/dist/src/theming/aether/provider.d.ts.map +1 -1
  344. package/dist/src/theming/core/theme.d.ts +1220 -24196
  345. package/dist/src/theming/core/theme.d.ts.map +1 -1
  346. package/dist/src/theming/external.d.ts +1 -1
  347. package/dist/src/theming/external.d.ts.map +1 -1
  348. package/dist/src/tooltip/Config.d.ts +1 -1
  349. package/dist/src/tooltip/Config.d.ts.map +1 -1
  350. package/dist/src/tooltip/Dialog.d.ts +1 -1
  351. package/dist/src/tooltip/Dialog.d.ts.map +1 -1
  352. package/dist/src/tooltip/external.d.ts +1 -1
  353. package/dist/src/tooltip/wrap.d.ts.map +1 -1
  354. package/dist/src/tree/Tree.d.ts +10 -9
  355. package/dist/src/tree/Tree.d.ts.map +1 -1
  356. package/dist/src/tree/core.d.ts +8 -0
  357. package/dist/src/tree/core.d.ts.map +1 -1
  358. package/dist/src/tree/external.d.ts +1 -1
  359. package/dist/src/triggers/Provider.d.ts +2 -2
  360. package/dist/src/triggers/Provider.d.ts.map +1 -1
  361. package/dist/src/triggers/Text.d.ts.map +1 -1
  362. package/dist/src/triggers/external.d.ts +2 -2
  363. package/dist/src/triggers/external.d.ts.map +1 -1
  364. package/dist/src/triggers/hooks.d.ts +1 -1
  365. package/dist/src/triggers/hooks.d.ts.map +1 -1
  366. package/dist/src/triggers/useDrag.d.ts +1 -1
  367. package/dist/src/triggers/useDrag.d.ts.map +1 -1
  368. package/dist/src/util/children.d.ts.map +1 -1
  369. package/dist/src/video/Video.d.ts.map +1 -1
  370. package/dist/src/viewport/Mask.d.ts.map +1 -1
  371. package/dist/src/viewport/SelectMode.d.ts.map +1 -1
  372. package/dist/src/viewport/external.d.ts +1 -1
  373. package/dist/src/viewport/external.d.ts.map +1 -1
  374. package/dist/src/viewport/use.d.ts +2 -2
  375. package/dist/src/viewport/use.d.ts.map +1 -1
  376. package/dist/src/vis/axis/axis.d.ts +8 -38
  377. package/dist/src/vis/axis/axis.d.ts.map +1 -1
  378. package/dist/src/vis/axis/canvas.d.ts +1 -1
  379. package/dist/src/vis/axis/canvas.d.ts.map +1 -1
  380. package/dist/src/vis/axis/ticks.d.ts +1 -1
  381. package/dist/src/vis/button/aether/button.d.ts +14 -6
  382. package/dist/src/vis/button/aether/button.d.ts.map +1 -1
  383. package/dist/src/vis/button/use.d.ts.map +1 -1
  384. package/dist/src/vis/canvas/Canvas.d.ts +2 -2
  385. package/dist/src/vis/canvas/Canvas.d.ts.map +1 -1
  386. package/dist/src/vis/diagram/Diagram.d.ts +1 -1
  387. package/dist/src/vis/diagram/Diagram.d.ts.map +1 -1
  388. package/dist/src/vis/diagram/aether/Diagram.d.ts +6 -42
  389. package/dist/src/vis/diagram/aether/Diagram.d.ts.map +1 -1
  390. package/dist/src/vis/diagram/align.d.ts.map +1 -1
  391. package/dist/src/vis/diagram/edge/Edge.d.ts +2 -2
  392. package/dist/src/vis/diagram/edge/Edge.d.ts.map +1 -1
  393. package/dist/src/vis/diagram/edge/connector/connector.d.ts +1 -1
  394. package/dist/src/vis/diagram/edge/connector/connector.d.ts.map +1 -1
  395. package/dist/src/vis/diagram/external.d.ts +2 -2
  396. package/dist/src/vis/diagram/external.d.ts.map +1 -1
  397. package/dist/src/vis/diagram/util.d.ts +1 -1
  398. package/dist/src/vis/diagram/util.d.ts.map +1 -1
  399. package/dist/src/vis/draw2d/canvas.d.ts +1 -1
  400. package/dist/src/vis/draw2d/canvas.d.ts.map +1 -1
  401. package/dist/src/vis/draw2d/index.d.ts +1 -1
  402. package/dist/src/vis/draw2d/index.d.ts.map +1 -1
  403. package/dist/src/vis/eraser/use.d.ts +1 -1
  404. package/dist/src/vis/eraser/use.d.ts.map +1 -1
  405. package/dist/src/vis/legend/Container.d.ts +1 -1
  406. package/dist/src/vis/legend/Container.d.ts.map +1 -1
  407. package/dist/src/vis/line/Line.d.ts.map +1 -1
  408. package/dist/src/vis/line/aether/line.d.ts +17 -25
  409. package/dist/src/vis/line/aether/line.d.ts.map +1 -1
  410. package/dist/src/vis/lineplot/Axis.d.ts +2 -3
  411. package/dist/src/vis/lineplot/Axis.d.ts.map +1 -1
  412. package/dist/src/vis/lineplot/Legend.d.ts.map +1 -1
  413. package/dist/src/vis/lineplot/LinePlot.d.ts +1 -1
  414. package/dist/src/vis/lineplot/LinePlot.d.ts.map +1 -1
  415. package/dist/src/vis/lineplot/Viewport.d.ts.map +1 -1
  416. package/dist/src/vis/lineplot/aether/LinePlot.d.ts +4 -28
  417. package/dist/src/vis/lineplot/aether/LinePlot.d.ts.map +1 -1
  418. package/dist/src/vis/lineplot/aether/XAxis.d.ts +9 -15
  419. package/dist/src/vis/lineplot/aether/XAxis.d.ts.map +1 -1
  420. package/dist/src/vis/lineplot/aether/YAxis.d.ts +13 -17
  421. package/dist/src/vis/lineplot/aether/YAxis.d.ts.map +1 -1
  422. package/dist/src/vis/lineplot/aether/axis.d.ts +5 -8
  423. package/dist/src/vis/lineplot/aether/axis.d.ts.map +1 -1
  424. package/dist/src/vis/lineplot/aether/grid.d.ts.map +1 -1
  425. package/dist/src/vis/lineplot/external.d.ts +2 -2
  426. package/dist/src/vis/lineplot/external.d.ts.map +1 -1
  427. package/dist/src/vis/lineplot/range/Annotation.d.ts +1 -1
  428. package/dist/src/vis/lineplot/range/Annotation.d.ts.map +1 -1
  429. package/dist/src/vis/lineplot/range/Provider.d.ts +1 -1
  430. package/dist/src/vis/lineplot/range/Provider.d.ts.map +1 -1
  431. package/dist/src/vis/lineplot/range/aether/annotation.d.ts +7 -59
  432. package/dist/src/vis/lineplot/range/aether/annotation.d.ts.map +1 -1
  433. package/dist/src/vis/lineplot/range/aether/external.d.ts +1 -1
  434. package/dist/src/vis/lineplot/range/aether/external.d.ts.map +1 -1
  435. package/dist/src/vis/lineplot/range/aether/index.d.ts.map +1 -1
  436. package/dist/src/vis/lineplot/range/aether/provider.d.ts +70 -550
  437. package/dist/src/vis/lineplot/range/aether/provider.d.ts.map +1 -1
  438. package/dist/src/vis/lineplot/range/external.d.ts.map +1 -1
  439. package/dist/src/vis/lineplot/range/index.d.ts.map +1 -1
  440. package/dist/src/vis/lineplot/tooltip/Tooltip.d.ts.map +1 -1
  441. package/dist/src/vis/lineplot/tooltip/aether/tooltip.d.ts +6 -6
  442. package/dist/src/vis/lineplot/tooltip/aether/tooltip.d.ts.map +1 -1
  443. package/dist/src/vis/measure/Measure.d.ts.map +1 -1
  444. package/dist/src/vis/measure/aether/measure.d.ts +4 -12
  445. package/dist/src/vis/measure/aether/measure.d.ts.map +1 -1
  446. package/dist/src/vis/render/context.d.ts +1 -1
  447. package/dist/src/vis/render/context.d.ts.map +1 -1
  448. package/dist/src/vis/render/external.d.ts +1 -1
  449. package/dist/src/vis/render/external.d.ts.map +1 -1
  450. package/dist/src/vis/render/util.d.ts.map +1 -1
  451. package/dist/src/vis/rule/Rule.d.ts.map +1 -1
  452. package/dist/src/vis/rule/aether/aether.d.ts +4 -36
  453. package/dist/src/vis/rule/aether/aether.d.ts.map +1 -1
  454. package/dist/src/vis/schematic/Forms.d.ts.map +1 -1
  455. package/dist/src/vis/schematic/Labeled.d.ts.map +1 -1
  456. package/dist/src/vis/schematic/SelectOrientation.d.ts +1 -1
  457. package/dist/src/vis/schematic/SelectOrientation.d.ts.map +1 -1
  458. package/dist/src/vis/schematic/Symbols.d.ts +1 -1
  459. package/dist/src/vis/schematic/Symbols.d.ts.map +1 -1
  460. package/dist/src/vis/schematic/external.d.ts +1 -1
  461. package/dist/src/vis/schematic/external.d.ts.map +1 -1
  462. package/dist/src/vis/schematic/primitives/Primitives.d.ts +3 -3
  463. package/dist/src/vis/schematic/primitives/Primitives.d.ts.map +1 -1
  464. package/dist/src/vis/schematic/registry.d.ts.map +1 -1
  465. package/dist/src/vis/toggle/aether/toggle.d.ts +36 -20
  466. package/dist/src/vis/toggle/aether/toggle.d.ts.map +1 -1
  467. package/dist/src/vis/toggle/use.d.ts.map +1 -1
  468. package/dist/src/vis/value/aether/value.d.ts +42 -30
  469. package/dist/src/vis/value/aether/value.d.ts.map +1 -1
  470. package/dist/src/vis/value/use.d.ts +11 -6
  471. package/dist/src/vis/value/use.d.ts.map +1 -1
  472. package/dist/src/worker/Context.d.ts +1 -1
  473. package/dist/src/worker/Context.d.ts.map +1 -1
  474. package/dist/style.css +1 -3372
  475. package/dist/tabs.cjs +1 -5
  476. package/dist/tabs.js +2 -3
  477. package/dist/text.cjs +1 -6
  478. package/dist/text.js +3 -4
  479. package/dist/theming.cjs +1 -6
  480. package/dist/theming.js +3 -4
  481. package/dist/tree.cjs +1 -5
  482. package/dist/tree.js +2 -3
  483. package/dist/triggers.cjs +1 -5
  484. package/dist/triggers.js +2 -3
  485. package/dist/units-BsHX82D_.cjs +1 -0
  486. package/dist/units-DechjShe.js +8 -0
  487. package/dist/video.cjs +1 -5
  488. package/dist/video.js +2 -3
  489. package/package.json +15 -24
  490. package/dist/Center-BK9Rcaa0.js +0 -149
  491. package/dist/Center-BK9Rcaa0.js.map +0 -1
  492. package/dist/Center-Cc_rR5pQ.cjs +0 -148
  493. package/dist/Center-Cc_rR5pQ.cjs.map +0 -1
  494. package/dist/Keyboard-Byx8rGZt.cjs +0 -13
  495. package/dist/Keyboard-Byx8rGZt.cjs.map +0 -1
  496. package/dist/Keyboard-D31SwhYT.js +0 -14
  497. package/dist/Keyboard-D31SwhYT.js.map +0 -1
  498. package/dist/LinePlot-BeWCHNq-.js +0 -14342
  499. package/dist/LinePlot-BeWCHNq-.js.map +0 -1
  500. package/dist/LinePlot-mjjFdNnj.cjs +0 -14338
  501. package/dist/LinePlot-mjjFdNnj.cjs.map +0 -1
  502. package/dist/Link-Bq38h1dw.cjs +0 -12
  503. package/dist/Link-Bq38h1dw.cjs.map +0 -1
  504. package/dist/Link-DQKdkwWL.js +0 -13
  505. package/dist/Link-DQKdkwWL.js.map +0 -1
  506. package/dist/List-BmP_se57.js +0 -27
  507. package/dist/List-BmP_se57.js.map +0 -1
  508. package/dist/List-BnB-C5vQ.cjs +0 -26
  509. package/dist/List-BnB-C5vQ.cjs.map +0 -1
  510. package/dist/Toggle-D3iCEbO1.cjs +0 -59480
  511. package/dist/Toggle-D3iCEbO1.cjs.map +0 -1
  512. package/dist/Toggle-bT5RpwfA.js +0 -59465
  513. package/dist/Toggle-bT5RpwfA.js.map +0 -1
  514. package/dist/Video-B4sma9fk.cjs +0 -14
  515. package/dist/Video-B4sma9fk.cjs.map +0 -1
  516. package/dist/Video-Cp6XjjOK.js +0 -15
  517. package/dist/Video-Cp6XjjOK.js.map +0 -1
  518. package/dist/aggregator-B8fg7W2s.js +0 -19640
  519. package/dist/aggregator-B8fg7W2s.js.map +0 -1
  520. package/dist/aggregator-Bh2Kyzkg.cjs +0 -19639
  521. package/dist/aggregator-Bh2Kyzkg.cjs.map +0 -1
  522. package/dist/align.cjs.map +0 -1
  523. package/dist/align.js.map +0 -1
  524. package/dist/button.cjs.map +0 -1
  525. package/dist/button.js.map +0 -1
  526. package/dist/color-CjdRh-aN.js +0 -10
  527. package/dist/color-CjdRh-aN.js.map +0 -1
  528. package/dist/color-DBNbbjJy.cjs +0 -9
  529. package/dist/color-DBNbbjJy.cjs.map +0 -1
  530. package/dist/color.cjs.map +0 -1
  531. package/dist/color.js.map +0 -1
  532. package/dist/css-Ci8WUD5E.cjs +0 -4234
  533. package/dist/css-Ci8WUD5E.cjs.map +0 -1
  534. package/dist/css-DKKmdhSr.js +0 -4235
  535. package/dist/css-DKKmdhSr.js.map +0 -1
  536. package/dist/css.cjs.map +0 -1
  537. package/dist/css.js.map +0 -1
  538. package/dist/dropdown.cjs.map +0 -1
  539. package/dist/dropdown.js.map +0 -1
  540. package/dist/ether.cjs.map +0 -1
  541. package/dist/ether.js.map +0 -1
  542. package/dist/external-9_cqFQy3.cjs +0 -121
  543. package/dist/external-9_cqFQy3.cjs.map +0 -1
  544. package/dist/external-B-zN2e5z.cjs +0 -1507
  545. package/dist/external-B-zN2e5z.cjs.map +0 -1
  546. package/dist/external-BM82B8W2.js +0 -122
  547. package/dist/external-BM82B8W2.js.map +0 -1
  548. package/dist/external-BYqTC99W.js +0 -23
  549. package/dist/external-BYqTC99W.js.map +0 -1
  550. package/dist/external-BfZYUV3z.js +0 -157
  551. package/dist/external-BfZYUV3z.js.map +0 -1
  552. package/dist/external-BpqCp_M1.js +0 -15
  553. package/dist/external-BpqCp_M1.js.map +0 -1
  554. package/dist/external-BrW40HJx.js +0 -1508
  555. package/dist/external-BrW40HJx.js.map +0 -1
  556. package/dist/external-CAOQcoqL.js +0 -287
  557. package/dist/external-CAOQcoqL.js.map +0 -1
  558. package/dist/external-CIVsFXOp.cjs +0 -14
  559. package/dist/external-CIVsFXOp.cjs.map +0 -1
  560. package/dist/external-CnNdgPsB.js +0 -122
  561. package/dist/external-CnNdgPsB.js.map +0 -1
  562. package/dist/external-CwjCCHPi.js +0 -372
  563. package/dist/external-CwjCCHPi.js.map +0 -1
  564. package/dist/external-DNHMAfGi.js +0 -108
  565. package/dist/external-DNHMAfGi.js.map +0 -1
  566. package/dist/external-DVQ2SRoH.cjs +0 -121
  567. package/dist/external-DVQ2SRoH.cjs.map +0 -1
  568. package/dist/external-D_yXh8rn.cjs +0 -156
  569. package/dist/external-D_yXh8rn.cjs.map +0 -1
  570. package/dist/external-Df0D1YYb.cjs +0 -371
  571. package/dist/external-Df0D1YYb.cjs.map +0 -1
  572. package/dist/external-DhPBdJpR.cjs +0 -22
  573. package/dist/external-DhPBdJpR.cjs.map +0 -1
  574. package/dist/external-DhiN6pEk.cjs +0 -77
  575. package/dist/external-DhiN6pEk.cjs.map +0 -1
  576. package/dist/external-DjYXzP7v.cjs +0 -219
  577. package/dist/external-DjYXzP7v.cjs.map +0 -1
  578. package/dist/external-FWIwgLzc.js +0 -220
  579. package/dist/external-FWIwgLzc.js.map +0 -1
  580. package/dist/external-Iv2mRce8.cjs +0 -286
  581. package/dist/external-Iv2mRce8.cjs.map +0 -1
  582. package/dist/external-P6zP6dBA.cjs +0 -13
  583. package/dist/external-P6zP6dBA.cjs.map +0 -1
  584. package/dist/external-d-vI8EHK.cjs +0 -107
  585. package/dist/external-d-vI8EHK.cjs.map +0 -1
  586. package/dist/external-giUMrk8w.js +0 -78
  587. package/dist/external-giUMrk8w.js.map +0 -1
  588. package/dist/external-zG96smqq.js +0 -14
  589. package/dist/external-zG96smqq.js.map +0 -1
  590. package/dist/header.cjs.map +0 -1
  591. package/dist/header.js.map +0 -1
  592. package/dist/index.cjs.map +0 -1
  593. package/dist/index.js.map +0 -1
  594. package/dist/input.cjs.map +0 -1
  595. package/dist/input.js.map +0 -1
  596. package/dist/jsx-runtime-B3vWrP5x.cjs +0 -941
  597. package/dist/jsx-runtime-B3vWrP5x.cjs.map +0 -1
  598. package/dist/jsx-runtime-mMz73N64.js +0 -942
  599. package/dist/jsx-runtime-mMz73N64.js.map +0 -1
  600. package/dist/list.cjs.map +0 -1
  601. package/dist/list.js.map +0 -1
  602. package/dist/menu.cjs.map +0 -1
  603. package/dist/menu.js.map +0 -1
  604. package/dist/tabs.cjs.map +0 -1
  605. package/dist/tabs.js.map +0 -1
  606. package/dist/text.cjs.map +0 -1
  607. package/dist/text.js.map +0 -1
  608. package/dist/theming.cjs.map +0 -1
  609. package/dist/theming.js.map +0 -1
  610. package/dist/tree.cjs.map +0 -1
  611. package/dist/tree.js.map +0 -1
  612. package/dist/triggers.cjs.map +0 -1
  613. package/dist/triggers.js.map +0 -1
  614. package/dist/video.cjs.map +0 -1
  615. package/dist/video.js.map +0 -1
@@ -1,122 +0,0 @@
1
- import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
2
- import { createContext, useContext as useContext$1, isValidElement, Fragment } from "react";
3
- import { A, j as LevelComponentSizes } from "./aggregator-B8fg7W2s.js";
4
- import { S as Space } from "./Center-BK9Rcaa0.js";
5
- import { I as Icon, ar as Divider, B as Button, W as WithIcon } from "./Toggle-bT5RpwfA.js";
6
- import { C as CSS } from "./css-DKKmdhSr.js";
7
- const Context = createContext({
8
- divided: false,
9
- level: "h1"
10
- });
11
- const useContext = () => useContext$1(Context);
12
- const Header = ({
13
- children,
14
- className,
15
- level = "h1",
16
- divided = false,
17
- ...props
18
- }) => /* @__PURE__ */ jsxRuntimeExports.jsx(Context.Provider, { value: { level, divided }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
19
- Space,
20
- {
21
- el: "header",
22
- direction: "x",
23
- justify: "spaceBetween",
24
- className: CSS(
25
- CSS.B("header"),
26
- CSS.bordered("bottom"),
27
- divided && CSS.BM("header", "divided"),
28
- className
29
- ),
30
- ...props,
31
- children
32
- }
33
- ) });
34
- const Actions = ({ children = [] }) => {
35
- const { level, divided } = useContext();
36
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
37
- Space,
38
- {
39
- direction: "x",
40
- size: "small",
41
- align: "center",
42
- className: CSS.BE("header", "actions"),
43
- children: A(children).map((action, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(Action, { index: i, level, divided, children: action }, i))
44
- }
45
- );
46
- };
47
- const Action = ({ index, level, children, divided }) => {
48
- let content = children;
49
- if (!isValidElement(children)) {
50
- const props = children;
51
- content = /* @__PURE__ */ jsxRuntimeExports.jsx(
52
- Icon,
53
- {
54
- onClick: (e) => {
55
- var _a;
56
- e.stopPropagation();
57
- e.preventDefault();
58
- (_a = props.onClick) == null ? void 0 : _a.call(props, e);
59
- },
60
- size: LevelComponentSizes[level],
61
- ...props
62
- },
63
- index
64
- );
65
- }
66
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
67
- divided && /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, {}),
68
- content
69
- ] }, index);
70
- };
71
- const ButtonTitle = ({
72
- children = "",
73
- className,
74
- onClick,
75
- ...props
76
- }) => {
77
- const { level } = useContext();
78
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
79
- Button,
80
- {
81
- variant: "text",
82
- size: LevelComponentSizes[level],
83
- onClick,
84
- className: CSS(CSS.B("header-button-title"), className),
85
- sharp: true,
86
- ...props,
87
- children
88
- }
89
- );
90
- };
91
- const Title = ({
92
- className,
93
- level: propsLevel,
94
- ...props
95
- }) => {
96
- const { level, divided } = useContext();
97
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
98
- WithIcon,
99
- {
100
- className: CSS(CSS.BE("header", "text"), className),
101
- level: propsLevel ?? level,
102
- divided,
103
- size: 1.5,
104
- ...props
105
- }
106
- );
107
- };
108
- const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
109
- __proto__: null,
110
- Actions,
111
- ButtonTitle,
112
- Header,
113
- Title,
114
- useContext
115
- }, Symbol.toStringTag, { value: "Module" }));
116
- export {
117
- Actions as A,
118
- ButtonTitle as B,
119
- Header as H,
120
- external as e
121
- };
122
- //# sourceMappingURL=external-CnNdgPsB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"external-CnNdgPsB.js","sources":["../src/header/Header.tsx","../src/header/Actions.tsx","../src/header/ButtonTitle.tsx","../src/header/Title.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n createContext,\n type ReactElement,\n type ReactNode,\n useContext as reactUseContext,\n} from \"react\";\n\nimport { Align } from \"@/align\";\nimport { CSS } from \"@/css\";\nimport { type Text } from \"@/text\";\n\nimport \"@/header/Header.css\";\n\nexport interface HeaderProps extends Omit<Align.SpaceProps, \"children\" | \"el\"> {\n level?: Text.Level;\n divided?: boolean;\n children: ReactNode | [ReactNode, ReactNode];\n}\n\nexport interface ContextValue {\n divided: boolean;\n level: Text.Level;\n}\n\nconst Context = createContext<ContextValue>({\n divided: false,\n level: \"h1\",\n});\n\nexport const useContext = (): ContextValue => reactUseContext(Context);\n\n/**\n * The container for a module header.\n *\n * @param props - The component props. All unused props will be passed down to the\n * {@link Space} containing the header.\n * @param props.level - The font level for the header. See the {@link Typography.Text}\n * component for all possible levels. Default is \"h1.\"\n * @param props.icon - An optional icon to add add before the start of the header text.\n * @param props.actions - A list of actions to be rendered on the right side ofthe header.\n * If the action is a JSX element, it will be rendered directly, and if its of type\n * ButtonIconProps, a ButtonIconOnly will be rendered using the given props.\n * @param props.divided - If true, creates a divider between the start icon, header text,\n * and each action. Default is false.\n */\nexport const Header = ({\n children,\n className,\n level = \"h1\",\n divided = false,\n ...props\n}: HeaderProps): ReactElement => (\n <Context.Provider value={{ level, divided }}>\n <Align.Space\n el=\"header\"\n direction=\"x\"\n justify=\"spaceBetween\"\n className={CSS(\n CSS.B(\"header\"),\n CSS.bordered(\"bottom\"),\n divided && CSS.BM(\"header\", \"divided\"),\n className,\n )}\n {...props}\n >\n {children}\n </Align.Space>\n </Context.Provider>\n);\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { Fragment, isValidElement, type ReactElement } from \"react\";\n\nimport { toArray } from \"@synnaxlabs/x\";\n\nimport { Align } from \"@/align\";\nimport { Button } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { Divider } from \"@/divider\";\nimport { useContext } from \"@/header/Header\";\nimport { Text } from \"@/text\";\n\nexport type ActionSpec = Button.IconProps | ReactElement;\n\nexport interface ActionsProps {\n children?: ActionSpec | ActionSpec[];\n}\n\n/**\n * Custom actions to render on the right side of the header.\n *\n * @param children - The actions to render. If the action is of type\n * {@link ButtonIconProps}, a correectly sized {@link ButtonIconOnly} is rendered\n * using the given props. If the action is a JSX element, it is renderered directly.\n * It's a good idea to prefer the latter in almost all cases for simplicity.\n */\nexport const Actions = ({ children = [] }: ActionsProps): ReactElement => {\n const { level, divided } = useContext();\n return (\n <Align.Space\n direction=\"x\"\n size=\"small\"\n align=\"center\"\n className={CSS.BE(\"header\", \"actions\")}\n >\n {toArray(children).map((action, i) => (\n <Action key={i} index={i} level={level} divided={divided}>\n {action}\n </Action>\n ))}\n </Align.Space>\n );\n};\n\ninterface ActionProps {\n index: number;\n level: Text.Level;\n children: ReactElement | Button.IconProps;\n divided: boolean;\n}\n\nconst Action = ({ index, level, children, divided }: ActionProps): ReactElement => {\n let content: ReactElement = children as ReactElement;\n if (!isValidElement(children)) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const props = children as Button.IconProps;\n content = (\n <Button.Icon\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n props.onClick?.(e);\n }}\n key={index}\n size={Text.LevelComponentSizes[level]}\n {...props}\n />\n );\n }\n return (\n <Fragment key={index}>\n {divided && <Divider.Divider />}\n {content}\n </Fragment>\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { Button } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { useContext } from \"@/header/Header\";\nimport { Text } from \"@/text\";\n\nexport interface ButtonTitleProps\n extends Omit<Button.ButtonProps, \"variant\" | \"size\"> {}\n\n/**\n * Header.Title.Use renders a clickable header title.\n *\n * @param props - The comonent props. The props for this component are identical\n * to {@link Button}, except the variant is always 'outlined' and that the component size\n * is automatically inferred from the 'level' prop passsed to the parent {@link Header}\n * component.\n */\nexport const ButtonTitle = ({\n children = \"\",\n className,\n onClick,\n ...props\n}: ButtonTitleProps): ReactElement => {\n const { level } = useContext();\n return (\n <Button.Button\n variant=\"text\"\n size={Text.LevelComponentSizes[level]}\n onClick={onClick}\n className={CSS(CSS.B(\"header-button-title\"), className)}\n sharp\n {...props}\n >\n {children}\n </Button.Button>\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { CSS } from \"@/css\";\nimport { useContext } from \"@/header/Header\";\nimport { Text } from \"@/text\";\n\nexport interface TitleProps extends Omit<Text.WithIconProps, \"divided\" | \"level\"> {\n level?: Text.Level;\n}\n\n/**\n * Renders the title for the header component.\n *\n * @param props - The component props. The props for this component are identical\n * to the {@link Typography.TextWithIcon} component, except that the 'level', and\n * 'divider' props are inherited from the parent {@link Header} component.\n */\nexport const Title = ({\n className,\n level: propsLevel,\n ...props\n}: TitleProps): ReactElement => {\n const { level, divided } = useContext();\n return (\n <Text.WithIcon\n className={CSS(CSS.BE(\"header\", \"text\"), className)}\n level={propsLevel ?? level}\n divided={divided}\n size={1.5}\n {...props}\n />\n );\n};\n"],"names":["reactUseContext","jsx","Align.Space","toArray","Button.Icon","Text.LevelComponentSizes","Divider.Divider","Button.Button","Text.WithIcon"],"mappings":";;;;;;AAiCA,MAAM,UAAU,cAA4B;AAAA,EAC1C,SAAS;AAAA,EACT,OAAO;AACT,CAAC;AAEY,MAAA,aAAa,MAAoBA,aAAgB,OAAO;AAgB9D,MAAM,SAAS,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,GAAG;AACL,MACEC,kCAAA,IAAC,QAAQ,UAAR,EAAiB,OAAO,EAAE,OAAO,WAChC,UAAAA,kCAAA;AAAA,EAACC;AAAAA,EAAA;AAAA,IACC,IAAG;AAAA,IACH,WAAU;AAAA,IACV,SAAQ;AAAA,IACR,WAAW;AAAA,MACT,IAAI,EAAE,QAAQ;AAAA,MACd,IAAI,SAAS,QAAQ;AAAA,MACrB,WAAW,IAAI,GAAG,UAAU,SAAS;AAAA,MACrC;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA,EAAA;AACH,EACF,CAAA;AC1CK,MAAM,UAAU,CAAC,EAAE,WAAW,CAAA,QAAqC;AACxE,QAAM,EAAE,OAAO,QAAQ,IAAI,WAAW;AAEpC,SAAAD,kCAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,OAAM;AAAA,MACN,WAAW,IAAI,GAAG,UAAU,SAAS;AAAA,MAEpC,UAAQC,EAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,MAC7BF,sCAAA,QAAA,EAAe,OAAO,GAAG,OAAc,SACrC,UAAA,OAAA,GADU,CAEb,CACD;AAAA,IAAA;AAAA,EAAA;AAGP;AASA,MAAM,SAAS,CAAC,EAAE,OAAO,OAAO,UAAU,cAAyC;AACjF,MAAI,UAAwB;AACxB,MAAA,CAAC,eAAe,QAAQ,GAAG;AAE7B,UAAM,QAAQ;AAEZ,cAAAA,kCAAA;AAAA,MAACG;AAAAA,MAAA;AAAA,QACC,SAAS,CAAC,MAAM;;AACd,YAAE,gBAAgB;AAClB,YAAE,eAAe;AACjB,sBAAM,YAAN,+BAAgB;AAAA,QAClB;AAAA,QAEA,MAAMC,oBAAyB,KAAK;AAAA,QACnC,GAAG;AAAA,MAAA;AAAA,MAFC;AAAA,IAAA;AAAA,EAKX;AACA,gDACG,UACE,EAAA,UAAA;AAAA,IAAW,WAAAJ,kCAAAA,IAACK,SAAA,EAAgB;AAAA,IAC5B;AAAA,EAAA,EAAA,GAFY,KAGf;AAEJ;ACxDO,MAAM,cAAc,CAAC;AAAA,EAC1B,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAsC;AAC9B,QAAA,EAAE,UAAU;AAEhB,SAAAL,kCAAA;AAAA,IAACM;AAAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAMF,oBAAyB,KAAK;AAAA,MACpC;AAAA,MACA,WAAW,IAAI,IAAI,EAAE,qBAAqB,GAAG,SAAS;AAAA,MACtD,OAAK;AAAA,MACJ,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA;AAGP;ACpBO,MAAM,QAAQ,CAAC;AAAA,EACpB;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,MAAgC;AAC9B,QAAM,EAAE,OAAO,QAAQ,IAAI,WAAW;AAEpC,SAAAJ,kCAAA;AAAA,IAACO;AAAAA,IAAA;AAAA,MACC,WAAW,IAAI,IAAI,GAAG,UAAU,MAAM,GAAG,SAAS;AAAA,MAClD,OAAO,cAAc;AAAA,MACrB;AAAA,MACA,MAAM;AAAA,MACL,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;;;;;;;;;"}
@@ -1,372 +0,0 @@
1
- import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
2
- import { memo, useState, useCallback, useMemo } from "react";
3
- import { p as m0, v as useSelectionUtils, w as useDataUtilContext, m as useDragAndDrop, q as CONTEXT_TARGET, C as CONTEXT_SELECTED, M as MaybeEditable, x as useCombinedStateAndRef, o as useSyncedRef, y as useHeldRef, B as Button, z as Core, A as Selector, F as edit, G as componentRenderProp } from "./Toggle-bT5RpwfA.js";
4
- import { L as Link } from "./Link-DQKdkwWL.js";
5
- import { C as CSS } from "./css-DKKmdhSr.js";
6
- import { A, i as usePassthrough } from "./aggregator-B8fg7W2s.js";
7
- import "./Center-BK9Rcaa0.js";
8
- import { L as List } from "./List-BmP_se57.js";
9
- const shouldExpand = (node, expanded) => expanded.includes(node.key);
10
- const sortAndSplice = (nodes, sort) => {
11
- if (sort) {
12
- nodes.sort((a, b) => a.name.localeCompare(b.name));
13
- }
14
- let found = false;
15
- for (let i = 0; i < nodes.length; i++) {
16
- const node = nodes[i];
17
- if (node.forcePosition != null && i !== node.forcePosition) {
18
- found = true;
19
- nodes.splice(i, 1);
20
- nodes.splice(node.forcePosition, 0, node);
21
- }
22
- }
23
- if (found)
24
- return sortAndSplice(nodes, false);
25
- return nodes;
26
- };
27
- const flatten = ({
28
- nodes,
29
- expanded,
30
- depth = 0,
31
- sort = true
32
- }) => {
33
- if (depth === 0 && sort)
34
- nodes = nodes.sort((a, b) => a.name.localeCompare(b.name));
35
- const flattened = [];
36
- nodes.forEach((node, index) => {
37
- const expand = shouldExpand(node, expanded);
38
- flattened.push({ ...node, depth, expanded: expand, index });
39
- if (expand && node.children != null) {
40
- node.children = sortAndSplice(node.children, sort);
41
- flattened.push(
42
- ...flatten({ nodes: node.children, expanded, depth: depth + 1, sort })
43
- );
44
- }
45
- });
46
- return flattened;
47
- };
48
- const moveNode = ({ tree, destination, keys }) => {
49
- keys = A(keys);
50
- keys.forEach((key) => {
51
- const node = findNode({ tree, key });
52
- if (node == null)
53
- return;
54
- removeNode({ tree, keys: key });
55
- setNode({ tree, destination, additions: node });
56
- });
57
- return tree;
58
- };
59
- const removeNode = ({ tree, keys }) => {
60
- keys = A(keys);
61
- const treeKeys = tree.map((node) => node.key);
62
- keys.forEach((key) => {
63
- var _a;
64
- const index = treeKeys.indexOf(key);
65
- if (index !== -1)
66
- tree.splice(index, 1);
67
- else {
68
- const parent = findNodeParent({ tree, key });
69
- if (parent != null)
70
- parent.children = (_a = parent.children) == null ? void 0 : _a.filter((child) => child.key !== key);
71
- }
72
- });
73
- return tree;
74
- };
75
- const setNode = ({ tree, destination, additions }) => {
76
- additions = A(additions);
77
- const node = findNode({ tree, key: destination });
78
- if (node == null)
79
- throw new Error(`Could not find node with key ${destination}`);
80
- if (node.children == null)
81
- node.children = [];
82
- const addedKeys = additions.map((node2) => node2.key);
83
- node.children = [
84
- ...additions,
85
- ...node.children.filter((child) => !addedKeys.includes(child.key))
86
- ];
87
- return tree;
88
- };
89
- const updateNode = ({
90
- tree,
91
- key,
92
- updater,
93
- throwOnMissing = true
94
- }) => {
95
- var _a, _b;
96
- const node = findNode({ tree, key });
97
- if (node == null) {
98
- if (throwOnMissing)
99
- throw new Error(`Could not find node with key ${key}`);
100
- return tree;
101
- }
102
- const parent = findNodeParent({ tree, key });
103
- if (parent != null) {
104
- const index = (_a = parent.children) == null ? void 0 : _a.findIndex((child) => child.key === key);
105
- if (index != null && index !== -1)
106
- (_b = parent.children) == null ? void 0 : _b.splice(index, 1, updater(node));
107
- } else {
108
- tree.splice(
109
- tree.findIndex((node2) => node2.key === key),
110
- 1,
111
- updater(node)
112
- );
113
- }
114
- return tree;
115
- };
116
- const findNode = ({
117
- tree,
118
- key,
119
- depth = 0
120
- }) => {
121
- for (let i = 0; i < tree.length; i++) {
122
- const node = tree[i];
123
- if (node.key === key) {
124
- const n = node;
125
- n.depth = depth;
126
- n.position = i;
127
- return n;
128
- }
129
- if (node.children != null) {
130
- const found = findNode({ tree: node.children, key, depth: depth + 1 });
131
- if (found != null)
132
- return found;
133
- }
134
- }
135
- return null;
136
- };
137
- const findNodes = ({ tree, keys }) => {
138
- const nodes = [];
139
- for (const key of keys) {
140
- const node = findNode({ tree, key });
141
- if (node != null)
142
- nodes.push(node);
143
- }
144
- return nodes;
145
- };
146
- const findNodeParent = ({ tree, key }) => {
147
- for (const node of tree) {
148
- if (node.children != null) {
149
- if (node.children.some((child) => child.key === key))
150
- return node;
151
- const found = findNodeParent({ tree: node.children, key });
152
- if (found != null)
153
- return found;
154
- }
155
- }
156
- return null;
157
- };
158
- const HAUL_TYPE = "tree-item";
159
- const SHIFT_TRIGGERS = [["Shift"]];
160
- const use = (props) => {
161
- const {
162
- onExpand,
163
- nodes,
164
- initialExpanded = [],
165
- sort = true,
166
- selected: propsSelected,
167
- onSelectedChange
168
- } = props ?? {};
169
- const [expanded, setExpanded, ref] = useCombinedStateAndRef(initialExpanded);
170
- const [selected, setSelected] = usePassthrough({
171
- initial: [],
172
- value: propsSelected,
173
- onChange: onSelectedChange
174
- });
175
- const flat = useMemo(
176
- () => flatten({ nodes, expanded, sort }),
177
- [nodes, expanded, sort]
178
- );
179
- const flatRef = useSyncedRef(flat);
180
- const shiftRef = useHeldRef({ triggers: SHIFT_TRIGGERS });
181
- const handleSelect = useCallback(
182
- (keys, { clicked }) => {
183
- setSelected(keys);
184
- const n = flatRef.current.find((node) => node.key === clicked);
185
- if ((n == null ? void 0 : n.hasChildren) === false)
186
- return;
187
- if (clicked == null || shiftRef.current.held)
188
- return;
189
- const currentlyExpanded = ref.current;
190
- const action = currentlyExpanded.some((key) => key === clicked) ? "contract" : "expand";
191
- let nextExpanded = currentlyExpanded;
192
- if (action === "contract")
193
- nextExpanded = currentlyExpanded.filter((key) => key !== clicked);
194
- else
195
- nextExpanded = [...currentlyExpanded, clicked];
196
- setExpanded(nextExpanded);
197
- onExpand == null ? void 0 : onExpand({ current: nextExpanded, action, clicked });
198
- },
199
- [onExpand, flatRef, setExpanded, setSelected]
200
- );
201
- return {
202
- onSelect: handleSelect,
203
- selected,
204
- expanded,
205
- nodes: flat
206
- };
207
- };
208
- const expandedCaret = /* @__PURE__ */ jsxRuntimeExports.jsx(m0.Caret.Down, { className: CSS.B("caret") });
209
- const collapsedCaret = /* @__PURE__ */ jsxRuntimeExports.jsx(m0.Caret.Right, { className: CSS.B("caret") });
210
- const DefaultItem = memo(
211
- ({
212
- entry,
213
- selected,
214
- onSelect,
215
- onDrop,
216
- onRename,
217
- onSuccessfulDrop,
218
- onDoubleClick,
219
- loading = false,
220
- useMargin = false,
221
- translate
222
- }) => {
223
- const {
224
- key,
225
- hasChildren = false,
226
- allowRename = false,
227
- children,
228
- icon,
229
- name,
230
- depth,
231
- expanded,
232
- href,
233
- haulItems = []
234
- } = entry;
235
- const { getSelected } = useSelectionUtils();
236
- const { getSourceData } = useDataUtilContext();
237
- const actuallyHasChildren = hasChildren || children != null && children.length > 0;
238
- const startIcons = [];
239
- if (actuallyHasChildren)
240
- startIcons.push(expanded ? expandedCaret : collapsedCaret);
241
- if (icon != null)
242
- startIcons.push(icon);
243
- const endIcons = [];
244
- if (loading)
245
- endIcons.push(/* @__PURE__ */ jsxRuntimeExports.jsx(m0.Loading, { className: CSS.B("loading-indicator") }));
246
- const [draggingOver, setDraggingOver] = useState(false);
247
- const { startDrag, ...dropProps } = useDragAndDrop({
248
- type: "Tree.Item",
249
- key,
250
- canDrop: useCallback(({ items: entities, source }) => {
251
- const keys = entities.map((item) => item.key);
252
- setDraggingOver(false);
253
- return source.type === "Tree.Item" && !keys.includes(key);
254
- }, []),
255
- onDrop: useCallback((props) => (onDrop == null ? void 0 : onDrop(key, props)) ?? [], [key, onDrop]),
256
- onDragOver: useCallback(() => setDraggingOver(true), [])
257
- });
258
- const handleDragStart = () => {
259
- const selectedItemKeys = getSelected();
260
- const selectedItems = getSourceData().filter(
261
- (item) => selectedItemKeys.includes(item.key)
262
- );
263
- if (selectedItemKeys.includes(key)) {
264
- const selectedHaulItems = selectedItems.map(({ key: key2, haulItems: haulItems2 }) => [{ type: HAUL_TYPE, key: key2 }, ...haulItems2 ?? []]).flat();
265
- return startDrag(selectedHaulItems, (props) => onSuccessfulDrop == null ? void 0 : onSuccessfulDrop(key, props));
266
- }
267
- startDrag(
268
- [{ type: HAUL_TYPE, key }, ...haulItems],
269
- (props) => onSuccessfulDrop == null ? void 0 : onSuccessfulDrop(key, props)
270
- );
271
- };
272
- const offsetKey = useMargin ? "marginLeft" : "paddingLeft";
273
- const baseProps = {
274
- id: key,
275
- variant: "text",
276
- draggable: true,
277
- className: CSS(
278
- CSS.BE("list", "item"),
279
- CONTEXT_TARGET,
280
- draggingOver && CSS.M("dragging-over"),
281
- selected && CONTEXT_SELECTED,
282
- CSS.selected(selected),
283
- actuallyHasChildren && CSS.M("has-children")
284
- ),
285
- onDragLeave: () => setDraggingOver(false),
286
- onDragStart: handleDragStart,
287
- onClick: () => onSelect == null ? void 0 : onSelect(key),
288
- style: {
289
- position: translate != null ? "absolute" : "relative",
290
- transform: `translateY(${translate}px)`,
291
- [offsetKey]: `${depth * 1.5 + 1}rem`
292
- },
293
- startIcon: startIcons,
294
- iconSpacing: "small",
295
- noWrap: true,
296
- endIcon: endIcons,
297
- onDoubleClick: (e) => onDoubleClick == null ? void 0 : onDoubleClick(key, e),
298
- href,
299
- ...dropProps
300
- };
301
- const Base = href != null ? Link : Button;
302
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Base, { className: CSS.BE("list", "item"), ...baseProps, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
303
- MaybeEditable,
304
- {
305
- id: `text-${key}`,
306
- level: "p",
307
- allowDoubleClick: false,
308
- value: name,
309
- disabled: !allowRename,
310
- onChange: (name2) => onRename == null ? void 0 : onRename(key, name2)
311
- }
312
- ) });
313
- }
314
- );
315
- DefaultItem.displayName = "Tree.Item";
316
- const defaultChild = componentRenderProp(DefaultItem);
317
- const Tree = ({
318
- nodes,
319
- selected = [],
320
- onSelect,
321
- onDrop,
322
- onRename,
323
- onSuccessfulDrop,
324
- onDoubleClick,
325
- className,
326
- children = defaultChild,
327
- itemHeight = 27,
328
- useMargin = false,
329
- virtual = true,
330
- ...props
331
- }) => {
332
- const Core$1 = virtual ? Core.Virtual : Core;
333
- return /* @__PURE__ */ jsxRuntimeExports.jsx(List, { data: nodes, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Selector, { value: selected, onChange: onSelect, allowMultiple: true, replaceOnSingle: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
334
- Core$1,
335
- {
336
- itemHeight,
337
- className: CSS(className, CSS.B("tree")),
338
- ...props,
339
- children: (props2) => children({
340
- ...props2,
341
- useMargin,
342
- onDrop,
343
- onRename,
344
- onSuccessfulDrop,
345
- onDoubleClick
346
- })
347
- }
348
- ) }) });
349
- };
350
- const startRenaming = (key) => edit(`text-${key}`);
351
- const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
352
- __proto__: null,
353
- DefaultItem,
354
- HAUL_TYPE,
355
- Tree,
356
- findNode,
357
- findNodeParent,
358
- findNodes,
359
- flatten,
360
- moveNode,
361
- removeNode,
362
- setNode,
363
- shouldExpand,
364
- sortAndSplice,
365
- startRenaming,
366
- updateNode,
367
- use
368
- }, Symbol.toStringTag, { value: "Module" }));
369
- export {
370
- external as e
371
- };
372
- //# sourceMappingURL=external-CwjCCHPi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"external-CwjCCHPi.js","sources":["../src/tree/core.ts","../src/tree/Tree.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { toArray } from \"@synnaxlabs/x\";\n\nimport { type Haul } from \"@/haul\";\n\nexport interface Node {\n key: string;\n name: string;\n renaming?: boolean;\n forcePosition?: number;\n icon?: ReactElement;\n allowRename?: boolean;\n hasChildren?: boolean;\n children?: Node[];\n haulItems?: Haul.Item[];\n canDrop?: (items: Haul.Item[]) => boolean;\n href?: string;\n}\n\nexport interface NodeWithPosition extends Node {\n depth: number;\n position: number;\n}\n\nexport interface FlattenedNode extends Node {\n index: number;\n depth: number;\n expanded: boolean;\n}\n\nexport const shouldExpand = (node: Node, expanded: string[]): boolean =>\n expanded.includes(node.key);\n\nexport interface FlattenProps {\n nodes: Node[];\n expanded: string[];\n depth?: number;\n sort?: boolean;\n}\n\nexport const sortAndSplice = (nodes: Node[], sort: boolean): Node[] => {\n if (sort) {\n nodes.sort((a, b) => a.name.localeCompare(b.name));\n }\n let found = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.forcePosition != null && i !== node.forcePosition) {\n found = true;\n // remove the node from its current position\n nodes.splice(i, 1);\n // splice it into the forced position\n nodes.splice(node.forcePosition, 0, node);\n }\n }\n if (found) return sortAndSplice(nodes, false);\n return nodes;\n};\n\nexport const flatten = ({\n nodes,\n expanded,\n depth = 0,\n sort = true,\n}: FlattenProps): FlattenedNode[] => {\n // Sort the first level of the tree independently of the rest\n if (depth === 0 && sort) nodes = nodes.sort((a, b) => a.name.localeCompare(b.name));\n const flattened: FlattenedNode[] = [];\n nodes.forEach((node, index) => {\n const expand = shouldExpand(node, expanded);\n flattened.push({ ...node, depth, expanded: expand, index });\n if (expand && node.children != null) {\n node.children = sortAndSplice(node.children, sort);\n flattened.push(\n ...flatten({ nodes: node.children, expanded, depth: depth + 1, sort }),\n );\n }\n });\n return flattened;\n};\n\nexport interface MoveNodeProps {\n tree: Node[];\n destination: string;\n keys: string | string[];\n}\n\nexport const moveNode = ({ tree, destination, keys }: MoveNodeProps): Node[] => {\n keys = toArray(keys);\n keys.forEach((key) => {\n const node = findNode({ tree, key });\n if (node == null) return;\n removeNode({ tree, keys: key });\n setNode({ tree, destination, additions: node });\n });\n return tree;\n};\n\nexport interface RemoveNodeProps {\n tree: Node[];\n keys: string | string[];\n}\n\nexport const removeNode = ({ tree, keys }: RemoveNodeProps): Node[] => {\n keys = toArray(keys);\n const treeKeys = tree.map((node) => node.key);\n keys.forEach((key) => {\n const index = treeKeys.indexOf(key);\n if (index !== -1) tree.splice(index, 1);\n else {\n const parent = findNodeParent({ tree, key });\n if (parent != null)\n parent.children = parent.children?.filter((child) => child.key !== key);\n }\n });\n return tree;\n};\n\nexport interface SetNodeProps {\n tree: Node[];\n destination: string;\n additions: Node | Node[];\n}\n\nexport const setNode = ({ tree, destination, additions }: SetNodeProps): Node[] => {\n additions = toArray(additions);\n const node = findNode({ tree, key: destination });\n if (node == null) throw new Error(`Could not find node with key ${destination}`);\n if (node.children == null) node.children = [];\n const addedKeys = additions.map((node) => node.key);\n node.children = [\n ...additions,\n ...node.children.filter((child) => !addedKeys.includes(child.key)),\n ];\n return tree;\n};\n\nexport interface UpdateNodeProps {\n tree: Node[];\n key: string;\n updater: (node: Node) => Node;\n throwOnMissing?: boolean;\n}\n\nexport const updateNode = ({\n tree,\n key,\n updater,\n throwOnMissing = true,\n}: UpdateNodeProps): Node[] => {\n const node = findNode({ tree, key });\n if (node == null) {\n if (throwOnMissing) throw new Error(`Could not find node with key ${key}`);\n return tree;\n }\n const parent = findNodeParent({ tree, key });\n if (parent != null) {\n // splice the updated node into the parent's children\n const index = parent.children?.findIndex((child) => child.key === key);\n if (index != null && index !== -1) parent.children?.splice(index, 1, updater(node));\n } else {\n // we're in the root, so just update the node\n tree.splice(\n tree.findIndex((node) => node.key === key),\n 1,\n updater(node),\n );\n }\n return tree;\n};\n\nexport interface FindNodeProps {\n tree: Node[];\n key: string;\n depth?: number;\n}\n\nexport const findNode = ({\n tree,\n key,\n depth = 0,\n}: FindNodeProps): NodeWithPosition | null => {\n for (let i = 0; i < tree.length; i++) {\n const node = tree[i];\n if (node.key === key) {\n const n = node as NodeWithPosition;\n n.depth = depth;\n n.position = i;\n return n;\n }\n if (node.children != null) {\n const found = findNode({ tree: node.children, key, depth: depth + 1 });\n if (found != null) return found;\n }\n }\n return null;\n};\n\nexport interface FindNodesProps {\n tree: Node[];\n keys: string[];\n}\n\nexport const findNodes = ({ tree, keys }: FindNodesProps): NodeWithPosition[] => {\n const nodes: NodeWithPosition[] = [];\n for (const key of keys) {\n const node = findNode({ tree, key });\n if (node != null) nodes.push(node);\n }\n return nodes;\n};\n\nexport interface FindNodeParentProps {\n tree: Node[];\n key: string;\n}\n\nexport const findNodeParent = ({ tree, key }: FindNodeParentProps): Node | null => {\n for (const node of tree) {\n if (node.children != null) {\n if (node.children.some((child) => child.key === key)) return node;\n const found = findNodeParent({ tree: node.children, key });\n if (found != null) return found;\n }\n }\n return null;\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n type ReactElement,\n useCallback,\n useMemo,\n useState,\n type FC,\n memo,\n} from \"react\";\n\nimport { Icon } from \"@synnaxlabs/media\";\n\nimport { Button } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { Haul } from \"@/haul\";\nimport { useSyncedRef, useCombinedStateAndRef } from \"@/hooks\";\nimport { List } from \"@/list\";\nimport { type UseSelectOnChangeExtra, type UseSelectProps } from \"@/list/useSelect\";\nimport { CONTEXT_SELECTED, CONTEXT_TARGET } from \"@/menu/ContextMenu\";\nimport { state } from \"@/state\";\nimport { Text } from \"@/text\";\nimport { flatten, type Node, type FlattenedNode } from \"@/tree/core\";\nimport { Triggers } from \"@/triggers\";\nimport { type RenderProp, componentRenderProp } from \"@/util/renderProp\";\n\nimport \"@/tree/Tree.css\";\n\nexport const HAUL_TYPE = \"tree-item\";\n\nexport interface HandleExpandProps {\n current: string[];\n action: \"expand\" | \"contract\";\n clicked: string;\n}\n\nexport interface UseProps {\n onExpand?: (props: HandleExpandProps) => void;\n selected?: string[];\n onSelectedChange?: state.Set<string[]>;\n initialExpanded?: string[];\n nodes: Node[];\n sort?: boolean;\n}\n\nexport interface UseReturn {\n selected: string[];\n expanded: string[];\n onSelect: UseSelectProps<string, FlattenedNode>[\"onChange\"];\n nodes: FlattenedNode[];\n}\n\nconst SHIFT_TRIGGERS: Triggers.Trigger[] = [[\"Shift\"]];\n\nexport const use = (props: UseProps): UseReturn => {\n const {\n onExpand,\n nodes,\n initialExpanded = [],\n sort = true,\n selected: propsSelected,\n onSelectedChange,\n } = props ?? {};\n const [expanded, setExpanded, ref] =\n useCombinedStateAndRef<string[]>(initialExpanded);\n const [selected, setSelected] = state.usePassthrough<string[]>({\n initial: [],\n value: propsSelected,\n onChange: onSelectedChange,\n });\n const flat = useMemo(\n () => flatten({ nodes, expanded, sort }),\n [nodes, expanded, sort],\n );\n const flatRef = useSyncedRef(flat);\n\n const shiftRef = Triggers.useHeldRef({ triggers: SHIFT_TRIGGERS });\n\n const handleSelect: UseSelectProps<string, FlattenedNode>[\"onChange\"] = useCallback(\n (\n keys: string[],\n { clicked }: UseSelectOnChangeExtra<string, FlattenedNode>,\n ): void => {\n setSelected(keys);\n const n = flatRef.current.find((node) => node.key === clicked);\n if (n?.hasChildren === false) return;\n if (clicked == null || shiftRef.current.held) return;\n const currentlyExpanded = ref.current;\n const action = currentlyExpanded.some((key) => key === clicked)\n ? \"contract\"\n : \"expand\";\n let nextExpanded = currentlyExpanded;\n if (action === \"contract\")\n nextExpanded = currentlyExpanded.filter((key) => key !== clicked);\n else nextExpanded = [...currentlyExpanded, clicked];\n setExpanded(nextExpanded);\n onExpand?.({ current: nextExpanded, action, clicked });\n },\n [onExpand, flatRef, setExpanded, setSelected],\n );\n\n return {\n onSelect: handleSelect,\n selected,\n expanded,\n nodes: flat,\n };\n};\n\nexport interface ItemProps extends List.ItemProps<string, FlattenedNode> {\n onDrop?: (key: string, props: Haul.OnDropProps) => Haul.Item[];\n onSuccessfulDrop?: (key: string, props: Haul.OnSuccessfulDropProps) => void;\n onRename?: (key: string, name: string) => void;\n onDoubleClick?: (key: string, e: React.MouseEvent) => void;\n loading?: boolean;\n useMargin?: boolean;\n}\n\ntype TreePropsInheritedFromItem = Pick<\n ItemProps,\n \"onDrop\" | \"onRename\" | \"onSuccessfulDrop\" | \"onDoubleClick\" | \"useMargin\"\n>;\n\ntype TreePropsInheritedFromList = Omit<\n List.VirtualCoreProps<string, FlattenedNode>,\n \"onDrop\" | \"onSelect\" | \"children\" | \"onDoubleClick\" | \"itemHeight\"\n> & {\n itemHeight?: number;\n};\n\nexport interface TreeProps\n extends TreePropsInheritedFromItem,\n TreePropsInheritedFromList {\n nodes: FlattenedNode[];\n selected?: string[];\n onSelect: UseSelectProps<string, FlattenedNode>[\"onChange\"];\n children?: RenderProp<ItemProps>;\n virtual?: boolean;\n}\n\nconst expandedCaret = <Icon.Caret.Down className={CSS.B(\"caret\")} />;\nconst collapsedCaret = <Icon.Caret.Right className={CSS.B(\"caret\")} />;\n\nexport type Item = FC<ItemProps>;\n\nexport const DefaultItem = memo(\n ({\n entry,\n selected,\n onSelect,\n onDrop,\n onRename,\n onSuccessfulDrop,\n onDoubleClick,\n loading = false,\n useMargin = false,\n translate,\n }: ItemProps): ReactElement => {\n const {\n key,\n hasChildren = false,\n allowRename = false,\n children,\n icon,\n name,\n depth,\n expanded,\n href,\n haulItems = [],\n } = entry;\n\n const { getSelected } = List.useSelectionUtils<string>();\n const { getSourceData } = List.useDataUtilContext<string, FlattenedNode>();\n\n const actuallyHasChildren =\n hasChildren || (children != null && children.length > 0);\n\n // Expand, contract, and loading items.\n const startIcons: ReactElement[] = [];\n if (actuallyHasChildren) startIcons.push(expanded ? expandedCaret : collapsedCaret);\n if (icon != null) startIcons.push(icon);\n const endIcons: ReactElement[] = [];\n if (loading) endIcons.push(<Icon.Loading className={CSS.B(\"loading-indicator\")} />);\n\n const [draggingOver, setDraggingOver] = useState(false);\n\n // Drag and Drop\n const { startDrag, ...dropProps } = Haul.useDragAndDrop({\n type: \"Tree.Item\",\n key,\n canDrop: useCallback(({ items: entities, source }) => {\n const keys = entities.map((item) => item.key);\n setDraggingOver(false);\n return source.type === \"Tree.Item\" && !keys.includes(key);\n }, []),\n onDrop: useCallback((props) => onDrop?.(key, props) ?? [], [key, onDrop]),\n onDragOver: useCallback(() => setDraggingOver(true), []),\n });\n\n const handleDragStart = (): void => {\n const selectedItemKeys = getSelected();\n const selectedItems = getSourceData().filter((item) =>\n selectedItemKeys.includes(item.key),\n );\n if (selectedItemKeys.includes(key)) {\n const selectedHaulItems = selectedItems\n .map(({ key, haulItems }) => [{ type: HAUL_TYPE, key }, ...(haulItems ?? [])])\n .flat();\n return startDrag(selectedHaulItems, (props) => onSuccessfulDrop?.(key, props));\n }\n startDrag([{ type: HAUL_TYPE, key }, ...haulItems], (props) =>\n onSuccessfulDrop?.(key, props),\n );\n };\n\n const offsetKey = useMargin ? \"marginLeft\" : \"paddingLeft\";\n\n const baseProps: Button.LinkProps | Button.ButtonProps = {\n id: key,\n variant: \"text\",\n draggable: true,\n className: CSS(\n CSS.BE(\"list\", \"item\"),\n CONTEXT_TARGET,\n draggingOver && CSS.M(\"dragging-over\"),\n selected && CONTEXT_SELECTED,\n CSS.selected(selected),\n actuallyHasChildren && CSS.M(\"has-children\"),\n ),\n onDragLeave: () => setDraggingOver(false),\n onDragStart: handleDragStart,\n onClick: () => onSelect?.(key),\n style: {\n position: translate != null ? \"absolute\" : \"relative\",\n transform: `translateY(${translate}px)`,\n [offsetKey]: `${depth * 1.5 + 1}rem`,\n },\n startIcon: startIcons,\n iconSpacing: \"small\",\n noWrap: true,\n endIcon: endIcons,\n onDoubleClick: (e) => onDoubleClick?.(key, e),\n href,\n ...dropProps,\n };\n\n const Base = href != null ? Button.Link : Button.Button;\n\n return (\n <Base className={CSS.BE(\"list\", \"item\")} {...baseProps}>\n <Text.MaybeEditable\n id={`text-${key}`}\n level=\"p\"\n allowDoubleClick={false}\n value={name}\n disabled={!allowRename}\n onChange={(name) => onRename?.(key, name)}\n />\n </Base>\n );\n },\n);\nDefaultItem.displayName = \"Tree.Item\";\n\nconst defaultChild = componentRenderProp(DefaultItem);\n\nexport const Tree = ({\n nodes,\n selected = [],\n onSelect,\n onDrop,\n onRename,\n onSuccessfulDrop,\n onDoubleClick,\n className,\n children = defaultChild,\n itemHeight = 27,\n useMargin = false,\n virtual = true,\n ...props\n}: TreeProps): ReactElement => {\n const Core = virtual ? List.Core.Virtual : List.Core;\n\n return (\n <List.List<string, FlattenedNode> data={nodes}>\n <List.Selector value={selected} onChange={onSelect} allowMultiple replaceOnSingle>\n <Core<string, FlattenedNode>\n itemHeight={itemHeight}\n className={CSS(className, CSS.B(\"tree\"))}\n {...props}\n >\n {(props) =>\n children({\n ...props,\n useMargin,\n onDrop,\n onRename,\n onSuccessfulDrop,\n onDoubleClick,\n })\n }\n </Core>\n </List.Selector>\n </List.List>\n );\n};\n\nexport const startRenaming = (key: string): void => Text.edit(`text-${key}`);\n"],"names":["toArray","node","state.usePassthrough","Triggers.useHeldRef","jsx","Icon","List.useSelectionUtils","List.useDataUtilContext","Haul.useDragAndDrop","key","haulItems","Button.Link","Button.Button","Text.MaybeEditable","name","Core","List.Core","List.List","List.Selector","props","Text.edit"],"mappings":"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"}
@@ -1,108 +0,0 @@
1
- import { C as CSS, a as Color, Z as ZERO, c as cssString, f as fromHSLA, t as toHex } from "./css-DKKmdhSr.js";
2
- import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
3
- import { i as SketchPicker, j as use, u as use$1, k as useDraggingState, l as filterByType, m as useDragAndDrop, B as Button, e as Text, n as Dialog } from "./Toggle-bT5RpwfA.js";
4
- import { useCallback } from "react";
5
- import "./aggregator-B8fg7W2s.js";
6
- import "./Center-BK9Rcaa0.js";
7
- const Picker = ({ value, onChange, ...props }) => {
8
- const handleChange = (res) => {
9
- if (res.hex === "transparent")
10
- onChange(ZERO);
11
- onChange(new Color(res.hex, res.rgb.a));
12
- };
13
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
14
- SketchPicker,
15
- {
16
- className: CSS.B("color-picker"),
17
- color: new Color(value).hex,
18
- onChange: handleChange,
19
- presetColors: [],
20
- ...props
21
- }
22
- );
23
- };
24
- const HAUL_TYPE = "color";
25
- const Swatch = ({
26
- value,
27
- onChange,
28
- className,
29
- size = "medium",
30
- onVisibleChange,
31
- initialVisible,
32
- draggable = true,
33
- ...props
34
- }) => {
35
- const { visible, open, close } = use({ onVisibleChange, initialVisible });
36
- const bg = use$1().colors.gray.l0;
37
- const d = new Color(value);
38
- const dragging = useDraggingState();
39
- const canDrop = useCallback(
40
- ({ items }) => {
41
- const [k] = filterByType(HAUL_TYPE, items);
42
- return k != null && k.key !== d.hex;
43
- },
44
- [d.hex]
45
- );
46
- const { startDrag, ...haulProps } = useDragAndDrop({
47
- type: "Color.Swatch",
48
- onDrop: ({ items }) => {
49
- const dropped = filterByType(HAUL_TYPE, items);
50
- if (items.length > 0)
51
- onChange == null ? void 0 : onChange(new Color(dropped[0].key));
52
- return dropped;
53
- },
54
- canDrop
55
- });
56
- const swatch = /* @__PURE__ */ jsxRuntimeExports.jsx(
57
- Button,
58
- {
59
- className: CSS(
60
- CSS.B("color-swatch"),
61
- CSS.size(size),
62
- d.contrast(bg) > 1.5 && d.a > 0.5 && CSS.M("no-border"),
63
- CSS.dropRegion(canDrop(dragging)),
64
- className
65
- ),
66
- draggable,
67
- onDragStart: () => startDrag([{ type: HAUL_TYPE, key: d.hex }]),
68
- style: { backgroundColor: cssString(value) },
69
- variant: "text",
70
- onClick: open,
71
- size,
72
- tooltip: onChange != null ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { level: "small", children: "Click to change color" }) : void 0,
73
- ...haulProps,
74
- ...props
75
- }
76
- );
77
- if (onChange == null)
78
- return swatch;
79
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
80
- Dialog,
81
- {
82
- close,
83
- visible,
84
- className: CSS.BE("color-swatch", "dropdown"),
85
- keepMounted: false,
86
- variant: "floating",
87
- children: [
88
- swatch,
89
- /* @__PURE__ */ jsxRuntimeExports.jsx(Picker, { value, onChange })
90
- ]
91
- }
92
- );
93
- };
94
- const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
95
- __proto__: null,
96
- Color,
97
- Picker,
98
- Swatch,
99
- ZERO,
100
- cssString,
101
- fromHSLA,
102
- toHex
103
- }, Symbol.toStringTag, { value: "Module" }));
104
- export {
105
- Swatch as S,
106
- external as e
107
- };
108
- //# sourceMappingURL=external-DNHMAfGi.js.map