init - add project files

This commit is contained in:
2025-03-06 23:54:11 -05:00
commit e724ff1120
1363 changed files with 897467 additions and 0 deletions

View File

@@ -0,0 +1,226 @@
// Package htmx provides HTMX attributes and helpers for gomponents.
// See https://htmx.org/
package htmx
import (
"io"
g "maragu.dev/gomponents"
)
// Boost to add or remove progressive enhancement for links and forms.
// See https://htmx.org/attributes/hx-boost
func Boost(v string) g.Node {
return attr("boost", v)
}
// Get from the specified URL.
// See https://htmx.org/attributes/hx-get
func Get(url string) g.Node {
return attr("get", url)
}
// On handles any event with a script inline.
// See https://htmx.org/attributes/hx-on
func On(name string, v string) g.Node {
return &rawAttr{name: "on:" + name, value: v}
}
// Post to the specified URL.
// See https://htmx.org/attributes/hx-post
func Post(url string) g.Node {
return attr("post", url)
}
// PushURL into the browser location bar, creating a new history entry.
// See https://htmx.org/attributes/hx-push-url
func PushURL(v string) g.Node {
return attr("push-url", v)
}
// Select content to swap in from a response.
// See https://htmx.org/attributes/hx-select
func Select(v string) g.Node {
return attr("select", v)
}
// SelectOOB content to swap in from a response, out of band (somewhere other than the target).
// See https://htmx.org/attributes/hx-select-oob
func SelectOOB(v string) g.Node {
return attr("select-oob", v)
}
// Swap controls how content is swapped in.
// See https://htmx.org/attributes/hx-swap
func Swap(v string) g.Node {
return attr("swap", v)
}
// SwapOOB marks content in a response to be out of band (should swap in somewhere other than the target).
// See https://htmx.org/attributes/hx-swap-oob
func SwapOOB(v string) g.Node {
return attr("swap-oob", v)
}
// Target specifies the target element to be swapped.
// See https://htmx.org/attributes/hx-target
func Target(v string) g.Node {
return attr("target", v)
}
// Trigger specifies the event that triggers the request.
// See https://htmx.org/attributes/hx-trigger
func Trigger(v string) g.Node {
return attr("trigger", v)
}
// Vals adds values to the parameters to submit with the request (JSON-formatted).
// See https://htmx.org/attributes/hx-vals
func Vals(v string) g.Node {
return attr("vals", v)
}
// Confirm shows a confirm() dialog before issuing a request.
// See https://htmx.org/attributes/hx-confirm
func Confirm(v string) g.Node {
return attr("confirm", v)
}
// Delete will issue a DELETE to the specified URL and swap the HTML into the DOM using a swap strategy.
// See https://htmx.org/attributes/hx-delete
func Delete(v string) g.Node {
return attr("delete", v)
}
// Disable htmx processing for the given node and any children nodes.
// See https://htmx.org/attributes/hx-disable
func Disable(v string) g.Node {
return attr("disable", v)
}
// Disable element until htmx request completes.
// See https://htmx.org/attributes/hx-disabled-elt/
func DisabledElt(v string) g.Node {
return attr("disabled-elt", v)
}
// Disinherit controls and disables automatic attribute inheritance for child nodes.
// See https://htmx.org/attributes/hx-disinherit
func Disinherit(v string) g.Node {
return attr("disinherit", v)
}
// Encoding changes the request encoding type.
// See https://htmx.org/attributes/hx-encoding
func Encoding(v string) g.Node {
return attr("encoding", v)
}
// Ext sets extensions to use for this element.
// See https://htmx.org/attributes/hx-ext
func Ext(v string) g.Node {
return attr("ext", v)
}
// Headers adds to the headers that will be submitted with the request.
// See https://htmx.org/attributes/hx-headers
func Headers(v string) g.Node {
return attr("headers", v)
}
// History prevents sensitive data being saved to the history cache.
// See https://htmx.org/attributes/hx-history
func History(v string) g.Node {
return attr("history", v)
}
// HistoryElt sets the element to snapshot and restore during history navigation.
// See https://htmx.org/attributes/hx-history-elt
func HistoryElt(v string) g.Node {
return attr("history-elt", v)
}
// Include additional data in requests.
// See https://htmx.org/attributes/hx-include
func Include(v string) g.Node {
return attr("include", v)
}
// Indicator sets the element to put the htmx-request class on during the request.
// See https://htmx.org/attributes/hx-indicator
func Indicator(v string) g.Node {
return attr("indicator", v)
}
// Params filters the parameters that will be submitted with a request.
// See https://htmx.org/attributes/hx-params
func Params(v string) g.Node {
return attr("params", v)
}
// Patch issues a PATCH to the specified URL.
// See https://htmx.org/attributes/hx-patch
func Patch(v string) g.Node {
return attr("patch", v)
}
// Preserve specifies elements to keep unchanged between requests.
// See https://htmx.org/attributes/hx-preserve
func Preserve(v string) g.Node {
return attr("preserve", v)
}
// Prompt shows a prompt() before submitting a request.
// See https://htmx.org/attributes/hx-prompt
func Prompt(v string) g.Node {
return attr("prompt", v)
}
// Put issues a PUT to the specified URL.
// See https://htmx.org/attributes/hx-put
func Put(v string) g.Node {
return attr("put", v)
}
// ReplaceURL replaces the URL in the browser location bar.
// See https://htmx.org/attributes/hx-replace-url
func ReplaceURL(v string) g.Node {
return attr("replace-url", v)
}
// Request configures various aspects of the request.
// See https://htmx.org/attributes/hx-request
func Request(v string) g.Node {
return attr("request", v)
}
// Sync controls how requests made by different elements are synchronized.
// See https://htmx.org/attributes/hx-sync
func Sync(v string) g.Node {
return attr("sync", v)
}
// Validate forces elements to validate themselves before a request.
// See https://htmx.org/attributes/hx-validate
func Validate(v string) g.Node {
return attr("validate", v)
}
func attr(name, value string) g.Node {
return g.Attr("hx-"+name, value)
}
// rawAttr is an attribute that doesn't escape its value.
type rawAttr struct {
name string
value string
}
func (r *rawAttr) Render(w io.Writer) error {
_, err := w.Write([]byte(" hx-" + r.name + `="` + r.value + `"`))
return err
}
func (r *rawAttr) Type() g.NodeType {
return g.AttributeType
}