mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
* feat: add authentication middleware * feat: add REST API endpoints for database interactions * refactor: move DiscoveryDocument Pkl schema to oidc module * fix: replace sonrd with test_node.sh * feat: use NFT keeper to mint DID namespace NFT * refactor: move NFT class configuration to types * feat: add GlobalIntegrity genesis state * fix: ensure GlobalIntegrity is initialized in genesis * refactor: update all references to transactions module * refactor: improve genesis state struct * chore(did): update discovery endpoint to reflect base url * feat: remove unused context cache and client code * refactor: remove middleware dependency from keeper * feat: Add new query handlers for DID module * feat: Implement unimplemented params queries * feat: add support for first-party caveats * refactor: move motr command to cmd directory * feat: add support for GitHub releases * fix(motr): build app.wasm for motr package * feat: add card component * feat: add IndexedDB support for persistent storage * feat: Add Row and Column components * feat: add and components * refactor: improve button component * refactor: remove unnecessary button parameter in renderButton * feat: add vault service endpoint * feat: add input component
48 lines
898 B
Go
48 lines
898 B
Go
package elements
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/a-h/templ"
|
|
)
|
|
|
|
type Icon interface {
|
|
Render() templ.Component
|
|
}
|
|
|
|
type Variant interface {
|
|
Attributes() templ.Attributes
|
|
}
|
|
|
|
func clsxMerge(variants ...Variant) templ.Attributes {
|
|
combinedAttrs := templ.Attributes{}
|
|
var classElements []string
|
|
|
|
for _, variant := range variants {
|
|
attrs := variant.Attributes()
|
|
if class, ok := attrs["class"].(string); ok {
|
|
classElements = append(classElements, strings.Fields(class)...)
|
|
}
|
|
for key, value := range attrs {
|
|
if key != "class" {
|
|
combinedAttrs[key] = value
|
|
}
|
|
}
|
|
}
|
|
|
|
if len(classElements) > 0 {
|
|
combinedAttrs["class"] = strings.Join(classElements, " ")
|
|
}
|
|
return combinedAttrs
|
|
}
|
|
|
|
func clsxBuilder(classes ...string) templ.Attributes {
|
|
if len(classes) == 0 {
|
|
return templ.Attributes{}
|
|
}
|
|
class := strings.Join(classes, " ")
|
|
return templ.Attributes{
|
|
"class": class,
|
|
}
|
|
}
|