@almadar/std 16.228.0 → 16.229.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/behaviors/behaviors-registry.json +97602 -98073
- package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-book-reader.lolo +316 -0
- package/behaviors/lolo/ui/core/atoms/std-card-grid.lolo +172 -0
- package/behaviors/lolo/ui/core/atoms/std-hero.lolo +247 -0
- package/behaviors/lolo/ui/core/atoms/std-media-section.lolo +154 -0
- package/behaviors/lolo/ui/core/atoms/std-pricing.lolo +177 -0
- package/behaviors/lolo/ui/core/atoms/std-prose.lolo +85 -0
- package/behaviors/lolo/ui/core/atoms/std-site-footer.lolo +159 -0
- package/behaviors/lolo/ui/core/atoms/std-site-header.lolo +131 -0
- package/behaviors/lolo/ui/core/atoms/std-stat-band.lolo +83 -0
- package/behaviors/lolo/ui/core/atoms/std-stats.lolo +4 -5
- package/behaviors/lolo/ui/core/atoms/std-steps.lolo +124 -0
- package/behaviors/lolo/ui/core/atoms/ui-box.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/ui-button.lolo +6 -1
- package/behaviors/lolo/ui/core/atoms/ui-image.lolo +64 -0
- package/behaviors/lolo/ui/{marketing/atoms → core/molecules}/ui-animated-counter.lolo +11 -6
- package/behaviors/lolo/ui/core/organisms/ui-chat-bar.lolo +5 -0
- package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +1 -1
- package/behaviors/lolo-behavior-contracts.json +1 -1
- package/behaviors/registry/factory-signatures.json +1 -1
- package/behaviors/registry/infra/atoms/std-notify-on-event.orb +45 -9
- package/behaviors/registry/ui/core/atoms/std-book-reader.orb +1269 -0
- package/behaviors/registry/ui/core/atoms/std-card-grid.orb +826 -0
- package/behaviors/registry/ui/core/atoms/std-hero.orb +811 -0
- package/behaviors/registry/ui/core/atoms/std-media-section.orb +740 -0
- package/behaviors/registry/ui/core/atoms/std-pricing.orb +751 -0
- package/behaviors/registry/ui/core/atoms/std-prose.orb +264 -0
- package/behaviors/registry/ui/core/atoms/std-site-footer.orb +589 -0
- package/behaviors/registry/ui/core/atoms/std-site-header.orb +530 -0
- package/behaviors/registry/ui/core/atoms/std-stat-band.orb +311 -0
- package/behaviors/registry/ui/core/atoms/std-stats.orb +4 -5
- package/behaviors/registry/ui/core/atoms/std-steps.orb +532 -0
- package/behaviors/registry/ui/{marketing → core}/atoms/ui-animated-graphic.orb +20 -20
- package/behaviors/registry/ui/{marketing → core}/atoms/ui-animated-reveal.orb +20 -20
- package/behaviors/registry/ui/core/atoms/ui-box.orb +7 -0
- package/behaviors/registry/ui/core/atoms/ui-button.orb +9 -1
- package/behaviors/registry/ui/core/atoms/ui-image.orb +231 -0
- package/behaviors/registry/ui/{marketing → core}/atoms/ui-pattern-tile.orb +20 -20
- package/behaviors/registry/ui/{marketing/atoms → core/molecules}/ui-animated-counter.orb +33 -26
- package/behaviors/registry/ui/{marketing/atoms → core/molecules}/ui-feature-card.orb +20 -20
- package/behaviors/registry/ui/{marketing/atoms → core/molecules}/ui-geometric-pattern.orb +20 -20
- package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +7 -0
- package/behaviors/registry/ui/{marketing → core}/templates/ui-auth-layout.orb +20 -20
- package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +1 -1
- package/behaviors/signatures.lolo +1070 -2984
- package/canonical-operators.json +3 -3
- package/dist/behaviors/exports-reader.js +3818 -10339
- package/dist/behaviors/functions/index.d.ts +3965 -6984
- package/dist/behaviors/functions/index.js +3786 -10195
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +3819 -10340
- package/dist/behaviors/query.js +3818 -10339
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +77 -237
- package/dist/behaviors-registry.json +97602 -98073
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3821 -10342
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +352 -1212
- package/dist/modules/core.js +2 -2
- package/dist/modules/index.js +2 -2
- package/dist/registry/factory-signatures.json +1 -1
- package/dist/registry.js +2 -2
- package/i18n/ar.json +8 -4
- package/i18n/en.json +4 -0
- package/i18n/sl.json +8 -4
- package/package.json +4 -6
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-article.lolo +0 -31
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-cta.lolo +0 -93
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-features.lolo +0 -83
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-footer.lolo +0 -72
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-hero.lolo +0 -131
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-nav.lolo +0 -86
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-pricing.lolo +0 -85
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-showcase.lolo +0 -87
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-split.lolo +0 -50
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-stats.lolo +0 -43
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-steps.lolo +0 -48
- package/behaviors/lolo/ui/marketing/atoms/std-marketing-team.lolo +0 -51
- package/behaviors/lolo/ui/marketing/atoms/ui-article-section.lolo +0 -44
- package/behaviors/lolo/ui/marketing/atoms/ui-case-study-card.lolo +0 -60
- package/behaviors/lolo/ui/marketing/atoms/ui-community-links.lolo +0 -67
- package/behaviors/lolo/ui/marketing/atoms/ui-content-section.lolo +0 -44
- package/behaviors/lolo/ui/marketing/atoms/ui-cta-banner.lolo +0 -68
- package/behaviors/lolo/ui/marketing/atoms/ui-hero-section.lolo +0 -112
- package/behaviors/lolo/ui/marketing/atoms/ui-install-box.lolo +0 -39
- package/behaviors/lolo/ui/marketing/atoms/ui-marketing-footer.lolo +0 -58
- package/behaviors/lolo/ui/marketing/atoms/ui-marketing-stat-card.lolo +0 -45
- package/behaviors/lolo/ui/marketing/atoms/ui-pricing-card.lolo +0 -70
- package/behaviors/lolo/ui/marketing/atoms/ui-pricing-grid.lolo +0 -49
- package/behaviors/lolo/ui/marketing/atoms/ui-pull-quote.lolo +0 -34
- package/behaviors/lolo/ui/marketing/atoms/ui-service-catalog.lolo +0 -40
- package/behaviors/lolo/ui/marketing/atoms/ui-showcase-card.lolo +0 -64
- package/behaviors/lolo/ui/marketing/atoms/ui-split-section.lolo +0 -69
- package/behaviors/lolo/ui/marketing/atoms/ui-stats-grid.lolo +0 -44
- package/behaviors/lolo/ui/marketing/atoms/ui-step-flow.lolo +0 -51
- package/behaviors/lolo/ui/marketing/atoms/ui-tag-cloud.lolo +0 -45
- package/behaviors/lolo/ui/marketing/atoms/ui-team-card.lolo +0 -54
- package/behaviors/lolo/ui/marketing/organisms/ui-book-chapter-view.lolo +0 -63
- package/behaviors/lolo/ui/marketing/organisms/ui-book-cover-page.lolo +0 -54
- package/behaviors/lolo/ui/marketing/organisms/ui-book-nav-bar.lolo +0 -49
- package/behaviors/lolo/ui/marketing/organisms/ui-book-table-of-contents.lolo +0 -70
- package/behaviors/lolo/ui/marketing/organisms/ui-book-viewer.lolo +0 -161
- package/behaviors/lolo/ui/marketing/organisms/ui-case-study-organism.lolo +0 -153
- package/behaviors/lolo/ui/marketing/organisms/ui-feature-grid-organism.lolo +0 -159
- package/behaviors/lolo/ui/marketing/organisms/ui-hero-organism.lolo +0 -162
- package/behaviors/lolo/ui/marketing/organisms/ui-pricing-organism.lolo +0 -155
- package/behaviors/lolo/ui/marketing/organisms/ui-showcase-organism.lolo +0 -164
- package/behaviors/lolo/ui/marketing/organisms/ui-stats-organism.lolo +0 -142
- package/behaviors/lolo/ui/marketing/organisms/ui-step-flow-organism.lolo +0 -165
- package/behaviors/lolo/ui/marketing/organisms/ui-team-organism.lolo +0 -152
- package/behaviors/lolo/ui/marketing/templates/ui-about-page-template.lolo +0 -105
- package/behaviors/lolo/ui/marketing/templates/ui-feature-detail-page-template.lolo +0 -93
- package/behaviors/lolo/ui/marketing/templates/ui-landing-page-template.lolo +0 -144
- package/behaviors/lolo/ui/marketing/templates/ui-pricing-page-template.lolo +0 -89
- package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +0 -121
- package/behaviors/registry/ui/marketing/atoms/std-marketing-cta.orb +0 -360
- package/behaviors/registry/ui/marketing/atoms/std-marketing-features.orb +0 -305
- package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +0 -265
- package/behaviors/registry/ui/marketing/atoms/std-marketing-hero.orb +0 -424
- package/behaviors/registry/ui/marketing/atoms/std-marketing-nav.orb +0 -288
- package/behaviors/registry/ui/marketing/atoms/std-marketing-pricing.orb +0 -366
- package/behaviors/registry/ui/marketing/atoms/std-marketing-showcase.orb +0 -415
- package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +0 -152
- package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +0 -151
- package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +0 -221
- package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +0 -239
- package/behaviors/registry/ui/marketing/atoms/ui-article-section.orb +0 -176
- package/behaviors/registry/ui/marketing/atoms/ui-case-study-card.orb +0 -195
- package/behaviors/registry/ui/marketing/atoms/ui-community-links.orb +0 -254
- package/behaviors/registry/ui/marketing/atoms/ui-content-section.orb +0 -182
- package/behaviors/registry/ui/marketing/atoms/ui-cta-banner.orb +0 -254
- package/behaviors/registry/ui/marketing/atoms/ui-hero-section.orb +0 -345
- package/behaviors/registry/ui/marketing/atoms/ui-install-box.orb +0 -163
- package/behaviors/registry/ui/marketing/atoms/ui-marketing-footer.orb +0 -298
- package/behaviors/registry/ui/marketing/atoms/ui-marketing-stat-card.orb +0 -177
- package/behaviors/registry/ui/marketing/atoms/ui-pricing-card.orb +0 -237
- package/behaviors/registry/ui/marketing/atoms/ui-pricing-grid.orb +0 -313
- package/behaviors/registry/ui/marketing/atoms/ui-pull-quote.orb +0 -156
- package/behaviors/registry/ui/marketing/atoms/ui-service-catalog.orb +0 -205
- package/behaviors/registry/ui/marketing/atoms/ui-showcase-card.orb +0 -221
- package/behaviors/registry/ui/marketing/atoms/ui-split-section.orb +0 -239
- package/behaviors/registry/ui/marketing/atoms/ui-stats-grid.orb +0 -202
- package/behaviors/registry/ui/marketing/atoms/ui-step-flow.orb +0 -236
- package/behaviors/registry/ui/marketing/atoms/ui-tag-cloud.orb +0 -217
- package/behaviors/registry/ui/marketing/atoms/ui-team-card.orb +0 -186
- package/behaviors/registry/ui/marketing/organisms/ui-book-chapter-view.orb +0 -277
- package/behaviors/registry/ui/marketing/organisms/ui-book-cover-page.orb +0 -190
- package/behaviors/registry/ui/marketing/organisms/ui-book-nav-bar.orb +0 -183
- package/behaviors/registry/ui/marketing/organisms/ui-book-table-of-contents.orb +0 -286
- package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +0 -553
- package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +0 -507
- package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +0 -504
- package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +0 -635
- package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +0 -539
- package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +0 -542
- package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +0 -447
- package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +0 -505
- package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +0 -494
- package/behaviors/registry/ui/marketing/templates/ui-about-page-template.orb +0 -752
- package/behaviors/registry/ui/marketing/templates/ui-feature-detail-page-template.orb +0 -638
- package/behaviors/registry/ui/marketing/templates/ui-landing-page-template.orb +0 -1028
- package/behaviors/registry/ui/marketing/templates/ui-pricing-page-template.orb +0 -603
- /package/behaviors/lolo/ui/{marketing → core}/atoms/ui-animated-graphic.lolo +0 -0
- /package/behaviors/lolo/ui/{marketing → core}/atoms/ui-animated-reveal.lolo +0 -0
- /package/behaviors/lolo/ui/{marketing → core}/atoms/ui-pattern-tile.lolo +0 -0
- /package/behaviors/lolo/ui/{marketing/atoms → core/molecules}/ui-feature-card.lolo +0 -0
- /package/behaviors/lolo/ui/{marketing/atoms → core/molecules}/ui-geometric-pattern.lolo +0 -0
- /package/behaviors/lolo/ui/{marketing → core}/templates/ui-auth-layout.lolo +0 -0
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
app ui-about-page-template "1.0.0"
|
|
2
|
-
"AboutPageTemplate — UI factory (1:1 with the @almadar/ui about-page-template pattern)."
|
|
3
|
-
;; @pattern "about-page-template"
|
|
4
|
-
orbital AboutPageTemplateOrbital {
|
|
5
|
-
type AboutPageTemplateLoaded = Event { data : [AboutPageTemplateItem] } "AboutPageTemplate rows finished loading; payload.data holds the collection"
|
|
6
|
-
type AboutPageTemplateHero = {
|
|
7
|
-
id : string
|
|
8
|
-
tag : string
|
|
9
|
-
title : string!
|
|
10
|
-
titleAccent : string
|
|
11
|
-
subtitle : string!
|
|
12
|
-
primaryAction : AboutPageTemplateHeroPrimaryAction
|
|
13
|
-
secondaryAction : AboutPageTemplateHeroSecondaryAction
|
|
14
|
-
background : "dark" | "gradient" | "subtle"
|
|
15
|
-
}
|
|
16
|
-
type AboutPageTemplateHeroPrimaryAction = {
|
|
17
|
-
label : string!
|
|
18
|
-
href : string!
|
|
19
|
-
}
|
|
20
|
-
type AboutPageTemplateHeroSecondaryAction = {
|
|
21
|
-
label : string!
|
|
22
|
-
href : string!
|
|
23
|
-
}
|
|
24
|
-
type AboutPageTemplateArticlesItem = {
|
|
25
|
-
title : string!
|
|
26
|
-
content : string!
|
|
27
|
-
}
|
|
28
|
-
type AboutPageTemplateTeamItem = {
|
|
29
|
-
id : string!
|
|
30
|
-
name : string!
|
|
31
|
-
nameAr : string
|
|
32
|
-
role : string!
|
|
33
|
-
bio : string!
|
|
34
|
-
avatar : asset
|
|
35
|
-
}
|
|
36
|
-
type AboutPageTemplateCaseStudiesItem = {
|
|
37
|
-
id : string!
|
|
38
|
-
title : string!
|
|
39
|
-
description : string!
|
|
40
|
-
category : string!
|
|
41
|
-
categoryColor : string
|
|
42
|
-
href : string!
|
|
43
|
-
linkLabel : string
|
|
44
|
-
}
|
|
45
|
-
type AboutPageTemplateCtaAction = {
|
|
46
|
-
label : string!
|
|
47
|
-
href : string!
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
entity AboutPageTemplateItem [runtime] {
|
|
51
|
-
id : string!
|
|
52
|
-
hero : AboutPageTemplateHero = { id: "Id", tag: "Tag", title: "Title", titleAccent: "Title Accent", subtitle: "Subtitle", primaryAction: { label: "Label", href: "Href" }, secondaryAction: { label: "Label", href: "Href" }, background: dark }
|
|
53
|
-
articles : [AboutPageTemplateArticlesItem] = [{ title: "Title", content: "Content" }, { title: "Title 2", content: "Content 2" }]
|
|
54
|
-
team : [AboutPageTemplateTeamItem] = [{ id: "Id", name: "Name", nameAr: "Name Ar", role: "Role", bio: "Bio", avatar: "https://almadar-kflow-assets.web.app/shared/ui-visual-novel-board/default/portraits/guide.png" }, { id: "Id 2", name: "Name 2", nameAr: "Name Ar 2", role: "Role 2", bio: "Bio 2", avatar: "https://almadar-kflow-assets.web.app/shared/ui-visual-novel-board/default/portraits/guide.png" }]
|
|
55
|
-
caseStudies : [AboutPageTemplateCaseStudiesItem] = [{ id: "Id", title: "Title", description: "Description", category: "Category", categoryColor: "Category Color", href: "Href", linkLabel: "Link Label" }, { id: "Id 2", title: "Title 2", description: "Description 2", category: "Category 2", categoryColor: "Category Color 2", href: "Href 2", linkLabel: "Link Label 2" }]
|
|
56
|
-
ctaTitle : string = "Cta Title"
|
|
57
|
-
ctaAction : AboutPageTemplateCtaAction = { label: "Label", href: "Href" }
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
trait AboutPageTemplateRender -> @rebindable AboutPageTemplateItem [interaction, instance] {
|
|
61
|
-
initial: idle
|
|
62
|
-
|
|
63
|
-
state idle {
|
|
64
|
-
INIT -> idle when @config.selfFetch
|
|
65
|
-
(fetch AboutPageTemplateItem { emit: { success: AboutPageTemplateLoaded } })
|
|
66
|
-
(render-ui main {
|
|
67
|
-
entity: @entity
|
|
68
|
-
className: @config.className
|
|
69
|
-
type: about-page-template
|
|
70
|
-
})
|
|
71
|
-
INIT -> idle when (not @config.selfFetch)
|
|
72
|
-
(render-ui main {
|
|
73
|
-
entity: @entity
|
|
74
|
-
className: @config.className
|
|
75
|
-
type: about-page-template
|
|
76
|
-
})
|
|
77
|
-
AboutPageTemplateLoaded -> idle
|
|
78
|
-
(render-ui main {
|
|
79
|
-
entity: @payload.data
|
|
80
|
-
className: @config.className
|
|
81
|
-
type: about-page-template
|
|
82
|
-
})
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
emits {
|
|
86
|
-
AboutPageTemplateLoaded
|
|
87
|
-
@description "AboutPageTemplate rows finished loading; payload.data holds the collection."
|
|
88
|
-
@synonyms "loaded, fetched, retrieved"
|
|
89
|
-
@tier "essential"
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
config {
|
|
93
|
-
className : string
|
|
94
|
-
@label "Class Name"
|
|
95
|
-
@description "External styling override"
|
|
96
|
-
@tier "presentation"
|
|
97
|
-
selfFetch : boolean = true
|
|
98
|
-
@label "Fetch its own rows on mount?"
|
|
99
|
-
@description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
|
|
100
|
-
@tier "internal"
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
page "/about-page-template" as AboutPageTemplatePage -> AboutPageTemplateRender
|
|
105
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
app ui-feature-detail-page-template "1.0.0"
|
|
2
|
-
"FeatureDetailPageTemplate — UI factory (1:1 with the @almadar/ui feature-detail-page-template pattern)."
|
|
3
|
-
;; @pattern "feature-detail-page-template"
|
|
4
|
-
orbital FeatureDetailPageTemplateOrbital {
|
|
5
|
-
type FeatureDetailPageTemplateLoaded = Event { data : [FeatureDetailPageTemplateItem] } "FeatureDetailPageTemplate rows finished loading; payload.data holds the collection"
|
|
6
|
-
type FeatureDetailPageTemplateHero = {
|
|
7
|
-
id : string
|
|
8
|
-
tag : string
|
|
9
|
-
title : string!
|
|
10
|
-
titleAccent : string
|
|
11
|
-
subtitle : string!
|
|
12
|
-
primaryAction : FeatureDetailPageTemplateHeroPrimaryAction
|
|
13
|
-
secondaryAction : FeatureDetailPageTemplateHeroSecondaryAction
|
|
14
|
-
background : "dark" | "gradient" | "subtle"
|
|
15
|
-
}
|
|
16
|
-
type FeatureDetailPageTemplateHeroPrimaryAction = {
|
|
17
|
-
label : string!
|
|
18
|
-
href : string!
|
|
19
|
-
}
|
|
20
|
-
type FeatureDetailPageTemplateHeroSecondaryAction = {
|
|
21
|
-
label : string!
|
|
22
|
-
href : string!
|
|
23
|
-
}
|
|
24
|
-
type FeatureDetailPageTemplateSectionsItem = {
|
|
25
|
-
title : string!
|
|
26
|
-
description : string!
|
|
27
|
-
bullets : [string]
|
|
28
|
-
image : FeatureDetailPageTemplateSectionsItemImage
|
|
29
|
-
imagePosition : "left" | "right"
|
|
30
|
-
}
|
|
31
|
-
type FeatureDetailPageTemplateSectionsItemImage = {
|
|
32
|
-
src : asset!
|
|
33
|
-
alt : string!
|
|
34
|
-
}
|
|
35
|
-
type FeatureDetailPageTemplateCtaAction = {
|
|
36
|
-
label : string!
|
|
37
|
-
href : string!
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
entity FeatureDetailPageTemplateItem [runtime] {
|
|
41
|
-
id : string!
|
|
42
|
-
hero : FeatureDetailPageTemplateHero = { id: "Id", tag: "Tag", title: "Title", titleAccent: "Title Accent", subtitle: "Subtitle", primaryAction: { label: "Label", href: "Href" }, secondaryAction: { label: "Label", href: "Href" }, background: dark }
|
|
43
|
-
sections : [FeatureDetailPageTemplateSectionsItem] = [{ title: "Title", description: "Description", bullets: ["Item", "Item 2"], image: { src: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", alt: "Alt" }, imagePosition: left }, { title: "Title 2", description: "Description 2", bullets: ["Item", "Item 2"], image: { src: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", alt: "Alt 2" }, imagePosition: right }]
|
|
44
|
-
ctaTitle : string = "Cta Title"
|
|
45
|
-
ctaAction : FeatureDetailPageTemplateCtaAction = { label: "Label", href: "Href" }
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
trait FeatureDetailPageTemplateRender -> @rebindable FeatureDetailPageTemplateItem [interaction, instance] {
|
|
49
|
-
initial: idle
|
|
50
|
-
|
|
51
|
-
state idle {
|
|
52
|
-
INIT -> idle when @config.selfFetch
|
|
53
|
-
(fetch FeatureDetailPageTemplateItem { emit: { success: FeatureDetailPageTemplateLoaded } })
|
|
54
|
-
(render-ui main {
|
|
55
|
-
entity: @entity
|
|
56
|
-
className: @config.className
|
|
57
|
-
type: feature-detail-page-template
|
|
58
|
-
})
|
|
59
|
-
INIT -> idle when (not @config.selfFetch)
|
|
60
|
-
(render-ui main {
|
|
61
|
-
entity: @entity
|
|
62
|
-
className: @config.className
|
|
63
|
-
type: feature-detail-page-template
|
|
64
|
-
})
|
|
65
|
-
FeatureDetailPageTemplateLoaded -> idle
|
|
66
|
-
(render-ui main {
|
|
67
|
-
entity: @payload.data
|
|
68
|
-
className: @config.className
|
|
69
|
-
type: feature-detail-page-template
|
|
70
|
-
})
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
emits {
|
|
74
|
-
FeatureDetailPageTemplateLoaded
|
|
75
|
-
@description "FeatureDetailPageTemplate rows finished loading; payload.data holds the collection."
|
|
76
|
-
@synonyms "loaded, fetched, retrieved"
|
|
77
|
-
@tier "essential"
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
config {
|
|
81
|
-
className : string
|
|
82
|
-
@label "Class Name"
|
|
83
|
-
@description "External styling override"
|
|
84
|
-
@tier "presentation"
|
|
85
|
-
selfFetch : boolean = true
|
|
86
|
-
@label "Fetch its own rows on mount?"
|
|
87
|
-
@description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
|
|
88
|
-
@tier "internal"
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
page "/feature-detail-page-template" as FeatureDetailPageTemplatePage -> FeatureDetailPageTemplateRender
|
|
93
|
-
}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
app ui-landing-page-template "1.0.0"
|
|
2
|
-
"LandingPageTemplate — UI factory (1:1 with the @almadar/ui landing-page-template pattern)."
|
|
3
|
-
;; @pattern "landing-page-template"
|
|
4
|
-
orbital LandingPageTemplateOrbital {
|
|
5
|
-
type LandingPageTemplateLoaded = Event { data : [LandingPageTemplateItem] } "LandingPageTemplate rows finished loading; payload.data holds the collection"
|
|
6
|
-
type LandingPageTemplateHero = {
|
|
7
|
-
id : string
|
|
8
|
-
tag : string
|
|
9
|
-
title : string!
|
|
10
|
-
titleAccent : string
|
|
11
|
-
subtitle : string!
|
|
12
|
-
primaryAction : LandingPageTemplateHeroPrimaryAction
|
|
13
|
-
secondaryAction : LandingPageTemplateHeroSecondaryAction
|
|
14
|
-
installCommand : string
|
|
15
|
-
image : LandingPageTemplateHeroImage
|
|
16
|
-
imagePosition : "below" | "right" | "background"
|
|
17
|
-
background : "dark" | "gradient" | "subtle"
|
|
18
|
-
}
|
|
19
|
-
type LandingPageTemplateHeroPrimaryAction = {
|
|
20
|
-
label : string!
|
|
21
|
-
href : string!
|
|
22
|
-
}
|
|
23
|
-
type LandingPageTemplateHeroSecondaryAction = {
|
|
24
|
-
label : string!
|
|
25
|
-
href : string!
|
|
26
|
-
}
|
|
27
|
-
type LandingPageTemplateHeroImage = {
|
|
28
|
-
src : asset!
|
|
29
|
-
alt : string!
|
|
30
|
-
}
|
|
31
|
-
type LandingPageTemplateFeaturesItem = {
|
|
32
|
-
id : string
|
|
33
|
-
icon : icon
|
|
34
|
-
title : string!
|
|
35
|
-
description : string!
|
|
36
|
-
href : string
|
|
37
|
-
}
|
|
38
|
-
type LandingPageTemplateStatsItem = {
|
|
39
|
-
id : string
|
|
40
|
-
value : string!
|
|
41
|
-
label : string!
|
|
42
|
-
}
|
|
43
|
-
type LandingPageTemplateStepsItem = {
|
|
44
|
-
id : string
|
|
45
|
-
title : string!
|
|
46
|
-
description : string!
|
|
47
|
-
icon : icon
|
|
48
|
-
}
|
|
49
|
-
type LandingPageTemplateShowcaseItem = {
|
|
50
|
-
id : string!
|
|
51
|
-
title : string!
|
|
52
|
-
description : string
|
|
53
|
-
image : LandingPageTemplateShowcaseItemImage!
|
|
54
|
-
href : string
|
|
55
|
-
badge : string
|
|
56
|
-
}
|
|
57
|
-
type LandingPageTemplateShowcaseItemImage = {
|
|
58
|
-
src : asset!
|
|
59
|
-
alt : string!
|
|
60
|
-
}
|
|
61
|
-
type LandingPageTemplateCtaPrimaryAction = {
|
|
62
|
-
label : string!
|
|
63
|
-
href : string!
|
|
64
|
-
}
|
|
65
|
-
type LandingPageTemplateCtaSecondaryAction = {
|
|
66
|
-
label : string!
|
|
67
|
-
href : string!
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
entity LandingPageTemplateItem [runtime] {
|
|
71
|
-
id : string!
|
|
72
|
-
hero : LandingPageTemplateHero = { id: "Id", tag: "Tag", title: "Title", titleAccent: "Title Accent", subtitle: "Subtitle", primaryAction: { label: "Label", href: "Href" }, secondaryAction: { label: "Label", href: "Href" }, installCommand: "Install Command", image: { src: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", alt: "Alt" }, imagePosition: below, background: dark }
|
|
73
|
-
features : [LandingPageTemplateFeaturesItem] = [{ id: "Id", icon: "circle", title: "Title", description: "Description", href: "Href" }, { id: "Id 2", icon: "circle", title: "Title 2", description: "Description 2", href: "Href 2" }]
|
|
74
|
-
stats : [LandingPageTemplateStatsItem] = [{ id: "Id", value: "Value", label: "Label" }, { id: "Id 2", value: "Value 2", label: "Label 2" }]
|
|
75
|
-
steps : [LandingPageTemplateStepsItem] = [{ id: "Id", title: "Title", description: "Description", icon: "circle" }, { id: "Id 2", title: "Title 2", description: "Description 2", icon: "circle" }]
|
|
76
|
-
showcase : [LandingPageTemplateShowcaseItem] = [{ id: "Id", title: "Title", description: "Description", image: { src: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", alt: "Alt" }, href: "Href", badge: "Badge" }, { id: "Id 2", title: "Title 2", description: "Description 2", image: { src: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", alt: "Alt 2" }, href: "Href 2", badge: "Badge 2" }]
|
|
77
|
-
ctaTitle : string = "Cta Title"
|
|
78
|
-
ctaSubtitle : string = "Cta Subtitle"
|
|
79
|
-
ctaPrimaryAction : LandingPageTemplateCtaPrimaryAction = { label: "Label", href: "Href" }
|
|
80
|
-
ctaSecondaryAction : LandingPageTemplateCtaSecondaryAction = { label: "Label", href: "Href" }
|
|
81
|
-
communityGithub : string = "Community Github"
|
|
82
|
-
communityDiscord : string = "Community Discord"
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
trait LandingPageTemplateRender -> @rebindable LandingPageTemplateItem [interaction, instance] {
|
|
86
|
-
initial: idle
|
|
87
|
-
|
|
88
|
-
state idle {
|
|
89
|
-
INIT -> idle when @config.selfFetch
|
|
90
|
-
(fetch LandingPageTemplateItem { emit: { success: LandingPageTemplateLoaded } })
|
|
91
|
-
(render-ui main {
|
|
92
|
-
entity: @entity
|
|
93
|
-
className: @config.className
|
|
94
|
-
variant: @config.variant
|
|
95
|
-
featureColumns: @config.featureColumns
|
|
96
|
-
type: landing-page-template
|
|
97
|
-
})
|
|
98
|
-
INIT -> idle when (not @config.selfFetch)
|
|
99
|
-
(render-ui main {
|
|
100
|
-
entity: @entity
|
|
101
|
-
className: @config.className
|
|
102
|
-
variant: @config.variant
|
|
103
|
-
featureColumns: @config.featureColumns
|
|
104
|
-
type: landing-page-template
|
|
105
|
-
})
|
|
106
|
-
LandingPageTemplateLoaded -> idle
|
|
107
|
-
(render-ui main {
|
|
108
|
-
entity: @payload.data
|
|
109
|
-
className: @config.className
|
|
110
|
-
variant: @config.variant
|
|
111
|
-
featureColumns: @config.featureColumns
|
|
112
|
-
type: landing-page-template
|
|
113
|
-
})
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
emits {
|
|
117
|
-
LandingPageTemplateLoaded
|
|
118
|
-
@description "LandingPageTemplate rows finished loading; payload.data holds the collection."
|
|
119
|
-
@synonyms "loaded, fetched, retrieved"
|
|
120
|
-
@tier "essential"
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
config {
|
|
124
|
-
className : string
|
|
125
|
-
@label "Class Name"
|
|
126
|
-
@description "External styling override"
|
|
127
|
-
@tier "presentation"
|
|
128
|
-
variant : "product" | "service" | "platform" = product
|
|
129
|
-
@label "Variant"
|
|
130
|
-
@description "variant prop"
|
|
131
|
-
@tier "presentation"
|
|
132
|
-
featureColumns : number = 3
|
|
133
|
-
@label "Feature Columns"
|
|
134
|
-
@description "featureColumns prop"
|
|
135
|
-
@tier "presentation"
|
|
136
|
-
selfFetch : boolean = true
|
|
137
|
-
@label "Fetch its own rows on mount?"
|
|
138
|
-
@description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
|
|
139
|
-
@tier "internal"
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
page "/landing-page-template" as LandingPageTemplatePage -> LandingPageTemplateRender
|
|
144
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
app ui-pricing-page-template "1.0.0"
|
|
2
|
-
"PricingPageTemplate — UI factory (1:1 with the @almadar/ui pricing-page-template pattern)."
|
|
3
|
-
;; @pattern "pricing-page-template"
|
|
4
|
-
orbital PricingPageTemplateOrbital {
|
|
5
|
-
type PricingPageTemplateLoaded = Event { data : [PricingPageTemplateItem] } "PricingPageTemplate rows finished loading; payload.data holds the collection"
|
|
6
|
-
type PricingPageTemplateHero = {
|
|
7
|
-
id : string
|
|
8
|
-
tag : string
|
|
9
|
-
title : string!
|
|
10
|
-
titleAccent : string
|
|
11
|
-
subtitle : string!
|
|
12
|
-
background : "dark" | "gradient" | "subtle"
|
|
13
|
-
}
|
|
14
|
-
type PricingPageTemplatePlansItem = {
|
|
15
|
-
id : string
|
|
16
|
-
name : string!
|
|
17
|
-
price : string!
|
|
18
|
-
description : string
|
|
19
|
-
features : [string]!
|
|
20
|
-
actionLabel : string!
|
|
21
|
-
actionHref : string!
|
|
22
|
-
highlighted : boolean
|
|
23
|
-
badge : string
|
|
24
|
-
}
|
|
25
|
-
type PricingPageTemplateFaqItem = {
|
|
26
|
-
question : string!
|
|
27
|
-
answer : string!
|
|
28
|
-
}
|
|
29
|
-
type PricingPageTemplateCtaAction = {
|
|
30
|
-
label : string!
|
|
31
|
-
href : string!
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
entity PricingPageTemplateItem [runtime] {
|
|
35
|
-
id : string!
|
|
36
|
-
hero : PricingPageTemplateHero = { id: "Id", tag: "Tag", title: "Title", titleAccent: "Title Accent", subtitle: "Subtitle", background: dark }
|
|
37
|
-
plans : [PricingPageTemplatePlansItem] = [{ id: "Id", name: "Name", price: "Price", description: "Description", features: ["Item", "Item 2"], actionLabel: "Action Label", actionHref: "Action Href", highlighted: false, badge: "Badge" }, { id: "Id 2", name: "Name 2", price: "Price 2", description: "Description 2", features: ["Item", "Item 2"], actionLabel: "Action Label 2", actionHref: "Action Href 2", highlighted: true, badge: "Badge 2" }]
|
|
38
|
-
faq : [PricingPageTemplateFaqItem] = [{ question: "Question", answer: "Answer" }, { question: "Question 2", answer: "Answer 2" }]
|
|
39
|
-
ctaTitle : string = "Cta Title"
|
|
40
|
-
ctaSubtitle : string = "Cta Subtitle"
|
|
41
|
-
ctaAction : PricingPageTemplateCtaAction = { label: "Label", href: "Href" }
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
trait PricingPageTemplateRender -> @rebindable PricingPageTemplateItem [interaction, instance] {
|
|
45
|
-
initial: idle
|
|
46
|
-
|
|
47
|
-
state idle {
|
|
48
|
-
INIT -> idle when @config.selfFetch
|
|
49
|
-
(fetch PricingPageTemplateItem { emit: { success: PricingPageTemplateLoaded } })
|
|
50
|
-
(render-ui main {
|
|
51
|
-
entity: @entity
|
|
52
|
-
className: @config.className
|
|
53
|
-
type: pricing-page-template
|
|
54
|
-
})
|
|
55
|
-
INIT -> idle when (not @config.selfFetch)
|
|
56
|
-
(render-ui main {
|
|
57
|
-
entity: @entity
|
|
58
|
-
className: @config.className
|
|
59
|
-
type: pricing-page-template
|
|
60
|
-
})
|
|
61
|
-
PricingPageTemplateLoaded -> idle
|
|
62
|
-
(render-ui main {
|
|
63
|
-
entity: @payload.data
|
|
64
|
-
className: @config.className
|
|
65
|
-
type: pricing-page-template
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
emits {
|
|
70
|
-
PricingPageTemplateLoaded
|
|
71
|
-
@description "PricingPageTemplate rows finished loading; payload.data holds the collection."
|
|
72
|
-
@synonyms "loaded, fetched, retrieved"
|
|
73
|
-
@tier "essential"
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
config {
|
|
77
|
-
className : string
|
|
78
|
-
@label "Class Name"
|
|
79
|
-
@description "External styling override"
|
|
80
|
-
@tier "presentation"
|
|
81
|
-
selfFetch : boolean = true
|
|
82
|
-
@label "Fetch its own rows on mount?"
|
|
83
|
-
@description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
|
|
84
|
-
@tier "internal"
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
page "/pricing-page-template" as PricingPageTemplatePage -> PricingPageTemplateRender
|
|
89
|
-
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"description": "Article section atom for marketing pages. Renders a centered prose block with title and rich content. Pick for about pages, mission statements, and blog-style content.",
|
|
3
|
-
"ledger": {
|
|
4
|
-
"entries": {
|
|
5
|
-
"ent_01KXG053GJBVCZEB9SV11MTCSP": {
|
|
6
|
-
"bakedName": "ArticleItem",
|
|
7
|
-
"curName": "ArticleItem",
|
|
8
|
-
"id": "ent_01KXG053GJBVCZEB9SV11MTCSP",
|
|
9
|
-
"kind": "entity",
|
|
10
|
-
"owner": "workspace",
|
|
11
|
-
"renames": []
|
|
12
|
-
},
|
|
13
|
-
"orb_01KXG053GJX6XCSEP3NANGH5DZ": {
|
|
14
|
-
"bakedName": "ArticleItemOrbital",
|
|
15
|
-
"curName": "ArticleItemOrbital",
|
|
16
|
-
"id": "orb_01KXG053GJX6XCSEP3NANGH5DZ",
|
|
17
|
-
"kind": "orbital",
|
|
18
|
-
"owner": "workspace",
|
|
19
|
-
"renames": []
|
|
20
|
-
},
|
|
21
|
-
"pag_01KXG053GJKQPQ9X9W1K6D1JPX": {
|
|
22
|
-
"bakedName": "ArticleItemArticlePage",
|
|
23
|
-
"curName": "ArticleItemArticlePage",
|
|
24
|
-
"id": "pag_01KXG053GJKQPQ9X9W1K6D1JPX",
|
|
25
|
-
"kind": "page",
|
|
26
|
-
"owner": "workspace",
|
|
27
|
-
"renames": []
|
|
28
|
-
},
|
|
29
|
-
"trt_01KXZ451KE6S5YG9JAMQHD6FMD": {
|
|
30
|
-
"bakedName": "ArticleItemArticle",
|
|
31
|
-
"curName": "ArticleItemArticle",
|
|
32
|
-
"id": "trt_01KXZ451KE6S5YG9JAMQHD6FMD",
|
|
33
|
-
"kind": "trait",
|
|
34
|
-
"owner": "workspace",
|
|
35
|
-
"renames": []
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
"schemaVersion": 1
|
|
39
|
-
},
|
|
40
|
-
"name": "std-marketing-article",
|
|
41
|
-
"orbitals": [
|
|
42
|
-
{
|
|
43
|
-
"entity": {
|
|
44
|
-
"fields": [
|
|
45
|
-
{
|
|
46
|
-
"name": "id",
|
|
47
|
-
"required": true,
|
|
48
|
-
"type": "string"
|
|
49
|
-
}
|
|
50
|
-
],
|
|
51
|
-
"id": "ent_01KXG053GJBVCZEB9SV11MTCSP",
|
|
52
|
-
"name": "ArticleItem",
|
|
53
|
-
"persistence": "runtime"
|
|
54
|
-
},
|
|
55
|
-
"id": "orb_01KXG053GJX6XCSEP3NANGH5DZ",
|
|
56
|
-
"name": "ArticleItemOrbital",
|
|
57
|
-
"pages": [
|
|
58
|
-
{
|
|
59
|
-
"id": "pag_01KXG053GJKQPQ9X9W1K6D1JPX",
|
|
60
|
-
"name": "ArticleItemArticlePage",
|
|
61
|
-
"path": "/article",
|
|
62
|
-
"traits": [
|
|
63
|
-
{
|
|
64
|
-
"ref": "ArticleItemArticle",
|
|
65
|
-
"refId": "trt_01KXZ451KE6S5YG9JAMQHD6FMD"
|
|
66
|
-
}
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
],
|
|
70
|
-
"traits": [
|
|
71
|
-
{
|
|
72
|
-
"config": {
|
|
73
|
-
"children": {
|
|
74
|
-
"default": [
|
|
75
|
-
{
|
|
76
|
-
"content": "@config.content",
|
|
77
|
-
"type": "typography"
|
|
78
|
-
}
|
|
79
|
-
],
|
|
80
|
-
"type": "unknown"
|
|
81
|
-
},
|
|
82
|
-
"content": {
|
|
83
|
-
"default": "We believe building software should be as natural as describing it.",
|
|
84
|
-
"description": "Body text rendered as markdown",
|
|
85
|
-
"label": "Content",
|
|
86
|
-
"tier": "presentation",
|
|
87
|
-
"type": "string"
|
|
88
|
-
},
|
|
89
|
-
"maxWidth": {
|
|
90
|
-
"default": "lg",
|
|
91
|
-
"description": "Content width constraint",
|
|
92
|
-
"label": "Max Width",
|
|
93
|
-
"tier": "presentation",
|
|
94
|
-
"type": "string"
|
|
95
|
-
},
|
|
96
|
-
"title": {
|
|
97
|
-
"default": "Our Mission",
|
|
98
|
-
"description": "Section headline",
|
|
99
|
-
"label": "Title",
|
|
100
|
-
"tier": "presentation",
|
|
101
|
-
"type": "string"
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
"id": "trt_01KXZ451KE6S5YG9JAMQHD6FMD",
|
|
105
|
-
"linkedEntity": "ArticleItem",
|
|
106
|
-
"linkedEntityId": "ent_01KXG053GJBVCZEB9SV11MTCSP",
|
|
107
|
-
"name": "ArticleItemArticle",
|
|
108
|
-
"ref": "ArticleSection.traits.ArticleSectionRender"
|
|
109
|
-
}
|
|
110
|
-
],
|
|
111
|
-
"uses": [
|
|
112
|
-
{
|
|
113
|
-
"as": "ArticleSection",
|
|
114
|
-
"from": "std/behaviors/ui-article-section"
|
|
115
|
-
}
|
|
116
|
-
]
|
|
117
|
-
}
|
|
118
|
-
],
|
|
119
|
-
"schemaVersion": 1,
|
|
120
|
-
"version": "1.0.0"
|
|
121
|
-
}
|