@synnaxlabs/pluto 0.12.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 (612) hide show
  1. package/LICENSE +4 -0
  2. package/README.md +34 -0
  3. package/dist/Center-ZAcURh-3.cjs +148 -0
  4. package/dist/Center-ZAcURh-3.cjs.map +1 -0
  5. package/dist/Center-gEKkAkdh.js +149 -0
  6. package/dist/Center-gEKkAkdh.js.map +1 -0
  7. package/dist/Header-5YX6FUn6.cjs +35 -0
  8. package/dist/Header-5YX6FUn6.cjs.map +1 -0
  9. package/dist/Header-7x6367IV.js +36 -0
  10. package/dist/Header-7x6367IV.js.map +1 -0
  11. package/dist/Item-EDdYN2NK.js +171 -0
  12. package/dist/Item-EDdYN2NK.js.map +1 -0
  13. package/dist/Item-HWzX7RK2.cjs +170 -0
  14. package/dist/Item-HWzX7RK2.cjs.map +1 -0
  15. package/dist/Item-owLU4Xop.js +97 -0
  16. package/dist/Item-owLU4Xop.js.map +1 -0
  17. package/dist/Item-rkSKzZoh.cjs +96 -0
  18. package/dist/Item-rkSKzZoh.cjs.map +1 -0
  19. package/dist/Keyboard-mE03PKwA.js +14 -0
  20. package/dist/Keyboard-mE03PKwA.js.map +1 -0
  21. package/dist/Keyboard-w372197S.cjs +13 -0
  22. package/dist/Keyboard-w372197S.cjs.map +1 -0
  23. package/dist/Link-laNlv47N.js +13 -0
  24. package/dist/Link-laNlv47N.js.map +1 -0
  25. package/dist/Link-xlTZan29.cjs +12 -0
  26. package/dist/Link-xlTZan29.cjs.map +1 -0
  27. package/dist/SelectLevel-bGb0dRXh.cjs +152 -0
  28. package/dist/SelectLevel-bGb0dRXh.cjs.map +1 -0
  29. package/dist/SelectLevel-cewIWtOv.js +153 -0
  30. package/dist/SelectLevel-cewIWtOv.js.map +1 -0
  31. package/dist/Selector-R3lL41_i.js +267 -0
  32. package/dist/Selector-R3lL41_i.js.map +1 -0
  33. package/dist/Selector-hQLSIYum.cjs +266 -0
  34. package/dist/Selector-hQLSIYum.cjs.map +1 -0
  35. package/dist/TimeRangeChip-XXXLMCrf.cjs +9316 -0
  36. package/dist/TimeRangeChip-XXXLMCrf.cjs.map +1 -0
  37. package/dist/TimeRangeChip-eDCX5pUC.js +9301 -0
  38. package/dist/TimeRangeChip-eDCX5pUC.js.map +1 -0
  39. package/dist/Toggle-eOKYw1OT.cjs +13664 -0
  40. package/dist/Toggle-eOKYw1OT.cjs.map +1 -0
  41. package/dist/Toggle-kLunfJtR.js +13665 -0
  42. package/dist/Toggle-kLunfJtR.js.map +1 -0
  43. package/dist/Video-Vpwp5ao1.js +12 -0
  44. package/dist/Video-Vpwp5ao1.js.map +1 -0
  45. package/dist/Video-a7BUKvzF.cjs +11 -0
  46. package/dist/Video-a7BUKvzF.cjs.map +1 -0
  47. package/dist/Video-k52RqIHf.cjs +2 -0
  48. package/dist/Video-k52RqIHf.cjs.map +1 -0
  49. package/dist/Video-w40geAFS.js +2 -0
  50. package/dist/Video-w40geAFS.js.map +1 -0
  51. package/dist/accordion/Accordion.d.ts +38 -0
  52. package/dist/accordion/Accordion.spec.d.ts +1 -0
  53. package/dist/accordion/Accordion.stories.d.ts +5 -0
  54. package/dist/accordion/index.d.ts +1 -0
  55. package/dist/aether/aether/aether.d.ts +247 -0
  56. package/dist/aether/aether/index.d.ts +2 -0
  57. package/dist/aether/aether/worker.spec.d.ts +8 -0
  58. package/dist/aether/index.d.ts +1 -0
  59. package/dist/aether/main.d.ts +96 -0
  60. package/dist/aether/main.spec.d.ts +8 -0
  61. package/dist/aether/message.d.ts +17 -0
  62. package/dist/aether.cjs +90 -0
  63. package/dist/aether.cjs.map +1 -0
  64. package/dist/aether.js +93 -0
  65. package/dist/aether.js.map +1 -0
  66. package/dist/aetherIndex.d.ts +14 -0
  67. package/dist/alamos/Provider.d.ts +12 -0
  68. package/dist/alamos/aether/alamos.d.ts +39 -0
  69. package/dist/alamos/aether/index.d.ts +1 -0
  70. package/dist/alamos/index.d.ts +1 -0
  71. package/dist/align/Center.d.ts +8 -0
  72. package/dist/align/Pack.d.ts +23 -0
  73. package/dist/align/Pack.stories.d.ts +8 -0
  74. package/dist/align/Space.d.ts +54 -0
  75. package/dist/align/Space.spec.d.ts +1 -0
  76. package/dist/align/Space.stories.d.ts +5 -0
  77. package/dist/align/external.d.ts +3 -0
  78. package/dist/align/index.d.ts +1 -0
  79. package/dist/align.cjs +10 -0
  80. package/dist/align.cjs.map +1 -0
  81. package/dist/align.js +10 -0
  82. package/dist/align.js.map +1 -0
  83. package/dist/button/Button.d.ts +46 -0
  84. package/dist/button/Button.spec.d.ts +1 -0
  85. package/dist/button/Button.stories.d.ts +9 -0
  86. package/dist/button/Icon.d.ts +19 -0
  87. package/dist/button/Link.d.ts +16 -0
  88. package/dist/button/Toggle.d.ts +34 -0
  89. package/dist/button/color.d.ts +3 -0
  90. package/dist/button/external.d.ts +4 -0
  91. package/dist/button/index.d.ts +1 -0
  92. package/dist/button.cjs +15 -0
  93. package/dist/button.cjs.map +1 -0
  94. package/dist/button.js +15 -0
  95. package/dist/button.js.map +1 -0
  96. package/dist/channel/AliasProvider.d.ts +24 -0
  97. package/dist/channel/ChannelSelect.stories.d.ts +7 -0
  98. package/dist/channel/LinePlot.d.ts +72 -0
  99. package/dist/channel/LinePlot.stories.d.ts +6 -0
  100. package/dist/channel/Select.d.ts +11 -0
  101. package/dist/channel/external.d.ts +3 -0
  102. package/dist/channel/index.d.ts +1 -0
  103. package/dist/channel/types.d.ts +1 -0
  104. package/dist/color/Picker/Picker.d.ts +6 -0
  105. package/dist/color/Picker/Picker.stories.d.ts +6 -0
  106. package/dist/color/Picker/index.d.ts +1 -0
  107. package/dist/color/Swatch/Swatch.d.ts +8 -0
  108. package/dist/color/Swatch/index.d.ts +1 -0
  109. package/dist/color/core/color.d.ts +128 -0
  110. package/dist/color/core/color.spec.d.ts +1 -0
  111. package/dist/color/core/index.d.ts +2 -0
  112. package/dist/color/external.d.ts +4 -0
  113. package/dist/color/index.d.ts +1 -0
  114. package/dist/component-joFaJiQW.cjs +24719 -0
  115. package/dist/component-joFaJiQW.cjs.map +1 -0
  116. package/dist/component-k78Jq9I7.js +24720 -0
  117. package/dist/component-k78Jq9I7.js.map +1 -0
  118. package/dist/css/bem.d.ts +14 -0
  119. package/dist/css/bem.spec.d.ts +1 -0
  120. package/dist/css/color.d.ts +10 -0
  121. package/dist/css/css.d.ts +27 -0
  122. package/dist/css/grid.d.ts +14 -0
  123. package/dist/css/index.d.ts +4 -0
  124. package/dist/css/units.d.ts +1 -0
  125. package/dist/css/vars.d.ts +1 -0
  126. package/dist/css-NTD4Xm8x.js +9206 -0
  127. package/dist/css-NTD4Xm8x.js.map +1 -0
  128. package/dist/css-V3VUT_Js.cjs +9204 -0
  129. package/dist/css-V3VUT_Js.cjs.map +1 -0
  130. package/dist/cursor/cursor.d.ts +3 -0
  131. package/dist/cursor/index.d.ts +1 -0
  132. package/dist/dimensions-Sej0Zly9.cjs +26 -0
  133. package/dist/dimensions-Sej0Zly9.cjs.map +1 -0
  134. package/dist/dimensions-guJ5PHmb.js +27 -0
  135. package/dist/dimensions-guJ5PHmb.js.map +1 -0
  136. package/dist/divider/Divider.d.ts +14 -0
  137. package/dist/divider/index.d.ts +2 -0
  138. package/dist/dropdown/Dropdown.d.ts +49 -0
  139. package/dist/dropdown/Dropdown.spec.d.ts +1 -0
  140. package/dist/dropdown/Dropdown.stories.d.ts +5 -0
  141. package/dist/dropdown/index.d.ts +2 -0
  142. package/dist/dropdown.cjs +13 -0
  143. package/dist/dropdown.cjs.map +1 -0
  144. package/dist/dropdown.js +13 -0
  145. package/dist/dropdown.js.map +1 -0
  146. package/dist/external-2Aicsb3l.js +88 -0
  147. package/dist/external-2Aicsb3l.js.map +1 -0
  148. package/dist/external-9Ncn2J9B.cjs +93 -0
  149. package/dist/external-9Ncn2J9B.cjs.map +1 -0
  150. package/dist/external-9RCzxzgZ.js +30 -0
  151. package/dist/external-9RCzxzgZ.js.map +1 -0
  152. package/dist/external-9pS8-DvV.js +15 -0
  153. package/dist/external-9pS8-DvV.js.map +1 -0
  154. package/dist/external-KxlyA74C.js +20 -0
  155. package/dist/external-KxlyA74C.js.map +1 -0
  156. package/dist/external-OSLzuRs1.cjs +14 -0
  157. package/dist/external-OSLzuRs1.cjs.map +1 -0
  158. package/dist/external-PS3nzqUn.cjs +23 -0
  159. package/dist/external-PS3nzqUn.cjs.map +1 -0
  160. package/dist/external-QRmqSjV0.js +18 -0
  161. package/dist/external-QRmqSjV0.js.map +1 -0
  162. package/dist/external-QuVTCnGl.js +71 -0
  163. package/dist/external-QuVTCnGl.js.map +1 -0
  164. package/dist/external-U5HRPaDI.cjs +17 -0
  165. package/dist/external-U5HRPaDI.cjs.map +1 -0
  166. package/dist/external-_CtRDtih.js +17 -0
  167. package/dist/external-_CtRDtih.js.map +1 -0
  168. package/dist/external-eQU48hM4.cjs +87 -0
  169. package/dist/external-eQU48hM4.cjs.map +1 -0
  170. package/dist/external-kbDFnfuk.js +24 -0
  171. package/dist/external-kbDFnfuk.js.map +1 -0
  172. package/dist/external-oX1JmOFf.js +17 -0
  173. package/dist/external-oX1JmOFf.js.map +1 -0
  174. package/dist/external-oZe6tF4A.cjs +14 -0
  175. package/dist/external-oZe6tF4A.cjs.map +1 -0
  176. package/dist/external-tVcmKSsT.cjs +19 -0
  177. package/dist/external-tVcmKSsT.cjs.map +1 -0
  178. package/dist/external-up1sE3F6.js +94 -0
  179. package/dist/external-up1sE3F6.js.map +1 -0
  180. package/dist/external-uvx0b-Jw.cjs +16 -0
  181. package/dist/external-uvx0b-Jw.cjs.map +1 -0
  182. package/dist/external-vXBQOmKv.js +15 -0
  183. package/dist/external-vXBQOmKv.js.map +1 -0
  184. package/dist/external-yiqRIIvW.cjs +16 -0
  185. package/dist/external-yiqRIIvW.cjs.map +1 -0
  186. package/dist/external-zBiIxeDG.cjs +70 -0
  187. package/dist/external-zBiIxeDG.cjs.map +1 -0
  188. package/dist/external-zw9fckWT.cjs +29 -0
  189. package/dist/external-zw9fckWT.cjs.map +1 -0
  190. package/dist/font-t7KoGNFX.js +17 -0
  191. package/dist/font-t7KoGNFX.js.map +1 -0
  192. package/dist/font-wlgaMRYN.cjs +16 -0
  193. package/dist/font-wlgaMRYN.cjs.map +1 -0
  194. package/dist/fontString-RKvYIr5H.js +13 -0
  195. package/dist/fontString-RKvYIr5H.js.map +1 -0
  196. package/dist/fontString-i24UxKCQ.cjs +12 -0
  197. package/dist/fontString-i24UxKCQ.cjs.map +1 -0
  198. package/dist/generic/Generic.d.ts +13 -0
  199. package/dist/generic/index.d.ts +1 -0
  200. package/dist/haul/Haul.d.ts +60 -0
  201. package/dist/haul/index.d.ts +1 -0
  202. package/dist/header/Actions.d.ts +15 -0
  203. package/dist/header/ButtonTitle.d.ts +13 -0
  204. package/dist/header/Header.d.ts +28 -0
  205. package/dist/header/Header.spec.d.ts +1 -0
  206. package/dist/header/Header.stories.d.ts +6 -0
  207. package/dist/header/Title.d.ts +13 -0
  208. package/dist/header/external.d.ts +4 -0
  209. package/dist/header/index.d.ts +1 -0
  210. package/dist/header.cjs +15 -0
  211. package/dist/header.cjs.map +1 -0
  212. package/dist/header.js +15 -0
  213. package/dist/header.js.map +1 -0
  214. package/dist/hooks/effect.d.ts +14 -0
  215. package/dist/hooks/index.d.ts +8 -0
  216. package/dist/hooks/ref.d.ts +31 -0
  217. package/dist/hooks/useClickOutside.d.ts +9 -0
  218. package/dist/hooks/useCursorDrag/index.d.ts +2 -0
  219. package/dist/hooks/useCursorDrag/types.d.ts +5 -0
  220. package/dist/hooks/useCursorDrag/useCursorDrag.d.ts +10 -0
  221. package/dist/hooks/useCursorDrag/useVirtualCursorDrag.d.ts +1 -0
  222. package/dist/hooks/useCursorDrag/useVirtualCursorDragWebKit.d.ts +2 -0
  223. package/dist/hooks/useCursorDrag/useVirtualCursorDragWebView.d.ts +2 -0
  224. package/dist/hooks/useDebouncedCallback.d.ts +2 -0
  225. package/dist/hooks/useFilter.d.ts +21 -0
  226. package/dist/hooks/useResize.d.ts +24 -0
  227. package/dist/hooks/useSelectMultiple.d.ts +51 -0
  228. package/dist/hooks/useTransforms.d.ts +15 -0
  229. package/dist/hooks/useUniqueKey.d.ts +6 -0
  230. package/dist/index.cjs +1175 -0
  231. package/dist/index.cjs.map +1 -0
  232. package/dist/index.d.ts +51 -0
  233. package/dist/index.js +1182 -0
  234. package/dist/index.js.map +1 -0
  235. package/dist/input/Date.d.ts +28 -0
  236. package/dist/input/DragButton.d.ts +14 -0
  237. package/dist/input/HelpText.d.ts +19 -0
  238. package/dist/input/Input.spec.d.ts +1 -0
  239. package/dist/input/Input.stories.d.ts +9 -0
  240. package/dist/input/Item.d.ts +23 -0
  241. package/dist/input/Label.d.ts +13 -0
  242. package/dist/input/Number.d.ts +30 -0
  243. package/dist/input/Switch.d.ts +15 -0
  244. package/dist/input/Text.d.ts +18 -0
  245. package/dist/input/Time.d.ts +30 -0
  246. package/dist/input/Time.spec.d.ts +1 -0
  247. package/dist/input/external.d.ts +10 -0
  248. package/dist/input/index.d.ts +1 -0
  249. package/dist/input/types.d.ts +19 -0
  250. package/dist/input.cjs +15 -0
  251. package/dist/input.cjs.map +1 -0
  252. package/dist/input.js +15 -0
  253. package/dist/input.js.map +1 -0
  254. package/dist/jsx-runtime-N1ikfypN.cjs +931 -0
  255. package/dist/jsx-runtime-N1ikfypN.cjs.map +1 -0
  256. package/dist/jsx-runtime-rX5tAIG2.js +932 -0
  257. package/dist/jsx-runtime-rX5tAIG2.js.map +1 -0
  258. package/dist/list/Column.d.ts +24 -0
  259. package/dist/list/Context.d.ts +45 -0
  260. package/dist/list/Core.d.ts +40 -0
  261. package/dist/list/Filter.d.ts +22 -0
  262. package/dist/list/KeyHover.d.ts +4 -0
  263. package/dist/list/List.d.ts +19 -0
  264. package/dist/list/List.spec.d.ts +1 -0
  265. package/dist/list/List.stories.d.ts +7 -0
  266. package/dist/list/Search.d.ts +12 -0
  267. package/dist/list/Selector.d.ts +11 -0
  268. package/dist/list/external.d.ts +9 -0
  269. package/dist/list/index.d.ts +1 -0
  270. package/dist/list/types.d.ts +38 -0
  271. package/dist/list.cjs +27 -0
  272. package/dist/list.cjs.map +1 -0
  273. package/dist/list.js +27 -0
  274. package/dist/list.js.map +1 -0
  275. package/dist/memo/index.d.ts +2 -0
  276. package/dist/memo/proxyMemo.d.ts +2 -0
  277. package/dist/memo/useMemoCompare.d.ts +5 -0
  278. package/dist/menu/ContextMenu.d.ts +78 -0
  279. package/dist/menu/Item.d.ts +35 -0
  280. package/dist/menu/Menu.d.ts +26 -0
  281. package/dist/menu/external.d.ts +3 -0
  282. package/dist/menu/index.d.ts +1 -0
  283. package/dist/menu.cjs +16 -0
  284. package/dist/menu.cjs.map +1 -0
  285. package/dist/menu.js +16 -0
  286. package/dist/menu.js.map +1 -0
  287. package/dist/mock/MockGLBufferController.d.ts +20 -0
  288. package/dist/mock/setuptests.d.ts +1 -0
  289. package/dist/mosaic/Mosaic.d.ts +35 -0
  290. package/dist/mosaic/Mosaic.spec.d.ts +1 -0
  291. package/dist/mosaic/Mosaic.stories.d.ts +5 -0
  292. package/dist/mosaic/external.d.ts +4 -0
  293. package/dist/mosaic/index.d.ts +1 -0
  294. package/dist/mosaic/tree.d.ts +70 -0
  295. package/dist/mosaic/types.d.ts +50 -0
  296. package/dist/mosaic/use.d.ts +24 -0
  297. package/dist/nav/Bar.d.ts +25 -0
  298. package/dist/nav/Drawer.d.ts +24 -0
  299. package/dist/nav/Nav.spec.d.ts +1 -0
  300. package/dist/nav/Nav.stories.d.ts +6 -0
  301. package/dist/nav/external.d.ts +2 -0
  302. package/dist/nav/index.d.ts +1 -0
  303. package/dist/os/Controls/Controls.d.ts +7 -0
  304. package/dist/os/Controls/Controls.stories.d.ts +6 -0
  305. package/dist/os/Controls/Mac.d.ts +8 -0
  306. package/dist/os/Controls/Windows.d.ts +3 -0
  307. package/dist/os/Controls/index.d.ts +3 -0
  308. package/dist/os/Controls/types.d.ts +12 -0
  309. package/dist/os/external.d.ts +2 -0
  310. package/dist/os/index.d.ts +1 -0
  311. package/dist/os/use.d.ts +2 -0
  312. package/dist/pluto/Pluto.d.ts +18 -0
  313. package/dist/pluto/aether/ pluto.d.ts +1 -0
  314. package/dist/pluto/aether/index.d.ts +1 -0
  315. package/dist/pluto/defaultWorker.d.ts +1 -0
  316. package/dist/pluto/index.d.ts +1 -0
  317. package/dist/ranger/SelectLabel.d.ts +6 -0
  318. package/dist/ranger/TimeRangeChip.d.ts +6 -0
  319. package/dist/ranger/TimeRangeChip.stories.d.ts +6 -0
  320. package/dist/ranger/external.d.ts +2 -0
  321. package/dist/ranger/index.d.ts +1 -0
  322. package/dist/resize/Core.d.ts +10 -0
  323. package/dist/resize/Multiple.d.ts +63 -0
  324. package/dist/resize/Single.d.ts +23 -0
  325. package/dist/resize/Single.spec.d.ts +1 -0
  326. package/dist/resize/Single.stories.d.ts +6 -0
  327. package/dist/resize/external.d.ts +3 -0
  328. package/dist/resize/index.d.ts +1 -0
  329. package/dist/select/Button.d.ts +18 -0
  330. package/dist/select/ClearButton.d.ts +3 -0
  331. package/dist/select/Direction.d.ts +11 -0
  332. package/dist/select/List.d.ts +7 -0
  333. package/dist/select/Multiple.d.ts +45 -0
  334. package/dist/select/Select.spec.d.ts +1 -0
  335. package/dist/select/Select.stories.d.ts +14 -0
  336. package/dist/select/Single.d.ts +37 -0
  337. package/dist/select/external.d.ts +4 -0
  338. package/dist/select/index.d.ts +1 -0
  339. package/dist/state/index.d.ts +1 -0
  340. package/dist/state/state.d.ts +27 -0
  341. package/dist/status/Aggregator.d.ts +27 -0
  342. package/dist/status/Circle.d.ts +6 -0
  343. package/dist/status/Text.d.ts +21 -0
  344. package/dist/status/aether/aggregator.d.ts +86 -0
  345. package/dist/status/aether/external.d.ts +2 -0
  346. package/dist/status/aether/index.d.ts +1 -0
  347. package/dist/status/aether/types.d.ts +26 -0
  348. package/dist/status/colors.d.ts +2 -0
  349. package/dist/status/external.d.ts +4 -0
  350. package/dist/status/index.d.ts +1 -0
  351. package/dist/style.css +3119 -0
  352. package/dist/synnax/Provider.d.ts +10 -0
  353. package/dist/synnax/aether/index.d.ts +1 -0
  354. package/dist/synnax/aether/provider.d.ts +225 -0
  355. package/dist/synnax/index.d.ts +1 -0
  356. package/dist/table-8MFXzE4C.js +13664 -0
  357. package/dist/table-8MFXzE4C.js.map +1 -0
  358. package/dist/table-VNkSG_Cj.cjs +13661 -0
  359. package/dist/table-VNkSG_Cj.cjs.map +1 -0
  360. package/dist/tabs/Selector.d.ts +23 -0
  361. package/dist/tabs/Tabs.d.ts +40 -0
  362. package/dist/tabs/Tabs.spec.d.ts +1 -0
  363. package/dist/tabs/Tabs.stories.d.ts +5 -0
  364. package/dist/tabs/external.d.ts +2 -0
  365. package/dist/tabs/index.d.ts +1 -0
  366. package/dist/tabs.cjs +15 -0
  367. package/dist/tabs.cjs.map +1 -0
  368. package/dist/tabs.js +15 -0
  369. package/dist/tabs.js.map +1 -0
  370. package/dist/tag/Tag.d.ts +12 -0
  371. package/dist/tag/Tag.spec.d.ts +1 -0
  372. package/dist/tag/Tag.stories.d.ts +5 -0
  373. package/dist/tag/index.d.ts +1 -0
  374. package/dist/telem/Pipeline.d.ts +2 -0
  375. package/dist/telem/Provider.d.ts +6 -0
  376. package/dist/telem/aether/context.d.ts +16 -0
  377. package/dist/telem/aether/convertSeries.d.ts +9 -0
  378. package/dist/telem/aether/external.d.ts +9 -0
  379. package/dist/telem/aether/factory.d.ts +14 -0
  380. package/dist/telem/aether/index.d.ts +1 -0
  381. package/dist/telem/aether/noop.d.ts +12 -0
  382. package/dist/telem/aether/pipeline.d.ts +263 -0
  383. package/dist/telem/aether/provider.d.ts +24 -0
  384. package/dist/telem/aether/remote.d.ts +154 -0
  385. package/dist/telem/aether/remote.spec.d.ts +1 -0
  386. package/dist/telem/aether/static.d.ts +98 -0
  387. package/dist/telem/aether/telem.d.ts +376 -0
  388. package/dist/telem/aether/telem.spec.d.ts +1 -0
  389. package/dist/telem/aether/transformers.d.ts +197 -0
  390. package/dist/telem/client/cache/cache.d.ts +14 -0
  391. package/dist/telem/client/cache/dynamic.d.ts +32 -0
  392. package/dist/telem/client/cache/dynamic.spec.d.ts +1 -0
  393. package/dist/telem/client/cache/external.d.ts +1 -0
  394. package/dist/telem/client/cache/index.d.ts +2 -0
  395. package/dist/telem/client/cache/static.d.ts +31 -0
  396. package/dist/telem/client/cache/static.spec.d.ts +1 -0
  397. package/dist/telem/client/client.d.ts +104 -0
  398. package/dist/telem/client/index.d.ts +1 -0
  399. package/dist/telem/control/Chip.d.ts +8 -0
  400. package/dist/telem/control/Controller.d.ts +15 -0
  401. package/dist/telem/control/Indicator.d.ts +8 -0
  402. package/dist/telem/control/Legend.d.ts +7 -0
  403. package/dist/telem/control/StateProvider.d.ts +8 -0
  404. package/dist/telem/control/aether/chip.d.ts +229 -0
  405. package/dist/telem/control/aether/controller.d.ts +166 -0
  406. package/dist/telem/control/aether/external.d.ts +6 -0
  407. package/dist/telem/control/aether/index.d.ts +1 -0
  408. package/dist/telem/control/aether/indicator.d.ts +248 -0
  409. package/dist/telem/control/aether/legend.d.ts +216 -0
  410. package/dist/telem/control/aether/registry.d.ts +2 -0
  411. package/dist/telem/control/aether/state.d.ts +113 -0
  412. package/dist/telem/control/external.d.ts +6 -0
  413. package/dist/telem/control/index.d.ts +1 -0
  414. package/dist/telem/index.d.ts +1 -0
  415. package/dist/testutil/dom.d.ts +2 -0
  416. package/dist/text/DateTime.d.ts +19 -0
  417. package/dist/text/Editable.d.ts +15 -0
  418. package/dist/text/Keyboard.d.ts +5 -0
  419. package/dist/text/Link.d.ts +17 -0
  420. package/dist/text/SelectLevel.d.ts +11 -0
  421. package/dist/text/Text.d.ts +12 -0
  422. package/dist/text/Text.spec.d.ts +1 -0
  423. package/dist/text/Text.stories.d.ts +8 -0
  424. package/dist/text/WithIcon.d.ts +13 -0
  425. package/dist/text/dimensions.d.ts +2 -0
  426. package/dist/text/external.d.ts +10 -0
  427. package/dist/text/index.d.ts +1 -0
  428. package/dist/text/symbols.d.ts +5 -0
  429. package/dist/text/types.d.ts +24 -0
  430. package/dist/text.cjs +17 -0
  431. package/dist/text.cjs.map +1 -0
  432. package/dist/text.js +17 -0
  433. package/dist/text.js.map +1 -0
  434. package/dist/theming/aether/external.d.ts +3 -0
  435. package/dist/theming/aether/index.d.ts +2 -0
  436. package/dist/theming/aether/provider.d.ts +9808 -0
  437. package/dist/theming/context.d.ts +22 -0
  438. package/dist/theming/core/fontString.d.ts +4 -0
  439. package/dist/theming/core/theme.d.ts +3830 -0
  440. package/dist/theming/css.d.ts +2 -0
  441. package/dist/theming/external.d.ts +5 -0
  442. package/dist/theming/font.d.ts +8 -0
  443. package/dist/theming/index.d.ts +1 -0
  444. package/dist/theming/theming.spec.d.ts +1 -0
  445. package/dist/theming.cjs +16 -0
  446. package/dist/theming.cjs.map +1 -0
  447. package/dist/theming.js +16 -0
  448. package/dist/theming.js.map +1 -0
  449. package/dist/tooltip/Config.d.ts +29 -0
  450. package/dist/tooltip/Dialog.d.ts +36 -0
  451. package/dist/tooltip/Tooltip.stories.d.ts +5 -0
  452. package/dist/tooltip/external.d.ts +3 -0
  453. package/dist/tooltip/index.d.ts +1 -0
  454. package/dist/tooltip/wrap.d.ts +29 -0
  455. package/dist/tree/Tree.d.ts +73 -0
  456. package/dist/tree/Tree.stories.d.ts +5 -0
  457. package/dist/tree/index.d.ts +1 -0
  458. package/dist/tree.cjs +26 -0
  459. package/dist/tree.cjs.map +1 -0
  460. package/dist/tree.js +26 -0
  461. package/dist/tree.js.map +1 -0
  462. package/dist/triggers/Provider.d.ts +13 -0
  463. package/dist/triggers/Status.d.ts +5 -0
  464. package/dist/triggers/Text.d.ts +7 -0
  465. package/dist/triggers/Triggers.spec.d.ts +1 -0
  466. package/dist/triggers/Triggers.stories.d.ts +6 -0
  467. package/dist/triggers/external.d.ts +6 -0
  468. package/dist/triggers/hooks.d.ts +25 -0
  469. package/dist/triggers/index.d.ts +1 -0
  470. package/dist/triggers/triggers.d.ts +130 -0
  471. package/dist/triggers/useDrag.d.ts +17 -0
  472. package/dist/triggers.cjs +16 -0
  473. package/dist/triggers.cjs.map +1 -0
  474. package/dist/triggers.js +16 -0
  475. package/dist/triggers.js.map +1 -0
  476. package/dist/useDrag-KRQ7DTg1.cjs +48 -0
  477. package/dist/useDrag-KRQ7DTg1.cjs.map +1 -0
  478. package/dist/useDrag-rQt5hv4R.js +49 -0
  479. package/dist/useDrag-rQt5hv4R.js.map +1 -0
  480. package/dist/util/case.d.ts +1 -0
  481. package/dist/util/children.d.ts +3 -0
  482. package/dist/util/component.d.ts +5 -0
  483. package/dist/util/event.d.ts +6 -0
  484. package/dist/util/renderProp.d.ts +7 -0
  485. package/dist/util/zod.d.ts +2 -0
  486. package/dist/video/Video.d.ts +5 -0
  487. package/dist/video/Video.stories.d.ts +5 -0
  488. package/dist/video/index.d.ts +1 -0
  489. package/dist/video.cjs +10 -0
  490. package/dist/video.cjs.map +1 -0
  491. package/dist/video.js +10 -0
  492. package/dist/video.js.map +1 -0
  493. package/dist/viewport/Mask.d.ts +7 -0
  494. package/dist/viewport/SelectMode.d.ts +8 -0
  495. package/dist/viewport/Viewport.stories.d.ts +6 -0
  496. package/dist/viewport/external.d.ts +3 -0
  497. package/dist/viewport/index.d.ts +1 -0
  498. package/dist/viewport/use.d.ts +35 -0
  499. package/dist/vis/axis/axis.d.ts +97 -0
  500. package/dist/vis/axis/canvas.d.ts +18 -0
  501. package/dist/vis/axis/external.d.ts +3 -0
  502. package/dist/vis/axis/index.d.ts +1 -0
  503. package/dist/vis/axis/ticks.d.ts +33 -0
  504. package/dist/vis/button/aether/button.d.ts +94 -0
  505. package/dist/vis/button/aether/index.d.ts +1 -0
  506. package/dist/vis/button/index.d.ts +1 -0
  507. package/dist/vis/button/use.d.ts +9 -0
  508. package/dist/vis/canvas/Canvas.d.ts +11 -0
  509. package/dist/vis/canvas/aether/canvas.d.ts +230 -0
  510. package/dist/vis/canvas/aether/index.d.ts +1 -0
  511. package/dist/vis/canvas/index.d.ts +1 -0
  512. package/dist/vis/diagram/Diagram.d.ts +52 -0
  513. package/dist/vis/diagram/Diagram.stories.d.ts +5 -0
  514. package/dist/vis/diagram/aether/Diagram.d.ts +587 -0
  515. package/dist/vis/diagram/aether/index.d.ts +1 -0
  516. package/dist/vis/diagram/align.d.ts +3 -0
  517. package/dist/vis/diagram/align.spec.d.ts +1 -0
  518. package/dist/vis/diagram/edge/Edge.d.ts +14 -0
  519. package/dist/vis/diagram/edge/connector/connector.d.ts +59 -0
  520. package/dist/vis/diagram/edge/connector/connector.spec.d.ts +1 -0
  521. package/dist/vis/diagram/edge/connector/index.d.ts +1 -0
  522. package/dist/vis/diagram/edge/index.d.ts +1 -0
  523. package/dist/vis/diagram/external.d.ts +4 -0
  524. package/dist/vis/diagram/index.d.ts +1 -0
  525. package/dist/vis/diagram/types.d.ts +71 -0
  526. package/dist/vis/diagram/util.d.ts +21 -0
  527. package/dist/vis/draw2d/canvas.d.ts +106 -0
  528. package/dist/vis/draw2d/index.d.ts +60 -0
  529. package/dist/vis/eraser/aether/eraser.d.ts +194 -0
  530. package/dist/vis/eraser/aether/index.d.ts +1 -0
  531. package/dist/vis/eraser/index.d.ts +1 -0
  532. package/dist/vis/eraser/use.d.ts +11 -0
  533. package/dist/vis/legend/Container.d.ts +11 -0
  534. package/dist/vis/legend/Simple.d.ts +16 -0
  535. package/dist/vis/legend/external.d.ts +2 -0
  536. package/dist/vis/legend/index.d.ts +1 -0
  537. package/dist/vis/line/Line.d.ts +8 -0
  538. package/dist/vis/line/aether/index.d.ts +1 -0
  539. package/dist/vis/line/aether/line.d.ts +184 -0
  540. package/dist/vis/line/index.d.ts +1 -0
  541. package/dist/vis/lineplot/Axis.d.ts +17 -0
  542. package/dist/vis/lineplot/Legend.d.ts +7 -0
  543. package/dist/vis/lineplot/Line.d.ts +7 -0
  544. package/dist/vis/lineplot/LinePlot.d.ts +32 -0
  545. package/dist/vis/lineplot/LinePlot.stories.d.ts +5 -0
  546. package/dist/vis/lineplot/Title.d.ts +4 -0
  547. package/dist/vis/lineplot/Viewport.d.ts +6 -0
  548. package/dist/vis/lineplot/aether/LinePlot.d.ts +622 -0
  549. package/dist/vis/lineplot/aether/XAxis.d.ts +211 -0
  550. package/dist/vis/lineplot/aether/YAxis.d.ts +218 -0
  551. package/dist/vis/lineplot/aether/axis.d.ts +144 -0
  552. package/dist/vis/lineplot/aether/external.d.ts +3 -0
  553. package/dist/vis/lineplot/aether/grid.d.ts +22 -0
  554. package/dist/vis/lineplot/aether/index.d.ts +2 -0
  555. package/dist/vis/lineplot/external.d.ts +6 -0
  556. package/dist/vis/lineplot/index.d.ts +1 -0
  557. package/dist/vis/lineplot/tooltip/Tooltip.d.ts +8 -0
  558. package/dist/vis/lineplot/tooltip/aether/index.d.ts +1 -0
  559. package/dist/vis/lineplot/tooltip/aether/tooltip.d.ts +185 -0
  560. package/dist/vis/lineplot/tooltip/index.d.ts +1 -0
  561. package/dist/vis/measure/Measure.d.ts +6 -0
  562. package/dist/vis/measure/aether/index.d.ts +1 -0
  563. package/dist/vis/measure/aether/measure.d.ts +307 -0
  564. package/dist/vis/measure/index.d.ts +1 -0
  565. package/dist/vis/pid/Forms.d.ts +32 -0
  566. package/dist/vis/pid/Labeled.d.ts +15 -0
  567. package/dist/vis/pid/SelectOrientation.d.ts +15 -0
  568. package/dist/vis/pid/SelectOrientation.stories.d.ts +5 -0
  569. package/dist/vis/pid/Symbols.d.ts +205 -0
  570. package/dist/vis/pid/index.d.ts +1 -0
  571. package/dist/vis/pid/primitives/Primitives.d.ts +98 -0
  572. package/dist/vis/pid/primitives/Primitives.stories.d.ts +5 -0
  573. package/dist/vis/pid/primitives/index.d.ts +1 -0
  574. package/dist/vis/pid/registry.d.ts +17 -0
  575. package/dist/vis/render/GLProgram.d.ts +44 -0
  576. package/dist/vis/render/clear/index.d.ts +1 -0
  577. package/dist/vis/render/clear/program.d.ts +14 -0
  578. package/dist/vis/render/context.d.ts +61 -0
  579. package/dist/vis/render/controller.d.ts +14 -0
  580. package/dist/vis/render/eraser.d.ts +19 -0
  581. package/dist/vis/render/external.d.ts +5 -0
  582. package/dist/vis/render/index.d.ts +1 -0
  583. package/dist/vis/render/loop.d.ts +73 -0
  584. package/dist/vis/rule/Rule.d.ts +12 -0
  585. package/dist/vis/rule/aether/aether.d.ts +121 -0
  586. package/dist/vis/rule/aether/index.d.ts +1 -0
  587. package/dist/vis/rule/index.d.ts +1 -0
  588. package/dist/vis/table/Table.d.ts +25 -0
  589. package/dist/vis/table/Table.stories.d.ts +5 -0
  590. package/dist/vis/table/aether/index.d.ts +1 -0
  591. package/dist/vis/table/aether/table.d.ts +353 -0
  592. package/dist/vis/table/cell/Label.d.ts +7 -0
  593. package/dist/vis/table/cell/element.d.ts +18 -0
  594. package/dist/vis/table/cell/external.d.ts +3 -0
  595. package/dist/vis/table/cell/index.d.ts +1 -0
  596. package/dist/vis/table/cell/registry.d.ts +2 -0
  597. package/dist/vis/table/cell/value.d.ts +9 -0
  598. package/dist/vis/table/external.d.ts +2 -0
  599. package/dist/vis/table/index.d.ts +1 -0
  600. package/dist/vis/table/use.d.ts +101 -0
  601. package/dist/vis/toggle/aether/index.d.ts +1 -0
  602. package/dist/vis/toggle/aether/toggle.d.ts +170 -0
  603. package/dist/vis/toggle/index.d.ts +1 -0
  604. package/dist/vis/toggle/use.d.ts +9 -0
  605. package/dist/vis/value/aether/index.d.ts +1 -0
  606. package/dist/vis/value/aether/value.d.ts +462 -0
  607. package/dist/vis/value/external.d.ts +1 -0
  608. package/dist/vis/value/index.d.ts +1 -0
  609. package/dist/vis/value/use.d.ts +151 -0
  610. package/dist/worker/Context.d.ts +15 -0
  611. package/dist/worker/index.d.ts +1 -0
  612. package/package.json +181 -0
