mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
feat: update UIUX PKL to utilize optional fields
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
@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
|
||||
|
||||
Reference in New Issue
Block a user