feat: Adds styleguide, working on result view container.

This commit is contained in:
2025-02-26 17:08:13 -05:00
parent cce99ce5e9
commit a15e54e0e4
16 changed files with 569 additions and 122 deletions

View File

@@ -0,0 +1,54 @@
import Elementary
public struct LabeledContent<Label: HTML, Body: HTML>: HTML {
let body: Body
let label: Label
public init(
@HTMLBuilder body: () -> Body,
@HTMLBuilder label: () -> Label
) {
self.body = body()
self.label = label()
}
public var content: some HTML<HTMLTag.div> {
div {
label
body
}
}
}
extension LabeledContent: Sendable where Label: Sendable, Body: Sendable {}
// MARK: - Forms
public extension LabeledContent where Label == InputLabel<HTMLText>, Body == Input {
init(
label: String,
input: () -> Body
) {
self.init {
input()
} label: {
InputLabel(for: input().id) { HTMLText(label) }
}
}
}
public extension LabeledContent where Label == InputLabel<HTMLText>, Body == _AttributedElement<Input> {
init(
label: String,
input: () -> Body
) {
self.init {
input()
} label: {
InputLabel(for: input().content.id) { HTMLText(label) }
}
}
}