diff --git a/cmd/hway/main.go b/cmd/hway/main.go
index 8e9affd84..e68068cd4 100644
--- a/cmd/hway/main.go
+++ b/cmd/hway/main.go
@@ -8,7 +8,9 @@ import (
"github.com/labstack/echo/v4"
"github.com/onsonr/sonr/pkg/common/middleware/response"
"github.com/onsonr/sonr/pkg/common/middleware/session"
- "github.com/onsonr/sonr/pkg/webapp/pages"
+ "github.com/onsonr/sonr/pkg/webapp/pages/home"
+ "github.com/onsonr/sonr/pkg/webapp/pages/login"
+ "github.com/onsonr/sonr/pkg/webapp/pages/register"
)
type (
@@ -23,9 +25,9 @@ func main() {
e.Use(session.HwayMiddleware())
// Add Gateway Specific Routes
- e.GET("/", response.Templ(pages.HomePage()))
- e.GET("/register", response.Templ(pages.AuthPage()))
- e.GET("/login", response.Templ(pages.AuthPage()))
+ e.GET("/", response.Templ(home.Page()))
+ e.GET("/register", response.Templ(register.Page()))
+ e.GET("/login", response.Templ(login.Page()))
if err := e.Start(":3000"); err != http.ErrServerClosed {
log.Fatal(err)
diff --git a/cmd/hway/styles.css b/cmd/hway/styles.css
deleted file mode 100644
index 2e3888049..000000000
--- a/cmd/hway/styles.css
+++ /dev/null
@@ -1,3503 +0,0 @@
-@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Inter+Tight:ital,wght@0,500;0,600;0,700;1,700&display=fallback");
-
-/* src/css/styles.css */
-
-*, ::before, ::after{
- --tw-border-spacing-x: 0;
- --tw-border-spacing-y: 0;
- --tw-translate-x: 0;
- --tw-translate-y: 0;
- --tw-rotate: 0;
- --tw-skew-x: 0;
- --tw-skew-y: 0;
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
- --tw-scroll-snap-strictness: proximity;
- --tw-gradient-from-position: ;
- --tw-gradient-via-position: ;
- --tw-gradient-to-position: ;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: rgb(59 130 246 / 0.5);
- --tw-ring-offset-shadow: 0 0 #0000;
- --tw-ring-shadow: 0 0 #0000;
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
- --tw-contain-size: ;
- --tw-contain-layout: ;
- --tw-contain-paint: ;
- --tw-contain-style: ;
- --motion-origin-scale-x: 1;
- --motion-origin-scale-y: 1;
- --motion-origin-translate-x: 0;
- --motion-origin-translate-y: 0;
- --motion-origin-rotate: 0;
- --motion-origin-blur: 0;
- --motion-origin-grayscale: 0;
- --motion-origin-opacity: 1;
- --motion-origin-background-color: ;
- --motion-origin-text-color: ;
- --motion-end-scale-x: 1;
- --motion-end-scale-y: 1;
- --motion-end-translate-x: 0;
- --motion-end-translate-y: 0;
- --motion-end-rotate: 0;
- --motion-end-blur: 0;
- --motion-end-grayscale: 0;
- --motion-end-opacity: 1;
- --motion-end-background-color: ;
- --motion-end-text-color: ;
- --motion-duration: 750ms;
- --motion-timing: var(--motion-default-timing);
- --motion-perceptual-duration-multiplier: 1;
- --motion-delay: 0ms;
- --motion-scale-duration: var(--motion-duration);
- --motion-scale-timing: var(--motion-timing);
- --motion-scale-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-scale-delay: var(--motion-delay);
- --motion-translate-duration: var(--motion-duration);
- --motion-translate-timing: var(--motion-timing);
- --motion-translate-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-translate-delay: var(--motion-delay);
- --motion-rotate-duration: var(--motion-duration);
- --motion-rotate-timing: var(--motion-timing);
- --motion-rotate-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-rotate-delay: var(--motion-delay);
- --motion-filter-duration: var(--motion-duration);
- --motion-filter-timing: var(--motion-timing);
- --motion-filter-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-filter-delay: var(--motion-delay);
- --motion-opacity-duration: var(--motion-duration);
- --motion-opacity-timing: var(--motion-timing);
- --motion-opacity-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-opacity-delay: var(--motion-delay);
- --motion-background-color-duration: var(--motion-duration);
- --motion-background-color-timing: var(--motion-timing);
- --motion-background-color-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-background-color-delay: var(--motion-delay);
- --motion-text-color-duration: var(--motion-duration);
- --motion-text-color-timing: var(--motion-timing);
- --motion-text-color-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-text-color-delay: var(--motion-delay);
- --motion-scale-in-animation: none;
- --motion-translate-in-animation: none;
- --motion-rotate-in-animation: none;
- --motion-filter-in-animation: none;
- --motion-opacity-in-animation: none;
- --motion-background-color-in-animation: none;
- --motion-text-color-in-animation: none;
- --motion-scale-out-animation: none;
- --motion-translate-out-animation: none;
- --motion-rotate-out-animation: none;
- --motion-filter-out-animation: none;
- --motion-opacity-out-animation: none;
- --motion-background-color-out-animation: none;
- --motion-text-color-out-animation: none;
- --motion-all-enter-animations: var(--motion-scale-in-animation), var(--motion-translate-in-animation), var(--motion-rotate-in-animation), var(--motion-filter-in-animation), var(--motion-opacity-in-animation), var(--motion-background-color-in-animation), var(--motion-text-color-in-animation);
- --motion-all-exit-animations: var(--motion-scale-out-animation), var(--motion-translate-out-animation), var(--motion-rotate-out-animation), var(--motion-filter-out-animation), var(--motion-opacity-out-animation), var(--motion-background-color-out-animation), var(--motion-text-color-out-animation);
-}
-
-::backdrop{
- --tw-border-spacing-x: 0;
- --tw-border-spacing-y: 0;
- --tw-translate-x: 0;
- --tw-translate-y: 0;
- --tw-rotate: 0;
- --tw-skew-x: 0;
- --tw-skew-y: 0;
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
- --tw-scroll-snap-strictness: proximity;
- --tw-gradient-from-position: ;
- --tw-gradient-via-position: ;
- --tw-gradient-to-position: ;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: rgb(59 130 246 / 0.5);
- --tw-ring-offset-shadow: 0 0 #0000;
- --tw-ring-shadow: 0 0 #0000;
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
- --tw-contain-size: ;
- --tw-contain-layout: ;
- --tw-contain-paint: ;
- --tw-contain-style: ;
- --motion-origin-scale-x: 1;
- --motion-origin-scale-y: 1;
- --motion-origin-translate-x: 0;
- --motion-origin-translate-y: 0;
- --motion-origin-rotate: 0;
- --motion-origin-blur: 0;
- --motion-origin-grayscale: 0;
- --motion-origin-opacity: 1;
- --motion-origin-background-color: ;
- --motion-origin-text-color: ;
- --motion-end-scale-x: 1;
- --motion-end-scale-y: 1;
- --motion-end-translate-x: 0;
- --motion-end-translate-y: 0;
- --motion-end-rotate: 0;
- --motion-end-blur: 0;
- --motion-end-grayscale: 0;
- --motion-end-opacity: 1;
- --motion-end-background-color: ;
- --motion-end-text-color: ;
- --motion-duration: 750ms;
- --motion-timing: var(--motion-default-timing);
- --motion-perceptual-duration-multiplier: 1;
- --motion-delay: 0ms;
- --motion-scale-duration: var(--motion-duration);
- --motion-scale-timing: var(--motion-timing);
- --motion-scale-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-scale-delay: var(--motion-delay);
- --motion-translate-duration: var(--motion-duration);
- --motion-translate-timing: var(--motion-timing);
- --motion-translate-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-translate-delay: var(--motion-delay);
- --motion-rotate-duration: var(--motion-duration);
- --motion-rotate-timing: var(--motion-timing);
- --motion-rotate-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-rotate-delay: var(--motion-delay);
- --motion-filter-duration: var(--motion-duration);
- --motion-filter-timing: var(--motion-timing);
- --motion-filter-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-filter-delay: var(--motion-delay);
- --motion-opacity-duration: var(--motion-duration);
- --motion-opacity-timing: var(--motion-timing);
- --motion-opacity-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-opacity-delay: var(--motion-delay);
- --motion-background-color-duration: var(--motion-duration);
- --motion-background-color-timing: var(--motion-timing);
- --motion-background-color-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-background-color-delay: var(--motion-delay);
- --motion-text-color-duration: var(--motion-duration);
- --motion-text-color-timing: var(--motion-timing);
- --motion-text-color-perceptual-duration-multiplier: var(--motion-perceptual-duration-multiplier);
- --motion-text-color-delay: var(--motion-delay);
- --motion-scale-in-animation: none;
- --motion-translate-in-animation: none;
- --motion-rotate-in-animation: none;
- --motion-filter-in-animation: none;
- --motion-opacity-in-animation: none;
- --motion-background-color-in-animation: none;
- --motion-text-color-in-animation: none;
- --motion-scale-out-animation: none;
- --motion-translate-out-animation: none;
- --motion-rotate-out-animation: none;
- --motion-filter-out-animation: none;
- --motion-opacity-out-animation: none;
- --motion-background-color-out-animation: none;
- --motion-text-color-out-animation: none;
- --motion-all-enter-animations: var(--motion-scale-in-animation), var(--motion-translate-in-animation), var(--motion-rotate-in-animation), var(--motion-filter-in-animation), var(--motion-opacity-in-animation), var(--motion-background-color-in-animation), var(--motion-text-color-in-animation);
- --motion-all-exit-animations: var(--motion-scale-out-animation), var(--motion-translate-out-animation), var(--motion-rotate-out-animation), var(--motion-filter-out-animation), var(--motion-opacity-out-animation), var(--motion-background-color-out-animation), var(--motion-text-color-out-animation);
-}
-
-/* ! tailwindcss v3.4.15 | MIT License | https://tailwindcss.com */
-
-/*
-1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
-2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
-*/
-
-*,
-::before,
-::after {
- box-sizing: border-box;
- /* 1 */
- border-width: 0;
- /* 2 */
- border-style: solid;
- /* 2 */
- border-color: #e5e7eb;
- /* 2 */
-}
-
-::before,
-::after {
- --tw-content: '';
-}
-
-/*
-1. Use a consistent sensible line-height in all browsers.
-2. Prevent adjustments of font size after orientation changes in iOS.
-3. Use a more readable tab size.
-4. Use the user's configured `sans` font-family by default.
-5. Use the user's configured `sans` font-feature-settings by default.
-6. Use the user's configured `sans` font-variation-settings by default.
-7. Disable tap highlights on iOS
-*/
-
-html,
-:host {
- line-height: 1.5;
- /* 1 */
- -webkit-text-size-adjust: 100%;
- /* 2 */
- -moz-tab-size: 4;
- /* 3 */
- -o-tab-size: 4;
- tab-size: 4;
- /* 3 */
- font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
- /* 4 */
- font-feature-settings: normal;
- /* 5 */
- font-variation-settings: normal;
- /* 6 */
- -webkit-tap-highlight-color: transparent;
- /* 7 */
-}
-
-/*
-1. Remove the margin in all browsers.
-2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
-*/
-
-body {
- margin: 0;
- /* 1 */
- line-height: inherit;
- /* 2 */
-}
-
-/*
-1. Add the correct height in Firefox.
-2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
-3. Ensure horizontal rules are visible by default.
-*/
-
-hr {
- height: 0;
- /* 1 */
- color: inherit;
- /* 2 */
- border-top-width: 1px;
- /* 3 */
-}
-
-/*
-Add the correct text decoration in Chrome, Edge, and Safari.
-*/
-
-abbr:where([title]) {
- -webkit-text-decoration: underline dotted;
- text-decoration: underline dotted;
-}
-
-/*
-Remove the default font size and weight for headings.
-*/
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-size: inherit;
- font-weight: inherit;
-}
-
-/*
-Reset links to optimize for opt-in styling instead of opt-out.
-*/
-
-a {
- color: inherit;
- text-decoration: inherit;
-}
-
-/*
-Add the correct font weight in Edge and Safari.
-*/
-
-b,
-strong {
- font-weight: bolder;
-}
-
-/*
-1. Use the user's configured `mono` font-family by default.
-2. Use the user's configured `mono` font-feature-settings by default.
-3. Use the user's configured `mono` font-variation-settings by default.
-4. Correct the odd `em` font sizing in all browsers.
-*/
-
-code,
-kbd,
-samp,
-pre {
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
- /* 1 */
- font-feature-settings: normal;
- /* 2 */
- font-variation-settings: normal;
- /* 3 */
- font-size: 1em;
- /* 4 */
-}
-
-/*
-Add the correct font size in all browsers.
-*/
-
-small {
- font-size: 80%;
-}
-
-/*
-Prevent `sub` and `sup` elements from affecting the line height in all browsers.
-*/
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-/*
-1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
-2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
-3. Remove gaps between table borders by default.
-*/
-
-table {
- text-indent: 0;
- /* 1 */
- border-color: inherit;
- /* 2 */
- border-collapse: collapse;
- /* 3 */
-}
-
-/*
-1. Change the font styles in all browsers.
-2. Remove the margin in Firefox and Safari.
-3. Remove default padding in all browsers.
-*/
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit;
- /* 1 */
- font-feature-settings: inherit;
- /* 1 */
- font-variation-settings: inherit;
- /* 1 */
- font-size: 100%;
- /* 1 */
- font-weight: inherit;
- /* 1 */
- line-height: inherit;
- /* 1 */
- letter-spacing: inherit;
- /* 1 */
- color: inherit;
- /* 1 */
- margin: 0;
- /* 2 */
- padding: 0;
- /* 3 */
-}
-
-/*
-Remove the inheritance of text transform in Edge and Firefox.
-*/
-
-button,
-select {
- text-transform: none;
-}
-
-/*
-1. Correct the inability to style clickable types in iOS and Safari.
-2. Remove default button styles.
-*/
-
-button,
-input:where([type='button']),
-input:where([type='reset']),
-input:where([type='submit']) {
- -webkit-appearance: button;
- /* 1 */
- background-color: transparent;
- /* 2 */
- background-image: none;
- /* 2 */
-}
-
-/*
-Use the modern Firefox focus style for all focusable elements.
-*/
-
-:-moz-focusring {
- outline: auto;
-}
-
-/*
-Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
-*/
-
-:-moz-ui-invalid {
- box-shadow: none;
-}
-
-/*
-Add the correct vertical alignment in Chrome and Firefox.
-*/
-
-progress {
- vertical-align: baseline;
-}
-
-/*
-Correct the cursor style of increment and decrement buttons in Safari.
-*/
-
-::-webkit-inner-spin-button,
-::-webkit-outer-spin-button {
- height: auto;
-}
-
-/*
-1. Correct the odd appearance in Chrome and Safari.
-2. Correct the outline style in Safari.
-*/
-
-[type='search'] {
- -webkit-appearance: textfield;
- /* 1 */
- outline-offset: -2px;
- /* 2 */
-}
-
-/*
-Remove the inner padding in Chrome and Safari on macOS.
-*/
-
-::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/*
-1. Correct the inability to style clickable types in iOS and Safari.
-2. Change font properties to `inherit` in Safari.
-*/
-
-::-webkit-file-upload-button {
- -webkit-appearance: button;
- /* 1 */
- font: inherit;
- /* 2 */
-}
-
-/*
-Add the correct display in Chrome and Safari.
-*/
-
-summary {
- display: list-item;
-}
-
-/*
-Removes the default spacing and border for appropriate elements.
-*/
-
-blockquote,
-dl,
-dd,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-hr,
-figure,
-p,
-pre {
- margin: 0;
-}
-
-fieldset {
- margin: 0;
- padding: 0;
-}
-
-legend {
- padding: 0;
-}
-
-ol,
-ul,
-menu {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-/*
-Reset default styling for dialogs.
-*/
-
-dialog {
- padding: 0;
-}
-
-/*
-Prevent resizing textareas horizontally by default.
-*/
-
-textarea {
- resize: vertical;
-}
-
-/*
-1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
-2. Set the default placeholder color to the user's configured gray 400 color.
-*/
-
-input::-moz-placeholder, textarea::-moz-placeholder {
- opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
-}
-
-input::placeholder,
-textarea::placeholder {
- opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
-}
-
-/*
-Set the default cursor for buttons.
-*/
-
-button,
-[role="button"] {
- cursor: pointer;
-}
-
-/*
-Make sure disabled buttons don't get the pointer cursor.
-*/
-
-:disabled {
- cursor: default;
-}
-
-/*
-1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
-2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
- This can trigger a poorly considered lint error in some tools but is included by design.
-*/
-
-img,
-svg,
-video,
-canvas,
-audio,
-iframe,
-embed,
-object {
- display: block;
- /* 1 */
- vertical-align: middle;
- /* 2 */
-}
-
-/*
-Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
-*/
-
-img,
-video {
- max-width: 100%;
- height: auto;
-}
-
-/* Make elements with the HTML hidden attribute stay hidden by default */
-
-[hidden]:where(:not([hidden="until-found"])) {
- display: none;
-}
-
-[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select{
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- background-color: #fff;
- border-color: #6b7280;
- border-width: 1px;
- border-radius: 0px;
- padding-top: 0.5rem;
- padding-right: 0.75rem;
- padding-bottom: 0.5rem;
- padding-left: 0.75rem;
- font-size: 1rem;
- line-height: 1.5rem;
- --tw-shadow: 0 0 #0000;
-}
-
-[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus{
- outline: 2px solid transparent;
- outline-offset: 2px;
- --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: #2563eb;
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
- border-color: #2563eb;
-}
-
-input::-moz-placeholder, textarea::-moz-placeholder{
- color: #6b7280;
- opacity: 1;
-}
-
-input::placeholder,textarea::placeholder{
- color: #6b7280;
- opacity: 1;
-}
-
-::-webkit-datetime-edit-fields-wrapper{
- padding: 0;
-}
-
-::-webkit-date-and-time-value{
- min-height: 1.5em;
- text-align: inherit;
-}
-
-::-webkit-datetime-edit{
- display: inline-flex;
-}
-
-::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{
- padding-top: 0;
- padding-bottom: 0;
-}
-
-select{
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
- background-position: right 0.5rem center;
- background-repeat: no-repeat;
- background-size: 1.5em 1.5em;
- padding-right: 2.5rem;
- -webkit-print-color-adjust: exact;
- print-color-adjust: exact;
-}
-
-[multiple],[size]:where(select:not([size="1"])){
- background-image: initial;
- background-position: initial;
- background-repeat: unset;
- background-size: initial;
- padding-right: 0.75rem;
- -webkit-print-color-adjust: unset;
- print-color-adjust: unset;
-}
-
-[type='checkbox'],[type='radio']{
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- padding: 0;
- -webkit-print-color-adjust: exact;
- print-color-adjust: exact;
- display: inline-block;
- vertical-align: middle;
- background-origin: border-box;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- flex-shrink: 0;
- height: 1rem;
- width: 1rem;
- color: #2563eb;
- background-color: #fff;
- border-color: #6b7280;
- border-width: 1px;
- --tw-shadow: 0 0 #0000;
-}
-
-[type='checkbox']{
- border-radius: 0px;
-}
-
-[type='radio']{
- border-radius: 100%;
-}
-
-[type='checkbox']:focus,[type='radio']:focus{
- outline: 2px solid transparent;
- outline-offset: 2px;
- --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
- --tw-ring-offset-width: 2px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: #2563eb;
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
-}
-
-[type='checkbox']:checked,[type='radio']:checked{
- border-color: transparent;
- background-color: currentColor;
- background-size: 100% 100%;
- background-position: center;
- background-repeat: no-repeat;
-}
-
-[type='checkbox']:checked{
- background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
-}
-
-@media (forced-colors: active) {
- [type='checkbox']:checked{
- -webkit-appearance: auto;
- -moz-appearance: auto;
- appearance: auto;
- }
-}
-
-[type='radio']:checked{
- background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
-}
-
-@media (forced-colors: active) {
- [type='radio']:checked{
- -webkit-appearance: auto;
- -moz-appearance: auto;
- appearance: auto;
- }
-}
-
-[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus{
- border-color: transparent;
- background-color: currentColor;
-}
-
-[type='checkbox']:indeterminate{
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
- border-color: transparent;
- background-color: currentColor;
- background-size: 100% 100%;
- background-position: center;
- background-repeat: no-repeat;
-}
-
-@media (forced-colors: active) {
- [type='checkbox']:indeterminate{
- -webkit-appearance: auto;
- -moz-appearance: auto;
- appearance: auto;
- }
-}
-
-[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus{
- border-color: transparent;
- background-color: currentColor;
-}
-
-[type='file']{
- background: unset;
- border-color: inherit;
- border-width: 0;
- border-radius: 0;
- padding: 0;
- font-size: unset;
- line-height: inherit;
-}
-
-[type='file']:focus{
- outline: 1px solid ButtonText;
- outline: 1px auto -webkit-focus-ring-color;
-}
-
-:root{
- --motion-default-timing: cubic-bezier(.165, .84, .44, 1);
- --motion-bounce: linear(0, 0.004, 0.016, 0.035, 0.063, 0.098, 0.141 13.6%, 0.25, 0.391, 0.563, 0.765,1, 0.891 40.9%, 0.848, 0.813, 0.785, 0.766, 0.754, 0.75, 0.754, 0.766, 0.785,0.813, 0.848, 0.891 68.2%, 1 72.7%, 0.973, 0.953, 0.941, 0.938, 0.941, 0.953,0.973, 1, 0.988, 0.984, 0.988, 1);
- --motion-spring-smooth: linear(0, 0.001 0.44%, 0.0045 0.94%, 0.0195 2.03%, 0.0446 3.19%, 0.0811 4.5%, 0.1598 6.82%, 0.3685 12.34%, 0.4693 15.17%, 0.5663, 0.6498 21.27%, 0.7215 24.39%, 0.7532 25.98%, 0.7829 27.65%, 0.8105, 0.8349 31.14%, 0.8573 32.95%, 0.8776 34.84%, 0.8964 36.87%, 0.9136 39.05%, 0.929 41.37%, 0.9421 43.77%, 0.9537 46.38%, 0.9636 49.14%, 0.9789 55.31%, 0.9888 62.35%, 0.9949 71.06%, 0.9982 82.52%, 0.9997 99.94%);
- --motion-spring-snappy: linear(0, 0.0014, 0.0053 1.02%, 0.0126, 0.0227 2.18%, 0.0517 3.41%, 0.094 4.79%, 0.1865 7.26%, 0.4182 12.77%, 0.5246 15.46%, 0.6249, 0.7112, 0.7831 23.95%, 0.8146 25.4%, 0.844, 0.8699 28.45%, 0.8935, 0.9139 31.64%, 0.932, 0.9473, 0.9601 36.65%, 0.9714 38.47%, 0.9808 40.35%, 0.9948 44.49%, 1.0031 49.43%, 1.0057 53.35%, 1.0063 58.14%, 1.0014 80.78%, 1.0001 99.94%);
- --motion-spring-bouncy: linear(0, 0.0018, 0.0069, 0.0151 1.74%, 0.0277 2.4%, 0.062 3.7%, 0.1115 5.15%, 0.2211 7.77%, 0.4778 13.21%, 0.5912 15.75%, 0.6987 18.44%, 0.7862 20.98%, 0.861 23.59%, 0.8926, 0.9205, 0.945 27.51%, 0.9671 28.89%, 0.9868, 1.003 31.79%, 1.0224 34.11%, 1.0358 36.58%, 1.0436 39.27%, 1.046 42.31%, 1.0446 44.71%, 1.0406 47.47%, 1.0118 61.84%, 1.0027 69.53%, 0.9981 80.49%, 0.9991 99.94%);
- --motion-spring-bouncier: linear(0, 0.0023, 0.0088, 0.0194 1.59%, 0.035 2.17%, 0.078 3.33%, 0.1415 4.64%, 0.2054 5.75%, 0.2821 6.95%, 0.5912 11.45%, 0.7205 13.43%, 0.8393 15.45%, 0.936 17.39%, 0.9778, 1.015, 1.0477, 1.0759, 1.0998 22.22%, 1.1203, 1.1364, 1.1484 25.26%, 1.1586 26.61%, 1.1629 28.06%, 1.1613 29.56%, 1.1537 31.2%, 1.1434 32.6%, 1.1288 34.19%, 1.0508 41.29%, 1.0174 44.87%, 1.0025 46.89%, 0.9911 48.87%, 0.9826 50.9%, 0.9769 53.03%, 0.9735 56.02%, 0.9748 59.45%, 0.9964 72.64%, 1.0031 79.69%, 1.0042 86.83%, 1.0008 99.97%);
- --motion-spring-bounciest: linear(0, 0.0032, 0.0131, 0.0294, 0.0524, 0.0824, 0.1192 1.54%, 0.2134 2.11%, 0.3102 2.59%, 0.4297 3.13%, 0.8732 4.95%, 1.0373, 1.1827 6.36%, 1.2972 7.01%, 1.3444, 1.3859, 1.4215, 1.4504, 1.4735, 1.4908, 1.5024, 1.5084 9.5%, 1.5091, 1.5061, 1.4993, 1.4886, 1.4745, 1.4565 11.11%, 1.4082 11.7%, 1.3585 12.2%, 1.295 12.77%, 1.0623 14.64%, 0.9773, 0.9031 16.08%, 0.8449 16.73%, 0.8014, 0.7701 17.95%, 0.7587, 0.7501, 0.7443, 0.7412 19.16%, 0.7421 19.68%, 0.7508 20.21%, 0.7672 20.77%, 0.7917 21.37%, 0.8169 21.87%, 0.8492 22.43%, 0.9681 24.32%, 1.0114, 1.0492 25.75%, 1.0789 26.41%, 1.1008, 1.1167, 1.1271, 1.1317 28.81%, 1.1314, 1.1271 29.87%, 1.1189 30.43%, 1.1063 31.03%, 1.0769 32.11%, 0.9941 34.72%, 0.9748 35.43%, 0.9597 36.09%, 0.9487, 0.9407, 0.9355, 0.933 38.46%, 0.9344 39.38%, 0.9421 40.38%, 0.9566 41.5%, 0.9989 44.12%, 1.0161 45.37%, 1.029 46.75%, 1.0341 48.1%, 1.0335 49.04%, 1.0295 50.05%, 1.0221 51.18%, 0.992 55.02%, 0.9854 56.38%, 0.9827 57.72%, 0.985 59.73%, 1.004 64.67%, 1.0088 67.34%, 1.0076 69.42%, 0.9981 74.28%, 0.9956 76.85%, 0.9961 79.06%, 1.0023 86.46%, 0.999 95.22%, 0.9994 100%);
-}
-
-.container{
- width: 100%;
-}
-
-@media (min-width: 640px){
- .container{
- max-width: 640px;
- }
-}
-
-@media (min-width: 768px){
- .container{
- max-width: 768px;
- }
-}
-
-@media (min-width: 1024px){
- .container{
- max-width: 1024px;
- }
-}
-
-@media (min-width: 1280px){
- .container{
- max-width: 1280px;
- }
-}
-
-@media (min-width: 1536px){
- .container{
- max-width: 1536px;
- }
-}
-
-.motion-preset-slide-up{
- --motion-origin-translate-y: 25%;
- --motion-origin-opacity: 0;
- --motion-opacity-in-animation: motion-opacity-in calc(var(--motion-opacity-duration) * var(--motion-opacity-perceptual-duration-multiplier)) var(--motion-opacity-timing) var(--motion-opacity-delay) both;
- --motion-translate-in-animation: motion-translate-in calc(var(--motion-translate-duration) * var(--motion-translate-perceptual-duration-multiplier)) var(--motion-translate-timing) var(--motion-translate-delay) both;
- animation: var(--motion-all-enter-animations);
-}
-
-@keyframes RomboConfettiPop{
- 0%{
- opacity: 0;
- transform: scale(1);
- }
-
- 33%{
- opacity: 1;
- transform: scale(1.15);
- }
-
- 50%{
- transform: scale(0.975);
- }
-
- 65%{
- transform: scale(1.025);
- }
-
- 80%{
- transform: scale(0.99);
- }
-
- 87%{
- transform: scale(1.01);
- }
-
- 100%{
- opacity: 1;
- transform: scale(1);
- }
-}
-
-@keyframes topfetti{
- 0%{
- background-position: 5% 90%, 10% 90%, 10% 90%, 15% 90%, 25% 90%, 25% 90%, 40% 90%, 55% 90%, 70% 90%;
- }
-
- 50%{
- background-position: 0% 80%, 0% 20%, 10% 40%, 20% 0%, 30% 30%, 22% 50%, 50% 50%, 65% 20%, 90% 30%;
- }
-
- 100%{
- background-position: 0% 70%, 0% 10%, 10% 30%, 20% -10%, 30% 20%, 22% 40%, 50% 40%, 65% 10%, 90% 20%;
- background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
- }
-}
-
-@keyframes bottomfetti{
- 0%{
- background-position: 10% -10%, 30% 10%, 55% -10%, 70% -10%, 85% -10%,70% -10%, 70% 0%;
- }
-
- 50%{
- background-position: 0% 80%, 20% 80%, 45% 60%, 60% 100%, 75% 70%, 95% 60%, 105% 0%;
- }
-
- 100%{
- background-position: 0% 90%, 20% 90%, 45% 70%, 60% 110%, 75% 80%, 95% 70%, 110% 10%;
- background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
- }
-}
-
-.fixed{
- position: fixed;
-}
-
-.absolute{
- position: absolute;
-}
-
-.relative{
- position: relative;
-}
-
-.inset-0{
- inset: 0px;
-}
-
-.bottom-0{
- bottom: 0px;
-}
-
-.left-0{
- left: 0px;
-}
-
-.left-1\/2{
- left: 50%;
-}
-
-.right-0{
- right: 0px;
-}
-
-.top-0{
- top: 0px;
-}
-
-.top-2{
- top: 0.5rem;
-}
-
-.-z-10{
- z-index: -10;
-}
-
-.z-10{
- z-index: 10;
-}
-
-.z-20{
- z-index: 20;
-}
-
-.z-30{
- z-index: 30;
-}
-
-.z-40{
- z-index: 40;
-}
-
-.z-50{
- z-index: 50;
-}
-
-.z-\[99\]{
- z-index: 99;
-}
-
-.order-first{
- order: -9999;
-}
-
-.-m-2{
- margin: -0.5rem;
-}
-
-.m-2{
- margin: 0.5rem;
-}
-
-.mx-auto{
- margin-left: auto;
- margin-right: auto;
-}
-
-.mb-1{
- margin-bottom: 0.25rem;
-}
-
-.mb-2{
- margin-bottom: 0.5rem;
-}
-
-.mb-3{
- margin-bottom: 0.75rem;
-}
-
-.mb-4{
- margin-bottom: 1rem;
-}
-
-.mb-6{
- margin-bottom: 1.5rem;
-}
-
-.mb-8{
- margin-bottom: 2rem;
-}
-
-.ml-1{
- margin-left: 0.25rem;
-}
-
-.ml-2{
- margin-left: 0.5rem;
-}
-
-.ml-3{
- margin-left: 0.75rem;
-}
-
-.mr-1{
- margin-right: 0.25rem;
-}
-
-.mr-2{
- margin-right: 0.5rem;
-}
-
-.mr-3{
- margin-right: 0.75rem;
-}
-
-.mr-4{
- margin-right: 1rem;
-}
-
-.mr-5{
- margin-right: 1.25rem;
-}
-
-.mr-7{
- margin-right: 1.75rem;
-}
-
-.mt-1{
- margin-top: 0.25rem;
-}
-
-.mt-12{
- margin-top: 3rem;
-}
-
-.mt-2{
- margin-top: 0.5rem;
-}
-
-.mt-24{
- margin-top: 6rem;
-}
-
-.mt-4{
- margin-top: 1rem;
-}
-
-.mt-5{
- margin-top: 1.25rem;
-}
-
-.mt-6{
- margin-top: 1.5rem;
-}
-
-.box-content{
- box-sizing: content-box;
-}
-
-.block{
- display: block;
-}
-
-.flex{
- display: flex;
-}
-
-.inline-flex{
- display: inline-flex;
-}
-
-.grid{
- display: grid;
-}
-
-.hidden{
- display: none;
-}
-
-.h-0\.5{
- height: 0.125rem;
-}
-
-.h-10{
- height: 2.5rem;
-}
-
-.h-14{
- height: 3.5rem;
-}
-
-.h-20{
- height: 5rem;
-}
-
-.h-3{
- height: 0.75rem;
-}
-
-.h-32{
- height: 8rem;
-}
-
-.h-4{
- height: 1rem;
-}
-
-.h-5{
- height: 1.25rem;
-}
-
-.h-8{
- height: 2rem;
-}
-
-.h-9{
- height: 2.25rem;
-}
-
-.h-\[280px\]{
- height: 280px;
-}
-
-.h-auto{
- height: auto;
-}
-
-.h-full{
- height: 100%;
-}
-
-.h-screen{
- height: 100vh;
-}
-
-.min-h-screen{
- min-height: 100vh;
-}
-
-.w-0{
- width: 0px;
-}
-
-.w-1\/3{
- width: 33.333333%;
-}
-
-.w-14{
- width: 3.5rem;
-}
-
-.w-16{
- width: 4rem;
-}
-
-.w-20{
- width: 5rem;
-}
-
-.w-3{
- width: 0.75rem;
-}
-
-.w-4{
- width: 1rem;
-}
-
-.w-5{
- width: 1.25rem;
-}
-
-.w-8{
- width: 2rem;
-}
-
-.w-\[22rem\]{
- width: 22rem;
-}
-
-.w-\[365px\]{
- width: 365px;
-}
-
-.w-\[calc\(100\%\+1rem\)\]{
- width: calc(100% + 1rem);
-}
-
-.w-\[full\]{
- width: full;
-}
-
-.w-auto{
- width: auto;
-}
-
-.w-fit{
- width: -moz-fit-content;
- width: fit-content;
-}
-
-.w-full{
- width: 100%;
-}
-
-.w-screen{
- width: 100vw;
-}
-
-.max-w-2xl{
- max-width: 42rem;
-}
-
-.max-w-3xl{
- max-width: 48rem;
-}
-
-.max-w-4xl{
- max-width: 56rem;
-}
-
-.max-w-5xl{
- max-width: 64rem;
-}
-
-.max-w-6xl{
- max-width: 72rem;
-}
-
-.max-w-\[94rem\]{
- max-width: 94rem;
-}
-
-.max-w-lg{
- max-width: 32rem;
-}
-
-.max-w-md{
- max-width: 28rem;
-}
-
-.max-w-screen-sm{
- max-width: 640px;
-}
-
-.max-w-sm{
- max-width: 24rem;
-}
-
-.max-w-xl{
- max-width: 36rem;
-}
-
-.max-w-xs{
- max-width: 20rem;
-}
-
-.flex-shrink-0{
- flex-shrink: 0;
-}
-
-.shrink-0{
- flex-shrink: 0;
-}
-
-.grow{
- flex-grow: 1;
-}
-
-.-translate-x-0{
- --tw-translate-x: -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));
-}
-
-.-translate-x-1\/2{
- --tw-translate-x: -50%;
- 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-4{
- --tw-translate-x: -1rem;
- 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-7{
- --tw-translate-x: -1.75rem;
- 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-4{
- --tw-translate-y: -1rem;
- 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));
-}
-
-.translate-x-0{
- --tw-translate-x: 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));
-}
-
-.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-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));
-}
-
-.translate-y-1\/3{
- --tw-translate-y: 33.333333%;
- 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-24{
- --tw-translate-y: 6rem;
- 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-3{
- --tw-translate-y: 0.75rem;
- 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-4{
- --tw-translate-y: 1rem;
- 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));
-}
-
-.scale-100{
- --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));
-}
-
-.scale-90{
- --tw-scale-x: .9;
- --tw-scale-y: .9;
- 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));
-}
-
-.transform{
- 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));
-}
-
-@keyframes infinite-scroll{
- from{
- transform: translateX(0);
- }
-
- to{
- transform: translateX(-100%);
- }
-}
-
-.animate-infinite-scroll{
- animation: infinite-scroll 60s linear infinite;
-}
-
-@keyframes infinite-scroll-inverse{
- from{
- transform: translateX(-100%);
- }
-
- to{
- transform: translateX(0);
- }
-}
-
-.animate-infinite-scroll-inverse{
- animation: infinite-scroll-inverse 60s linear infinite;
-}
-
-.cursor-default{
- cursor: default;
-}
-
-.cursor-pointer{
- cursor: pointer;
-}
-
-.grid-cols-2{
- grid-template-columns: repeat(2, minmax(0, 1fr));
-}
-
-.flex-row{
- flex-direction: row;
-}
-
-.flex-col{
- flex-direction: column;
-}
-
-.flex-col-reverse{
- flex-direction: column-reverse;
-}
-
-.flex-wrap{
- flex-wrap: wrap;
-}
-
-.flex-nowrap{
- flex-wrap: nowrap;
-}
-
-.items-start{
- align-items: flex-start;
-}
-
-.items-end{
- align-items: flex-end;
-}
-
-.items-center{
- align-items: center;
-}
-
-.justify-end{
- justify-content: flex-end;
-}
-
-.justify-center{
- justify-content: center;
-}
-
-.justify-between{
- justify-content: space-between;
-}
-
-.gap-12{
- gap: 3rem;
-}
-
-.gap-2{
- gap: 0.5rem;
-}
-
-.gap-3{
- gap: 0.75rem;
-}
-
-.gap-4{
- gap: 1rem;
-}
-
-.gap-8{
- gap: 2rem;
-}
-
-.gap-x-3{
- -moz-column-gap: 0.75rem;
- column-gap: 0.75rem;
-}
-
-.gap-y-3{
- row-gap: 0.75rem;
-}
-
-.space-x-1 > :not([hidden]) ~ :not([hidden]){
- --tw-space-x-reverse: 0;
- margin-right: calc(0.25rem * var(--tw-space-x-reverse));
- margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-3 > :not([hidden]) ~ :not([hidden]){
- --tw-space-x-reverse: 0;
- margin-right: calc(0.75rem * var(--tw-space-x-reverse));
- margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-x-4 > :not([hidden]) ~ :not([hidden]){
- --tw-space-x-reverse: 0;
- margin-right: calc(1rem * var(--tw-space-x-reverse));
- margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
-}
-
-.space-y-1 > :not([hidden]) ~ :not([hidden]){
- --tw-space-y-reverse: 0;
- margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
-}
-
-.space-y-1\.5 > :not([hidden]) ~ :not([hidden]){
- --tw-space-y-reverse: 0;
- margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
-}
-
-.space-y-12 > :not([hidden]) ~ :not([hidden]){
- --tw-space-y-reverse: 0;
- margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(3rem * var(--tw-space-y-reverse));
-}
-
-.space-y-2 > :not([hidden]) ~ :not([hidden]){
- --tw-space-y-reverse: 0;
- margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0.5rem * 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)));
- margin-bottom: calc(1rem * var(--tw-space-y-reverse));
-}
-
-.space-y-6 > :not([hidden]) ~ :not([hidden]){
- --tw-space-y-reverse: 0;
- margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
-}
-
-.overflow-hidden{
- overflow: hidden;
-}
-
-.rounded{
- border-radius: 0.25rem;
-}
-
-.rounded-full{
- border-radius: 9999px;
-}
-
-.rounded-lg{
- border-radius: 0.5rem;
-}
-
-.rounded-md{
- border-radius: 0.375rem;
-}
-
-.rounded-xl{
- border-radius: 0.75rem;
-}
-
-.rounded-t-lg{
- border-top-left-radius: 0.5rem;
- border-top-right-radius: 0.5rem;
-}
-
-.border{
- border-width: 1px;
-}
-
-.border-2{
- border-width: 2px;
-}
-
-.border-\[2px\]{
- border-width: 2px;
-}
-
-.border-t{
- border-top-width: 1px;
-}
-
-.border-neutral-200\/60{
- border-color: rgb(229 229 229 / 0.6);
-}
-
-.border-neutral-200\/70{
- border-color: rgb(229 229 229 / 0.7);
-}
-
-.border-neutral-300{
- --tw-border-opacity: 1;
- border-color: rgb(212 212 212 / var(--tw-border-opacity, 1));
-}
-
-.border-transparent{
- border-color: transparent;
-}
-
-.border-white{
- --tw-border-opacity: 1;
- border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
-}
-
-.border-zinc-200{
- --tw-border-opacity: 1;
- border-color: rgb(228 228 231 / var(--tw-border-opacity, 1));
-}
-
-.border-zinc-300{
- --tw-border-opacity: 1;
- border-color: rgb(212 212 216 / var(--tw-border-opacity, 1));
-}
-
-.border-zinc-600{
- --tw-border-opacity: 1;
- border-color: rgb(82 82 91 / var(--tw-border-opacity, 1));
-}
-
-.bg-blue-600{
- --tw-bg-opacity: 1;
- background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
-}
-
-.bg-neutral-50{
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));
-}
-
-.bg-neutral-900{
- --tw-bg-opacity: 1;
- background-color: rgb(23 23 23 / var(--tw-bg-opacity, 1));
-}
-
-.bg-neutral-950{
- --tw-bg-opacity: 1;
- background-color: rgb(10 10 10 / var(--tw-bg-opacity, 1));
-}
-
-.bg-transparent{
- background-color: transparent;
-}
-
-.bg-white{
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
-}
-
-.bg-zinc-100{
- --tw-bg-opacity: 1;
- background-color: rgb(244 244 245 / var(--tw-bg-opacity, 1));
-}
-
-.bg-zinc-50{
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));
-}
-
-.bg-zinc-800{
- --tw-bg-opacity: 1;
- background-color: rgb(39 39 42 / var(--tw-bg-opacity, 1));
-}
-
-.bg-zinc-900{
- --tw-bg-opacity: 1;
- background-color: rgb(24 24 27 / var(--tw-bg-opacity, 1));
-}
-
-.bg-opacity-90{
- --tw-bg-opacity: 0.9;
-}
-
-.bg-gradient-to-r{
- background-image: linear-gradient(to right, var(--tw-gradient-stops));
-}
-
-.bg-gradient-to-t{
- background-image: linear-gradient(to top, var(--tw-gradient-stops));
-}
-
-.from-black{
- --tw-gradient-from: #000 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);
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
-}
-
-.from-zinc-500{
- --tw-gradient-from: #71717a var(--tw-gradient-from-position);
- --tw-gradient-to: rgb(113 113 122 / 0) var(--tw-gradient-to-position);
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
-}
-
-.via-zinc-900{
- --tw-gradient-to: rgb(24 24 27 / 0) var(--tw-gradient-to-position);
- --tw-gradient-stops: var(--tw-gradient-from), #18181b var(--tw-gradient-via-position), var(--tw-gradient-to);
-}
-
-.to-white{
- --tw-gradient-to: #fff var(--tw-gradient-to-position);
-}
-
-.to-zinc-900{
- --tw-gradient-to: #18181b var(--tw-gradient-to-position);
-}
-
-.bg-cover{
- background-size: cover;
-}
-
-.bg-clip-text{
- -webkit-background-clip: text;
- background-clip: text;
-}
-
-.fill-current{
- fill: currentColor;
-}
-
-.fill-zinc-300{
- fill: #d4d4d8;
-}
-
-.fill-zinc-400{
- fill: #a1a1aa;
-}
-
-.object-cover{
- -o-object-fit: cover;
- object-fit: cover;
-}
-
-.object-left{
- -o-object-position: left;
- object-position: left;
-}
-
-.p-1{
- padding: 0.25rem;
-}
-
-.p-4{
- padding: 1rem;
-}
-
-.p-5{
- padding: 1.25rem;
-}
-
-.p-6{
- padding: 1.5rem;
-}
-
-.p-7{
- padding: 1.75rem;
-}
-
-.px-0\.5{
- padding-left: 0.125rem;
- padding-right: 0.125rem;
-}
-
-.px-2{
- padding-left: 0.5rem;
- padding-right: 0.5rem;
-}
-
-.px-2\.5{
- padding-left: 0.625rem;
- padding-right: 0.625rem;
-}
-
-.px-3{
- padding-left: 0.75rem;
- padding-right: 0.75rem;
-}
-
-.px-3\.5{
- padding-left: 0.875rem;
- padding-right: 0.875rem;
-}
-
-.px-4{
- padding-left: 1rem;
- padding-right: 1rem;
-}
-
-.px-5{
- padding-left: 1.25rem;
- padding-right: 1.25rem;
-}
-
-.px-6{
- padding-left: 1.5rem;
- padding-right: 1.5rem;
-}
-
-.px-7{
- padding-left: 1.75rem;
- padding-right: 1.75rem;
-}
-
-.px-8{
- padding-left: 2rem;
- padding-right: 2rem;
-}
-
-.py-0\.5{
- padding-top: 0.125rem;
- padding-bottom: 0.125rem;
-}
-
-.py-1{
- padding-top: 0.25rem;
- padding-bottom: 0.25rem;
-}
-
-.py-12{
- padding-top: 3rem;
- padding-bottom: 3rem;
-}
-
-.py-2{
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
-}
-
-.py-3{
- padding-top: 0.75rem;
- padding-bottom: 0.75rem;
-}
-
-.py-4{
- padding-top: 1rem;
- padding-bottom: 1rem;
-}
-
-.py-5{
- padding-top: 1.25rem;
- padding-bottom: 1.25rem;
-}
-
-.py-6{
- padding-top: 1.5rem;
- padding-bottom: 1.5rem;
-}
-
-.py-8{
- padding-top: 2rem;
- padding-bottom: 2rem;
-}
-
-.py-px{
- padding-top: 1px;
- padding-bottom: 1px;
-}
-
-.pb-1{
- padding-bottom: 0.25rem;
-}
-
-.pb-12{
- padding-bottom: 3rem;
-}
-
-.pb-2{
- padding-bottom: 0.5rem;
-}
-
-.pb-3{
- padding-bottom: 0.75rem;
-}
-
-.pb-4{
- padding-bottom: 1rem;
-}
-
-.pb-6{
- padding-bottom: 1.5rem;
-}
-
-.pb-8{
- padding-bottom: 2rem;
-}
-
-.pl-4{
- padding-left: 1rem;
-}
-
-.pr-2{
- padding-right: 0.5rem;
-}
-
-.pr-4{
- padding-right: 1rem;
-}
-
-.pt-0{
- padding-top: 0px;
-}
-
-.pt-2{
- padding-top: 0.5rem;
-}
-
-.pt-32{
- padding-top: 8rem;
-}
-
-.pt-6{
- padding-top: 1.5rem;
-}
-
-.pt-8{
- padding-top: 2rem;
-}
-
-.text-left{
- text-align: left;
-}
-
-.text-center{
- text-align: center;
-}
-
-.align-top{
- vertical-align: top;
-}
-
-.font-inter{
- font-family: Inter, sans-serif;
-}
-
-.font-inter-tight{
- font-family: Inter Tight, sans-serif;
-}
-
-.font-sans{
- font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-}
-
-.text-2xl{
- font-size: 1.5rem;
- line-height: 1.415;
- letter-spacing: -0.017em;
-}
-
-.text-3xl{
- font-size: 2rem;
- line-height: 1.3125;
- letter-spacing: -0.017em;
-}
-
-.text-4xl{
- font-size: 2.5rem;
- line-height: 1.25;
- letter-spacing: -0.017em;
-}
-
-.text-\[0\.6rem\]{
- font-size: 0.6rem;
-}
-
-.text-base{
- font-size: 1rem;
- line-height: 1.5;
- letter-spacing: -0.017em;
-}
-
-.text-lg{
- font-size: 1.125rem;
- line-height: 1.5;
- letter-spacing: -0.017em;
-}
-
-.text-sm{
- font-size: 0.875rem;
- line-height: 1.5715;
-}
-
-.text-xl{
- font-size: 1.25rem;
- line-height: 1.5;
- letter-spacing: -0.017em;
-}
-
-.text-xs{
- font-size: 0.75rem;
- line-height: 1.5;
-}
-
-.font-bold{
- font-weight: 700;
-}
-
-.font-extrabold{
- font-weight: 800;
-}
-
-.font-medium{
- font-weight: 500;
-}
-
-.font-normal{
- font-weight: 400;
-}
-
-.font-semibold{
- font-weight: 600;
-}
-
-.uppercase{
- text-transform: uppercase;
-}
-
-.italic{
- font-style: italic;
-}
-
-.not-italic{
- font-style: normal;
-}
-
-.tabular-nums{
- --tw-numeric-spacing: tabular-nums;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
-}
-
-.leading-none{
- line-height: 1;
-}
-
-.tracking-tight{
- letter-spacing: -0.025em;
-}
-
-.tracking-wide{
- letter-spacing: 0.025em;
-}
-
-.text-blue-600{
- --tw-text-opacity: 1;
- color: rgb(37 99 235 / var(--tw-text-opacity, 1));
-}
-
-.text-gray-400{
- --tw-text-opacity: 1;
- color: rgb(156 163 175 / var(--tw-text-opacity, 1));
-}
-
-.text-gray-400\/70{
- color: rgb(156 163 175 / 0.7);
-}
-
-.text-gray-500{
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity, 1));
-}
-
-.text-gray-600{
- --tw-text-opacity: 1;
- color: rgb(75 85 99 / var(--tw-text-opacity, 1));
-}
-
-.text-neutral-100{
- --tw-text-opacity: 1;
- color: rgb(245 245 245 / var(--tw-text-opacity, 1));
-}
-
-.text-neutral-500{
- --tw-text-opacity: 1;
- color: rgb(115 115 115 / var(--tw-text-opacity, 1));
-}
-
-.text-neutral-800{
- --tw-text-opacity: 1;
- color: rgb(38 38 38 / var(--tw-text-opacity, 1));
-}
-
-.text-neutral-900{
- --tw-text-opacity: 1;
- color: rgb(23 23 23 / var(--tw-text-opacity, 1));
-}
-
-.text-transparent{
- color: transparent;
-}
-
-.text-white{
- --tw-text-opacity: 1;
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
-}
-
-.text-zinc-100{
- --tw-text-opacity: 1;
- color: rgb(244 244 245 / var(--tw-text-opacity, 1));
-}
-
-.text-zinc-200{
- --tw-text-opacity: 1;
- color: rgb(228 228 231 / var(--tw-text-opacity, 1));
-}
-
-.text-zinc-400{
- --tw-text-opacity: 1;
- color: rgb(161 161 170 / var(--tw-text-opacity, 1));
-}
-
-.text-zinc-500{
- --tw-text-opacity: 1;
- color: rgb(113 113 122 / var(--tw-text-opacity, 1));
-}
-
-.text-zinc-600{
- --tw-text-opacity: 1;
- color: rgb(82 82 91 / var(--tw-text-opacity, 1));
-}
-
-.text-zinc-700{
- --tw-text-opacity: 1;
- color: rgb(63 63 70 / var(--tw-text-opacity, 1));
-}
-
-.text-zinc-800{
- --tw-text-opacity: 1;
- color: rgb(39 39 42 / var(--tw-text-opacity, 1));
-}
-
-.text-zinc-900{
- --tw-text-opacity: 1;
- color: rgb(24 24 27 / var(--tw-text-opacity, 1));
-}
-
-.underline{
- text-decoration-line: underline;
-}
-
-.no-underline{
- text-decoration-line: none;
-}
-
-.underline-offset-4{
- text-underline-offset: 4px;
-}
-
-.antialiased{
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-.opacity-0{
- opacity: 0;
-}
-
-.opacity-100{
- opacity: 1;
-}
-
-.opacity-60{
- opacity: 0.6;
-}
-
-.opacity-70{
- opacity: 0.7;
-}
-
-.opacity-90{
- opacity: 0.9;
-}
-
-.mix-blend-exclusion{
- mix-blend-mode: exclusion;
-}
-
-.shadow{
- --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
- --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.shadow-2xl{
- --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
- --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.shadow-md{
- --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
- --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.shadow-sm{
- --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
- --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
-}
-
-.shadow-zinc-950\/20{
- --tw-shadow-color: rgb(9 9 11 / 0.2);
- --tw-shadow: var(--tw-shadow-colored);
-}
-
-.drop-shadow-md{
- --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
-}
-
-.backdrop-blur-sm{
- --tw-backdrop-blur: blur(4px);
- -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
- backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
-}
-
-.transition{
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
- 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;
-}
-
-.duration-100{
- transition-duration: 100ms;
-}
-
-.duration-150{
- transition-duration: 150ms;
-}
-
-.duration-200{
- transition-duration: 200ms;
-}
-
-.duration-300{
- transition-duration: 300ms;
-}
-
-.duration-500{
- transition-duration: 500ms;
-}
-
-.duration-700{
- transition-duration: 700ms;
-}
-
-.ease-in{
- transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
-}
-
-.ease-in-out{
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.ease-out{
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
-}
-
-@media screen and (prefers-reduced-motion: no-preference){
- @keyframes motion-scale-in{
- 0%{
- scale: var(--motion-origin-scale-x) var(--motion-origin-scale-y);
- }
-
- 100%{
- scale: 1 1;
- }
- }
-
- @keyframes motion-scale-out{
- 0%{
- scale: 1 1;
- }
-
- 100%{
- scale: var(--motion-end-scale-x) var(--motion-end-scale-y);
- }
- }
-
- @keyframes motion-translate-in{
- 0%{
- translate: var(--motion-origin-translate-x) var(--motion-origin-translate-y);
- }
-
- 100%{
- translate: 0 0;
- }
- }
-
- @keyframes motion-translate-out{
- 0%{
- translate: 0 0;
- }
-
- 100%{
- translate: var(--motion-end-translate-x) var(--motion-end-translate-y);
- }
- }
-
- @keyframes motion-rotate-in{
- 0%{
- rotate: var(--motion-origin-rotate);
- }
-
- 100%{
- rotate: 0;
- }
- }
-
- @keyframes motion-rotate-out{
- 0%{
- rotate: 0;
- }
-
- 100%{
- rotate: var(--motion-end-rotate);
- }
- }
-}
-
-@keyframes motion-filter-in{
- 0%{
- filter: blur(var(--motion-origin-blur)) grayscale(var(--motion-origin-grayscale));
- }
-
- 100%{
- filter: blur(0) grayscale(0);
- }
-}
-
-@keyframes motion-filter-out{
- 0%{
- filter: blur(0) grayscale(0);
- }
-
- 100%{
- filter: blur(var(--motion-end-blur)) grayscale(var(--motion-end-grayscale));
- }
-}
-
-@keyframes motion-opacity-in{
- 0%{
- opacity: var(--motion-origin-opacity);
- }
-}
-
-@keyframes motion-opacity-out{
- 100%{
- opacity: var(--motion-end-opacity);
- }
-}
-
-@keyframes motion-background-color-in{
- 0%{
- background-color: var(--motion-origin-background-color);
- }
-}
-
-@keyframes motion-background-color-out{
- 100%{
- background-color: var(--motion-end-background-color);
- }
-}
-
-@keyframes motion-text-color-in{
- 0%{
- color: var(--motion-origin-text-color);
- }
-}
-
-@keyframes motion-text-color-out{
- 100%{
- color: var(--motion-end-text-color);
- }
-}
-
-.motion-scale-in-50{
- --motion-origin-scale-x: .5;
- --motion-origin-scale-y: .5;
- --motion-scale-in-animation: motion-scale-in calc(var(--motion-scale-duration) * var(--motion-scale-perceptual-duration-multiplier)) var(--motion-scale-timing) var(--motion-scale-delay) both;
- animation: var(--motion-all-enter-animations);
-}
-
-.motion-opacity-in-0{
- --motion-origin-opacity: 0.001;
- --motion-opacity-in-animation: motion-opacity-in calc(var(--motion-opacity-duration) * var(--motion-opacity-perceptual-duration-multiplier)) var(--motion-opacity-timing) var(--motion-opacity-delay) both;
- animation: var(--motion-all-enter-animations);
-}
-
-.\[animation-delay\:-7\.5s\]{
- animation-delay: -7.5s;
-}
-
-.\[background\:linear-gradient\(\#2E2E32\2c \#2E2E32\)_padding-box\2c linear-gradient\(120deg\2c theme\(colors\.zinc\.700\)\2c theme\(colors\.zinc\.700\/0\)\2c theme\(colors\.zinc\.700\)\)_border-box\]{
- background: linear-gradient(#2E2E32,#2E2E32) padding-box,linear-gradient(120deg,#3f3f46,rgb(63 63 70 / 0),#3f3f46) border-box;
-}
-
-.\[background\:linear-gradient\(\#323237\2c \#323237\)_padding-box\2c linear-gradient\(120deg\2c theme\(colors\.zinc\.700\)\2c theme\(colors\.zinc\.700\/0\)\2c theme\(colors\.zinc\.700\)\)_border-box\]{
- background: linear-gradient(#323237,#323237) padding-box,linear-gradient(120deg,#3f3f46,rgb(63 63 70 / 0),#3f3f46) border-box;
-}
-
-.\[background\:linear-gradient\(theme\(colors\.white\)\2c theme\(colors\.white\)\)_padding-box\2c linear-gradient\(120deg\2c theme\(colors\.zinc\.300\)\2c theme\(colors\.zinc\.100\)\2c theme\(colors\.zinc\.300\)\)_border-box\]{
- background: linear-gradient(#fff,#fff) padding-box,linear-gradient(120deg,#d4d4d8,#f4f4f5,#d4d4d8) border-box;
-}
-
-.\[background\:linear-gradient\(theme\(colors\.white\)\2c theme\(colors\.zinc\.50\)\)_padding-box\2c linear-gradient\(120deg\2c theme\(colors\.zinc\.300\)\2c theme\(colors\.zinc\.100\)\2c theme\(colors\.zinc\.300\)\)_border-box\]{
- background: linear-gradient(#fff,#fafafa) padding-box,linear-gradient(120deg,#d4d4d8,#f4f4f5,#d4d4d8) border-box;
-}
-
-.\[background\:linear-gradient\(theme\(colors\.zinc\.50\)\2c theme\(colors\.zinc\.50\)\)_padding-box\2c linear-gradient\(120deg\2c theme\(colors\.zinc\.300\)\2c theme\(colors\.zinc\.100\)\2c theme\(colors\.zinc\.300\)\)_border-box\]{
- background: linear-gradient(#fafafa,#fafafa) padding-box,linear-gradient(120deg,#d4d4d8,#f4f4f5,#d4d4d8) border-box;
-}
-
-.\[background\:linear-gradient\(theme\(colors\.zinc\.800\)\2c theme\(colors\.zinc\.800\)\)_padding-box\2c linear-gradient\(120deg\2c theme\(colors\.zinc\.700\)\2c theme\(colors\.zinc\.700\/0\)\2c theme\(colors\.zinc\.700\)\)_border-box\]{
- background: linear-gradient(#27272a,#27272a) padding-box,linear-gradient(120deg,#3f3f46,rgb(63 63 70 / 0),#3f3f46) border-box;
-}
-
-.\[mask-image\:_linear-gradient\(to_right\2c transparent_0\2c _black_28\%\2c _black_calc\(100\%-28\%\)\2c transparent_100\%\)\]{
- -webkit-mask-image: linear-gradient(to right,transparent 0, black 28%, black calc(100% - 28%),transparent 100%);
- mask-image: linear-gradient(to right,transparent 0, black 28%, black calc(100% - 28%),transparent 100%);
-}
-
-.\[mask-image\:linear-gradient\(to_right\2c transparent_8px\2c _theme\(colors\.white\/\.7\)_64px\2c _theme\(colors\.white\)_50\%\2c _theme\(colors\.white\/\.7\)_calc\(100\%-64px\)\2c _transparent_calc\(100\%-8px\)\)\]{
- -webkit-mask-image: linear-gradient(to right,transparent 8px, rgb(255 255 255 / .7) 64px, #fff 50%, rgb(255 255 255 / .7) calc(100% - 64px), transparent calc(100% - 8px));
- mask-image: linear-gradient(to right,transparent 8px, rgb(255 255 255 / .7) 64px, #fff 50%, rgb(255 255 255 / .7) calc(100% - 64px), transparent calc(100% - 8px));
-}
-
-/* See Alpine.js: https://github.com/alpinejs/alpine#x-cloak */
-
-[x-cloak=""] {
- display: none;
-}
-
-/* Custom styles */
-
-.form-input:focus,
-.form-textarea:focus,
-.form-multiselect:focus,
-.form-select:focus,
-.form-checkbox:focus,
-.form-radio:focus{
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
-}
-
-/* Hamburger button */
-
-.hamburger svg > *:nth-child(1),
-.hamburger svg > *:nth-child(2),
-.hamburger svg > *:nth-child(3) {
- transform-origin: center;
- transform: rotate(0deg);
-}
-
-.hamburger svg > *:nth-child(1) {
- transition:
- y 0.1s 0.25s ease-in,
- transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19),
- opacity 0.1s ease-in;
-}
-
-.hamburger svg > *:nth-child(2) {
- transition: transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
-}
-
-.hamburger svg > *:nth-child(3) {
- transition:
- y 0.1s 0.25s ease-in,
- transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19),
- width 0.1s 0.25s ease-in;
-}
-
-.hamburger.active svg > *:nth-child(1) {
- opacity: 0;
- y: 11;
- transform: rotate(225deg);
- transition:
- y 0.1s ease-out,
- transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1),
- opacity 0.1s 0.12s ease-out;
-}
-
-.hamburger.active svg > *:nth-child(2) {
- transform: rotate(225deg);
- transition: transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
-}
-
-.hamburger.active svg > *:nth-child(3) {
- y: 11;
- transform: rotate(135deg);
- transition:
- y 0.1s ease-out,
- transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1),
- width 0.1s ease-out;
-}
-
-/* Typography */
-
-.h1{
- font-size: 3.25rem;
- line-height: 1.2;
- letter-spacing: -0.017em;
- font-weight: 700;
-}
-
-.h2{
- font-size: 2.5rem;
- line-height: 1.25;
- letter-spacing: -0.017em;
- font-weight: 700;
-}
-
-.h3{
- font-size: 2rem;
- line-height: 1.3125;
- letter-spacing: -0.017em;
- font-weight: 700;
-}
-
-.h4{
- font-size: 1.5rem;
- line-height: 1.415;
- letter-spacing: -0.017em;
- font-weight: 700;
-}
-
-@media (min-width: 768px) {
- .h1{
- font-size: 3.75rem;
- line-height: 1.1666;
- letter-spacing: -0.017em;
- }
-
- .h2{
- font-size: 3.25rem;
- line-height: 1.2;
- letter-spacing: -0.017em;
- }
-
- .h3{
- font-size: 2.5rem;
- line-height: 1.25;
- letter-spacing: -0.017em;
- }
-}
-
-/* Buttons */
-
-.btn,
-.btn-sm{
- display: inline-flex;
- align-items: center;
- justify-content: center;
- border-radius: 0.375rem;
- border-width: 1px;
- border-color: transparent;
- font-size: 0.875rem;
- line-height: 1.5715;
- font-weight: 500;
- letter-spacing: 0em;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
-}
-
-.btn{
- padding-left: 1rem;
- padding-right: 1rem;
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
-}
-
-.btn-sm{
- padding-left: 0.5rem;
- padding-right: 0.5rem;
- padding-top: 0.25rem;
- padding-bottom: 0.25rem;
-}
-
-/* Forms */
-
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-results-button,
-input[type="search"]::-webkit-search-results-decoration {
- -webkit-appearance: none;
-}
-
-.form-input,
-.form-textarea,
-.form-multiselect,
-.form-select,
-.form-checkbox,
-.form-radio{
- border-width: 1px;
- --tw-border-opacity: 1;
- border-color: rgb(228 228 231 / var(--tw-border-opacity, 1));
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
- --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
- --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
- --tw-shadow-color: rgb(0 0 0 / 0.05);
- --tw-shadow: var(--tw-shadow-colored);
-}
-
-.form-input:focus,
-.form-textarea:focus,
-.form-multiselect:focus,
-.form-select:focus,
-.form-checkbox:focus,
-.form-radio:focus{
- --tw-border-opacity: 1;
- border-color: rgb(161 161 170 / var(--tw-border-opacity, 1));
-}
-
-.form-input,
-.form-textarea,
-.form-multiselect,
-.form-select,
-.form-checkbox{
- border-radius: 0.25rem;
-}
-
-.form-input,
-.form-textarea,
-.form-multiselect,
-.form-select{
- padding-left: 1rem;
- padding-right: 1rem;
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
- font-size: 0.875rem;
- line-height: 1.5715;
- --tw-text-opacity: 1;
- color: rgb(82 82 91 / var(--tw-text-opacity, 1));
-}
-
-.form-input::-moz-placeholder, .form-textarea::-moz-placeholder{
- --tw-placeholder-opacity: 1;
- color: rgb(161 161 170 / var(--tw-placeholder-opacity, 1));
-}
-
-.form-input::placeholder,
-.form-textarea::placeholder{
- --tw-placeholder-opacity: 1;
- color: rgb(161 161 170 / var(--tw-placeholder-opacity, 1));
-}
-
-.form-select{
- padding-right: 2.5rem;
-}
-
-.form-checkbox,
-.form-radio{
- --tw-text-opacity: 1;
- color: rgb(39 39 42 / var(--tw-text-opacity, 1));
-}
-
-.form-checkbox{
- border-radius: 0.125rem;
-}
-
-/* Chrome, Safari and Opera */
-
-.no-scrollbar::-webkit-scrollbar {
- display: none;
-}
-
-.no-scrollbar {
- -ms-overflow-style: none;
- /* IE and Edge */
- scrollbar-width: none;
- /* Firefox */
-}
-
-.placeholder\:text-neutral-500::-moz-placeholder{
- --tw-text-opacity: 1;
- color: rgb(115 115 115 / var(--tw-text-opacity, 1));
-}
-
-.placeholder\:text-neutral-500::placeholder{
- --tw-text-opacity: 1;
- color: rgb(115 115 115 / var(--tw-text-opacity, 1));
-}
-
-.placeholder\:text-zinc-400::-moz-placeholder{
- --tw-text-opacity: 1;
- color: rgb(161 161 170 / var(--tw-text-opacity, 1));
-}
-
-.placeholder\:text-zinc-400::placeholder{
- --tw-text-opacity: 1;
- color: rgb(161 161 170 / var(--tw-text-opacity, 1));
-}
-
-.before\:pointer-events-none::before{
- content: var(--tw-content);
- pointer-events: none;
-}
-
-.before\:absolute::before{
- content: var(--tw-content);
- position: absolute;
-}
-
-.before\:inset-0::before{
- content: var(--tw-content);
- inset: 0px;
-}
-
-.before\:-top-12::before{
- content: var(--tw-content);
- top: -3rem;
-}
-
-.before\:-z-10::before{
- content: var(--tw-content);
- z-index: -10;
-}
-
-.before\:h-52::before{
- content: var(--tw-content);
- height: 13rem;
-}
-
-.before\:h-80::before{
- content: var(--tw-content);
- height: 20rem;
-}
-
-.before\:h-96::before{
- content: var(--tw-content);
- height: 24rem;
-}
-
-.before\:w-52::before{
- content: var(--tw-content);
- width: 13rem;
-}
-
-.before\:w-96::before{
- content: var(--tw-content);
- width: 24rem;
-}
-
-.before\:rounded-full::before{
- content: var(--tw-content);
- border-radius: 9999px;
-}
-
-.before\:bg-zinc-900::before{
- content: var(--tw-content);
- --tw-bg-opacity: 1;
- background-color: rgb(24 24 27 / var(--tw-bg-opacity, 1));
-}
-
-.before\:bg-gradient-to-b::before{
- content: var(--tw-content);
- background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
-}
-
-.before\:from-zinc-100::before{
- content: var(--tw-content);
- --tw-gradient-from: #f4f4f5 var(--tw-gradient-from-position);
- --tw-gradient-to: rgb(244 244 245 / 0) var(--tw-gradient-to-position);
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
-}
-
-.before\:opacity-\[\.08\]::before{
- content: var(--tw-content);
- opacity: .08;
-}
-
-.before\:opacity-\[\.15\]::before{
- content: var(--tw-content);
- opacity: .15;
-}
-
-.before\:blur-3xl::before{
- content: var(--tw-content);
- --tw-blur: blur(64px);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
-}
-
-.before\:content-\[\'\\0022\'\]::before{
- --tw-content: '\0022';
- content: var(--tw-content);
-}
-
-.after\:pointer-events-none::after{
- content: var(--tw-content);
- pointer-events: none;
-}
-
-.after\:absolute::after{
- content: var(--tw-content);
- position: absolute;
-}
-
-.after\:right-0::after{
- content: var(--tw-content);
- right: 0px;
-}
-
-.after\:top-0::after{
- content: var(--tw-content);
- top: 0px;
-}
-
-.after\:top-1\/2::after{
- content: var(--tw-content);
- top: 50%;
-}
-
-.after\:hidden::after{
- content: var(--tw-content);
- display: none;
-}
-
-.after\:h-8::after{
- content: var(--tw-content);
- height: 2rem;
-}
-
-.after\:h-full::after{
- content: var(--tw-content);
- height: 100%;
-}
-
-.after\:w-96::after{
- content: var(--tw-content);
- width: 24rem;
-}
-
-.after\:w-px::after{
- content: var(--tw-content);
- width: 1px;
-}
-
-.after\:-translate-y-1\/2::after{
- content: var(--tw-content);
- --tw-translate-y: -50%;
- 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));
-}
-
-.after\:border-l::after{
- content: var(--tw-content);
- border-left-width: 1px;
-}
-
-.after\:border-dashed::after{
- content: var(--tw-content);
- border-style: dashed;
-}
-
-.after\:border-zinc-300::after{
- content: var(--tw-content);
- --tw-border-opacity: 1;
- border-color: rgb(212 212 216 / var(--tw-border-opacity, 1));
-}
-
-.after\:bg-gradient-to-l::after{
- content: var(--tw-content);
- background-image: linear-gradient(to left, var(--tw-gradient-stops));
-}
-
-.after\:from-zinc-800::after{
- content: var(--tw-content);
- --tw-gradient-from: #27272a var(--tw-gradient-from-position);
- --tw-gradient-to: rgb(39 39 42 / 0) var(--tw-gradient-to-position);
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
-}
-
-.after\:content-\[\'\\0022\'\]::after{
- --tw-content: '\0022';
- content: var(--tw-content);
-}
-
-.last\:after\:hidden:last-child::after{
- content: var(--tw-content);
- display: none;
-}
-
-.hover\:bg-neutral-100:hover{
- --tw-bg-opacity: 1;
- background-color: rgb(245 245 245 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-neutral-800:hover{
- --tw-bg-opacity: 1;
- background-color: rgb(38 38 38 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-neutral-900:hover{
- --tw-bg-opacity: 1;
- background-color: rgb(23 23 23 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-zinc-200:hover{
- --tw-bg-opacity: 1;
- background-color: rgb(228 228 231 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-zinc-50:hover{
- --tw-bg-opacity: 1;
- background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-zinc-800:hover{
- --tw-bg-opacity: 1;
- background-color: rgb(39 39 42 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:text-neutral-900:hover{
- --tw-text-opacity: 1;
- color: rgb(23 23 23 / var(--tw-text-opacity, 1));
-}
-
-.hover\:text-white:hover{
- --tw-text-opacity: 1;
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
-}
-
-.hover\:text-zinc-300:hover{
- --tw-text-opacity: 1;
- color: rgb(212 212 216 / var(--tw-text-opacity, 1));
-}
-
-.hover\:text-zinc-800:hover{
- --tw-text-opacity: 1;
- color: rgb(39 39 42 / var(--tw-text-opacity, 1));
-}
-
-.hover\:text-zinc-900:hover{
- --tw-text-opacity: 1;
- color: rgb(24 24 27 / var(--tw-text-opacity, 1));
-}
-
-.hover\:underline:hover{
- text-decoration-line: underline;
-}
-
-.hover\:opacity-100:hover{
- opacity: 1;
-}
-
-.focus\:border-neutral-300:focus{
- --tw-border-opacity: 1;
- border-color: rgb(212 212 212 / var(--tw-border-opacity, 1));
-}
-
-.focus\:border-zinc-300:focus{
- --tw-border-opacity: 1;
- border-color: rgb(212 212 216 / var(--tw-border-opacity, 1));
-}
-
-.focus\:no-underline:focus{
- text-decoration-line: none;
-}
-
-.focus\:outline-none:focus{
- outline: 2px solid transparent;
- outline-offset: 2px;
-}
-
-.focus\:ring-2:focus{
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
-}
-
-.focus\:ring-neutral-100:focus{
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(245 245 245 / var(--tw-ring-opacity, 1));
-}
-
-.focus\:ring-neutral-400:focus{
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(163 163 163 / var(--tw-ring-opacity, 1));
-}
-
-.focus\:ring-neutral-900:focus{
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(23 23 23 / var(--tw-ring-opacity, 1));
-}
-
-.focus\:ring-offset-2:focus{
- --tw-ring-offset-width: 2px;
-}
-
-.focus-visible\:outline-none:focus-visible{
- outline: 2px solid transparent;
- outline-offset: 2px;
-}
-
-.focus-visible\:ring-2:focus-visible{
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
-}
-
-.focus-visible\:ring-offset-2:focus-visible{
- --tw-ring-offset-width: 2px;
-}
-
-.disabled\:pointer-events-none:disabled{
- pointer-events: none;
-}
-
-.disabled\:cursor-not-allowed:disabled{
- cursor: not-allowed;
-}
-
-.disabled\:opacity-50:disabled{
- opacity: 0.5;
-}
-
-.group:hover .group-hover\:w-full{
- width: 100%;
-}
-
-.group:hover .group-hover\:-rotate-6{
- --tw-rotate: -6deg;
- 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;
- 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\:opacity-100{
- opacity: 1;
-}
-
-.group:hover .group-hover\:\[animation-play-state\:paused\]{
- animation-play-state: paused;
-}
-
-.peer:disabled ~ .peer-disabled\:cursor-not-allowed{
- cursor: not-allowed;
-}
-
-.peer:disabled ~ .peer-disabled\:opacity-70{
- opacity: 0.7;
-}
-
-@supports (overflow:clip){
- .supports-\[overflow\:clip\]\:overflow-clip{
- overflow: clip;
- }
-}
-
-@media not all and (min-width: 1024px){
- .max-lg\:w-32{
- width: 8rem;
- }
-
- .max-lg\:after\:hidden::after{
- content: var(--tw-content);
- display: none;
- }
-}
-
-@media not all and (min-width: 640px){
- .max-sm\:order-1{
- order: 1;
- }
-}
-
-@media (min-width: 640px){
- .sm\:col-span-2{
- grid-column: span 2 / span 2;
- }
-
- .sm\:col-span-6{
- grid-column: span 6 / span 6;
- }
-
- .sm\:mb-0{
- margin-bottom: 0px;
- }
-
- .sm\:inline-flex{
- display: inline-flex;
- }
-
- .sm\:h-auto{
- height: auto;
- }
-
- .sm\:max-w-lg{
- max-width: 32rem;
- }
-
- .sm\:max-w-none{
- max-width: none;
- }
-
- .sm\:grid-cols-12{
- grid-template-columns: repeat(12, minmax(0, 1fr));
- }
-
- .sm\:grid-cols-2{
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
-
- .sm\:flex-row{
- flex-direction: row;
- }
-
- .sm\:justify-center{
- justify-content: center;
- }
-
- .sm\:justify-between{
- justify-content: space-between;
- }
-
- .sm\:gap-4{
- gap: 1rem;
- }
-
- .sm\:space-x-2 > :not([hidden]) ~ :not([hidden]){
- --tw-space-x-reverse: 0;
- margin-right: calc(0.5rem * var(--tw-space-x-reverse));
- margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
- }
-
- .sm\:space-x-4 > :not([hidden]) ~ :not([hidden]){
- --tw-space-x-reverse: 0;
- margin-right: calc(1rem * var(--tw-space-x-reverse));
- margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
- }
-
- .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]){
- --tw-space-y-reverse: 0;
- margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0px * var(--tw-space-y-reverse));
- }
-
- .sm\:rounded-lg{
- border-radius: 0.5rem;
- }
-
- .sm\:object-contain{
- -o-object-fit: contain;
- object-fit: contain;
- }
-
- .sm\:px-6{
- padding-left: 1.5rem;
- padding-right: 1.5rem;
- }
-}
-
-@media (min-width: 768px){
- .md\:top-6{
- top: 1.5rem;
- }
-
- .md\:col-span-3{
- grid-column: span 3 / span 3;
- }
-
- .md\:-mx-5{
- margin-left: -1.25rem;
- margin-right: -1.25rem;
- }
-
- .md\:mb-0{
- margin-bottom: 0px;
- }
-
- .md\:max-w-none{
- max-width: none;
- }
-
- .md\:grid-cols-3{
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .md\:grid-cols-4{
- grid-template-columns: repeat(4, minmax(0, 1fr));
- }
-
- .md\:flex-row{
- flex-direction: row;
- }
-
- .md\:justify-start{
- justify-content: flex-start;
- }
-
- .md\:gap-0{
- gap: 0px;
- }
-
- .md\:gap-4{
- gap: 1rem;
- }
-
- .md\:gap-6{
- gap: 1.5rem;
- }
-
- .md\:px-5{
- padding-left: 1.25rem;
- padding-right: 1.25rem;
- }
-
- .md\:py-12{
- padding-top: 3rem;
- padding-bottom: 3rem;
- }
-
- .md\:py-20{
- padding-top: 5rem;
- padding-bottom: 5rem;
- }
-
- .md\:pb-16{
- padding-bottom: 4rem;
- }
-
- .md\:pb-20{
- padding-bottom: 5rem;
- }
-
- .md\:pt-40{
- padding-top: 10rem;
- }
-
- .md\:text-3xl{
- font-size: 2rem;
- line-height: 1.3125;
- letter-spacing: -0.017em;
- }
-
- .md\:text-4xl{
- font-size: 2.5rem;
- line-height: 1.25;
- letter-spacing: -0.017em;
- }
-
- .md\:text-5xl{
- font-size: 3.25rem;
- line-height: 1.2;
- letter-spacing: -0.017em;
- }
-
- .md\:after\:block::after{
- content: var(--tw-content);
- display: block;
- }
-}
-
-@media (min-width: 1024px){
- .lg\:col-span-2{
- grid-column: span 2 / span 2;
- }
-
- .lg\:col-span-6{
- grid-column: span 6 / span 6;
- }
-
- .lg\:mb-0{
- margin-bottom: 0px;
- }
-
- .lg\:mt-32{
- margin-top: 8rem;
- }
-
- .lg\:block{
- display: block;
- }
-
- .lg\:flex{
- display: flex;
- }
-
- .lg\:h-5{
- height: 1.25rem;
- }
-
- .lg\:min-w-\[524px\]{
- min-width: 524px;
- }
-
- .lg\:max-w-6xl{
- max-width: 72rem;
- }
-
- .lg\:max-w-none{
- max-width: none;
- }
-
- .lg\:grid-cols-3{
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
-
- .lg\:gap-16{
- gap: 4rem;
- }
-
- .lg\:gap-8{
- gap: 2rem;
- }
-
- .lg\:space-x-12 > :not([hidden]) ~ :not([hidden]){
- --tw-space-x-reverse: 0;
- margin-right: calc(3rem * var(--tw-space-x-reverse));
- margin-left: calc(3rem * calc(1 - var(--tw-space-x-reverse)));
- }
-
- .lg\:space-y-0 > :not([hidden]) ~ :not([hidden]){
- --tw-space-y-reverse: 0;
- margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
- margin-bottom: calc(0px * var(--tw-space-y-reverse));
- }
-
- .lg\:p-24{
- padding: 6rem;
- }
-
- .lg\:px-5{
- padding-left: 1.25rem;
- padding-right: 1.25rem;
- }
-
- .lg\:text-2xl{
- font-size: 1.5rem;
- line-height: 1.415;
- letter-spacing: -0.017em;
- }
-
- .lg\:text-3xl{
- font-size: 2rem;
- line-height: 1.3125;
- letter-spacing: -0.017em;
- }
-
- .lg\:text-xl{
- font-size: 1.25rem;
- line-height: 1.5;
- letter-spacing: -0.017em;
- }
-}
-
-@media (min-width: 1280px){
- .xl\:space-x-24 > :not([hidden]) ~ :not([hidden]){
- --tw-space-x-reverse: 0;
- margin-right: calc(6rem * var(--tw-space-x-reverse));
- margin-left: calc(6rem * calc(1 - var(--tw-space-x-reverse)));
- }
-}
-
-.\[\&\>div\]\:mx-3>div{
- margin-left: 0.75rem;
- margin-right: 0.75rem;
-}
-
-.\[\&_\.active-breadcrumb\]\:font-medium .active-breadcrumb{
- font-weight: 500;
-}
-
-.\[\&_\.active-breadcrumb\]\:text-neutral-600 .active-breadcrumb{
- --tw-text-opacity: 1;
- color: rgb(82 82 82 / var(--tw-text-opacity, 1));
-}
diff --git a/pkg/common/middleware/response/render.go b/pkg/common/middleware/response/render.go
index 4b44add3d..bdc064942 100644
--- a/pkg/common/middleware/response/render.go
+++ b/pkg/common/middleware/response/render.go
@@ -32,6 +32,28 @@ func Templ(cmp templ.Component) echo.HandlerFunc {
}
}
+// TemplEcho renders a component to the response
+func TemplEcho(c echo.Context, cmp templ.Component) error {
+ // Create a buffer to store the rendered HTML
+ buf := &bytes.Buffer{}
+ // Render the component to the buffer
+ err := cmp.Render(c.Request().Context(), buf)
+ if err != nil {
+ return err
+ }
+
+ // Set the content type
+ c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
+
+ // Write the buffered content to the response
+ _, err = c.Response().Write(buf.Bytes())
+ if err != nil {
+ return err
+ }
+ c.Response().WriteHeader(200)
+ return nil
+}
+
// / TemplRawBytes renders a component to a byte slice
func TemplRawBytes(cmp templ.Component) ([]byte, error) {
// Create a buffer to store the rendered HTML
diff --git a/pkg/webapp/components/auth/authorize.templ b/pkg/webapp/components/auth/authorize.templ
deleted file mode 100644
index 758bd68ed..000000000
--- a/pkg/webapp/components/auth/authorize.templ
+++ /dev/null
@@ -1,12 +0,0 @@
-package auth
-
-import (
- "github.com/onsonr/sonr/pkg/common/middleware/session"
- "github.com/onsonr/sonr/pkg/webapp/components/ui"
-)
-
-templ AuthorizeView(c session.Context) {
- @ui.OpenModal(c.ID(), "Enter your account information below to create your account.") {
- @loginStart()
- }
-}
diff --git a/pkg/webapp/components/auth/current.templ b/pkg/webapp/components/auth/current.templ
deleted file mode 100644
index f8a8fb931..000000000
--- a/pkg/webapp/components/auth/current.templ
+++ /dev/null
@@ -1,30 +0,0 @@
-package auth
-
-import "github.com/onsonr/sonr/pkg/webapp/components/ui"
-
-// RedirectModal returns the Modal with a QR code to scan.
-templ RedirectModal() {
- @ui.FullScreenModal() {
-
-
-
-
-
-
-
Continue with your phone
-
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
-
- @ui.Separator("Or Reserve Handle")
-
-
-
Already have an account? Login here
-
By continuing, you agree to our Terms and Policy.
-
- }
-}
diff --git a/pkg/webapp/components/auth/login.templ b/pkg/webapp/components/auth/login.templ
deleted file mode 100644
index ad6f53750..000000000
--- a/pkg/webapp/components/auth/login.templ
+++ /dev/null
@@ -1,22 +0,0 @@
-package auth
-
-import (
- "github.com/onsonr/sonr/pkg/common/middleware/session"
- "github.com/onsonr/sonr/pkg/webapp/components/ui"
-)
-
-// LoginModal returns the Login Modal.
-templ LoginModal() {
- @ui.OpenModal(session.GetData(ctx).Id, "Enter your account information below to create your account.") {
- @loginStart()
- }
-}
-
-templ loginStart() {
- @ui.Breadcrumbs()
- @ui.Spacer()
-
-
-
-
-}
diff --git a/pkg/webapp/components/auth/login_templ.go b/pkg/webapp/components/auth/login_templ.go
deleted file mode 100644
index bda45eefa..000000000
--- a/pkg/webapp/components/auth/login_templ.go
+++ /dev/null
@@ -1,101 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.793
-package auth
-
-//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/onsonr/sonr/pkg/common/middleware/session"
- "github.com/onsonr/sonr/pkg/webapp/components/ui"
-)
-
-// LoginModal returns the Login Modal.
-func LoginModal() 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 = loginStart().Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
- templ_7745c5c3_Err = ui.OpenModal(session.GetData(ctx).Id, "Enter your account information below to create your account.").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
-}
-
-func loginStart() 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 = ui.Breadcrumbs().Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- templ_7745c5c3_Err = ui.Spacer().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/pkg/webapp/components/auth/register.templ b/pkg/webapp/components/auth/register.templ
deleted file mode 100644
index 8568241d3..000000000
--- a/pkg/webapp/components/auth/register.templ
+++ /dev/null
@@ -1,63 +0,0 @@
-package auth
-
-import (
- "github.com/labstack/echo/v4"
- "github.com/onsonr/sonr/pkg/common/middleware/session"
- "github.com/onsonr/sonr/pkg/webapp/components/ui"
-)
-
-// RegisterModal returns the Register Modal.
-templ RegisterModal() {
- @ui.OpenModal(session.GetData(ctx).Id, "Sign up") {
-
-
-
-
- }
-}
-
-templ RegisterCredentialForm() {
-
-}
-
-templ NavigatorCredentialsCreate(c echo.Context) {
-
-}
diff --git a/pkg/webapp/components/auth/register_templ.go b/pkg/webapp/components/auth/register_templ.go
deleted file mode 100644
index 89cd4607c..000000000
--- a/pkg/webapp/components/auth/register_templ.go
+++ /dev/null
@@ -1,123 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.793
-package auth
-
-//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/pkg/common/middleware/session"
- "github.com/onsonr/sonr/pkg/webapp/components/ui"
-)
-
-// RegisterModal returns the Register Modal.
-func RegisterModal() 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 = templ_7745c5c3_Buffer.WriteString("
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
- templ_7745c5c3_Err = ui.OpenModal(session.GetData(ctx).Id, "Sign up").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- return templ_7745c5c3_Err
- })
-}
-
-func RegisterCredentialForm() 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
- }
- return templ_7745c5c3_Err
- })
-}
-
-func NavigatorCredentialsCreate(c echo.Context) 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_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/webapp/components/dash/layout.templ b/pkg/webapp/components/dash/layout.templ
deleted file mode 100644
index fa07135a8..000000000
--- a/pkg/webapp/components/dash/layout.templ
+++ /dev/null
@@ -1,17 +0,0 @@
-package ui
-
-// Variant is a component that has attributes
-type Variant interface {
- Attributes() templ.Attributes
-}
-
-// ╭───────────────────────────────────────────────────────────╮
-// │ General Layout Components │
-// ╰───────────────────────────────────────────────────────────╯
-
-// Columns is a component that renders a flex container with a gap of 3 and a max width of 100%
-templ Columns() {
-
- { children... }
-
-}
diff --git a/pkg/webapp/components/ui/icon.templ b/pkg/webapp/components/icon/icon.templ
similarity index 100%
rename from pkg/webapp/components/ui/icon.templ
rename to pkg/webapp/components/icon/icon.templ
diff --git a/pkg/webapp/components/ui/icon_templ.go b/pkg/webapp/components/icon/icon_templ.go
similarity index 98%
rename from pkg/webapp/components/ui/icon_templ.go
rename to pkg/webapp/components/icon/icon_templ.go
index 616b2de8c..bd8304e9a 100644
--- a/pkg/webapp/components/ui/icon_templ.go
+++ b/pkg/webapp/components/icon/icon_templ.go
@@ -75,7 +75,7 @@ func faIcon(class string) templ.Component {
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var2).String())
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/ui/icon.templ`, Line: 1, Col: 0}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/icon/icon.templ`, Line: 1, Col: 0}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
diff --git a/pkg/webapp/components/ui/badges.templ b/pkg/webapp/components/ui/badges.templ
deleted file mode 100644
index 266d6fbf7..000000000
--- a/pkg/webapp/components/ui/badges.templ
+++ /dev/null
@@ -1,59 +0,0 @@
-package ui
-
-templ PoweredBySonr() {
-
-
-
-
- Powered by
-
-
-
-
-

-
-
The creative platform for developers. Community, tools, products, and more
-
-
- Joined June 2020
-
-
-
-
-
-
-
-}
diff --git a/pkg/webapp/components/ui/badges_templ.go b/pkg/webapp/components/ui/badges_templ.go
deleted file mode 100644
index ffc481bfa..000000000
--- a/pkg/webapp/components/ui/badges_templ.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.793
-package ui
-
-//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/pkg/webapp/components/ui/cards.templ b/pkg/webapp/components/ui/cards.templ
deleted file mode 100644
index 127b92bb9..000000000
--- a/pkg/webapp/components/ui/cards.templ
+++ /dev/null
@@ -1,47 +0,0 @@
-package ui
-
-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/pkg/webapp/components/ui/cards_templ.go b/pkg/webapp/components/ui/cards_templ.go
deleted file mode 100644
index ca641cded..000000000
--- a/pkg/webapp/components/ui/cards_templ.go
+++ /dev/null
@@ -1,102 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.793
-package ui
-
-//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/pkg/webapp/components/ui/layout.templ b/pkg/webapp/components/ui/layout.templ
index cc6254dbe..eee48dd03 100644
--- a/pkg/webapp/components/ui/layout.templ
+++ b/pkg/webapp/components/ui/layout.templ
@@ -151,7 +151,9 @@ document.body.classList.remove('overflow-hidden');
- { children... }
+
+ { children... }
+
diff --git a/pkg/webapp/components/ui/layout_templ.go b/pkg/webapp/components/ui/layout_templ.go
index dd39932d6..cba9dd2e4 100644
--- a/pkg/webapp/components/ui/layout_templ.go
+++ b/pkg/webapp/components/ui/layout_templ.go
@@ -334,7 +334,7 @@ func FullScreenModal() templ.Component {
templ_7745c5c3_Var11 = 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
}
@@ -342,7 +342,7 @@ func FullScreenModal() templ.Component {
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -446,7 +446,7 @@ func Separator(text string) templ.Component {
var templ_7745c5c3_Var15 string
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(text)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/ui/layout.templ`, Line: 177, Col: 54}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/ui/layout.templ`, Line: 179, Col: 54}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
if templ_7745c5c3_Err != nil {
diff --git a/pkg/webapp/components/ui/panels.templ b/pkg/webapp/components/ui/panels.templ
deleted file mode 100644
index a705a938d..000000000
--- a/pkg/webapp/components/ui/panels.templ
+++ /dev/null
@@ -1,35 +0,0 @@
-package ui
-
-templ Breadcrumbs() {
-
-}
-
-templ breadcrumbItem(title string, active bool) {
- if (active) {
- { title }
- } else {
- { title }
- }
-}
-
-templ breadcrumbIcon() {
-
-}
diff --git a/pkg/webapp/components/ui/panels_templ.go b/pkg/webapp/components/ui/panels_templ.go
deleted file mode 100644
index a7df7e25c..000000000
--- a/pkg/webapp/components/ui/panels_templ.go
+++ /dev/null
@@ -1,163 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.793
-package ui
-
-//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 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: `pkg/webapp/components/ui/panels.templ`, Line: 23, 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: `pkg/webapp/components/ui/panels.templ`, Line: 25, 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
- })
-}
-
-var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/components/ui/sizes.templ b/pkg/webapp/components/ui/sizes.templ
deleted file mode 100644
index a12063c4d..000000000
--- a/pkg/webapp/components/ui/sizes.templ
+++ /dev/null
@@ -1,61 +0,0 @@
-package ui
-
-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/pkg/webapp/components/ui/sizes_templ.go b/pkg/webapp/components/ui/sizes_templ.go
deleted file mode 100644
index 52047ba52..000000000
--- a/pkg/webapp/components/ui/sizes_templ.go
+++ /dev/null
@@ -1,71 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.793
-package ui
-
-//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/pkg/webapp/components/ui/typography.templ b/pkg/webapp/components/ui/typography.templ
deleted file mode 100644
index bd3a26146..000000000
--- a/pkg/webapp/components/ui/typography.templ
+++ /dev/null
@@ -1,62 +0,0 @@
-package ui
-
-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/pkg/webapp/components/ui/typography_templ.go b/pkg/webapp/components/ui/typography_templ.go
deleted file mode 100644
index c0ac9d207..000000000
--- a/pkg/webapp/components/ui/typography_templ.go
+++ /dev/null
@@ -1,326 +0,0 @@
-// Code generated by templ - DO NOT EDIT.
-
-// templ: version: v0.2.793
-package ui
-
-//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: `pkg/webapp/components/ui/typography.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: `pkg/webapp/components/ui/typography.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: `pkg/webapp/components/ui/typography.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: `pkg/webapp/components/ui/typography.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: `pkg/webapp/components/ui/typography.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: `pkg/webapp/components/ui/typography.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: `pkg/webapp/components/ui/typography.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: `pkg/webapp/components/ui/typography.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/pkg/webapp/models/pages.go b/pkg/webapp/models/pages.go
deleted file mode 100644
index 1c4004cb5..000000000
--- a/pkg/webapp/models/pages.go
+++ /dev/null
@@ -1,12 +0,0 @@
-package models
-
-type Metadata struct {
- Title string `json:"title"`
- Description string `json:"description"`
- OpenGraphImage string `json:"openGraphImage"`
- TwitterImage string `json:"twitterImage"`
- Tags string `json:"tags"`
- Category string `json:"category"`
- Favicon string `json:"favicon"`
- URL string `json:"url"`
-}
diff --git a/pkg/webapp/pages/auth.templ b/pkg/webapp/pages/auth.templ
deleted file mode 100644
index 13cb94b8a..000000000
--- a/pkg/webapp/pages/auth.templ
+++ /dev/null
@@ -1,16 +0,0 @@
-package pages
-
-import (
- "github.com/onsonr/sonr/pkg/common/middleware/session"
- "github.com/onsonr/sonr/pkg/webapp/components/auth"
-)
-
-templ AuthPage() {
- if session.GetData(ctx).IsMobile {
- if session.GetData(ctx).Challenge == "" {
- @auth.LoginModal()
- }
- @auth.RegisterModal()
- }
- @auth.RedirectModal()
-}
diff --git a/pkg/webapp/pages/auth/internal/components.templ b/pkg/webapp/pages/auth/internal/components.templ
new file mode 100644
index 000000000..cef6a0802
--- /dev/null
+++ b/pkg/webapp/pages/auth/internal/components.templ
@@ -0,0 +1,16 @@
+package internal
+
+templ RegisterHeader() {
+
+
+
+
+
Continue with your phone
+
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
+
+}
+
+templ RegisterFooter() {
+ Already have an account? Login here
+ By continuing, you agree to our Terms and Policy.
+}
diff --git a/pkg/webapp/pages/auth/internal/components_templ.go b/pkg/webapp/pages/auth/internal/components_templ.go
new file mode 100644
index 000000000..d5cee3a77
--- /dev/null
+++ b/pkg/webapp/pages/auth/internal/components_templ.go
@@ -0,0 +1,69 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 RegisterHeader() 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("Continue with your phone
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func RegisterFooter() 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("Already have an account? Login here
By continuing, you agree to our Terms and Policy.
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/pages/auth/internal/forms.templ b/pkg/webapp/pages/auth/internal/forms.templ
new file mode 100644
index 000000000..6653e32a0
--- /dev/null
+++ b/pkg/webapp/pages/auth/internal/forms.templ
@@ -0,0 +1,21 @@
+package internal
+
+templ RegisterCredentialForm() {
+
+}
+
+templ ReserveHandleForm() {
+
+}
diff --git a/pkg/webapp/pages/auth/internal/forms_templ.go b/pkg/webapp/pages/auth/internal/forms_templ.go
new file mode 100644
index 000000000..3445417c9
--- /dev/null
+++ b/pkg/webapp/pages/auth/internal/forms_templ.go
@@ -0,0 +1,69 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 RegisterCredentialForm() 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 ReserveHandleForm() 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
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/pages/auth/internal/scripts.templ b/pkg/webapp/pages/auth/internal/scripts.templ
new file mode 100644
index 000000000..6a11ca2e4
--- /dev/null
+++ b/pkg/webapp/pages/auth/internal/scripts.templ
@@ -0,0 +1,37 @@
+package internal
+
+templ CreateCredentialsScript() {
+
+}
diff --git a/pkg/webapp/pages/auth_templ.go b/pkg/webapp/pages/auth/internal/scripts_templ.go
similarity index 56%
rename from pkg/webapp/pages/auth_templ.go
rename to pkg/webapp/pages/auth/internal/scripts_templ.go
index 79fcf26db..a07b37d1d 100644
--- a/pkg/webapp/pages/auth_templ.go
+++ b/pkg/webapp/pages/auth/internal/scripts_templ.go
@@ -1,19 +1,14 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package pages
+package internal
//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/onsonr/sonr/pkg/common/middleware/session"
- "github.com/onsonr/sonr/pkg/webapp/components/auth"
-)
-
-func AuthPage() templ.Component {
+func CreateCredentialsScript() 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 {
@@ -34,23 +29,7 @@ func AuthPage() templ.Component {
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
- if session.GetData(ctx).IsMobile {
- if session.GetData(ctx).Challenge == "" {
- templ_7745c5c3_Err = auth.LoginModal().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 = auth.RegisterModal().Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- }
- templ_7745c5c3_Err = auth.RedirectModal().Render(ctx, templ_7745c5c3_Buffer)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
diff --git a/pkg/webapp/pages/auth/page.templ b/pkg/webapp/pages/auth/page.templ
new file mode 100644
index 000000000..09c4ac668
--- /dev/null
+++ b/pkg/webapp/pages/auth/page.templ
@@ -0,0 +1,18 @@
+package login
+
+import (
+ "github.com/onsonr/sonr/pkg/webapp/components/ui"
+ "github.com/onsonr/sonr/pkg/webapp/pages/login/internal"
+)
+
+// RedirectModal returns the Modal with a QR code to scan.
+templ Page() {
+ @ui.FullScreenModal() {
+
+ @internal.RegisterHeader()
+ @ui.Separator("Or Reserve Handle")
+ @internal.ReserveHandleForm()
+
+ @internal.RegisterFooter()
+ }
+}
diff --git a/pkg/webapp/pages/dashboard_templ.go b/pkg/webapp/pages/auth/page_templ.go
similarity index 59%
rename from pkg/webapp/pages/dashboard_templ.go
rename to pkg/webapp/pages/auth/page_templ.go
index ed2ca5ca4..11e2e7152 100644
--- a/pkg/webapp/pages/dashboard_templ.go
+++ b/pkg/webapp/pages/auth/page_templ.go
@@ -1,16 +1,20 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package pages
+package login
//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/onsonr/sonr/pkg/webapp/components/ui"
+import (
+ "github.com/onsonr/sonr/pkg/webapp/components/ui"
+ "github.com/onsonr/sonr/pkg/webapp/pages/login/internal"
+)
-func DashboardPage() templ.Component {
+// RedirectModal returns the Modal with a QR code to scan.
+func Page() 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 {
@@ -43,9 +47,33 @@ func DashboardPage() templ.Component {
}()
}
ctx = templ.InitializeContext(ctx)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = internal.RegisterHeader().Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = ui.Separator("Or Reserve Handle").Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = internal.ReserveHandleForm().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 = internal.RegisterFooter().Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
return templ_7745c5c3_Err
})
- templ_7745c5c3_Err = ui.LayoutNoBody("Sonr.ID", true).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
+ templ_7745c5c3_Err = ui.FullScreenModal().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
diff --git a/pkg/webapp/pages/dash/internal/components.templ b/pkg/webapp/pages/dash/internal/components.templ
new file mode 100644
index 000000000..cef6a0802
--- /dev/null
+++ b/pkg/webapp/pages/dash/internal/components.templ
@@ -0,0 +1,16 @@
+package internal
+
+templ RegisterHeader() {
+
+
+
+
+
Continue with your phone
+
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
+
+}
+
+templ RegisterFooter() {
+ Already have an account? Login here
+ By continuing, you agree to our Terms and Policy.
+}
diff --git a/pkg/webapp/pages/dash/internal/components_templ.go b/pkg/webapp/pages/dash/internal/components_templ.go
new file mode 100644
index 000000000..d5cee3a77
--- /dev/null
+++ b/pkg/webapp/pages/dash/internal/components_templ.go
@@ -0,0 +1,69 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 RegisterHeader() 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("Continue with your phone
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func RegisterFooter() 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("Already have an account? Login here
By continuing, you agree to our Terms and Policy.
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/pages/dash/internal/forms.templ b/pkg/webapp/pages/dash/internal/forms.templ
new file mode 100644
index 000000000..6653e32a0
--- /dev/null
+++ b/pkg/webapp/pages/dash/internal/forms.templ
@@ -0,0 +1,21 @@
+package internal
+
+templ RegisterCredentialForm() {
+
+}
+
+templ ReserveHandleForm() {
+
+}
diff --git a/pkg/webapp/pages/dash/internal/forms_templ.go b/pkg/webapp/pages/dash/internal/forms_templ.go
new file mode 100644
index 000000000..3445417c9
--- /dev/null
+++ b/pkg/webapp/pages/dash/internal/forms_templ.go
@@ -0,0 +1,69 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 RegisterCredentialForm() 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 ReserveHandleForm() 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
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/pages/dash/internal/scripts.templ b/pkg/webapp/pages/dash/internal/scripts.templ
new file mode 100644
index 000000000..6a11ca2e4
--- /dev/null
+++ b/pkg/webapp/pages/dash/internal/scripts.templ
@@ -0,0 +1,37 @@
+package internal
+
+templ CreateCredentialsScript() {
+
+}
diff --git a/pkg/webapp/components/dash/layout_templ.go b/pkg/webapp/pages/dash/internal/scripts_templ.go
similarity index 52%
rename from pkg/webapp/components/dash/layout_templ.go
rename to pkg/webapp/pages/dash/internal/scripts_templ.go
index addc76889..a07b37d1d 100644
--- a/pkg/webapp/components/dash/layout_templ.go
+++ b/pkg/webapp/pages/dash/internal/scripts_templ.go
@@ -1,24 +1,14 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package ui
+package internal
//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"
-// Variant is a component that has attributes
-type Variant interface {
- Attributes() templ.Attributes
-}
-
-// ╭───────────────────────────────────────────────────────────╮
-// │ General Layout Components │
-// ╰───────────────────────────────────────────────────────────╯
-
-// Columns is a component that renders a flex container with a gap of 3 and a max width of 100%
-func Columns() templ.Component {
+func CreateCredentialsScript() 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 {
@@ -39,15 +29,7 @@ func Columns() templ.Component {
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("
")
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
diff --git a/pkg/webapp/pages/dash/page.templ b/pkg/webapp/pages/dash/page.templ
new file mode 100644
index 000000000..837b022ac
--- /dev/null
+++ b/pkg/webapp/pages/dash/page.templ
@@ -0,0 +1,18 @@
+package dash
+
+import (
+ "github.com/onsonr/sonr/pkg/webapp/components/ui"
+ "github.com/onsonr/sonr/pkg/webapp/pages/dash/internal"
+)
+
+// RedirectModal returns the Modal with a QR code to scan.
+templ Page() {
+ @ui.FullScreenModal() {
+
+ @internal.RegisterHeader()
+ @ui.Separator("Or Reserve Handle")
+ @internal.ReserveHandleForm()
+
+ @internal.RegisterFooter()
+ }
+}
diff --git a/pkg/webapp/components/auth/authorize_templ.go b/pkg/webapp/pages/dash/page_templ.go
similarity index 65%
rename from pkg/webapp/components/auth/authorize_templ.go
rename to pkg/webapp/pages/dash/page_templ.go
index ad2c23bf7..3124ac832 100644
--- a/pkg/webapp/components/auth/authorize_templ.go
+++ b/pkg/webapp/pages/dash/page_templ.go
@@ -1,7 +1,7 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package auth
+package dash
//lint:file-ignore SA4006 This context is only used if a nested component is present.
@@ -9,11 +9,12 @@ import "github.com/a-h/templ"
import templruntime "github.com/a-h/templ/runtime"
import (
- "github.com/onsonr/sonr/pkg/common/middleware/session"
"github.com/onsonr/sonr/pkg/webapp/components/ui"
+ "github.com/onsonr/sonr/pkg/webapp/pages/dash/internal"
)
-func AuthorizeView(c session.Context) templ.Component {
+// RedirectModal returns the Modal with a QR code to scan.
+func Page() 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 {
@@ -46,13 +47,33 @@ func AuthorizeView(c session.Context) templ.Component {
}()
}
ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Err = loginStart().Render(ctx, templ_7745c5c3_Buffer)
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = internal.RegisterHeader().Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = ui.Separator("Or Reserve Handle").Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = internal.ReserveHandleForm().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 = internal.RegisterFooter().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
return templ_7745c5c3_Err
})
- templ_7745c5c3_Err = ui.OpenModal(c.ID(), "Enter your account information below to create your account.").Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
+ templ_7745c5c3_Err = ui.FullScreenModal().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
diff --git a/pkg/webapp/pages/dashboard.templ b/pkg/webapp/pages/dashboard.templ
deleted file mode 100644
index 76652d8d9..000000000
--- a/pkg/webapp/pages/dashboard.templ
+++ /dev/null
@@ -1,8 +0,0 @@
-package pages
-
-import "github.com/onsonr/sonr/pkg/webapp/components/ui"
-
-templ DashboardPage() {
- @ui.LayoutNoBody("Sonr.ID", true) {
- }
-}
diff --git a/pkg/webapp/components/landing/arch.templ b/pkg/webapp/pages/home/internal/arch.templ
similarity index 72%
rename from pkg/webapp/components/landing/arch.templ
rename to pkg/webapp/pages/home/internal/arch.templ
index 39e2747a6..86b31f156 100644
--- a/pkg/webapp/components/landing/arch.templ
+++ b/pkg/webapp/pages/home/internal/arch.templ
@@ -1,68 +1,9 @@
-package landing
+package internal
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() {
+templ Architecture(arch *models.Architecture) {
diff --git a/pkg/webapp/components/landing/arch_templ.go b/pkg/webapp/pages/home/internal/arch_templ.go
similarity index 80%
rename from pkg/webapp/components/landing/arch_templ.go
rename to pkg/webapp/pages/home/internal/arch_templ.go
index 81225c9f9..c46fc9925 100644
--- a/pkg/webapp/components/landing/arch_templ.go
+++ b/pkg/webapp/pages/home/internal/arch_templ.go
@@ -1,7 +1,7 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package landing
+package internal
//lint:file-ignore SA4006 This context is only used if a nested component is present.
@@ -10,67 +10,8 @@ import templruntime "github.com/a-h/templ/runtime"
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
-func Architecture() templ.Component {
+func Architecture(arch *models.Architecture) 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 {
@@ -98,7 +39,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Heading)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 76, Col: 20}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 17, Col: 20}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
if templ_7745c5c3_Err != nil {
@@ -111,7 +52,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Subtitle)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 79, Col: 21}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 20, Col: 21}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
@@ -124,7 +65,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Primary.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 101, Col: 29}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 42, Col: 29}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
@@ -137,7 +78,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Primary.Desc)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 105, Col: 27}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 46, Col: 27}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
@@ -150,7 +91,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Primary.Image.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 111, Col: 36}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 52, Col: 36}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
@@ -163,7 +104,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var7 string
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Secondary.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 134, Col: 31}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 75, Col: 31}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
if templ_7745c5c3_Err != nil {
@@ -176,7 +117,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Secondary.Desc)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 138, Col: 29}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 79, Col: 29}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
@@ -189,7 +130,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Secondary.Image.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 144, Col: 38}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 85, Col: 38}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
@@ -202,7 +143,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var10 string
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Tertiary.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 167, Col: 30}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 108, Col: 30}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
if templ_7745c5c3_Err != nil {
@@ -215,7 +156,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var11 string
templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Tertiary.Desc)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 171, Col: 28}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 112, Col: 28}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
if templ_7745c5c3_Err != nil {
@@ -228,7 +169,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var12 string
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Tertiary.Image.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 177, Col: 37}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 118, Col: 37}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
if templ_7745c5c3_Err != nil {
@@ -241,7 +182,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var13 string
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Quaternary.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 200, Col: 32}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 141, Col: 32}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
if templ_7745c5c3_Err != nil {
@@ -254,7 +195,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var14 string
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Quaternary.Desc)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 204, Col: 30}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 145, Col: 30}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
if templ_7745c5c3_Err != nil {
@@ -267,7 +208,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var15 string
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Quaternary.Image.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 210, Col: 39}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 151, Col: 39}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
if templ_7745c5c3_Err != nil {
@@ -280,7 +221,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var16 string
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Quinary.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 233, Col: 29}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 174, Col: 29}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
if templ_7745c5c3_Err != nil {
@@ -293,7 +234,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var17 string
templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Quinary.Desc)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 237, Col: 27}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 178, Col: 27}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
if templ_7745c5c3_Err != nil {
@@ -306,7 +247,7 @@ func Architecture() templ.Component {
var templ_7745c5c3_Var18 string
templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(arch.Quinary.Image.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/arch.templ`, Line: 243, Col: 36}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/arch.templ`, Line: 184, Col: 36}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
if templ_7745c5c3_Err != nil {
diff --git a/pkg/webapp/components/landing/cta.templ b/pkg/webapp/pages/home/internal/cta.templ
similarity index 90%
rename from pkg/webapp/components/landing/cta.templ
rename to pkg/webapp/pages/home/internal/cta.templ
index fcaed73a8..bd654b4e0 100644
--- a/pkg/webapp/components/landing/cta.templ
+++ b/pkg/webapp/pages/home/internal/cta.templ
@@ -1,33 +1,8 @@
-package landing
+package internal
import models "github.com/onsonr/sonr/pkg/webapp/models"
-// ╭───────────────────────────────────────────────────────────╮
-// │ Data Model │
-// ╰───────────────────────────────────────────────────────────╯
-
-var cta = &models.CallToAction{
- Logo: &models.Image{
- Src: "https://cdn.sonr.id/logo-zinc.svg",
- Width: "60",
- Height: "60",
- },
- Heading: "Take control of your Identity",
- Subtitle: "Sonr is a decentralized, permissionless, and censorship-resistant identity network.",
- Primary: &models.Button{
- Href: "request-demo.html",
- Text: "Register",
- },
- Secondary: &models.Button{
- Href: "#0",
- Text: "Learn More",
- },
-}
-
-// ╭───────────────────────────────────────────────────────────╮
-// │ Render Section View │
-// ╰───────────────────────────────────────────────────────────╯
-templ CallToAction() {
+templ CallToAction(cta *models.CallToAction) {
diff --git a/pkg/webapp/components/landing/cta_templ.go b/pkg/webapp/pages/home/internal/cta_templ.go
similarity index 90%
rename from pkg/webapp/components/landing/cta_templ.go
rename to pkg/webapp/pages/home/internal/cta_templ.go
index 8414bbef0..92a0b7a1b 100644
--- a/pkg/webapp/components/landing/cta_templ.go
+++ b/pkg/webapp/pages/home/internal/cta_templ.go
@@ -1,7 +1,7 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package landing
+package internal
//lint:file-ignore SA4006 This context is only used if a nested component is present.
@@ -10,32 +10,7 @@ import templruntime "github.com/a-h/templ/runtime"
import models "github.com/onsonr/sonr/pkg/webapp/models"
-// ╭───────────────────────────────────────────────────────────╮
-// │ Data Model │
-// ╰───────────────────────────────────────────────────────────╯
-
-var cta = &models.CallToAction{
- Logo: &models.Image{
- Src: "https://cdn.sonr.id/logo-zinc.svg",
- Width: "60",
- Height: "60",
- },
- Heading: "Take control of your Identity",
- Subtitle: "Sonr is a decentralized, permissionless, and censorship-resistant identity network.",
- Primary: &models.Button{
- Href: "request-demo.html",
- Text: "Register",
- },
- Secondary: &models.Button{
- Href: "#0",
- Text: "Learn More",
- },
-}
-
-// ╭───────────────────────────────────────────────────────────╮
-// │ Render Section View │
-// ╰───────────────────────────────────────────────────────────╯
-func CallToAction() templ.Component {
+func CallToAction(cta *models.CallToAction) 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 {
diff --git a/pkg/webapp/components/landing/footer.templ b/pkg/webapp/pages/home/internal/footer.templ
similarity index 99%
rename from pkg/webapp/components/landing/footer.templ
rename to pkg/webapp/pages/home/internal/footer.templ
index 8ca98b74a..0e6bebc72 100644
--- a/pkg/webapp/components/landing/footer.templ
+++ b/pkg/webapp/pages/home/internal/footer.templ
@@ -1,5 +1,5 @@
-package landing
+package internal
templ Footer() {
diff --git a/pkg/webapp/components/landing/footer_templ.go b/pkg/webapp/pages/home/internal/footer_templ.go
similarity index 99%
rename from pkg/webapp/components/landing/footer_templ.go
rename to pkg/webapp/pages/home/internal/footer_templ.go
index 2621849e4..aae38429f 100644
--- a/pkg/webapp/components/landing/footer_templ.go
+++ b/pkg/webapp/pages/home/internal/footer_templ.go
@@ -2,7 +2,7 @@
// templ: version: v0.2.793
-package landing
+package internal
//lint:file-ignore SA4006 This context is only used if a nested component is present.
diff --git a/pkg/webapp/components/landing/header.templ b/pkg/webapp/pages/home/internal/header.templ
similarity index 79%
rename from pkg/webapp/components/landing/header.templ
rename to pkg/webapp/pages/home/internal/header.templ
index f4b7fbfc2..117701fa7 100644
--- a/pkg/webapp/components/landing/header.templ
+++ b/pkg/webapp/pages/home/internal/header.templ
@@ -1,38 +1,8 @@
-package landing
+package internal
import models "github.com/onsonr/sonr/pkg/webapp/models"
-var header = &models.NavHeader{
- Logo: &models.Image{
- Src: "https://cdn.sonr.id/logo-ivory.svg",
- Width: "20",
- Height: "20",
- },
- Primary: &models.NavItem{
- Text: "Get Access",
- Href: "/register",
- },
- Items: []*models.NavItem{
- {
- Text: "Docs",
- Href: "#",
- },
- {
- Text: "Blog",
- Href: "#",
- },
- {
- Text: "Changelog",
- Href: "#",
- },
- {
- Text: "About",
- Href: "#",
- },
- },
-}
-
-templ Header() {
+templ Header(header *models.NavHeader) {
diff --git a/pkg/webapp/components/landing/header_templ.go b/pkg/webapp/pages/home/internal/header_templ.go
similarity index 90%
rename from pkg/webapp/components/landing/header_templ.go
rename to pkg/webapp/pages/home/internal/header_templ.go
index 2a948dbb9..e167cde4d 100644
--- a/pkg/webapp/components/landing/header_templ.go
+++ b/pkg/webapp/pages/home/internal/header_templ.go
@@ -1,7 +1,7 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package landing
+package internal
//lint:file-ignore SA4006 This context is only used if a nested component is present.
@@ -10,37 +10,7 @@ import templruntime "github.com/a-h/templ/runtime"
import models "github.com/onsonr/sonr/pkg/webapp/models"
-var header = &models.NavHeader{
- Logo: &models.Image{
- Src: "https://cdn.sonr.id/logo-ivory.svg",
- Width: "20",
- Height: "20",
- },
- Primary: &models.NavItem{
- Text: "Get Access",
- Href: "/register",
- },
- Items: []*models.NavItem{
- {
- Text: "Docs",
- Href: "#",
- },
- {
- Text: "Blog",
- Href: "#",
- },
- {
- Text: "Changelog",
- Href: "#",
- },
- {
- Text: "About",
- Href: "#",
- },
- },
-}
-
-func Header() templ.Component {
+func Header(header *models.NavHeader) 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 {
@@ -68,7 +38,7 @@ func Header() templ.Component {
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(header.Logo.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/header.templ`, Line: 45, Col: 33}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/header.templ`, Line: 15, Col: 33}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
if templ_7745c5c3_Err != nil {
@@ -81,7 +51,7 @@ func Header() templ.Component {
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(header.Logo.Width)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/header.templ`, Line: 45, Col: 61}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/header.templ`, Line: 15, Col: 61}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
@@ -94,7 +64,7 @@ func Header() templ.Component {
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(header.Logo.Height)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/header.templ`, Line: 45, Col: 91}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/header.templ`, Line: 15, Col: 91}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
@@ -163,7 +133,7 @@ func navButton(item *models.NavItem, isPrimary bool) templ.Component {
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(item.Href)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/header.templ`, Line: 72, Col: 132}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/header.templ`, Line: 42, Col: 132}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
@@ -176,7 +146,7 @@ func navButton(item *models.NavItem, isPrimary bool) templ.Component {
var templ_7745c5c3_Var7 string
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(item.Text)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/header.templ`, Line: 72, Col: 146}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/header.templ`, Line: 42, Col: 146}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
if templ_7745c5c3_Err != nil {
@@ -203,7 +173,7 @@ func navButton(item *models.NavItem, isPrimary bool) templ.Component {
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(item.Text)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/header.templ`, Line: 74, Col: 189}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/header.templ`, Line: 44, Col: 189}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
diff --git a/pkg/webapp/components/landing/hero.templ b/pkg/webapp/pages/home/internal/hero.templ
similarity index 78%
rename from pkg/webapp/components/landing/hero.templ
rename to pkg/webapp/pages/home/internal/hero.templ
index 0c12b1e29..5f87e5800 100644
--- a/pkg/webapp/components/landing/hero.templ
+++ b/pkg/webapp/pages/home/internal/hero.templ
@@ -1,4 +1,4 @@
-package landing
+package internal
import (
"fmt"
@@ -6,37 +6,8 @@ import (
models "github.com/onsonr/sonr/pkg/webapp/models"
)
-// ╭───────────────────────────────────────────────────────────╮
-// │ Data Model │
-// ╰───────────────────────────────────────────────────────────╯
-
-// 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: "Tradeable Crypto Assets", Denom: "+"},
- {Value: "1.44", Label: "Verified Identities", Denom: "K"},
- {Value: "1.5", Label: "Encrypted Messages Sent", Denom: "M+"},
- {Value: "50", Label: "Decentralized Global Nodes", Denom: "+"},
- },
-}
-
-// ╭───────────────────────────────────────────────────────────╮
-// │ Render Section View │
-// ╰───────────────────────────────────────────────────────────╯
-
// Hero Section
-templ Hero() {
+templ Hero(hero *models.Hero) {
@@ -50,11 +21,11 @@ templ Hero() {
@ui.PrimaryButton("/register", "Get Started")
- @ui.SecondaryButton("/about", "Learn More")
+ @ui.SecondaryButton("/learn", "Learn More")
- @heroImage(hero)
+ @heroImage(hero.Image)
@stats(hero.Stats)
@@ -70,18 +41,19 @@ templ heroTitle(first string, emphasis string, second string) {
+
{ second }
}
-templ heroImage(hero *models.Hero) {
+templ heroImage(hero *models.Image) {
diff --git a/pkg/webapp/components/landing/hero_templ.go b/pkg/webapp/pages/home/internal/hero_templ.go
similarity index 87%
rename from pkg/webapp/components/landing/hero_templ.go
rename to pkg/webapp/pages/home/internal/hero_templ.go
index d3cd16ae9..e7fb4e15b 100644
--- a/pkg/webapp/components/landing/hero_templ.go
+++ b/pkg/webapp/pages/home/internal/hero_templ.go
@@ -1,7 +1,7 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package landing
+package internal
//lint:file-ignore SA4006 This context is only used if a nested component is present.
@@ -14,37 +14,8 @@ import (
models "github.com/onsonr/sonr/pkg/webapp/models"
)
-// ╭───────────────────────────────────────────────────────────╮
-// │ Data Model │
-// ╰───────────────────────────────────────────────────────────╯
-
-// 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: "Tradeable Crypto Assets", Denom: "+"},
- {Value: "1.44", Label: "Verified Identities", Denom: "K"},
- {Value: "1.5", Label: "Encrypted Messages Sent", Denom: "M+"},
- {Value: "50", Label: "Decentralized Global Nodes", Denom: "+"},
- },
-}
-
-// ╭───────────────────────────────────────────────────────────╮
-// │ Render Section View │
-// ╰───────────────────────────────────────────────────────────╯
-
// Hero Section
-func Hero() templ.Component {
+func Hero(hero *models.Hero) 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 {
@@ -80,7 +51,7 @@ func Hero() templ.Component {
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(hero.Subtitle)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 49, Col: 22}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 20, Col: 22}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
if templ_7745c5c3_Err != nil {
@@ -94,7 +65,7 @@ func Hero() templ.Component {
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = ui.SecondaryButton("/about", "Learn More").Render(ctx, templ_7745c5c3_Buffer)
+ templ_7745c5c3_Err = ui.SecondaryButton("/learn", "Learn More").Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -102,7 +73,7 @@ func Hero() templ.Component {
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = heroImage(hero).Render(ctx, templ_7745c5c3_Buffer)
+ templ_7745c5c3_Err = heroImage(hero.Image).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -146,7 +117,7 @@ func heroTitle(first string, emphasis string, second string) templ.Component {
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(first)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 66, Col: 9}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 37, Col: 9}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
@@ -159,20 +130,20 @@ func heroTitle(first string, emphasis string, second string) templ.Component {
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(emphasis)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 68, Col: 13}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 39, Col: 13}
}
_, 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(" ")
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(second)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 73, Col: 10}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 45, Col: 10}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
@@ -186,7 +157,7 @@ func heroTitle(first string, emphasis string, second string) templ.Component {
})
}
-func heroImage(hero *models.Hero) templ.Component {
+func heroImage(hero *models.Image) 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 {
@@ -212,9 +183,9 @@ func heroImage(hero *models.Hero) templ.Component {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var8 string
- templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(hero.Image.Src)
+ templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(hero.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 82, Col: 23}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 54, Col: 17}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
@@ -225,9 +196,9 @@ func heroImage(hero *models.Hero) templ.Component {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var9 string
- templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(hero.Image.Width)
+ templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(hero.Width)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 83, Col: 27}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 55, Col: 21}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
@@ -238,9 +209,9 @@ func heroImage(hero *models.Hero) templ.Component {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var10 string
- templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(hero.Image.Height)
+ templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(hero.Height)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 84, Col: 29}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 56, Col: 23}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
if templ_7745c5c3_Err != nil {
@@ -287,7 +258,7 @@ func stats(stats []*models.Stat) templ.Component {
var templ_7745c5c3_Var12 string
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(counterXData(item.Value))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 96, Col: 122}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 68, Col: 122}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
if templ_7745c5c3_Err != nil {
@@ -300,7 +271,7 @@ func stats(stats []*models.Stat) templ.Component {
var templ_7745c5c3_Var13 string
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(item.Value)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 96, Col: 159}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 68, Col: 159}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
if templ_7745c5c3_Err != nil {
@@ -313,7 +284,7 @@ func stats(stats []*models.Stat) templ.Component {
var templ_7745c5c3_Var14 string
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(item.Denom)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 96, Col: 180}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 68, Col: 180}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
if templ_7745c5c3_Err != nil {
@@ -326,7 +297,7 @@ func stats(stats []*models.Stat) templ.Component {
var templ_7745c5c3_Var15 string
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(item.Label)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/hero.templ`, Line: 97, Col: 50}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/hero.templ`, Line: 69, Col: 50}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
if templ_7745c5c3_Err != nil {
diff --git a/pkg/webapp/components/landing/highlights.templ b/pkg/webapp/pages/home/internal/highlights.templ
similarity index 72%
rename from pkg/webapp/components/landing/highlights.templ
rename to pkg/webapp/pages/home/internal/highlights.templ
index 6b1436c6f..9127eea5b 100644
--- a/pkg/webapp/components/landing/highlights.templ
+++ b/pkg/webapp/pages/home/internal/highlights.templ
@@ -1,4 +1,4 @@
-package landing
+package internal
import (
"fmt"
@@ -9,58 +9,10 @@ import (
// │ Data Model │
// ╰───────────────────────────────────────────────────────────╯
-// 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: "Crypto Wallet",
- 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,
- Image: &models.Image{
- Src: "",
- Width: "44",
- Height: "44",
- },
- },
- {
- Title: "PassKey Authenticator",
- Desc: "Sonr leverages advanced cryptography to permit facilitating Wallet Operations directly on-chain, without the need for a centralized server.",
- Icon: nil,
- Image: &models.Image{
- Src: "",
- Width: "44",
- Height: "44",
- },
- },
- {
- Title: "Anonymous Identity",
- 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,
- Image: &models.Image{
- Src: "",
- Width: "44",
- Height: "44",
- },
- },
- {
- Title: "Tokenized Authorization",
- Desc: "Sonr anonymously associates your online identities with a Quantum-Resistant Vault which only you can access.",
- Icon: nil,
- Image: &models.Image{
- Src: "",
- Width: "44",
- Height: "44",
- },
- },
- },
-}
-
// ╭───────────────────────────────────────────────────────────╮
// │ Render Section View │
// ╰───────────────────────────────────────────────────────────╯
-templ Highlights() {
+templ Highlights(highlights *models.Highlights) {
diff --git a/pkg/webapp/components/landing/highlights_templ.go b/pkg/webapp/pages/home/internal/highlights_templ.go
similarity index 85%
rename from pkg/webapp/components/landing/highlights_templ.go
rename to pkg/webapp/pages/home/internal/highlights_templ.go
index 242587cc9..d32acfcd6 100644
--- a/pkg/webapp/components/landing/highlights_templ.go
+++ b/pkg/webapp/pages/home/internal/highlights_templ.go
@@ -1,7 +1,7 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package landing
+package internal
//lint:file-ignore SA4006 This context is only used if a nested component is present.
@@ -17,58 +17,10 @@ import (
// │ Data Model │
// ╰───────────────────────────────────────────────────────────╯
-// 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: "Crypto Wallet",
- 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,
- Image: &models.Image{
- Src: "",
- Width: "44",
- Height: "44",
- },
- },
- {
- Title: "PassKey Authenticator",
- Desc: "Sonr leverages advanced cryptography to permit facilitating Wallet Operations directly on-chain, without the need for a centralized server.",
- Icon: nil,
- Image: &models.Image{
- Src: "",
- Width: "44",
- Height: "44",
- },
- },
- {
- Title: "Anonymous Identity",
- 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,
- Image: &models.Image{
- Src: "",
- Width: "44",
- Height: "44",
- },
- },
- {
- Title: "Tokenized Authorization",
- Desc: "Sonr anonymously associates your online identities with a Quantum-Resistant Vault which only you can access.",
- Icon: nil,
- Image: &models.Image{
- Src: "",
- Width: "44",
- Height: "44",
- },
- },
- },
-}
-
// ╭───────────────────────────────────────────────────────────╮
// │ Render Section View │
// ╰───────────────────────────────────────────────────────────╯
-func Highlights() templ.Component {
+func Highlights(highlights *models.Highlights) 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 {
@@ -96,7 +48,7 @@ func Highlights() templ.Component {
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(highlights.Heading)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 72, Col: 26}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 24, Col: 26}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
if templ_7745c5c3_Err != nil {
@@ -109,7 +61,7 @@ func Highlights() templ.Component {
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(highlights.Subtitle)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 75, Col: 27}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 27, Col: 27}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
@@ -171,7 +123,7 @@ func highlightTab(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(getSelectedClass(index))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 94, Col: 34}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 46, Col: 34}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
@@ -184,7 +136,7 @@ func highlightTab(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(getClickPrevent(index))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 96, Col: 41}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 48, Col: 41}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
@@ -197,7 +149,7 @@ func highlightTab(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var7 string
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(highlight.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 100, Col: 21}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 52, Col: 21}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
if templ_7745c5c3_Err != nil {
@@ -210,7 +162,7 @@ func highlightTab(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(getShowBorder(index))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 103, Col: 33}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 55, Col: 33}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
@@ -223,7 +175,7 @@ func highlightTab(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(highlight.Desc)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 115, Col: 19}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 67, Col: 19}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
@@ -265,7 +217,7 @@ func highlightCard(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var11 string
templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(getXShow(index))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 123, Col: 26}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 75, Col: 26}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
if templ_7745c5c3_Err != nil {
@@ -278,7 +230,7 @@ func highlightCard(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var12 string
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(highlight.Image.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 134, Col: 29}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 86, Col: 29}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
if templ_7745c5c3_Err != nil {
@@ -291,7 +243,7 @@ func highlightCard(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var13 string
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(highlight.Image.Width)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 135, Col: 33}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 87, Col: 33}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
if templ_7745c5c3_Err != nil {
@@ -304,7 +256,7 @@ func highlightCard(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var14 string
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(highlight.Image.Height)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 136, Col: 35}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 88, Col: 35}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
if templ_7745c5c3_Err != nil {
@@ -317,7 +269,7 @@ func highlightCard(index int, highlight *models.Feature) templ.Component {
var templ_7745c5c3_Var15 string
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(highlight.Title)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/highlights.templ`, Line: 137, Col: 25}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/highlights.templ`, Line: 89, Col: 25}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
if templ_7745c5c3_Err != nil {
diff --git a/pkg/webapp/components/landing/lowlights.templ b/pkg/webapp/pages/home/internal/lowlights.templ
similarity index 57%
rename from pkg/webapp/components/landing/lowlights.templ
rename to pkg/webapp/pages/home/internal/lowlights.templ
index 3b41b9c91..d2022c917 100644
--- a/pkg/webapp/components/landing/lowlights.templ
+++ b/pkg/webapp/pages/home/internal/lowlights.templ
@@ -1,4 +1,4 @@
-package landing
+package internal
import models "github.com/onsonr/sonr/pkg/webapp/models"
@@ -6,100 +6,12 @@ import models "github.com/onsonr/sonr/pkg/webapp/models"
// │ Data Model │
// ╰───────────────────────────────────────────────────────────╯
-var lowlights = &models.Lowlights{
- Heading: "The Fragmentation Problem in the Existing Web is seeping into Crypto",
- UpperQuotes: []*models.Testimonial{
- {
- FullName: "0xDesigner",
- Username: "@0xDesigner",
- Avatar: &models.Image{
- Src: models.Avatar0xDesigner.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "what if the wallet ui appeared next to the click instead of in a new browser window?",
- },
- {
- FullName: "Alex Recouso",
- Username: "@alexrecouso",
- Avatar: &models.Image{
- Src: models.AvatarAlexRecouso.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "2024 resembles 1984, but it doesn't have to be that way for you",
- },
- {
- FullName: "Chjango Unchained",
- Username: "@chjango",
- Avatar: &models.Image{
- Src: models.AvatarChjango.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "IBC is the inter-blockchain highway of @cosmos. While not very cypherpunk, charging a 1.5 basis pt fee would go a long way if priced in $ATOM.",
- },
- {
- FullName: "Gwart",
- Username: "@GwartyGwart",
- Avatar: &models.Image{
- Src: models.AvatarGwart.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: " Base is incredible. Most centralized l2. Least details about their plans to decentralize. Keeps OP cabal quiet by pretending to care about quadratic voting and giving 10% tithe. Pays Ethereum mainnet virtually nothing. Runs yuppie granola ad campaigns.",
- },
- },
- LowerQuotes: []*models.Testimonial{
- {
- FullName: "winnie",
- Username: "@winnielaux_",
- Avatar: &models.Image{
- Src: models.AvatarWinnieLaux.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "the ability to download apps directly from the web or from “crypto-only” app stores will be a massive unlock for web3",
- },
- {
- FullName: "Jelena",
- Username: "@jelena_noble",
- Avatar: &models.Image{
- Src: models.AvatarJelenaNoble.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "Excited for all the @cosmos nerds to be vindicated in the next bull run",
- },
- {
- FullName: "accountless",
- Username: "@alexanderchopan",
- Avatar: &models.Image{
- Src: models.AvatarAccountless.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "sounds like webThree. Single key pair Requires the same signer At risk of infinite approvals Public history of all transactions different account on each chain different addresses for each account",
- },
- {
- FullName: "Unusual Whales",
- Username: "@unusual_whales",
- Avatar: &models.Image{
- Src: models.AvatarUnusualWhales.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "BREAKING: Fidelity & Fidelity Investments has confirmed that over 77,000 customers had personal information compromised, including Social Security numbers and driver’s licenses.",
- },
- },
-}
-
// ╭───────────────────────────────────────────────────────────╮
// │ Render Section View │
// ╰───────────────────────────────────────────────────────────╯
// Lowlights is the (4th) home page lowlights section
-templ Lowlights() {
+templ Lowlights(lowlights *models.Lowlights) {
diff --git a/pkg/webapp/components/landing/lowlights_templ.go b/pkg/webapp/pages/home/internal/lowlights_templ.go
similarity index 75%
rename from pkg/webapp/components/landing/lowlights_templ.go
rename to pkg/webapp/pages/home/internal/lowlights_templ.go
index 1bd2e3dfb..0cc6af941 100644
--- a/pkg/webapp/components/landing/lowlights_templ.go
+++ b/pkg/webapp/pages/home/internal/lowlights_templ.go
@@ -1,7 +1,7 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package landing
+package internal
//lint:file-ignore SA4006 This context is only used if a nested component is present.
@@ -14,100 +14,12 @@ import models "github.com/onsonr/sonr/pkg/webapp/models"
// │ Data Model │
// ╰───────────────────────────────────────────────────────────╯
-var lowlights = &models.Lowlights{
- Heading: "The Fragmentation Problem in the Existing Web is seeping into Crypto",
- UpperQuotes: []*models.Testimonial{
- {
- FullName: "0xDesigner",
- Username: "@0xDesigner",
- Avatar: &models.Image{
- Src: models.Avatar0xDesigner.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "what if the wallet ui appeared next to the click instead of in a new browser window?",
- },
- {
- FullName: "Alex Recouso",
- Username: "@alexrecouso",
- Avatar: &models.Image{
- Src: models.AvatarAlexRecouso.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "2024 resembles 1984, but it doesn't have to be that way for you",
- },
- {
- FullName: "Chjango Unchained",
- Username: "@chjango",
- Avatar: &models.Image{
- Src: models.AvatarChjango.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "IBC is the inter-blockchain highway of @cosmos. While not very cypherpunk, charging a 1.5 basis pt fee would go a long way if priced in $ATOM.",
- },
- {
- FullName: "Gwart",
- Username: "@GwartyGwart",
- Avatar: &models.Image{
- Src: models.AvatarGwart.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: " Base is incredible. Most centralized l2. Least details about their plans to decentralize. Keeps OP cabal quiet by pretending to care about quadratic voting and giving 10% tithe. Pays Ethereum mainnet virtually nothing. Runs yuppie granola ad campaigns.",
- },
- },
- LowerQuotes: []*models.Testimonial{
- {
- FullName: "winnie",
- Username: "@winnielaux_",
- Avatar: &models.Image{
- Src: models.AvatarWinnieLaux.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "the ability to download apps directly from the web or from “crypto-only” app stores will be a massive unlock for web3",
- },
- {
- FullName: "Jelena",
- Username: "@jelena_noble",
- Avatar: &models.Image{
- Src: models.AvatarJelenaNoble.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "Excited for all the @cosmos nerds to be vindicated in the next bull run",
- },
- {
- FullName: "accountless",
- Username: "@alexanderchopan",
- Avatar: &models.Image{
- Src: models.AvatarAccountless.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "sounds like webThree. Single key pair Requires the same signer At risk of infinite approvals Public history of all transactions different account on each chain different addresses for each account",
- },
- {
- FullName: "Unusual Whales",
- Username: "@unusual_whales",
- Avatar: &models.Image{
- Src: models.AvatarUnusualWhales.Src(),
- Width: "44",
- Height: "44",
- },
- Quote: "BREAKING: Fidelity & Fidelity Investments has confirmed that over 77,000 customers had personal information compromised, including Social Security numbers and driver’s licenses.",
- },
- },
-}
-
// ╭───────────────────────────────────────────────────────────╮
// │ Render Section View │
// ╰───────────────────────────────────────────────────────────╯
// Lowlights is the (4th) home page lowlights section
-func Lowlights() templ.Component {
+func Lowlights(lowlights *models.Lowlights) 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 {
@@ -135,7 +47,7 @@ func Lowlights() templ.Component {
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(lowlights.Heading)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/lowlights.templ`, Line: 108, Col: 25}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/lowlights.templ`, Line: 20, Col: 25}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
if templ_7745c5c3_Err != nil {
@@ -197,7 +109,7 @@ func quoteItem(quote *models.Testimonial) templ.Component {
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(quote.Avatar.Src)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/lowlights.templ`, Line: 153, Col: 65}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/lowlights.templ`, Line: 65, Col: 65}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
@@ -210,7 +122,7 @@ func quoteItem(quote *models.Testimonial) templ.Component {
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(quote.Avatar.Width)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/lowlights.templ`, Line: 153, Col: 94}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/lowlights.templ`, Line: 65, Col: 94}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
@@ -223,7 +135,7 @@ func quoteItem(quote *models.Testimonial) templ.Component {
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(quote.Avatar.Height)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/lowlights.templ`, Line: 153, Col: 125}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/lowlights.templ`, Line: 65, Col: 125}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
@@ -236,7 +148,7 @@ func quoteItem(quote *models.Testimonial) templ.Component {
var templ_7745c5c3_Var7 string
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(quote.FullName)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/lowlights.templ`, Line: 155, Col: 74}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/lowlights.templ`, Line: 67, Col: 74}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
if templ_7745c5c3_Err != nil {
@@ -249,7 +161,7 @@ func quoteItem(quote *models.Testimonial) templ.Component {
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(quote.Username)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/lowlights.templ`, Line: 157, Col: 107}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/lowlights.templ`, Line: 69, Col: 107}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
@@ -262,7 +174,7 @@ func quoteItem(quote *models.Testimonial) templ.Component {
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(quote.Quote)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/components/landing/lowlights.templ`, Line: 162, Col: 16}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `pkg/webapp/pages/home/internal/lowlights.templ`, Line: 74, Col: 16}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
diff --git a/pkg/webapp/components/landing/mission.templ b/pkg/webapp/pages/home/internal/mission.templ
similarity index 91%
rename from pkg/webapp/components/landing/mission.templ
rename to pkg/webapp/pages/home/internal/mission.templ
index b1c64ec58..e8e0d0e89 100644
--- a/pkg/webapp/components/landing/mission.templ
+++ b/pkg/webapp/pages/home/internal/mission.templ
@@ -1,30 +1,8 @@
-package landing
+package internal
import models "github.com/onsonr/sonr/pkg/webapp/models"
-// 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,
- },
-}
-
-templ Mission() {
+templ Mission(mission *models.Mission) {
+
+
+
+ Continue with your phone
+ Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
+
+}
+
+templ RegisterFooter() {
+
Already have an account? Login here
+
By continuing, you agree to our Terms and Policy.
+}
diff --git a/pkg/webapp/pages/login/internal/components_templ.go b/pkg/webapp/pages/login/internal/components_templ.go
new file mode 100644
index 000000000..d5cee3a77
--- /dev/null
+++ b/pkg/webapp/pages/login/internal/components_templ.go
@@ -0,0 +1,69 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 RegisterHeader() 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("
Continue with your phone
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func RegisterFooter() 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("
Already have an account? Login here
By continuing, you agree to our Terms and Policy.
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/pages/login/internal/forms.templ b/pkg/webapp/pages/login/internal/forms.templ
new file mode 100644
index 000000000..6653e32a0
--- /dev/null
+++ b/pkg/webapp/pages/login/internal/forms.templ
@@ -0,0 +1,21 @@
+package internal
+
+templ RegisterCredentialForm() {
+
+}
+
+templ ReserveHandleForm() {
+
+}
diff --git a/pkg/webapp/pages/login/internal/forms_templ.go b/pkg/webapp/pages/login/internal/forms_templ.go
new file mode 100644
index 000000000..3445417c9
--- /dev/null
+++ b/pkg/webapp/pages/login/internal/forms_templ.go
@@ -0,0 +1,69 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 RegisterCredentialForm() 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 ReserveHandleForm() 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
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/pages/login/internal/scripts.templ b/pkg/webapp/pages/login/internal/scripts.templ
new file mode 100644
index 000000000..6a11ca2e4
--- /dev/null
+++ b/pkg/webapp/pages/login/internal/scripts.templ
@@ -0,0 +1,37 @@
+package internal
+
+templ CreateCredentialsScript() {
+
+}
diff --git a/pkg/webapp/pages/login/internal/scripts_templ.go b/pkg/webapp/pages/login/internal/scripts_templ.go
new file mode 100644
index 000000000..a07b37d1d
--- /dev/null
+++ b/pkg/webapp/pages/login/internal/scripts_templ.go
@@ -0,0 +1,40 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 CreateCredentialsScript() 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/webapp/pages/login/page.templ b/pkg/webapp/pages/login/page.templ
new file mode 100644
index 000000000..09c4ac668
--- /dev/null
+++ b/pkg/webapp/pages/login/page.templ
@@ -0,0 +1,18 @@
+package login
+
+import (
+ "github.com/onsonr/sonr/pkg/webapp/components/ui"
+ "github.com/onsonr/sonr/pkg/webapp/pages/login/internal"
+)
+
+// RedirectModal returns the Modal with a QR code to scan.
+templ Page() {
+ @ui.FullScreenModal() {
+
+ @internal.RegisterHeader()
+ @ui.Separator("Or Reserve Handle")
+ @internal.ReserveHandleForm()
+
+ @internal.RegisterFooter()
+ }
+}
diff --git a/pkg/webapp/components/auth/current_templ.go b/pkg/webapp/pages/login/page_templ.go
similarity index 51%
rename from pkg/webapp/components/auth/current_templ.go
rename to pkg/webapp/pages/login/page_templ.go
index 9caad89f3..11e2e7152 100644
--- a/pkg/webapp/components/auth/current_templ.go
+++ b/pkg/webapp/pages/login/page_templ.go
@@ -1,17 +1,20 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.793
-package auth
+package login
//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/onsonr/sonr/pkg/webapp/components/ui"
+import (
+ "github.com/onsonr/sonr/pkg/webapp/components/ui"
+ "github.com/onsonr/sonr/pkg/webapp/pages/login/internal"
+)
// RedirectModal returns the Modal with a QR code to scan.
-func RedirectModal() templ.Component {
+func Page() 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 {
@@ -44,7 +47,11 @@ func RedirectModal() templ.Component {
}()
}
ctx = templ.InitializeContext(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
Continue with your phone
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
")
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = internal.RegisterHeader().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -52,7 +59,15 @@ func RedirectModal() templ.Component {
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
Already have an account? Login here
By continuing, you agree to our Terms and Policy.
")
+ templ_7745c5c3_Err = internal.ReserveHandleForm().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 = internal.RegisterFooter().Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
diff --git a/pkg/webapp/pages/register/internal/components.templ b/pkg/webapp/pages/register/internal/components.templ
new file mode 100644
index 000000000..cef6a0802
--- /dev/null
+++ b/pkg/webapp/pages/register/internal/components.templ
@@ -0,0 +1,16 @@
+package internal
+
+templ RegisterHeader() {
+
+
+
+
+
Continue with your phone
+
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
+
+}
+
+templ RegisterFooter() {
+
Already have an account? Login here
+
By continuing, you agree to our Terms and Policy.
+}
diff --git a/pkg/webapp/pages/register/internal/components_templ.go b/pkg/webapp/pages/register/internal/components_templ.go
new file mode 100644
index 000000000..d5cee3a77
--- /dev/null
+++ b/pkg/webapp/pages/register/internal/components_templ.go
@@ -0,0 +1,69 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 RegisterHeader() 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("
Continue with your phone
Creating a Sonr Vault requires a smartphone with W3C compliant biometrics enabled.
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+func RegisterFooter() 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("
Already have an account? Login here
By continuing, you agree to our Terms and Policy.
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/pages/register/internal/forms.templ b/pkg/webapp/pages/register/internal/forms.templ
new file mode 100644
index 000000000..6653e32a0
--- /dev/null
+++ b/pkg/webapp/pages/register/internal/forms.templ
@@ -0,0 +1,21 @@
+package internal
+
+templ RegisterCredentialForm() {
+
+}
+
+templ ReserveHandleForm() {
+
+}
diff --git a/pkg/webapp/pages/register/internal/forms_templ.go b/pkg/webapp/pages/register/internal/forms_templ.go
new file mode 100644
index 000000000..3445417c9
--- /dev/null
+++ b/pkg/webapp/pages/register/internal/forms_templ.go
@@ -0,0 +1,69 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 RegisterCredentialForm() 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 ReserveHandleForm() 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
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/pkg/webapp/pages/register/internal/scripts.templ b/pkg/webapp/pages/register/internal/scripts.templ
new file mode 100644
index 000000000..6a11ca2e4
--- /dev/null
+++ b/pkg/webapp/pages/register/internal/scripts.templ
@@ -0,0 +1,37 @@
+package internal
+
+templ CreateCredentialsScript() {
+
+}
diff --git a/pkg/webapp/pages/register/internal/scripts_templ.go b/pkg/webapp/pages/register/internal/scripts_templ.go
new file mode 100644
index 000000000..a07b37d1d
--- /dev/null
+++ b/pkg/webapp/pages/register/internal/scripts_templ.go
@@ -0,0 +1,40 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package internal
+
+//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 CreateCredentialsScript() 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/webapp/pages/register/page.templ b/pkg/webapp/pages/register/page.templ
new file mode 100644
index 000000000..74a3739e0
--- /dev/null
+++ b/pkg/webapp/pages/register/page.templ
@@ -0,0 +1,18 @@
+package register
+
+import (
+ "github.com/onsonr/sonr/pkg/webapp/components/ui"
+ "github.com/onsonr/sonr/pkg/webapp/pages/register/internal"
+)
+
+// RedirectModal returns the Modal with a QR code to scan.
+templ Page() {
+ @ui.FullScreenModal() {
+
+ @internal.RegisterHeader()
+ @ui.Separator("Or Reserve Handle")
+ @internal.ReserveHandleForm()
+
+ @internal.RegisterFooter()
+ }
+}
diff --git a/pkg/webapp/pages/register/page_templ.go b/pkg/webapp/pages/register/page_templ.go
new file mode 100644
index 000000000..b79a1f24d
--- /dev/null
+++ b/pkg/webapp/pages/register/page_templ.go
@@ -0,0 +1,84 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.2.793
+package register
+
+//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/onsonr/sonr/pkg/webapp/components/ui"
+ "github.com/onsonr/sonr/pkg/webapp/pages/register/internal"
+)
+
+// RedirectModal returns the Modal with a QR code to scan.
+func Page() 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 = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = internal.RegisterHeader().Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = ui.Separator("Or Reserve Handle").Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = internal.ReserveHandleForm().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 = internal.RegisterFooter().Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return templ_7745c5c3_Err
+ })
+ templ_7745c5c3_Err = ui.FullScreenModal().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