chore: move templui utils into ui folder
This commit is contained in:
parent
5de84c6de7
commit
a3f4661456
44 changed files with 50 additions and 55 deletions
|
|
@ -4,7 +4,7 @@ package accordion
|
|||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Props struct {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/alert
|
||||
package alert
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Variant string
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/aspect-ratio
|
||||
package aspectratio
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Ratio string
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/avatar
|
||||
package avatar
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/badge
|
||||
package badge
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Variant string
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package breadcrumb
|
|||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Props struct {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package button
|
||||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package calendar
|
|||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/card
|
||||
package card
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package carousel
|
|||
import (
|
||||
"fmt"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/charts
|
||||
package chart
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Variant string
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package checkbox
|
|||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Props struct {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/code
|
||||
package code
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/collapsible
|
||||
package collapsible
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package copybutton
|
|||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/button"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Props struct {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import (
|
|||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/card"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/popover"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package dialog
|
|||
import (
|
||||
"context"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type contextKey string
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package dropdown
|
|||
import (
|
||||
"context"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/popover"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Placement = popover.Placement
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package form
|
|||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/label"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type MessageVariant string
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package input
|
|||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/button"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Type string
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package inputotp
|
||||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/label
|
||||
package label
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package pagination
|
|||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/button"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Props struct {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package popover
|
||||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package progress
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Size string
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/radio
|
||||
package radio
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package rating
|
|||
import (
|
||||
"fmt"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/input"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/popover"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/separator
|
||||
package separator
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Orientation string
|
||||
type Decoration string
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package sheet
|
|||
import (
|
||||
"context"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/dialog"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type contextKey string
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package sidebar
|
||||
|
||||
import "context"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/components/button"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/components/sheet"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/skeleton
|
||||
package skeleton
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package slider
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Props struct {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/switch
|
||||
package switchcomp
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// 📚 Documentation: https://templui.io/docs/components/table
|
||||
package table
|
||||
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
import "git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
|
||||
type Props struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package tabs
|
|||
|
||||
import (
|
||||
"context"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Props struct {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package tagsinput
|
|||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/badge"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/input"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Props struct {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package textarea
|
||||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import (
|
|||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/card"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/popover"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ package toast
|
|||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/button"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/icon"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package tooltip
|
|||
|
||||
import (
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/components/popover"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/utils"
|
||||
"git.juancwu.dev/juancwu/budgit/internal/ui/utils"
|
||||
)
|
||||
|
||||
type Position string
|
||||
|
|
|
|||
74
internal/ui/utils/templui.go
Normal file
74
internal/ui/utils/templui.go
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
// templui util templui.go - version: v0.101.0 installed by templui v0.101.0
|
||||
package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"crypto/rand"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
|
||||
twmerge "github.com/Oudwins/tailwind-merge-go"
|
||||
)
|
||||
|
||||
// TwMerge combines Tailwind classes and resolves conflicts.
|
||||
// Example: "bg-red-500 hover:bg-blue-500", "bg-green-500" → "hover:bg-blue-500 bg-green-500"
|
||||
func TwMerge(classes ...string) string {
|
||||
return twmerge.Merge(classes...)
|
||||
}
|
||||
|
||||
// TwIf returns value if condition is true, otherwise an empty value of type T.
|
||||
// Example: true, "bg-red-500" → "bg-red-500"
|
||||
func If[T comparable](condition bool, value T) T {
|
||||
var empty T
|
||||
if condition {
|
||||
return value
|
||||
}
|
||||
return empty
|
||||
}
|
||||
|
||||
// TwIfElse returns trueValue if condition is true, otherwise falseValue.
|
||||
// Example: true, "bg-red-500", "bg-gray-300" → "bg-red-500"
|
||||
func IfElse[T any](condition bool, trueValue T, falseValue T) T {
|
||||
if condition {
|
||||
return trueValue
|
||||
}
|
||||
return falseValue
|
||||
}
|
||||
|
||||
// MergeAttributes combines multiple Attributes into one.
|
||||
// Example: MergeAttributes(attr1, attr2) → combined attributes
|
||||
func MergeAttributes(attrs ...templ.Attributes) templ.Attributes {
|
||||
merged := templ.Attributes{}
|
||||
for _, attr := range attrs {
|
||||
for k, v := range attr {
|
||||
merged[k] = v
|
||||
}
|
||||
}
|
||||
return merged
|
||||
}
|
||||
|
||||
// RandomID generates a random ID string.
|
||||
// Example: RandomID() → "id-1a2b3c"
|
||||
func RandomID() string {
|
||||
return fmt.Sprintf("id-%s", rand.Text())
|
||||
}
|
||||
|
||||
// ScriptVersion is a timestamp generated at app start for cache busting.
|
||||
// Used in Script() templates to append ?v=<timestamp> to script URLs.
|
||||
var ScriptVersion = fmt.Sprintf("%d", time.Now().Unix())
|
||||
|
||||
// ScriptURL generates cache-busted script URLs.
|
||||
// Override this to use custom cache busting (CDN, content hashing, etc.)
|
||||
//
|
||||
// Example override in your app:
|
||||
//
|
||||
// func init() {
|
||||
// utils.ScriptURL = func(path string) string {
|
||||
// return myAssetManifest.GetURL(path)
|
||||
// }
|
||||
// }
|
||||
var ScriptURL = func(path string) string {
|
||||
return path + "?v=" + ScriptVersion
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue