@google/gemini-cli 0.27.0-preview.3 → 0.28.0-nightly.20260130.d43d772e6

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 (197) hide show
  1. package/dist/google-gemini-cli-0.28.0-nightly.20260128.adc8e11bb.tgz +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/extensions/examples/themes-example/README.md +28 -0
  4. package/dist/src/commands/extensions/examples/themes-example/gemini-extension.json +29 -0
  5. package/dist/src/commands/extensions/update.js +9 -3
  6. package/dist/src/commands/extensions/update.js.map +1 -1
  7. package/dist/src/commands/extensions/update.test.js +26 -0
  8. package/dist/src/commands/extensions/update.test.js.map +1 -1
  9. package/dist/src/commands/mcp/add.js +4 -0
  10. package/dist/src/commands/mcp/add.js.map +1 -1
  11. package/dist/src/config/config.js +2 -2
  12. package/dist/src/config/config.js.map +1 -1
  13. package/dist/src/config/config.test.js +1 -1
  14. package/dist/src/config/config.test.js.map +1 -1
  15. package/dist/src/config/extension-manager-themes.spec.js +196 -0
  16. package/dist/src/config/extension-manager-themes.spec.js.map +1 -0
  17. package/dist/src/config/extension-manager.d.ts +2 -0
  18. package/dist/src/config/extension-manager.js +14 -0
  19. package/dist/src/config/extension-manager.js.map +1 -1
  20. package/dist/src/config/extension.d.ts +6 -1
  21. package/dist/src/config/extension.js.map +1 -1
  22. package/dist/src/config/keyBindings.d.ts +2 -1
  23. package/dist/src/config/keyBindings.js +13 -2
  24. package/dist/src/config/keyBindings.js.map +1 -1
  25. package/dist/src/config/settings.js +13 -5
  26. package/dist/src/config/settings.js.map +1 -1
  27. package/dist/src/config/settings.test.js +37 -17
  28. package/dist/src/config/settings.test.js.map +1 -1
  29. package/dist/src/config/settingsSchema.d.ts +10 -11
  30. package/dist/src/config/settingsSchema.js +13 -9
  31. package/dist/src/config/settingsSchema.js.map +1 -1
  32. package/dist/src/gemini.js +6 -3
  33. package/dist/src/gemini.js.map +1 -1
  34. package/dist/src/generated/git-commit.d.ts +2 -2
  35. package/dist/src/generated/git-commit.js +2 -2
  36. package/dist/src/generated/git-commit.js.map +1 -1
  37. package/dist/src/nonInteractiveCli.js +4 -0
  38. package/dist/src/nonInteractiveCli.js.map +1 -1
  39. package/dist/src/nonInteractiveCli.test.js +40 -0
  40. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  41. package/dist/src/services/BuiltinCommandLoader.test.js +4 -2
  42. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  43. package/dist/src/test-utils/createExtension.d.ts +3 -3
  44. package/dist/src/test-utils/createExtension.js +9 -2
  45. package/dist/src/test-utils/createExtension.js.map +1 -1
  46. package/dist/src/ui/AppContainer.js +48 -2
  47. package/dist/src/ui/AppContainer.js.map +1 -1
  48. package/dist/src/ui/AppContainer.test.js +158 -3
  49. package/dist/src/ui/AppContainer.test.js.map +1 -1
  50. package/dist/src/ui/commands/bugCommand.js +2 -0
  51. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  52. package/dist/src/ui/commands/bugCommand.test.js +5 -0
  53. package/dist/src/ui/commands/bugCommand.test.js.map +1 -1
  54. package/dist/src/ui/commands/directoryCommand.js +4 -0
  55. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  56. package/dist/src/ui/commands/directoryCommand.test.js +3 -0
  57. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
  58. package/dist/src/ui/commands/hooksCommand.js +50 -66
  59. package/dist/src/ui/commands/hooksCommand.js.map +1 -1
  60. package/dist/src/ui/commands/hooksCommand.test.js +61 -63
  61. package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
  62. package/dist/src/ui/commands/statsCommand.js +17 -0
  63. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  64. package/dist/src/ui/commands/statsCommand.test.js +18 -0
  65. package/dist/src/ui/commands/statsCommand.test.js.map +1 -1
  66. package/dist/src/ui/components/AboutBox.js +10 -5
  67. package/dist/src/ui/components/AboutBox.js.map +1 -1
  68. package/dist/src/ui/components/AboutBox.test.js +5 -5
  69. package/dist/src/ui/components/AboutBox.test.js.map +1 -1
  70. package/dist/src/ui/components/AsciiArt.d.ts +0 -3
  71. package/dist/src/ui/components/AsciiArt.js +0 -36
  72. package/dist/src/ui/components/AsciiArt.js.map +1 -1
  73. package/dist/src/ui/components/Checklist.d.ts +14 -0
  74. package/dist/src/ui/components/Checklist.js +31 -0
  75. package/dist/src/ui/components/Checklist.js.map +1 -0
  76. package/dist/src/ui/components/Checklist.test.d.ts +6 -0
  77. package/dist/src/ui/components/Checklist.test.js +46 -0
  78. package/dist/src/ui/components/Checklist.test.js.map +1 -0
  79. package/dist/src/ui/components/ChecklistItem.d.ts +17 -0
  80. package/dist/src/ui/components/ChecklistItem.js +36 -0
  81. package/dist/src/ui/components/ChecklistItem.js.map +1 -0
  82. package/dist/src/ui/components/ChecklistItem.test.d.ts +6 -0
  83. package/dist/src/ui/components/ChecklistItem.test.js +38 -0
  84. package/dist/src/ui/components/ChecklistItem.test.js.map +1 -0
  85. package/dist/src/ui/components/Header.js +4 -6
  86. package/dist/src/ui/components/Header.js.map +1 -1
  87. package/dist/src/ui/components/Header.test.js +5 -26
  88. package/dist/src/ui/components/Header.test.js.map +1 -1
  89. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  90. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  91. package/dist/src/ui/components/ModelStatsDisplay.d.ts +7 -1
  92. package/dist/src/ui/components/ModelStatsDisplay.js +24 -18
  93. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  94. package/dist/src/ui/components/ModelStatsDisplay.test.js +75 -0
  95. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
  96. package/dist/src/ui/components/SessionSummaryDisplay.test.js +4 -2
  97. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
  98. package/dist/src/ui/components/StatsDisplay.d.ts +3 -0
  99. package/dist/src/ui/components/StatsDisplay.js +9 -2
  100. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  101. package/dist/src/ui/components/StatsDisplay.test.js +46 -5
  102. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
  103. package/dist/src/ui/components/ThemeDialog.js +17 -25
  104. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  105. package/dist/src/ui/components/ToolConfirmationQueue.js +6 -6
  106. package/dist/src/ui/components/ToolConfirmationQueue.js.map +1 -1
  107. package/dist/src/ui/components/ToolConfirmationQueue.test.js +42 -0
  108. package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
  109. package/dist/src/ui/components/messages/Todo.js +11 -62
  110. package/dist/src/ui/components/messages/Todo.js.map +1 -1
  111. package/dist/src/ui/components/messages/ToolGroupMessage.js +5 -5
  112. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  113. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +116 -47
  114. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  115. package/dist/src/ui/components/triage/TriageDuplicates.js +4 -4
  116. package/dist/src/ui/components/triage/TriageDuplicates.js.map +1 -1
  117. package/dist/src/ui/constants/tips.js +2 -2
  118. package/dist/src/ui/constants/tips.js.map +1 -1
  119. package/dist/src/ui/constants.d.ts +1 -1
  120. package/dist/src/ui/constants.js +1 -1
  121. package/dist/src/ui/contexts/AskUserActionsContext.d.ts +1 -0
  122. package/dist/src/ui/contexts/AskUserActionsContext.js +1 -1
  123. package/dist/src/ui/contexts/AskUserActionsContext.js.map +1 -1
  124. package/dist/src/ui/contexts/KeypressContext.js +2 -0
  125. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  126. package/dist/src/ui/hooks/atCommandProcessor.js +2 -1
  127. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  128. package/dist/src/ui/hooks/atCommandProcessor.test.js +20 -0
  129. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  130. package/dist/src/ui/hooks/useGeminiStream.js +8 -1
  131. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  132. package/dist/src/ui/hooks/useHistoryManager.d.ts +2 -1
  133. package/dist/src/ui/hooks/useHistoryManager.js +2 -2
  134. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  135. package/dist/src/ui/hooks/useHistoryManager.test.js +32 -0
  136. package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
  137. package/dist/src/ui/hooks/useHookDisplayState.test.js +39 -19
  138. package/dist/src/ui/hooks/useHookDisplayState.test.js.map +1 -1
  139. package/dist/src/ui/hooks/useSessionResume.js +8 -0
  140. package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
  141. package/dist/src/ui/hooks/useSessionResume.test.js +64 -0
  142. package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
  143. package/dist/src/ui/keyMatchers.test.js +15 -4
  144. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  145. package/dist/src/ui/themes/theme-manager.d.ts +23 -2
  146. package/dist/src/ui/themes/theme-manager.js +108 -17
  147. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  148. package/dist/src/ui/themes/theme-manager.test.js +40 -0
  149. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  150. package/dist/src/ui/themes/theme.d.ts +2 -47
  151. package/dist/src/ui/themes/theme.js.map +1 -1
  152. package/dist/src/ui/themes/theme.test.js +1 -4
  153. package/dist/src/ui/themes/theme.test.js.map +1 -1
  154. package/dist/src/ui/types.d.ts +6 -0
  155. package/dist/src/ui/types.js.map +1 -1
  156. package/dist/src/ui/utils/TableRenderer.js +13 -6
  157. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  158. package/dist/src/ui/utils/TableRenderer.test.d.ts +1 -0
  159. package/dist/src/ui/utils/TableRenderer.test.js +48 -0
  160. package/dist/src/ui/utils/TableRenderer.test.js.map +1 -0
  161. package/dist/src/utils/activityLogger.d.ts +5 -1
  162. package/dist/src/utils/activityLogger.js +8 -3
  163. package/dist/src/utils/activityLogger.js.map +1 -1
  164. package/dist/src/utils/gitUtils.js +22 -5
  165. package/dist/src/utils/gitUtils.js.map +1 -1
  166. package/dist/src/utils/gitUtils.test.js +59 -0
  167. package/dist/src/utils/gitUtils.test.js.map +1 -1
  168. package/dist/src/utils/hookSettings.d.ts +30 -0
  169. package/dist/src/utils/hookSettings.js +114 -0
  170. package/dist/src/utils/hookSettings.js.map +1 -0
  171. package/dist/src/utils/hookSettings.test.d.ts +6 -0
  172. package/dist/src/utils/hookSettings.test.js +117 -0
  173. package/dist/src/utils/hookSettings.test.js.map +1 -0
  174. package/dist/src/utils/hookUtils.d.ts +12 -0
  175. package/dist/src/utils/hookUtils.js +51 -0
  176. package/dist/src/utils/hookUtils.js.map +1 -0
  177. package/dist/src/utils/hookUtils.test.d.ts +6 -0
  178. package/dist/src/utils/hookUtils.test.js +113 -0
  179. package/dist/src/utils/hookUtils.test.js.map +1 -0
  180. package/dist/src/utils/installationInfo.js +1 -1
  181. package/dist/src/utils/installationInfo.js.map +1 -1
  182. package/dist/src/utils/installationInfo.test.js +1 -1
  183. package/dist/src/utils/installationInfo.test.js.map +1 -1
  184. package/dist/src/utils/sessionCleanup.d.ts +14 -0
  185. package/dist/src/utils/sessionCleanup.js +106 -1
  186. package/dist/src/utils/sessionCleanup.js.map +1 -1
  187. package/dist/src/utils/sessionCleanup.test.js +12 -1
  188. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  189. package/dist/src/utils/toolOutputCleanup.test.d.ts +6 -0
  190. package/dist/src/utils/toolOutputCleanup.test.js +229 -0
  191. package/dist/src/utils/toolOutputCleanup.test.js.map +1 -0
  192. package/dist/tsconfig.tsbuildinfo +1 -1
  193. package/package.json +3 -3
  194. package/dist/google-gemini-cli-0.27.0-preview.2.tgz +0 -0
  195. package/dist/src/config/skills-backward-compatibility.test.js +0 -99
  196. package/dist/src/config/skills-backward-compatibility.test.js.map +0 -1
  197. /package/dist/src/config/{skills-backward-compatibility.test.d.ts → extension-manager-themes.spec.d.ts} +0 -0
