@wrongstack/tui 0.305.0 → 0.306.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.
@@ -116,18 +116,20 @@ export declare function formatDiffStats(added: number, removed: number): string
116
116
  /**
117
117
  * Return the token list to render on a diff wash (`diffAddBg` /
118
118
  * `diffDelBg`). When `onWash` is false the input is returned unchanged —
119
- * plain-background rendering keeps the conventional dim/gray comment
120
- * look and there is no contrast reason to intervene.
119
+ * plain-background rendering keeps the conventional dim comment look and
120
+ * there is no contrast reason to intervene.
121
121
  *
122
- * When `onWash` is true, comment tokens (color `gray`, conventionally
123
- * `dim: true`) are promoted to a brighter foreground (`grayBright`) and
124
- * lose their dim flag. The diff wash is dark enough that `dim gray`
125
- * (`pastel.gray`) falls below WCAG AA contrast on either `theme.diffAddBg`
126
- * (ratio ≈ 2.91) or `theme.diffDelBg` (ratio ≈ 3.47) and reads as near-
127
- * invisible noise; `grayBright` clears both wash backgrounds (≥ 4.5) and
128
- * keeps the comment visually secondary without becoming unreadable.
129
- * Non-comment tokens pass through unchanged so the rest of the line keeps
130
- * its existing syntax palette on the wash.
122
+ * When `onWash` is true, comment tokens are re-pointed from the
123
+ * `syntax.comment` role to `syntax.commentOnWash` and lose their dim flag.
124
+ * `syntax.comment` resolves to `theme.textMuted`, which is chosen to recede
125
+ * against `theme.surface` and therefore falls below WCAG AA on either wash;
126
+ * `syntax.commentOnWash` resolves to `theme.textSecondary`, which clears both
127
+ * (≥ 4.5) while keeping the comment visually secondary. Because both sides
128
+ * are ROLES, the promotion follows `/theme` automatically instead of pinning
129
+ * one hardcoded grey for all 35 presets.
130
+ *
131
+ * Non-comment tokens pass through unchanged so the rest of the line keeps its
132
+ * syntax palette on the wash.
131
133
  *
132
134
  * Exported for unit testing — `renderTokens` calls it before mapping to
133
135
  * `<Text>` elements so the override logic itself stays a pure function.
@@ -15,7 +15,11 @@ interface SettingsPickerRowListProps {
15
15
  highlightSegments: (label: string) => readonly SettingsHighlightSegment[];
16
16
  windowStart: number;
17
17
  windowEnd: number;
18
+ filterWindowStart: number;
19
+ filterWindowEnd: number;
18
20
  }
19
- export declare function SettingsPickerRowList({ rows, field, fieldRowIndex, filterActive, rankedResults, highlightSegments, windowStart, windowEnd, }: SettingsPickerRowListProps): React.ReactElement;
21
+ export declare function deriveSettingsSectionFieldStarts(fieldRowIndex: readonly number[]): readonly number[];
22
+ export declare function buildVisibleSectionHeaders(rows: readonly SettingsPickerRowData[], fieldRowIndex: readonly number[], windowStart: number, windowEnd: number): Set<number>;
23
+ export declare function SettingsPickerRowList({ rows, field, fieldRowIndex, filterActive, rankedResults, highlightSegments, windowStart, windowEnd, filterWindowStart, filterWindowEnd, }: SettingsPickerRowListProps): React.ReactElement;
20
24
  export {};
21
25
  //# sourceMappingURL=settings-picker-row-list.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import type React from 'react';
2
2
  import type { AnimationStyleChoice, AuditLevel, CacheTtl, CompactorStrategy, ConfigScope, ContextMode, EnhanceLanguage, FleetChatVerbosityTui, LogLevel, ReasoningEffort, ReasoningMode, SettingsMode, StatuslineMode, TokenSavingTierTui } from './settings-picker-model.js';
3
+ import { type SettingsPickerRowData } from './settings-picker-row-list.js';
3
4
  export { SETTINGS_PICKER_JUMP_CHORDS, type SettingsPickerJumpChord, type SettingsPickerJumpMod, settingsPickerJumpByName, settingsPickerJumpField, settingsPickerJumpNames, } from './settings-picker-jumps.js';
4
5
  export * from './settings-picker-model.js';
5
6
  export interface SettingsPickerProps {
@@ -102,7 +103,19 @@ export interface SettingsPickerProps {
102
103
  * matching against row labels.
103
104
  */
104
105
  filter?: string | undefined;
106
+ /**
107
+ * Real rendered height of the Input box below the picker (rows).
108
+ * When omitted, defaults to 3 (single-line prompt + 2 border/padding
109
+ * rows). Passed from AppView so the picker's height budget accounts
110
+ * for multi-line input buffers instead of assuming a constant.
111
+ */
112
+ inputHeight?: number | undefined;
105
113
  hint?: string | undefined;
114
+ /** @internal Test seam for asserting the production row/header layout contract. */
115
+ onLayoutComputed?: ((layout: {
116
+ rows: readonly SettingsPickerRowData[];
117
+ fieldRowIndex: readonly number[];
118
+ }) => void) | undefined;
106
119
  }
107
- export declare function SettingsPicker({ field, filter, mode, delayMs, titleAnimation, yolo, fleetChat, chime, confirmExit, nextPrediction, featureMcp, featurePlugins, featureMemory, featureSkills, featureModelsRegistry, tokenSavingTier, allowOutsideProjectRoot, maxIterations, autoProceedMaxIterations, enhanceDelayMs, enhanceEnabled, enhanceLanguage, preRefineSeconds, indexOnStart, multiDiffSummaryThreshold, thinkingWord, thinkingWordEditing, thinkingWordDraft, reasoningMode, reasoningEffort, reasoningPreserve, cacheTtl, contextAutoCompact, contextStrategy, contextMode, maxConcurrent, logLevel, auditLevel, debugStream, statuslineMode, configScope, profileConfigPath, animationStyle, breakerEnabled, breakerAutoKillResetMs, showModelReasoning, showAgentSwarmPanel, showSageMemoryInject, sageMemoryInjectThreshold, nextStepsTool, readSymbols, panelPositions, hint, }: SettingsPickerProps): React.ReactElement;
120
+ export declare function SettingsPicker({ field, filter, mode, delayMs, titleAnimation, yolo, fleetChat, chime, confirmExit, nextPrediction, featureMcp, featurePlugins, featureMemory, featureSkills, featureModelsRegistry, tokenSavingTier, allowOutsideProjectRoot, maxIterations, autoProceedMaxIterations, enhanceDelayMs, enhanceEnabled, enhanceLanguage, preRefineSeconds, indexOnStart, multiDiffSummaryThreshold, thinkingWord, thinkingWordEditing, thinkingWordDraft, reasoningMode, reasoningEffort, reasoningPreserve, cacheTtl, contextAutoCompact, contextStrategy, contextMode, maxConcurrent, logLevel, auditLevel, debugStream, statuslineMode, configScope, profileConfigPath, animationStyle, breakerEnabled, breakerAutoKillResetMs, showModelReasoning, showAgentSwarmPanel, showSageMemoryInject, sageMemoryInjectThreshold, nextStepsTool, readSymbols, panelPositions, inputHeight, hint, onLayoutComputed, }: SettingsPickerProps): React.ReactElement;
108
121
  //# sourceMappingURL=settings-picker.d.ts.map