@navios/commander-tui 1.0.0 → 1.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 (35) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/lib/index.cjs +19 -10
  4. package/lib/index.cjs.map +1 -1
  5. package/lib/index.d.cts +37 -28
  6. package/lib/index.d.cts.map +1 -1
  7. package/lib/index.d.mts +48 -39
  8. package/lib/index.d.mts.map +1 -1
  9. package/lib/index.mjs +19 -10
  10. package/lib/index.mjs.map +1 -1
  11. package/lib/{screen_manager_bridge-CkV7637i.cjs → screen_manager_bridge-Cp2p1Ix3.cjs} +1 -1
  12. package/lib/{screen_manager_bridge-Dfg4QUrl.mjs → screen_manager_bridge-D2BBwKcF.mjs} +13 -1
  13. package/lib/screen_manager_bridge-D2BBwKcF.mjs.map +1 -0
  14. package/lib/{screen_manager_bridge-DN2J6_k1.mjs → screen_manager_bridge-DT-l0rxa.mjs} +1 -1
  15. package/lib/{screen_manager_bridge-BpDgVu3e.cjs → screen_manager_bridge-hMUrLiBP.cjs} +13 -1
  16. package/lib/screen_manager_bridge-hMUrLiBP.cjs.map +1 -0
  17. package/package.json +1 -1
  18. package/src/__tests__/components/__snapshots__/filter_bar.spec.tsx.snap +48 -0
  19. package/src/__tests__/components/__snapshots__/loading_message.spec.tsx.snap +32 -0
  20. package/src/__tests__/components/__snapshots__/log_message.spec.tsx.snap +76 -0
  21. package/src/__tests__/components/__snapshots__/progress_message.spec.tsx.snap +40 -0
  22. package/src/__tests__/components/__snapshots__/prompt_renderer.spec.tsx.snap +68 -0
  23. package/src/__tests__/components/__snapshots__/sidebar.spec.tsx.snap +240 -0
  24. package/src/__tests__/components/sidebar.spec.tsx +17 -0
  25. package/src/overrides/console.logger.override.ts +8 -1
  26. package/src/schemas/screen-options.ts +2 -0
  27. package/src/services/screen.ts +3 -0
  28. package/src/services/screen_manager.tsx +15 -11
  29. package/src/themes/dark.ts +4 -0
  30. package/src/themes/high-contrast.ts +4 -0
  31. package/src/themes/light.ts +4 -0
  32. package/src/types/screen.types.ts +1 -1
  33. package/src/types/theme.types.ts +1 -0
  34. package/lib/screen_manager_bridge-BpDgVu3e.cjs.map +0 -1
  35. package/lib/screen_manager_bridge-Dfg4QUrl.mjs.map +0 -1
package/lib/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as createDefaultFilterState, A as FILE_COLORS, B as VARIANT_COLORS, C as COMMON_FILETYPES, D as createTintedColor, E as createBorderColor, F as SEPARATOR_COLORS, G as createThemeFrom, H as LoggerProvider, I as SIDEBAR_COLORS, J as resolveTheme, K as getThemePreset, L as STATUS_INDICATORS, M as GROUP_COLORS, N as PROGRESS_COLORS, O as getLogLevelColors, P as HEADER_COLORS, Q as ALL_LOG_LEVELS, R as DEFAULT_LOG_LEVEL_COLORS, S as printMessagesToStdout, T as resolveFiletype, U as useLoggerContext, V as useTheme, W as createTheme, X as lightTheme, Y as highContrastTheme, Z as darkTheme, _ as PromptRenderer, a as formatKeyBinding, b as captureTrace, c as SidebarSeparator, d as GroupMessageRenderer, et as hasActiveFilter, f as GroupRenderer, g as LoadingMessage, h as ProgressMessage, i as KeyboardManager, j as TABLE_COLORS, k as PROMPT_COLORS, l as SidebarItem, m as TableMessage, n as createDefaultBindings, o as FilterEngine, p as MessageRenderer, q as mergeThemes, r as handlePrintableInput, s as Sidebar, t as ScreenManagerBridge, u as ScreenBridge, v as FileLog, w as getFileName, x as formatObject, y as LogMessage, z as ERROR_HIGHLIGHT_COLORS } from "./screen_manager_bridge-Dfg4QUrl.mjs";
1
+ import { $ as createDefaultFilterState, A as FILE_COLORS, B as VARIANT_COLORS, C as COMMON_FILETYPES, D as createTintedColor, E as createBorderColor, F as SEPARATOR_COLORS, G as createThemeFrom, H as LoggerProvider, I as SIDEBAR_COLORS, J as resolveTheme, K as getThemePreset, L as STATUS_INDICATORS, M as GROUP_COLORS, N as PROGRESS_COLORS, O as getLogLevelColors, P as HEADER_COLORS, Q as ALL_LOG_LEVELS, R as DEFAULT_LOG_LEVEL_COLORS, S as printMessagesToStdout, T as resolveFiletype, U as useLoggerContext, V as useTheme, W as createTheme, X as lightTheme, Y as highContrastTheme, Z as darkTheme, _ as PromptRenderer, a as formatKeyBinding, b as captureTrace, c as SidebarSeparator, d as GroupMessageRenderer, et as hasActiveFilter, f as GroupRenderer, g as LoadingMessage, h as ProgressMessage, i as KeyboardManager, j as TABLE_COLORS, k as PROMPT_COLORS, l as SidebarItem, m as TableMessage, n as createDefaultBindings, o as FilterEngine, p as MessageRenderer, q as mergeThemes, r as handlePrintableInput, s as Sidebar, t as ScreenManagerBridge, u as ScreenBridge, v as FileLog, w as getFileName, x as formatObject, y as LogMessage, z as ERROR_HIGHLIGHT_COLORS } from "./screen_manager_bridge-D2BBwKcF.mjs";
2
2
  import { jsx } from "@opentui/react/jsx-runtime";
