bolt

package module
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2025 License: GPL-3.0 Imports: 8 Imported by: 2

README

bolt-go

Simple functional component system for htmx projects in Go that uses builder pattern

Documentation

Index

Constants

View Source
const (
	FieldLabel fieldElementIndex = iota
	FieldInput
	FieldError
	FieldCheck
	FieldOptions
)

Variables

This section is empty.

Functions

func EscapeString added in v0.4.0

func EscapeString(s string) string

func GetOptionLabel added in v0.2.13

func GetOptionLabel(value string, options []Option) string

Types

type DefaultElement added in v0.2.0

type DefaultElement struct {
	// contains filtered or unexported fields
}

func NewDefaultElement added in v0.2.0

func NewDefaultElement(tag string) DefaultElement

func (*DefaultElement) AddChild added in v0.2.0

func (e *DefaultElement) AddChild(child Element) Element

func (*DefaultElement) Alt added in v0.2.0

func (e *DefaultElement) Alt(alt string) Element

func (*DefaultElement) Attr added in v0.2.0

func (e *DefaultElement) Attr(key string, value string) Element

func (*DefaultElement) Boost added in v0.2.0

func (e *DefaultElement) Boost(boost ...bool) Element

func (*DefaultElement) Children added in v0.2.0

func (e *DefaultElement) Children(elements ...Element) Element

func (*DefaultElement) Class added in v0.2.0

func (e *DefaultElement) Class(classes ...string) Element

func (*DefaultElement) Click added in v0.4.0

func (e *DefaultElement) Click(handler string) Element

func (*DefaultElement) Confirm added in v0.2.0

func (e *DefaultElement) Confirm(prompt string) Element

func (*DefaultElement) Content added in v0.2.0

func (e *DefaultElement) Content() string

func (*DefaultElement) Debug added in v0.2.0

func (e *DefaultElement) Debug(prefix ...string) Element

func (*DefaultElement) Delete added in v0.2.0

func (e *DefaultElement) Delete(url string) Element

func (*DefaultElement) For added in v0.2.13

func (e *DefaultElement) For(value string) Element

func (*DefaultElement) Get added in v0.2.0

func (e *DefaultElement) Get(url string) Element

func (*DefaultElement) GetAttr added in v0.2.0

func (e *DefaultElement) GetAttr(key string) string

func (*DefaultElement) GetAttrs added in v0.2.0

func (e *DefaultElement) GetAttrs() map[string]string

func (*DefaultElement) GetChildren added in v0.2.0

func (e *DefaultElement) GetChildren() []Element

func (*DefaultElement) GetClasses added in v0.2.0

func (e *DefaultElement) GetClasses() []string

func (*DefaultElement) GetStyle added in v0.2.0

func (e *DefaultElement) GetStyle(key string) string

func (*DefaultElement) GetStyles added in v0.2.0

func (e *DefaultElement) GetStyles() map[string]string

func (*DefaultElement) GetTag added in v0.2.0

func (e *DefaultElement) GetTag() string

func (*DefaultElement) HasClass added in v0.2.0

func (e *DefaultElement) HasClass(class string) bool

func (*DefaultElement) Href added in v0.2.0

func (e *DefaultElement) Href(href string) Element

func (*DefaultElement) Id added in v0.2.0

func (e *DefaultElement) Id(value string) Element

func (*DefaultElement) Indicator added in v0.2.0

func (e *DefaultElement) Indicator(indicator string) Element

func (*DefaultElement) Name added in v0.2.0

func (e *DefaultElement) Name(name string) Element

func (*DefaultElement) On added in v0.2.13

func (e *DefaultElement) On(event string, script string) Element

func (*DefaultElement) OnClick added in v0.2.0

func (e *DefaultElement) OnClick(value string) Element

func (*DefaultElement) Oob added in v0.2.0

func (e *DefaultElement) Oob(oob string) Element

func (*DefaultElement) Patch added in v0.2.0

func (e *DefaultElement) Patch(url string) Element

func (*DefaultElement) Placeholder added in v0.2.0

func (e *DefaultElement) Placeholder(placeholder string) Element

func (*DefaultElement) Post added in v0.2.0

func (e *DefaultElement) Post(url string) Element

func (*DefaultElement) PrependChild added in v0.2.0

func (e *DefaultElement) PrependChild(child Element) Element

func (*DefaultElement) PushUrl added in v0.2.0

func (e *DefaultElement) PushUrl(pushUrl ...bool) Element

func (*DefaultElement) Put added in v0.2.0

func (e *DefaultElement) Put(url string) Element

