import SwiftUI struct PageSettingsDetailView: View { @Environment(\.language) private var language @EnvironmentObject private var content: Content var body: some View { ScrollView { VStack(alignment: .leading) { DetailTitle( title: "Page Settings", text: "Change the way pages are displayed") IntegerPropertyView( title: "Content Width", value: $content.settings.pages.contentWidth, footer: "The maximum width of the content in pages (in pixels)") IntegerPropertyView( title: "Fullscreen Image Width", value: $content.settings.pages.largeImageWidth, footer: "The maximum width of images that are diplayed fullscreen") IntegerPropertyView( title: "Page Link Image Width", value: $content.settings.pages.pageLinkImageSize, footer: "The maximum width of images diplayed as thumbnails on page links") FilePropertyView( title: "Default CSS File", footer: "The CSS file containing the styling of all pages", selectedFile: $content.settings.pages.defaultCssFile, allowedType: .asset) FilePropertyView( title: "Code Highlighting File", footer: "The JavaScript file to provide syntax highlighting of code blocks", selectedFile: $content.settings.pages.codeHighlightingJsFile, allowedType: .asset) FilePropertyView( title: "Audio Player CSS File", footer: "The CSS file to provide the style for the audio player", selectedFile: $content.settings.pages.audioPlayerCssFile, allowedType: .asset) FilePropertyView( title: "Audio Player JavaScript File", footer: "The CSS file to provide the functionality for the audio player", selectedFile: $content.settings.pages.audioPlayerJsFile, allowedType: .asset) FilePropertyView( title: "3D Model Viewer File", footer: "The JavaScript file to provide the functionality for the 3D model viewer", selectedFile: $content.settings.pages.modelViewerJsFile, allowedType: .asset) FilePropertyView( title: "Image Comparison CSS File", footer: "The CSS file to provide image comparisons", selectedFile: $content.settings.pages.imageCompareCssFile, allowedType: .asset) FilePropertyView( title: "Image Comparison JaveScript File", footer: "The JavaScript file to provide image comparisons", selectedFile: $content.settings.pages.imageCompareJsFile, allowedType: .asset) } .padding() } } } #Preview { PageSettingsDetailView() .environmentObject(Content.mock) .padding() }