import Elementary struct Float: HTML { let id: String let shouldDisplay: Bool let body: C? let resetURL: String? init(id: String = "float") { self.id = id self.shouldDisplay = false self.resetURL = nil self.body = nil } init( id: String = "float", shouldDisplay: Bool, resetURL: String? = nil, @HTMLBuilder body: () -> C ) { self.id = id self.shouldDisplay = shouldDisplay self.resetURL = resetURL self.body = body() } private var classString: String { shouldDisplay ? "float" : "" } private var display: String { shouldDisplay ? "block" : "hidden" } var content: some HTML { div(.id(id), .class(classString), .style("display: \(display);")) { if let body, shouldDisplay { div(.class("btn-row")) { Button.close(id: id, resetURL: resetURL) } body } } } } extension Float: Sendable where C: Sendable {}