func (*DefaultElement) RemoveAttr added in v0.2.0

func (e *DefaultElement) RemoveAttr(keys ...string) Element

func (*DefaultElement) RemoveClass added in v0.2.0

func (e *DefaultElement) RemoveClass(classes ...string) Element

func (*DefaultElement) RemoveStyle added in v0.2.0

func (e *DefaultElement) RemoveStyle(styles ...string) Element

func (*DefaultElement) Render added in v0.2.0

func (e *DefaultElement) Render() string

func (*DefaultElement) Select added in v0.2.0

func (e *DefaultElement) Select(value string) Element

func (*DefaultElement) Send added in v0.2.13

func (e *DefaultElement) Send(w http.ResponseWriter)

For Fiber

func (e *DefaultElement) Send(c *fiber.Ctx) error {
	c.Set(fiber.HeaderContentType, fiber.MIMETextHTML)
	return c.SendString(e.Render())
}

func (*DefaultElement) Src added in v0.2.0

func (e *DefaultElement) Src(src string) Element

func (*DefaultElement) Style added in v0.2.0

func (e *DefaultElement) Style(style string) Element

func (*DefaultElement) Submit added in v0.2.0

func (e *DefaultElement) Submit() Element

func (*DefaultElement) Swap added in v0.2.0

func (e *DefaultElement) Swap(value string) Element

func (*DefaultElement) SwapOob added in v0.2.0

func (e *DefaultElement) SwapOob(oob string) Element

func (*DefaultElement) Tag added in v0.2.0

func (e *DefaultElement) Tag(tag string) Element

func (*DefaultElement) Target added in v0.2.0

func (e *DefaultElement) Target(target string) Element

func (*DefaultElement) Text added in v0.2.0

func (e *DefaultElement) Text(content string) Element

func (*DefaultElement) Trigger added in v0.2.0

func (e *DefaultElement) Trigger(trigger string) Element

func (*DefaultElement) Type added in v0.2.0

func (e *DefaultElement) Type(tipe string) Element

func (*DefaultElement) UnsafeHtml added in v0.4.0

func (e *DefaultElement) UnsafeHtml(content string) Element

func (*DefaultElement) Vals added in v0.2.0

func (e *DefaultElement) Vals(json string) Element

func (*DefaultElement) Value added in v0.2.0

func (e *DefaultElement) Value(value string) Element

func (*DefaultElement) XBind added in v0.4.0

func (e *DefaultElement) XBind(attr string, value string) Element

func (*DefaultElement) XCloak added in v0.4.0

func (e *DefaultElement) XCloak() Element

func (*DefaultElement) XData added in v0.4.0

func (e *DefaultElement) XData(data string) Element

func (*DefaultElement) XHtml added in v0.4.0

func (e *DefaultElement) XHtml(value string) Element

func (*DefaultElement) XInit added in v0.4.0

func (e *DefaultElement) XInit(value string) Element

func (*DefaultElement) XModel added in v0.4.0

func (e *DefaultElement) XModel(value string) Element

func (*DefaultElement) XOn added in v0.4.0

func (e *DefaultElement) XOn(event string, value string) Element

func (*DefaultElement) XShow added in v0.4.0

func (e *DefaultElement) XShow(condition string) Element

func (*DefaultElement) XText added in v0.4.0

func (e *DefaultElement) XText(value string) Element

type Element