@@ -9,6 +9,15 @@ import {} from './types.js';
9
9
  import { createMockCommandContext } from '../../test-utils/mockCommandContext.js';
10
10
  import { MessageType } from '../types.js';
11
11
  import { formatDuration } from '../utils/formatters.js';
12
+ vi.mock('@google/gemini-cli-core', async (importOriginal) => {
13
+ const actual = await importOriginal();
14
+ return {
15
+ ...actual,
16
+ UserAccountManager: vi.fn().mockImplementation(() => ({
17
+ getCachedGoogleAccount: vi.fn().mockReturnValue('mock@example.com'),
18
+ })),
19
+ };
20
+ });
12
21
  describe('statsCommand', () => {
13
22
  let mockContext;
14
23
  const startTime = new Date('2025-07-14T10:00:00.000Z');
@@ -30,6 +39,9 @@ describe('statsCommand', () => {
30
39
  expect(mockContext.ui.addItem).toHaveBeenCalledWith({
31
40
  type: MessageType.STATS,
32
41
  duration: expectedDuration,
42
+ selectedAuthType: '',
43
+ tier: undefined,
44
+ userEmail: 'mock@example.com',
33
45
  });
34
46
  });
35
47
  it('should fetch and display quota if config is available', async () => {
@@ -37,13 +49,16 @@ describe('statsCommand', () => {
37
49
  throw new Error('Command has no action');
38
50
  const mockQuota = { buckets: [] };
39
51
  const mockRefreshUserQuota = vi.fn().mockResolvedValue(mockQuota);
52
+ const mockGetUserTierName = vi.fn().mockReturnValue('Basic');
40
53
  mockContext.services.config = {
41
54
  refreshUserQuota: mockRefreshUserQuota,
55
+ getUserTierName: mockGetUserTierName,
42
56
  };
43
57
  await statsCommand.action(mockContext, '');
44
58
  expect(mockRefreshUserQuota).toHaveBeenCalled();
45
59
  expect(mockContext.ui.addItem).toHaveBeenCalledWith(expect.objectContaining({
46
60
  quotas: mockQuota,
61
+ tier: 'Basic',
47
62
  }));
48
63
  });
49
64
  it('should display model stats when using the "model" subcommand', () => {
@@ -54,6 +69,9 @@ describe('statsCommand', () => {
54
69
  modelSubCommand.action(mockContext, '');
55
70
  expect(mockContext.ui.addItem).toHaveBeenCalledWith({
56
71
  type: MessageType.MODEL_STATS,
72
+ selectedAuthType: '',
73
+ tier: undefined,
74
+ userEmail: 'mock@example.com',
57
75
  });
58
76
  });
59
77
  it('should display tool stats when using the "tools" subcommand', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"statsCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/statsCommand.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statsCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/statsCommand.test.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
3
  import { theme } from '../semantic-colors.js';
4
4
  import { GIT_COMMIT_INFO } from '../../generated/git-commit.js';
5
- export const AboutBox = ({ cliVersion, osVersion, sandboxEnv, modelVersion, selectedAuthType, gcpProject, ideClient, userEmail, tier, }) => (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", padding: 1, marginY: 1, width: "100%", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: theme.text.accent, children: "About Gemini CLI" }) }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "CLI Version" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: cliVersion }) })] }), GIT_COMMIT_INFO && !['N/A'].includes(GIT_COMMIT_INFO) && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Git Commit" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: GIT_COMMIT_INFO }) })] })), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Model" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: modelVersion }) })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Sandbox" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: sandboxEnv }) })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "OS" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: osVersion }) })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Auth Method" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: selectedAuthType.startsWith('oauth')
6
- ? userEmail
7
- ? `Logged in with Google (${userEmail})`
8
- : 'Logged in with Google'
9
- : selectedAuthType }) })] }), tier && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Tier" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: tier }) })] })), gcpProject && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "GCP Project" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: gcpProject }) })] })), ideClient && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "IDE Client" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: ideClient }) })] }))] }));
5
+ import { useSettings } from '../contexts/SettingsContext.js';
6
+ export const AboutBox = ({ cliVersion, osVersion, sandboxEnv, modelVersion, selectedAuthType, gcpProject, ideClient, userEmail, tier, }) => {
7
+ const settings = useSettings();
8
+ const showUserIdentity = settings.merged.ui.showUserIdentity;
9
+ return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", padding: 1, marginY: 1, width: "100%", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: theme.text.accent, children: "About Gemini CLI" }) }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "CLI Version" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: cliVersion }) })] }), GIT_COMMIT_INFO && !['N/A'].includes(GIT_COMMIT_INFO) && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Git Commit" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: GIT_COMMIT_INFO }) })] })), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Model" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: modelVersion }) })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Sandbox" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: sandboxEnv }) })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "OS" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: osVersion }) })] }), showUserIdentity && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Auth Method" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: selectedAuthType.startsWith('oauth')
10
+ ? userEmail
11
+ ? `Logged in with Google (${userEmail})`
12
+ : 'Logged in with Google'
13
+ : selectedAuthType }) })] })), showUserIdentity && tier && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "Tier" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: tier }) })] })), gcpProject && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "GCP Project" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: gcpProject }) })] })), ideClient && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: "35%", children: _jsx(Text, { bold: true, color: theme.text.link, children: "IDE Client" }) }), _jsx(Box, { children: _jsx(Text, { color: theme.text.primary, children: ideClient }) })] }))] }));
14
+ };
10
15
  //# sourceMappingURL=AboutBox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AboutBox.js","sourceRoot":"","sources":["../../../../src/ui/components/AboutBox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AboutBox.js","sourceRoot":"","sources":["../../../../src/ui/components/AboutBox.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
