mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 01:41:44 +00:00
- **refactor: move session-related code to middleware package** - **refactor: update PKL build process and adjust related configurations** - **feat: integrate base.cosmos.v1 Genesis module** - **refactor: pass session context to modal rendering functions** - **refactor: move nebula package to app directory and update templ version** - **refactor: Move home section video view to dedicated directory** - **refactor: remove unused views file** - **refactor: move styles and UI components to global scope** - **refactor: Rename images.go to cdn.go** - **feat: Add Empty State Illustrations** - **refactor: Consolidate Vault Index Logic** - **fix: References to App.wasm and remove Vault Directory embedded CDN files** - **refactor: Move CDN types to Models** - **fix: Correct line numbers in templ error messages for arch_templ.go** - **refactor: use common types for peer roles** - **refactor: move common types and ORM to a shared package** - **fix: Config import dwn** - **refactor: move nebula directory to app** - **feat: Rebuild nebula** - **fix: correct file paths in panels templates** - **feat: Remove duplicate types** - **refactor: Move dwn to pkg/core** - **refactor: Binary Structure** - **feat: Introduce Crypto Pkg** - **fix: Broken Process Start** - **feat: Update pkg/* structure** - **feat: Refactor PKL Structure** - **build: update pkl build process** - **chore: Remove Empty Files** - **refactor: remove unused macaroon package** - **feat: Add WebAwesome Components** - **refactor: consolidate build and generation tasks into a single taskfile, remove redundant makefile targets** - **refactor: refactor server and move components to pkg/core/dwn** - **build: update go modules** - **refactor: move gateway logic into dedicated hway command** - **feat: Add KSS (Krawczyk-Song-Song) MPC cryptography module** - **feat: Implement MPC-based JWT signing and UCAN token generation** - **feat: add support for MPC-based JWT signing** - **feat: Implement MPC-based UCAN capabilities for smart accounts** - **feat: add address field to keyshareSource** - **feat: Add comprehensive MPC test suite for keyshares, UCAN tokens, and token attenuations** - **refactor: improve MPC keyshare management and signing process** - **feat: enhance MPC capability hierarchy documentation** - **refactor: rename GenerateKeyshares function to NewKeyshareSource for clarity** - **refactor: remove unused Ethereum address computation** - **feat: Add HasHandle and IsAuthenticated methods to HTTPContext** - **refactor: Add context.Context support to session HTTPContext** - **refactor: Resolve context interface conflicts in HTTPContext** - **feat: Add session ID context key and helper functions** - **feat: Update WebApp Page Rendering** - **refactor: Simplify context management by using single HTTPContext key** - **refactor: Simplify HTTPContext creation and context management in session middleware** - **refactor: refactor session middleware to use a single data structure** - **refactor: Simplify HTTPContext implementation and session data handling** - **refactor: Improve session context handling and prevent nil pointer errors** - **refactor: Improve session context handling with nil safety and type support** - **refactor: improve session data injection** - **feat: add full-screen modal component and update registration flow** - **chore: add .air.toml to .gitignore** - **feat: add Air to devbox and update dependencies**
255 lines
9.7 KiB
Templ
255 lines
9.7 KiB
Templ
package landing
|
|
|
|
import models "github.com/onsonr/sonr/pkg/webapp/models"
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Data Model │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
// architecture is the (4th) home page architecture section
|
|
var arch = &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.",
|
|
Image: &models.Image{
|
|
Src: models.HardwareWallet.Src(),
|
|
Width: "721",
|
|
Height: "280",
|
|
},
|
|
},
|
|
Secondary: &models.Technology{
|
|
Title: "IPFS Vaults",
|
|
Desc: "Completely distributed, encrypted, and decentralized storage for your data.",
|
|
Image: &models.Image{
|
|
Src: models.DecentralizedNetwork.Src(),
|
|
Width: "342",
|
|
Height: "280",
|
|
},
|
|
},
|
|
Tertiary: &models.Technology{
|
|
Title: "Service Records",
|
|
Desc: "On-chain validated services created by Developers for secure transmission of user data.",
|
|
Image: &models.Image{
|
|
Src: models.DefiDashboard.Src(),
|
|
Width: "342",
|
|
Height: "280",
|
|
},
|
|
},
|
|
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.",
|
|
Image: &models.Image{
|
|
Src: models.PrivateKey.Src(),
|
|
Width: "342",
|
|
Height: "280",
|
|
},
|
|
},
|
|
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.",
|
|
Image: &models.Image{
|
|
Src: models.CrossChainBridge.Src(),
|
|
Width: "342",
|
|
Height: "280",
|
|
},
|
|
},
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Render Section View │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
// Architecture is the (4th) home page architecture section
|
|
templ Architecture() {
|
|
<!-- Features #2 -->
|
|
<section>
|
|
<div class="py-12 md:py-20">
|
|
<div class="max-w-5xl mx-auto px-4 sm:px-6">
|
|
<div
|
|
class="relative max-w-3xl mx-auto text-center pb-12 md:pb-20"
|
|
>
|
|
<h2
|
|
class="font-inter-tight text-3xl md:text-4xl font-bold text-zinc-900 mb-4"
|
|
>
|
|
{ arch.Heading }
|
|
</h2>
|
|
<p class="text-lg text-zinc-500">
|
|
{ arch.Subtitle }
|
|
</p>
|
|
</div>
|
|
<div
|
|
class="max-w-xs mx-auto sm:max-w-none grid sm:grid-cols-2 md:grid-cols-3 gap-8 sm:gap-4 lg:gap-8"
|
|
>
|
|
<article
|
|
class="sm:col-span-2 flex flex-col border border-transparent [background:linear-gradient(theme(colors.white),theme(colors.zinc.50))_padding-box,linear-gradient(120deg,theme(colors.zinc.300),theme(colors.zinc.100),theme(colors.zinc.300))_border-box] rounded-lg"
|
|
>
|
|
<div class="grow flex flex-col p-5 pt-6">
|
|
<div class="flex items-center space-x-3 mb-1">
|
|
<svg
|
|
class="inline-flex fill-zinc-400"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="20"
|
|
height="20"
|
|
>
|
|
<path
|
|
d="M17 9c.6 0 1 .4 1 1v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6c.6 0 1 .4 1 1s-.4 1-1 1H4v12h12v-6c0-.6.4-1 1-1Zm-.7-6.7c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4l-8 8c-.2.2-.4.3-.7.3-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l8-8Z"
|
|
></path>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-900">
|
|
{ arch.Primary.Title }
|
|
</h3>
|
|
</div>
|
|
<p class="grow max-w-md text-sm text-zinc-500">
|
|
{ arch.Primary.Desc }
|
|
</p>
|
|
</div>
|
|
<figure>
|
|
<img
|
|
class="h-[280px] object-cover object-left mx-auto sm:object-contain sm:h-auto"
|
|
src={ arch.Primary.Image.Src }
|
|
width="721"
|
|
height="280"
|
|
alt="Feature Post 01"
|
|
/>
|
|
</figure>
|
|
</article>
|
|
<article
|
|
class="flex flex-col border border-transparent [background:linear-gradient(theme(colors.white),theme(colors.zinc.50))_padding-box,linear-gradient(120deg,theme(colors.zinc.300),theme(colors.zinc.100),theme(colors.zinc.300))_border-box] rounded-lg"
|
|
>
|
|
<div class="grow flex flex-col p-5 pt-6">
|
|
<div class="flex items-center space-x-3 mb-1">
|
|
<svg
|
|
class="inline-flex fill-zinc-400"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="20"
|
|
height="20"
|
|
>
|
|
<path
|
|
d="m6.035 17.335-4-14c-.2-.8.5-1.5 1.3-1.3l14 4c.9.3 1 1.5.1 1.9l-6.6 2.9-2.8 6.6c-.5.9-1.7.8-2-.1Zm-1.5-12.8 2.7 9.5 1.9-4.4c.1-.2.3-.4.5-.5l4.4-1.9-9.5-2.7Z"
|
|
></path>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-900">
|
|
{ arch.Secondary.Title }
|
|
</h3>
|
|
</div>
|
|
<p class="grow max-w-md text-sm text-zinc-500">
|
|
{ arch.Secondary.Desc }
|
|
</p>
|
|
</div>
|
|
<figure>
|
|
<img
|
|
class="h-[280px] object-cover object-left mx-auto sm:object-contain sm:h-auto"
|
|
src={ arch.Secondary.Image.Src }
|
|
width="342"
|
|
height="280"
|
|
alt="Feature Post 02"
|
|
/>
|
|
</figure>
|
|
</article>
|
|
<article
|
|
class="flex flex-col border border-transparent [background:linear-gradient(theme(colors.white),theme(colors.zinc.50))_padding-box,linear-gradient(120deg,theme(colors.zinc.300),theme(colors.zinc.100),theme(colors.zinc.300))_border-box] rounded-lg"
|
|
>
|
|
<div class="grow flex flex-col p-5 pt-6">
|
|
<div class="flex items-center space-x-3 mb-1">
|
|
<svg
|
|
class="inline-flex fill-zinc-400"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="20"
|
|
height="20"
|
|
>
|
|
<path
|
|
d="M8.974 16c-.3 0-.7-.2-.9-.5l-2.2-3.7-2.1 2.8c-.3.4-1 .5-1.4.2-.4-.3-.5-1-.2-1.4l3-4c.2-.3.5-.4.9-.4.3 0 .6.2.8.5l2 3.3 3.3-8.1c0-.4.4-.7.8-.7s.8.2.9.6l4 8c.2.5 0 1.1-.4 1.3-.5.2-1.1 0-1.3-.4l-3-6-3.2 7.9c-.2.4-.6.6-1 .6Z"
|
|
></path>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-900">
|
|
{ arch.Tertiary.Title }
|
|
</h3>
|
|
</div>
|
|
<p class="grow max-w-md text-sm text-zinc-500">
|
|
{ arch.Tertiary.Desc }
|
|
</p>
|
|
</div>
|
|
<figure>
|
|
<img
|
|
class="h-[280px] object-cover object-left mx-auto sm:object-contain sm:h-auto"
|
|
src={ arch.Tertiary.Image.Src }
|
|
width="342"
|
|
height="280"
|
|
alt="Feature Post 03"
|
|
/>
|
|
</figure>
|
|
</article>
|
|
<article
|
|
class="flex flex-col border border-transparent [background:linear-gradient(theme(colors.white),theme(colors.zinc.50))_padding-box,linear-gradient(120deg,theme(colors.zinc.300),theme(colors.zinc.100),theme(colors.zinc.300))_border-box] rounded-lg"
|
|
>
|
|
<div class="grow flex flex-col p-5 pt-6">
|
|
<div class="flex items-center space-x-3 mb-1">
|
|
<svg
|
|
class="inline-flex fill-zinc-400"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="20"
|
|
height="20"
|
|
>
|
|
<path
|
|
d="M9.3 11.7c-.4-.4-.4-1 0-1.4l7-7c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4l-7 7c-.4.4-1 .4-1.4 0ZM9.3 17.7c-.4-.4-.4-1 0-1.4l7-7c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4l-7 7c-.4.4-1 .4-1.4 0ZM2.3 12.7c-.4-.4-.4-1 0-1.4l7-7c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4l-7 7c-.4.4-1 .4-1.4 0Z"
|
|
></path>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-900">
|
|
{ arch.Quaternary.Title }
|
|
</h3>
|
|
</div>
|
|
<p class="grow max-w-md text-sm text-zinc-500">
|
|
{ arch.Quaternary.Desc }
|
|
</p>
|
|
</div>
|
|
<figure>
|
|
<img
|
|
class="h-[280px] object-cover object-left mx-auto sm:object-contain sm:h-auto"
|
|
src={ arch.Quaternary.Image.Src }
|
|
width="342"
|
|
height="280"
|
|
alt="Feature Post 04"
|
|
/>
|
|
</figure>
|
|
</article>
|
|
<article
|
|
class="flex flex-col border border-transparent [background:linear-gradient(theme(colors.white),theme(colors.zinc.50))_padding-box,linear-gradient(120deg,theme(colors.zinc.300),theme(colors.zinc.100),theme(colors.zinc.300))_border-box] rounded-lg"
|
|
>
|
|
<div class="grow flex flex-col p-5 pt-6">
|
|
<div class="flex items-center space-x-3 mb-1">
|
|
<svg
|
|
class="inline-flex fill-zinc-400"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="20"
|
|
height="20"
|
|
>
|
|
<path
|
|
d="M16 2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h8.667l3.733 2.8A1 1 0 0 0 18 17V4a2 2 0 0 0-2-2Zm0 13-2.4-1.8a1 1 0 0 0-.6-.2H4V4h12v11Z"
|
|
></path>
|
|
</svg>
|
|
<h3 class="font-inter-tight font-semibold text-zinc-900">
|
|
{ arch.Quinary.Title }
|
|
</h3>
|
|
</div>
|
|
<p class="grow max-w-md text-sm text-zinc-500">
|
|
{ arch.Quinary.Desc }
|
|
</p>
|
|
</div>
|
|
<figure>
|
|
<img
|
|
class="h-[280px] object-cover object-left mx-auto sm:object-contain sm:h-auto"
|
|
src={ arch.Quinary.Image.Src }
|
|
width="342"
|
|
height="280"
|
|
alt="Feature Post 05"
|
|
/>
|
|
</figure>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
}
|