init go project

This commit is contained in:
juancwu 2025-10-10 08:14:33 -04:00
commit 5dde43e409
85 changed files with 16720 additions and 0 deletions

View file

@ -0,0 +1,48 @@
// templui component copybutton - version: v0.101.0 installed by templui v0.101.0
// 📚 Documentation: https://templui.io/docs/components/copy-button
package copybutton
import (
"git.juancwu.dev/juancwu/budgething/internal/ui/components/button"
"git.juancwu.dev/juancwu/budgething/internal/ui/components/icon"
"git.juancwu.dev/juancwu/budgething/internal/utils"
)
type Props struct {
ID string // Optional button ID
Class string // Custom CSS classes
Attrs templ.Attributes // Additional HTML attributes
TargetID string // Required - ID of element to copy from
}
templ CopyButton(props Props) {
{{ var p = props }}
if p.ID == "" {
{{ p.ID = "copybutton-" + utils.RandomID() }}
}
<div
data-copy-button
data-target-id={ p.TargetID }
class="inline-block"
>
@button.Button(button.Props{
ID: p.ID,
Class: utils.TwMerge("h-7 w-7 text-muted-foreground hover:text-accent-foreground", p.Class),
Attributes: p.Attrs,
Size: button.SizeIcon,
Variant: button.VariantGhost,
Type: button.TypeButton,
}) {
<span data-copy-icon-clipboard>
@icon.Clipboard(icon.Props{Size: 16})
</span>
<span data-copy-icon-check class="hidden">
@icon.Check(icon.Props{Size: 16})
</span>
}
</div>
}
templ Script() {
<script defer nonce={ templ.GetNonce(ctx) } src={ "/assets/js/copybutton.min.js?v=" + utils.ScriptVersion }></script>
}