4
4
  * Copyright 2025 Google LLC
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
- import { render } from '../../test-utils/render.js';
7
+ import { renderWithProviders } from '../../test-utils/render.js';
8
8
  import { AboutBox } from './AboutBox.js';
9
9
  import { describe, it, expect, vi } from 'vitest';
10
10
  // Mock GIT_COMMIT_INFO
@@ -22,7 +22,7 @@ describe('AboutBox', () => {
22
22
  ideClient: '',
23
23
  };
24
24
  it('renders with required props', () => {
25
- const { lastFrame } = render(_jsx(AboutBox, { ...defaultProps }));
25
+ const { lastFrame } = renderWithProviders(_jsx(AboutBox, { ...defaultProps }));
26
26
  const output = lastFrame();
27
27
  expect(output).toContain('About Gemini CLI');
28
28
  expect(output).toContain('1.0.0');
@@ -38,20 +38,20 @@ describe('AboutBox', () => {
38
38
  ['tier', 'Enterprise', 'Tier'],
39
39
  ])('renders optional prop %s', (prop, value, label) => {
40
40
  const props = { ...defaultProps, [prop]: value };
41
- const { lastFrame } = render(_jsx(AboutBox, { ...props }));
41
+ const { lastFrame } = renderWithProviders(_jsx(AboutBox, { ...props }));
42
42
  const output = lastFrame();
43
43
  expect(output).toContain(label);
44
44
  expect(output).toContain(value);
45
45
  });
46
46
  it('renders Auth Method with email when userEmail is provided', () => {
47
47
  const props = { ...defaultProps, userEmail: 'test@example.com' };
48
- const { lastFrame } = render(_jsx(AboutBox, { ...props }));
48
+ const { lastFrame } = renderWithProviders(_jsx(AboutBox, { ...props }));
49
49
  const output = lastFrame();
50
50
  expect(output).toContain('Logged in with Google (test@example.com)');
51
51
  });
52
52
  it('renders Auth Method correctly when not oauth', () => {
53
53
  const props = { ...defaultProps, selectedAuthType: 'api-key' };
54
- const { lastFrame } = render(_jsx(AboutBox, { ...props }));
54
+ const { lastFrame } = renderWithProviders(_jsx(AboutBox, { ...props }));
55
55
  const output = lastFrame();
56
56
  expect(output).toContain('api-key');
57
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AboutBox.test.js","sourceRoot":"","sources":["../../../../src/ui/components/AboutBox.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AboutBox.test.js","sourceRoot":"","sources":["../../../../src/ui/components/AboutBox.test.tsx"],"names":[],"mappings":"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"}
@@ -6,6 +6,3 @@
6
6
  export declare const shortAsciiLogo = "\n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\n \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\n \u2588\u2588\u2588 \u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\n\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\n\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\n\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\n \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\n \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\n";
7
7
  export declare const longAsciiLogo = "\n \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\n\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\n \u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\n \u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\n \u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\n \u2588\u2588\u2588\u2591 \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\n \u2588\u2588\u2588\u2591 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\n\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\n";
8
8
  export declare const tinyAsciiLogo = "\n \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \n\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\n \u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2591\u2591 \n \u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \n \u2588\u2588\u2588\u2591 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\n \u2588\u2588\u2588\u2591 \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \n \u2588\u2588\u2588\u2591 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \n\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \n";
9
- export declare const shortAsciiLogoIde = "\n \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\n \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\n \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591\n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2591\n \u2588\u2588\u2588\u2591\u2591 \u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2591 \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\n \u2588\u2588\u2588\u2591\u2591 \u2591\u2591\u2588\u2588\u2588\u2591\u2591 \u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591 \u2588\u2588\u2588\u2591\u2591\n \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591 \u2588\u2588\u2588\u2591\u2591\u2591\n \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\n \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\n \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\n";
10
- export declare const longAsciiLogoIde = "\n \u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\n \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\n \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591\n \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2591\n \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588\u2591 \u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2591 \u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\n \u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591 \u2591\u2591\u2588\u2588\u2588\u2591\u2591 \u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591 \u2588\u2588\u2588\u2591\u2591\n \u2591\u2591\u2591 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591 \u2588\u2588\u2588\u2591\u2591\u2591\n \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\n \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\n \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\n";
11
- export declare const tinyAsciiLogoIde = "\n \u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\n \u2591\u2591\u2591 \u2591\u2591\u2591 \u2591\u2591\u2591\n \u2591\u2591\u2591 \u2591\u2591\u2591\n \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\n \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588\u2591\u2591 \u2588\u2588\u2588\u2591\u2591\n \u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591 \u2591\u2591\u2591\n \u2591\u2591\u2591 \u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2591\n \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\n \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\n \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \n";
@@ -33,40 +33,4 @@ export const tinyAsciiLogo = `
33
33
  ███░ ░░█████████
34
34
  ░░░ ░░░░░░░░░
35
35
  `;
36
- export const shortAsciiLogoIde = `
37
- ░░░░░░░░░ ░░░░░░░░░░ ░░░░░░ ░░░░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░░░
38
- ░░░ ░░░ ░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░░ ░░░░░ ░░░
39
- ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░
40
- █████████░░██████████ ██████ ░░██████░█████░██████ ░░█████ █████░
41
- ███░░ ███░███░░ ██████ ░██████░░███░░██████ ░█████ ███░░
42
- ███░░ ░░███░░ ███░███ ███ ███░░███░░███░███ ███░░ ███░░
43
- ███░░░░████░██████░░░░░███░░█████ ███░░███░░███░░███ ███░░░ ███░░░
44
- ███ ███ ███ ███ ███ ███ ███ ███ ██████ ███
45
- ███ ███ ███ ███ ███ ███ ███ █████ ███
46
- █████████ ██████████ ███ ███ █████ ███ █████ █████
47
- `;
48
- export const longAsciiLogoIde = `
49
- ░░░ ░░░░░░░░░ ░░░░░░░░░░ ░░░░░░ ░░░░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░░░
50
- ░░░ ░░░ ░░░ ░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░░ ░░░░░ ░░░
51
- ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░
52
- ███ ░░░ █████████░░██████████ ██████ ░░██████░█████░██████ ░░█████ █████░
53
- ███ ░░░ ███░ ███░███░░ ██████ ░██████░░███░░██████ ░█████ ███░░
54
- ███ ███░░░ ░░███░░ ███░███ ███ ███░░███░░███░███ ███░░ ███░░
55
- ░░░ ███ ███ ░░░█████░██████░░░░░███░░█████ ███░░███░░███░░███ ███░░░ ███░░░
56
- ███ ███ ███ ███ ███ ███ ███ ███ ███ ██████ ███
57
- ███ ███ ███ ███ ███ ███ ███ ███ █████ ███
58
- ███ █████████ ██████████ ███ ███ █████ ███ █████ █████
59
- `;
60
- export const tinyAsciiLogoIde = `
61
- ░░░ ░░░░░░░░░
62
- ░░░ ░░░ ░░░
63
- ░░░ ░░░
64
- ███ ░░░ █████████░░░
65
- ███ ░░░ ███░░ ███░░
66
- ███ ███░░ ░░░
67
- ░░░ ███ ███░░░░████░
68
- ███ ███ ███
69
- ███ ███ ███
70
- ███ █████████
71
- `;
72
36
  //# sourceMappingURL=AsciiArt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsciiArt.js","sourceRoot":"","sources":["../../../../src/ui/components/AsciiArt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;CAS7B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;CAS5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;CAS5B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;CAWhC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAW/B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAW/B,CAAC"}
1
+ {"version":3,"file":"AsciiArt.js","sourceRoot":"","sources":["../../../../src/ui/components/AsciiArt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;CAS7B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;CAS5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;CAS5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type React from 'react';
7
+ import { type ChecklistItemData } from './ChecklistItem.js';
8
+ export interface ChecklistProps {
9
+ title: string;
10
+ items: ChecklistItemData[];
11
+ isExpanded: boolean;
12
+ toggleHint?: string;
13
+ }
14
+ export declare const Checklist: React.FC<ChecklistProps>;
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { theme } from '../semantic-colors.js';
4
+ import { useMemo } from 'react';
5
+ import { ChecklistItem } from './ChecklistItem.js';
6
+ const ChecklistTitleDisplay = ({ title, items, toggleHint }) => {
7
+ const score = useMemo(() => {
8
+ let total = 0;
9
+ let completed = 0;
10
+ for (const item of items) {
11
+ if (item.status !== 'cancelled') {
12
+ total += 1;
13
+ if (item.status === 'completed') {
14
+ completed += 1;
15
+ }
16
+ }
17
+ }
18
+ return `${completed}/${total} completed`;
19
+ }, [items]);
20
+ return (_jsxs(Box, { flexDirection: "row", columnGap: 2, height: 1, children: [_jsx(Text, { color: theme.text.primary, bold: true, "aria-label": `${title} list`, children: title }), _jsxs(Text, { color: theme.text.secondary, children: [score, toggleHint ? ` (${toggleHint})` : ''] })] }));
21
+ };
22
+ const ChecklistListDisplay = ({ items, }) => (_jsx(Box, { flexDirection: "column", "aria-role": "list", children: items.map((item, index) => (_jsx(ChecklistItem, { item: item, role: "listitem" }, `${index}-${item.label}`))) }));
23
+ export const Checklist = ({ title, items, isExpanded, toggleHint, }) => {
24
+ const inProgress = useMemo(() => items.find((item) => item.status === 'in_progress') || null, [items]);
25
+ const hasActiveItems = useMemo(() => items.some((item) => item.status === 'pending' || item.status === 'in_progress'), [items]);
26
+ if (items.length === 0 || (!isExpanded && !hasActiveItems)) {
27
+ return null;
28
+ }
29
+ return (_jsx(Box, { borderStyle: "single", borderBottom: false, borderRight: false, borderLeft: false, borderColor: theme.border.default, paddingLeft: 1, paddingRight: 1, children: isExpanded ? (_jsxs(Box, { flexDirection: "column", rowGap: 1, children: [_jsx(ChecklistTitleDisplay, { title: title, items: items, toggleHint: toggleHint }), _jsx(ChecklistListDisplay, { items: items })] })) : (_jsxs(Box, { flexDirection: "row", columnGap: 1, height: 1, children: [_jsx(Box, { flexShrink: 0, flexGrow: 0, children: _jsx(ChecklistTitleDisplay, { title: title, items: items, toggleHint: toggleHint }) }), inProgress && (_jsx(Box, { flexShrink: 1, flexGrow: 1, children: _jsx(ChecklistItem, { item: inProgress, wrap: "truncate" }) }))] })) }));
30
+ };
31
+ //# sourceMappingURL=Checklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checklist.js","sourceRoot":"","sources":["../../../../src/ui/components/Checklist.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { render } from '../../test-utils/render.js';
8
+ import { describe, it, expect } from 'vitest';
9
+ import { Checklist } from './Checklist.js';
10
+ describe('<Checklist />', () => {
11
+ const items = [
12
+ { status: 'completed', label: 'Task 1' },
13
+ { status: 'in_progress', label: 'Task 2' },
14
+ { status: 'pending', label: 'Task 3' },
15
+ { status: 'cancelled', label: 'Task 4' },
16
+ ];
17
+ it('renders nothing when list is empty', () => {
18
+ const { lastFrame } = render(_jsx(Checklist, { title: "Test List", items: [], isExpanded: true }));
19
+ expect(lastFrame()).toBe('');
20
+ });
21
+ it('renders nothing when collapsed and no active items', () => {
22
+ const inactiveItems = [
23
+ { status: 'completed', label: 'Task 1' },
24
+ { status: 'cancelled', label: 'Task 2' },
25
+ ];
26
+ const { lastFrame } = render(_jsx(Checklist, { title: "Test List", items: inactiveItems, isExpanded: false }));
27
+ expect(lastFrame()).toBe('');
28
+ });
29
+ it('renders summary view correctly (collapsed)', () => {
30
+ const { lastFrame } = render(_jsx(Checklist, { title: "Test List", items: items, isExpanded: false, toggleHint: "toggle me" }));
31
+ expect(lastFrame()).toMatchSnapshot();
32
+ });
33
+ it('renders expanded view correctly', () => {
34
+ const { lastFrame } = render(_jsx(Checklist, { title: "Test List", items: items, isExpanded: true, toggleHint: "toggle me" }));
35
+ expect(lastFrame()).toMatchSnapshot();
36
+ });
37
+ it('renders summary view without in-progress item if none exists', () => {
38
+ const pendingItems = [
39
+ { status: 'completed', label: 'Task 1' },
40
+ { status: 'pending', label: 'Task 2' },
41
+ ];
42
+ const { lastFrame } = render(_jsx(Checklist, { title: "Test List", items: pendingItems, isExpanded: false }));
43
+ expect(lastFrame()).toMatchSnapshot();
44
+ });
45
+ });
46
+ //# sourceMappingURL=Checklist.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checklist.test.js","sourceRoot":"","sources":["../../../../src/ui/components/Checklist.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,KAAK,GAAwB;QACjC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;QACxC,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC1C,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;QACtC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;KACzC,CAAC;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,SAAS,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAI,CAC7D,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,aAAa,GAAwB;YACzC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;YACxC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;SACzC,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,SAAS,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,GAAI,CACzE,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,SAAS,IACR,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,KAAK,EACjB,UAAU,EAAC,WAAW,GACtB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,SAAS,IACR,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,IAAI,EAChB,UAAU,EAAC,WAAW,GACtB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,YAAY,GAAwB;YACxC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;YACxC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;SACvC,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,SAAS,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,GAAI,CACxE,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type React from 'react';
7
+ export type ChecklistStatus = 'pending' | 'in_progress' | 'completed' | 'cancelled';
8
+ export interface ChecklistItemData {
9
+ status: ChecklistStatus;
10
+ label: string;
11
+ }
12
+ export interface ChecklistItemProps {
13
+ item: ChecklistItemData;
14
+ wrap?: 'truncate';
15
+ role?: 'listitem';
16
+ }
17
+ export declare const ChecklistItem: React.FC<ChecklistItemProps>;
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { theme } from '../semantic-colors.js';
4
+ import { checkExhaustive } from '../../utils/checks.js';
5
+ const ChecklistStatusDisplay = ({ status, }) => {
6
+ switch (status) {
7
+ case 'completed':
8
+ return (_jsx(Text, { color: theme.status.success, "aria-label": "Completed", children: "\u2713" }));
9
+ case 'in_progress':
10
+ return (_jsx(Text, { color: theme.text.accent, "aria-label": "In Progress", children: "\u00BB" }));
11
+ case 'pending':
12
+ return (_jsx(Text, { color: theme.text.secondary, "aria-label": "Pending", children: "\u2610" }));
13
+ case 'cancelled':
14
+ return (_jsx(Text, { color: theme.status.error, "aria-label": "Cancelled", children: "\u2717" }));
15
+ default:
16
+ checkExhaustive(status);
17
+ }
18
+ };
19
+ export const ChecklistItem = ({ item, wrap, role: ariaRole, }) => {
20
+ const textColor = (() => {
21
+ switch (item.status) {
22
+ case 'in_progress':
23
+ return theme.text.accent;
24
+ case 'completed':
25
+ case 'cancelled':
26
+ return theme.text.secondary;
27
+ case 'pending':
28
+ return theme.text.primary;
29
+ default:
30
+ checkExhaustive(item.status);
31
+ }
32
+ })();
33
+ const strikethrough = item.status === 'cancelled';
34
+ return (_jsxs(Box, { flexDirection: "row", columnGap: 1, "aria-role": ariaRole, children: [_jsx(ChecklistStatusDisplay, { status: item.status }), _jsx(Box, { flexShrink: 1, children: _jsx(Text, { color: textColor, wrap: wrap, strikethrough: strikethrough, children: item.label }) })] }));
35
+ };
36
+ //# sourceMappingURL=ChecklistItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChecklistItem.js","sourceRoot":"","sources":["../../../../src/ui/components/ChecklistItem.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAaxD,MAAM,sBAAsB,GAA0C,CAAC,EACrE,MAAM,GACP,EAAE,EAAE;IACH,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW;YACd,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,gBAAa,WAAW,uBAElD,CACR,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,gBAAa,aAAa,uBAEjD,CACR,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,gBAAa,SAAS,uBAEhD,CACR,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,gBAAa,WAAW,uBAEhD,CACR,CAAC;QACJ;YACE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,IAAI,EACJ,IAAI,EACJ,IAAI,EAAE,QAAQ,GACf,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;QACtB,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,aAAa;gBAChB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,KAAK,WAAW,CAAC;YACjB,KAAK,WAAW;gBACd,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,KAAK,SAAS;gBACZ,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B;gBACE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;IAElD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,SAAS,EAAE,CAAC,eAAa,QAAQ,aACxD,KAAC,sBAAsB,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAI,EAC/C,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,YAC7D,IAAI,CAAC,KAAK,GACN,GACH,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { render } from '../../test-utils/render.js';
8
+ import { describe, it, expect } from 'vitest';
9
+ import { ChecklistItem } from './ChecklistItem.js';
10
+ import { Box } from 'ink';
11
+ describe('<ChecklistItem />', () => {
12
+ it.each([
13
+ { status: 'pending', label: 'Do this' },
14
+ { status: 'in_progress', label: 'Doing this' },
15
+ { status: 'completed', label: 'Done this' },
16
+ { status: 'cancelled', label: 'Skipped this' },
17
+ ])('renders %s item correctly', (item) => {
18
+ const { lastFrame } = render(_jsx(ChecklistItem, { item: item }));
19
+ expect(lastFrame()).toMatchSnapshot();
20
+ });
21
+ it('truncates long text when wrap="truncate"', () => {
22
+ const item = {
23
+ status: 'in_progress',
24
+ label: 'This is a very long text that should be truncated because the wrap prop is set to truncate',
25
+ };
26
+ const { lastFrame } = render(_jsx(Box, { width: 30, children: _jsx(ChecklistItem, { item: item, wrap: "truncate" }) }));
27
+ expect(lastFrame()).toMatchSnapshot();
28
+ });
29
+ it('wraps long text by default', () => {
30
+ const item = {
31
+ status: 'in_progress',
32
+ label: 'This is a very long text that should wrap because the default behavior is wrapping',
33
+ };
34
+ const { lastFrame } = render(_jsx(Box, { width: 30, children: _jsx(ChecklistItem, { item: item }) }));
35
+ expect(lastFrame()).toMatchSnapshot();
36
+ });
37
+ });
38
+ //# sourceMappingURL=ChecklistItem.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChecklistItem.test.js","sourceRoot":"","sources":["../../../../src/ui/components/ChecklistItem.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAA0B,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,IAAI,CAAC;QACN,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;QACvC,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE;QAC9C,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;QAC3C,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE;KACxB,CAAC,CAAC,2BAA2B,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAsB;YAC9B,MAAM,EAAE,aAAa;YACrB,KAAK,EACH,4FAA4F;SAC/F,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,UAAU,GAAG,GACzC,CACP,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAsB;YAC9B,MAAM,EAAE,aAAa;YACrB,KAAK,EACH,oFAAoF;SACvF,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,GACzB,CACP,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,14 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box } from 'ink';
3
3
  import { ThemedGradient } from './ThemedGradient.js';
4
- import { shortAsciiLogo, longAsciiLogo, tinyAsciiLogo, shortAsciiLogoIde, longAsciiLogoIde, tinyAsciiLogoIde, } from './AsciiArt.js';
4
+ import { shortAsciiLogo, longAsciiLogo, tinyAsciiLogo } from './AsciiArt.js';
5
5
  import { getAsciiArtWidth } from '../utils/textUtils.js';
6
6
  import { useTerminalSize } from '../hooks/useTerminalSize.js';
7
- import { getTerminalProgram } from '../utils/terminalSetup.js';
8
7
  import { useSnowfall } from '../hooks/useSnowfall.js';
9
8
  export const Header = ({ customAsciiArt, version, nightly, }) => {
10
9
  const { columns: terminalWidth } = useTerminalSize();
11
- const isIde = getTerminalProgram();
12
10
  let displayTitle;
13
11
  const widthOfLongLogo = getAsciiArtWidth(longAsciiLogo);
14
12
  const widthOfShortLogo = getAsciiArtWidth(shortAsciiLogo);
@@ -16,13 +14,13 @@ export const Header = ({ customAsciiArt, version, nightly, }) => {
16
14
  displayTitle = customAsciiArt;
17
15
  }
18
16
  else if (terminalWidth >= widthOfLongLogo) {
19
- displayTitle = isIde ? longAsciiLogoIde : longAsciiLogo;
17
+ displayTitle = longAsciiLogo;
20
18
  }
21
19
  else if (terminalWidth >= widthOfShortLogo) {
22
- displayTitle = isIde ? shortAsciiLogoIde : shortAsciiLogo;
20
+ displayTitle = shortAsciiLogo;
23
21
  }
24
22
  else {
25
- displayTitle = isIde ? tinyAsciiLogoIde : tinyAsciiLogo;
23
+ displayTitle = tinyAsciiLogo;
26
24
  }
27
25
  const artWidth = getAsciiArtWidth(displayTitle);
28
26
  const title = useSnowfall(displayTitle);
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/ui/components/Header.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQtD,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAC5C,cAAc,EACd,OAAO,EACP,OAAO,GACR,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,IAAI,YAAY,CAAC;IACjB,MAAM,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE1D,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,GAAG,cAAc,CAAC;IAChC,CAAC;SAAM,IAAI,aAAa,IAAI,eAAe,EAAE,CAAC;QAC5C,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1D,CAAC;SAAM,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAAC;QAC7C,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAExC,OAAO,CACL,MAAC,GAAG,IACF,UAAU,EAAC,YAAY,EACvB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,CAAC,EACb,aAAa,EAAC,QAAQ,aAEtB,KAAC,cAAc,cAAE,KAAK,GAAkB,EACvC,OAAO,IAAI,CACV,KAAC,GAAG,IAAC,KAAK,EAAC,MAAM,EAAC,aAAa,EAAC,KAAK,EAAC,cAAc,EAAC,UAAU,YAC7D,MAAC,cAAc,oBAAG,OAAO,IAAkB,GACvC,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/ui/components/Header.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQtD,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAC5C,cAAc,EACd,OAAO,EACP,OAAO,GACR,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE,CAAC;IACrD,IAAI,YAAY,CAAC;IACjB,MAAM,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAE1D,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,GAAG,cAAc,CAAC;IAChC,CAAC;SAAM,IAAI,aAAa,IAAI,eAAe,EAAE,CAAC;QAC5C,YAAY,GAAG,aAAa,CAAC;IAC/B,CAAC;SAAM,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAAC;QAC7C,YAAY,GAAG,cAAc,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,aAAa,CAAC;IAC/B,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAExC,OAAO,CACL,MAAC,GAAG,IACF,UAAU,EAAC,YAAY,EACvB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,CAAC,EACb,aAAa,EAAC,QAAQ,aAEtB,KAAC,cAAc,cAAE,KAAK,GAAkB,EACvC,OAAO,IAAI,CACV,KAAC,GAAG,IAAC,KAAK,EAAC,MAAM,EAAC,aAAa,EAAC,KAAK,EAAC,cAAc,EAAC,UAAU,YAC7D,MAAC,cAAc,oBAAG,OAAO,IAAkB,GACvC,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -8,17 +8,13 @@ import { render } from '../../test-utils/render.js';
8
8
  import { describe, it, expect, vi, beforeEach } from 'vitest';
9
9
  import { Header } from './Header.js';
10
10
  import * as useTerminalSize from '../hooks/useTerminalSize.js';
11
- import { longAsciiLogo, longAsciiLogoIde } from './AsciiArt.js';
11
+ import { longAsciiLogo } from './AsciiArt.js';
12
12
  import * as semanticColors from '../semantic-colors.js';
13
- import * as terminalSetup from '../utils/terminalSetup.js';
14
13
  import { Text } from 'ink';
15
14
  vi.mock('../hooks/useTerminalSize.js');
16
15
  vi.mock('../hooks/useSnowfall.js', () => ({
17
16
  useSnowfall: vi.fn((art) => art),
18
17
  }));
19
- vi.mock('../utils/terminalSetup.js', () => ({
20
- getTerminalProgram: vi.fn(),
21
- }));
22
18
  vi.mock('ink-gradient', () => {
23
19
  const MockGradient = ({ children }) => (_jsx(_Fragment, { children: children }));
24
20
  return {
@@ -36,7 +32,6 @@ vi.mock('ink', async () => {
36
32
  describe('<Header />', () => {
37
33
  beforeEach(() => {
38
34
  vi.clearAllMocks();
39
- vi.mocked(terminalSetup.getTerminalProgram).mockReturnValue(null);
40
35
  });
41
36
  it('renders the long logo on a wide terminal', () => {
42
37
  vi.spyOn(useTerminalSize, 'useTerminalSize').mockReturnValue({
@@ -48,17 +43,6 @@ describe('<Header />', () => {
48
43
  children: longAsciiLogo,
49
44
  }), undefined);
50
45
  });
51
- it('uses the IDE logo when running in an IDE', () => {
52
- vi.spyOn(useTerminalSize, 'useTerminalSize').mockReturnValue({
53
- columns: 120,
54
- rows: 20,
55
- });
56
- vi.mocked(terminalSetup.getTerminalProgram).mockReturnValue('vscode');
57
- render(_jsx(Header, { version: "1.0.0", nightly: false }));
58
- expect(Text).toHaveBeenCalledWith(expect.objectContaining({
59
- children: longAsciiLogoIde,
60
- }), undefined);
61
- });
62
46
  it('renders custom ASCII art when provided', () => {
63
47
  const customArt = 'CUSTOM ART';
64
48
  render(_jsx(Header, { version: "1.0.0", nightly: false, customAsciiArt: customArt }));
@@ -66,18 +50,13 @@ describe('<Header />', () => {
66
50
  children: customArt,
67
51
  }), undefined);
68
52
  });
69
- it('renders custom ASCII art as is when running in an IDE', () => {
70
- const customArt = 'CUSTOM ART';
71
- vi.mocked(terminalSetup.getTerminalProgram).mockReturnValue('vscode');
72
- render(_jsx(Header, { version: "1.0.0", nightly: false, customAsciiArt: customArt }));
73
- expect(Text).toHaveBeenCalledWith(expect.objectContaining({
74
- children: customArt,
75
- }), undefined);
76
- });
77
53
  it('displays the version number when nightly is true', () => {
78
54
  render(_jsx(Header, { version: "1.0.0", nightly: true }));
79
55
  const textCalls = Text.mock.calls;
80
- expect(textCalls[1][0].children.join('')).toBe('v1.0.0');
56
+ const versionText = Array.isArray(textCalls[1][0].children)
57
+ ? textCalls[1][0].children.join('')
58
+ : textCalls[1][0].children;
59
+ expect(versionText).toBe('v1.0.0');
81
60
  });
82
61
  it('does not display the version number when nightly is false', () => {
83
62
  render(_jsx(Header, { version: "1.0.0", nightly: false }));