mogh_ui 0.1.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 (330) hide show
  1. package/dist/color.cjs +62 -0
  2. package/dist/color.cjs.map +1 -0
  3. package/dist/color.d.cts +5 -0
  4. package/dist/color.d.ts +5 -0
  5. package/dist/color.js +37 -0
  6. package/dist/color.js.map +1 -0
  7. package/dist/components/back-button.cjs +43 -0
  8. package/dist/components/back-button.cjs.map +1 -0
  9. package/dist/components/back-button.d.cts +9 -0
  10. package/dist/components/back-button.d.ts +9 -0
  11. package/dist/components/back-button.js +19 -0
  12. package/dist/components/back-button.js.map +1 -0
  13. package/dist/components/config/confirm.cjs +191 -0
  14. package/dist/components/config/confirm.cjs.map +1 -0
  15. package/dist/components/config/confirm.d.cts +20 -0
  16. package/dist/components/config/confirm.d.ts +20 -0
  17. package/dist/components/config/confirm.js +167 -0
  18. package/dist/components/config/confirm.js.map +1 -0
  19. package/dist/components/config/group.cjs +102 -0
  20. package/dist/components/config/group.cjs.map +1 -0
  21. package/dist/components/config/group.d.cts +11 -0
  22. package/dist/components/config/group.d.ts +11 -0
  23. package/dist/components/config/group.js +78 -0
  24. package/dist/components/config/group.js.map +1 -0
  25. package/dist/components/config/index.cjs +237 -0
  26. package/dist/components/config/index.cjs.map +1 -0
  27. package/dist/components/config/index.d.cts +62 -0
  28. package/dist/components/config/index.d.ts +62 -0
  29. package/dist/components/config/index.js +217 -0
  30. package/dist/components/config/index.js.map +1 -0
  31. package/dist/components/config/item.cjs +139 -0
  32. package/dist/components/config/item.cjs.map +1 -0
  33. package/dist/components/config/item.d.cts +45 -0
  34. package/dist/components/config/item.d.ts +45 -0
  35. package/dist/components/config/item.js +119 -0
  36. package/dist/components/config/item.js.map +1 -0
  37. package/dist/components/config/layout.cjs +44 -0
  38. package/dist/components/config/layout.cjs.map +1 -0
  39. package/dist/components/config/layout.d.cts +11 -0
  40. package/dist/components/config/layout.d.ts +11 -0
  41. package/dist/components/config/layout.js +20 -0
  42. package/dist/components/config/layout.js.map +1 -0
  43. package/dist/components/config/unsaved-changes.cjs +47 -0
  44. package/dist/components/config/unsaved-changes.cjs.map +1 -0
  45. package/dist/components/config/unsaved-changes.d.cts +7 -0
  46. package/dist/components/config/unsaved-changes.d.ts +7 -0
  47. package/dist/components/config/unsaved-changes.js +23 -0
  48. package/dist/components/config/unsaved-changes.js.map +1 -0
  49. package/dist/components/confirm-button.cjs +85 -0
  50. package/dist/components/confirm-button.cjs.map +1 -0
  51. package/dist/components/confirm-button.d.cts +23 -0
  52. package/dist/components/confirm-button.d.ts +23 -0
  53. package/dist/components/confirm-button.js +69 -0
  54. package/dist/components/confirm-button.js.map +1 -0
  55. package/dist/components/confirm-icon.cjs +70 -0
  56. package/dist/components/confirm-icon.cjs.map +1 -0
  57. package/dist/components/confirm-icon.d.cts +20 -0
  58. package/dist/components/confirm-icon.d.ts +20 -0
  59. package/dist/components/confirm-icon.js +54 -0
  60. package/dist/components/confirm-icon.js.map +1 -0
  61. package/dist/components/confirm-modal.cjs +146 -0
  62. package/dist/components/confirm-modal.cjs.map +1 -0
  63. package/dist/components/confirm-modal.d.cts +25 -0
  64. package/dist/components/confirm-modal.d.ts +25 -0
  65. package/dist/components/confirm-modal.js +130 -0
  66. package/dist/components/confirm-modal.js.map +1 -0
  67. package/dist/components/copy-button.cjs +68 -0
  68. package/dist/components/copy-button.cjs.map +1 -0
  69. package/dist/components/copy-button.d.cts +15 -0
  70. package/dist/components/copy-button.d.ts +15 -0
  71. package/dist/components/copy-button.js +46 -0
  72. package/dist/components/copy-button.js.map +1 -0
  73. package/dist/components/copy-text.cjs +63 -0
  74. package/dist/components/copy-text.cjs.map +1 -0
  75. package/dist/components/copy-text.d.cts +11 -0
  76. package/dist/components/copy-text.d.ts +11 -0
  77. package/dist/components/copy-text.js +39 -0
  78. package/dist/components/copy-text.js.map +1 -0
  79. package/dist/components/create-modal.cjs +100 -0
  80. package/dist/components/create-modal.cjs.map +1 -0
  81. package/dist/components/create-modal.d.cts +18 -0
  82. package/dist/components/create-modal.d.ts +18 -0
  83. package/dist/components/create-modal.js +82 -0
  84. package/dist/components/create-modal.js.map +1 -0
  85. package/dist/components/data-table.cjs +240 -0
  86. package/dist/components/data-table.cjs.map +1 -0
  87. package/dist/components/data-table.d.cts +36 -0
  88. package/dist/components/data-table.d.ts +36 -0
  89. package/dist/components/data-table.js +233 -0
  90. package/dist/components/data-table.js.map +1 -0
  91. package/dist/components/divided-children/index.cjs +53 -0
  92. package/dist/components/divided-children/index.cjs.map +1 -0
  93. package/dist/components/divided-children/index.d.cts +15 -0
  94. package/dist/components/divided-children/index.d.ts +15 -0
  95. package/dist/components/divided-children/index.js +19 -0
  96. package/dist/components/divided-children/index.js.map +1 -0
  97. package/dist/components/divided-children/index.module.scss +4 -0
  98. package/dist/components/enable-switch.cjs +67 -0
  99. package/dist/components/enable-switch.cjs.map +1 -0
  100. package/dist/components/enable-switch.d.cts +12 -0
  101. package/dist/components/enable-switch.d.ts +12 -0
  102. package/dist/components/enable-switch.js +43 -0
  103. package/dist/components/enable-switch.js.map +1 -0
  104. package/dist/components/entity-header.cjs +137 -0
  105. package/dist/components/entity-header.cjs.map +1 -0
  106. package/dist/components/entity-header.d.cts +20 -0
  107. package/dist/components/entity-header.d.ts +20 -0
  108. package/dist/components/entity-header.js +113 -0
  109. package/dist/components/entity-header.js.map +1 -0
  110. package/dist/components/entity-page.cjs +45 -0
  111. package/dist/components/entity-page.cjs.map +1 -0
  112. package/dist/components/entity-page.d.cts +11 -0
  113. package/dist/components/entity-page.d.ts +11 -0
  114. package/dist/components/entity-page.js +21 -0
  115. package/dist/components/entity-page.js.map +1 -0
  116. package/dist/components/fancy-card/index.cjs +52 -0
  117. package/dist/components/fancy-card/index.cjs.map +1 -0
  118. package/dist/components/fancy-card/index.d.cts +17 -0
  119. package/dist/components/fancy-card/index.d.ts +17 -0
  120. package/dist/components/fancy-card/index.js +18 -0
  121. package/dist/components/fancy-card/index.js.map +1 -0
  122. package/dist/components/fancy-card/index.module.scss +13 -0
  123. package/dist/components/hover-error.cjs +60 -0
  124. package/dist/components/hover-error.cjs.map +1 -0
  125. package/dist/components/hover-error.d.cts +9 -0
  126. package/dist/components/hover-error.d.ts +9 -0
  127. package/dist/components/hover-error.js +36 -0
  128. package/dist/components/hover-error.js.map +1 -0
  129. package/dist/components/info-card.cjs +44 -0
  130. package/dist/components/info-card.cjs.map +1 -0
  131. package/dist/components/info-card.d.cts +21 -0
  132. package/dist/components/info-card.d.ts +21 -0
  133. package/dist/components/info-card.js +25 -0
  134. package/dist/components/info-card.js.map +1 -0
  135. package/dist/components/input-list.cjs +68 -0
  136. package/dist/components/input-list.cjs.map +1 -0
  137. package/dist/components/input-list.d.cts +14 -0
  138. package/dist/components/input-list.d.ts +14 -0
  139. package/dist/components/input-list.js +44 -0
  140. package/dist/components/input-list.js.map +1 -0
  141. package/dist/components/labelled-switch.cjs +68 -0
  142. package/dist/components/labelled-switch.cjs.map +1 -0
  143. package/dist/components/labelled-switch.d.cts +14 -0
  144. package/dist/components/labelled-switch.d.ts +14 -0
  145. package/dist/components/labelled-switch.js +48 -0
  146. package/dist/components/labelled-switch.js.map +1 -0
  147. package/dist/components/labels-group.cjs +44 -0
  148. package/dist/components/labels-group.cjs.map +1 -0
  149. package/dist/components/labels-group.d.cts +10 -0
  150. package/dist/components/labels-group.d.ts +10 -0
  151. package/dist/components/labels-group.js +20 -0
  152. package/dist/components/labels-group.js.map +1 -0
  153. package/dist/components/loading-screen.cjs +37 -0
  154. package/dist/components/loading-screen.cjs.map +1 -0
  155. package/dist/components/loading-screen.d.cts +8 -0
  156. package/dist/components/loading-screen.d.ts +8 -0
  157. package/dist/components/loading-screen.js +13 -0
  158. package/dist/components/loading-screen.js.map +1 -0
  159. package/dist/components/mobile-friendly-tabs.cjs +141 -0
  160. package/dist/components/mobile-friendly-tabs.cjs.map +1 -0
  161. package/dist/components/mobile-friendly-tabs.d.cts +43 -0
  162. package/dist/components/mobile-friendly-tabs.d.ts +43 -0
  163. package/dist/components/mobile-friendly-tabs.js +120 -0
  164. package/dist/components/mobile-friendly-tabs.js.map +1 -0
  165. package/dist/components/monaco/index.cjs +244 -0
  166. package/dist/components/monaco/index.cjs.map +1 -0
  167. package/dist/components/monaco/index.d.cts +32 -0
  168. package/dist/components/monaco/index.d.ts +32 -0
  169. package/dist/components/monaco/index.js +208 -0
  170. package/dist/components/monaco/index.js.map +1 -0
  171. package/dist/components/monaco/index.scss +3 -0
  172. package/dist/components/monaco/init.cjs +73 -0
  173. package/dist/components/monaco/init.cjs.map +1 -0
  174. package/dist/components/monaco/init.d.cts +2 -0
  175. package/dist/components/monaco/init.d.ts +2 -0
  176. package/dist/components/monaco/init.js +49 -0
  177. package/dist/components/monaco/init.js.map +1 -0
  178. package/dist/components/monaco/syntax/fancy_toml.cjs +241 -0
  179. package/dist/components/monaco/syntax/fancy_toml.cjs.map +1 -0
  180. package/dist/components/monaco/syntax/fancy_toml.d.cts +2 -0
  181. package/dist/components/monaco/syntax/fancy_toml.d.ts +2 -0
  182. package/dist/components/monaco/syntax/fancy_toml.js +218 -0
  183. package/dist/components/monaco/syntax/fancy_toml.js.map +1 -0
  184. package/dist/components/monaco/syntax/key_value.cjs +107 -0
  185. package/dist/components/monaco/syntax/key_value.cjs.map +1 -0
  186. package/dist/components/monaco/syntax/key_value.d.cts +2 -0
  187. package/dist/components/monaco/syntax/key_value.d.ts +2 -0
  188. package/dist/components/monaco/syntax/key_value.js +84 -0
  189. package/dist/components/monaco/syntax/key_value.js.map +1 -0
  190. package/dist/components/monaco/syntax/shell.cjs +246 -0
  191. package/dist/components/monaco/syntax/shell.cjs.map +1 -0
  192. package/dist/components/monaco/syntax/shell.d.cts +2 -0
  193. package/dist/components/monaco/syntax/shell.d.ts +2 -0
  194. package/dist/components/monaco/syntax/shell.js +223 -0
  195. package/dist/components/monaco/syntax/shell.js.map +1 -0
  196. package/dist/components/monaco/syntax/string_list.cjs +75 -0
  197. package/dist/components/monaco/syntax/string_list.cjs.map +1 -0
  198. package/dist/components/monaco/syntax/string_list.d.cts +2 -0
  199. package/dist/components/monaco/syntax/string_list.d.ts +2 -0
  200. package/dist/components/monaco/syntax/string_list.js +52 -0
  201. package/dist/components/monaco/syntax/string_list.js.map +1 -0
  202. package/dist/components/monaco/syntax/toml.cjs +157 -0
  203. package/dist/components/monaco/syntax/toml.cjs.map +1 -0
  204. package/dist/components/monaco/syntax/toml.d.cts +2 -0
  205. package/dist/components/monaco/syntax/toml.d.ts +2 -0
  206. package/dist/components/monaco/syntax/toml.js +134 -0
  207. package/dist/components/monaco/syntax/toml.js.map +1 -0
  208. package/dist/components/monaco/syntax/yaml.cjs +250 -0
  209. package/dist/components/monaco/syntax/yaml.cjs.map +1 -0
  210. package/dist/components/monaco/syntax/yaml.d.cts +2 -0
  211. package/dist/components/monaco/syntax/yaml.d.ts +2 -0
  212. package/dist/components/monaco/syntax/yaml.js +227 -0
  213. package/dist/components/monaco/syntax/yaml.js.map +1 -0
  214. package/dist/components/monaco/theme.cjs +721 -0
  215. package/dist/components/monaco/theme.cjs.map +1 -0
  216. package/dist/components/monaco/theme.d.cts +2 -0
  217. package/dist/components/monaco/theme.d.ts +2 -0
  218. package/dist/components/monaco/theme.js +698 -0
  219. package/dist/components/monaco/theme.js.map +1 -0
  220. package/dist/components/page-guard.cjs +44 -0
  221. package/dist/components/page-guard.cjs.map +1 -0
  222. package/dist/components/page-guard.d.cts +13 -0
  223. package/dist/components/page-guard.d.ts +13 -0
  224. package/dist/components/page-guard.js +20 -0
  225. package/dist/components/page-guard.js.map +1 -0
  226. package/dist/components/page.cjs +81 -0
  227. package/dist/components/page.cjs.map +1 -0
  228. package/dist/components/page.d.cts +31 -0
  229. package/dist/components/page.d.ts +31 -0
  230. package/dist/components/page.js +63 -0
  231. package/dist/components/page.js.map +1 -0
  232. package/dist/components/search-input.cjs +51 -0
  233. package/dist/components/search-input.cjs.map +1 -0
  234. package/dist/components/search-input.d.cts +9 -0
  235. package/dist/components/search-input.d.ts +9 -0
  236. package/dist/components/search-input.js +27 -0
  237. package/dist/components/search-input.js.map +1 -0
  238. package/dist/components/section.cjs +100 -0
  239. package/dist/components/section.cjs.map +1 -0
  240. package/dist/components/section.d.cts +33 -0
  241. package/dist/components/section.d.ts +33 -0
  242. package/dist/components/section.js +83 -0
  243. package/dist/components/section.js.map +1 -0
  244. package/dist/components/shared-text-update.cjs +83 -0
  245. package/dist/components/shared-text-update.cjs.map +1 -0
  246. package/dist/components/shared-text-update.d.cts +20 -0
  247. package/dist/components/shared-text-update.d.ts +20 -0
  248. package/dist/components/shared-text-update.js +65 -0
  249. package/dist/components/shared-text-update.js.map +1 -0
  250. package/dist/components/show-hide-button.cjs +48 -0
  251. package/dist/components/show-hide-button.cjs.map +1 -0
  252. package/dist/components/show-hide-button.d.cts +8 -0
  253. package/dist/components/show-hide-button.d.ts +8 -0
  254. package/dist/components/show-hide-button.js +24 -0
  255. package/dist/components/show-hide-button.js.map +1 -0
  256. package/dist/components/stat-bar.cjs +68 -0
  257. package/dist/components/stat-bar.cjs.map +1 -0
  258. package/dist/components/stat-bar.d.cts +15 -0
  259. package/dist/components/stat-bar.d.ts +15 -0
  260. package/dist/components/stat-bar.js +44 -0
  261. package/dist/components/stat-bar.js.map +1 -0
  262. package/dist/components/stat-cell.cjs +72 -0
  263. package/dist/components/stat-cell.cjs.map +1 -0
  264. package/dist/components/stat-cell.d.cts +17 -0
  265. package/dist/components/stat-cell.d.ts +17 -0
  266. package/dist/components/stat-cell.js +54 -0
  267. package/dist/components/stat-cell.js.map +1 -0
  268. package/dist/components/status-badge.cjs +63 -0
  269. package/dist/components/status-badge.cjs.map +1 -0
  270. package/dist/components/status-badge.d.cts +20 -0
  271. package/dist/components/status-badge.d.ts +20 -0
  272. package/dist/components/status-badge.js +39 -0
  273. package/dist/components/status-badge.js.map +1 -0
  274. package/dist/components/tabbed-page.cjs +64 -0
  275. package/dist/components/tabbed-page.cjs.map +1 -0
  276. package/dist/components/tabbed-page.d.cts +18 -0
  277. package/dist/components/tabbed-page.d.ts +18 -0
  278. package/dist/components/tabbed-page.js +40 -0
  279. package/dist/components/tabbed-page.js.map +1 -0
  280. package/dist/components/table-skeleton.cjs +36 -0
  281. package/dist/components/table-skeleton.cjs.map +1 -0
  282. package/dist/components/table-skeleton.d.cts +8 -0
  283. package/dist/components/table-skeleton.d.ts +8 -0
  284. package/dist/components/table-skeleton.js +12 -0
  285. package/dist/components/table-skeleton.js.map +1 -0
  286. package/dist/components/text-update-modal.cjs +102 -0
  287. package/dist/components/text-update-modal.cjs.map +1 -0
  288. package/dist/components/text-update-modal.d.cts +19 -0
  289. package/dist/components/text-update-modal.d.ts +19 -0
  290. package/dist/components/text-update-modal.js +85 -0
  291. package/dist/components/text-update-modal.js.map +1 -0
  292. package/dist/components/theme-toggle.cjs +73 -0
  293. package/dist/components/theme-toggle.cjs.map +1 -0
  294. package/dist/components/theme-toggle.d.cts +5 -0
  295. package/dist/components/theme-toggle.d.ts +5 -0
  296. package/dist/components/theme-toggle.js +54 -0
  297. package/dist/components/theme-toggle.js.map +1 -0
  298. package/dist/formatting.cjs +124 -0
  299. package/dist/formatting.cjs.map +1 -0
  300. package/dist/formatting.d.cts +14 -0
  301. package/dist/formatting.d.ts +14 -0
  302. package/dist/formatting.js +89 -0
  303. package/dist/formatting.js.map +1 -0
  304. package/dist/hooks.cjs +117 -0
  305. package/dist/hooks.cjs.map +1 -0
  306. package/dist/hooks.d.cts +30 -0
  307. package/dist/hooks.d.ts +30 -0
  308. package/dist/hooks.js +88 -0
  309. package/dist/hooks.js.map +1 -0
  310. package/dist/index.cjs +99 -0
  311. package/dist/index.cjs.map +1 -0
  312. package/dist/index.d.cts +47 -0
  313. package/dist/index.d.ts +47 -0
  314. package/dist/index.js +40 -0
  315. package/dist/index.js.map +1 -0
  316. package/dist/index.scss +81 -0
  317. package/dist/theme.cjs +332 -0
  318. package/dist/theme.cjs.map +1 -0
  319. package/dist/theme.d.cts +15 -0
  320. package/dist/theme.d.ts +15 -0
  321. package/dist/theme.js +330 -0
  322. package/dist/theme.js.map +1 -0
  323. package/dist/theme.scss +76 -0
  324. package/dist/utils.cjs +48 -0
  325. package/dist/utils.cjs.map +1 -0
  326. package/dist/utils.d.cts +15 -0
  327. package/dist/utils.d.ts +15 -0
  328. package/dist/utils.js +24 -0
  329. package/dist/utils.js.map +1 -0
  330. package/package.json +61 -0
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var text_update_modal_exports = {};
20
+ __export(text_update_modal_exports, {
21
+ TextUpdateModal: () => TextUpdateModal
22
+ });
23
+ module.exports = __toCommonJS(text_update_modal_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_core = require("@mantine/core");
26
+ var import_hooks = require("@mantine/hooks");
27
+ var import_lucide_react = require("lucide-react");
28
+ var import_react = require("react");
29
+ var import_monaco = require("./monaco");
30
+ function defaultTarget(open, value) {
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Button, { variant: "outline", onClick: open, children: value });
32
+ }
33
+ function TextUpdateModal({
34
+ title,
35
+ titleRight,
36
+ value: _value = "",
37
+ onUpdate,
38
+ placeholder,
39
+ disabled,
40
+ target,
41
+ useMonaco,
42
+ monacoLanguage,
43
+ ...modalProps
44
+ }) {
45
+ const [opened, { open, close }] = (0, import_hooks.useDisclosure)();
46
+ const [value, setValue] = (0, import_react.useState)(_value);
47
+ (0, import_react.useEffect)(() => setValue(_value), [_value]);
48
+ const onClick = () => {
49
+ onUpdate(value);
50
+ close();
51
+ };
52
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
53
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
+ import_core.Modal,
55
+ {
56
+ opened,
57
+ onClose: close,
58
+ size: "xl",
59
+ title: titleRight ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Group, { children: [
60
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Text, { fz: "h2", children: title }),
61
+ titleRight
62
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Text, { fz: "h2", children: title }),
63
+ ...modalProps,
64
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Stack, { children: [
65
+ useMonaco ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
66
+ import_monaco.MonacoEditor,
67
+ {
68
+ value,
69
+ onValueChange: setValue,
70
+ readOnly: disabled,
71
+ language: monacoLanguage
72
+ }
73
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
74
+ import_core.Textarea,
75
+ {
76
+ value,
77
+ onChange: (e) => setValue(e.target.value),
78
+ placeholder,
79
+ disabled,
80
+ resize: "vertical",
81
+ styles: { input: { minHeight: 200 } }
82
+ }
83
+ ),
84
+ !disabled && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Group, { justify: "end", w: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
85
+ import_core.Button,
86
+ {
87
+ leftSection: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.CheckCircle, { size: "1rem" }),
88
+ onClick,
89
+ children: "Update"
90
+ }
91
+ ) })
92
+ ] })
93
+ }
94
+ ),
95
+ target ? target(open) : defaultTarget(open, value)
96
+ ] });
97
+ }
98
+ // Annotate the CommonJS export names for ESM import in node:
99
+ 0 && (module.exports = {
100
+ TextUpdateModal
101
+ });
102
+ //# sourceMappingURL=text-update-modal.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/text-update-modal.tsx"],"sourcesContent":["import {\n Button,\n Group,\n Modal,\n ModalProps,\n Stack,\n Text,\n Textarea,\n} from \"@mantine/core\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { CheckCircle } from \"lucide-react\";\nimport { ReactNode, useEffect, useState } from \"react\";\nimport { MonacoEditor, MonacoLanguage } from \"./monaco\";\n\nexport interface TextUpdateModalProps extends Omit<\n Omit<ModalProps, \"opened\">,\n \"onClose\"\n> {\n title: string;\n titleRight?: ReactNode;\n value: string | undefined;\n onUpdate: (value: string) => void;\n placeholder?: string;\n disabled?: boolean;\n target?: (open: () => void) => ReactNode;\n /* If passed, use monaco editor instead */\n useMonaco?: boolean;\n monacoLanguage?: MonacoLanguage;\n}\n\nfunction defaultTarget(open: () => void, value: string) {\n return (\n <Button variant=\"outline\" onClick={open}>\n {value}\n </Button>\n );\n}\n\nexport function TextUpdateModal({\n title,\n titleRight,\n value: _value = \"\",\n onUpdate,\n placeholder,\n disabled,\n target,\n useMonaco,\n monacoLanguage,\n ...modalProps\n}: TextUpdateModalProps) {\n const [opened, { open, close }] = useDisclosure();\n const [value, setValue] = useState(_value);\n useEffect(() => setValue(_value), [_value]);\n const onClick = () => {\n onUpdate(value);\n close();\n };\n\n return (\n <>\n <Modal\n opened={opened}\n onClose={close}\n size=\"xl\"\n title={\n titleRight ? (\n <Group>\n <Text fz=\"h2\">{title}</Text>\n {titleRight}\n </Group>\n ) : (\n <Text fz=\"h2\">{title}</Text>\n )\n }\n {...modalProps}\n >\n <Stack>\n {useMonaco ? (\n <MonacoEditor\n value={value}\n onValueChange={setValue}\n readOnly={disabled}\n language={monacoLanguage}\n />\n ) : (\n <Textarea\n value={value}\n onChange={(e) => setValue(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n resize=\"vertical\"\n styles={{ input: { minHeight: 200 } }}\n />\n )}\n\n {!disabled && (\n <Group justify=\"end\" w=\"100%\">\n <Button\n leftSection={<CheckCircle size=\"1rem\" />}\n onClick={onClick}\n >\n Update\n </Button>\n </Group>\n )}\n </Stack>\n </Modal>\n\n {target ? target(open) : defaultTarget(open, value)}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgCI;AAhCJ,kBAQO;AACP,mBAA8B;AAC9B,0BAA4B;AAC5B,mBAA+C;AAC/C,oBAA6C;AAkB7C,SAAS,cAAc,MAAkB,OAAe;AACtD,SACE,4CAAC,sBAAO,SAAQ,WAAU,SAAS,MAChC,iBACH;AAEJ;AAEO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA,OAAO,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,QAAI,4BAAc;AAChD,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,MAAM;AACzC,8BAAU,MAAM,SAAS,MAAM,GAAG,CAAC,MAAM,CAAC;AAC1C,QAAM,UAAU,MAAM;AACpB,aAAS,KAAK;AACd,UAAM;AAAA,EACR;AAEA,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,SAAS;AAAA,QACT,MAAK;AAAA,QACL,OACE,aACE,6CAAC,qBACC;AAAA,sDAAC,oBAAK,IAAG,MAAM,iBAAM;AAAA,UACpB;AAAA,WACH,IAEA,4CAAC,oBAAK,IAAG,MAAM,iBAAM;AAAA,QAGxB,GAAG;AAAA,QAEJ,uDAAC,qBACE;AAAA,sBACC;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA,eAAe;AAAA,cACf,UAAU;AAAA,cACV,UAAU;AAAA;AAAA,UACZ,IAEA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,cACxC;AAAA,cACA;AAAA,cACA,QAAO;AAAA,cACP,QAAQ,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;AAAA;AAAA,UACtC;AAAA,UAGD,CAAC,YACA,4CAAC,qBAAM,SAAQ,OAAM,GAAE,QACrB;AAAA,YAAC;AAAA;AAAA,cACC,aAAa,4CAAC,mCAAY,MAAK,QAAO;AAAA,cACtC;AAAA,cACD;AAAA;AAAA,UAED,GACF;AAAA,WAEJ;AAAA;AAAA,IACF;AAAA,IAEC,SAAS,OAAO,IAAI,IAAI,cAAc,MAAM,KAAK;AAAA,KACpD;AAEJ;","names":[]}
@@ -0,0 +1,19 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ModalProps } from '@mantine/core';
3
+ import { ReactNode } from 'react';
4
+ import { MonacoLanguage } from './monaco/index.cjs';
5
+
6
+ interface TextUpdateModalProps extends Omit<Omit<ModalProps, "opened">, "onClose"> {
7
+ title: string;
8
+ titleRight?: ReactNode;
9
+ value: string | undefined;
10
+ onUpdate: (value: string) => void;
11
+ placeholder?: string;
12
+ disabled?: boolean;
13
+ target?: (open: () => void) => ReactNode;
14
+ useMonaco?: boolean;
15
+ monacoLanguage?: MonacoLanguage;
16
+ }
17
+ declare function TextUpdateModal({ title, titleRight, value: _value, onUpdate, placeholder, disabled, target, useMonaco, monacoLanguage, ...modalProps }: TextUpdateModalProps): react_jsx_runtime.JSX.Element;
18
+
19
+ export { TextUpdateModal, type TextUpdateModalProps };
@@ -0,0 +1,19 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ModalProps } from '@mantine/core';
3
+ import { ReactNode } from 'react';
4
+ import { MonacoLanguage } from './monaco/index.js';
5
+
6
+ interface TextUpdateModalProps extends Omit<Omit<ModalProps, "opened">, "onClose"> {
7
+ title: string;
8
+ titleRight?: ReactNode;
9
+ value: string | undefined;
10
+ onUpdate: (value: string) => void;
11
+ placeholder?: string;
12
+ disabled?: boolean;
13
+ target?: (open: () => void) => ReactNode;
14
+ useMonaco?: boolean;
15
+ monacoLanguage?: MonacoLanguage;
16
+ }
17
+ declare function TextUpdateModal({ title, titleRight, value: _value, onUpdate, placeholder, disabled, target, useMonaco, monacoLanguage, ...modalProps }: TextUpdateModalProps): react_jsx_runtime.JSX.Element;
18
+
19
+ export { TextUpdateModal, type TextUpdateModalProps };
@@ -0,0 +1,85 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ Button,
4
+ Group,
5
+ Modal,
6
+ Stack,
7
+ Text,
8
+ Textarea
9
+ } from "@mantine/core";
10
+ import { useDisclosure } from "@mantine/hooks";
11
+ import { CheckCircle } from "lucide-react";
12
+ import { useEffect, useState } from "react";
13
+ import { MonacoEditor } from "./monaco";
14
+ function defaultTarget(open, value) {
15
+ return /* @__PURE__ */ jsx(Button, { variant: "outline", onClick: open, children: value });
16
+ }
17
+ function TextUpdateModal({
18
+ title,
19
+ titleRight,
20
+ value: _value = "",
21
+ onUpdate,
22
+ placeholder,
23
+ disabled,
24
+ target,
25
+ useMonaco,
26
+ monacoLanguage,
27
+ ...modalProps
28
+ }) {
29
+ const [opened, { open, close }] = useDisclosure();
30
+ const [value, setValue] = useState(_value);
31
+ useEffect(() => setValue(_value), [_value]);
32
+ const onClick = () => {
33
+ onUpdate(value);
34
+ close();
35
+ };
36
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
37
+ /* @__PURE__ */ jsx(
38
+ Modal,
39
+ {
40
+ opened,
41
+ onClose: close,
42
+ size: "xl",
43
+ title: titleRight ? /* @__PURE__ */ jsxs(Group, { children: [
44
+ /* @__PURE__ */ jsx(Text, { fz: "h2", children: title }),
45
+ titleRight
46
+ ] }) : /* @__PURE__ */ jsx(Text, { fz: "h2", children: title }),
47
+ ...modalProps,
48
+ children: /* @__PURE__ */ jsxs(Stack, { children: [
49
+ useMonaco ? /* @__PURE__ */ jsx(
50
+ MonacoEditor,
51
+ {
52
+ value,
53
+ onValueChange: setValue,
54
+ readOnly: disabled,
55
+ language: monacoLanguage
56
+ }
57
+ ) : /* @__PURE__ */ jsx(
58
+ Textarea,
59
+ {
60
+ value,
61
+ onChange: (e) => setValue(e.target.value),
62
+ placeholder,
63
+ disabled,
64
+ resize: "vertical",
65
+ styles: { input: { minHeight: 200 } }
66
+ }
67
+ ),
68
+ !disabled && /* @__PURE__ */ jsx(Group, { justify: "end", w: "100%", children: /* @__PURE__ */ jsx(
69
+ Button,
70
+ {
71
+ leftSection: /* @__PURE__ */ jsx(CheckCircle, { size: "1rem" }),
72
+ onClick,
73
+ children: "Update"
74
+ }
75
+ ) })
76
+ ] })
77
+ }
78
+ ),
79
+ target ? target(open) : defaultTarget(open, value)
80
+ ] });
81
+ }
82
+ export {
83
+ TextUpdateModal
84
+ };
85
+ //# sourceMappingURL=text-update-modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/text-update-modal.tsx"],"sourcesContent":["import {\n Button,\n Group,\n Modal,\n ModalProps,\n Stack,\n Text,\n Textarea,\n} from \"@mantine/core\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport { CheckCircle } from \"lucide-react\";\nimport { ReactNode, useEffect, useState } from \"react\";\nimport { MonacoEditor, MonacoLanguage } from \"./monaco\";\n\nexport interface TextUpdateModalProps extends Omit<\n Omit<ModalProps, \"opened\">,\n \"onClose\"\n> {\n title: string;\n titleRight?: ReactNode;\n value: string | undefined;\n onUpdate: (value: string) => void;\n placeholder?: string;\n disabled?: boolean;\n target?: (open: () => void) => ReactNode;\n /* If passed, use monaco editor instead */\n useMonaco?: boolean;\n monacoLanguage?: MonacoLanguage;\n}\n\nfunction defaultTarget(open: () => void, value: string) {\n return (\n <Button variant=\"outline\" onClick={open}>\n {value}\n </Button>\n );\n}\n\nexport function TextUpdateModal({\n title,\n titleRight,\n value: _value = \"\",\n onUpdate,\n placeholder,\n disabled,\n target,\n useMonaco,\n monacoLanguage,\n ...modalProps\n}: TextUpdateModalProps) {\n const [opened, { open, close }] = useDisclosure();\n const [value, setValue] = useState(_value);\n useEffect(() => setValue(_value), [_value]);\n const onClick = () => {\n onUpdate(value);\n close();\n };\n\n return (\n <>\n <Modal\n opened={opened}\n onClose={close}\n size=\"xl\"\n title={\n titleRight ? (\n <Group>\n <Text fz=\"h2\">{title}</Text>\n {titleRight}\n </Group>\n ) : (\n <Text fz=\"h2\">{title}</Text>\n )\n }\n {...modalProps}\n >\n <Stack>\n {useMonaco ? (\n <MonacoEditor\n value={value}\n onValueChange={setValue}\n readOnly={disabled}\n language={monacoLanguage}\n />\n ) : (\n <Textarea\n value={value}\n onChange={(e) => setValue(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n resize=\"vertical\"\n styles={{ input: { minHeight: 200 } }}\n />\n )}\n\n {!disabled && (\n <Group justify=\"end\" w=\"100%\">\n <Button\n leftSection={<CheckCircle size=\"1rem\" />}\n onClick={onClick}\n >\n Update\n </Button>\n </Group>\n )}\n </Stack>\n </Modal>\n\n {target ? target(open) : defaultTarget(open, value)}\n </>\n );\n}\n"],"mappings":"AAgCI,SA2BA,UA3BA,KAkCQ,YAlCR;AAhCJ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAoB,WAAW,gBAAgB;AAC/C,SAAS,oBAAoC;AAkB7C,SAAS,cAAc,MAAkB,OAAe;AACtD,SACE,oBAAC,UAAO,SAAQ,WAAU,SAAS,MAChC,iBACH;AAEJ;AAEO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA,OAAO,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,QAAM,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,IAAI,cAAc;AAChD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,MAAM;AACzC,YAAU,MAAM,SAAS,MAAM,GAAG,CAAC,MAAM,CAAC;AAC1C,QAAM,UAAU,MAAM;AACpB,aAAS,KAAK;AACd,UAAM;AAAA,EACR;AAEA,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,SAAS;AAAA,QACT,MAAK;AAAA,QACL,OACE,aACE,qBAAC,SACC;AAAA,8BAAC,QAAK,IAAG,MAAM,iBAAM;AAAA,UACpB;AAAA,WACH,IAEA,oBAAC,QAAK,IAAG,MAAM,iBAAM;AAAA,QAGxB,GAAG;AAAA,QAEJ,+BAAC,SACE;AAAA,sBACC;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA,eAAe;AAAA,cACf,UAAU;AAAA,cACV,UAAU;AAAA;AAAA,UACZ,IAEA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,cACxC;AAAA,cACA;AAAA,cACA,QAAO;AAAA,cACP,QAAQ,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;AAAA;AAAA,UACtC;AAAA,UAGD,CAAC,YACA,oBAAC,SAAM,SAAQ,OAAM,GAAE,QACrB;AAAA,YAAC;AAAA;AAAA,cACC,aAAa,oBAAC,eAAY,MAAK,QAAO;AAAA,cACtC;AAAA,cACD;AAAA;AAAA,UAED,GACF;AAAA,WAEJ;AAAA;AAAA,IACF;AAAA,IAEC,SAAS,OAAO,IAAI,IAAI,cAAc,MAAM,KAAK;AAAA,KACpD;AAEJ;","names":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var theme_toggle_exports = {};
20
+ __export(theme_toggle_exports, {
21
+ ThemeToggle: () => ThemeToggle
22
+ });
23
+ module.exports = __toCommonJS(theme_toggle_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_core = require("@mantine/core");
26
+ var import_lucide_react = require("lucide-react");
27
+ function ThemeToggle() {
28
+ const { colorScheme, setColorScheme } = (0, import_core.useMantineColorScheme)();
29
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Menu, { offset: 16, children: [
30
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Menu.Target, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.ActionIcon, { "aria-label": "ThemeToggle", size: "xl", variant: "subtle", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeIcon, {}) }) }),
31
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Menu.Dropdown, { w: 150, children: ["light", "dark", "auto"].map((theme) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
32
+ import_core.Menu.Item,
33
+ {
34
+ onClick: () => setColorScheme(theme),
35
+ style: { textTransform: "capitalize" },
36
+ rightSection: colorScheme === theme ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.CheckCircle, { size: "0.8rem" }) : void 0,
37
+ children: theme
38
+ },
39
+ theme
40
+ )) })
41
+ ] });
42
+ }
43
+ function ThemeIcon() {
44
+ const currentTheme = (0, import_core.useComputedColorScheme)();
45
+ const dark = currentTheme === "dark";
46
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
47
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
48
+ import_lucide_react.Sun,
49
+ {
50
+ color: "var(--mantine-color-text)",
51
+ size: "1.3rem",
52
+ style: {
53
+ display: dark ? "none" : void 0
54
+ }
55
+ }
56
+ ),
57
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
58
+ import_lucide_react.Moon,
59
+ {
60
+ color: "var(--mantine-color-text)",
61
+ size: "1.3rem",
62
+ style: {
63
+ display: dark ? void 0 : "none"
64
+ }
65
+ }
66
+ )
67
+ ] });
68
+ }
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ ThemeToggle
72
+ });
73
+ //# sourceMappingURL=theme-toggle.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/theme-toggle.tsx"],"sourcesContent":["import {\n ActionIcon,\n MantineColorScheme,\n Menu,\n useComputedColorScheme,\n useMantineColorScheme,\n} from \"@mantine/core\";\nimport { CheckCircle, Moon, Sun } from \"lucide-react\";\n\nexport function ThemeToggle() {\n const { colorScheme, setColorScheme } = useMantineColorScheme();\n return (\n <Menu offset={16}>\n <Menu.Target>\n <ActionIcon aria-label=\"ThemeToggle\" size=\"xl\" variant=\"subtle\">\n <ThemeIcon />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown w={150}>\n {[\"light\", \"dark\", \"auto\"].map((theme) => (\n <Menu.Item\n key={theme}\n onClick={() => setColorScheme(theme as MantineColorScheme)}\n style={{ textTransform: \"capitalize\" }}\n rightSection={\n colorScheme === theme ? <CheckCircle size=\"0.8rem\" /> : undefined\n }\n >\n {theme}\n </Menu.Item>\n ))}\n </Menu.Dropdown>\n </Menu>\n );\n}\n\nfunction ThemeIcon() {\n const currentTheme = useComputedColorScheme();\n const dark = currentTheme === \"dark\";\n return (\n <>\n <Sun\n color=\"var(--mantine-color-text)\"\n size=\"1.3rem\"\n style={{\n display: dark ? \"none\" : undefined,\n }}\n />\n <Moon\n color=\"var(--mantine-color-text)\"\n size=\"1.3rem\"\n style={{\n display: dark ? undefined : \"none\",\n }}\n />\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYI;AAZJ,kBAMO;AACP,0BAAuC;AAEhC,SAAS,cAAc;AAC5B,QAAM,EAAE,aAAa,eAAe,QAAI,mCAAsB;AAC9D,SACE,6CAAC,oBAAK,QAAQ,IACZ;AAAA,gDAAC,iBAAK,QAAL,EACC,sDAAC,0BAAW,cAAW,eAAc,MAAK,MAAK,SAAQ,UACrD,sDAAC,aAAU,GACb,GACF;AAAA,IACA,4CAAC,iBAAK,UAAL,EAAc,GAAG,KACf,WAAC,SAAS,QAAQ,MAAM,EAAE,IAAI,CAAC,UAC9B;AAAA,MAAC,iBAAK;AAAA,MAAL;AAAA,QAEC,SAAS,MAAM,eAAe,KAA2B;AAAA,QACzD,OAAO,EAAE,eAAe,aAAa;AAAA,QACrC,cACE,gBAAgB,QAAQ,4CAAC,mCAAY,MAAK,UAAS,IAAK;AAAA,QAGzD;AAAA;AAAA,MAPI;AAAA,IAQP,CACD,GACH;AAAA,KACF;AAEJ;AAEA,SAAS,YAAY;AACnB,QAAM,mBAAe,oCAAuB;AAC5C,QAAM,OAAO,iBAAiB;AAC9B,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,MAAK;AAAA,QACL,OAAO;AAAA,UACL,SAAS,OAAO,SAAS;AAAA,QAC3B;AAAA;AAAA,IACF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,MAAK;AAAA,QACL,OAAO;AAAA,UACL,SAAS,OAAO,SAAY;AAAA,QAC9B;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function ThemeToggle(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { ThemeToggle };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function ThemeToggle(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { ThemeToggle };
@@ -0,0 +1,54 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ ActionIcon,
4
+ Menu,
5
+ useComputedColorScheme,
6
+ useMantineColorScheme
7
+ } from "@mantine/core";
8
+ import { CheckCircle, Moon, Sun } from "lucide-react";
9
+ function ThemeToggle() {
10
+ const { colorScheme, setColorScheme } = useMantineColorScheme();
11
+ return /* @__PURE__ */ jsxs(Menu, { offset: 16, children: [
12
+ /* @__PURE__ */ jsx(Menu.Target, { children: /* @__PURE__ */ jsx(ActionIcon, { "aria-label": "ThemeToggle", size: "xl", variant: "subtle", children: /* @__PURE__ */ jsx(ThemeIcon, {}) }) }),
13
+ /* @__PURE__ */ jsx(Menu.Dropdown, { w: 150, children: ["light", "dark", "auto"].map((theme) => /* @__PURE__ */ jsx(
14
+ Menu.Item,
15
+ {
16
+ onClick: () => setColorScheme(theme),
17
+ style: { textTransform: "capitalize" },
18
+ rightSection: colorScheme === theme ? /* @__PURE__ */ jsx(CheckCircle, { size: "0.8rem" }) : void 0,
19
+ children: theme
20
+ },
21
+ theme
22
+ )) })
23
+ ] });
24
+ }
25
+ function ThemeIcon() {
26
+ const currentTheme = useComputedColorScheme();
27
+ const dark = currentTheme === "dark";
28
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
29
+ /* @__PURE__ */ jsx(
30
+ Sun,
31
+ {
32
+ color: "var(--mantine-color-text)",
33
+ size: "1.3rem",
34
+ style: {
35
+ display: dark ? "none" : void 0
36
+ }
37
+ }
38
+ ),
39
+ /* @__PURE__ */ jsx(
40
+ Moon,
41
+ {
42
+ color: "var(--mantine-color-text)",
43
+ size: "1.3rem",
44
+ style: {
45
+ display: dark ? void 0 : "none"
46
+ }
47
+ }
48
+ )
49
+ ] });
50
+ }
51
+ export {
52
+ ThemeToggle
53
+ };
54
+ //# sourceMappingURL=theme-toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/theme-toggle.tsx"],"sourcesContent":["import {\n ActionIcon,\n MantineColorScheme,\n Menu,\n useComputedColorScheme,\n useMantineColorScheme,\n} from \"@mantine/core\";\nimport { CheckCircle, Moon, Sun } from \"lucide-react\";\n\nexport function ThemeToggle() {\n const { colorScheme, setColorScheme } = useMantineColorScheme();\n return (\n <Menu offset={16}>\n <Menu.Target>\n <ActionIcon aria-label=\"ThemeToggle\" size=\"xl\" variant=\"subtle\">\n <ThemeIcon />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown w={150}>\n {[\"light\", \"dark\", \"auto\"].map((theme) => (\n <Menu.Item\n key={theme}\n onClick={() => setColorScheme(theme as MantineColorScheme)}\n style={{ textTransform: \"capitalize\" }}\n rightSection={\n colorScheme === theme ? <CheckCircle size=\"0.8rem\" /> : undefined\n }\n >\n {theme}\n </Menu.Item>\n ))}\n </Menu.Dropdown>\n </Menu>\n );\n}\n\nfunction ThemeIcon() {\n const currentTheme = useComputedColorScheme();\n const dark = currentTheme === \"dark\";\n return (\n <>\n <Sun\n color=\"var(--mantine-color-text)\"\n size=\"1.3rem\"\n style={{\n display: dark ? \"none\" : undefined,\n }}\n />\n <Moon\n color=\"var(--mantine-color-text)\"\n size=\"1.3rem\"\n style={{\n display: dark ? undefined : \"none\",\n }}\n />\n </>\n );\n}\n"],"mappings":"AAYI,SA4BA,UAzBM,KAHN;AAZJ;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,aAAa,MAAM,WAAW;AAEhC,SAAS,cAAc;AAC5B,QAAM,EAAE,aAAa,eAAe,IAAI,sBAAsB;AAC9D,SACE,qBAAC,QAAK,QAAQ,IACZ;AAAA,wBAAC,KAAK,QAAL,EACC,8BAAC,cAAW,cAAW,eAAc,MAAK,MAAK,SAAQ,UACrD,8BAAC,aAAU,GACb,GACF;AAAA,IACA,oBAAC,KAAK,UAAL,EAAc,GAAG,KACf,WAAC,SAAS,QAAQ,MAAM,EAAE,IAAI,CAAC,UAC9B;AAAA,MAAC,KAAK;AAAA,MAAL;AAAA,QAEC,SAAS,MAAM,eAAe,KAA2B;AAAA,QACzD,OAAO,EAAE,eAAe,aAAa;AAAA,QACrC,cACE,gBAAgB,QAAQ,oBAAC,eAAY,MAAK,UAAS,IAAK;AAAA,QAGzD;AAAA;AAAA,MAPI;AAAA,IAQP,CACD,GACH;AAAA,KACF;AAEJ;AAEA,SAAS,YAAY;AACnB,QAAM,eAAe,uBAAuB;AAC5C,QAAM,OAAO,iBAAiB;AAC9B,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,MAAK;AAAA,QACL,OAAO;AAAA,UACL,SAAS,OAAO,SAAS;AAAA,QAC3B;AAAA;AAAA,IACF;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,MAAK;AAAA,QACL,OAAO;AAAA,UACL,SAAS,OAAO,SAAY;AAAA,QAC9B;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var formatting_exports = {};
20
+ __export(formatting_exports, {
21
+ BYTES_PER_GB: () => BYTES_PER_GB,
22
+ BYTES_PER_KB: () => BYTES_PER_KB,
23
+ BYTES_PER_MB: () => BYTES_PER_MB,
24
+ fmtDate: () => fmtDate,
25
+ fmtDateWithMinutes: () => fmtDateWithMinutes,
26
+ fmtDuration: () => fmtDuration,
27
+ fmtMonth: () => fmtMonth,
28
+ fmtRateBytes: () => fmtRateBytes,
29
+ fmtSizeBytes: () => fmtSizeBytes,
30
+ fmtSnakeCaseToUpperSpaceCase: () => fmtSnakeCaseToUpperSpaceCase,
31
+ fmtUpperCamelcase: () => fmtUpperCamelcase,
32
+ fmtUtcDate: () => fmtUtcDate
33
+ });
34
+ module.exports = __toCommonJS(formatting_exports);
35
+ function fmtDate(d) {
36
+ const hours = d.getHours();
37
+ const minutes = d.getMinutes();
38
+ return `${fmtMonth(d.getMonth())} ${d.getDate()} ${hours > 9 ? hours : "0" + hours}:${minutes > 9 ? minutes : "0" + minutes}`;
39
+ }
40
+ function fmtUtcDate(d) {
41
+ const hours = d.getUTCHours();
42
+ const minutes = d.getUTCMinutes();
43
+ return `${fmtMonth(d.getUTCMonth())} ${d.getUTCDate()} ${hours > 9 ? hours : "0" + hours}:${minutes > 9 ? minutes : "0" + minutes}`;
44
+ }
45
+ function fmtMonth(month) {
46
+ switch (month) {
47
+ case 0:
48
+ return "Jan";
49
+ case 1:
50
+ return "Feb";
51
+ case 2:
52
+ return "Mar";
53
+ case 3:
54
+ return "Apr";
55
+ case 4:
56
+ return "May";
57
+ case 5:
58
+ return "Jun";
59
+ case 6:
60
+ return "Jul";
61
+ case 7:
62
+ return "Aug";
63
+ case 8:
64
+ return "Sep";
65
+ case 9:
66
+ return "Oct";
67
+ case 10:
68
+ return "Nov";
69
+ case 11:
70
+ return "Dec";
71
+ }
72
+ }
73
+ const fmtDateWithMinutes = (d) => {
74
+ return d.toLocaleString();
75
+ };
76
+ function fmtDuration(startTs, endTs) {
77
+ const start = new Date(startTs);
78
+ const end = new Date(endTs);
79
+ const durr = end.getTime() - start.getTime();
80
+ const seconds = durr / 1e3;
81
+ const minutes = Math.floor(seconds / 60);
82
+ const remaining_seconds = seconds % 60;
83
+ return `${minutes > 0 ? `${minutes} minute${minutes > 1 ? "s" : ""} ` : ""}${remaining_seconds.toFixed(minutes > 0 ? 0 : 1)} seconds`;
84
+ }
85
+ function fmtUpperCamelcase(input) {
86
+ return input.match(/[A-Z][a-z]+|[0-9]+/g)?.join(" ") ?? input;
87
+ }
88
+ function fmtSnakeCaseToUpperSpaceCase(snake) {
89
+ if (snake.length === 0) return "";
90
+ return snake.split("_").map((item) => item[0].toUpperCase() + item.slice(1)).join(" ");
91
+ }
92
+ const BYTES_PER_KB = 1024;
93
+ const BYTES_PER_MB = 1024 * BYTES_PER_KB;
94
+ const BYTES_PER_GB = 1024 * BYTES_PER_MB;
95
+ function fmtSizeBytes(bytes) {
96
+ if (bytes >= BYTES_PER_GB) {
97
+ return (bytes / BYTES_PER_GB).toFixed(1) + " GiB";
98
+ } else if (bytes >= BYTES_PER_MB) {
99
+ return (bytes / BYTES_PER_MB).toFixed(1) + " MiB";
100
+ } else if (bytes >= BYTES_PER_KB) {
101
+ return (bytes / BYTES_PER_KB).toFixed(1) + " KiB";
102
+ } else {
103
+ return bytes.toString() + " bytes";
104
+ }
105
+ }
106
+ function fmtRateBytes(bytes) {
107
+ return fmtSizeBytes(bytes) + "/s";
108
+ }
109
+ // Annotate the CommonJS export names for ESM import in node:
110
+ 0 && (module.exports = {
111
+ BYTES_PER_GB,
112
+ BYTES_PER_KB,
113
+ BYTES_PER_MB,
114
+ fmtDate,
115
+ fmtDateWithMinutes,
116
+ fmtDuration,
117
+ fmtMonth,
118
+ fmtRateBytes,
119
+ fmtSizeBytes,
120
+ fmtSnakeCaseToUpperSpaceCase,
121
+ fmtUpperCamelcase,
122
+ fmtUtcDate
123
+ });
124
+ //# sourceMappingURL=formatting.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/formatting.ts"],"sourcesContent":["export function fmtDate(d: Date) {\n const hours = d.getHours();\n const minutes = d.getMinutes();\n return `${fmtMonth(d.getMonth())} ${d.getDate()} ${\n hours > 9 ? hours : \"0\" + hours\n }:${minutes > 9 ? minutes : \"0\" + minutes}`;\n}\n\nexport function fmtUtcDate(d: Date) {\n const hours = d.getUTCHours();\n const minutes = d.getUTCMinutes();\n return `${fmtMonth(d.getUTCMonth())} ${d.getUTCDate()} ${\n hours > 9 ? hours : \"0\" + hours\n }:${minutes > 9 ? minutes : \"0\" + minutes}`;\n}\n\nexport function fmtMonth(month: number) {\n switch (month) {\n case 0:\n return \"Jan\";\n case 1:\n return \"Feb\";\n case 2:\n return \"Mar\";\n case 3:\n return \"Apr\";\n case 4:\n return \"May\";\n case 5:\n return \"Jun\";\n case 6:\n return \"Jul\";\n case 7:\n return \"Aug\";\n case 8:\n return \"Sep\";\n case 9:\n return \"Oct\";\n case 10:\n return \"Nov\";\n case 11:\n return \"Dec\";\n }\n}\n\nexport const fmtDateWithMinutes = (d: Date) => {\n // return `${d.toLocaleDateString()} ${d.toLocaleTimeString()}`;\n return d.toLocaleString();\n};\n\nexport function fmtDuration(startTs: number, endTs: number) {\n const start = new Date(startTs);\n const end = new Date(endTs);\n const durr = end.getTime() - start.getTime();\n const seconds = durr / 1000;\n const minutes = Math.floor(seconds / 60);\n const remaining_seconds = seconds % 60;\n return `${\n minutes > 0 ? `${minutes} minute${minutes > 1 ? \"s\" : \"\"} ` : \"\"\n }${remaining_seconds.toFixed(minutes > 0 ? 0 : 1)} seconds`;\n}\n\nexport function fmtUpperCamelcase(input: string) {\n return input.match(/[A-Z][a-z]+|[0-9]+/g)?.join(\" \") ?? input;\n}\n\n/// list_all_items => List All Items\nexport function fmtSnakeCaseToUpperSpaceCase(snake: string) {\n if (snake.length === 0) return \"\";\n return snake\n .split(\"_\")\n .map((item) => item[0].toUpperCase() + item.slice(1))\n .join(\" \");\n}\n\nexport const BYTES_PER_KB = 1024;\nexport const BYTES_PER_MB = 1024 * BYTES_PER_KB;\nexport const BYTES_PER_GB = 1024 * BYTES_PER_MB;\n\nexport function fmtSizeBytes(bytes: number) {\n if (bytes >= BYTES_PER_GB) {\n return (bytes / BYTES_PER_GB).toFixed(1) + \" GiB\";\n } else if (bytes >= BYTES_PER_MB) {\n return (bytes / BYTES_PER_MB).toFixed(1) + \" MiB\";\n } else if (bytes >= BYTES_PER_KB) {\n return (bytes / BYTES_PER_KB).toFixed(1) + \" KiB\";\n } else {\n return bytes.toString() + \" bytes\";\n }\n}\n\nexport function fmtRateBytes(bytes: number) {\n return fmtSizeBytes(bytes) + \"/s\";\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,QAAQ,GAAS;AAC/B,QAAM,QAAQ,EAAE,SAAS;AACzB,QAAM,UAAU,EAAE,WAAW;AAC7B,SAAO,GAAG,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAC7C,QAAQ,IAAI,QAAQ,MAAM,KAC5B,IAAI,UAAU,IAAI,UAAU,MAAM,OAAO;AAC3C;AAEO,SAAS,WAAW,GAAS;AAClC,QAAM,QAAQ,EAAE,YAAY;AAC5B,QAAM,UAAU,EAAE,cAAc;AAChC,SAAO,GAAG,SAAS,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IACnD,QAAQ,IAAI,QAAQ,MAAM,KAC5B,IAAI,UAAU,IAAI,UAAU,MAAM,OAAO;AAC3C;AAEO,SAAS,SAAS,OAAe;AACtC,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,EACX;AACF;AAEO,MAAM,qBAAqB,CAAC,MAAY;AAE7C,SAAO,EAAE,eAAe;AAC1B;AAEO,SAAS,YAAY,SAAiB,OAAe;AAC1D,QAAM,QAAQ,IAAI,KAAK,OAAO;AAC9B,QAAM,MAAM,IAAI,KAAK,KAAK;AAC1B,QAAM,OAAO,IAAI,QAAQ,IAAI,MAAM,QAAQ;AAC3C,QAAM,UAAU,OAAO;AACvB,QAAM,UAAU,KAAK,MAAM,UAAU,EAAE;AACvC,QAAM,oBAAoB,UAAU;AACpC,SAAO,GACL,UAAU,IAAI,GAAG,OAAO,UAAU,UAAU,IAAI,MAAM,EAAE,MAAM,EAChE,GAAG,kBAAkB,QAAQ,UAAU,IAAI,IAAI,CAAC,CAAC;AACnD;AAEO,SAAS,kBAAkB,OAAe;AAC/C,SAAO,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,KAAK;AAC1D;AAGO,SAAS,6BAA6B,OAAe;AAC1D,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MACJ,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,EACnD,KAAK,GAAG;AACb;AAEO,MAAM,eAAe;AACrB,MAAM,eAAe,OAAO;AAC5B,MAAM,eAAe,OAAO;AAE5B,SAAS,aAAa,OAAe;AAC1C,MAAI,SAAS,cAAc;AACzB,YAAQ,QAAQ,cAAc,QAAQ,CAAC,IAAI;AAAA,EAC7C,WAAW,SAAS,cAAc;AAChC,YAAQ,QAAQ,cAAc,QAAQ,CAAC,IAAI;AAAA,EAC7C,WAAW,SAAS,cAAc;AAChC,YAAQ,QAAQ,cAAc,QAAQ,CAAC,IAAI;AAAA,EAC7C,OAAO;AACL,WAAO,MAAM,SAAS,IAAI;AAAA,EAC5B;AACF;AAEO,SAAS,aAAa,OAAe;AAC1C,SAAO,aAAa,KAAK,IAAI;AAC/B;","names":[]}
@@ -0,0 +1,14 @@
1
+ declare function fmtDate(d: Date): string;
2
+ declare function fmtUtcDate(d: Date): string;
3
+ declare function fmtMonth(month: number): "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun" | "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec" | undefined;
4
+ declare const fmtDateWithMinutes: (d: Date) => string;
5
+ declare function fmtDuration(startTs: number, endTs: number): string;
6
+ declare function fmtUpperCamelcase(input: string): string;
7
+ declare function fmtSnakeCaseToUpperSpaceCase(snake: string): string;
8
+ declare const BYTES_PER_KB = 1024;
9
+ declare const BYTES_PER_MB: number;
10
+ declare const BYTES_PER_GB: number;
11
+ declare function fmtSizeBytes(bytes: number): string;
12
+ declare function fmtRateBytes(bytes: number): string;
13
+
14
+ export { BYTES_PER_GB, BYTES_PER_KB, BYTES_PER_MB, fmtDate, fmtDateWithMinutes, fmtDuration, fmtMonth, fmtRateBytes, fmtSizeBytes, fmtSnakeCaseToUpperSpaceCase, fmtUpperCamelcase, fmtUtcDate };
@@ -0,0 +1,14 @@
1
+ declare function fmtDate(d: Date): string;
2
+ declare function fmtUtcDate(d: Date): string;
3
+ declare function fmtMonth(month: number): "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun" | "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec" | undefined;
4
+ declare const fmtDateWithMinutes: (d: Date) => string;
5
+ declare function fmtDuration(startTs: number, endTs: number): string;
6
+ declare function fmtUpperCamelcase(input: string): string;
7
+ declare function fmtSnakeCaseToUpperSpaceCase(snake: string): string;
8
+ declare const BYTES_PER_KB = 1024;
9
+ declare const BYTES_PER_MB: number;
10
+ declare const BYTES_PER_GB: number;
11
+ declare function fmtSizeBytes(bytes: number): string;
12
+ declare function fmtRateBytes(bytes: number): string;
13
+
14
+ export { BYTES_PER_GB, BYTES_PER_KB, BYTES_PER_MB, fmtDate, fmtDateWithMinutes, fmtDuration, fmtMonth, fmtRateBytes, fmtSizeBytes, fmtSnakeCaseToUpperSpaceCase, fmtUpperCamelcase, fmtUtcDate };
@@ -0,0 +1,89 @@
1
+ function fmtDate(d) {
2
+ const hours = d.getHours();
3
+ const minutes = d.getMinutes();
4
+ return `${fmtMonth(d.getMonth())} ${d.getDate()} ${hours > 9 ? hours : "0" + hours}:${minutes > 9 ? minutes : "0" + minutes}`;
5
+ }
6
+ function fmtUtcDate(d) {
7
+ const hours = d.getUTCHours();
8
+ const minutes = d.getUTCMinutes();
9
+ return `${fmtMonth(d.getUTCMonth())} ${d.getUTCDate()} ${hours > 9 ? hours : "0" + hours}:${minutes > 9 ? minutes : "0" + minutes}`;
10
+ }
11
+ function fmtMonth(month) {
12
+ switch (month) {
13
+ case 0:
14
+ return "Jan";
15
+ case 1:
16
+ return "Feb";
17
+ case 2:
18
+ return "Mar";
19
+ case 3:
20
+ return "Apr";
21
+ case 4:
22
+ return "May";
23
+ case 5:
24
+ return "Jun";
25
+ case 6:
26
+ return "Jul";
27
+ case 7:
28
+ return "Aug";
29
+ case 8:
30
+ return "Sep";
31
+ case 9:
32
+ return "Oct";
33
+ case 10:
34
+ return "Nov";
35
+ case 11:
36
+ return "Dec";
37
+ }
38
+ }
39
+ const fmtDateWithMinutes = (d) => {
40
+ return d.toLocaleString();
41
+ };
42
+ function fmtDuration(startTs, endTs) {
43
+ const start = new Date(startTs);
44
+ const end = new Date(endTs);
45
+ const durr = end.getTime() - start.getTime();
46
+ const seconds = durr / 1e3;
47
+ const minutes = Math.floor(seconds / 60);
48
+ const remaining_seconds = seconds % 60;
49
+ return `${minutes > 0 ? `${minutes} minute${minutes > 1 ? "s" : ""} ` : ""}${remaining_seconds.toFixed(minutes > 0 ? 0 : 1)} seconds`;
50
+ }
51
+ function fmtUpperCamelcase(input) {
52
+ return input.match(/[A-Z][a-z]+|[0-9]+/g)?.join(" ") ?? input;
53
+ }
54
+ function fmtSnakeCaseToUpperSpaceCase(snake) {
55
+ if (snake.length === 0) return "";
56
+ return snake.split("_").map((item) => item[0].toUpperCase() + item.slice(1)).join(" ");
57
+ }
58
+ const BYTES_PER_KB = 1024;
59
+ const BYTES_PER_MB = 1024 * BYTES_PER_KB;
60
+ const BYTES_PER_GB = 1024 * BYTES_PER_MB;
61
+ function fmtSizeBytes(bytes) {
62
+ if (bytes >= BYTES_PER_GB) {
63
+ return (bytes / BYTES_PER_GB).toFixed(1) + " GiB";
64
+ } else if (bytes >= BYTES_PER_MB) {
65
+ return (bytes / BYTES_PER_MB).toFixed(1) + " MiB";
66
+ } else if (bytes >= BYTES_PER_KB) {
67
+ return (bytes / BYTES_PER_KB).toFixed(1) + " KiB";
68
+ } else {
69
+ return bytes.toString() + " bytes";
70
+ }
71
+ }
72
+ function fmtRateBytes(bytes) {
73
+ return fmtSizeBytes(bytes) + "/s";
74
+ }
75
+ export {
76
+ BYTES_PER_GB,
77
+ BYTES_PER_KB,
78
+ BYTES_PER_MB,
79
+ fmtDate,
80
+ fmtDateWithMinutes,
81
+ fmtDuration,
82
+ fmtMonth,
83
+ fmtRateBytes,
84
+ fmtSizeBytes,
85
+ fmtSnakeCaseToUpperSpaceCase,
86
+ fmtUpperCamelcase,
87
+ fmtUtcDate
88
+ };
89
+ //# sourceMappingURL=formatting.js.map