diff --git a/argument.go b/argument.go index 26f763f..d55aa86 100644 --- a/argument.go +++ b/argument.go @@ -19,7 +19,7 @@ func (args Arguments) GetAttributes() Attributes { attributes := Attributes{} for _, arg := range args { switch t := arg.(type) { - case Attribute: + case attribute: attributes[t.name] = t } } diff --git a/attribute.go b/attribute.go index fb39307..8b4e021 100644 --- a/attribute.go +++ b/attribute.go @@ -4,15 +4,15 @@ import ( "fmt" ) -type Attribute struct { +type attribute struct { name string value string mergeFn func(v1, v2 string) string noEscape bool } -func Attr(name, value string) Attribute { - return Attribute{ +func Attr(name, value string) attribute { + return attribute{ name: name, value: value, } @@ -20,7 +20,7 @@ func Attr(name, value string) Attribute { // Renders the attribute // E.g. with value: `key="value"`, boolean: `enabled` -func (a Attribute) String() string { +func (a attribute) String() string { if a.value == "" { return a.name } @@ -33,24 +33,24 @@ func (a Attribute) String() string { //return fmt.Sprintf(`%s="%s"`, a.name, template.JSEscapeString(a.value)) } -func WithoutEscaping(a Attribute) Attribute { +func WithoutEscaping(a attribute) attribute { a.noEscape = true return a } // What to do when the attribute already exists -func WithMergeStrategy(a Attribute, mfn func(v1, v2 string) string) Attribute { +func WithMergeStrategy(a attribute, mfn func(v1, v2 string) string) attribute { a.mergeFn = mfn return a } -func (a Attribute) Merge(v1, v2 string) string { +func (a attribute) Merge(v1, v2 string) string { if a.mergeFn == nil { return v2 } return a.mergeFn(v1, v2) } -func (a Attribute) ArgumentType() ArgumentType { +func (a attribute) ArgumentType() ArgumentType { return ArgumentAttribute } diff --git a/attributes.go b/attributes.go index b7ded2f..50f3f42 100644 --- a/attributes.go +++ b/attributes.go @@ -5,9 +5,9 @@ import ( "strings" ) -type Attributes map[string]Attribute +type Attributes map[string]attribute -func MergeAttributes(a Attributes, attrs []Attribute) Attributes { +func MergeAttributes(a Attributes, attrs []attribute) Attributes { for _, v := range attrs { a.Set(v.name, v) } @@ -15,7 +15,7 @@ func MergeAttributes(a Attributes, attrs []Attribute) Attributes { } // Sets or merges (according to merge strategy) an attribute -func (a Attributes) Set(k string, newAttribute Attribute) { +func (a Attributes) Set(k string, newAttribute attribute) { // If attribute already exists, we need to merge it if existing, ok := (a)[k]; ok { @@ -30,11 +30,11 @@ func (a Attributes) Set(k string, newAttribute Attribute) { } func (a Attributes) String() string { - var attributes = make([]Attribute, len(a)) + var attributes = make([]attribute, len(a)) for _, attr := range a { attributes = append(attributes, attr) } - slices.SortFunc(attributes, func(a, b Attribute) int { + slices.SortFunc(attributes, func(a, b attribute) int { if a.name == "id" { return -1 } diff --git a/html.go b/html.go index 195fc98..53fd700 100644 --- a/html.go +++ b/html.go @@ -7,12 +7,12 @@ import ( "github.com/Oudwins/tailwind-merge-go/pkg/twmerge" ) -func Data(k, v string) Attribute { +func Data(k, v string) attribute { return Attr("data-"+k, v) } // Use this if you don't like default Class behavior of merging classes -func AttrClass(v ...string) Attribute { +func AttrClass(v ...string) attribute { values := strings.Join(v, " ") return WithMergeStrategy( Attr("class", values), @@ -30,7 +30,7 @@ func AttrClass(v ...string) Attribute { } // Class attribute with tailwind-merge functionality -func Class(v ...string) Attribute { +func Class(v ...string) attribute { values := strings.Join(v, " ") a := Attr("class", twmerge.Merge(values)) WithMergeStrategy(a, func(s1, s2 string) string { diff --git a/html_attributes_gen.go b/html_attributes_gen.go index 18a1825..3235bb5 100644 --- a/html_attributes_gen.go +++ b/html_attributes_gen.go @@ -3,51 +3,51 @@ package humle // Attributes -func ID(v string) Attribute { +func ID(v string) attribute { return Attr("id", v) } -func Href(v string) Attribute { +func Href(v string) attribute { return Attr("href", v) } -func Alt(v string) Attribute { +func Alt(v string) attribute { return Attr("alt", v) } -func Placeholder(v string) Attribute { +func Placeholder(v string) attribute { return Attr("placeholder", v) } -func Src(v string) Attribute { +func Src(v string) attribute { return Attr("src", v) } -func Rel(v string) Attribute { +func Rel(v string) attribute { return Attr("rel", v) } -func Name(v string) Attribute { +func Name(v string) attribute { return Attr("name", v) } -func Content(v string) Attribute { +func Content(v string) attribute { return Attr("content", v) } -func Charset(v string) Attribute { +func Charset(v string) attribute { return Attr("charset", v) } -func Lang(v string) Attribute { +func Lang(v string) attribute { return Attr("lang", v) } -func Type(v string) Attribute { +func Type(v string) attribute { return Attr("type", v) } -func Value(v string) Attribute { +func Value(v string) attribute { return Attr("value", v) }