@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.
Files changed (170) hide show
  1. package/behaviors/behaviors-registry.json +97602 -98073
  2. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +2 -2
  3. package/behaviors/lolo/ui/core/atoms/std-book-reader.lolo +316 -0
  4. package/behaviors/lolo/ui/core/atoms/std-card-grid.lolo +172 -0
  5. package/behaviors/lolo/ui/core/atoms/std-hero.lolo +247 -0
  6. package/behaviors/lolo/ui/core/atoms/std-media-section.lolo +154 -0
  7. package/behaviors/lolo/ui/core/atoms/std-pricing.lolo +177 -0
  8. package/behaviors/lolo/ui/core/atoms/std-prose.lolo +85 -0
  9. package/behaviors/lolo/ui/core/atoms/std-site-footer.lolo +159 -0
  10. package/behaviors/lolo/ui/core/atoms/std-site-header.lolo +131 -0
  11. package/behaviors/lolo/ui/core/atoms/std-stat-band.lolo +83 -0
  12. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +4 -5
  13. package/behaviors/lolo/ui/core/atoms/std-steps.lolo +124 -0
  14. package/behaviors/lolo/ui/core/atoms/ui-box.lolo +5 -0
  15. package/behaviors/lolo/ui/core/atoms/ui-button.lolo +6 -1
  16. package/behaviors/lolo/ui/core/atoms/ui-image.lolo +64 -0
  17. package/behaviors/lolo/ui/{marketing/atoms → core/molecules}/ui-animated-counter.lolo +11 -6
  18. package/behaviors/lolo/ui/core/organisms/ui-chat-bar.lolo +5 -0
  19. package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +1 -1
  20. package/behaviors/lolo-behavior-contracts.json +1 -1
  21. package/behaviors/registry/factory-signatures.json +1 -1
  22. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +45 -9
  23. package/behaviors/registry/ui/core/atoms/std-book-reader.orb +1269 -0
  24. package/behaviors/registry/ui/core/atoms/std-card-grid.orb +826 -0
  25. package/behaviors/registry/ui/core/atoms/std-hero.orb +811 -0
  26. package/behaviors/registry/ui/core/atoms/std-media-section.orb +740 -0
  27. package/behaviors/registry/ui/core/atoms/std-pricing.orb +751 -0
  28. package/behaviors/registry/ui/core/atoms/std-prose.orb +264 -0
  29. package/behaviors/registry/ui/core/atoms/std-site-footer.orb +589 -0
  30. package/behaviors/registry/ui/core/atoms/std-site-header.orb +530 -0
  31. package/behaviors/registry/ui/core/atoms/std-stat-band.orb +311 -0
  32. package/behaviors/registry/ui/core/atoms/std-stats.orb +4 -5
  33. package/behaviors/registry/ui/core/atoms/std-steps.orb +532 -0
  34. package/behaviors/registry/ui/{marketing → core}/atoms/ui-animated-graphic.orb +20 -20
  35. package/behaviors/registry/ui/{marketing → core}/atoms/ui-animated-reveal.orb +20 -20
  36. package/behaviors/registry/ui/core/atoms/ui-box.orb +7 -0
  37. package/behaviors/registry/ui/core/atoms/ui-button.orb +9 -1
  38. package/behaviors/registry/ui/core/atoms/ui-image.orb +231 -0
  39. package/behaviors/registry/ui/{marketing → core}/atoms/ui-pattern-tile.orb +20 -20
  40. package/behaviors/registry/ui/{marketing/atoms → core/molecules}/ui-animated-counter.orb +33 -26
  41. package/behaviors/registry/ui/{marketing/atoms → core/molecules}/ui-feature-card.orb +20 -20
  42. package/behaviors/registry/ui/{marketing/atoms → core/molecules}/ui-geometric-pattern.orb +20 -20
  43. package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +7 -0
  44. package/behaviors/registry/ui/{marketing → core}/templates/ui-auth-layout.orb +20 -20
  45. package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +1 -1
  46. package/behaviors/signatures.lolo +1070 -2984
  47. package/canonical-operators.json +3 -3
  48. package/dist/behaviors/exports-reader.js +3818 -10339
  49. package/dist/behaviors/functions/index.d.ts +3965 -6984
  50. package/dist/behaviors/functions/index.js +3786 -10195
  51. package/dist/behaviors/index.d.ts +1 -1
  52. package/dist/behaviors/index.js +3819 -10340
  53. package/dist/behaviors/query.js +3818 -10339
  54. package/dist/behaviors-embeddings.hash.json +3 -3
  55. package/dist/behaviors-embeddings.json +77 -237
  56. package/dist/behaviors-registry.json +97602 -98073
  57. package/dist/index.d.ts +1 -1
  58. package/dist/index.js +3821 -10342
  59. package/dist/knob-embeddings.hash.json +3 -3
  60. package/dist/knob-embeddings.json +352 -1212
  61. package/dist/modules/core.js +2 -2
  62. package/dist/modules/index.js +2 -2
  63. package/dist/registry/factory-signatures.json +1 -1
  64. package/dist/registry.js +2 -2
  65. package/i18n/ar.json +8 -4
  66. package/i18n/en.json +4 -0
  67. package/i18n/sl.json +8 -4
  68. package/package.json +4 -6
  69. package/behaviors/lolo/ui/marketing/atoms/std-marketing-article.lolo +0 -31
  70. package/behaviors/lolo/ui/marketing/atoms/std-marketing-cta.lolo +0 -93
  71. package/behaviors/lolo/ui/marketing/atoms/std-marketing-features.lolo +0 -83
  72. package/behaviors/lolo/ui/marketing/atoms/std-marketing-footer.lolo +0 -72
  73. package/behaviors/lolo/ui/marketing/atoms/std-marketing-hero.lolo +0 -131
  74. package/behaviors/lolo/ui/marketing/atoms/std-marketing-nav.lolo +0 -86
  75. package/behaviors/lolo/ui/marketing/atoms/std-marketing-pricing.lolo +0 -85
  76. package/behaviors/lolo/ui/marketing/atoms/std-marketing-showcase.lolo +0 -87
  77. package/behaviors/lolo/ui/marketing/atoms/std-marketing-split.lolo +0 -50
  78. package/behaviors/lolo/ui/marketing/atoms/std-marketing-stats.lolo +0 -43
  79. package/behaviors/lolo/ui/marketing/atoms/std-marketing-steps.lolo +0 -48
  80. package/behaviors/lolo/ui/marketing/atoms/std-marketing-team.lolo +0 -51
  81. package/behaviors/lolo/ui/marketing/atoms/ui-article-section.lolo +0 -44
  82. package/behaviors/lolo/ui/marketing/atoms/ui-case-study-card.lolo +0 -60
  83. package/behaviors/lolo/ui/marketing/atoms/ui-community-links.lolo +0 -67
  84. package/behaviors/lolo/ui/marketing/atoms/ui-content-section.lolo +0 -44
  85. package/behaviors/lolo/ui/marketing/atoms/ui-cta-banner.lolo +0 -68
  86. package/behaviors/lolo/ui/marketing/atoms/ui-hero-section.lolo +0 -112
  87. package/behaviors/lolo/ui/marketing/atoms/ui-install-box.lolo +0 -39
  88. package/behaviors/lolo/ui/marketing/atoms/ui-marketing-footer.lolo +0 -58
  89. package/behaviors/lolo/ui/marketing/atoms/ui-marketing-stat-card.lolo +0 -45
  90. package/behaviors/lolo/ui/marketing/atoms/ui-pricing-card.lolo +0 -70
  91. package/behaviors/lolo/ui/marketing/atoms/ui-pricing-grid.lolo +0 -49
  92. package/behaviors/lolo/ui/marketing/atoms/ui-pull-quote.lolo +0 -34
  93. package/behaviors/lolo/ui/marketing/atoms/ui-service-catalog.lolo +0 -40
  94. package/behaviors/lolo/ui/marketing/atoms/ui-showcase-card.lolo +0 -64
  95. package/behaviors/lolo/ui/marketing/atoms/ui-split-section.lolo +0 -69
  96. package/behaviors/lolo/ui/marketing/atoms/ui-stats-grid.lolo +0 -44
  97. package/behaviors/lolo/ui/marketing/atoms/ui-step-flow.lolo +0 -51
  98. package/behaviors/lolo/ui/marketing/atoms/ui-tag-cloud.lolo +0 -45
  99. package/behaviors/lolo/ui/marketing/atoms/ui-team-card.lolo +0 -54
  100. package/behaviors/lolo/ui/marketing/organisms/ui-book-chapter-view.lolo +0 -63
  101. package/behaviors/lolo/ui/marketing/organisms/ui-book-cover-page.lolo +0 -54
  102. package/behaviors/lolo/ui/marketing/organisms/ui-book-nav-bar.lolo +0 -49
  103. package/behaviors/lolo/ui/marketing/organisms/ui-book-table-of-contents.lolo +0 -70
  104. package/behaviors/lolo/ui/marketing/organisms/ui-book-viewer.lolo +0 -161
  105. package/behaviors/lolo/ui/marketing/organisms/ui-case-study-organism.lolo +0 -153
  106. package/behaviors/lolo/ui/marketing/organisms/ui-feature-grid-organism.lolo +0 -159
  107. package/behaviors/lolo/ui/marketing/organisms/ui-hero-organism.lolo +0 -162
  108. package/behaviors/lolo/ui/marketing/organisms/ui-pricing-organism.lolo +0 -155
  109. package/behaviors/lolo/ui/marketing/organisms/ui-showcase-organism.lolo +0 -164
  110. package/behaviors/lolo/ui/marketing/organisms/ui-stats-organism.lolo +0 -142
  111. package/behaviors/lolo/ui/marketing/organisms/ui-step-flow-organism.lolo +0 -165
  112. package/behaviors/lolo/ui/marketing/organisms/ui-team-organism.lolo +0 -152
  113. package/behaviors/lolo/ui/marketing/templates/ui-about-page-template.lolo +0 -105
  114. package/behaviors/lolo/ui/marketing/templates/ui-feature-detail-page-template.lolo +0 -93
  115. package/behaviors/lolo/ui/marketing/templates/ui-landing-page-template.lolo +0 -144
  116. package/behaviors/lolo/ui/marketing/templates/ui-pricing-page-template.lolo +0 -89
  117. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +0 -121
  118. package/behaviors/registry/ui/marketing/atoms/std-marketing-cta.orb +0 -360
  119. package/behaviors/registry/ui/marketing/atoms/std-marketing-features.orb +0 -305
  120. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +0 -265
  121. package/behaviors/registry/ui/marketing/atoms/std-marketing-hero.orb +0 -424
  122. package/behaviors/registry/ui/marketing/atoms/std-marketing-nav.orb +0 -288
  123. package/behaviors/registry/ui/marketing/atoms/std-marketing-pricing.orb +0 -366
  124. package/behaviors/registry/ui/marketing/atoms/std-marketing-showcase.orb +0 -415
  125. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +0 -152
  126. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +0 -151
  127. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +0 -221
  128. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +0 -239
  129. package/behaviors/registry/ui/marketing/atoms/ui-article-section.orb +0 -176
  130. package/behaviors/registry/ui/marketing/atoms/ui-case-study-card.orb +0 -195
  131. package/behaviors/registry/ui/marketing/atoms/ui-community-links.orb +0 -254
  132. package/behaviors/registry/ui/marketing/atoms/ui-content-section.orb +0 -182
  133. package/behaviors/registry/ui/marketing/atoms/ui-cta-banner.orb +0 -254
  134. package/behaviors/registry/ui/marketing/atoms/ui-hero-section.orb +0 -345
  135. package/behaviors/registry/ui/marketing/atoms/ui-install-box.orb +0 -163
  136. package/behaviors/registry/ui/marketing/atoms/ui-marketing-footer.orb +0 -298
  137. package/behaviors/registry/ui/marketing/atoms/ui-marketing-stat-card.orb +0 -177
  138. package/behaviors/registry/ui/marketing/atoms/ui-pricing-card.orb +0 -237
  139. package/behaviors/registry/ui/marketing/atoms/ui-pricing-grid.orb +0 -313
  140. package/behaviors/registry/ui/marketing/atoms/ui-pull-quote.orb +0 -156
  141. package/behaviors/registry/ui/marketing/atoms/ui-service-catalog.orb +0 -205
  142. package/behaviors/registry/ui/marketing/atoms/ui-showcase-card.orb +0 -221
  143. package/behaviors/registry/ui/marketing/atoms/ui-split-section.orb +0 -239
  144. package/behaviors/registry/ui/marketing/atoms/ui-stats-grid.orb +0 -202
  145. package/behaviors/registry/ui/marketing/atoms/ui-step-flow.orb +0 -236
  146. package/behaviors/registry/ui/marketing/atoms/ui-tag-cloud.orb +0 -217
  147. package/behaviors/registry/ui/marketing/atoms/ui-team-card.orb +0 -186
  148. package/behaviors/registry/ui/marketing/organisms/ui-book-chapter-view.orb +0 -277
  149. package/behaviors/registry/ui/marketing/organisms/ui-book-cover-page.orb +0 -190
  150. package/behaviors/registry/ui/marketing/organisms/ui-book-nav-bar.orb +0 -183
  151. package/behaviors/registry/ui/marketing/organisms/ui-book-table-of-contents.orb +0 -286
  152. package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +0 -553
  153. package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +0 -507
  154. package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +0 -504
  155. package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +0 -635
  156. package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +0 -539
  157. package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +0 -542
  158. package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +0 -447
  159. package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +0 -505
  160. package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +0 -494
  161. package/behaviors/registry/ui/marketing/templates/ui-about-page-template.orb +0 -752
  162. package/behaviors/registry/ui/marketing/templates/ui-feature-detail-page-template.orb +0 -638
  163. package/behaviors/registry/ui/marketing/templates/ui-landing-page-template.orb +0 -1028
  164. package/behaviors/registry/ui/marketing/templates/ui-pricing-page-template.orb +0 -603
  165. /package/behaviors/lolo/ui/{marketing → core}/atoms/ui-animated-graphic.lolo +0 -0
  166. /package/behaviors/lolo/ui/{marketing → core}/atoms/ui-animated-reveal.lolo +0 -0
  167. /package/behaviors/lolo/ui/{marketing → core}/atoms/ui-pattern-tile.lolo +0 -0
  168. /package/behaviors/lolo/ui/{marketing/atoms → core/molecules}/ui-feature-card.lolo +0 -0
  169. /package/behaviors/lolo/ui/{marketing/atoms → core/molecules}/ui-geometric-pattern.lolo +0 -0
  170. /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
- }