@navios/commander-tui 1.3.0 → 1.4.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.
- package/CHANGELOG.md +25 -0
- package/{src/__tests__/mocks/scm-mock.ts → dist/base/src/__tests__/mocks/scm-mock.d.ts} +3 -1
- package/dist/base/src/__tests__/mocks/scm-mock.d.ts.map +1 -0
- package/dist/base/src/__tests__/setup.d.ts +2 -0
- package/dist/base/src/__tests__/setup.d.ts.map +1 -0
- package/dist/base/src/__tests__/utils/factories.d.ts +67 -0
- package/dist/base/src/__tests__/utils/factories.d.ts.map +1 -0
- package/dist/base/src/__tests__/utils/render-utils.d.ts +21 -0
- package/dist/base/src/__tests__/utils/render-utils.d.ts.map +1 -0
- package/dist/base/src/__tests__/utils/test-container.d.ts +20 -0
- package/dist/base/src/__tests__/utils/test-container.d.ts.map +1 -0
- package/dist/base/src/adapters/interface.d.ts +9 -2
- package/dist/base/src/adapters/interface.d.ts.map +1 -1
- package/dist/base/src/overrides/missing-adapter.override.d.ts +10 -0
- package/dist/base/src/overrides/missing-adapter.override.d.ts.map +1 -1
- package/dist/base/src/schemas/logger-options.d.ts +1 -1
- package/dist/base/src/services/index.d.ts +1 -0
- package/dist/base/src/services/index.d.ts.map +1 -1
- package/dist/base/src/services/logger.d.ts.map +1 -1
- package/dist/base/src/services/readline_prompt.d.ts +27 -0
- package/dist/base/src/services/readline_prompt.d.ts.map +1 -0
- package/dist/base/src/services/screen.d.ts +14 -8
- package/dist/base/src/services/screen.d.ts.map +1 -1
- package/dist/base/src/services/screen_manager.d.ts +62 -12
- package/dist/base/src/services/screen_manager.d.ts.map +1 -1
- package/dist/base/src/types/events.types.d.ts +40 -0
- package/dist/base/src/types/events.types.d.ts.map +1 -0
- package/dist/base/src/types/index.d.ts +1 -0
- package/dist/base/src/types/index.d.ts.map +1 -1
- package/dist/base/src/types/screen.types.d.ts +28 -0
- package/dist/base/src/types/screen.types.d.ts.map +1 -1
- package/dist/base/src/utils/colors/helpers.d.ts +0 -16
- package/dist/base/src/utils/colors/helpers.d.ts.map +1 -1
- package/dist/base/src/utils/index.d.ts +2 -0
- package/dist/base/src/utils/index.d.ts.map +1 -1
- package/dist/base/src/utils/prompt.d.ts +7 -0
- package/dist/base/src/utils/prompt.d.ts.map +1 -0
- package/dist/base/src/utils/runtime.d.ts +10 -0
- package/dist/base/src/utils/runtime.d.ts.map +1 -0
- package/dist/base/src/utils/stdout-printer.d.ts +5 -0
- package/dist/base/src/utils/stdout-printer.d.ts.map +1 -1
- package/dist/base/tsconfig.base.tsbuildinfo +1 -1
- package/dist/base/tsconfig.tsbuildinfo +1 -0
- package/dist/ink/src/adapters/ink/components/file/file_log.d.ts +28 -0
- package/dist/ink/src/adapters/ink/components/file/file_log.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/file/index.d.ts +2 -0
- package/dist/ink/src/adapters/ink/components/file/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/filter/filter_bar.d.ts +7 -0
- package/dist/ink/src/adapters/ink/components/filter/filter_bar.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/filter/index.d.ts +2 -0
- package/dist/ink/src/adapters/ink/components/filter/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/help/help_overlay.d.ts +6 -0
- package/dist/ink/src/adapters/ink/components/help/help_overlay.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/help/index.d.ts +2 -0
- package/dist/ink/src/adapters/ink/components/help/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/index.d.ts +9 -0
- package/dist/ink/src/adapters/ink/components/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/log/index.d.ts +2 -0
- package/dist/ink/src/adapters/ink/components/log/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/log/log_message.d.ts +15 -0
- package/dist/ink/src/adapters/ink/components/log/log_message.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/prompt/index.d.ts +2 -0
- package/dist/ink/src/adapters/ink/components/prompt/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/prompt/prompt_renderer.d.ts +6 -0
- package/dist/ink/src/adapters/ink/components/prompt/prompt_renderer.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/screen/group_renderer.d.ts +14 -0
- package/dist/ink/src/adapters/ink/components/screen/group_renderer.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/screen/index.d.ts +7 -0
- package/dist/ink/src/adapters/ink/components/screen/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/screen/loading_message.d.ts +6 -0
- package/dist/ink/src/adapters/ink/components/screen/loading_message.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/screen/message_renderer.d.ts +6 -0
- package/dist/ink/src/adapters/ink/components/screen/message_renderer.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/screen/progress_message.d.ts +6 -0
- package/dist/ink/src/adapters/ink/components/screen/progress_message.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/screen/screen_bridge.d.ts +14 -0
- package/dist/ink/src/adapters/ink/components/screen/screen_bridge.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/screen/table_message.d.ts +6 -0
- package/dist/ink/src/adapters/ink/components/screen/table_message.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/screen_manager_bridge.d.ts +8 -0
- package/dist/ink/src/adapters/ink/components/screen_manager_bridge.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/sidebar/index.d.ts +4 -0
- package/dist/ink/src/adapters/ink/components/sidebar/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/sidebar/sidebar.d.ts +11 -0
- package/dist/ink/src/adapters/ink/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/sidebar/sidebar_item.d.ts +9 -0
- package/dist/ink/src/adapters/ink/components/sidebar/sidebar_item.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/components/sidebar/sidebar_separator.d.ts +2 -0
- package/dist/ink/src/adapters/ink/components/sidebar/sidebar_separator.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/context/index.d.ts +2 -0
- package/dist/ink/src/adapters/ink/context/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/context/logger_context.d.ts +33 -0
- package/dist/ink/src/adapters/ink/context/logger_context.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/hooks/index.d.ts +2 -0
- package/dist/ink/src/adapters/ink/hooks/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/hooks/use_theme.d.ts +7 -0
- package/dist/ink/src/adapters/ink/hooks/use_theme.d.ts.map +1 -0
- package/dist/ink/src/adapters/ink/index.d.ts +18 -0
- package/dist/ink/src/adapters/ink/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/react-shared/hooks/index.d.ts +4 -0
- package/dist/ink/src/adapters/react-shared/hooks/index.d.ts.map +1 -0
- package/dist/ink/src/adapters/react-shared/hooks/use_filter_state.d.ts +18 -0
- package/dist/ink/src/adapters/react-shared/hooks/use_filter_state.d.ts.map +1 -0
- package/dist/ink/src/adapters/react-shared/hooks/use_keyboard_manager.d.ts +26 -0
- package/dist/ink/src/adapters/react-shared/hooks/use_keyboard_manager.d.ts.map +1 -0
- package/dist/ink/src/adapters/react-shared/hooks/use_manager_subscription.d.ts +7 -0
- package/dist/ink/src/adapters/react-shared/hooks/use_manager_subscription.d.ts.map +1 -0
- package/dist/ink/src/adapters/react-shared/index.d.ts +2 -0
- package/dist/ink/src/adapters/react-shared/index.d.ts.map +1 -0
- package/dist/ink/tsconfig.ink.tsbuildinfo +1 -0
- package/dist/react/src/adapters/react-shared/hooks/index.d.ts +4 -0
- package/dist/react/src/adapters/react-shared/hooks/index.d.ts.map +1 -0
- package/dist/react/src/adapters/react-shared/hooks/use_filter_state.d.ts +18 -0
- package/dist/react/src/adapters/react-shared/hooks/use_filter_state.d.ts.map +1 -0
- package/dist/react/src/adapters/react-shared/hooks/use_keyboard_manager.d.ts +26 -0
- package/dist/react/src/adapters/react-shared/hooks/use_keyboard_manager.d.ts.map +1 -0
- package/dist/react/src/adapters/react-shared/hooks/use_manager_subscription.d.ts +7 -0
- package/dist/react/src/adapters/react-shared/hooks/use_manager_subscription.d.ts.map +1 -0
- package/dist/react/src/adapters/react-shared/index.d.ts +2 -0
- package/dist/react/src/adapters/react-shared/index.d.ts.map +1 -0
- package/dist/react/tsconfig.react.tsbuildinfo +1 -1
- package/dist/solid/tsconfig.solid.tsbuildinfo +1 -1
- package/lib/index.cjs +2177 -178
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +942 -78
- package/lib/index.d.cts.map +1 -0
- package/lib/index.d.mts +902 -38
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +2098 -135
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -31
- package/src/__tests__/services/logger.spec.ts +32 -0
- package/src/__tests__/services/screen.spec.ts +106 -95
- package/src/__tests__/utils/factories.ts +2 -0
- package/src/adapters/interface.ts +10 -2
- package/src/overrides/missing-adapter.override.ts +16 -6
- package/src/services/index.ts +1 -0
- package/src/services/logger.ts +7 -1
- package/src/services/readline_prompt.ts +194 -0
- package/src/services/screen.ts +106 -54
- package/src/services/screen_manager.ts +282 -74
- package/src/types/events.types.ts +84 -0
- package/src/types/index.ts +3 -0
- package/src/types/screen.types.ts +34 -0
- package/src/utils/colors/helpers.ts +0 -25
- package/src/utils/index.ts +6 -0
- package/src/utils/prompt.ts +18 -0
- package/src/utils/runtime.ts +14 -0
- package/src/utils/stdout-printer.ts +16 -5
- package/tsconfig.base.json +1 -17
- package/tsconfig.json +1 -6
- package/tsdown.config.mts +13 -70
- package/lib/adapters/react/index.cjs +0 -1768
- package/lib/adapters/react/index.cjs.map +0 -1
- package/lib/adapters/react/index.d.cts +0 -80
- package/lib/adapters/react/index.d.mts +0 -80
- package/lib/adapters/react/index.mjs +0 -1760
- package/lib/adapters/react/index.mjs.map +0 -1
- package/lib/adapters/solid/index.cjs +0 -3855
- package/lib/adapters/solid/index.cjs.map +0 -1
- package/lib/adapters/solid/index.d.cts +0 -74
- package/lib/adapters/solid/index.d.mts +0 -74
- package/lib/adapters/solid/index.mjs +0 -3847
- package/lib/adapters/solid/index.mjs.map +0 -1
- package/lib/filter_engine-DXqu9Vaq.cjs +0 -1836
- package/lib/filter_engine-DXqu9Vaq.cjs.map +0 -1
- package/lib/filter_engine-DmqhEhpA.mjs +0 -1609
- package/lib/filter_engine-DmqhEhpA.mjs.map +0 -1
- package/lib/interface-CTHQ08aY.d.mts +0 -699
- package/lib/interface-DQEIz9Mb.d.cts +0 -699
- package/src/__tests__/components/__snapshots__/filter_bar.spec.tsx.snap +0 -2293
- package/src/__tests__/components/__snapshots__/loading_message.spec.tsx.snap +0 -1414
- package/src/__tests__/components/__snapshots__/log_message.spec.tsx.snap +0 -3245
- package/src/__tests__/components/__snapshots__/progress_message.spec.tsx.snap +0 -1783
- package/src/__tests__/components/__snapshots__/prompt_renderer.spec.tsx.snap +0 -3203
- package/src/__tests__/components/__snapshots__/sidebar.spec.tsx.snap +0 -2857
- package/src/__tests__/components/filter_bar.spec.tsx +0 -190
- package/src/__tests__/components/loading_message.spec.tsx +0 -110
- package/src/__tests__/components/log_message.spec.tsx +0 -166
- package/src/__tests__/components/progress_message.spec.tsx +0 -147
- package/src/__tests__/components/prompt_renderer.spec.tsx +0 -274
- package/src/__tests__/components/sidebar.spec.tsx +0 -322
- package/src/__tests__/utils/render-utils.tsx +0 -39
- package/src/adapters/react/components/file/file_log.tsx +0 -241
- package/src/adapters/react/components/file/index.ts +0 -1
- package/src/adapters/react/components/filter/filter_bar.tsx +0 -79
- package/src/adapters/react/components/filter/index.ts +0 -1
- package/src/adapters/react/components/help/help_overlay.tsx +0 -100
- package/src/adapters/react/components/help/index.ts +0 -1
- package/src/adapters/react/components/log/index.ts +0 -1
- package/src/adapters/react/components/log/log_message.tsx +0 -102
- package/src/adapters/react/components/prompt/index.ts +0 -2
- package/src/adapters/react/components/prompt/prompt_renderer.tsx +0 -346
- package/src/adapters/react/components/screen/group_renderer.tsx +0 -64
- package/src/adapters/react/components/screen/index.ts +0 -6
- package/src/adapters/react/components/screen/loading_message.tsx +0 -43
- package/src/adapters/react/components/screen/message_renderer.tsx +0 -108
- package/src/adapters/react/components/screen/progress_message.tsx +0 -60
- package/src/adapters/react/components/screen/screen_bridge.tsx +0 -149
- package/src/adapters/react/components/screen/table_message.tsx +0 -57
- package/src/adapters/react/components/screen_manager_bridge.tsx +0 -245
- package/src/adapters/react/components/sidebar/index.ts +0 -3
- package/src/adapters/react/components/sidebar/sidebar.tsx +0 -102
- package/src/adapters/react/components/sidebar/sidebar_item.tsx +0 -50
- package/src/adapters/react/components/sidebar/sidebar_separator.tsx +0 -13
- package/src/adapters/react/context/index.ts +0 -1
- package/src/adapters/react/context/logger_context.tsx +0 -109
- package/src/adapters/react/hooks/index.ts +0 -1
- package/src/adapters/react/hooks/use_theme.ts +0 -12
- package/src/adapters/react/index.ts +0 -39
- package/src/adapters/solid/components/file/file_log.tsx +0 -221
- package/src/adapters/solid/components/file/index.ts +0 -1
- package/src/adapters/solid/components/filter/filter_bar.tsx +0 -84
- package/src/adapters/solid/components/filter/index.ts +0 -1
- package/src/adapters/solid/components/help/help_overlay.tsx +0 -106
- package/src/adapters/solid/components/help/index.ts +0 -1
- package/src/adapters/solid/components/log/index.ts +0 -1
- package/src/adapters/solid/components/log/log_message.tsx +0 -92
- package/src/adapters/solid/components/prompt/index.ts +0 -2
- package/src/adapters/solid/components/prompt/prompt_renderer.tsx +0 -350
- package/src/adapters/solid/components/screen/group_renderer.tsx +0 -61
- package/src/adapters/solid/components/screen/index.ts +0 -6
- package/src/adapters/solid/components/screen/loading_message.tsx +0 -39
- package/src/adapters/solid/components/screen/message_renderer.tsx +0 -122
- package/src/adapters/solid/components/screen/progress_message.tsx +0 -61
- package/src/adapters/solid/components/screen/screen_bridge.tsx +0 -155
- package/src/adapters/solid/components/screen/table_message.tsx +0 -58
- package/src/adapters/solid/components/screen_manager_bridge.tsx +0 -243
- package/src/adapters/solid/components/sidebar/index.ts +0 -3
- package/src/adapters/solid/components/sidebar/sidebar.tsx +0 -108
- package/src/adapters/solid/components/sidebar/sidebar_item.tsx +0 -55
- package/src/adapters/solid/components/sidebar/sidebar_separator.tsx +0 -13
- package/src/adapters/solid/context/index.ts +0 -2
- package/src/adapters/solid/context/logger_context.tsx +0 -95
- package/src/adapters/solid/hooks/index.ts +0 -1
- package/src/adapters/solid/hooks/use_theme.ts +0 -12
- package/src/adapters/solid/index.tsx +0 -43
- package/src/adapters/solid/jsx.d.ts +0 -98
- package/tsconfig.react.json +0 -16
- package/tsconfig.solid.json +0 -16
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { SyntaxStyle, type TreeSitterClient } from '@opentui/core'
|
|
2
|
-
import { createContext, useContext, createMemo, type ParentProps } from 'solid-js'
|
|
3
|
-
|
|
4
|
-
import { darkTheme, resolveTheme } from '../../../themes/index.ts'
|
|
5
|
-
|
|
6
|
-
import type { LoggerContextValue, LogLevelColorMap, Theme, ThemePreset } from '../../../types/index.ts'
|
|
7
|
-
|
|
8
|
-
const LoggerContext = createContext<LoggerContextValue>()
|
|
9
|
-
|
|
10
|
-
export interface LoggerProviderProps extends ParentProps {
|
|
11
|
-
/** Custom syntax style for code highlighting */
|
|
12
|
-
syntaxStyle?: SyntaxStyle
|
|
13
|
-
|
|
14
|
-
/** Tree-sitter client for parsing */
|
|
15
|
-
treeSitterClient?: TreeSitterClient
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Theme configuration.
|
|
19
|
-
* Can be a preset name ("dark", "light", "high-contrast") or a Theme object.
|
|
20
|
-
* @default "dark"
|
|
21
|
-
*/
|
|
22
|
-
theme?: Theme | ThemePreset
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @deprecated Use `theme` instead. Custom log level colors.
|
|
26
|
-
* If both `theme` and `levelColors` are provided, `levelColors` takes precedence.
|
|
27
|
-
*/
|
|
28
|
-
levelColors?: Partial<LogLevelColorMap>
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* LoggerProvider - Provides shared context for logger components.
|
|
33
|
-
*
|
|
34
|
-
* This context provides:
|
|
35
|
-
* - Shared SyntaxStyle instance for consistent code highlighting
|
|
36
|
-
* - Optional TreeSitterClient for advanced parsing
|
|
37
|
-
* - Theme configuration for consistent styling
|
|
38
|
-
* - Log level color configuration (for backwards compatibility)
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* // Using a preset theme
|
|
42
|
-
* <LoggerProvider theme="dark">
|
|
43
|
-
* <ScreenManager screens={screens} activeScreenId={activeId}>
|
|
44
|
-
* <Screen name="Logs">
|
|
45
|
-
* <LogMessage level="info">Hello</LogMessage>
|
|
46
|
-
* </Screen>
|
|
47
|
-
* </ScreenManager>
|
|
48
|
-
* </LoggerProvider>
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* // Using a custom theme
|
|
52
|
-
* <LoggerProvider theme={myCustomTheme}>
|
|
53
|
-
* ...
|
|
54
|
-
* </LoggerProvider>
|
|
55
|
-
*/
|
|
56
|
-
export function LoggerProvider(props: LoggerProviderProps) {
|
|
57
|
-
// Create or use provided SyntaxStyle
|
|
58
|
-
const syntaxStyle = createMemo(() => props.syntaxStyle ?? SyntaxStyle.create())
|
|
59
|
-
|
|
60
|
-
// Resolve theme (could be a preset name or a theme object)
|
|
61
|
-
const theme = createMemo(() => resolveTheme(props.theme ?? 'dark'))
|
|
62
|
-
|
|
63
|
-
// Derive levelColors from theme, allowing custom overrides for backwards compatibility
|
|
64
|
-
const levelColors = createMemo(() => ({
|
|
65
|
-
...theme().logLevels,
|
|
66
|
-
...props.levelColors,
|
|
67
|
-
}))
|
|
68
|
-
|
|
69
|
-
const value = createMemo<LoggerContextValue>(() => ({
|
|
70
|
-
syntaxStyle: syntaxStyle(),
|
|
71
|
-
treeSitterClient: props.treeSitterClient,
|
|
72
|
-
levelColors: levelColors(),
|
|
73
|
-
theme: theme(),
|
|
74
|
-
}))
|
|
75
|
-
|
|
76
|
-
return <LoggerContext.Provider value={value()}>{props.children}</LoggerContext.Provider>
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Hook to access logger context.
|
|
81
|
-
* Returns default values if used outside LoggerProvider.
|
|
82
|
-
*/
|
|
83
|
-
export function useLoggerContext(): LoggerContextValue {
|
|
84
|
-
const context = useContext(LoggerContext)
|
|
85
|
-
if (!context) {
|
|
86
|
-
// Return defaults if not in a provider (allows standalone usage)
|
|
87
|
-
return {
|
|
88
|
-
syntaxStyle: undefined,
|
|
89
|
-
treeSitterClient: undefined,
|
|
90
|
-
levelColors: darkTheme.logLevels,
|
|
91
|
-
theme: darkTheme,
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return context
|
|
95
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useTheme } from './use_theme.ts'
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { useLoggerContext } from '../context/index.ts'
|
|
2
|
-
|
|
3
|
-
import type { Theme } from '../../../types/index.ts'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Hook to access the current theme.
|
|
7
|
-
* Returns the theme from LoggerContext.
|
|
8
|
-
*/
|
|
9
|
-
export function useTheme(): Theme {
|
|
10
|
-
const { theme } = useLoggerContext()
|
|
11
|
-
return theme
|
|
12
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@navios/core'
|
|
2
|
-
import { render as solidRender } from '@opentui/solid'
|
|
3
|
-
|
|
4
|
-
import type { CliRenderer } from '@opentui/core'
|
|
5
|
-
|
|
6
|
-
import { Adapter } from '../../tokens/adapter.js'
|
|
7
|
-
|
|
8
|
-
import type { AdapterInterface, AdapterRoot, AdapterRenderProps } from '../interface.js'
|
|
9
|
-
|
|
10
|
-
import { ScreenManagerBridge } from './components/screen_manager_bridge.js'
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Solid adapter for TUI rendering.
|
|
14
|
-
* Automatically registers to DI when this module is imported.
|
|
15
|
-
*/
|
|
16
|
-
@Injectable({ token: Adapter })
|
|
17
|
-
export class SolidAdapter implements AdapterInterface {
|
|
18
|
-
createRoot(renderer: CliRenderer): AdapterRoot {
|
|
19
|
-
let renderPromise: Promise<void> | undefined
|
|
20
|
-
|
|
21
|
-
return {
|
|
22
|
-
render(element: unknown): void {
|
|
23
|
-
// Solid's render returns a Promise<void>
|
|
24
|
-
// We start the render and let it run asynchronously
|
|
25
|
-
renderPromise = solidRender(element as () => any, renderer)
|
|
26
|
-
},
|
|
27
|
-
unmount(): void {
|
|
28
|
-
// Solid's render doesn't provide a dispose function in @opentui/solid
|
|
29
|
-
// The unmount is handled by the renderer itself
|
|
30
|
-
renderPromise = undefined
|
|
31
|
-
},
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
renderToRoot(root: AdapterRoot, props: AdapterRenderProps): void {
|
|
36
|
-
// @ts-expect-error This is a workaround to avoid type errors
|
|
37
|
-
root.render(() => <ScreenManagerBridge {...props} />)
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Re-export context and hooks for external use
|
|
42
|
-
export * from './context/index.js'
|
|
43
|
-
export * from './hooks/index.js'
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/// <reference types="solid-js" />
|
|
2
|
-
import type { JSX as SolidJSX } from 'solid-js'
|
|
3
|
-
import type { RGBA, SyntaxStyle, TreeSitterClient } from '@opentui/core'
|
|
4
|
-
|
|
5
|
-
// Color type that accepts string or RGBA
|
|
6
|
-
type Color = string | RGBA
|
|
7
|
-
|
|
8
|
-
// Extend Solid's IntrinsicElements with OpenTUI custom elements
|
|
9
|
-
declare module 'solid-js' {
|
|
10
|
-
namespace JSX {
|
|
11
|
-
interface IntrinsicElements {
|
|
12
|
-
// Box element - flex container
|
|
13
|
-
box: {
|
|
14
|
-
children?: SolidJSX.Element | SolidJSX.Element[]
|
|
15
|
-
flexDirection?: 'row' | 'column'
|
|
16
|
-
flexGrow?: number
|
|
17
|
-
flexShrink?: number
|
|
18
|
-
flexBasis?: number | string
|
|
19
|
-
alignItems?: 'flex-start' | 'flex-end' | 'center' | 'stretch'
|
|
20
|
-
justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'
|
|
21
|
-
gap?: number
|
|
22
|
-
width?: number | string
|
|
23
|
-
height?: number | string
|
|
24
|
-
minWidth?: number | string
|
|
25
|
-
minHeight?: number | string
|
|
26
|
-
maxWidth?: number | string
|
|
27
|
-
maxHeight?: number | string
|
|
28
|
-
padding?: number
|
|
29
|
-
paddingTop?: number
|
|
30
|
-
paddingBottom?: number
|
|
31
|
-
paddingLeft?: number
|
|
32
|
-
paddingRight?: number
|
|
33
|
-
margin?: number
|
|
34
|
-
marginTop?: number
|
|
35
|
-
marginBottom?: number
|
|
36
|
-
marginLeft?: number
|
|
37
|
-
marginRight?: number
|
|
38
|
-
border?: ('top' | 'bottom' | 'left' | 'right')[]
|
|
39
|
-
borderColor?: Color
|
|
40
|
-
backgroundColor?: Color
|
|
41
|
-
position?: 'relative' | 'absolute'
|
|
42
|
-
top?: number
|
|
43
|
-
bottom?: number
|
|
44
|
-
left?: number
|
|
45
|
-
right?: number
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Text element - text rendering
|
|
49
|
-
text: {
|
|
50
|
-
children?: SolidJSX.Element | SolidJSX.Element[] | string | number | (string | number)[]
|
|
51
|
-
fg?: Color
|
|
52
|
-
bg?: Color
|
|
53
|
-
attributes?: number
|
|
54
|
-
width?: number
|
|
55
|
-
flexGrow?: number
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Scrollbox element - scrollable container
|
|
59
|
-
scrollbox: {
|
|
60
|
-
children?: SolidJSX.Element | SolidJSX.Element[]
|
|
61
|
-
scrollX?: boolean
|
|
62
|
-
scrollY?: boolean
|
|
63
|
-
stickyScroll?: boolean
|
|
64
|
-
stickyStart?: 'top' | 'bottom'
|
|
65
|
-
flexGrow?: number
|
|
66
|
-
contentOptions?: {
|
|
67
|
-
paddingLeft?: number
|
|
68
|
-
paddingRight?: number
|
|
69
|
-
paddingTop?: number
|
|
70
|
-
paddingBottom?: number
|
|
71
|
-
gap?: number
|
|
72
|
-
flexGrow?: number
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Code element - syntax highlighted code
|
|
77
|
-
code: {
|
|
78
|
-
children?: SolidJSX.Element | SolidJSX.Element[]
|
|
79
|
-
content?: string
|
|
80
|
-
filetype?: string
|
|
81
|
-
syntaxStyle?: SyntaxStyle
|
|
82
|
-
treeSitterClient?: TreeSitterClient
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Diff element - unified diff display
|
|
86
|
-
diff: {
|
|
87
|
-
children?: SolidJSX.Element | SolidJSX.Element[]
|
|
88
|
-
diff?: string
|
|
89
|
-
view?: 'unified' | 'split'
|
|
90
|
-
filetype?: string
|
|
91
|
-
syntaxStyle?: SyntaxStyle
|
|
92
|
-
treeSitterClient?: TreeSitterClient
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export {}
|
package/tsconfig.react.json
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.base.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"outDir": "dist/react",
|
|
5
|
-
"jsx": "react-jsx",
|
|
6
|
-
"jsxImportSource": "@opentui/react",
|
|
7
|
-
"module": "Preserve",
|
|
8
|
-
"moduleResolution": "bundler",
|
|
9
|
-
"allowImportingTsExtensions": true,
|
|
10
|
-
"declaration": true,
|
|
11
|
-
"composite": true
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/adapters/react/**/*"],
|
|
14
|
-
"exclude": ["src/**/*.spec.ts", "src/**/*.spec.tsx"],
|
|
15
|
-
"references": [{ "path": "./tsconfig.base.json" }]
|
|
16
|
-
}
|
package/tsconfig.solid.json
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.base.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"outDir": "dist/solid",
|
|
5
|
-
"jsx": "preserve",
|
|
6
|
-
"jsxImportSource": "solid-js",
|
|
7
|
-
"module": "Preserve",
|
|
8
|
-
"moduleResolution": "bundler",
|
|
9
|
-
"allowImportingTsExtensions": true,
|
|
10
|
-
"declaration": true,
|
|
11
|
-
"composite": true
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/adapters/solid/**/*"],
|
|
14
|
-
"exclude": ["src/**/*.spec.ts", "src/**/*.spec.tsx"],
|
|
15
|
-
"references": [{ "path": "./tsconfig.base.json" }]
|
|
16
|
-
}
|