import { defaultSettings, settingsMap, useSettings } from '../../settings.mjs'; import { themes } from '@strudel/codemirror'; import { ButtonGroup } from './Forms.jsx'; function Checkbox({ label, value, onChange }) { return ( ); } function SelectInput({ value, options, onChange }) { return ( ); } function NumberSlider({ value, onChange, step = 1, ...rest }) { return (
onChange(Number(e.target.value))} {...rest} /> onChange(Number(e.target.value))} />
); } function FormItem({ label, children }) { return (
{children}
); } const themeOptions = Object.fromEntries(Object.keys(themes).map((k) => [k, k])); const fontFamilyOptions = { monospace: 'monospace', BigBlueTerminal: 'BigBlueTerminal', x3270: 'x3270', PressStart: 'PressStart2P', galactico: 'galactico', 'we-come-in-peace': 'we-come-in-peace', FiraCode: 'FiraCode', 'FiraCode-SemiBold': 'FiraCode SemiBold', teletext: 'teletext', mode7: 'mode7', }; export function SettingsTab() { const { theme, keybindings, isLineNumbersDisplayed, isPatternHighlightingEnabled, isActiveLineHighlighted, isAutoCompletionEnabled, isTooltipEnabled, isLineWrappingEnabled, fontSize, fontFamily, panelPosition, } = useSettings(); return (
{/*
*/} settingsMap.setKey('theme', theme)} />
settingsMap.setKey('fontFamily', fontFamily)} /> settingsMap.setKey('fontSize', fontSize)} min={10} max={40} step={2} />
settingsMap.setKey('keybindings', keybindings)} items={{ codemirror: 'Codemirror', vim: 'Vim', emacs: 'Emacs', vscode: 'VSCode' }} > settingsMap.setKey('panelPosition', value)} items={{ bottom: 'Bottom', right: 'Right' }} > settingsMap.setKey('isLineNumbersDisplayed', cbEvent.target.checked)} value={isLineNumbersDisplayed} /> settingsMap.setKey('isActiveLineHighlighted', cbEvent.target.checked)} value={isActiveLineHighlighted} /> settingsMap.setKey('isPatternHighlightingEnabled', cbEvent.target.checked)} value={isPatternHighlightingEnabled} /> settingsMap.setKey('isAutoCompletionEnabled', cbEvent.target.checked)} value={isAutoCompletionEnabled} /> settingsMap.setKey('isTooltipEnabled', cbEvent.target.checked)} value={isTooltipEnabled} /> settingsMap.setKey('isLineWrappingEnabled', cbEvent.target.checked)} value={isLineWrappingEnabled} /> Try clicking the logo in the top left!
); }