type Element interface {
	GetTag() string
	Tag(tag string) Element

	GetClasses() []string
	HasClass(class string) bool
	Class(classes ...string) Element
	RemoveClass(class ...string) Element

	GetStyles() map[string]string
	GetStyle(key string) string
	Style(style string) Element
	RemoveStyle(key ...string) Element

	GetAttrs() map[string]string
	GetAttr(key string) string
	Attr(key string, value string) Element
	RemoveAttr(key ...string) Element

	GetChildren() []Element
	AddChild(child Element) Element
	PrependChild(child Element) Element
	Children(children ...Element) Element
	Content() string

	Render() string

	// Common attrs
	Text(content string) Element
	UnsafeHtml(content string) Element
	Post(url string) Element
	Get(url string) Element
	Put(url string) Element
	Patch(url string) Element
	Delete(url string) Element
	Confirm(prompt string) Element
	Target(target string) Element
	Trigger(trigger string) Element
	Swap(value string) Element
	Select(value string) Element
	Id(value string) Element
	Name(name string) Element
	For(name string) Element
	Type(tipe string) Element
	Submit() Element
	Src(src string) Element
	Value(value string) Element
	Href(href string) Element
	Placeholder(placeholder string) Element
	Alt(alt string) Element
	OnClick(value string) Element
	Indicator(indicator string) Element
	Oob(oob string) Element
	SwapOob(oob string) Element
	Vals(json string) Element
	PushUrl(pushUrl ...bool) Element
	// Sets hx-on attribute for htmx
	On(event string, value string) Element
	Boost(boost ...bool) Element
	// Sets x-data attribute for alpine.js
	XData(data string) Element
	// Sets @click attribute for alpine.js
	Click(handler string) Element
	// Sets x-bind attribute for alpine.js
	XBind(attr string, value string) Element
	// Sets x-on attribute for alpine.js
	XOn(event string, value string) Element
	// Sets x-text attribute for alpine.js
	XText(value string) Element
	// Sets x-html attribute for alpine.js
	XHtml(value string) Element
	// Sets x-model attribute for alpine.js
	XModel(value string) Element
	//  Sets x-show attribute for alpine.js
	XShow(condition string) Element
	// Sets x-init attribute for alpine.js
	XInit(value string) Element
	// Sets x-cloak attribute for alpine.js
	XCloak() Element

	Send(w http.ResponseWriter)
	// Redirect(w http.ResponseWriter, url string)
	Debug(prefix ...string) Element
}

func A

func A(href string, children ...Element) Element

func Body added in v0.1.29

func Body(children ...Element) Element

func Button

func Button(text string) Element

func Div

func Div(class string, children ...Element) Element

func Form

func Form() Element

func Fragment

func Fragment(children ...Element) Element

func H1

func H1(text string) Element

func H2

func H2(text string) Element

func H3

func H3(text string) Element

func H4

func H4(text string) Element

func H5

func H5(text string) Element

func H6

func H6(text string) Element
func Head(children ...Element) Element

func Html

func Html(content string) Element

func Img

func Img(src string) Element

func Input

func Input(name string) Element

func Label

func Label(text string) Element

func List added in v0.1.40

func List[T any](data []T, rowFunc ...func(T, int) Element) Element

func NewElement

func NewElement(tag string) Element

func None

func None() Element

func P

func P(text string) Element

func Script added in v0.1.11

func Script(text string) Element

func Section

func Section(children ...Element) Element

func Span

func Span(text string) Element

func Svg added in v0.1.11

func Svg(path string, width int, height int, vbX int, vbY int) Element

func Template added in v0.1.1

func Template(filename string) Element

func VideoIframe added in v0.1.11

func VideoIframe(title string, width int, height int, src string) Element

type FieldElement added in v0.2.0

type FieldElement struct {
	DefaultElement
}

func Checkbox added in v0.1.7

func Checkbox(name string, label string) *FieldElement

func Field added in v0.1.37

func Field(name string, label string, value string) *FieldElement

func Select added in v0.1.25

func Select(name string, label string, value string, options []Option, renderOption ...func(Option, string) Element) *FieldElement

func (*FieldElement) Checked added in v0.2.0

func (f *FieldElement) Checked(value ...bool) *FieldElement

func (*FieldElement) Delete added in v0.2.0

func (f *FieldElement) Delete(value string) Element

func (*FieldElement) Email added in v0.2.0

func (f *FieldElement) Email(is_email ...bool) *FieldElement

func (*FieldElement) Error added in v0.2.0

