mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
243 lines
10 KiB
Go
243 lines
10 KiB
Go
// Code generated by templ - DO NOT EDIT.
|
|
|
|
// templ: version: v0.2.778
|
|
package marketing
|
|
|
|
//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"
|
|
"github.com/onsonr/sonr/internal/ctx"
|
|
models "github.com/onsonr/sonr/internal/orm/marketing"
|
|
"github.com/onsonr/sonr/pkg/nebula/components/marketing/sections"
|
|
"github.com/onsonr/sonr/pkg/nebula/global/styles"
|
|
"log"
|
|
)
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Home Routes - Marketing │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
func HomeRoute(c echo.Context) error {
|
|
s, err := ctx.GetHWAYContext(c)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
log.Printf("Session ID: %s", s.ID())
|
|
return ctx.RenderTempl(c, View())
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Static Content Values │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
// hero is the (1st) home page hero section
|
|
var hero = &models.Hero{
|
|
TitleFirst: "Simplified",
|
|
TitleEmphasis: "self-custody",
|
|
TitleSecond: "for everyone",
|
|
Subtitle: "Sonr is a modern re-imagination of online user identity, empowering users to take ownership of their digital footprint and unlocking a new era of self-sovereignty.",
|
|
PrimaryButton: &models.Button{Text: "Get Started", Href: "/register"},
|
|
SecondaryButton: &models.Button{Text: "Learn More", Href: "/about"},
|
|
Image: &models.Image{
|
|
Src: "https://cdn.sonr.id/img/hero-clipped.svg",
|
|
Width: "500",
|
|
Height: "500",
|
|
},
|
|
Stats: []*models.Stat{
|
|
{Value: "476", Label: "Assets packed with power beyond your imagiation.", Denom: "K"},
|
|
{Value: "1.44", Label: "Assets packed with power beyond your imagination.", Denom: "K"},
|
|
{Value: "1.5", Label: "Assets packed with power beyond your imagination.", Denom: "M+"},
|
|
{Value: "750", Label: "Assets packed with power beyond your imagination.", Denom: "K"},
|
|
},
|
|
}
|
|
|
|
// highlights is the (2nd) home page highlights section
|
|
var highlights = &models.Highlights{
|
|
Heading: "The Internet Rebuilt for You",
|
|
Subtitle: "Sonr is a comprehensive system for Identity Management which proteects users across their digital personas while providing Developers a cost-effective solution for decentralized authentication.",
|
|
Features: []*models.Feature{
|
|
{
|
|
Title: "∞ Factor Auth",
|
|
Desc: "Sonr is designed to work across all platforms and devices, building a encrypted and anonymous identity layer for each user on the internet.",
|
|
Icon: nil,
|
|
},
|
|
{
|
|
Title: "Control Your Data",
|
|
Desc: "Sonr leverages advanced cryptography to permit facilitating Wallet Operations directly on-chain, without the need for a centralized server.",
|
|
Icon: nil,
|
|
},
|
|
{
|
|
Title: "Crypto Enabled",
|
|
Desc: "Sonr follows the latest specifications from W3C, DIF, and ICF to essentially have an Interchain-Connected, Smart Account System - seamlessly authenticated with PassKeys.",
|
|
Icon: nil,
|
|
},
|
|
{
|
|
Title: "Works Everywhere",
|
|
Desc: "Sonr anonymously associates your online identities with a Quantum-Resistant Vault which only you can access.",
|
|
Icon: nil,
|
|
},
|
|
},
|
|
}
|
|
|
|
// mission is the (3rd) home page mission section
|
|
var mission = &models.Mission{
|
|
Eyebrow: "L1 Blockchain",
|
|
Heading: "The Protocol for Decentralized Identity & Authentication",
|
|
Subtitle: "We're creating the Global Standard for Decentralized Identity. Authenticate users with PassKeys, Issue Crypto Wallets, Build Payment flows, Send Encrypted Messages - all on a single platform.",
|
|
Experience: &models.Feature{
|
|
Title: "UX First Approach",
|
|
Desc: "Sonr is a comprehensive system for Identity Management which proteects users across their digital personas while providing Developers a cost-effective solution for decentralized authentication.",
|
|
Icon: nil,
|
|
},
|
|
Compliance: &models.Feature{
|
|
Title: "Universal Interoperability",
|
|
Desc: "Sonr is designed to work across all platforms and devices, building a encrypted and anonymous identity layer for each user on the internet.",
|
|
Icon: nil,
|
|
},
|
|
Interoperability: &models.Feature{
|
|
Title: "Made in the USA",
|
|
Desc: "Sonr follows the latest specifications from W3C, DIF, and ICF to essentially have an Interchain-Connected, Smart Account System - seamlessly authenticated with PassKeys.",
|
|
Icon: nil,
|
|
},
|
|
}
|
|
|
|
// architecture is the (4th) home page architecture section
|
|
var architecture = &models.Architecture{
|
|
Heading: "Onchain Security with Offchain Privacy",
|
|
Subtitle: "Whenever you are ready, just hit publish to turn your site sketches into an actual designs. No creating, no skills, no reshaping.",
|
|
Primary: &models.Technology{
|
|
Title: "Decentralized Identity",
|
|
Desc: "Sonr leverages the latest specifications from W3C, DIF, and ICF to essentially have an Interchain-Connected, Smart Account System - seamlessly authenticated with PassKeys.",
|
|
},
|
|
Secondary: &models.Technology{
|
|
Title: "IPFS Vaults",
|
|
Desc: "Completely distributed, encrypted, and decentralized storage for your data.",
|
|
},
|
|
Tertiary: &models.Technology{
|
|
Title: "Service Records",
|
|
Desc: "On-chain validated services created by Developers for secure transmission of user data.",
|
|
},
|
|
Quaternary: &models.Technology{
|
|
Title: "Authentication & Authorization",
|
|
Desc: "Sonr leverages decentralized Macaroons and Multi-Party Computation to provide a secure and decentralized authentication and authorization system.",
|
|
},
|
|
Quinary: &models.Technology{
|
|
Title: "First-Class Exchange",
|
|
Desc: "Sonr integrates with the IBC protocol allowing for seamless integration with popular exchanges such as OKX, Binance, and Osmosis.",
|
|
},
|
|
}
|
|
|
|
// ╭─────────────────────────────────────────────────────────╮
|
|
// │ Final Rendering │
|
|
// ╰─────────────────────────────────────────────────────────╯
|
|
|
|
// View renders the home page
|
|
func View() 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_Var2 := 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 = sections.Header().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 = sections.Hero(hero).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 = sections.Highlights(highlights).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 = sections.Mission(mission).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 = sections.Architecture(architecture).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 = sections.Lowlights().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 = sections.CallToAction().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 = sections.Footer().Render(ctx, templ_7745c5c3_Buffer)
|
|
if templ_7745c5c3_Err != nil {
|
|
return templ_7745c5c3_Err
|
|
}
|
|
return templ_7745c5c3_Err
|
|
})
|
|
templ_7745c5c3_Err = styles.LayoutNoBody("Sonr.ID", true).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
|
|
if templ_7745c5c3_Err != nil {
|
|
return templ_7745c5c3_Err
|
|
}
|
|
return templ_7745c5c3_Err
|
|
})
|
|
}
|
|
|
|
var _ = templruntime.GeneratedTemplate
|