diff --git a/.goreleaser.yaml b/.goreleaser.yaml
index e51e3f7de..097b3df21 100644
--- a/.goreleaser.yaml
+++ b/.goreleaser.yaml
@@ -109,7 +109,7 @@ dockers:
image_templates:
- "onsonr/sonrd:latest"
- "onsonr/sonrd:{{ .Tag }}"
- dockerfile: "./deploy/release/sonrd.Dockerfile"
+ dockerfile: "./deploy/sonrd.Dockerfile"
build_flag_templates:
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.title=sonrd"
@@ -125,7 +125,7 @@ dockers:
image_templates:
- "onsonr/hway:latest"
- "onsonr/hway:{{ .Tag }}"
- dockerfile: "./deploy/release/hway.Dockerfile"
+ dockerfile: "./deploy/hway.Dockerfile"
build_flag_templates:
- "--label=org.opencontainers.image.created={{.Date}}"
- "--label=org.opencontainers.image.title=hway"
diff --git a/Makefile b/Makefile
index b09a7528b..bb4480d55 100644
--- a/Makefile
+++ b/Makefile
@@ -299,6 +299,7 @@ sh-testnet: mod-tidy
hway:
@echo "(motr) Building Highway gateway"
+ templ generate
go build -o ./build/hway ./cmd/hway
motr:
diff --git a/app/proxy/proxycmd.go b/app/proxy/proxycmd.go
index b98c9b894..f50d39b75 100644
--- a/app/proxy/proxycmd.go
+++ b/app/proxy/proxycmd.go
@@ -12,7 +12,7 @@ import (
"github.com/spf13/cobra"
"github.com/onsonr/sonr/pkg/nebula"
- "github.com/onsonr/sonr/pkg/nebula/pages"
+ "github.com/onsonr/sonr/pkg/nebula/router"
)
func NewProxyCmd() *cobra.Command {
@@ -29,8 +29,8 @@ func NewProxyCmd() *cobra.Command {
e.Logger.Fatal(err)
}
- e.GET("/", pages.Home)
- e.GET("/allocate", pages.Profile)
+ e.GET("/", router.Home)
+ e.GET("/allocate", router.Profile)
// Start server
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
diff --git a/blocks/badge.templ b/blocks/badge.templ
new file mode 100644
index 000000000..a8ac1584e
--- /dev/null
+++ b/blocks/badge.templ
@@ -0,0 +1,59 @@
+package blocks
+
+templ PoweredBySonr() {
+
+
+
+
+ Powered by
+
+
+
+
+

+
+
The creative platform for developers. Community, tools, products, and more
+
+
+ Joined June 2020
+
+
+
+
+
+
+
+}
diff --git a/blocks/badge_templ.go b/blocks/badge_templ.go
new file mode 100644
index 000000000..202f7ab97
--- /dev/null
+++ b/blocks/badge_templ.go
@@ -0,0 +1,40 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+func PoweredBySonr() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("Powered by 
The creative platform for developers. Community, tools, products, and more
Joined June 2020
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/blocks/button.templ b/blocks/button.templ
new file mode 100644
index 000000000..6f05f6b4e
--- /dev/null
+++ b/blocks/button.templ
@@ -0,0 +1,218 @@
+package blocks
+
+type button struct {
+ variant Variant
+ hxGet string
+ hxPost string
+ hxTarget string
+ hxTrigger string
+ hxSwap string
+}
+
+type ButtonOpt func(button *button)
+
+func PrimaryButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantPrimary
+ }
+}
+
+func InfoButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantInfo
+ }
+}
+
+func ErrorButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantError
+ }
+}
+
+func SuccessButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantSuccess
+ }
+}
+
+func WarningButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantWarning
+ }
+}
+
+func GET(action string, target string) ButtonOpt {
+ return func(button *button) {
+ button.hxGet = action
+ button.hxTarget = target
+ button.hxTrigger = "click"
+ button.hxSwap = "outerHTML"
+ }
+}
+
+func POST(action string, target string) ButtonOpt {
+ return func(button *button) {
+ button.hxPost = action
+ button.hxTarget = target
+ button.hxTrigger = "click"
+ button.hxSwap = "outerHTML"
+ }
+}
+
+func Button(opts ...ButtonOpt) templ.Component {
+ button := button{
+ variant: ButtonVariantDefault,
+ }
+ for _, opt := range opts {
+ opt(&button)
+ }
+ if button.hxGet != "" {
+ return renderHxGetButton(&button, button.variant.Attributes())
+ }
+
+ if button.hxPost != "" {
+ return renderHxPostButton(&button, button.variant.Attributes())
+ }
+ return renderButton(button.variant.Attributes())
+}
+
+templ renderButton(attrs templ.Attributes) {
+
+}
+
+templ renderHxGetButton(c *button, attrs templ.Attributes) {
+
+}
+
+templ renderHxPostButton(c *button, attrs templ.Attributes) {
+
+}
+
+type ButtonVariant int
+
+const (
+ ButtonVariantDefault ButtonVariant = iota
+ ButtonVariantPrimary
+ ButtonVariantInfo
+ ButtonVariantError
+ ButtonVariantSuccess
+ ButtonVariantWarning
+)
+
+func (v ButtonVariant) Attributes() templ.Attributes {
+ switch v {
+ case ButtonVariantPrimary:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 rounded-md bg-neutral-950 hover:bg-neutral-900 focus:ring-2 focus:ring-offset-2 focus:ring-neutral-900 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ case ButtonVariantInfo:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 bg-blue-600 rounded-md hover:bg-blue-700 focus:ring-2 focus:ring-offset-2 focus:ring-blue-700 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ case ButtonVariantError:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 rounded-md bg-red-600 hover:bg-red-700 focus:ring-2 focus:ring-offset-2 focus:ring-red-700 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ case ButtonVariantSuccess:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 rounded-md bg-green-600 hover:bg-green-700 focus:ring-2 focus:ring-offset-2 focus:ring-green-700 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ case ButtonVariantWarning:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 rounded-md bg-yellow-600 hover:bg-yellow-700 focus:ring-2 focus:ring-offset-2 focus:ring-yellow-700 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ }
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide transition-colors duration-200 bg-white border rounded-md text-neutral-500 hover:text-neutral-700 border-neutral-200/70 hover:bg-neutral-100 active:bg-white focus:bg-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-neutral-200/60 focus:shadow-outline",
+ "type": "button",
+ }
+}
+
+type SubtleButtonVariant int
+
+const (
+ SubtleButtonVariantDefault SubtleButtonVariant = iota
+ SubtleButtonVariantInfo
+ SubtleButtonVariantError
+ SubtleButtonVariantSuccess
+ SubtleButtonVariantWarning
+)
+
+func (v SubtleButtonVariant) Attributes() templ.Attributes {
+ switch v {
+ case SubtleButtonVariantInfo:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-blue-500 transition-colors duration-100 rounded-md focus:ring-2 focus:ring-offset-2 focus:ring-blue-100 bg-blue-50 hover:text-blue-600 hover:bg-blue-100",
+ "type": "button",
+ }
+ case SubtleButtonVariantError:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-red-500 transition-colors duration-100 rounded-md focus:ring-2 focus:ring-offset-2 focus:ring-red-100 bg-red-50 hover:text-red-600 hover:bg-red-100",
+ "type": "button",
+ }
+ case SubtleButtonVariantSuccess:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-green-500 transition-colors duration-100 rounded-md focus:ring-2 focus:ring-offset-2 focus:ring-green-100 bg-green-50 hover:text-green-600 hover:bg-green-100",
+ "type": "button",
+ }
+ case SubtleButtonVariantWarning:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-yellow-600 transition-colors duration-100 rounded-md focus:ring-2 focus:ring-offset-2 focus:ring-yellow-100 bg-yellow-50 hover:text-yellow-700 hover:bg-yellow-100",
+ "type": "button",
+ }
+ }
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide transition-colors duration-100 rounded-md text-neutral-500 bg-neutral-50 focus:ring-2 focus:ring-offset-2 focus:ring-neutral-100 hover:text-neutral-600 hover:bg-neutral-100",
+ "type": "button",
+ }
+}
+
+type OutlineButtonVariant int
+
+const (
+ OutlineButtonVariantDefault OutlineButtonVariant = iota
+ OutlineButtonVariantInfo
+ OutlineButtonVariantError
+ OutlineButtonVariantSuccess
+ OutlineButtonVariantWarning
+)
+
+func (v OutlineButtonVariant) Attributes() templ.Attributes {
+ switch v {
+ case OutlineButtonVariantInfo:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-blue-600 transition-colors duration-100 bg-white border-2 border-blue-600 rounded-md hover:text-white hover:bg-blue-600",
+ "type": "button",
+ }
+ case OutlineButtonVariantError:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-red-600 transition-colors duration-100 bg-white border-2 border-red-600 rounded-md hover:text-white hover:bg-red-600",
+ "type": "button",
+ }
+ case OutlineButtonVariantSuccess:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-green-600 transition-colors duration-100 bg-white border-2 border-green-600 rounded-md hover:text-white hover:bg-green-600",
+ "type": "button",
+ }
+ case OutlineButtonVariantWarning:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-yellow-600 transition-colors duration-100 bg-white border-2 border-yellow-500 rounded-md hover:text-white hover:bg-yellow-500",
+ "type": "button",
+ }
+ }
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide transition-colors duration-100 bg-white border-2 rounded-md text-neutral-900 hover:text-white border-neutral-900 hover:bg-neutral-900",
+ "type": "button",
+ }
+}
diff --git a/blocks/button_templ.go b/blocks/button_templ.go
new file mode 100644
index 000000000..8bc0fc74f
--- /dev/null
+++ b/blocks/button_templ.go
@@ -0,0 +1,449 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+type button struct {
+ variant Variant
+ hxGet string
+ hxPost string
+ hxTarget string
+ hxTrigger string
+ hxSwap string
+}
+
+type ButtonOpt func(button *button)
+
+func PrimaryButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantPrimary
+ }
+}
+
+func InfoButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantInfo
+ }
+}
+
+func ErrorButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantError
+ }
+}
+
+func SuccessButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantSuccess
+ }
+}
+
+func WarningButtonStyle() ButtonOpt {
+ return func(button *button) {
+ button.variant = ButtonVariantWarning
+ }
+}
+
+func GET(action string, target string) ButtonOpt {
+ return func(button *button) {
+ button.hxGet = action
+ button.hxTarget = target
+ button.hxTrigger = "click"
+ button.hxSwap = "outerHTML"
+ }
+}
+
+func POST(action string, target string) ButtonOpt {
+ return func(button *button) {
+ button.hxPost = action
+ button.hxTarget = target
+ button.hxTrigger = "click"
+ button.hxSwap = "outerHTML"
+ }
+}
+
+func Button(opts ...ButtonOpt) templ.Component {
+ button := button{
+ variant: ButtonVariantDefault,
+ }
+ for _, opt := range opts {
+ opt(&button)
+ }
+ if button.hxGet != "" {
+ return renderHxGetButton(&button, button.variant.Attributes())
+ }
+
+ if button.hxPost != "" {
+ return renderHxPostButton(&button, button.variant.Attributes())
+ }
+ return renderButton(button.variant.Attributes())
+}
+
+func renderButton(attrs templ.Attributes) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func renderHxGetButton(c *button, attrs templ.Attributes) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var2 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var2 == nil {
+ templ_7745c5c3_Var2 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func renderHxPostButton(c *button, attrs templ.Attributes) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var7 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var7 == nil {
+ templ_7745c5c3_Var7 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+type ButtonVariant int
+
+const (
+ ButtonVariantDefault ButtonVariant = iota
+ ButtonVariantPrimary
+ ButtonVariantInfo
+ ButtonVariantError
+ ButtonVariantSuccess
+ ButtonVariantWarning
+)
+
+func (v ButtonVariant) Attributes() templ.Attributes {
+ switch v {
+ case ButtonVariantPrimary:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 rounded-md bg-neutral-950 hover:bg-neutral-900 focus:ring-2 focus:ring-offset-2 focus:ring-neutral-900 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ case ButtonVariantInfo:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 bg-blue-600 rounded-md hover:bg-blue-700 focus:ring-2 focus:ring-offset-2 focus:ring-blue-700 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ case ButtonVariantError:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 rounded-md bg-red-600 hover:bg-red-700 focus:ring-2 focus:ring-offset-2 focus:ring-red-700 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ case ButtonVariantSuccess:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 rounded-md bg-green-600 hover:bg-green-700 focus:ring-2 focus:ring-offset-2 focus:ring-green-700 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ case ButtonVariantWarning:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-white transition-colors duration-200 rounded-md bg-yellow-600 hover:bg-yellow-700 focus:ring-2 focus:ring-offset-2 focus:ring-yellow-700 focus:shadow-outline focus:outline-none",
+ "type": "button",
+ }
+ }
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide transition-colors duration-200 bg-white border rounded-md text-neutral-500 hover:text-neutral-700 border-neutral-200/70 hover:bg-neutral-100 active:bg-white focus:bg-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-neutral-200/60 focus:shadow-outline",
+ "type": "button",
+ }
+}
+
+type SubtleButtonVariant int
+
+const (
+ SubtleButtonVariantDefault SubtleButtonVariant = iota
+ SubtleButtonVariantInfo
+ SubtleButtonVariantError
+ SubtleButtonVariantSuccess
+ SubtleButtonVariantWarning
+)
+
+func (v SubtleButtonVariant) Attributes() templ.Attributes {
+ switch v {
+ case SubtleButtonVariantInfo:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-blue-500 transition-colors duration-100 rounded-md focus:ring-2 focus:ring-offset-2 focus:ring-blue-100 bg-blue-50 hover:text-blue-600 hover:bg-blue-100",
+ "type": "button",
+ }
+ case SubtleButtonVariantError:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-red-500 transition-colors duration-100 rounded-md focus:ring-2 focus:ring-offset-2 focus:ring-red-100 bg-red-50 hover:text-red-600 hover:bg-red-100",
+ "type": "button",
+ }
+ case SubtleButtonVariantSuccess:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-green-500 transition-colors duration-100 rounded-md focus:ring-2 focus:ring-offset-2 focus:ring-green-100 bg-green-50 hover:text-green-600 hover:bg-green-100",
+ "type": "button",
+ }
+ case SubtleButtonVariantWarning:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-yellow-600 transition-colors duration-100 rounded-md focus:ring-2 focus:ring-offset-2 focus:ring-yellow-100 bg-yellow-50 hover:text-yellow-700 hover:bg-yellow-100",
+ "type": "button",
+ }
+ }
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide transition-colors duration-100 rounded-md text-neutral-500 bg-neutral-50 focus:ring-2 focus:ring-offset-2 focus:ring-neutral-100 hover:text-neutral-600 hover:bg-neutral-100",
+ "type": "button",
+ }
+}
+
+type OutlineButtonVariant int
+
+const (
+ OutlineButtonVariantDefault OutlineButtonVariant = iota
+ OutlineButtonVariantInfo
+ OutlineButtonVariantError
+ OutlineButtonVariantSuccess
+ OutlineButtonVariantWarning
+)
+
+func (v OutlineButtonVariant) Attributes() templ.Attributes {
+ switch v {
+ case OutlineButtonVariantInfo:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-blue-600 transition-colors duration-100 bg-white border-2 border-blue-600 rounded-md hover:text-white hover:bg-blue-600",
+ "type": "button",
+ }
+ case OutlineButtonVariantError:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-red-600 transition-colors duration-100 bg-white border-2 border-red-600 rounded-md hover:text-white hover:bg-red-600",
+ "type": "button",
+ }
+ case OutlineButtonVariantSuccess:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-green-600 transition-colors duration-100 bg-white border-2 border-green-600 rounded-md hover:text-white hover:bg-green-600",
+ "type": "button",
+ }
+ case OutlineButtonVariantWarning:
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide text-yellow-600 transition-colors duration-100 bg-white border-2 border-yellow-500 rounded-md hover:text-white hover:bg-yellow-500",
+ "type": "button",
+ }
+ }
+ return templ.Attributes{
+ "class": "inline-flex items-center justify-center px-4 py-2 text-sm font-medium tracking-wide transition-colors duration-100 bg-white border-2 rounded-md text-neutral-900 hover:text-white border-neutral-900 hover:bg-neutral-900",
+ "type": "button",
+ }
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/blocks/card.templ b/blocks/card.templ
new file mode 100644
index 000000000..1ff009004
--- /dev/null
+++ b/blocks/card.templ
@@ -0,0 +1,47 @@
+package blocks
+
+func Card(id string, size Size) templ.Component {
+ return renderCard(id, size.CardAttributes())
+}
+
+templ renderCard(id string, attrs templ.Attributes) {
+
+}
+
+templ ProfileCard() {
+
+

+
+
+
Creator of @tailwindcss. Listener of Slayer. Austin 3:16. BTW, Pines UI is super cool!
+
+
+
+}
diff --git a/blocks/card_templ.go b/blocks/card_templ.go
new file mode 100644
index 000000000..69f70cfc5
--- /dev/null
+++ b/blocks/card_templ.go
@@ -0,0 +1,102 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+func Card(id string, size Size) templ.Component {
+ return renderCard(id, size.CardAttributes())
+}
+
+func renderCard(id string, attrs templ.Attributes) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func ProfileCard() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var3 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var3 == nil {
+ templ_7745c5c3_Var3 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
Creator of @tailwindcss. Listener of Slayer. Austin 3:16. BTW, Pines UI is super cool!
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/blocks/fonts.templ b/blocks/fonts.templ
new file mode 100644
index 000000000..bbd2d6e36
--- /dev/null
+++ b/blocks/fonts.templ
@@ -0,0 +1,62 @@
+package blocks
+
+func H1(content string) templ.Component {
+ return renderText(1, content)
+}
+
+func H2(content string) templ.Component {
+ return renderText(2, content)
+}
+
+func H3(content string) templ.Component {
+ return renderText(3, content)
+}
+
+func Text(content string) templ.Component {
+ return renderText(0, content)
+}
+
+templ renderText(level int, text string) {
+ switch level {
+ case 1:
+
+ { text }
+
+ case 2:
+
+ { text }
+
+ case 3:
+
+ { text }
+
+ default:
+
+ { text }
+
+ }
+}
+
+templ renderLink(attrs templ.Attributes, text string) {
+
+ { text }
+
+}
+
+templ renderStrong(attrs templ.Attributes, text string) {
+
+ { text }
+
+}
+
+templ renderEmphasis(attrs templ.Attributes, text string) {
+
+ { text }
+
+}
+
+templ renderCode(attrs templ.Attributes, text string) {
+
+ { text }
+
+}
diff --git a/blocks/fonts_templ.go b/blocks/fonts_templ.go
new file mode 100644
index 000000000..296f0e9f9
--- /dev/null
+++ b/blocks/fonts_templ.go
@@ -0,0 +1,326 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+func H1(content string) templ.Component {
+ return renderText(1, content)
+}
+
+func H2(content string) templ.Component {
+ return renderText(2, content)
+}
+
+func H3(content string) templ.Component {
+ return renderText(3, content)
+}
+
+func Text(content string) templ.Component {
+ return renderText(0, content)
+}
+
+func renderText(level int, text string) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ switch level {
+ case 1:
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var2 string
+ templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(text)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/fonts.templ`, Line: 23, Col: 10}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ case 2:
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var3 string
+ templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(text)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/fonts.templ`, Line: 27, Col: 10}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ case 3:
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var4 string
+ templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(text)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/fonts.templ`, Line: 31, Col: 10}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ default:
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var5 string
+ templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(text)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/fonts.templ`, Line: 35, Col: 10}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func renderLink(attrs templ.Attributes, text string) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var6 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var6 == nil {
+ templ_7745c5c3_Var6 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var7 string
+ templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(text)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/fonts.templ`, Line: 42, Col: 8}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func renderStrong(attrs templ.Attributes, text string) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var8 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var8 == nil {
+ templ_7745c5c3_Var8 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var9 string
+ templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(text)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/fonts.templ`, Line: 48, Col: 8}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func renderEmphasis(attrs templ.Attributes, text string) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var10 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var10 == nil {
+ templ_7745c5c3_Var10 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var11 string
+ templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(text)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/fonts.templ`, Line: 54, Col: 8}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func renderCode(attrs templ.Attributes, text string) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var12 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var12 == nil {
+ templ_7745c5c3_Var12 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var13 string
+ templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(text)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/fonts.templ`, Line: 60, Col: 8}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/blocks/head.templ b/blocks/head.templ
new file mode 100644
index 000000000..48e27108b
--- /dev/null
+++ b/blocks/head.templ
@@ -0,0 +1,81 @@
+package blocks
+
+import "strings"
+
+type Icon interface {
+ Render() templ.Component
+}
+
+type Variant interface {
+ Attributes() templ.Attributes
+}
+
+var stylesHandle = templ.NewOnceHandle()
+var alpineHandle = templ.NewOnceHandle()
+var htmxHandle = templ.NewOnceHandle()
+
+func clsxMerge(variants ...Variant) templ.Attributes {
+ combinedAttrs := templ.Attributes{}
+ var classElements []string
+
+ for _, variant := range variants {
+ attrs := variant.Attributes()
+ if class, ok := attrs["class"].(string); ok {
+ classElements = append(classElements, strings.Fields(class)...)
+ }
+ for key, value := range attrs {
+ if key != "class" {
+ combinedAttrs[key] = value
+ }
+ }
+ }
+
+ if len(classElements) > 0 {
+ combinedAttrs["class"] = strings.Join(classElements, " ")
+ }
+ return combinedAttrs
+}
+
+func clsxBuilder(classes ...string) templ.Attributes {
+ if len(classes) == 0 {
+ return templ.Attributes{}
+ }
+ class := strings.Join(classes, " ")
+ return templ.Attributes{
+ "class": class,
+ }
+}
+
+templ Spacer() {
+
+}
+
+templ Styles(local bool) {
+ @stylesHandle.Once() {
+
+ }
+}
+
+templ Alpine(local bool) {
+ @alpineHandle.Once() {
+
+ }
+}
+
+templ Htmx(local bool) {
+ @htmxHandle.Once() {
+
+ }
+}
+
+templ Rows() {
+
+ { children... }
+
+}
+
+templ Columns() {
+
+ { children... }
+
+}
diff --git a/blocks/head_templ.go b/blocks/head_templ.go
new file mode 100644
index 000000000..51f9e2f27
--- /dev/null
+++ b/blocks/head_templ.go
@@ -0,0 +1,301 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+import "strings"
+
+type Icon interface {
+ Render() templ.Component
+}
+
+type Variant interface {
+ Attributes() templ.Attributes
+}
+
+var stylesHandle = templ.NewOnceHandle()
+var alpineHandle = templ.NewOnceHandle()
+var htmxHandle = templ.NewOnceHandle()
+
+func clsxMerge(variants ...Variant) templ.Attributes {
+ combinedAttrs := templ.Attributes{}
+ var classElements []string
+
+ for _, variant := range variants {
+ attrs := variant.Attributes()
+ if class, ok := attrs["class"].(string); ok {
+ classElements = append(classElements, strings.Fields(class)...)
+ }
+ for key, value := range attrs {
+ if key != "class" {
+ combinedAttrs[key] = value
+ }
+ }
+ }
+
+ if len(classElements) > 0 {
+ combinedAttrs["class"] = strings.Join(classElements, " ")
+ }
+ return combinedAttrs
+}
+
+func clsxBuilder(classes ...string) templ.Attributes {
+ if len(classes) == 0 {
+ return templ.Attributes{}
+ }
+ class := strings.Join(classes, " ")
+ return templ.Attributes{
+ "class": class,
+ }
+}
+
+func Spacer() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func Styles(local bool) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var2 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var2 == nil {
+ templ_7745c5c3_Var2 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ templ_7745c5c3_Var3 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+ templ_7745c5c3_Err = stylesHandle.Once().Render(templ.WithChildren(ctx, templ_7745c5c3_Var3), templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func Alpine(local bool) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var4 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var4 == nil {
+ templ_7745c5c3_Var4 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ templ_7745c5c3_Var5 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+ templ_7745c5c3_Err = alpineHandle.Once().Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func Htmx(local bool) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var6 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var6 == nil {
+ templ_7745c5c3_Var6 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ templ_7745c5c3_Var7 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+ templ_7745c5c3_Err = htmxHandle.Once().Render(templ.WithChildren(ctx, templ_7745c5c3_Var7), templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func Rows() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var8 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var8 == nil {
+ templ_7745c5c3_Var8 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = templ_7745c5c3_Var8.Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func Columns() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var9 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var9 == nil {
+ templ_7745c5c3_Var9 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = templ_7745c5c3_Var9.Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/blocks/icons.templ b/blocks/icons.templ
new file mode 100644
index 000000000..67b0ee5b4
--- /dev/null
+++ b/blocks/icons.templ
@@ -0,0 +1,31 @@
+package blocks
+
+type Icons int
+
+const (
+ Icons_Info Icons = iota
+ Icons_Error
+ Icons_Success
+ Icons_Warning
+)
+
+func (v Icons) Render() templ.Component {
+ return renderIconVariant(v)
+}
+
+templ renderIconVariant(v Icons) {
+ switch v {
+ case Icons_Info:
+
+ case Icons_Error:
+
+ case Icons_Success:
+
+ case Icons_Warning:
+
+ }
+
+}
+
+templ SonrIcon() {
+}
diff --git a/blocks/icons_templ.go b/blocks/icons_templ.go
new file mode 100644
index 000000000..ab14ff8d4
--- /dev/null
+++ b/blocks/icons_templ.go
@@ -0,0 +1,100 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+type Icons int
+
+const (
+ Icons_Info Icons = iota
+ Icons_Error
+ Icons_Success
+ Icons_Warning
+)
+
+func (v Icons) Render() templ.Component {
+ return renderIconVariant(v)
+}
+
+func renderIconVariant(v Icons) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ switch v {
+ case Icons_Info:
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ case Icons_Error:
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ case Icons_Success:
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ case Icons_Warning:
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func SonrIcon() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var2 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var2 == nil {
+ templ_7745c5c3_Var2 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/blocks/layout.templ b/blocks/layout.templ
new file mode 100644
index 000000000..40c283d67
--- /dev/null
+++ b/blocks/layout.templ
@@ -0,0 +1,51 @@
+package blocks
+
+templ Layout(title string, remote bool) {
+
+
+
+ @Alpine(remote)
+ @Htmx(remote)
+ @Styles(remote)
+
+
+
+ { title }
+
+
+
+
+
+
+
+ { children... }
+
+
+
+}
+
+templ LayoutNoBody(title string, remote bool) {
+
+
+
+ @Alpine(remote)
+ @Htmx(remote)
+ @Styles(remote)
+
+
+
+ { title }
+
+
+
+
+
+
+
+
+ { children... }
+
+
+
+
+}
diff --git a/blocks/layout_templ.go b/blocks/layout_templ.go
new file mode 100644
index 000000000..b6d327e96
--- /dev/null
+++ b/blocks/layout_templ.go
@@ -0,0 +1,143 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+func Layout(title string, remote bool) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = Alpine(remote).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = Htmx(remote).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = Styles(remote).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var2 string
+ templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(title)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/layout.templ`, Line: 13, Col: 17}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func LayoutNoBody(title string, remote bool) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var3 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var3 == nil {
+ templ_7745c5c3_Var3 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = Alpine(remote).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = Htmx(remote).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = Styles(remote).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var4 string
+ templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(title)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/layout.templ`, Line: 37, Col: 17}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = templ_7745c5c3_Var3.Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/blocks/panel.templ b/blocks/panel.templ
new file mode 100644
index 000000000..4ca767061
--- /dev/null
+++ b/blocks/panel.templ
@@ -0,0 +1,39 @@
+package blocks
+
+import "github.com/labstack/echo/v4"
+
+templ Breadcrumbs() {
+
+}
+
+templ breadcrumbItem(title string, active bool) {
+ if (active) {
+ { title }
+ } else {
+ { title }
+ }
+}
+
+templ breadcrumbIcon() {
+
+}
+templ Panel(c echo.Context, id string) {
+}
diff --git a/blocks/panel_templ.go b/blocks/panel_templ.go
new file mode 100644
index 000000000..ef2446fdf
--- /dev/null
+++ b/blocks/panel_templ.go
@@ -0,0 +1,190 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+import "github.com/labstack/echo/v4"
+
+func Breadcrumbs() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func breadcrumbItem(title string, active bool) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var2 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var2 == nil {
+ templ_7745c5c3_Var2 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ if active {
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var3 string
+ templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(title)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/panel.templ`, Line: 25, Col: 126}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ } else {
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var4 string
+ templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(title)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `blocks/panel.templ`, Line: 27, Col: 118}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func breadcrumbIcon() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var5 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var5 == nil {
+ templ_7745c5c3_Var5 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func Panel(c echo.Context, id string) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var6 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var6 == nil {
+ templ_7745c5c3_Var6 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/blocks/sizes.templ b/blocks/sizes.templ
new file mode 100644
index 000000000..a36727643
--- /dev/null
+++ b/blocks/sizes.templ
@@ -0,0 +1,61 @@
+package blocks
+
+type Size int
+
+const (
+ SizeDefault Size = iota
+ SizeSmall
+ SizeMedium
+ SizeLarge
+)
+
+func (s Size) CardAttributes() templ.Attributes {
+ switch s {
+ case SizeSmall:
+ return templ.Attributes{
+ "class": "max-w-lg bg-white border rounded-lg shadow-sm p-7 border-neutral-200/60",
+ }
+ case SizeLarge:
+ return templ.Attributes{
+ "class": "max-w-2xl bg-white border rounded-lg shadow-sm p-7 border-neutral-200/60",
+ }
+ }
+ return templ.Attributes{
+ "class": "max-w-xl bg-white border rounded-lg shadow-sm p-7 border-neutral-200/60",
+ }
+}
+
+func (s Size) SvgAttributes() templ.Attributes {
+ switch s {
+ case SizeSmall:
+ return templ.Attributes{
+ "height": "16",
+ "width": "16",
+ }
+ case SizeLarge:
+ return templ.Attributes{
+ "height": "32",
+ "width": "32",
+ }
+ }
+ return templ.Attributes{
+ "height": "24",
+ "width": "24",
+ }
+}
+
+func (s Size) TextAttributes() templ.Attributes {
+ switch s {
+ case SizeSmall:
+ return templ.Attributes{
+ "class": "text-sm",
+ }
+ case SizeLarge:
+ return templ.Attributes{
+ "class": "text-lg",
+ }
+ }
+ return templ.Attributes{
+ "class": "text-md",
+ }
+}
diff --git a/blocks/sizes_templ.go b/blocks/sizes_templ.go
new file mode 100644
index 000000000..3a6e40584
--- /dev/null
+++ b/blocks/sizes_templ.go
@@ -0,0 +1,71 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.778
+package blocks
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+type Size int
+
+const (
+ SizeDefault Size = iota
+ SizeSmall
+ SizeMedium
+ SizeLarge
+)
+
+func (s Size) CardAttributes() templ.Attributes {
+ switch s {
+ case SizeSmall:
+ return templ.Attributes{
+ "class": "max-w-lg bg-white border rounded-lg shadow-sm p-7 border-neutral-200/60",
+ }
+ case SizeLarge:
+ return templ.Attributes{
+ "class": "max-w-2xl bg-white border rounded-lg shadow-sm p-7 border-neutral-200/60",
+ }
+ }
+ return templ.Attributes{
+ "class": "max-w-xl bg-white border rounded-lg shadow-sm p-7 border-neutral-200/60",
+ }
+}
+
+func (s Size) SvgAttributes() templ.Attributes {
+ switch s {
+ case SizeSmall:
+ return templ.Attributes{
+ "height": "16",
+ "width": "16",
+ }
+ case SizeLarge:
+ return templ.Attributes{
+ "height": "32",
+ "width": "32",
+ }
+ }
+ return templ.Attributes{
+ "height": "24",
+ "width": "24",
+ }
+}
+
+func (s Size) TextAttributes() templ.Attributes {
+ switch s {
+ case SizeSmall:
+ return templ.Attributes{
+ "class": "text-sm",
+ }
+ case SizeLarge:
+ return templ.Attributes{
+ "class": "text-lg",
+ }
+ }
+ return templ.Attributes{
+ "class": "text-md",
+ }
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/cmd/hway/server/server.go b/cmd/hway/server/server.go
index 687a6f196..9feba1d47 100644
--- a/cmd/hway/server/server.go
+++ b/cmd/hway/server/server.go
@@ -8,7 +8,7 @@ import (
"github.com/onsonr/sonr/internal/session"
"github.com/onsonr/sonr/pkg/nebula"
- "github.com/onsonr/sonr/pkg/nebula/pages"
+ "github.com/onsonr/sonr/pkg/nebula/router"
)
type Server struct {
@@ -25,11 +25,11 @@ func New() *Server {
s.Logger.Fatal(err)
}
- s.GET("/", pages.Home)
- s.GET("/login", pages.Login)
- s.GET("/register", pages.Register)
- s.GET("/profile", pages.Profile)
-
+ s.GET("/", router.Home)
+ s.GET("/login", router.Login)
+ s.GET("/register", router.Register)
+ s.GET("/profile", router.Profile)
+ s.GET("/authorize", router.Authorize)
return s
}
diff --git a/deploy/devenv/air.motr.toml b/deploy/devenv/air.motr.toml
deleted file mode 100644
index b56a4cb51..000000000
--- a/deploy/devenv/air.motr.toml
+++ /dev/null
@@ -1,49 +0,0 @@
-root = "."
-testdata_dir = "testdata"
-tmp_dir = "tmp"
-
-[build]
-delay = 1000
-cmd = "devbox run build:motr"
-exclude_dir = ["assets", "tmp", "vendor", "testdata"]
-exclude_file = []
-exclude_regex = ["_test.go"]
-exclude_unchanged = true
-follow_symlink = false
-full_bin = "devbox run start"
-include_dir = ["cmd/dwn", "cmd/motr", "internal", "models", "pkl"]
-include_ext = ["go", "templ", "html", "pkl", "js", "mjs", "proto"]
-include_file = [
- "Dockerfile",
- ".goreleaser.yaml",
- "go.mod",
- "devbox.json",
- ".air.toml",
-]
-kill_delay = "10s"
-log = "build-errors.log"
-poll = false
-poll_interval = 0
-post_cmd = ["devbox run stop"]
-pre_cmd = ["templ generate"]
-rerun = false
-rerun_delay = 1000
-send_interrupt = true
-stop_on_error = false
-
-[color]
-build = "yellow"
-main = "magenta"
-runner = "green"
-watcher = "cyan"
-
-[log]
-main_only = true
-time = true
-
-[misc]
-clean_on_exit = true
-
-[screen]
-clear_on_rebuild = true
-keep_scroll = true
diff --git a/deploy/devenv/air.sonr.toml b/deploy/devenv/air.sonr.toml
deleted file mode 100644
index b56a4cb51..000000000
--- a/deploy/devenv/air.sonr.toml
+++ /dev/null
@@ -1,49 +0,0 @@
-root = "."
-testdata_dir = "testdata"
-tmp_dir = "tmp"
-
-[build]
-delay = 1000
-cmd = "devbox run build:motr"
-exclude_dir = ["assets", "tmp", "vendor", "testdata"]
-exclude_file = []
-exclude_regex = ["_test.go"]
-exclude_unchanged = true
-follow_symlink = false
-full_bin = "devbox run start"
-include_dir = ["cmd/dwn", "cmd/motr", "internal", "models", "pkl"]
-include_ext = ["go", "templ", "html", "pkl", "js", "mjs", "proto"]
-include_file = [
- "Dockerfile",
- ".goreleaser.yaml",
- "go.mod",
- "devbox.json",
- ".air.toml",
-]
-kill_delay = "10s"
-log = "build-errors.log"
-poll = false
-poll_interval = 0
-post_cmd = ["devbox run stop"]
-pre_cmd = ["templ generate"]
-rerun = false
-rerun_delay = 1000
-send_interrupt = true
-stop_on_error = false
-
-[color]
-build = "yellow"
-main = "magenta"
-runner = "green"
-watcher = "cyan"
-
-[log]
-main_only = true
-time = true
-
-[misc]
-clean_on_exit = true
-
-[screen]
-clear_on_rebuild = true
-keep_scroll = true
diff --git a/deploy/release/hway.Dockerfile b/deploy/hway.Dockerfile
similarity index 100%
rename from deploy/release/hway.Dockerfile
rename to deploy/hway.Dockerfile
diff --git a/deploy/devenv/process-compose.yaml b/deploy/process-compose.yaml
similarity index 95%
rename from deploy/devenv/process-compose.yaml
rename to deploy/process-compose.yaml
index 559ef31b7..ce9aac967 100644
--- a/deploy/devenv/process-compose.yaml
+++ b/deploy/process-compose.yaml
@@ -13,6 +13,7 @@ processes:
namespace: testnet
command: "devbox run start:testnet"
restart: on_failure
+ env:
max_restarts: 1
depends:
- ipfs
@@ -31,5 +32,3 @@ processes:
command: "cloudflared tunnel run --token $TUNNEL_TOKEN"
restart: on_failure
max_restarts: 1
- depends:
- - caddy
diff --git a/deploy/release/sonrd.Dockerfile b/deploy/sonrd.Dockerfile
similarity index 100%
rename from deploy/release/sonrd.Dockerfile
rename to deploy/sonrd.Dockerfile
diff --git a/deploy/testnet/chains.yaml b/deploy/testnet/chains.yaml
deleted file mode 100644
index e8bf09694..000000000
--- a/deploy/testnet/chains.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-# This file is used to create docker images using the heighliner binary.
-# see: https://github.com/strangelove-ventures/heighliner
-
-# Sonr Node - Identity
-- name: sonr
- github-organization: onsonr
- github-repo: sonr
- dockerfile: cosmos
- build-target: make install
- binaries:
- - /go/bin/sonrd
- build-env:
- - LEDGER_ENABLED=false
- - BUILD_TAGS=muslc
-
-# Ethereum Node - Web3
-- name: evmos
- github-organization: tharsis
- github-repo: evmos
- dockerfile: cosmos
- build-target: make install
- binaries:
- - /go/bin/evmosd
-
-# Bitcoin Node - Gold
-- name: nomic
- github-organization: nomic-io
- github-repo: nomic
- dockerfile: cargo
- build-target: |
- TOOLCHAIN=$(cat rust-toolchain.toml | grep channel | awk '{print $3}' | tr -d '"')
- rustup component add rust-src --toolchain ${TOOLCHAIN}-$(uname -m)-unknown-linux-gnu
- cargo install --locked --path . -Zbuild-std
- binaries:
- - /build/nomic/target/${ARCH}-unknown-linux-gnu/release/nomic
- platforms:
- - linux/amd64
diff --git a/deploy/testnet/devbox.json b/deploy/testnet/devbox.json
deleted file mode 100644
index 621c39e7b..000000000
--- a/deploy/testnet/devbox.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.12.0/.schema/devbox.schema.json",
- "packages": [
- "go@1.22",
- "air@latest",
- "bun@latest",
- "ipfs@latest",
- "skate@latest",
- "cloudflared@latest",
- "process-compose@latest"
- ],
- "env": {
- "GOPATH": "$HOME/go",
- "PATH": "$HOME/go/bin:$PATH",
- "CHAIN_ID": "sonr-testnet-1",
- "DENOM": "usnr",
- "KEYRING": "test",
- "MONIKER": "florence",
- "BINARY": "sonrd",
- "ACC0_NAME": "acc0",
- "ACC1_NAME": "acc1",
- "ACC0_ADDRESS": "idx1efd63aw40lxf3n4mhf7dzhjkr453axur9vjt6y",
- "ACC1_ADDRESS": "idx1hj5fveer5cjtn4wd6wstzugjfdxzl0xpecp0nd",
- "ACC0_MNEMONIC": "$(skate get ACC0_MNEMONIC)",
- "ACC1_MNEMONIC": "$(skate get ACC1_MNEMONIC)",
- "TUNNEL_TOKEN": "$(skate get CLOUDFLARE_TUNNEL_TOKEN)",
- "TEMPL_EXPERIMENT": "rawgo"
- },
- "shell": {
- "scripts": {
- "dev": [
- "air"
- ],
- "build:docker": [
- "make local-image"
- ],
- "build:motr": [
- "make nebula",
- "make motr"
- ],
- "build:nebula": [
- "make nebula"
- ],
- "build:sonrd": [
- "make dwn",
- "make build"
- ],
- "build": [
- "make dwn",
- "make build",
- "make motr"
- ],
- "gen:proto": [
- "make proto-gen"
- ],
- "gen:pkl": [
- "make pkl"
- ],
- "gen:templ": [
- "make templ"
- ],
- "start:motr": [
- "make templ",
- "make motr",
- "make start-motr"
- ],
- "start:testnet": [
- "make templ",
- "make install",
- "make sh-testnet"
- ],
- "start": [
- "process-compose up -d"
- ],
- "stop": [
- "process-compose down"
- ],
- "test:e2e": [
- "make templ",
- "make test-e2e"
- ],
- "test:unit": [
- "make templ",
- "make test-unit"
- ],
- "test": [
- "make templ",
- "make test"
- ]
- }
- }
-}
diff --git a/deploy/testnet/docker-compose.yaml b/deploy/testnet/docker-compose.yaml
deleted file mode 100644
index 9b7687ed8..000000000
--- a/deploy/testnet/docker-compose.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-version: "3"
-
-services:
- sonr-node:
- build:
- context: .
- dockerfile: Dockerfile
- volumes:
- - /home/prad/.scnr:/root/.sonr
- ports:
- - "26657:26657"
- - "1317:1317"
- - "9090:9090"
- environment:
- - CHAIN_ID=local-1
- - MONIKER=localvalidator
- - KEYRING=test
- - KEY=user1
- - KEY2=user2
- - DENOM=usnr
- - CLEAN=true
- - BLOCK_TIME=5s
- command: "start --pruning=nothing"
- restart: always
- networks:
- - sonr-network
-
-networks:
- sonr-network:
- name: sonr-network
diff --git a/deploy/testnet/process-compose.yaml b/deploy/testnet/process-compose.yaml
deleted file mode 100644
index cbdb46769..000000000
--- a/deploy/testnet/process-compose.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-version: "0.6"
-
-processes:
- ipfs:
- namespace: testnet
- command: "sh scripts/setup_ipfs.sh"
- background: true
- availability:
- restart: on_failure
- max_restarts: 0
-
- sonr:
- namespace: testnet
- command: "devbox run start:testnet"
- restart: on_failure
- env:
- max_restarts: 1
- depends:
- - ipfs
-
- hway:
- namespace: testnet
- command: "hway start"
- restart: on_failure
- max_restarts: 1
- depends:
- - ipfs
- - sonr
-
- tunnel:
- namespace: public
- command: "cloudflared tunnel run --token $TUNNEL_TOKEN"
- restart: on_failure
- max_restarts: 1
- depends:
- - caddy
diff --git a/devbox.json b/devbox.json
index d581ab05b..6b228130e 100644
--- a/devbox.json
+++ b/devbox.json
@@ -6,6 +6,7 @@
"bun@latest",
"gum@latest",
"ipfs@latest",
+ "mprocs@latest",
"skate@latest",
"templ@latest",
"cloudflared@latest",
@@ -30,9 +31,6 @@
},
"shell": {
"scripts": {
- "dev": [
- "air"
- ],
"build:docker": [
"make local-image"
],
@@ -65,10 +63,18 @@
"make templ"
],
"start": [
- "process-compose up -f ./deploy/testnet/process-compose.yaml"
+ "process-compose up -f ./deploy/process-compose.yaml"
],
"stop": [
- "process-compose down -f ./deploy/testnet/process-compose.yaml"
+ "process-compose down -f ./deploy/process-compose.yaml"
+ ],
+ "start:testnet": [
+ "make sh-testnet"
+ ],
+ "start:hway": [
+ "make nebula",
+ "make hway",
+ "./build/hway start"
]
}
}
diff --git a/devbox.lock b/devbox.lock
index c1a5a041d..da682f38f 100644
--- a/devbox.lock
+++ b/devbox.lock
@@ -247,6 +247,54 @@
"source": "devbox-search",
"version": "0.17.0"
},
+ "mprocs@latest": {
+ "last_modified": "2024-09-10T15:01:03Z",
+ "resolved": "github:NixOS/nixpkgs/5ed627539ac84809c78b2dd6d26a5cebeb5ae269#mprocs",
+ "source": "devbox-search",
+ "version": "0.7.1",
+ "systems": {
+ "aarch64-darwin": {
+ "outputs": [
+ {
+ "name": "out",
+ "path": "/nix/store/sri1rv6phxhcvgwknd3zv98km6s1740b-mprocs-0.7.1",
+ "default": true
+ }
+ ],
+ "store_path": "/nix/store/sri1rv6phxhcvgwknd3zv98km6s1740b-mprocs-0.7.1"
+ },
+ "aarch64-linux": {
+ "outputs": [
+ {
+ "name": "out",
+ "path": "/nix/store/7q84qjs24xd9jf2wvn7f39gvxsn5n33q-mprocs-0.7.1",
+ "default": true
+ }
+ ],
+ "store_path": "/nix/store/7q84qjs24xd9jf2wvn7f39gvxsn5n33q-mprocs-0.7.1"
+ },
+ "x86_64-darwin": {
+ "outputs": [
+ {
+ "name": "out",
+ "path": "/nix/store/47j50bgr6mxlvdjddh0li810wkld34qb-mprocs-0.7.1",
+ "default": true
+ }
+ ],
+ "store_path": "/nix/store/47j50bgr6mxlvdjddh0li810wkld34qb-mprocs-0.7.1"
+ },
+ "x86_64-linux": {
+ "outputs": [
+ {
+ "name": "out",
+ "path": "/nix/store/6vrvg4jhv2yg8y326dmrxsz3yddkqgzq-mprocs-0.7.1",
+ "default": true
+ }
+ ],
+ "store_path": "/nix/store/6vrvg4jhv2yg8y326dmrxsz3yddkqgzq-mprocs-0.7.1"
+ }
+ }
+ },
"process-compose@latest": {
"last_modified": "2024-09-15T21:49:16Z",
"resolved": "github:NixOS/nixpkgs/039b72d0c738c934e2e36d7fc5520d1b425287a6#process-compose",
diff --git a/internal/headers/request.go b/internal/headers/request.go
index c7a3580b6..cdbb59ffc 100644
--- a/internal/headers/request.go
+++ b/internal/headers/request.go
@@ -1,20 +1,14 @@
package headers
type RequestHeaders struct {
- Authorization *string `header:"Authorization"`
- CacheControl *string `header:"Cache-Control"`
- DeviceMemory *string `header:"Device-Memory"`
- Forwarded *string `header:"Forwarded"`
- From *string `header:"From"`
- Host *string `header:"Host"`
- Link *string `header:"Link"`
- PermissionsPolicy *string `header:"Permissions-Policy"`
- ProxyAuthorization *string `header:"Proxy-Authorization"`
- Referer *string `header:"Referer"`
- UserAgent *string `header:"User-Agent"`
- ViewportWidth *string `header:"Viewport-Width"`
- Width *string `header:"Width"`
- WWWAuthenticate *string `header:"WWW-Authenticate"`
+ CacheControl *string `header:"Cache-Control"`
+ DeviceMemory *string `header:"Device-Memory"`
+ From *string `header:"From"`
+ Host *string `header:"Host"`
+ Referer *string `header:"Referer"`
+ UserAgent *string `header:"User-Agent"`
+ ViewportWidth *string `header:"Viewport-Width"`
+ Width *string `header:"Width"`
// HTMX Specific
HXBoosted *string `header:"HX-Boosted"`
@@ -26,3 +20,12 @@ type RequestHeaders struct {
HXTriggerName *string `header:"HX-Trigger-Name"`
HXTrigger *string `header:"HX-Trigger"`
}
+
+type ProtectedRequestHeaders struct {
+ Authorization *string `header:"Authorization"`
+ Forwarded *string `header:"Forwarded"`
+ Link *string `header:"Link"`
+ PermissionsPolicy *string `header:"Permissions-Policy"`
+ ProxyAuthorization *string `header:"Proxy-Authorization"`
+ WWWAuthenticate *string `header:"WWW-Authenticate"`
+}
diff --git a/internal/headers/response.go b/internal/headers/response.go
index 31050126b..271d5431e 100644
--- a/internal/headers/response.go
+++ b/internal/headers/response.go
@@ -1,18 +1,6 @@
package headers
type ResponseHeaders struct {
- AcceptCH *string `header:"Accept-CH"`
- AccessControlAllowCredentials *string `header:"Access-Control-Allow-Credentials"`
- AccessControlAllowHeaders *string `header:"Access-Control-Allow-Headers"`
- AccessControlAllowMethods *string `header:"Access-Control-Allow-Methods"`
- AccessControlExposeHeaders *string `header:"Access-Control-Expose-Headers"`
- AccessControlRequestHeaders *string `header:"Access-Control-Request-Headers"`
- ContentSecurityPolicy *string `header:"Content-Security-Policy"`
- CrossOriginEmbedderPolicy *string `header:"Cross-Origin-Embedder-Policy"`
- PermissionsPolicy *string `header:"Permissions-Policy"`
- ProxyAuthorization *string `header:"Proxy-Authorization"`
- WWWAuthenticate *string `header:"WWW-Authenticate"`
-
// HTMX Specific
HXLocation *string `header:"HX-Location"`
HXPushURL *string `header:"HX-Push-Url"`
@@ -26,3 +14,17 @@ type ResponseHeaders struct {
HXTriggerAfterSettle *string `header:"HX-Trigger-After-Settle"`
HXTriggerAfterSwap *string `header:"HX-Trigger-After-Swap"`
}
+
+type ProtectedResponseHeaders struct {
+ AcceptCH *string `header:"Accept-CH"`
+ AccessControlAllowCredentials *string `header:"Access-Control-Allow-Credentials"`
+ AccessControlAllowHeaders *string `header:"Access-Control-Allow-Headers"`
+ AccessControlAllowMethods *string `header:"Access-Control-Allow-Methods"`
+ AccessControlExposeHeaders *string `header:"Access-Control-Expose-Headers"`
+ AccessControlRequestHeaders *string `header:"Access-Control-Request-Headers"`
+ ContentSecurityPolicy *string `header:"Content-Security-Policy"`
+ CrossOriginEmbedderPolicy *string `header:"Cross-Origin-Embedder-Policy"`
+ PermissionsPolicy *string `header:"Permissions-Policy"`
+ ProxyAuthorization *string `header:"Proxy-Authorization"`
+ WWWAuthenticate *string `header:"WWW-Authenticate"`
+}
diff --git a/pkg/dwn/dwn.pkl b/pkg/dwn/dwn.pkl
deleted file mode 100644
index a05351b00..000000000
--- a/pkg/dwn/dwn.pkl
+++ /dev/null
@@ -1,31 +0,0 @@
-amends "https://pkl.sh/DWN.pkl";
-
-dwn = new Config {
- ipfs = new IPFS {
- apiUrl = "https://api.sonr-ipfs.land";
- gatewayUrl = "https://ipfs.sonr.land";
- };
- sonr = new Sonr {
- apiUrl = "https://api.sonr.land";
- grpcUrl = "https://grpc.sonr.land";
- rpcUrl = "https://rpc.sonr.land";
- webSocketUrl = "wss://rpc.sonr.land/ws";
- chainId = "sonr";
- };
- motr = new Motr {
- keyshare = JSON.parse(keyshare);
- address = address;
- origin = "sonr.id";
- };
- schema = new Schema {
- version = 1;
- account = "account";
- asset = "asset";
- chain = "chain";
- credential = "credential";
- jwk = "jwk";
- grant = "grant";
- keyshare = "keyshare";
- profile = "profile";
- };
-};
diff --git a/pkg/nebula/assets/css/styles.css b/pkg/nebula/assets/css/styles.css
index b693978f8..128f5f51d 100644
--- a/pkg/nebula/assets/css/styles.css
+++ b/pkg/nebula/assets/css/styles.css
@@ -968,10 +968,6 @@ select{
}
}
-.invisible{
- visibility: hidden;
-}
-
.fixed{
position: fixed;
}
@@ -1057,16 +1053,6 @@ select{
margin-right: -1.5rem;
}
-.mx-0{
- margin-left: 0px;
- margin-right: 0px;
-}
-
-.mx-3{
- margin-left: 0.75rem;
- margin-right: 0.75rem;
-}
-
.mx-6{
margin-left: 1.5rem;
margin-right: 1.5rem;
@@ -1109,10 +1095,6 @@ select{
margin-left: 0.5rem;
}
-.mr-0\.5{
- margin-right: 0.125rem;
-}
-
.mr-1{
margin-right: 0.25rem;
}
@@ -1137,10 +1119,6 @@ select{
margin-right: 1.75rem;
}
-.mt-0\.5{
- margin-top: 0.125rem;
-}
-
.mt-1{
margin-top: 0.25rem;
}
@@ -1181,10 +1159,6 @@ select{
display: block;
}
-.inline-block{
- display: inline-block;
-}
-
.flex{
display: flex;
}
@@ -1193,50 +1167,22 @@ select{
display: inline-flex;
}
-.table{
- display: table;
-}
-
.grid{
display: grid;
}
-.inline-grid{
- display: inline-grid;
-}
-
.hidden{
display: none;
}
-.aspect-video{
- aspect-ratio: 16 / 9;
-}
-
.h-0\.5{
height: 0.125rem;
}
-.h-1{
- height: 0.25rem;
-}
-
-.h-1\.5{
- height: 0.375rem;
-}
-
-.h-1\/4{
- height: 25%;
-}
-
.h-10{
height: 2.5rem;
}
-.h-12{
- height: 3rem;
-}
-
.h-14{
height: 3.5rem;
}
@@ -1245,10 +1191,6 @@ select{
height: 5rem;
}
-.h-24{
- height: 6rem;
-}
-
.h-3{
height: 0.75rem;
}
@@ -1277,18 +1219,10 @@ select{
height: 2.25rem;
}
-.h-\[18px\]{
- height: 18px;
-}
-
.h-\[280px\]{
height: 280px;
}
-.h-\[360px\]{
- height: 360px;
-}
-
.h-auto{
height: auto;
}
@@ -1309,22 +1243,10 @@ select{
width: 0px;
}
-.w-1\/2{
- width: 50%;
-}
-
.w-1\/3{
width: 33.333333%;
}
-.w-10{
- width: 2.5rem;
-}
-
-.w-12{
- width: 3rem;
-}
-
.w-14{
width: 3.5rem;
}
@@ -1337,10 +1259,6 @@ select{
width: 5rem;
}
-.w-24{
- width: 6rem;
-}
-
.w-3{
width: 0.75rem;
}
@@ -1361,10 +1279,6 @@ select{
width: 2rem;
}
-.w-\[18px\]{
- width: 18px;
-}
-
.w-\[22rem\]{
width: 22rem;
}
@@ -1398,14 +1312,6 @@ select{
width: 100vw;
}
-.min-w-\[640px\]{
- min-width: 640px;
-}
-
-.min-w-full{
- min-width: 100%;
-}
-
.max-w-2xl{
max-width: 42rem;
}
@@ -1506,16 +1412,6 @@ select{
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
-.-translate-y-8{
- --tw-translate-y: -2rem;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
-.-translate-y-full{
- --tw-translate-y: -100%;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
.-translate-y-px{
--tw-translate-y: -1px;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -1526,21 +1422,11 @@ select{
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
-.translate-x-0\.5{
- --tw-translate-x: 0.125rem;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
.translate-x-8{
--tw-translate-x: 2rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
-.translate-x-px{
- --tw-translate-x: 1px;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
.translate-y-0{
--tw-translate-y: 0px;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -1571,11 +1457,6 @@ select{
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
-.translate-y-px{
- --tw-translate-y: 1px;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
.rotate-1{
--tw-rotate: 1deg;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -1587,18 +1468,6 @@ select{
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
-.scale-50{
- --tw-scale-x: .5;
- --tw-scale-y: .5;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
-.scale-75{
- --tw-scale-x: .75;
- --tw-scale-y: .75;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
.scale-90{
--tw-scale-x: .9;
--tw-scale-y: .9;
@@ -1645,26 +1514,10 @@ select{
cursor: pointer;
}
-.select-none{
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
-}
-
-.appearance-none{
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
-}
-
.grid-cols-2{
grid-template-columns: repeat(2, minmax(0, 1fr));
}
-.grid-cols-3{
- grid-template-columns: repeat(3, minmax(0, 1fr));
-}
-
.flex-row{
flex-direction: row;
}
@@ -1780,12 +1633,6 @@ select{
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
-.space-y-3 > :not([hidden]) ~ :not([hidden]){
- --tw-space-y-reverse: 0;
- margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
-}
-
.space-y-4 > :not([hidden]) ~ :not([hidden]){
--tw-space-y-reverse: 0;
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
@@ -1798,29 +1645,10 @@ select{
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
-.divide-y > :not([hidden]) ~ :not([hidden]){
- --tw-divide-y-reverse: 0;
- border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
- border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
-}
-
-.divide-neutral-200 > :not([hidden]) ~ :not([hidden]){
- --tw-divide-opacity: 1;
- border-color: rgb(229 229 229 / var(--tw-divide-opacity));
-}
-
.overflow-hidden{
overflow: hidden;
}
-.overflow-x-auto{
- overflow-x: auto;
-}
-
-.whitespace-nowrap{
- white-space: nowrap;
-}
-
.rounded{
border-radius: 0.25rem;
}
@@ -1867,15 +1695,6 @@ select{
border-color: rgb(37 99 235 / var(--tw-border-opacity));
}
-.border-gray-100{
- --tw-border-opacity: 1;
- border-color: rgb(243 244 246 / var(--tw-border-opacity));
-}
-
-.border-gray-200\/70{
- border-color: rgb(229 231 235 / 0.7);
-}
-
.border-green-600{
--tw-border-opacity: 1;
border-color: rgb(22 163 74 / var(--tw-border-opacity));
@@ -1933,11 +1752,6 @@ select{
border-color: rgb(212 212 216 / var(--tw-border-opacity));
}
-.bg-black{
- --tw-bg-opacity: 1;
- background-color: rgb(0 0 0 / var(--tw-bg-opacity));
-}
-
.bg-blue-50{
--tw-bg-opacity: 1;
background-color: rgb(239 246 255 / var(--tw-bg-opacity));
@@ -1948,21 +1762,11 @@ select{
background-color: rgb(37 99 235 / var(--tw-bg-opacity));
}
-.bg-gray-100{
- --tw-bg-opacity: 1;
- background-color: rgb(243 244 246 / var(--tw-bg-opacity));
-}
-
.bg-green-50{
--tw-bg-opacity: 1;
background-color: rgb(240 253 244 / var(--tw-bg-opacity));
}
-.bg-green-500{
- --tw-bg-opacity: 1;
- background-color: rgb(34 197 94 / var(--tw-bg-opacity));
-}
-
.bg-green-600{
--tw-bg-opacity: 1;
background-color: rgb(22 163 74 / var(--tw-bg-opacity));
@@ -2007,11 +1811,6 @@ select{
background-color: rgb(254 252 232 / var(--tw-bg-opacity));
}
-.bg-yellow-500{
- --tw-bg-opacity: 1;
- background-color: rgb(234 179 8 / var(--tw-bg-opacity));
-}
-
.bg-yellow-600{
--tw-bg-opacity: 1;
background-color: rgb(202 138 4 / var(--tw-bg-opacity));
@@ -2037,30 +1836,14 @@ select{
background-color: rgb(24 24 27 / var(--tw-bg-opacity));
}
-.bg-opacity-0{
- --tw-bg-opacity: 0;
-}
-
-.bg-opacity-20{
- --tw-bg-opacity: 0.2;
-}
-
.bg-opacity-50{
--tw-bg-opacity: 0.5;
}
-.bg-opacity-80{
- --tw-bg-opacity: 0.8;
-}
-
.bg-opacity-90{
--tw-bg-opacity: 0.9;
}
-.bg-gradient-to-b{
- background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
-}
-
.bg-gradient-to-r{
background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
@@ -2075,12 +1858,6 @@ select{
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
-.from-transparent{
- --tw-gradient-from: transparent var(--tw-gradient-from-position);
- --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
-}
-
.from-zinc-100{
--tw-gradient-from: #f4f4f5 var(--tw-gradient-from-position);
--tw-gradient-to: rgb(244 244 245 / 0) var(--tw-gradient-to-position);
@@ -2098,14 +1875,6 @@ select{
--tw-gradient-stops: var(--tw-gradient-from), #18181b var(--tw-gradient-via-position), var(--tw-gradient-to);
}
-.to-black{
- --tw-gradient-to: #000 var(--tw-gradient-to-position);
-}
-
-.to-transparent{
- --tw-gradient-to: transparent var(--tw-gradient-to-position);
-}
-
.to-white{
--tw-gradient-to: #fff var(--tw-gradient-to-position);
}
@@ -2235,11 +2004,6 @@ select{
padding-bottom: 0.5rem;
}
-.py-3{
- padding-top: 0.75rem;
- padding-bottom: 0.75rem;
-}
-
.py-4{
padding-top: 1rem;
padding-bottom: 1rem;
@@ -2337,10 +2101,6 @@ select{
text-align: center;
}
-.text-right{
- text-align: right;
-}
-
.align-top{
vertical-align: top;
}
@@ -2353,10 +2113,6 @@ select{
font-family: Inter Tight, sans-serif;
}
-.font-mono{
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
-}
-
.font-sans{
font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
@@ -2489,16 +2245,6 @@ select{
color: rgb(75 85 99 / var(--tw-text-opacity));
}
-.text-gray-700{
- --tw-text-opacity: 1;
- color: rgb(55 65 81 / var(--tw-text-opacity));
-}
-
-.text-gray-900{
- --tw-text-opacity: 1;
- color: rgb(17 24 39 / var(--tw-text-opacity));
-}
-
.text-green-500{
--tw-text-opacity: 1;
color: rgb(34 197 94 / var(--tw-text-opacity));
@@ -2623,14 +2369,6 @@ select{
opacity: 1;
}
-.opacity-20{
- opacity: 0.2;
-}
-
-.opacity-50{
- opacity: 0.5;
-}
-
.opacity-60{
opacity: 0.6;
}
@@ -2639,10 +2377,6 @@ select{
opacity: 0.7;
}
-.opacity-80{
- opacity: 0.8;
-}
-
.opacity-90{
opacity: 0.9;
}
@@ -2699,34 +2433,16 @@ select{
transition-duration: 150ms;
}
-.transition-all{
- transition-property: all;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
.transition-colors{
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
-.delay-200{
- transition-delay: 200ms;
-}
-
.duration-100{
transition-duration: 100ms;
}
-.duration-1000{
- transition-duration: 1000ms;
-}
-
-.duration-150{
- transition-duration: 150ms;
-}
-
.duration-200{
transition-duration: 200ms;
}
@@ -3168,16 +2884,6 @@ input[type="search"]::-webkit-search-results-decoration {
/* Firefox */
}
-.placeholder\:text-neutral-400::-moz-placeholder{
- --tw-text-opacity: 1;
- color: rgb(163 163 163 / var(--tw-text-opacity));
-}
-
-.placeholder\:text-neutral-400::placeholder{
- --tw-text-opacity: 1;
- color: rgb(163 163 163 / var(--tw-text-opacity));
-}
-
.placeholder\:text-neutral-500::-moz-placeholder{
--tw-text-opacity: 1;
color: rgb(115 115 115 / var(--tw-text-opacity));
@@ -3386,12 +3092,6 @@ input[type="search"]::-webkit-search-results-decoration {
display: none;
}
-.hover\:scale-100:hover{
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
.hover\:bg-blue-100:hover{
--tw-bg-opacity: 1;
background-color: rgb(219 234 254 / var(--tw-bg-opacity));
@@ -3407,11 +3107,6 @@ input[type="search"]::-webkit-search-results-decoration {
background-color: rgb(29 78 216 / var(--tw-bg-opacity));
}
-.hover\:bg-gray-50:hover{
- --tw-bg-opacity: 1;
- background-color: rgb(249 250 251 / var(--tw-bg-opacity));
-}
-
.hover\:bg-green-100:hover{
--tw-bg-opacity: 1;
background-color: rgb(220 252 231 / var(--tw-bg-opacity));
@@ -3487,11 +3182,6 @@ input[type="search"]::-webkit-search-results-decoration {
color: rgb(37 99 235 / var(--tw-text-opacity));
}
-.hover\:text-blue-700:hover{
- --tw-text-opacity: 1;
- color: rgb(29 78 216 / var(--tw-text-opacity));
-}
-
.hover\:text-green-600:hover{
--tw-text-opacity: 1;
color: rgb(22 163 74 / var(--tw-text-opacity));
@@ -3590,11 +3280,6 @@ input[type="search"]::-webkit-search-results-decoration {
--tw-ring-color: rgb(29 78 216 / var(--tw-ring-opacity));
}
-.focus\:ring-gray-700:focus{
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity));
-}
-
.focus\:ring-green-100:focus{
--tw-ring-opacity: 1;
--tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity));
@@ -3680,19 +3365,6 @@ input[type="search"]::-webkit-search-results-decoration {
opacity: 0.5;
}
-.group:hover .group-hover\:visible{
- visibility: visible;
-}
-
-.group:hover .group-hover\:mx-1{
- margin-left: 0.25rem;
- margin-right: 0.25rem;
-}
-
-.group:hover .group-hover\:w-12{
- width: 3rem;
-}
-
.group:hover .group-hover\:w-full{
width: 100%;
}
@@ -3702,12 +3374,6 @@ input[type="search"]::-webkit-search-results-decoration {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
-.group:hover .group-hover\:scale-110{
- --tw-scale-x: 1.1;
- --tw-scale-y: 1.1;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
.group:hover .group-hover\:scale-150{
--tw-scale-x: 1.5;
--tw-scale-y: 1.5;
@@ -4062,216 +3728,11 @@ input[type="search"]::-webkit-search-results-decoration {
}
}
-.\[\&\:\:-moz-range-progress\]\:rounded-full::-moz-range-progress{
- border-radius: 9999px;
-}
-
-.\[\&\:\:-moz-range-progress\]\:bg-blue-600::-moz-range-progress{
- --tw-bg-opacity: 1;
- background-color: rgb(37 99 235 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-moz-range-progress\]\:bg-white::-moz-range-progress{
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-moz-range-progress\]\:bg-opacity-80::-moz-range-progress{
- --tw-bg-opacity: 0.8;
-}
-
-.\[\&\:\:-moz-range-thumb\]\:h-1\.5::-moz-range-thumb{
- height: 0.375rem;
-}
-
-.\[\&\:\:-moz-range-thumb\]\:h-2::-moz-range-thumb{
- height: 0.5rem;
-}
-
-.\[\&\:\:-moz-range-thumb\]\:w-1\.5::-moz-range-thumb{
- width: 0.375rem;
-}
-
-.\[\&\:\:-moz-range-thumb\]\:w-2::-moz-range-thumb{
- width: 0.5rem;
-}
-
-.\[\&\:\:-moz-range-thumb\]\:appearance-none::-moz-range-thumb{
- -moz-appearance: none;
- appearance: none;
-}
-
-.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{
- border-radius: 9999px;
-}
-
-.\[\&\:\:-moz-range-thumb\]\:border-0::-moz-range-thumb{
- border-width: 0px;
-}
-
-.\[\&\:\:-moz-range-thumb\]\:bg-white::-moz-range-thumb{
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-moz-range-track\]\:rounded-full::-moz-range-track{
- border-radius: 9999px;
-}
-
-.\[\&\:\:-moz-range-track\]\:bg-neutral-200::-moz-range-track{
- --tw-bg-opacity: 1;
- background-color: rgb(229 229 229 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-ms-fill-lower\]\:rounded-full::-ms-fill-lower{
- border-radius: 9999px;
-}
-
-.\[\&\:\:-ms-fill-lower\]\:bg-blue-600::-ms-fill-lower{
- --tw-bg-opacity: 1;
- background-color: rgb(37 99 235 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-ms-fill-lower\]\:bg-white::-ms-fill-lower{
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-ms-fill-lower\]\:bg-opacity-80::-ms-fill-lower{
- --tw-bg-opacity: 0.8;
-}
-
-.\[\&\:\:-ms-thumb\]\:h-1\.5::-ms-thumb{
- height: 0.375rem;
-}
-
-.\[\&\:\:-ms-thumb\]\:h-2::-ms-thumb{
- height: 0.5rem;
-}
-
-.\[\&\:\:-ms-thumb\]\:w-1\.5::-ms-thumb{
- width: 0.375rem;
-}
-
-.\[\&\:\:-ms-thumb\]\:w-2::-ms-thumb{
- width: 0.5rem;
-}
-
-.\[\&\:\:-ms-thumb\]\:appearance-none::-ms-thumb{
- appearance: none;
-}
-
-.\[\&\:\:-ms-thumb\]\:rounded-full::-ms-thumb{
- border-radius: 9999px;
-}
-
-.\[\&\:\:-ms-thumb\]\:border-0::-ms-thumb{
- border-width: 0px;
-}
-
-.\[\&\:\:-ms-thumb\]\:bg-white::-ms-thumb{
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-ms-track\]\:rounded-full::-ms-track{
- border-radius: 9999px;
-}
-
-.\[\&\:\:-ms-track\]\:bg-neutral-200::-ms-track{
- --tw-bg-opacity: 1;
- background-color: rgb(229 229 229 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-webkit-slider-runnable-track\]\:overflow-hidden::-webkit-slider-runnable-track{
- overflow: hidden;
-}
-
-.\[\&\:\:-webkit-slider-runnable-track\]\:rounded-full::-webkit-slider-runnable-track{
- border-radius: 9999px;
-}
-
-.\[\&\:\:-webkit-slider-runnable-track\]\:bg-white::-webkit-slider-runnable-track{
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-webkit-slider-runnable-track\]\:bg-opacity-30::-webkit-slider-runnable-track{
- --tw-bg-opacity: 0.3;
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:h-1\.5::-webkit-slider-thumb{
- height: 0.375rem;
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:h-2::-webkit-slider-thumb{
- height: 0.5rem;
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:w-1\.5::-webkit-slider-thumb{
- width: 0.375rem;
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:w-2::-webkit-slider-thumb{
- width: 0.5rem;
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{
- -webkit-appearance: none;
- appearance: none;
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{
- border-radius: 9999px;
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:border-0::-webkit-slider-thumb{
- border-width: 0px;
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:bg-white::-webkit-slider-thumb{
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity));
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:shadow-\[-995px_0px_0px_990px_\#2463eb\]::-webkit-slider-thumb{
- --tw-shadow: -995px 0px 0px 990px #2463eb;
- --tw-shadow-colored: -995px 0px 0px 990px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.\[\&\:\:-webkit-slider-thumb\]\:shadow-\[-995px_0px_0px_990px_rgba\(255\2c _255\2c _255\2c _0\.8\)\]::-webkit-slider-thumb{
- --tw-shadow: -995px 0px 0px 990px rgba(255, 255, 255, 0.8);
- --tw-shadow-colored: -995px 0px 0px 990px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.\[\&\:has\(svg\)\]\:pl-11:has(svg){
- padding-left: 2.75rem;
-}
-
.\[\&\>div\]\:mx-3>div{
margin-left: 0.75rem;
margin-right: 0.75rem;
}
-.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{
- --tw-translate-y: -3px;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
-}
-
-.\[\&\>svg\]\:absolute>svg{
- position: absolute;
-}
-
-.\[\&\>svg\]\:left-4>svg{
- left: 1rem;
-}
-
-.\[\&\>svg\]\:top-4>svg{
- top: 1rem;
-}
-
.\[\&_\.active-breadcrumb\]\:font-medium .active-breadcrumb{
font-weight: 500;
}
diff --git a/pkg/nebula/components/blocks/alert.templ b/pkg/nebula/components/blocks/alert.templ
deleted file mode 100644
index cc3d580a7..000000000
--- a/pkg/nebula/components/blocks/alert.templ
+++ /dev/null
@@ -1,67 +0,0 @@
-package blocks
-
-func Alert(variant Variant, icon Icon, title, message string) templ.Component {
- return alertElement(variant.Attributes(), title, message, icon.Render())
-}
-
-templ alertElement(attrs templ.Attributes, title, message string, icon templ.Component) {
-
- @icon
-
{ title }
-
{ message }
-
-}
-
-type AlertVariant int
-
-const (
- AlertVariant_Default AlertVariant = iota
- AlertVariant_Info
- AlertVariant_Error
- AlertVariant_Success
- AlertVariant_Warning
- AlertVariant_Subtle_Info
- AlertVariant_Subtle_Error
- AlertVariant_Subtle_Success
- AlertVariant_Subtle_Warning
-)
-
-func (v AlertVariant) Attributes() templ.Attributes {
- switch v {
- case AlertVariant_Info:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-blue-600 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-white",
- }
- case AlertVariant_Error:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-red-600 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-white",
- }
- case AlertVariant_Success:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-green-500 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-white",
- }
- case AlertVariant_Warning:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-yellow-500 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-white",
- }
- case AlertVariant_Subtle_Info:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-blue-50 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-blue-600",
- }
- case AlertVariant_Subtle_Error:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-red-50 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-red-600",
- }
- case AlertVariant_Subtle_Success:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-green-50 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-green-600",
- }
- case AlertVariant_Subtle_Warning:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-yellow-50 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-yellow-600",
- }
- }
- return templ.Attributes{
- "class": "relative w-full rounded-lg border bg-white p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-neutral-900",
- }
-}
diff --git a/pkg/nebula/components/blocks/alert_templ.go b/pkg/nebula/components/blocks/alert_templ.go
deleted file mode 100644
index 1fb33d230..000000000
--- a/pkg/nebula/components/blocks/alert_templ.go
+++ /dev/null
@@ -1,140 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.778
-package blocks
-
-//lint:file-ignore SA4006 This context is only used if a nested component is present.
-
-import "github.com/a-h/templ"
-import templruntime "github.com/a-h/templ/runtime"
-
-func Alert(variant Variant, icon Icon, title, message string) templ.Component {
- return alertElement(variant.Attributes(), title, message, icon.Render())
-}
-
-func alertElement(attrs templ.Attributes, title, message string, icon templ.Component) templ.Component {
- return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
- templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
- if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
- return templ_7745c5c3_CtxErr
- }
- templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
- if !templ_7745c5c3_IsBuffer {
- defer func() {
- templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err == nil {
- templ_7745c5c3_Err = templ_7745c5c3_BufErr
- }
- }()
- }
- ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var1 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var1 == nil {
- templ_7745c5c3_Var1 = templ.NopComponent
- }
- ctx = templ.ClearChildren(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- templ_7745c5c3_Err = icon.Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- var templ_7745c5c3_Var2 string
- templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(title)
- if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/nebula/components/blocks/alert.templ`, Line: 10, Col: 66}
- }
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- var templ_7745c5c3_Var3 string
- templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(message)
- if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/nebula/components/blocks/alert.templ`, Line: 11, Col: 43}
- }
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
-}
-
-type AlertVariant int
-
-const (
- AlertVariant_Default AlertVariant = iota
- AlertVariant_Info
- AlertVariant_Error
- AlertVariant_Success
- AlertVariant_Warning
- AlertVariant_Subtle_Info
- AlertVariant_Subtle_Error
- AlertVariant_Subtle_Success
- AlertVariant_Subtle_Warning
-)
-
-func (v AlertVariant) Attributes() templ.Attributes {
- switch v {
- case AlertVariant_Info:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-blue-600 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-white",
- }
- case AlertVariant_Error:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-red-600 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-white",
- }
- case AlertVariant_Success:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-green-500 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-white",
- }
- case AlertVariant_Warning:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-yellow-500 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-white",
- }
- case AlertVariant_Subtle_Info:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-blue-50 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-blue-600",
- }
- case AlertVariant_Subtle_Error:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-red-50 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-red-600",
- }
- case AlertVariant_Subtle_Success:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-green-50 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-green-600",
- }
- case AlertVariant_Subtle_Warning:
- return templ.Attributes{
- "class": "relative w-full rounded-lg border border-transparent bg-yellow-50 p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-yellow-600",
- }
- }
- return templ.Attributes{
- "class": "relative w-full rounded-lg border bg-white p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11 text-neutral-900",
- }
-}
-
-var _ = templruntime.GeneratedTemplate
diff --git a/pkg/nebula/components/blocks/inputs.templ b/pkg/nebula/components/blocks/inputs.templ
deleted file mode 100644
index 3ce3748ae..000000000
--- a/pkg/nebula/components/blocks/inputs.templ
+++ /dev/null
@@ -1,29 +0,0 @@
-package blocks
-
-type InputState int
-
-const (
- InputStateDefault InputState = iota
- InputStateError
- InputStateSuccess
-)
-
-templ TextInput(state InputState, label string, placeholder string) {
- switch (state) {
- case InputStateDefault:
-
-
-
-
- case InputStateError:
-
-
-
-
- case InputStateSuccess:
-
-
-
-
- }
-}
diff --git a/pkg/nebula/components/blocks/inputs_templ.go b/pkg/nebula/components/blocks/inputs_templ.go
deleted file mode 100644
index c1ae1dc56..000000000
--- a/pkg/nebula/components/blocks/inputs_templ.go
+++ /dev/null
@@ -1,100 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.778
-package blocks
-
-//lint:file-ignore SA4006 This context is only used if a nested component is present.
-
-import "github.com/a-h/templ"
-import templruntime "github.com/a-h/templ/runtime"
-
-type InputState int
-
-const (
- InputStateDefault InputState = iota
- InputStateError
- InputStateSuccess
-)
-
-func TextInput(state InputState, label string, placeholder string) templ.Component {
- return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
- templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
- if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
- return templ_7745c5c3_CtxErr
- }
- templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
- if !templ_7745c5c3_IsBuffer {
- defer func() {
- templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err == nil {
- templ_7745c5c3_Err = templ_7745c5c3_BufErr
- }
- }()
- }
- ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var1 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var1 == nil {
- templ_7745c5c3_Var1 = templ.NopComponent
- }
- ctx = templ.ClearChildren(ctx)
- switch state {
- case InputStateDefault:
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- case InputStateError:
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- case InputStateSuccess:
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- }
- return templ_7745c5c3_Err
- })
-}
-
-var _ = templruntime.GeneratedTemplate
diff --git a/pkg/nebula/components/blocks/radios.templ b/pkg/nebula/components/blocks/radios.templ
deleted file mode 100644
index ad4f63025..000000000
--- a/pkg/nebula/components/blocks/radios.templ
+++ /dev/null
@@ -1,37 +0,0 @@
-package blocks
-
-templ RadioGroup() {
-
-
-
-
-
-}
diff --git a/pkg/nebula/components/blocks/radios_templ.go b/pkg/nebula/components/blocks/radios_templ.go
deleted file mode 100644
index 3777323bb..000000000
--- a/pkg/nebula/components/blocks/radios_templ.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.778
-package blocks
-
-//lint:file-ignore SA4006 This context is only used if a nested component is present.
-
-import "github.com/a-h/templ"
-import templruntime "github.com/a-h/templ/runtime"
-
-func RadioGroup() templ.Component {
- return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
- templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
- if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
- return templ_7745c5c3_CtxErr
- }
- templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
- if !templ_7745c5c3_IsBuffer {
- defer func() {
- templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err == nil {
- templ_7745c5c3_Err = templ_7745c5c3_BufErr
- }
- }()
- }
- ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var1 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var1 == nil {
- templ_7745c5c3_Var1 = templ.NopComponent
- }
- ctx = templ.ClearChildren(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
-}
-
-var _ = templruntime.GeneratedTemplate
diff --git a/pkg/nebula/components/blocks/tabs.templ b/pkg/nebula/components/blocks/tabs.templ
deleted file mode 100644
index 31390a89b..000000000
--- a/pkg/nebula/components/blocks/tabs.templ
+++ /dev/null
@@ -1,109 +0,0 @@
-package blocks
-
-templ Tabs() {
-
-
-
-
- @Table()
-
-
- And, this is the content for Tab2
-
-
- Finally, this is the content for Tab3
-
-
-
-}
-
-templ Table() {
-
-
-
-
-
-
-
- Name |
- Age |
- Address |
- Action |
-
-
-
-
- Richard Hendricks |
- 30 |
- Pied Piper HQ, Palo Alto |
-
- Edit
- |
-
-
- Erlich Bachman |
- 40 |
- 5230 Penfield Ave, Woodland Hills |
-
- Edit
- |
-
-
- Monica Hall |
- 35 |
- 2030 Stewart Drive, Sunnyvale |
-
- Edit
- |
-
-
- Dinesh Chugtai |
- 28 |
- Pied Piper HQ, Palo Alto |
-
- Edit
- |
-
-
- Gilfoyle |
- 32 |
- Pied Piper HQ, Palo Alto |
-
- Edit
- |
-
-
-
-
-
-
-
-}
diff --git a/pkg/nebula/components/blocks/tabs_templ.go b/pkg/nebula/components/blocks/tabs_templ.go
deleted file mode 100644
index 1966f74e9..000000000
--- a/pkg/nebula/components/blocks/tabs_templ.go
+++ /dev/null
@@ -1,77 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.778
-package blocks
-
-//lint:file-ignore SA4006 This context is only used if a nested component is present.
-
-import "github.com/a-h/templ"
-import templruntime "github.com/a-h/templ/runtime"
-
-func Tabs() templ.Component {
- return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
- templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
- if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
- return templ_7745c5c3_CtxErr
- }
- templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
- if !templ_7745c5c3_IsBuffer {
- defer func() {
- templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err == nil {
- templ_7745c5c3_Err = templ_7745c5c3_BufErr
- }
- }()
- }
- ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var1 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var1 == nil {
- templ_7745c5c3_Var1 = templ.NopComponent
- }
- ctx = templ.ClearChildren(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- templ_7745c5c3_Err = Table().Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
And, this is the content for Tab2
Finally, this is the content for Tab3
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
-}
-
-func Table() templ.Component {
- return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
- templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
- if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
- return templ_7745c5c3_CtxErr
- }
- templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
- if !templ_7745c5c3_IsBuffer {
- defer func() {
- templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err == nil {
- templ_7745c5c3_Err = templ_7745c5c3_BufErr
- }
- }()
- }
- ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var2 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var2 == nil {
- templ_7745c5c3_Var2 = templ.NopComponent
- }
- ctx = templ.ClearChildren(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("Name | Age | Address | Action |
Richard Hendricks | 30 | Pied Piper HQ, Palo Alto | Edit |
Erlich Bachman | 40 | 5230 Penfield Ave, Woodland Hills | Edit |
Monica Hall | 35 | 2030 Stewart Drive, Sunnyvale | Edit |
Dinesh Chugtai | 28 | Pied Piper HQ, Palo Alto | Edit |
Gilfoyle | 32 | Pied Piper HQ, Palo Alto | Edit |
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
-}
-
-var _ = templruntime.GeneratedTemplate
diff --git a/pkg/nebula/components/blocks/video.templ b/pkg/nebula/components/blocks/video.templ
deleted file mode 100644
index 16c6f5a5d..000000000
--- a/pkg/nebula/components/blocks/video.templ
+++ /dev/null
@@ -1,317 +0,0 @@
-package blocks
-
-templ Video() {
-
-}
diff --git a/pkg/nebula/components/blocks/video_templ.go b/pkg/nebula/components/blocks/video_templ.go
deleted file mode 100644
index 2d1450ac2..000000000
--- a/pkg/nebula/components/blocks/video_templ.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.778
-package blocks
-
-//lint:file-ignore SA4006 This context is only used if a nested component is present.
-
-import "github.com/a-h/templ"
-import templruntime "github.com/a-h/templ/runtime"
-
-func Video() templ.Component {
- return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
- templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
- if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
- return templ_7745c5c3_CtxErr
- }
- templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
- if !templ_7745c5c3_IsBuffer {
- defer func() {
- templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err == nil {
- templ_7745c5c3_Err = templ_7745c5c3_BufErr
- }
- }()
- }
- ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var1 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var1 == nil {
- templ_7745c5c3_Var1 = templ.NopComponent
- }
- ctx = templ.ClearChildren(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
-}
-
-var _ = templruntime.GeneratedTemplate
diff --git a/pkg/nebula/components/home/header.templ b/pkg/nebula/components/home/header.templ
index bccdb5961..9dd0ec4d6 100644
--- a/pkg/nebula/components/home/header.templ
+++ b/pkg/nebula/components/home/header.templ
@@ -18,7 +18,7 @@ templ Header() {
-
- Log in
+
Log in
-
Register
diff --git a/pkg/nebula/components/home/header_templ.go b/pkg/nebula/components/home/header_templ.go
index e100d6552..57d740b52 100644
--- a/pkg/nebula/components/home/header_templ.go
+++ b/pkg/nebula/components/home/header_templ.go
@@ -29,7 +29,7 @@ func Header() templ.Component {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
diff --git a/pkg/nebula/components/login/modal.templ b/pkg/nebula/components/login/modal.templ
index cc600fd06..95ddc5606 100644
--- a/pkg/nebula/components/login/modal.templ
+++ b/pkg/nebula/components/login/modal.templ
@@ -16,7 +16,6 @@ templ Modal(c echo.Context) {
"
@keydown.escape="fullscreenModal=false"
>
-
Create an account
Enter your email below to create your account
Already have an account? Login here
By continuing, you agree to our Terms and Policy.
")
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("Create an account
Enter your email below to create your account
Already have an account? Login here
By continuing, you agree to our Terms and Policy.
")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
diff --git a/pkg/nebula/components/login/view.templ b/pkg/nebula/components/login/view.templ
index 822362fb8..ed720f996 100644
--- a/pkg/nebula/components/login/view.templ
+++ b/pkg/nebula/components/login/view.templ
@@ -11,7 +11,6 @@ templ View(c echo.Context) {
@blocks.H1("Sonr.ID")
@blocks.Text("Neo-tree is a file manager for NeoFS.")
@blocks.Spacer()
- @blocks.RadioGroup()
@blocks.Spacer()
@blocks.Button(blocks.GET("/", "#login-view")) {
@blocks.Text("Cancel")
diff --git a/pkg/nebula/components/login/view_templ.go b/pkg/nebula/components/login/view_templ.go
index 7d5b0b744..64d3aa668 100644
--- a/pkg/nebula/components/login/view_templ.go
+++ b/pkg/nebula/components/login/view_templ.go
@@ -82,14 +82,6 @@ func View(c echo.Context) templ.Component {
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = blocks.RadioGroup().Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
templ_7745c5c3_Err = blocks.Spacer().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
diff --git a/pkg/nebula/components/profile/view.templ b/pkg/nebula/components/profile/view.templ
index cbcded882..314eb890a 100644
--- a/pkg/nebula/components/profile/view.templ
+++ b/pkg/nebula/components/profile/view.templ
@@ -9,7 +9,6 @@ templ View(c echo.Context) {
@blocks.Layout("Sonr.ID", true) {
@blocks.Card("profile-view", blocks.SizeLarge) {
@blocks.ProfileCard()
- @blocks.Tabs()
}
}
}
diff --git a/pkg/nebula/components/profile/view_templ.go b/pkg/nebula/components/profile/view_templ.go
index 35ed75868..a06107e70 100644
--- a/pkg/nebula/components/profile/view_templ.go
+++ b/pkg/nebula/components/profile/view_templ.go
@@ -62,14 +62,6 @@ func View(c echo.Context) templ.Component {
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- templ_7745c5c3_Err = blocks.Tabs().Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
return templ_7745c5c3_Err
})
templ_7745c5c3_Err = blocks.Card("profile-view", blocks.SizeLarge).Render(templ.WithChildren(ctx, templ_7745c5c3_Var3), templ_7745c5c3_Buffer)
diff --git a/pkg/nebula/components/register/modal.templ b/pkg/nebula/components/register/modal.templ
index 33e0372f3..e21a74cf9 100644
--- a/pkg/nebula/components/register/modal.templ
+++ b/pkg/nebula/components/register/modal.templ
@@ -8,7 +8,7 @@ import (
templ Modal(c echo.Context) {
diff --git a/pkg/nebula/components/register/modal_templ.go b/pkg/nebula/components/register/modal_templ.go
index 38f0c23c5..04386e445 100644
--- a/pkg/nebula/components/register/modal_templ.go
+++ b/pkg/nebula/components/register/modal_templ.go
@@ -34,7 +34,7 @@ func Modal(c echo.Context) templ.Component {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
Enter your account information below to create your account.
")
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
Enter your account information below to create your account.
")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
diff --git a/pkg/nebula/nebula.pkl b/pkg/nebula/nebula.pkl
index 06ac65c5b..2c218c835 100644
--- a/pkg/nebula/nebula.pkl
+++ b/pkg/nebula/nebula.pkl
@@ -1,8 +1,6 @@
amends "https://pkl.sh/UIUX.pkl";
home = new Home {
-
- // Hero
hero = new Hero {
titleFirst = "Simplified";
titleEmphasis = "self-custody";
diff --git a/pkg/nebula/pages/pages.go b/pkg/nebula/router/router.go
similarity index 56%
rename from pkg/nebula/pages/pages.go
rename to pkg/nebula/router/router.go
index 9f90b41a1..cba66b45c 100644
--- a/pkg/nebula/pages/pages.go
+++ b/pkg/nebula/router/router.go
@@ -1,4 +1,4 @@
-package pages
+package router
import (
"bytes"
@@ -14,35 +14,42 @@ import (
"github.com/onsonr/sonr/pkg/nebula/models"
)
-func Authorize(c echo.Context) error {
- return echoResponse(c, grant.View(c))
-}
+// ╭───────────────────────────────────────────────────────────╮
+// │ Marketing Pages │
+// ╰───────────────────────────────────────────────────────────╯
func Home(c echo.Context) error {
mdls, err := models.GetModels()
if err != nil {
return err
}
- return echoResponse(c, home.View(mdls.Home))
-}
-
-func Login(c echo.Context) error {
- return echoResponse(c, login.Modal(c))
+ return render(c, home.View(mdls.Home))
}
func Profile(c echo.Context) error {
- return echoResponse(c, profile.View(c))
+ return render(c, profile.View(c))
+}
+
+// ╭───────────────────────────────────────────────────────────╮
+// │ Authentication Views │
+// ╰───────────────────────────────────────────────────────────╯
+func Authorize(c echo.Context) error {
+ return render(c, grant.View(c))
+}
+
+func Login(c echo.Context) error {
+ return render(c, login.Modal(c))
}
func Register(c echo.Context) error {
- return echoResponse(c, register.Modal(c))
+ return render(c, register.Modal(c))
}
// ╭───────────────────────────────────────────────────────────╮
// │ Helper Methods │
// ╰───────────────────────────────────────────────────────────╯
-func echoResponse(c echo.Context, cmp templ.Component) error {
+func render(c echo.Context, cmp templ.Component) error {
// Create a buffer to store the rendered HTML
buf := &bytes.Buffer{}
// Render the component to the buffer
diff --git a/pkg/nebula/router/state.go b/pkg/nebula/router/state.go
new file mode 100644
index 000000000..10b1ce322
--- /dev/null
+++ b/pkg/nebula/router/state.go
@@ -0,0 +1,13 @@
+package router
+
+type Status string
+
+const (
+ StatusOK Status = "ok"
+ StatusError Status = "error"
+ StatusNotFound Status = "not-found"
+ StatusUnauthorized Status = "unauthorized"
+ StatusForbidden Status = "forbidden"
+ StatusInternalServerError Status = "internal-server-error"
+ StatusBadRequest Status = "bad-request"
+)
diff --git a/pkl/DWN.pkl b/pkl/DWN.pkl
index 9f1ad8cc5..71947b28e 100644
--- a/pkl/DWN.pkl
+++ b/pkl/DWN.pkl
@@ -6,43 +6,92 @@ import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.5.0#/go.pkl"
typealias JSON = String
+class JsonField extends go.Field {
+ structTags {
+ ["json"] = "%{name},omitempty"
+ }
+}
+
class Config {
+ @JsonField
ipfs: IPFS
+
+ @JsonField
sonr: Sonr
+
+ @JsonField
motr: Motr
+
+ @JsonField
schema: Schema
+
+ @JsonField
proxyUrl: String
}
class IPFS {
+ @JsonField
apiUrl: String
+
+ @JsonField
gatewayUrl: String
}
class Motr {
+ @JsonField
keyshare: JSON
+
+ @JsonField
address: String
+
+ @JsonField
origin: String
}
class Schema {
version: Int
+
+ @JsonField
account: String
+
+ @JsonField
asset: String
+
+ @JsonField
chain: String
+
+ @JsonField
credential: String
+
+ @JsonField
jwk: String
+
+ @JsonField
grant: String
+
+ @JsonField
keyshare: String
+
+ @JsonField
profile: String
}
class Sonr {
+ @JsonField
apiUrl: String
+
+ @JsonField
grpcUrl: String
+
+ @JsonField
rpcUrl: String
+
+ @JsonField
webSocketUrl: String
+
+ @JsonField
chainId: String
}
-dwn : Config
+
+