func (f *FieldElement) Error(err string) *FieldElement
func (f *FieldElement) Pattern(pattern string) Element {
	f.input = *f.input.Attr("pattern", pattern)
	return f
}
func (f *FieldElement) Accept(accept string) Element {
	f.input = *f.input.Attr("accept", accept)
	return f
}
func (f *FieldElement) Autocapitalize(autocapitalize string) Element {
	f.input = *f.input.Attr("autocapitalize", autocapitalize)
	return f
}
func (f *FieldElement) Autocomplete(autocomplete string) Element {
	f.input = *f.input.Attr("autocomplete", autocomplete)
	return f
}
func (f *FieldElement) Max(max string) Element {
	f.input = *f.input.Attr("max", max)
	return f
}
func (f *FieldElement) Min(min string) Element {
	f.input = *f.input.Attr("min", min)
	return f
}
func (f *FieldElement) MaxLength(maxlength string) Element {
	f.input = *f.input.Attr("maxlength", maxlength)
	return f
}
func (f *FieldElement) MinLength(minlength string) Element {
	f.input = *f.input.Attr("minlength", minlength)
	return f
}
func (f *FieldElement) Color(is_color ...bool) Element {
	if len(is_color) > 0 && !is_color[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("color")
	}
	return f
}
func (f *FieldElement) Date(is_date ...bool) Element {
	if len(is_date) > 0 && !is_date[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("date")
	}
	return f
}
func (f *FieldElement) Datetime(is_datetime ...bool) Element {
	if len(is_datetime) > 0 && !is_datetime[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("datetime-local") // datetime is deprecated
	}
	return f
}
func (f *FieldElement) File(is_file ...bool) Element {
	if len(is_file) > 0 && !is_file[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("file")
	}
	return f
}
func (f *FieldElement) Hidden(is_hidden ...bool) Element {
	if len(is_hidden) > 0 && !is_hidden[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("hidden")
	}
	return f
}
func (f *FieldElement) Month(is_month ...bool) Element {
	if len(is_month) > 0 && !is_month[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("month")
	}
	return f
}
func (f *FieldElement) Number(is_number ...bool) Element {
	if len(is_number) > 0 && !is_number[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("number")
	}
	return f
}
func (f *FieldElement) Tel(is_tel ...bool) Element {
	if len(is_tel) > 0 && !is_tel[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("tel")
	}
	return f
}
func (f *FieldElement) Time(is_time ...bool) Element {
	if len(is_time) > 0 && !is_time[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("time")
	}
	return f
}
func (f *FieldElement) Url(is_url ...bool) Element {
	if len(is_url) > 0 && !is_url[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("url")
	}
	return f
}
func (f *FieldElement) Week(is_week ...bool) Element {
	if len(is_week) > 0 && !is_week[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("week")
	}
	return f
}
func (f *FieldElement) Search(is_search ...bool) Element {
	if len(is_search) > 0 && !is_search[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("search")
	}
	return f
}
func (f *FieldElement) Password(is_password ...bool) Element {
	if len(is_password) > 0 && !is_password[0] {
		f.input = *f.input.Type("text")
	} else {
		f.input = *f.input.Type("password")
	}
	return f
}
func (f *FieldElement) Range(min int, max int) Element {
	f.input = *f.input.Type("range").Attr("min", strconv.Itoa(min)).Attr("max", strconv.Itoa(max))
	return f
}
func (f *FieldElement) Placeholder(placeholder string) Element {
	f.input = *f.input.Attr("placeholder", placeholder)
	return f
}
func (f *FieldElement) Step(step string) Element {
	f.input = *f.input.Attr("step", step)
	return f
}

func (*FieldElement) Get added in v0.2.0

func (f *FieldElement) Get(value string) Element

func (*FieldElement) GetError added in v0.2.0

func (f *FieldElement) GetError() Element

func (*FieldElement) GetInput added in v0.2.0

func (f *FieldElement) GetInput() Element

func (*FieldElement) GetLabel added in v0.2.0

func (f *FieldElement) GetLabel() Element

func (*FieldElement) GetWrapper added in v0.2.2

func (f *FieldElement) GetWrapper() Element

func (*FieldElement) Id added in v0.2.0

func (f *FieldElement) Id(id string) Element

func (*FieldElement) Label added in v0.2.0

func (f *FieldElement) Label(label string) *FieldElement

func (*FieldElement) Name added in v0.2.0

func (f *FieldElement) Name(name string) Element

func (*FieldElement) Password added in v0.2.13

func (f *FieldElement) Password(is_password ...bool) *FieldElement

func (*FieldElement) Patch added in v0.2.0

func (f *FieldElement) Patch(value string) Element

func (*FieldElement) Post added in v0.2.0

func (f *FieldElement) Post(value string) Element

func (*FieldElement) Put added in v0.2.0

func (f *FieldElement) Put(value string) Element

func (*FieldElement) Required added in v0.2.0

func (f *FieldElement) Required(required ...bool) *FieldElement

func (*FieldElement) SetError added in v0.2.0

func (f *FieldElement) SetError(e Element) *FieldElement

func (*FieldElement) SetInput added in v0.2.0

func (f *FieldElement) SetInput(e Element) *FieldElement

func (*FieldElement) SetLabel added in v0.2.0

func (f *FieldElement) SetLabel(l Element) *FieldElement

func (*FieldElement) Swap added in v0.2.0

func (f *FieldElement) Swap(value string) Element

func (*FieldElement) Target added in v0.2.0

func (f *FieldElement) Target(value string) Element

func (*FieldElement) Type added in v0.2.0

func (f *FieldElement) Type(tipe string) Element

func (*FieldElement) Value added in v0.2.0

func (f *FieldElement) Value(value string) Element

type Option added in v0.1.25

type Option struct {
	Label string
	Value string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL