mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
92 lines
2.4 KiB
Plaintext
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 State │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
typealias InputType = "text" | "password" | "email" | "credential" | "file"
|
|
|
|
class Button {
|
|
text: String
|
|
href: String
|
|
}
|
|
|
|
abstract class Form {
|
|
title: String
|
|
description: String
|
|
inputs: List<Input>
|
|
}
|
|
|
|
class Image {
|
|
src: String
|
|
width: String
|
|
height: String
|
|
}
|
|
|
|
class Input {
|
|
label: String
|
|
type: InputType
|
|
placeholder: String
|
|
value: String?
|
|
error: String?
|
|
help: String?
|
|
required: Boolean?
|
|
}
|
|
|
|
class Link {
|
|
text: String
|
|
href: String
|
|
}
|
|
|
|
class SocialLink {
|
|
link: Link
|
|
icon: String
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Data Models │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
class Feature {
|
|
title: String
|
|
description: String
|
|
icon: String?
|
|
image: Image?
|
|
}
|
|
|
|
class Stat {
|
|
value: String
|
|
label: String
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Homepage View Model │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
class Hero {
|
|
titleFirst: String
|
|
titleEmphasis: String
|
|
titleSecond: String
|
|
subtitle: String
|
|
primaryButton: Button
|
|
secondaryButton: Button
|
|
image: Image
|
|
stats: Listing<Stat>
|
|
}
|
|
|
|
class Highlights {
|
|
heading: String
|
|
subheading: String
|
|
highlights: Listing<Feature>
|
|
}
|
|
class Home {
|
|
hero: Hero
|
|
}
|
|
|
|
home : Home
|
|
|