3
3
  import { createCliRenderer } from "@opentui/core";
4
4
  import { createRoot } from "@opentui/react";
@@ -3752,7 +3752,8 @@ const ScreenOptionsSchema = object({
3752
3752
  name: string(),
3753
3753
  icon: string().optional(),
3754
3754
  badgeCount: number().optional(),
3755
- hidden: boolean().optional().default(false)
3755
+ hidden: boolean().optional().default(false),
3756
+ static: boolean().optional().default(false)
3756
3757
  });
3757
3758
 
3758
3759
  //#endregion
@@ -3802,6 +3803,7 @@ var ScreenInstance = class {
3802
3803
  this.icon = options.icon;
3803
3804
  this.badgeCount = options.badgeCount ?? 0;
3804
3805
  this.hidden = options.hidden ?? false;
3806
+ if (options.static) this.status = "static";
3805
3807
  }
3806
3808
  incrementVersion() {
3807
3809
  this.version++;
@@ -4620,11 +4622,12 @@ var ScreenManager = class {
4620
4622
  const visibleScreens = this.getScreens();
4621
4623
  if (this.selectedIndex >= visibleScreens.length) this.selectedIndex = Math.max(0, visibleScreens.length - 1);
4622
4624
  }
4623
- this.checkAutoClose();
4624
4625
  this.notifyChange();
4625
4626
  }
4626
4627
  /**
4627
- * Check if all screens are successful and start auto-close timer if enabled
4628
+ * Check if all screens are successful (or only static) and start auto-close timer if enabled.
4629
+ * Static screens are ignored in this calculation.
4630
+ * If there are only static screens, the timer will trigger after the delay with no new activity.
4628
4631
  */ checkAutoClose() {
4629
4632
  const autoClose = this.bindOptions.autoClose;
4630
4633
  if (!autoClose || !this.isBound) return;
@@ -4632,9 +4635,10 @@ var ScreenManager = class {
4632
4635
  clearTimeout(this.autoCloseTimer);
4633
4636
  this.autoCloseTimer = null;
4634
4637
  }
4635
- const screens = this.getScreens();
4636
- if (screens.length === 0) return;
4637
- if (!screens.every((s) => s.getStatus() === "success")) return;
4638
+ const nonStaticScreens = this.getScreens().filter((s) => s.getStatus() !== "static");
4639
+ if (nonStaticScreens.length > 0) {
4640
+ if (!nonStaticScreens.every((s) => s.getStatus() === "success")) return;
4641
+ }
4638
4642
  const delay = typeof autoClose === "number" ? autoClose : 5e3;
4639
4643
  this.autoCloseTimer = setTimeout(() => {
4640
4644
  this.unbind();
@@ -4708,11 +4712,12 @@ var ScreenManager = class {
4708
4712
  return () => this.changeListeners.delete(listener);
4709
4713
  }
4710
4714
  notifyChange() {
4715
+ this.checkAutoClose();
4711
4716
  this.changeListeners.forEach((listener) => listener());
4712
4717
  }
4713
4718
  async render() {
4714
4719
  if (!this.root) return;
4715
- const { ScreenManagerBridge: ScreenManagerBridge$1 } = await import("./screen_manager_bridge-DN2J6_k1.mjs");
4720
+ const { ScreenManagerBridge: ScreenManagerBridge$1 } = await import("./screen_manager_bridge-DT-l0rxa.mjs");
4716
4721
  this.root.render(/* @__PURE__ */ jsx(ScreenManagerBridge$1, {
4717
4722
  manager: this,
4718
4723
  theme: this.theme
@@ -6227,10 +6232,14 @@ function overrideConsoleLogger(hidden = false) {
6227
6232
  ({c: [_ConsoleLoggerOverride, _initClass$4]} = _apply_decs_2203_r(this, [], [_dec$4]));
6228
6233
  }
6229
6234
  logger = inject(ScreenLogger, { screen: {
6230
- name: "default",
6235
+ name: "internal",
6231
6236
  icon: "💻",
6232
- hidden
6237
+ hidden,
6238
+ static: true
6233
6239
  } });
6240
+ setup(options) {
6241
+ this.logger.setLogLevels(options.logLevels ?? ALL_LOG_LEVELS);
6242
+ }
6234
6243
  log(message) {
6235
6244
  this.logger.log(message);
6236
6245
  }