import { Difficulty, Instrument } from 'scan-chart' import { ThemeColors } from './interfaces/theme.interface' export const themes = [ 'business', 'dark', 'dim', 'night', 'sunset', 'synthwave', 'aqua', 'emerald', 'lemonade', 'nord', 'valentine', 'winter', 'aren', 'froogs', ] as const /** * Represents Bridge's user settings. */ export interface Settings { downloadVideos: boolean // If background videos should be downloaded theme: typeof themes[number] // The name of the currently enabled UI theme customTheme: ThemeColors | null // The colors of a custom theme customThemePath: string | null // The last folder that contained the `customTheme`'s file libraryPath: string | undefined // The path to the user's library issueScanPath: string | undefined // The path to use when scanning for issues spreadsheetOutputPath: string | undefined // The path to use when saving generated issues chartFolderName: string // The relative path and name of the chart that is saved in `libraryPath` isSng: boolean // If the chart should be downloaded as a .sng file or as a chart folder isCompactTable: boolean // If the search result table should have reduced padding visibleColumns: string[] // The search result columns to include zoomFactor: number // How much the display should be zoomed instrument: Instrument | null // The instrument selected by default, or `null` for "Any Instrument" difficulty: Difficulty | null // The difficulty selected by default, or `null` for "Any Difficulty" volume: number // The volume of the chart preview (0-100) } /** * Bridge's default user settings. */ export const defaultSettings: Settings = { downloadVideos: true, theme: 'dark', customTheme: null, customThemePath: null, libraryPath: undefined, issueScanPath: undefined, spreadsheetOutputPath: undefined, chartFolderName: '{artist} - {name} ({charter})', isSng: false, isCompactTable: false, visibleColumns: ['artist', 'album', 'genre', 'year'], zoomFactor: 1, instrument: 'guitar', difficulty: null, volume: 50, }