Show HTML pages in a task view beside the transcript

This commit is contained in:
Ian Gulliver
2026-10-21 17:52:04 -07:00
parent af9c750298
commit 585c8ba5f8
16 changed files with 600 additions and 102 deletions
+17
View File
@@ -5,6 +5,7 @@ enum SheetView {
case tab(TaskTab)
case image(NSImage)
case diagram(BoxLayout)
case page(Page)
}
struct Sheet {
@@ -81,6 +82,19 @@ private struct SheetPanel: View {
.lineLimit(1)
.truncationMode(.tail)
Spacer(minLength: 0)
if case .page(let page) = sheet.view, let url = page.url(store) {
Button {
NSWorkspace.shared.open(url)
} label: {
Text("↗ Browser")
.font(Fonts.font(13, weight: 700))
.foregroundStyle(accent)
.padding(.horizontal, 6)
.contentShape(Rectangle())
}
.buttonStyle(.plain)
.help("Open the page in the default browser")
}
Button {
store.sheet = nil
} label: {
@@ -115,6 +129,7 @@ private struct SheetPanel: View {
case .tab(let t): tabLabels[t]!
case .image: "Image"
case .diagram: "Diagram"
case .page(let page): page.title(store)
}
if !overLeft {
return "Lead · \(label)"
@@ -144,6 +159,8 @@ private struct SheetPanel: View {
DiagramViewer(layout: layout)
.id(layout.id)
.padding(12)
case .page(let page):
PageView(page: page)
}
}
}