This repository has been archived on 2026-02-12. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
swift-duct-calc/Sources/Styleguide/Badge.swift
Michael Housh 9379774fae
All checks were successful
CI / Linux Tests (push) Successful in 5m23s
feat: Begin using Tagged types
2026-01-29 17:10:35 -05:00

38 lines
756 B
Swift

import Elementary
import Tagged
public struct Badge<Inner: HTML>: HTML, Sendable where Inner: Sendable {
let inner: Inner
public init(
@HTMLBuilder inner: () -> Inner
) {
self.inner = inner()
}
public var body: some HTML<HTMLTag.div> {
div(.class("badge badge-lg badge-outline")) {
inner
}
}
}
extension Badge where Inner == Number {
public init(number: Int) {
self.inner = Number(number)
}
public init(number: Double, digits: Int = 2) {
self.inner = Number(number, digits: digits)
}
public init<T>(number: Tagged<T, Int>) {
self.inner = Number(number.rawValue)
}
public init<T>(number: Tagged<T, Double>, digits: Int = 2) {
self.inner = Number(number.rawValue, digits: digits)
}
}