init go project
This commit is contained in:
commit
5dde43e409
85 changed files with 16720 additions and 0 deletions
48
internal/ui/components/copybutton/copybutton.templ
Normal file
48
internal/ui/components/copybutton/copybutton.templ
Normal 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>
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue