From 82ffd4e8f4bc29ede5c9593772aae461abadd1c4 Mon Sep 17 00:00:00 2001 From: Andrew Pareles Date: Thu, 6 Mar 2025 03:34:57 -0800 Subject: [PATCH] slider styles --- .../react/src/sidebar-tsx/SidebarChat.tsx | 78 ++++++++++++++++--- .../void/browser/react/src/util/inputs.tsx | 26 +++++-- .../src/void-settings-tsx/ModelDropdown.tsx | 2 +- .../react/src/void-settings-tsx/Settings.tsx | 2 +- 4 files changed, 90 insertions(+), 18 deletions(-) diff --git a/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx b/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx index b86cdd22..edccdd8c 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/sidebar-tsx/SidebarChat.tsx @@ -165,16 +165,14 @@ const ReasoningOptionDropdown = () => { let toggleButton: React.ReactNode = null if (canToggleReasoning) { - toggleButton = -
- {isEnabled ? 'Thinking' : 'Thinking'} - { voidSettingsService.setOptionsOfModelSelection(modelSelection.providerName, modelSelection.modelName, { reasoningEnabled: newVal }) }} - /> -
- + toggleButton =
+ {isEnabled ? 'Thinking' : 'Thinking'} + { voidSettingsService.setOptionsOfModelSelection(modelSelection.providerName, modelSelection.modelName, { reasoningEnabled: newVal }) }} + /> +
} let slider: React.ReactNode = null @@ -205,6 +203,66 @@ const ReasoningOptionDropdown = () => { +// SLIDER ONLY: +// const ReasoningOptionDropdown = () => { +// const accessor = useAccessor() + +// const voidSettingsService = accessor.get('IVoidSettingsService') +// const voidSettingsState = useSettingsState() + +// const modelSelection = voidSettingsState.modelSelectionOfFeature['Ctrl+L'] +// if (!modelSelection) return null + +// const { modelName, providerName } = modelSelection +// const { canToggleReasoning, reasoningBudgetOptions } = getModelCapabilities(providerName, modelName).supportsReasoningOutput || {} + +// const defaultEnabledVal = canToggleReasoning ? true : false +// const isEnabled = voidSettingsState.optionsOfModelSelection[modelSelection.providerName]?.[modelSelection.modelName]?.reasoningEnabled ?? defaultEnabledVal + +// if (canToggleReasoning && !reasoningBudgetOptions) { // if it's just a on/off toggle without a power slider (no models right now) +// return
+// {isEnabled ? 'Thinking' : 'Thinking'} +// { }} +// /> +//
+// } + +// if (reasoningBudgetOptions?.type === 'slider') { // if it's a slider +// const { min: min_, max, default: defaultVal } = reasoningBudgetOptions + +// const value = voidSettingsState.optionsOfModelSelection[modelSelection.providerName]?.[modelSelection.modelName]?.reasoningBudget ?? defaultVal + +// const nSteps = 8 // only used in calculating stepSize, stepSize is what actually matters +// const stepSize = Math.round((max - min_) / 8) +// const min = canToggleReasoning ? min_ - stepSize : min_ + +// return
+// Thinking +// { +// const disabled = newVal === min && canToggleReasoning +// voidSettingsService.setOptionsOfModelSelection(modelSelection.providerName, modelSelection.modelName, { reasoningEnabled: !disabled, reasoningBudget: newVal }) +// }} +// /> +// {isEnabled ? `${value} tokens` : 'Thinking disabled'} +//
+// } + +// return null +// } + + + + interface VoidChatAreaProps { // Required diff --git a/src/vs/workbench/contrib/void/browser/react/src/util/inputs.tsx b/src/vs/workbench/contrib/void/browser/react/src/util/inputs.tsx index f5a45795..00a1fbbb 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/util/inputs.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/util/inputs.tsx @@ -211,8 +211,6 @@ export const VoidInputBox = ({ onChangeText, onCreateInstance, inputBoxRef, plac /> }; - - export const VoidSlider = ({ value, onChange, @@ -300,11 +298,23 @@ export const VoidSlider = ({ style={{ width, // Add horizontal padding equal to half the thumb width - paddingLeft: thumbSizePx / 2, - paddingRight: thumbSizePx / 2 + // paddingLeft: thumbSizePx / 2, + // paddingRight: thumbSizePx / 2 }}> {/* Track container with adjusted width */}
+ {/* Invisible wider clickable area that sits above the track */} +
+ {/* Track */}
{ if (disabled) return; @@ -361,6 +371,7 @@ export const VoidSlider = ({ + export const VoidSwitch = ({ value, onChange, @@ -370,7 +381,7 @@ export const VoidSwitch = ({ value: boolean; onChange: (value: boolean) => void; disabled?: boolean; - size?: 'xs' | 'sm' | 'sm+' | 'md'; + size?: 'xxs' | 'xs' | 'sm' | 'sm+' | 'md'; }) => { return (