@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,86 +0,0 @@
|
|
|
1
|
-
app std-marketing-nav "1.0.0"
|
|
2
|
-
"Marketing navigation atom for marketing pages. Renders a sticky header with brand logo and nav links. Pick for site-wide navigation on static pages."
|
|
3
|
-
;; Config-driven navigation using the `header` marketing pattern.
|
|
4
|
-
;; Items are declared as an array of { label, href } objects.
|
|
5
|
-
;; The atom emits NAV_CLICK when a link is clicked.
|
|
6
|
-
orbital NavItemOrbital {
|
|
7
|
-
type NavLink = { label : string!, href : string! }
|
|
8
|
-
|
|
9
|
-
entity NavItem [runtime] {
|
|
10
|
-
id : string!
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
trait NavItemNav -> NavItem [interaction, instance] {
|
|
14
|
-
initial: idle
|
|
15
|
-
|
|
16
|
-
state idle {
|
|
17
|
-
INIT -> idle
|
|
18
|
-
(render-ui main {
|
|
19
|
-
actions: {
|
|
20
|
-
label: @config.primaryActionLabel
|
|
21
|
-
type: button
|
|
22
|
-
variant: primary
|
|
23
|
-
}
|
|
24
|
-
brandName: @config.brandName
|
|
25
|
-
logoSrc: @config.logoSrc
|
|
26
|
-
navigationItems: @config.items
|
|
27
|
-
type: header
|
|
28
|
-
})
|
|
29
|
-
NAV_CLICK -> idle
|
|
30
|
-
(emit NAV_CLICK { href: ?href, label: ?label })
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
emits {
|
|
34
|
-
NAV_CLICK -> external {
|
|
35
|
-
href : string
|
|
36
|
-
label : string
|
|
37
|
-
}
|
|
38
|
-
@description "Indicates a navigation link was selected."
|
|
39
|
-
@synonyms "select, choose, activate"
|
|
40
|
-
@tier "domain"
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
listens {
|
|
44
|
-
NAV_CLICK {
|
|
45
|
-
href : string
|
|
46
|
-
label : string
|
|
47
|
-
}
|
|
48
|
-
@description "A navigation link was selected."
|
|
49
|
-
@synonyms "select, choose, activate"
|
|
50
|
-
@tier "domain"
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
config {
|
|
54
|
-
brandName : string = Almadar
|
|
55
|
-
@label "Brand Name"
|
|
56
|
-
@tier "presentation"
|
|
57
|
-
logoSrc : string = ""
|
|
58
|
-
@label "Logo Source"
|
|
59
|
-
@tier "presentation"
|
|
60
|
-
items : [NavLink] = [{
|
|
61
|
-
href: "#product"
|
|
62
|
-
label: Product
|
|
63
|
-
}, {
|
|
64
|
-
href: "#pricing"
|
|
65
|
-
label: Pricing
|
|
66
|
-
}, {
|
|
67
|
-
href: "#about"
|
|
68
|
-
label: About
|
|
69
|
-
}, {
|
|
70
|
-
href: "#docs"
|
|
71
|
-
label: Docs
|
|
72
|
-
}]
|
|
73
|
-
@label "Navigation Items"
|
|
74
|
-
@description "Array of nav links"
|
|
75
|
-
@tier "presentation"
|
|
76
|
-
primaryActionLabel : string = "Get Started"
|
|
77
|
-
@label "Primary Action Label"
|
|
78
|
-
@tier "presentation"
|
|
79
|
-
primaryActionHref : string = "#"
|
|
80
|
-
@label "Primary Action Link"
|
|
81
|
-
@tier "presentation"
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
page "/nav" as NavItemNavPage -> NavItemNav
|
|
86
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
app std-marketing-pricing "1.0.0"
|
|
2
|
-
"Pricing grid atom for marketing pages. Renders tiered pricing cards with plans, features, and CTAs. Pick for SaaS pricing pages and subscription showcases."
|
|
3
|
-
;; Config-driven pricing grid using the `pricing-grid` marketing pattern.
|
|
4
|
-
;; Plans are declared as an array of { name, price, description, features, action, highlighted, badge } objects.
|
|
5
|
-
;; The atom emits PLAN_SELECT when a plan's action button is clicked.
|
|
6
|
-
orbital PricingItemOrbital {
|
|
7
|
-
type PricingPlan = { name : string!, price : string!, description : string, features : [string]!, action : { label : string!, href : string! }!, highlighted : boolean, badge : string }
|
|
8
|
-
|
|
9
|
-
entity PricingItem [runtime] {
|
|
10
|
-
id : string!
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
trait PricingItemPricing -> PricingItem [interaction, instance] {
|
|
14
|
-
initial: idle
|
|
15
|
-
|
|
16
|
-
state idle {
|
|
17
|
-
INIT -> idle
|
|
18
|
-
(render-ui main { plans: @config.plans, type: pricing-grid })
|
|
19
|
-
PLAN_SELECT -> idle
|
|
20
|
-
(emit PLAN_SELECT { href: ?href, plan: ?plan })
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
emits {
|
|
24
|
-
PLAN_SELECT -> external {
|
|
25
|
-
plan : string
|
|
26
|
-
href : string
|
|
27
|
-
}
|
|
28
|
-
@description "Indicates a pricing plan has been chosen."
|
|
29
|
-
@synonyms "select, choose, pick, activate"
|
|
30
|
-
@tier "domain"
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
listens {
|
|
34
|
-
PLAN_SELECT {
|
|
35
|
-
plan : string
|
|
36
|
-
href : string
|
|
37
|
-
}
|
|
38
|
-
@description "A pricing plan has been chosen by the user."
|
|
39
|
-
@synonyms "select, choose, activate, subscribe"
|
|
40
|
-
@tier "domain"
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
config {
|
|
44
|
-
plans : [PricingPlan] = [{
|
|
45
|
-
action: {
|
|
46
|
-
href: "#"
|
|
47
|
-
label: "Get Started"
|
|
48
|
-
}
|
|
49
|
-
badge: ""
|
|
50
|
-
description: "For individuals and small projects."
|
|
51
|
-
features: ["1 project", "Community support", "Basic analytics"]
|
|
52
|
-
highlighted: false
|
|
53
|
-
name: Starter
|
|
54
|
-
price: "$0"
|
|
55
|
-
}, {
|
|
56
|
-
action: {
|
|
57
|
-
href: "#"
|
|
58
|
-
label: "Start Trial"
|
|
59
|
-
}
|
|
60
|
-
badge: "Most Popular"
|
|
61
|
-
description: "For growing teams that need more power."
|
|
62
|
-
features: ["Unlimited projects", "Priority support", "Advanced analytics", "Custom domains"]
|
|
63
|
-
highlighted: true
|
|
64
|
-
name: Pro
|
|
65
|
-
price: "$49"
|
|
66
|
-
}, {
|
|
67
|
-
action: {
|
|
68
|
-
href: "#"
|
|
69
|
-
label: "Contact Sales"
|
|
70
|
-
}
|
|
71
|
-
badge: ""
|
|
72
|
-
description: "For organizations with advanced needs."
|
|
73
|
-
features: ["Dedicated infra", "SLA guarantee", "SSO & SAML", "Audit logs", "Custom contracts"]
|
|
74
|
-
highlighted: false
|
|
75
|
-
name: Enterprise
|
|
76
|
-
price: Custom
|
|
77
|
-
}]
|
|
78
|
-
@label "Pricing Plans"
|
|
79
|
-
@description "Array of pricing tiers"
|
|
80
|
-
@tier "domain"
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
page "/pricing" as PricingItemPricingPage -> PricingItemPricing
|
|
85
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
app std-marketing-showcase "1.0.0"
|
|
2
|
-
"Showcase grid atom for marketing pages. Renders a grid of portfolio or product showcase cards with images, badges, and descriptions. Pick for product galleries and portfolio sections."
|
|
3
|
-
;; Config-driven showcase using the `showcase-organism` marketing pattern.
|
|
4
|
-
;; Items are declared as an array of { title, description, image, href, badge, accentColor } objects.
|
|
5
|
-
;; The atom emits SHOWCASE_CLICK when a card with an href is clicked.
|
|
6
|
-
orbital ShowcaseItemOrbital {
|
|
7
|
-
type ShowcaseCard = { id : string!, title : string!, description : string, image : { src : string!, alt : string! }!, href : string, badge : string, accentColor : string }
|
|
8
|
-
|
|
9
|
-
entity ShowcaseItem [runtime] {
|
|
10
|
-
id : string!
|
|
11
|
-
items : [ShowcaseCard] @description "A collection of items to display in a grid." @synonyms "elements, entries, records" = []
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
trait ShowcaseItemShowcase -> ShowcaseItem [interaction, instance] {
|
|
15
|
-
initial: idle
|
|
16
|
-
|
|
17
|
-
state idle {
|
|
18
|
-
INIT -> idle
|
|
19
|
-
(set @entity.items @config.items)
|
|
20
|
-
(render-ui main { entity: @entity.items, type: showcase-organism })
|
|
21
|
-
SHOWCASE_CLICK -> idle
|
|
22
|
-
(emit SHOWCASE_CLICK { id: ?id, title: ?title })
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
emits {
|
|
26
|
-
SHOWCASE_CLICK -> external {
|
|
27
|
-
id : string
|
|
28
|
-
title : string
|
|
29
|
-
}
|
|
30
|
-
@description "Signals a user clicked on a showcase item."
|
|
31
|
-
@synonyms "select, tap, activate"
|
|
32
|
-
@tier "domain"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
listens {
|
|
36
|
-
SHOWCASE_CLICK {
|
|
37
|
-
id : string
|
|
38
|
-
title : string
|
|
39
|
-
}
|
|
40
|
-
@description "A grid item was selected or activated."
|
|
41
|
-
@synonyms "select, activate, tap, press"
|
|
42
|
-
@tier "domain"
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
config {
|
|
46
|
-
items : [ShowcaseCard] = [{
|
|
47
|
-
accentColor: ""
|
|
48
|
-
badge: New
|
|
49
|
-
description: "Real-time analytics at a glance."
|
|
50
|
-
href: ""
|
|
51
|
-
id: "1"
|
|
52
|
-
image: {
|
|
53
|
-
alt: "Dashboard preview"
|
|
54
|
-
src: ""
|
|
55
|
-
}
|
|
56
|
-
title: Dashboard
|
|
57
|
-
}, {
|
|
58
|
-
accentColor: ""
|
|
59
|
-
badge: ""
|
|
60
|
-
description: "GraphQL and REST in one click."
|
|
61
|
-
href: ""
|
|
62
|
-
id: "2"
|
|
63
|
-
image: {
|
|
64
|
-
alt: "API docs preview"
|
|
65
|
-
src: ""
|
|
66
|
-
}
|
|
67
|
-
title: API
|
|
68
|
-
}, {
|
|
69
|
-
accentColor: ""
|
|
70
|
-
badge: Beta
|
|
71
|
-
description: "Native apps without native code."
|
|
72
|
-
href: ""
|
|
73
|
-
id: "3"
|
|
74
|
-
image: {
|
|
75
|
-
alt: "Mobile app preview"
|
|
76
|
-
src: ""
|
|
77
|
-
}
|
|
78
|
-
title: Mobile
|
|
79
|
-
}]
|
|
80
|
-
@label "Showcase Items"
|
|
81
|
-
@description "Array of showcase cards"
|
|
82
|
-
@tier "presentation"
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
page "/showcase" as ShowcaseItemShowcasePage -> ShowcaseItemShowcase
|
|
87
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
app std-marketing-split "1.0.0"
|
|
2
|
-
"Split section atom for marketing pages. Renders a two-column layout with text and image alternating sides. Pick for feature deep-dives and alternating content sections."
|
|
3
|
-
;; Config-driven split section using the `split-section` marketing pattern.
|
|
4
|
-
;; The atom renders immediately on INIT with no fetch required.
|
|
5
|
-
orbital SplitItemOrbital {
|
|
6
|
-
uses SplitSection from "std/behaviors/ui-split-section"
|
|
7
|
-
|
|
8
|
-
entity SplitItem [runtime] {
|
|
9
|
-
id : string!
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
trait SplitItemSplit = SplitSection.traits.SplitSectionRender -> SplitItem {
|
|
13
|
-
config {
|
|
14
|
-
background: @config.background
|
|
15
|
-
bullets: @config.bullets
|
|
16
|
-
description: @config.description
|
|
17
|
-
image: { alt: @config.imageAlt, src: @config.imageSrc }
|
|
18
|
-
imagePosition: @config.imagePosition
|
|
19
|
-
title: @config.title
|
|
20
|
-
title : string = "Powerful under the hood"
|
|
21
|
-
@label "Title"
|
|
22
|
-
@description "Section headline"
|
|
23
|
-
@tier "presentation"
|
|
24
|
-
description : string = "Everything you need to build, deploy, and scale."
|
|
25
|
-
@label "Description"
|
|
26
|
-
@description "Body text"
|
|
27
|
-
@tier "presentation"
|
|
28
|
-
bullets : [string] = ["Instant deployments", Auto-scaling, "Global CDN"]
|
|
29
|
-
@label "Bullets"
|
|
30
|
-
@description "Feature bullet points"
|
|
31
|
-
@tier "presentation"
|
|
32
|
-
imageSrc : string = ""
|
|
33
|
-
@label "Image Source"
|
|
34
|
-
@tier "presentation"
|
|
35
|
-
imageAlt : string = ""
|
|
36
|
-
@label "Image Alt Text"
|
|
37
|
-
@tier "presentation"
|
|
38
|
-
imagePosition : string = right
|
|
39
|
-
@label "Image Position"
|
|
40
|
-
@description "left or right"
|
|
41
|
-
@tier "presentation"
|
|
42
|
-
background : string = default
|
|
43
|
-
@label "Background"
|
|
44
|
-
@description "default or alt"
|
|
45
|
-
@tier "presentation"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
page "/split" as SplitItemSplitPage -> SplitItemSplit
|
|
50
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
app std-marketing-stats "1.0.0"
|
|
2
|
-
"Stats grid atom for marketing pages. Renders a responsive grid of key metrics with values and labels. Pick for social proof, traction, and credibility sections."
|
|
3
|
-
;; Config-driven stats grid using the `stats-grid` marketing pattern.
|
|
4
|
-
;; Stats are declared as an array of { value, label } objects.
|
|
5
|
-
;; The atom renders immediately on INIT with no fetch required.
|
|
6
|
-
orbital StatItemOrbital {
|
|
7
|
-
type StatCard = { value : string!, label : string! }
|
|
8
|
-
|
|
9
|
-
uses StatsGrid from "std/behaviors/ui-stats-grid"
|
|
10
|
-
|
|
11
|
-
entity StatItem [runtime] {
|
|
12
|
-
id : string!
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
trait StatItemStats = StatsGrid.traits.StatsGridRender -> StatItem {
|
|
16
|
-
config {
|
|
17
|
-
columns: @config.columns
|
|
18
|
-
stats: @config.stats
|
|
19
|
-
stats : [StatCard] = [{
|
|
20
|
-
label: Developers
|
|
21
|
-
value: "10K+"
|
|
22
|
-
}, {
|
|
23
|
-
label: Uptime
|
|
24
|
-
value: "99.9%"
|
|
25
|
-
}, {
|
|
26
|
-
label: "Requests served"
|
|
27
|
-
value: "50M+"
|
|
28
|
-
}, {
|
|
29
|
-
label: "Average rating"
|
|
30
|
-
value: "4.9"
|
|
31
|
-
}]
|
|
32
|
-
@label "Stats"
|
|
33
|
-
@description "Array of stat value/label pairs"
|
|
34
|
-
@tier "presentation"
|
|
35
|
-
columns : number = 4
|
|
36
|
-
@label "Columns"
|
|
37
|
-
@description "Number of grid columns"
|
|
38
|
-
@tier "presentation"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
page "/stats" as StatItemStatsPage -> StatItemStats
|
|
43
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
app std-marketing-steps "1.0.0"
|
|
2
|
-
"Step flow atom for marketing pages. Renders numbered steps horizontally or vertically. Pick for how-it-works sections and onboarding explainers."
|
|
3
|
-
;; Config-driven step flow using the `step-flow-organism` marketing pattern.
|
|
4
|
-
;; Steps are declared as an array of { number, title, description, icon } objects.
|
|
5
|
-
;; The atom renders immediately on INIT with no fetch required.
|
|
6
|
-
type StepCard = { id : string!, number : number, title : string!, description : string!, icon : string }
|
|
7
|
-
orbital StepItemOrbital {
|
|
8
|
-
uses StepFlowOrganism from "std/behaviors/ui-step-flow-organism"
|
|
9
|
-
|
|
10
|
-
entity StepSectionItem [runtime] {
|
|
11
|
-
id : string!
|
|
12
|
-
steps : [StepCard] @description "An ordered list of individual step components." @synonyms "items, sequence, stages" = []
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
trait StepSectionItemSteps = StepFlowOrganism.traits.StepFlowOrganismRender -> StepSectionItem {
|
|
16
|
-
config {
|
|
17
|
-
orientation: @config.orientation
|
|
18
|
-
steps : [StepCard] = [{
|
|
19
|
-
description: "Describe your app in natural language."
|
|
20
|
-
icon: pen-tool
|
|
21
|
-
id: "1"
|
|
22
|
-
number: 1
|
|
23
|
-
title: Design
|
|
24
|
-
}, {
|
|
25
|
-
description: "Almadar generates the full stack automatically."
|
|
26
|
-
icon: hammer
|
|
27
|
-
id: "2"
|
|
28
|
-
number: 2
|
|
29
|
-
title: Build
|
|
30
|
-
}, {
|
|
31
|
-
description: "Deploy to production with one click."
|
|
32
|
-
icon: rocket
|
|
33
|
-
id: "3"
|
|
34
|
-
number: 3
|
|
35
|
-
title: Ship
|
|
36
|
-
}]
|
|
37
|
-
@label "Steps"
|
|
38
|
-
@description "Array of step items"
|
|
39
|
-
@tier "presentation"
|
|
40
|
-
orientation : string = horizontal
|
|
41
|
-
@label "Orientation"
|
|
42
|
-
@description "horizontal or vertical"
|
|
43
|
-
@tier "presentation"
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
page "/steps" as StepSectionItemStepsPage -> StepSectionItemSteps
|
|
48
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
app std-marketing-team "1.0.0"
|
|
2
|
-
"Team grid atom for marketing pages. Renders a responsive grid of team member cards with avatars, names, roles, and bios. Pick for about pages and company culture sections."
|
|
3
|
-
;; Config-driven team grid using the `team-organism` marketing pattern.
|
|
4
|
-
;; Members are declared as an array of { name, nameAr, role, bio, avatar } objects.
|
|
5
|
-
;; The atom renders immediately on INIT with no fetch required.
|
|
6
|
-
orbital TeamItemOrbital {
|
|
7
|
-
type TeamMemberCard = { id : string!, name : string!, nameAr : string, role : string!, bio : string!, avatar : string }
|
|
8
|
-
|
|
9
|
-
uses TeamOrganism from "std/behaviors/ui-team-organism"
|
|
10
|
-
|
|
11
|
-
entity TeamItem [runtime] {
|
|
12
|
-
id : string!
|
|
13
|
-
members : [TeamMemberCard] @description "An array of team member card objects." @synonyms "team, people, staff, personnel" = []
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
trait TeamItemTeam = TeamOrganism.traits.TeamOrganismRender -> TeamItem {
|
|
17
|
-
config {
|
|
18
|
-
members : [TeamMemberCard] = [{
|
|
19
|
-
avatar: ""
|
|
20
|
-
bio: "Former VP Engineering at BigTech. Obsessed with developer experience."
|
|
21
|
-
id: "1"
|
|
22
|
-
name: "Jane Doe"
|
|
23
|
-
nameAr: ""
|
|
24
|
-
role: CEO
|
|
25
|
-
}, {
|
|
26
|
-
avatar: ""
|
|
27
|
-
bio: "Built distributed systems at scale for a decade."
|
|
28
|
-
id: "2"
|
|
29
|
-
name: "John Smith"
|
|
30
|
-
nameAr: ""
|
|
31
|
-
role: CTO
|
|
32
|
-
}, {
|
|
33
|
-
avatar: ""
|
|
34
|
-
bio: "Believes great design is invisible."
|
|
35
|
-
id: "3"
|
|
36
|
-
name: "Alice Chen"
|
|
37
|
-
nameAr: ""
|
|
38
|
-
role: "Head of Design"
|
|
39
|
-
}]
|
|
40
|
-
@label "Team Members"
|
|
41
|
-
@description "Array of team member cards"
|
|
42
|
-
@tier "presentation"
|
|
43
|
-
columns : number = 3
|
|
44
|
-
@label "Columns"
|
|
45
|
-
@description "Number of grid columns"
|
|
46
|
-
@tier "presentation"
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
page "/team" as TeamItemTeamPage -> TeamItemTeam
|
|
51
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
app ui-article-section "1.0.0"
|
|
2
|
-
"ArticleSection — UI factory (1:1 with the @almadar/ui article-section pattern)."
|
|
3
|
-
;; @pattern "article-section"
|
|
4
|
-
orbital ArticleSectionOrbital {
|
|
5
|
-
entity ArticleSectionItem [runtime] {
|
|
6
|
-
id : string!
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
trait ArticleSectionRender -> @rebindable ArticleSectionItem [interaction, instance] {
|
|
10
|
-
initial: idle
|
|
11
|
-
|
|
12
|
-
state idle {
|
|
13
|
-
INIT -> idle
|
|
14
|
-
(render-ui main {
|
|
15
|
-
title: @config.title
|
|
16
|
-
children: @config.children
|
|
17
|
-
maxWidth: @config.maxWidth
|
|
18
|
-
className: @config.className
|
|
19
|
-
type: article-section
|
|
20
|
-
})
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
config {
|
|
24
|
-
title : string = ""
|
|
25
|
-
@label "Title"
|
|
26
|
-
@description "Section title"
|
|
27
|
-
@tier "presentation"
|
|
28
|
-
children : node
|
|
29
|
-
@label "Children"
|
|
30
|
-
@description "Section content"
|
|
31
|
-
@tier "presentation"
|
|
32
|
-
maxWidth : "sm" | "md" | "lg" = md
|
|
33
|
-
@label "Max Width"
|
|
34
|
-
@description "Maximum width constraint"
|
|
35
|
-
@tier "presentation"
|
|
36
|
-
className : string
|
|
37
|
-
@label "Class Name"
|
|
38
|
-
@description "Additional class names"
|
|
39
|
-
@tier "presentation"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
page "/article-section" as ArticleSectionPage -> ArticleSectionRender
|
|
44
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
app ui-case-study-card "1.0.0"
|
|
2
|
-
"CaseStudyCard — a card summarizing a customer case study with logo, headline result, and link. — UI factory (1:1 with the @almadar/ui case-study-card pattern)."
|
|
3
|
-
;; @capabilities "customer story, success story, client story card, results showcase, proof-point card"
|
|
4
|
-
;; @pattern "case-study-card"
|
|
5
|
-
orbital CaseStudyCardOrbital {
|
|
6
|
-
entity CaseStudyCardItem [runtime] {
|
|
7
|
-
id : string!
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
trait CaseStudyCardRender -> @rebindable CaseStudyCardItem [interaction, instance] {
|
|
11
|
-
initial: idle
|
|
12
|
-
|
|
13
|
-
state idle {
|
|
14
|
-
INIT -> idle
|
|
15
|
-
(render-ui main {
|
|
16
|
-
title: @config.title
|
|
17
|
-
description: @config.description
|
|
18
|
-
category: @config.category
|
|
19
|
-
categoryColor: @config.categoryColor
|
|
20
|
-
href: @config.href
|
|
21
|
-
linkLabel: @config.linkLabel
|
|
22
|
-
className: @config.className
|
|
23
|
-
type: case-study-card
|
|
24
|
-
})
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
config {
|
|
28
|
-
title : string = ""
|
|
29
|
-
@label "Title"
|
|
30
|
-
@description "Case study title"
|
|
31
|
-
@tier "presentation"
|
|
32
|
-
description : string = ""
|
|
33
|
-
@label "Description"
|
|
34
|
-
@description "Short description of the case study"
|
|
35
|
-
@tier "presentation"
|
|
36
|
-
category : string = ""
|
|
37
|
-
@label "Category"
|
|
38
|
-
@description "Category label shown as a badge"
|
|
39
|
-
@tier "presentation"
|
|
40
|
-
categoryColor : string
|
|
41
|
-
@label "Category Color"
|
|
42
|
-
@description "Custom background color for the category badge (CSS value)"
|
|
43
|
-
@tier "presentation"
|
|
44
|
-
href : string = ""
|
|
45
|
-
@label "Href"
|
|
46
|
-
@description "URL the card links to"
|
|
47
|
-
@tier "presentation"
|
|
48
|
-
linkLabel : string = "Read more"
|
|
49
|
-
@label "Link Label"
|
|
50
|
-
@description "Label for the link button"
|
|
51
|
-
@tier "presentation"
|
|
52
|
-
className : string
|
|
53
|
-
@label "Class Name"
|
|
54
|
-
@description "Additional class names"
|
|
55
|
-
@tier "presentation"
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
page "/case-study-card" as CaseStudyCardPage -> CaseStudyCardRender
|
|
60
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
app ui-community-links "1.0.0"
|
|
2
|
-
"CommunityLinks — UI factory (1:1 with the @almadar/ui community-links pattern)."
|
|
3
|
-
;; @pattern "community-links"
|
|
4
|
-
orbital CommunityLinksOrbital {
|
|
5
|
-
type CommunityLinksGithub = {
|
|
6
|
-
url : string!
|
|
7
|
-
stars : number
|
|
8
|
-
}
|
|
9
|
-
type CommunityLinksDiscord = {
|
|
10
|
-
url : string!
|
|
11
|
-
members : number
|
|
12
|
-
}
|
|
13
|
-
type CommunityLinksTwitter = {
|
|
14
|
-
url : string!
|
|
15
|
-
followers : number
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
entity CommunityLinksItem [runtime] {
|
|
19
|
-
id : string!
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
trait CommunityLinksRender -> @rebindable CommunityLinksItem [interaction, instance] {
|
|
23
|
-
initial: idle
|
|
24
|
-
|
|
25
|
-
state idle {
|
|
26
|
-
INIT -> idle
|
|
27
|
-
(render-ui main {
|
|
28
|
-
github: @config.github
|
|
29
|
-
discord: @config.discord
|
|
30
|
-
twitter: @config.twitter
|
|
31
|
-
heading: @config.heading
|
|
32
|
-
subtitle: @config.subtitle
|
|
33
|
-
className: @config.className
|
|
34
|
-
type: community-links
|
|
35
|
-
})
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
config {
|
|
39
|
-
github : CommunityLinksGithub
|
|
40
|
-
@label "Github"
|
|
41
|
-
@description "github prop"
|
|
42
|
-
@tier "presentation"
|
|
43
|
-
discord : CommunityLinksDiscord
|
|
44
|
-
@label "Discord"
|
|
45
|
-
@description "discord prop"
|
|
46
|
-
@tier "presentation"
|
|
47
|
-
twitter : CommunityLinksTwitter
|
|
48
|
-
@label "Twitter"
|
|
49
|
-
@description "twitter prop"
|
|
50
|
-
@tier "presentation"
|
|
51
|
-
heading : string
|
|
52
|
-
@label "Heading"
|
|
53
|
-
@description "heading prop"
|
|
54
|
-
@tier "presentation"
|
|
55
|
-
subtitle : string
|
|
56
|
-
@label "Subtitle"
|
|
57
|
-
@description "subtitle prop"
|
|
58
|
-
@tier "presentation"
|
|
59
|
-
className : string
|
|
60
|
-
@label "Class Name"
|
|
61
|
-
@description "className prop"
|
|
62
|
-
@tier "presentation"
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
page "/community-links" as CommunityLinksPage -> CommunityLinksRender
|
|
67
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
app ui-content-section "1.0.0"
|
|
2
|
-
"ContentSection — UI factory (1:1 with the @almadar/ui content-section pattern)."
|
|
3
|
-
;; @pattern "content-section"
|
|
4
|
-
orbital ContentSectionOrbital {
|
|
5
|
-
entity ContentSectionItem [runtime] {
|
|
6
|
-
id : string!
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
trait ContentSectionRender -> @rebindable ContentSectionItem [interaction, instance] {
|
|
10
|
-
initial: idle
|
|
11
|
-
|
|
12
|
-
state idle {
|
|
13
|
-
INIT -> idle
|
|
14
|
-
(render-ui main {
|
|
15
|
-
children: @config.children
|
|
16
|
-
background: @config.background
|
|
17
|
-
padding: @config.padding
|
|
18
|
-
className: @config.className
|
|
19
|
-
type: content-section
|
|
20
|
-
})
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
config {
|
|
24
|
-
children : node
|
|
25
|
-
@label "Children"
|
|
26
|
-
@description "Section content"
|
|
27
|
-
@tier "presentation"
|
|
28
|
-
background : "default" | "alt" | "dark" | "gradient" = default
|
|
29
|
-
@label "Background"
|
|
30
|
-
@description "Background style"
|
|
31
|
-
@tier "presentation"
|
|
32
|
-
padding : "sm" | "md" | "lg" = lg
|
|
33
|
-
@label "Padding"
|
|
34
|
-
@description "Vertical padding size"
|
|
35
|
-
@tier "presentation"
|
|
36
|
-
className : string
|
|
37
|
-
@label "Class Name"
|
|
38
|
-
@description "Additional class names"
|
|
39
|
-
@tier "presentation"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
page "/content-section" as ContentSectionPage -> ContentSectionRender
|
|
44
|
-
}
|