package/LICENSE ADDED
@@ -0,0 +1,4 @@
1
+ Source code in this repository is licensed under the Business Source License 1.1 (BSL).
2
+ A copy of the license can be found in the licenses/BSL.txt file. Source code in a given
3
+ file is licensed under the BSL and the copyright belongs to Synnax Labs, Inc. unless
4
+ otherwise noted at the beginning of the file.
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ <p align="center">
2
+ <a href="https://synnaxlabs.com/">
3
+ <img src="../x/media/static/logo/icon-white-on-black.png" width="20%"/>
4
+ </a>
5
+ </p>
6
+
7
+ # Pluto
8
+
9
+ The Synnax React component library.
10
+
11
+ ## Installation
12
+
13
+ ### NPM
14
+
15
+ ```bash
16
+ npm install @synnaxlabs/pluto
17
+ ```
18
+
19
+ ### Yarn
20
+
21
+ ```bash
22
+ yarn add @synnaxlabs/pluto
23
+ ```
24
+ ### PNPM
25
+
26
+ ```bash
27
+ pnpm add @synnaxlabs/pluto
28
+ ```
29
+
30
+ ## Contributing
31
+
32
+ Read both the [Synnax Contribution Guide](../docs/CONTRIBUTING.md) and the
33
+ [Pluto Contribution Guide](./CONTRIBUTING.md) to learn about the codebase and our
34
+ process for working with it.
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ const jsxRuntime = require("./jsx-runtime-N1ikfypN.cjs");
3
+ const React = require("react");
4
+ const css = require("./css-V3VUT_Js.cjs");
5
+ const CoreElement = ({ el, children, ...props }, ref) => React.createElement(el, { ...props, ref }, children);
6
+ const Element = React.forwardRef(CoreElement);
7
+ const Generic = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8
+ __proto__: null,
9
+ Element
10
+ }, Symbol.toStringTag, { value: "Module" }));
11
+ const ALIGNMENTS = ["start", "center", "end", "stretch"];
12
+ const JUSTIFICATIONS = [
13
+ "start",
14
+ "center",
15
+ "end",
16
+ "spaceBetween",
17
+ "spaceAround",
18
+ "spaceEvenly"
19
+ ];
20
+ const shouldReverse = (direction2, reverse) => reverse ?? (direction2 === "right" || direction2 === "bottom");
21
+ const CoreSpace = ({
22
+ style,
23
+ align,
24
+ className,
25
+ grow,
26
+ shrink,
27
+ empty = false,
28
+ size = "medium",
29
+ justify = "start",
30
+ reverse,
31
+ direction: direction_ = "y",
32
+ wrap = false,
33
+ bordered = false,
34
+ rounded = false,
35
+ el = "div",
36
+ ...props
37
+ }, ref) => {
38
+ const dir = css.direction$1.construct(direction_);
39
+ reverse = shouldReverse(direction_, reverse);
40
+ let gap;
41
+ if (empty)
42
+ [size, gap] = [0, 0];
43
+ else if (typeof size === "number")
44
+ gap = `${size}rem`;
45
+ style = {
46
+ gap,
47
+ flexDirection: flexDirection(dir, reverse),
48
+ justifyContent: justifications[justify],
49
+ alignItems: align,
50
+ flexWrap: wrap ? "wrap" : "nowrap",
51
+ ...style
52
+ };
53
+ if (grow != null)
54
+ style.flexGrow = Number(grow);
55
+ if (shrink != null)
56
+ style.flexShrink = Number(shrink);
57
+ return (
58
+ // @ts-expect-error
59
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
60
+ Element,
61
+ {
62
+ el,
63
+ ref,
64
+ className: css.CSS(
65
+ css.CSS.B("space"),
66
+ css.CSS.dir(dir),
67
+ css.CSS.bordered(bordered),
68
+ css.CSS.rounded(rounded),
69
+ typeof size === "string" && css.CSS.BM("space", size),
70
+ className
71
+ ),
72
+ style,
73
+ ...props
74
+ }
75
+ )
76
+ );
77
+ };
78
+ CoreSpace.displayName = "Space";
79
+ const Space = React.forwardRef(CoreSpace);
80
+ const flexDirection = (direction2, reverse) => {
81
+ const base = direction2 === "x" ? "row" : "column";
82
+ return reverse ? base + "-reverse" : base;
83
+ };
84
+ const justifications = {
85
+ start: "flex-start",
86
+ center: "center",
87
+ end: "flex-end",
88
+ spaceBetween: "space-between",
89
+ spaceAround: "space-around",
90
+ spaceEvenly: "space-evenly"
91
+ };
92
+ const CorePack = ({
93
+ className,
94
+ size = "medium",
95
+ reverse = false,
96
+ direction = "x",
97
+ bordered = true,
98
+ rounded = true,
99
+ shadow = false,
100
+ ...props
101
+ }, ref) => (
102
+ // @ts-expect-error
103
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
104
+ Space,
105
+ {
106
+ ref,
107
+ direction,
108
+ reverse,
109
+ className: css.CSS(
110
+ css.CSS.B("pack"),
111
+ shadow && css.CSS.BM("pack", "shadow"),
112
+ css.CSS.dir(direction),
113
+ typeof size !== "number" && css.CSS.BM("pack", size),
114
+ reverse && css.CSS.BM("pack", "reverse"),
115
+ className
116
+ ),
117
+ bordered,
118
+ rounded,
119
+ ...props,
120
+ empty: true
121
+ }
122
+ )
123
+ );
124
+ const Pack = React.forwardRef(CorePack);
125
+ const CoreCenter = ({ className, justify = "center", align = "center", ...props }, ref) => (
126
+ // @ts-expect-error
127
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
128
+ Space,
129
+ {
130
+ ref,
131
+ justify,
132
+ align,
133
+ className: css.CSS(css.CSS.BM("space", "centered"), className),
134
+ ...props
135
+ }
136
+ )
137
+ );
138
+ const Center = React.forwardRef(CoreCenter);
139
+ exports.ALIGNMENTS = ALIGNMENTS;
140
+ exports.Center = Center;
141
+ exports.CoreCenter = CoreCenter;
142
+ exports.Element = Element;
143
+ exports.Generic = Generic;
144
+ exports.JUSTIFICATIONS = JUSTIFICATIONS;
145
+ exports.Pack = Pack;
146
+ exports.Space = Space;
147
+ exports.shouldReverse = shouldReverse;
148
+ //# sourceMappingURL=Center-ZAcURh-3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Center-ZAcURh-3.cjs","sources":["../src/generic/Generic.tsx","../src/align/Space.tsx","../src/align/Pack.tsx","../src/align/Center.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 type ComponentPropsWithRef,\n createElement,\n type ForwardedRef,\n forwardRef,\n type ReactElement,\n} from \"react\";\n\nexport type JSXElementType = keyof JSX.IntrinsicElements;\n\nconst CoreElement = <E extends JSXElementType>(\n { el, children, ...props }: ElementProps<E>,\n ref: ForwardedRef<JSX.IntrinsicElements[E]>,\n): ReactElement => createElement(el, { ...props, ref }, children);\n\nexport type ElementProps<E extends JSXElementType> = ComponentPropsWithRef<E> & {\n el: E;\n};\n\n/**\n * Generic renders a component with the given element type .\n *\n * @param props - Props for the generic component. All props not defined below are passed to\n * the underlying element.\n * @param props.el - The element type to render.\n */\nexport const Element = forwardRef(CoreElement) as <E extends JSXElementType>(\n props: ElementProps<E>,\n) => ReactElement;\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 CSSProperties,\n type ForwardedRef,\n type ReactElement,\n forwardRef,\n} from \"react\";\n\nimport { direction } from \"@synnaxlabs/x\";\n\nimport { CSS } from \"@/css\";\nimport { Generic } from \"@/generic\";\nimport { type ComponentSize } from \"@/util/component\";\n\nimport \"@/align/Space.css\";\n\n/** All possible alignments for the cross axis of a space */\nexport const ALIGNMENTS = [\"start\", \"center\", \"end\", \"stretch\"] as const;\n\n/** The alignments for the cross axis of a space */\nexport type Alignment = (typeof ALIGNMENTS)[number];\n\n/** All possible justifications for the main axis of a space */\nexport const JUSTIFICATIONS = [\n \"start\",\n \"center\",\n \"end\",\n \"spaceBetween\",\n \"spaceAround\",\n \"spaceEvenly\",\n] as const;\n\n/** The justification for the main axis of a space */\nexport type Justification = (typeof JUSTIFICATIONS)[number];\n\nexport type SpaceElementType =\n | \"div\"\n | \"header\"\n | \"nav\"\n | \"section\"\n | \"article\"\n | \"aside\"\n | \"footer\"\n | \"button\"\n | \"dialog\"\n | \"a\";\n\nexport interface SpaceExtensionProps {\n empty?: boolean;\n size?: ComponentSize | number;\n direction?: direction.Crude;\n reverse?: boolean;\n justify?: Justification;\n align?: Alignment;\n grow?: boolean | number;\n shrink?: boolean | number;\n wrap?: boolean;\n el?: SpaceElementType;\n bordered?: boolean;\n rounded?: boolean;\n}\n\nexport type SpaceProps<E extends SpaceElementType = \"div\"> = Omit<\n Generic.ElementProps<E>,\n \"el\"\n> &\n SpaceExtensionProps;\n\nexport const shouldReverse = (direction: direction.Crude, reverse?: boolean): boolean =>\n reverse ?? (direction === \"right\" || direction === \"bottom\");\n\nconst CoreSpace = <E extends SpaceElementType>(\n {\n style,\n align,\n className,\n grow,\n shrink,\n empty = false,\n size = \"medium\",\n justify = \"start\",\n reverse,\n direction: direction_ = \"y\",\n wrap = false,\n bordered = false,\n rounded = false,\n el = \"div\",\n ...props\n }: SpaceProps<E>,\n ref: ForwardedRef<JSX.IntrinsicElements[E]>,\n): ReactElement => {\n const dir = direction.construct(direction_);\n reverse = shouldReverse(direction_, reverse);\n\n let gap: number | string | undefined;\n if (empty) [size, gap] = [0, 0];\n else if (typeof size === \"number\") gap = `${size}rem`;\n\n style = {\n gap,\n flexDirection: flexDirection(dir, reverse),\n justifyContent: justifications[justify],\n alignItems: align,\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n ...style,\n };\n\n if (grow != null) style.flexGrow = Number(grow);\n if (shrink != null) style.flexShrink = Number(shrink);\n\n return (\n // @ts-expect-error\n <Generic.Element<E>\n el={el}\n ref={ref}\n className={CSS(\n CSS.B(\"space\"),\n CSS.dir(dir),\n CSS.bordered(bordered),\n CSS.rounded(rounded),\n typeof size === \"string\" && CSS.BM(\"space\", size),\n className,\n )}\n style={style}\n {...props}\n />\n );\n};\nCoreSpace.displayName = \"Space\";\n\n/**\n * A component that orients its children in a row or column and adds\n * space between them. This is essentially a thin wrapped around a\n * flex component that makes it more 'reacty' to use.\n *\n * @param props - The props for the component. All unlisted props will be passed\n * to the underlying root element.\n * @param props.align - The off axis alignment of the children. The 'off' axis is the\n * opposite direction of props.direction. For example, if direction is 'x', then the\n * off axis is 'y'. See the {@link Alignment} for available options.\n * @param props.justify - The main axis justification of the children. The 'main' axis\n * is the same direction as props.direction. For example, if direction is 'x', then the\n * main axis is 'x'. See the {@link Justification} for available options.\n * @param props.grow - A boolean or number value that determines if the space should\n * grow in the flex-box sense. A value of true will set css flex-grow to 1. A value of\n * false will leave the css flex-grow unset. A number value will set the css flex-grow\n * to that number.\n * @param props.size - A string or number value that determines the amount of spacing\n * between items. If set to \"small\", \"medium\", or \"large\", the spacing will be determined\n * by the theme. If set to a number, the spacing will be that number of rem.\n * @param props.wrap - A boolean value that determines if the space should wrap its\n * children.\n * @param props.el - The element type to render as. Defaults to 'div'.\n */\nexport const Space = forwardRef(CoreSpace) as <E extends SpaceElementType = \"div\">(\n props: SpaceProps<E>,\n) => ReactElement;\n\ntype FlexDirection = CSSProperties[\"flexDirection\"];\n\nconst flexDirection = (\n direction: direction.Direction,\n reverse: boolean,\n): FlexDirection => {\n const base = direction === \"x\" ? \"row\" : \"column\";\n return reverse ? ((base + \"-reverse\") as FlexDirection) : base;\n};\n\nconst justifications: Record<Justification, CSSProperties[\"justifyContent\"]> = {\n start: \"flex-start\",\n center: \"center\",\n end: \"flex-end\",\n spaceBetween: \"space-between\",\n spaceAround: \"space-around\",\n spaceEvenly: \"space-evenly\",\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 ForwardedRef, type ReactElement, forwardRef } from \"react\";\n\nimport { Space, type SpaceElementType, type SpaceProps } from \"@/align/Space\";\nimport { CSS } from \"@/css\";\n\nimport \"@/align/Pack.css\";\n\n/** Props for the {@link Pack} component. */\nexport type PackProps<E extends SpaceElementType = \"div\"> = Omit<\n SpaceProps<E>,\n \"empty\"\n> & {\n shadow?: boolean;\n};\n\nconst CorePack = <E extends SpaceElementType = \"div\">(\n {\n className,\n size = \"medium\",\n reverse = false,\n direction = \"x\",\n bordered = true,\n rounded = true,\n shadow = false,\n ...props\n }: PackProps<E>,\n // select the correct type for the ref\n ref: ForwardedRef<JSX.IntrinsicElements[E]>,\n): ReactElement => (\n // @ts-expect-error\n <Space<E>\n ref={ref}\n direction={direction}\n reverse={reverse}\n className={CSS(\n CSS.B(\"pack\"),\n shadow && CSS.BM(\"pack\", \"shadow\"),\n CSS.dir(direction),\n typeof size !== \"number\" && CSS.BM(\"pack\", size),\n reverse && CSS.BM(\"pack\", \"reverse\"),\n className,\n )}\n bordered={bordered}\n rounded={rounded}\n {...props}\n empty\n />\n);\n\n/**\n * Packs elements together, setting their size and styling the borders between them so\n * that they appear as a single element. This is useful for buttons that represent a\n * selection state, for example.\n *\n * @param props - The props for the pack. Any extra props will be passed to the\n * underlying Space component.\n * @param props.children - The children to pack together. These must satisfy the\n * {@link PackChildProps} interface.\n * @param props.direction - The direction to pack the children in. Defaults to\n * \"x\".\n * @param props.size - The size to set on the children. Any sizes already set on the\n * children will be overridden. Defaults to \"medium\".\n * @param props.el - The element type to use as the root element for the Pack.\n * Defaults to \"div\".\n */\nexport const Pack = forwardRef(CorePack) as <E extends SpaceElementType = \"div\">(\n props: PackProps<E>,\n) => ReactElement;\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 ForwardedRef, type ReactElement, forwardRef } from \"react\";\n\nimport { Space, type SpaceElementType, type SpaceProps } from \"@/align/Space\";\nimport { CSS } from \"@/css\";\n\nimport \"@/align/Center.css\";\n\nexport const CoreCenter = <E extends SpaceElementType = \"div\">(\n { className, justify = \"center\", align = \"center\", ...props }: SpaceProps<E>,\n ref: ForwardedRef<JSX.IntrinsicElements[E]>,\n): ReactElement => (\n // @ts-expect-error\n <Space<E>\n ref={ref}\n justify={justify}\n align={align}\n className={CSS(CSS.BM(\"space\", \"centered\"), className)}\n {...props}\n />\n);\n\n/**\n * An element whose width and height is 100% and whose alignment and justification\n * is centered. Props are the same as {@link Space}.\n */\nexport const Center = forwardRef(CoreCenter) as <E extends SpaceElementType = \"div\">(\n props: SpaceProps<E>,\n) => ReactElement;\n"],"names":["createElement","forwardRef","direction","jsx","Generic.Element","CSS"],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import { j as jsxRuntimeExports } from "./jsx-runtime-rX5tAIG2.js";
2
+ import { forwardRef, createElement } from "react";
3
+ import { d as direction$1, C as CSS } from "./css-NTD4Xm8x.js";
4
+ const CoreElement = ({ el, children, ...props }, ref) => createElement(el, { ...props, ref }, children);
5
+ const Element = forwardRef(CoreElement);
6
+ const Generic = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7
+ __proto__: null,
8
+ Element
9
+ }, Symbol.toStringTag, { value: "Module" }));
10
+ const ALIGNMENTS = ["start", "center", "end", "stretch"];
11
+ const JUSTIFICATIONS = [
12
+ "start",
13
+ "center",
14
+ "end",
15
+ "spaceBetween",
16
+ "spaceAround",
17
+ "spaceEvenly"
18
+ ];
19
+ const shouldReverse = (direction2, reverse) => reverse ?? (direction2 === "right" || direction2 === "bottom");
20
+ const CoreSpace = ({
21
+ style,
22
+ align,
23
+ className,
24
+ grow,
25
+ shrink,
26
+ empty = false,
27
+ size = "medium",
28
+ justify = "start",
29
+ reverse,
30
+ direction: direction_ = "y",
31
+ wrap = false,
32
+ bordered = false,
33
+ rounded = false,
34
+ el = "div",
35
+ ...props
36
+ }, ref) => {
37
+ const dir = direction$1.construct(direction_);
38
+ reverse = shouldReverse(direction_, reverse);
39
+ let gap;
40
+ if (empty)
41
+ [size, gap] = [0, 0];
42
+ else if (typeof size === "number")
43
+ gap = `${size}rem`;
44
+ style = {
45
+ gap,
46
+ flexDirection: flexDirection(dir, reverse),
47
+ justifyContent: justifications[justify],
48
+ alignItems: align,
49
+ flexWrap: wrap ? "wrap" : "nowrap",
50
+ ...style
51
+ };
52
+ if (grow != null)
53
+ style.flexGrow = Number(grow);
54
+ if (shrink != null)
55
+ style.flexShrink = Number(shrink);
56
+ return (
57
+ // @ts-expect-error
58
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
59
+ Element,
60
+ {
61
+ el,
62
+ ref,
63
+ className: CSS(
64
+ CSS.B("space"),
65
+ CSS.dir(dir),
66
+ CSS.bordered(bordered),
67
+ CSS.rounded(rounded),
68
+ typeof size === "string" && CSS.BM("space", size),
69
+ className
70
+ ),
71
+ style,
72
+ ...props
73
+ }
74
+ )
75
+ );
76
+ };
77
+ CoreSpace.displayName = "Space";
78
+ const Space = forwardRef(CoreSpace);
79
+ const flexDirection = (direction2, reverse) => {
80
+ const base = direction2 === "x" ? "row" : "column";
81
+ return reverse ? base + "-reverse" : base;
82
+ };
83
+ const justifications = {
84
+ start: "flex-start",
85
+ center: "center",
86
+ end: "flex-end",
87
+ spaceBetween: "space-between",
88
+ spaceAround: "space-around",
89
+ spaceEvenly: "space-evenly"
90
+ };
91
+ const CorePack = ({
92
+ className,
93
+ size = "medium",
94
+ reverse = false,
95
+ direction = "x",
96
+ bordered = true,
97
+ rounded = true,
98
+ shadow = false,
99
+ ...props
100
+ }, ref) => (
101
+ // @ts-expect-error
102
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
103
+ Space,
104
+ {
105
+ ref,
106
+ direction,
107
+ reverse,
108
+ className: CSS(
109
+ CSS.B("pack"),
110
+ shadow && CSS.BM("pack", "shadow"),
111
+ CSS.dir(direction),
112
+ typeof size !== "number" && CSS.BM("pack", size),
113
+ reverse && CSS.BM("pack", "reverse"),
114
+ className
115
+ ),
116
+ bordered,
117
+ rounded,
118
+ ...props,
119
+ empty: true
120
+ }
121
+ )
122
+ );
123
+ const Pack = forwardRef(CorePack);
124
+ const CoreCenter = ({ className, justify = "center", align = "center", ...props }, ref) => (
125
+ // @ts-expect-error
126
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
127
+ Space,
128
+ {
129
+ ref,
130
+ justify,
131
+ align,
132
+ className: CSS(CSS.BM("space", "centered"), className),
133
+ ...props
134
+ }
135
+ )
136
+ );
137
+ const Center = forwardRef(CoreCenter);
138
+ export {
139
+ ALIGNMENTS as A,
140
+ Center as C,
141
+ Element as E,
142
+ Generic as G,
143
+ JUSTIFICATIONS as J,
144
+ Pack as P,
145
+ Space as S,
146
+ CoreCenter as a,
147
+ shouldReverse as s
148
+ };
149
+ //# sourceMappingURL=Center-gEKkAkdh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Center-gEKkAkdh.js","sources":["../src/generic/Generic.tsx","../src/align/Space.tsx","../src/align/Pack.tsx","../src/align/Center.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 type ComponentPropsWithRef,\n createElement,\n type ForwardedRef,\n forwardRef,\n type ReactElement,\n} from \"react\";\n\nexport type JSXElementType = keyof JSX.IntrinsicElements;\n\nconst CoreElement = <E extends JSXElementType>(\n { el, children, ...props }: ElementProps<E>,\n ref: ForwardedRef<JSX.IntrinsicElements[E]>,\n): ReactElement => createElement(el, { ...props, ref }, children);\n\nexport type ElementProps<E extends JSXElementType> = ComponentPropsWithRef<E> & {\n el: E;\n};\n\n/**\n * Generic renders a component with the given element type .\n *\n * @param props - Props for the generic component. All props not defined below are passed to\n * the underlying element.\n * @param props.el - The element type to render.\n */\nexport const Element = forwardRef(CoreElement) as <E extends JSXElementType>(\n props: ElementProps<E>,\n) => ReactElement;\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 CSSProperties,\n type ForwardedRef,\n type ReactElement,\n forwardRef,\n} from \"react\";\n\nimport { direction } from \"@synnaxlabs/x\";\n\nimport { CSS } from \"@/css\";\nimport { Generic } from \"@/generic\";\nimport { type ComponentSize } from \"@/util/component\";\n\nimport \"@/align/Space.css\";\n\n/** All possible alignments for the cross axis of a space */\nexport const ALIGNMENTS = [\"start\", \"center\", \"end\", \"stretch\"] as const;\n\n/** The alignments for the cross axis of a space */\nexport type Alignment = (typeof ALIGNMENTS)[number];\n\n/** All possible justifications for the main axis of a space */\nexport const JUSTIFICATIONS = [\n \"start\",\n \"center\",\n \"end\",\n \"spaceBetween\",\n \"spaceAround\",\n \"spaceEvenly\",\n] as const;\n\n/** The justification for the main axis of a space */\nexport type Justification = (typeof JUSTIFICATIONS)[number];\n\nexport type SpaceElementType =\n | \"div\"\n | \"header\"\n | \"nav\"\n | \"section\"\n | \"article\"\n | \"aside\"\n | \"footer\"\n | \"button\"\n | \"dialog\"\n | \"a\";\n\nexport interface SpaceExtensionProps {\n empty?: boolean;\n size?: ComponentSize | number;\n direction?: direction.Crude;\n reverse?: boolean;\n justify?: Justification;\n align?: Alignment;\n grow?: boolean | number;\n shrink?: boolean | number;\n wrap?: boolean;\n el?: SpaceElementType;\n bordered?: boolean;\n rounded?: boolean;\n}\n\nexport type SpaceProps<E extends SpaceElementType = \"div\"> = Omit<\n Generic.ElementProps<E>,\n \"el\"\n> &\n SpaceExtensionProps;\n\nexport const shouldReverse = (direction: direction.Crude, reverse?: boolean): boolean =>\n reverse ?? (direction === \"right\" || direction === \"bottom\");\n\nconst CoreSpace = <E extends SpaceElementType>(\n {\n style,\n align,\n className,\n grow,\n shrink,\n empty = false,\n size = \"medium\",\n justify = \"start\",\n reverse,\n direction: direction_ = \"y\",\n wrap = false,\n bordered = false,\n rounded = false,\n el = \"div\",\n ...props\n }: SpaceProps<E>,\n ref: ForwardedRef<JSX.IntrinsicElements[E]>,\n): ReactElement => {\n const dir = direction.construct(direction_);\n reverse = shouldReverse(direction_, reverse);\n\n let gap: number | string | undefined;\n if (empty) [size, gap] = [0, 0];\n else if (typeof size === \"number\") gap = `${size}rem`;\n\n style = {\n gap,\n flexDirection: flexDirection(dir, reverse),\n justifyContent: justifications[justify],\n alignItems: align,\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n ...style,\n };\n\n if (grow != null) style.flexGrow = Number(grow);\n if (shrink != null) style.flexShrink = Number(shrink);\n\n return (\n // @ts-expect-error\n <Generic.Element<E>\n el={el}\n ref={ref}\n className={CSS(\n CSS.B(\"space\"),\n CSS.dir(dir),\n CSS.bordered(bordered),\n CSS.rounded(rounded),\n typeof size === \"string\" && CSS.BM(\"space\", size),\n className,\n )}\n style={style}\n {...props}\n />\n );\n};\nCoreSpace.displayName = \"Space\";\n\n/**\n * A component that orients its children in a row or column and adds\n * space between them. This is essentially a thin wrapped around a\n * flex component that makes it more 'reacty' to use.\n *\n * @param props - The props for the component. All unlisted props will be passed\n * to the underlying root element.\n * @param props.align - The off axis alignment of the children. The 'off' axis is the\n * opposite direction of props.direction. For example, if direction is 'x', then the\n * off axis is 'y'. See the {@link Alignment} for available options.\n * @param props.justify - The main axis justification of the children. The 'main' axis\n * is the same direction as props.direction. For example, if direction is 'x', then the\n * main axis is 'x'. See the {@link Justification} for available options.\n * @param props.grow - A boolean or number value that determines if the space should\n * grow in the flex-box sense. A value of true will set css flex-grow to 1. A value of\n * false will leave the css flex-grow unset. A number value will set the css flex-grow\n * to that number.\n * @param props.size - A string or number value that determines the amount of spacing\n * between items. If set to \"small\", \"medium\", or \"large\", the spacing will be determined\n * by the theme. If set to a number, the spacing will be that number of rem.\n * @param props.wrap - A boolean value that determines if the space should wrap its\n * children.\n * @param props.el - The element type to render as. Defaults to 'div'.\n */\nexport const Space = forwardRef(CoreSpace) as <E extends SpaceElementType = \"div\">(\n props: SpaceProps<E>,\n) => ReactElement;\n\ntype FlexDirection = CSSProperties[\"flexDirection\"];\n\nconst flexDirection = (\n direction: direction.Direction,\n reverse: boolean,\n): FlexDirection => {\n const base = direction === \"x\" ? \"row\" : \"column\";\n return reverse ? ((base + \"-reverse\") as FlexDirection) : base;\n};\n\nconst justifications: Record<Justification, CSSProperties[\"justifyContent\"]> = {\n start: \"flex-start\",\n center: \"center\",\n end: \"flex-end\",\n spaceBetween: \"space-between\",\n spaceAround: \"space-around\",\n spaceEvenly: \"space-evenly\",\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 ForwardedRef, type ReactElement, forwardRef } from \"react\";\n\nimport { Space, type SpaceElementType, type SpaceProps } from \"@/align/Space\";\nimport { CSS } from \"@/css\";\n\nimport \"@/align/Pack.css\";\n\n/** Props for the {@link Pack} component. */\nexport type PackProps<E extends SpaceElementType = \"div\"> = Omit<\n SpaceProps<E>,\n \"empty\"\n> & {\n shadow?: boolean;\n};\n\nconst CorePack = <E extends SpaceElementType = \"div\">(\n {\n className,\n size = \"medium\",\n reverse = false,\n direction = \"x\",\n bordered = true,\n rounded = true,\n shadow = false,\n ...props\n }: PackProps<E>,\n // select the correct type for the ref\n ref: ForwardedRef<JSX.IntrinsicElements[E]>,\n): ReactElement => (\n // @ts-expect-error\n <Space<E>\n ref={ref}\n direction={direction}\n reverse={reverse}\n className={CSS(\n CSS.B(\"pack\"),\n shadow && CSS.BM(\"pack\", \"shadow\"),\n CSS.dir(direction),\n typeof size !== \"number\" && CSS.BM(\"pack\", size),\n reverse && CSS.BM(\"pack\", \"reverse\"),\n className,\n )}\n bordered={bordered}\n rounded={rounded}\n {...props}\n empty\n />\n);\n\n/**\n * Packs elements together, setting their size and styling the borders between them so\n * that they appear as a single element. This is useful for buttons that represent a\n * selection state, for example.\n *\n * @param props - The props for the pack. Any extra props will be passed to the\n * underlying Space component.\n * @param props.children - The children to pack together. These must satisfy the\n * {@link PackChildProps} interface.\n * @param props.direction - The direction to pack the children in. Defaults to\n * \"x\".\n * @param props.size - The size to set on the children. Any sizes already set on the\n * children will be overridden. Defaults to \"medium\".\n * @param props.el - The element type to use as the root element for the Pack.\n * Defaults to \"div\".\n */\nexport const Pack = forwardRef(CorePack) as <E extends SpaceElementType = \"div\">(\n props: PackProps<E>,\n) => ReactElement;\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 ForwardedRef, type ReactElement, forwardRef } from \"react\";\n\nimport { Space, type SpaceElementType, type SpaceProps } from \"@/align/Space\";\nimport { CSS } from \"@/css\";\n\nimport \"@/align/Center.css\";\n\nexport const CoreCenter = <E extends SpaceElementType = \"div\">(\n { className, justify = \"center\", align = \"center\", ...props }: SpaceProps<E>,\n ref: ForwardedRef<JSX.IntrinsicElements[E]>,\n): ReactElement => (\n // @ts-expect-error\n <Space<E>\n ref={ref}\n justify={justify}\n align={align}\n className={CSS(CSS.BM(\"space\", \"centered\"), className)}\n {...props}\n />\n);\n\n/**\n * An element whose width and height is 100% and whose alignment and justification\n * is centered. Props are the same as {@link Space}.\n */\nexport const Center = forwardRef(CoreCenter) as <E extends SpaceElementType = \"div\">(\n props: SpaceProps<E>,\n) => ReactElement;\n"],"names":["direction","jsx","Generic.Element"],"mappings":";;;AAmBA,MAAM,cAAc,CAClB,EAAE,IAAI,UAAU,GAAG,MAAM,GACzB,QACiB,cAAc,IAAI,EAAE,GAAG,OAAO,OAAO,QAAQ;AAanD,MAAA,UAAU,WAAW,WAAW;;;;;ACVtC,MAAM,aAAa,CAAC,SAAS,UAAU,OAAO,SAAS;AAMvD,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAsCO,MAAM,gBAAgB,CAACA,YAA4B,YACxD,YAAYA,eAAc,WAAWA,eAAc;AAErD,MAAM,YAAY,CAChB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV;AAAA,EACA,WAAW,aAAa;AAAA,EACxB,OAAO;AAAA,EACP,WAAW;AAAA,EACX,UAAU;AAAA,EACV,KAAK;AAAA,EACL,GAAG;AACL,GACA,QACiB;AACX,QAAA,MAAMA,YAAU,UAAU,UAAU;AAChC,YAAA,cAAc,YAAY,OAAO;AAEvC,MAAA;AACA,MAAA;AAAO,KAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;AAAA,WACrB,OAAO,SAAS;AAAU,UAAM,GAAG,IAAI;AAExC,UAAA;AAAA,IACN;AAAA,IACA,eAAe,cAAc,KAAK,OAAO;AAAA,IACzC,gBAAgB,eAAe,OAAO;AAAA,IACtC,YAAY;AAAA,IACZ,UAAU,OAAO,SAAS;AAAA,IAC1B,GAAG;AAAA,EAAA;AAGL,MAAI,QAAQ;AAAY,UAAA,WAAW,OAAO,IAAI;AAC9C,MAAI,UAAU;AAAY,UAAA,aAAa,OAAO,MAAM;AAEpD;AAAA;AAAA,IAEEC,kCAAA;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW;AAAA,UACT,IAAI,EAAE,OAAO;AAAA,UACb,IAAI,IAAI,GAAG;AAAA,UACX,IAAI,SAAS,QAAQ;AAAA,UACrB,IAAI,QAAQ,OAAO;AAAA,UACnB,OAAO,SAAS,YAAY,IAAI,GAAG,SAAS,IAAI;AAAA,UAChD;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA,MAAA;AAAA,IACN;AAAA;AAEJ;AACA,UAAU,cAAc;AA0BX,MAAA,QAAQ,WAAW,SAAS;AAMzC,MAAM,gBAAgB,CACpBF,YACA,YACkB;AACZ,QAAA,OAAOA,eAAc,MAAM,QAAQ;AAClC,SAAA,UAAY,OAAO,aAAgC;AAC5D;AAEA,MAAM,iBAAyE;AAAA,EAC7E,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AACf;AC/JA,MAAM,WAAW,CACf;AAAA,EACE;AAAA,EACA,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,GAAG;AACL,GAEA;AAAA;AAAA,EAGAC,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT,IAAI,EAAE,MAAM;AAAA,QACZ,UAAU,IAAI,GAAG,QAAQ,QAAQ;AAAA,QACjC,IAAI,IAAI,SAAS;AAAA,QACjB,OAAO,SAAS,YAAY,IAAI,GAAG,QAAQ,IAAI;AAAA,QAC/C,WAAW,IAAI,GAAG,QAAQ,SAAS;AAAA,QACnC;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,OAAK;AAAA,IAAA;AAAA,EACP;AAAA;AAmBW,MAAA,OAAO,WAAW,QAAQ;AC1D1B,MAAA,aAAa,CACxB,EAAE,WAAW,UAAU,UAAU,QAAQ,UAAU,GAAG,MAAA,GACtD;AAAA;AAAA,EAGAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,IAAI,IAAI,GAAG,SAAS,UAAU,GAAG,SAAS;AAAA,MACpD,GAAG;AAAA,IAAA;AAAA,EACN;AAAA;AAOW,MAAA,SAAS,WAAW,UAAU;"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ const jsxRuntime = require("./jsx-runtime-N1ikfypN.cjs");
3
+ const React = require("react");
4
+ const Center = require("./Center-ZAcURh-3.cjs");
5
+ const css = require("./css-V3VUT_Js.cjs");
6
+ const Context = React.createContext({
7
+ divided: false,
8
+ level: "h1"
9
+ });
10
+ const useContext = () => React.useContext(Context);
11
+ const Header = ({
12
+ children,
13
+ className,
14
+ level = "h1",
15
+ divided = false,
16
+ ...props
17
+ }) => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Context.Provider, { value: { level, divided }, children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
18
+ Center.Space,
19
+ {
20
+ el: "header",
21
+ direction: "x",
22
+ justify: "spaceBetween",
23
+ className: css.CSS(
24
+ css.CSS.B("header"),
25
+ css.CSS.bordered("bottom"),
26
+ divided && css.CSS.BM("header", "divided"),
27
+ className
28
+ ),
29
+ ...props,
30
+ children
31
+ }
32
+ ) });
33
+ exports.Header = Header;
34
+ exports.useContext = useContext;
35
+ //# sourceMappingURL=Header-5YX6FUn6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header-5YX6FUn6.cjs","sources":["../src/header/Header.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"],"names":["createContext","reactUseContext","jsx","Align.Space","CSS"],"mappings":";;;;;AAiCA,MAAM,UAAUA,MAAAA,cAA4B;AAAA,EAC1C,SAAS;AAAA,EACT,OAAO;AACT,CAAC;AAEY,MAAA,aAAa,MAAoBC,MAAA,WAAgB,OAAO;AAgB9D,MAAM,SAAS,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,GAAG;AACL,MACEC,2BAAA,kBAAA,IAAC,QAAQ,UAAR,EAAiB,OAAO,EAAE,OAAO,WAChC,UAAAA,2BAAA,kBAAA;AAAA,EAACC,OAAM;AAAA,EAAN;AAAA,IACC,IAAG;AAAA,IACH,WAAU;AAAA,IACV,SAAQ;AAAA,IACR,WAAWC,IAAA;AAAA,MACTA,IAAA,IAAI,EAAE,QAAQ;AAAA,MACdA,IAAA,IAAI,SAAS,QAAQ;AAAA,MACrB,WAAWA,IAAA,IAAI,GAAG,UAAU,SAAS;AAAA,MACrC;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA,EAAA;AACH,EACF,CAAA;;;"}
@@ -0,0 +1,36 @@
1
+ import { j as jsxRuntimeExports } from "./jsx-runtime-rX5tAIG2.js";
2
+ import { createContext, useContext as useContext$1 } from "react";
3
+ import { S as Space } from "./Center-gEKkAkdh.js";
4
+ import { C as CSS } from "./css-NTD4Xm8x.js";
5
+ const Context = createContext({
6
+ divided: false,
7
+ level: "h1"
8
+ });
9
+ const useContext = () => useContext$1(Context);
10
+ const Header = ({
11
+ children,
12
+ className,
13
+ level = "h1",
14
+ divided = false,
15
+ ...props
16
+ }) => /* @__PURE__ */ jsxRuntimeExports.jsx(Context.Provider, { value: { level, divided }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
17
+ Space,
18
+ {
19
+ el: "header",
20
+ direction: "x",
21
+ justify: "spaceBetween",
22
+ className: CSS(
23
+ CSS.B("header"),
24
+ CSS.bordered("bottom"),
25
+ divided && CSS.BM("header", "divided"),
26
+ className
27
+ ),
28
+ ...props,
29
+ children
30
+ }
31
+ ) });
32
+ export {
33
+ Header as H,
34
+ useContext as u
35
+ };
36
+ //# sourceMappingURL=Header-7x6367IV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header-7x6367IV.js","sources":["../src/header/Header.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"],"names":["reactUseContext","jsx","Align.Space"],"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;"}
@@ -0,0 +1,171 @@
1
+ import { j as jsxRuntimeExports } from "./jsx-runtime-rX5tAIG2.js";
2
+ import { forwardRef, useRef, useState, createContext, useContext } from "react";
3
+ import { x as xy, C as CSS, u as unique, b as box$1 } from "./css-NTD4Xm8x.js";
4
+ import { a2 as useClickOutside, B as Button, I as Icon } from "./Toggle-kLunfJtR.js";
5
+ import { L as Link } from "./Link-laNlv47N.js";
6
+ const INITIAL_STATE = {
7
+ visible: false,
8
+ keys: [],
9
+ xy: xy.ZERO
10
+ };
11
+ const CONTEXT_SELECTED = CSS.BM("context", "selected");
12
+ const CONTEXT_TARGET = CSS.BE("context", "target");
13
+ const CONTEXT_MENU_CONTAINER = CSS.BE("menu-context", "container");
14
+ const findTarget = (target) => {
15
+ let candidate = target;
16
+ while (candidate != null && !candidate.classList.contains(CONTEXT_TARGET)) {
17
+ if (candidate.classList.contains(CONTEXT_MENU_CONTAINER))
18
+ return target;
19
+ candidate = candidate.parentElement;
20
+ }
21
+ return candidate;
22
+ };
23
+ const findSelected = (target_) => {
24
+ var _a;
25
+ const target = findTarget(target_);
26
+ const selected = ((_a = target.parentElement) == null ? void 0 : _a.querySelectorAll(`.${CONTEXT_SELECTED}`)) ?? [];
27
+ return [target, ...Array.from(selected)];
28
+ };
29
+ const useContextMenu = () => {
30
+ const menuRef = useRef(null);
31
+ const [state, setMenuState] = useState(INITIAL_STATE);
32
+ const handleOpen = (e, keys) => {
33
+ const p = xy.construct(e);
34
+ if ("preventDefault" in e) {
35
+ e.preventDefault();
36
+ e.stopPropagation();
37
+ keys = keys ?? unique(findSelected(e.target).map((el) => el.id));
38
+ } else
39
+ keys = [];
40
+ setMenuState({ visible: true, keys, xy: p });
41
+ };
42
+ const refCallback = (el) => {
43
+ menuRef.current = el;
44
+ if (el == null)
45
+ return;
46
+ setMenuState((prev) => {
47
+ if (prev.visible) {
48
+ const [repositioned, changed] = box$1.positionSoVisible(
49
+ el,
50
+ window.document.documentElement
51
+ );
52
+ if (changed)
53
+ return { ...prev, xy: box$1.topLeft(repositioned) };
54
+ }
55
+ return prev;
56
+ });
57
+ };
58
+ const hideMenu = () => setMenuState(INITIAL_STATE);
59
+ useClickOutside(menuRef, hideMenu);
60
+ return {
61
+ ...state,
62
+ close: hideMenu,
63
+ open: handleOpen,
64
+ ref: refCallback
65
+ };
66
+ };
67
+ const ContextMenuCore = ({
68
+ children,
69
+ menu,
70
+ visible,
71
+ open,
72
+ close,
73
+ xy: xy2,
74
+ keys,
75
+ className,
76
+ ...props
77
+ }, ref) => {
78
+ const menuC = visible ? menu == null ? void 0 : menu({ keys }) : null;
79
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
80
+ "div",
81
+ {
82
+ className: CSS(CONTEXT_MENU_CONTAINER, className, CSS.inheritDims()),
83
+ onContextMenu: open,
84
+ ...props,
85
+ children: [
86
+ children,
87
+ menuC != null && /* @__PURE__ */ jsxRuntimeExports.jsx(
88
+ "div",
89
+ {
90
+ className: CSS(CSS.B("menu-context"), CSS.bordered()),
91
+ ref,
92
+ style: { left: xy2.x, top: xy2.y },
93
+ onClick: close,
94
+ children: menuC
95
+ }
96
+ )
97
+ ]
98
+ }
99
+ );
100
+ };
101
+ const ContextMenu = forwardRef(ContextMenuCore);
102
+ ContextMenu.displayName = "ContextMenu";
103
+ const MenuContext = createContext({
104
+ onClick: () => {
105
+ },
106
+ selected: ""
107
+ });
108
+ const useMenuContext = () => useContext(MenuContext);
109
+ const Menu = ({
110
+ children,
111
+ onChange,
112
+ level,
113
+ iconSpacing,
114
+ value = ""
115
+ }) => {
116
+ const handleClick = (key) => onChange == null ? void 0 : onChange(key);
117
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
118
+ MenuContext.Provider,
119
+ {
120
+ value: { onClick: handleClick, selected: value, level, iconSpacing },
121
+ children
122
+ }
123
+ );
124
+ };
125
+ const menuItemFactory = (Base, defaultProps) => (
126
+ // eslint-disable-next-line react/display-name
127
+ (props) => {
128
+ const { itemKey, className, onClick, size, ...rest } = {
129
+ ...defaultProps,
130
+ ...props
131
+ };
132
+ const { onClick: ctxOnClick, selected, level, iconSpacing } = useMenuContext();
133
+ const handleClick = (e) => {
134
+ ctxOnClick(itemKey);
135
+ onClick == null ? void 0 : onClick(e);
136
+ };
137
+ const _selected = selected === itemKey;
138
+ return (
139
+ // @ts-expect-error
140
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
141
+ Base,
142
+ {
143
+ level,
144
+ ...rest,
145
+ onClick: handleClick,
146
+ variant: "text",
147
+ className: CSS(CSS.B("menu-item"), CSS.selected(_selected), className),
148
+ size: size ?? iconSpacing
149
+ }
150
+ )
151
+ );
152
+ }
153
+ );
154
+ const CoreItem = menuItemFactory(Button, { noWrap: true });
155
+ const ItemIcon = menuItemFactory(Icon);
156
+ const ItemLink = menuItemFactory(Link, { noWrap: true });
157
+ const Item = CoreItem;
158
+ Item.Icon = ItemIcon;
159
+ Item.Link = ItemLink;
160
+ export {
161
+ CONTEXT_SELECTED as C,
162
+ Item as I,
163
+ Menu as M,
164
+ CONTEXT_TARGET as a,
165
+ ContextMenu as b,
166
+ CoreItem as c,
167
+ MenuContext as d,
168
+ useMenuContext as e,
169
+ useContextMenu as u
170
+ };
171
+ //# sourceMappingURL=Item-EDdYN2NK.js.map