sonr/pkl/uiux.pkl

92 lines
2.4 KiB
Plaintext

@go.Package { name = "github.com/onsonr/sonr/pkg/nebula/models" }
module models
import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.5.0#/go.pkl"
// ╭───────────────────────────────────────────────────────────╮
// │ General Components │
// ╰───────────────────────────────────────────────────────────╯
typealias FormState = "initial" | "error" | "success" | "warning"
class Image {
src: String
width: String
height: String
}
class Link {
text: String
href: String
}
class SocialLink {
link: Link
icon: String
}
class Button {
text: String
href: String
}
class Input {
label: String
type: String
placeholder: String
value: String?
error: String?
help: String?
required: Boolean
}
// ╭───────────────────────────────────────────────────────────╮
// │ Homepage Components │
// ╰───────────────────────────────────────────────────────────╯
class Stats {
firstValue: String
firstLabel: String
secondValue: String
secondLabel: String
thirdValue: String
thirdLabel: String
}
class Hero {
titleFirst: String
titleEmphasis: String
titleSecond: String
subtitle: String
primaryButton: Button
secondaryButton: Button
image: Image
}
class Footer {
logo: Image
mediumLink: SocialLink
twitterLink: SocialLink
discordLink: SocialLink
githubLink: SocialLink
companyLinks: List<Link>
resourcesLinks: List<Link>
}
hero : Hero
stats : Stats
// ╭───────────────────────────────────────────────────────────╮
// │ Registration Components │
// ╰───────────────────────────────────────────────────────────╯
class RegistrationForm {
title: String
description: String
state: FormState
inputs: List<Input>
}