-
Notifications
You must be signed in to change notification settings - Fork 1
/
badges.go
89 lines (81 loc) · 1.94 KB
/
badges.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package badges
import htmx "github.com/zeiss/fiber-htmx"
// BadgeProps represents the properties for a badge element.
type BadgeProps struct {
ClassNames htmx.ClassNames // The class names for the badge element.
}
// Badge generates a badge element based on the provided properties.
func Badge(p BadgeProps, children ...htmx.Node) htmx.Node {
return htmx.Span(
htmx.Merge(
htmx.ClassNames{
"badge": true,
},
),
htmx.Group(children...),
)
}
// Neutral generates a neutral badge element based on the provided properties.
func Neutral(p BadgeProps, children ...htmx.Node) htmx.Node {
return htmx.Span(
htmx.Merge(
htmx.ClassNames{
"badge": true,
"badge-neutral": true,
},
p.ClassNames,
),
htmx.Group(children...),
)
}
// Primary generates a primary badge element based on the provided properties.
func Primary(p BadgeProps, children ...htmx.Node) htmx.Node {
return htmx.Span(
htmx.Merge(
htmx.ClassNames{
"badge": true,
"badge-primary": true,
},
p.ClassNames,
),
htmx.Group(children...),
)
}
// Secondary generates a secondary badge element based on the provided properties.
func Secondary(p BadgeProps, children ...htmx.Node) htmx.Node {
return htmx.Span(
htmx.Merge(
htmx.ClassNames{
"badge": true,
"badge-secondary": true,
},
),
htmx.Group(children...),
)
}
// Accent generates an accent badge element based on the provided properties.
func Accent(p BadgeProps, children ...htmx.Node) htmx.Node {
return htmx.Span(
htmx.Merge(
htmx.ClassNames{
"badge": true,
"badge-accent": true,
},
p.ClassNames,
),
htmx.Group(children...),
)
}
// Ghost generates a ghost badge element based on the provided properties.
func Ghost(p BadgeProps, children ...htmx.Node) htmx.Node {
return htmx.Span(
htmx.Merge(
htmx.ClassNames{
"badge": true,
"badge-ghost": true,
},
p.ClassNames,
),
htmx.Group(children...),
)
}