feat: Initial commit
This commit is contained in:
14
Sources/ViewControllerLive/Live.swift
Normal file
14
Sources/ViewControllerLive/Live.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
import Dependencies
|
||||
import Elementary
|
||||
import Routes
|
||||
@_exported import ViewController
|
||||
|
||||
extension ViewController: DependencyKey {
|
||||
public static var liveValue: ViewController {
|
||||
.init(view: { _ in
|
||||
MainPage {
|
||||
h1 { "It works!" }
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
45
Sources/ViewControllerLive/Views/MainPage.swift
Normal file
45
Sources/ViewControllerLive/Views/MainPage.swift
Normal file
@@ -0,0 +1,45 @@
|
||||
import Elementary
|
||||
|
||||
struct MainPage<Inner: HTML>: SendableHTMLDocument where Inner: Sendable {
|
||||
let title = "HVAC Toolbox"
|
||||
let lang = "en-US"
|
||||
let inner: @Sendable () -> Inner
|
||||
|
||||
var head: some HTML {
|
||||
meta(.charset(.utf8))
|
||||
meta(.name("viewport"), .content("width=device-width, initial-scale=1.0"))
|
||||
link(.rel(.stylesheet), .href("/output.css"))
|
||||
link(
|
||||
.rel(.icon),
|
||||
.href("/favicon-32x32.png"),
|
||||
.init(name: "type", value: "image/png"),
|
||||
.init(name: "sizes", value: "32x32")
|
||||
)
|
||||
link(
|
||||
.rel(.icon),
|
||||
.href("/favicon-16x16.png"),
|
||||
.init(name: "type", value: "image/png"),
|
||||
.init(name: "sizes", value: "16x16")
|
||||
)
|
||||
link(
|
||||
.rel(.init(rawValue: "apple-touch-icon")),
|
||||
.href("/apple-touch-icon.png"),
|
||||
.init(name: "sizes", value: "180x180")
|
||||
)
|
||||
link(.rel(.init(rawValue: "mainifest")), .href("/site.webmanifest"))
|
||||
}
|
||||
|
||||
var body: some HTML {
|
||||
main {
|
||||
div(.class("min-h-screen bg-gradient-to-br from-green-50 to-blue-50")) {
|
||||
header(.class("header")) {
|
||||
h1(.class("text-red-600")) { title }
|
||||
}
|
||||
inner()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protocol SendableHTMLDocument: HTMLDocument, Sendable {}
|
||||
Reference in New Issue
Block a user