@almadar/std 16.230.0 → 16.232.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 (46) hide show
  1. package/behaviors/behaviors-registry.json +5214 -970
  2. package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +36 -3
  3. package/behaviors/lolo/ui/core/atoms/std-language-picker.lolo +52 -0
  4. package/behaviors/lolo/ui/core/atoms/std-site-header.lolo +77 -15
  5. package/behaviors/lolo/ui/core/atoms/std-step-flow.lolo +1 -0
  6. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +38 -65
  7. package/behaviors/lolo/ui/core/molecules/ui-change-list.lolo +57 -0
  8. package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +143 -0
  9. package/behaviors/lolo/ui/core/molecules/ui-header.lolo +1 -0
  10. package/behaviors/lolo/ui/core/molecules/ui-icon-button.lolo +105 -0
  11. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +1 -0
  12. package/behaviors/lolo/ui/core/molecules/ui-top-nav-item.lolo +53 -0
  13. package/behaviors/lolo/ui/core/molecules/ui-version-diff.lolo +19 -3
  14. package/behaviors/lolo/ui/core/organisms/ui-dock-layout.lolo +35 -5
  15. package/behaviors/lolo/ui/game/atoms/ui-canvas.lolo +1 -0
  16. package/behaviors/lolo-behavior-contracts.json +1 -1
  17. package/behaviors/registry/factory-signatures.json +1 -1
  18. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +52 -3
  19. package/behaviors/registry/ui/core/atoms/std-language-picker.orb +285 -0
  20. package/behaviors/registry/ui/core/atoms/std-site-header.orb +348 -74
  21. package/behaviors/registry/ui/core/atoms/std-step-flow.orb +2 -1
  22. package/behaviors/registry/ui/core/atoms/std-version-history.orb +470 -346
  23. package/behaviors/registry/ui/core/molecules/ui-change-list.orb +290 -0
  24. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +441 -0
  25. package/behaviors/registry/ui/core/molecules/ui-header.orb +43 -0
  26. package/behaviors/registry/ui/core/molecules/ui-icon-button.orb +418 -0
  27. package/behaviors/registry/ui/core/molecules/ui-menu.orb +13 -0
  28. package/behaviors/registry/ui/core/molecules/ui-top-nav-item.orb +277 -0
  29. package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +109 -18
  30. package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +43 -5
  31. package/behaviors/registry/ui/game/atoms/ui-canvas.orb +8 -0
  32. package/dist/behaviors/exports-reader.js +3116 -2657
  33. package/dist/behaviors/functions/index.d.ts +437 -35
  34. package/dist/behaviors/functions/index.js +3100 -2657
  35. package/dist/behaviors/index.d.ts +1 -1
  36. package/dist/behaviors/index.js +3117 -2658
  37. package/dist/behaviors/query.js +3116 -2657
  38. package/dist/behaviors-embeddings.hash.json +3 -3
  39. package/dist/behaviors-embeddings.json +39 -7
  40. package/dist/behaviors-registry.json +5214 -970
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +3117 -2658
  43. package/dist/knob-embeddings.hash.json +3 -3
  44. package/dist/knob-embeddings.json +217 -13
  45. package/dist/registry/factory-signatures.json +1 -1
  46. package/package.json +2 -2
@@ -0,0 +1,143 @@
1
+ app ui-commit-row "1.0.0"
2
+ "One version in a history list — a commit row with select and restore. — UI factory (1:1 with the @almadar/ui commit-row pattern)."
3
+ ;; @capabilities "version history row, commit entry, revision list item, change log entry, restore point, undo history item"
4
+ ;; @pattern "commit-row"
5
+ orbital CommitRowOrbital {
6
+ entity CommitRowItem [runtime] {
7
+ id : string!
8
+ sha : string @intrinsic = ""
9
+ }
10
+
11
+ trait CommitRowRender -> @rebindable CommitRowItem [interaction, instance] {
12
+ initial: idle
13
+
14
+ state idle {
15
+ INIT -> idle
16
+ (set @entity.sha @config.sha)
17
+ (render-ui main {
18
+ sha: @entity.sha
19
+ message: @config.message
20
+ author: @config.author
21
+ timestamp: @config.timestamp
22
+ kind: @config.kind
23
+ additions: @config.additions
24
+ deletions: @config.deletions
25
+ selected: @config.selected
26
+ current: @config.current
27
+ selectEvent: @config.selectEvent
28
+ restoreEvent: @config.restoreEvent
29
+ className: @config.className
30
+ type: commit-row
31
+ })
32
+ SELECT -> idle
33
+ (set @entity.sha ?sha)
34
+ (render-ui main {
35
+ sha: @entity.sha
36
+ message: @config.message
37
+ author: @config.author
38
+ timestamp: @config.timestamp
39
+ kind: @config.kind
40
+ additions: @config.additions
41
+ deletions: @config.deletions
42
+ selected: @config.selected
43
+ current: @config.current
44
+ selectEvent: @config.selectEvent
45
+ restoreEvent: @config.restoreEvent
46
+ className: @config.className
47
+ type: commit-row
48
+ })
49
+ RESTORE -> idle
50
+ (set @entity.sha ?sha)
51
+ (render-ui main {
52
+ sha: @entity.sha
53
+ message: @config.message
54
+ author: @config.author
55
+ timestamp: @config.timestamp
56
+ kind: @config.kind
57
+ additions: @config.additions
58
+ deletions: @config.deletions
59
+ selected: @config.selected
60
+ current: @config.current
61
+ selectEvent: @config.selectEvent
62
+ restoreEvent: @config.restoreEvent
63
+ className: @config.className
64
+ type: commit-row
65
+ })
66
+ }
67
+
68
+ emits {
69
+ @config.selectEvent -> external {
70
+ sha : string!
71
+ }
72
+ @description "Emitted when the row is picked. Payload: { sha }."
73
+ @tier "essential"
74
+ @config.restoreEvent -> external {
75
+ sha : string!
76
+ }
77
+ @description "Emitted by the Restore button. Payload: { sha }."
78
+ @tier "essential"
79
+ }
80
+
81
+ listens {
82
+ SELECT {
83
+ sha : string!
84
+ }
85
+ RESTORE {
86
+ sha : string!
87
+ }
88
+ }
89
+
90
+ config {
91
+ sha : string = ""
92
+ @label "Sha"
93
+ @description "Commit id; the first 7 characters are shown, the whole id on hover."
94
+ @tier "presentation"
95
+ message : string = ""
96
+ @label "Message"
97
+ @description "Commit message."
98
+ @tier "presentation"
99
+ author : string
100
+ @label "Author"
101
+ @description "author prop"
102
+ @tier "presentation"
103
+ timestamp : string
104
+ @label "Timestamp"
105
+ @description "Display time (already formatted, e.g. '2 min ago')."
106
+ @tier "presentation"
107
+ kind : "user" | "agent" | "restore" | "undo" | "redo" | "snapshot" = user
108
+ @label "Kind"
109
+ @description "What made this version (a user save, an agent turn, a restore, an undo/redo, a snapshot)."
110
+ @tier "presentation"
111
+ additions : number
112
+ @label "Additions"
113
+ @description "additions prop"
114
+ @tier "presentation"
115
+ deletions : number
116
+ @label "Deletions"
117
+ @description "deletions prop"
118
+ @tier "presentation"
119
+ selected : boolean = false
120
+ @label "Selected"
121
+ @description "The row the user picked (shows its detail)."
122
+ @tier "presentation"
123
+ current : boolean = false
124
+ @label "Current"
125
+ @description "The version the app is at now — it cannot be restored to."
126
+ @tier "presentation"
127
+ selectEvent : event = "SELECT"
128
+ @label "Select Event"
129
+ @description "Emitted when the row is picked. Payload: { sha }."
130
+ @tier "presentation"
131
+ restoreEvent : event = "RESTORE"
132
+ @label "Restore Event"
133
+ @description "Emitted by the Restore button. Payload: { sha }."
134
+ @tier "presentation"
135
+ className : string
136
+ @label "Class Name"
137
+ @description "className prop"
138
+ @tier "presentation"
139
+ }
140
+ }
141
+
142
+ page "/commit-row" as CommitRowPage -> CommitRowRender
143
+ }
@@ -8,6 +8,7 @@ orbital HeaderOrbital {
8
8
  icon : icon
9
9
  badge : string
10
10
  active : boolean
11
+ children : [HeaderNavigationItemsItem]
11
12
  }
12
13
  type HeaderUserAvatar = {
13
14
  src : asset
@@ -0,0 +1,105 @@
1
+ app ui-icon-button "1.0.0"
2
+ "IconButton — UI factory (1:1 with the @almadar/ui icon-button pattern)."
3
+ ;; @pattern "icon-button"
4
+ orbital IconButtonOrbital {
5
+ type IconButtonIconAsset = {
6
+ url : asset!
7
+ role : string!
8
+ category : string!
9
+ animations : [string]
10
+ style : "pixel" | "vector" | "hd" | "1-bit" | "isometric"
11
+ variant : string
12
+ dimension : "2d" | "3d"
13
+ aspect : "1:1" | "16:9" | "5:7" | "8:1" | "4:1" | "5:3" | "1:2"
14
+ atlas : asset
15
+ sprite : string
16
+ name : string
17
+ thumbnailUrl : string
18
+ }
19
+
20
+ entity IconButtonItem [runtime] {
21
+ id : string!
22
+ }
23
+
24
+ trait IconButtonRender -> @rebindable IconButtonItem [interaction, instance] {
25
+ initial: idle
26
+
27
+ state idle {
28
+ INIT -> idle
29
+ (render-ui main {
30
+ className: @config.className
31
+ variant: @config.variant
32
+ size: @config.size
33
+ isLoading: @config.isLoading
34
+ iconAsset: @config.iconAsset
35
+ action: @config.action
36
+ actionPayload: @config.actionPayload
37
+ disabled: @config.disabled
38
+ href: @config.href
39
+ icon: @config.icon
40
+ label: @config.label
41
+ tooltipPosition: @config.tooltipPosition
42
+ type: icon-button
43
+ })
44
+ }
45
+
46
+ emits {
47
+ @config.action -> external { }
48
+ @description "Declarative event name — emits UI:{action} via eventBus on click"
49
+ @tier "essential"
50
+ }
51
+
52
+ config {
53
+ className : string
54
+ @label "Class Name"
55
+ @description "Additional CSS classes applied to the root element."
56
+ @tier "presentation"
57
+ variant : "primary" | "secondary" | "ghost" | "danger" | "success" | "warning" | "default" | "link" = ghost
58
+ @label "Variant"
59
+ @description "variant prop"
60
+ @tier "presentation"
61
+ size : "sm" | "md" | "lg" = sm
62
+ @label "Size"
63
+ @description "size prop"
64
+ @tier "presentation"
65
+ isLoading : boolean
66
+ @label "Is Loading"
67
+ @description "isLoading prop"
68
+ @tier "presentation"
69
+ iconAsset : IconButtonIconAsset
70
+ @label "Icon Asset"
71
+ @description "Asset image rendered as the leading icon; takes precedence over icon/leftIcon when provided."
72
+ @tier "presentation"
73
+ action : event = "ACTION"
74
+ @label "Action"
75
+ @description "Declarative event name — emits UI:{action} via eventBus on click"
76
+ @tier "presentation"
77
+ actionPayload : @payload @config.action
78
+ @label "Action Payload"
79
+ @description "Payload to include with the action event"
80
+ @tier "presentation"
81
+ disabled : boolean
82
+ @label "Disabled"
83
+ @description "Disable the button (greys out, blocks click events)"
84
+ @tier "presentation"
85
+ href : string
86
+ @label "Href"
87
+ @description "Makes the button a link: `#anchor` scrolls, an absolute URL loads, a path navigates in-app"
88
+ @tier "presentation"
89
+ icon : icon = "circle"
90
+ @label "Icon"
91
+ @description "icon prop"
92
+ @tier "presentation"
93
+ label : string = ""
94
+ @label "Label"
95
+ @description "What the button does — its accessible name and its tooltip."
96
+ @tier "presentation"
97
+ tooltipPosition : "top" | "bottom" | "left" | "right" = right
98
+ @label "Tooltip Position"
99
+ @description "Where the tooltip opens."
100
+ @tier "presentation"
101
+ }
102
+ }
103
+
104
+ page "/icon-button" as IconButtonPage -> IconButtonRender
105
+ }
@@ -10,6 +10,7 @@ orbital MenuOrbital {
10
10
  disabled : boolean
11
11
  title : string
12
12
  event : event
13
+ href : string
13
14
  url : string
14
15
  variant : "default" | "danger"
15
16
  subMenu : [MenuItemsItem]
@@ -0,0 +1,53 @@
1
+ app ui-top-nav-item "1.0.0"
2
+ "TopNavItem — UI factory (1:1 with the @almadar/ui top-nav-item pattern)."
3
+ ;; @pattern "top-nav-item"
4
+ orbital TopNavItemOrbital {
5
+ type TopNavItemItem = {
6
+ label : string!
7
+ href : string
8
+ icon : icon
9
+ badge : string
10
+ active : boolean
11
+ children : [TopNavItemItem]
12
+ }
13
+
14
+ entity TopNavItemItem [runtime] {
15
+ id : string!
16
+ }
17
+
18
+ trait TopNavItemRender -> @rebindable TopNavItemItem [interaction, instance] {
19
+ initial: idle
20
+
21
+ state idle {
22
+ INIT -> idle
23
+ (render-ui main {
24
+ item: @config.item
25
+ activeHref: @config.activeHref
26
+ tone: @config.tone
27
+ className: @config.className
28
+ type: top-nav-item
29
+ })
30
+ }
31
+
32
+ config {
33
+ item : TopNavItemItem = { label: "Label", href: "Href", icon: "circle", badge: "Badge", active: false, children: [] }
34
+ @label "Item"
35
+ @description "item prop"
36
+ @tier "presentation"
37
+ activeHref : string
38
+ @label "Active Href"
39
+ @description "The href of the active page, used to mark the item (or its parent) active."
40
+ @tier "presentation"
41
+ tone : "solid" | "soft" = solid
42
+ @label "Tone"
43
+ @description "Active styling: `solid` fills with the primary colour (dashboard top bar); `soft` tints it (site header)."
44
+ @tier "presentation"
45
+ className : string
46
+ @label "Class Name"
47
+ @description "className prop"
48
+ @tier "presentation"
49
+ }
50
+ }
51
+
52
+ page "/top-nav-item" as TopNavItemPage -> TopNavItemRender
53
+ }
@@ -1,5 +1,6 @@
1
1
  app ui-version-diff "1.0.0"
2
- "VersionDiff — UI factory (1:1 with the @almadar/ui version-diff pattern)."
2
+ "A line diff between two versions — two whole texts, or a pre-computed diff such as one commit. — UI factory (1:1 with the @almadar/ui version-diff pattern)."
3
+ ;; @capabilities "version diff, compare revisions, what changed, before and after, code diff, commit diff, revision comparison"
3
4
  ;; @pattern "version-diff"
4
5
  orbital VersionDiffOrbital {
5
6
  type VersionDiffRevisionsItem = {
@@ -9,6 +10,16 @@ orbital VersionDiffOrbital {
9
10
  timestamp : string
10
11
  content : string!
11
12
  }
13
+ type VersionDiffHunksItem = {
14
+ header : string!
15
+ lines : [VersionDiffHunksItemLinesItem]!
16
+ }
17
+ type VersionDiffHunksItemLinesItem = {
18
+ type : "added" | "removed" | "unchanged" | "context"!
19
+ beforeLineNumber : number
20
+ afterLineNumber : number
21
+ content : string!
22
+ }
12
23
 
13
24
  entity VersionDiffItem [runtime] {
14
25
  id : string!
@@ -21,6 +32,7 @@ orbital VersionDiffOrbital {
21
32
  INIT -> idle
22
33
  (render-ui main {
23
34
  revisions: @config.revisions
35
+ hunks: @config.hunks
24
36
  beforeId: @config.beforeId
25
37
  afterId: @config.afterId
26
38
  view: @config.view
@@ -55,10 +67,14 @@ orbital VersionDiffOrbital {
55
67
  }
56
68
 
57
69
  config {
58
- revisions : [VersionDiffRevisionsItem] = [{ id: "Id", label: "Label", author: "Author", timestamp: "Timestamp", content: "Content" }, { id: "Id 2", label: "Label 2", author: "Author 2", timestamp: "Timestamp 2", content: "Content 2" }]
70
+ revisions : [VersionDiffRevisionsItem] = []
59
71
  @label "Revisions"
60
72
  @description "All available revisions (at least 2). Accepts either a typed array (direct consumers) or the runtime payload shape from a render-ui binding (`@payload.revisions`). Narrowed to `[]` internally when the value isn't an array."
61
73
  @tier "presentation"
74
+ hunks : [VersionDiffHunksItem] = []
75
+ @label "Hunks"
76
+ @description "A pre-computed diff to render instead of diffing `revisions` (no revision pickers)."
77
+ @tier "presentation"
62
78
  beforeId : string
63
79
  @label "Before Id"
64
80
  @description "Currently selected 'before' revision id."
@@ -69,7 +85,7 @@ orbital VersionDiffOrbital {
69
85
  @tier "presentation"
70
86
  view : "side-by-side" | "inline" = "side-by-side"
71
87
  @label "View"
72
- @description "Display mode."
88
+ @description "Display mode to start in; the toggle switches it."
73
89
  @tier "presentation"
74
90
  onSelectBefore : event = "SELECT_BEFORE"
75
91
  @label "On Select Before"
@@ -32,6 +32,12 @@ orbital DockLayoutOrbital {
32
32
  bottomPanelMinSize: @config.bottomPanelMinSize
33
33
  secondarySidebarCollapsed: @config.secondarySidebarCollapsed
34
34
  onSecondarySidebarCollapsedChange: @config.onSecondarySidebarCollapsedChange
35
+ compact: @config.compact
36
+ secondarySidebarLabel: @config.secondarySidebarLabel
37
+ secondarySidebarIcon: @config.secondarySidebarIcon
38
+ bottomPanelLabel: @config.bottomPanelLabel
39
+ bottomPanelIcon: @config.bottomPanelIcon
40
+ topBarActions: @config.topBarActions
35
41
  className: @config.className
36
42
  railClassName: @config.railClassName
37
43
  sidebarClassName: @config.sidebarClassName
@@ -96,15 +102,15 @@ orbital DockLayoutOrbital {
96
102
  @label "Secondary Sidebar"
97
103
  @description "Collapsible right sidebar."
98
104
  @tier "presentation"
99
- railWidth : number = 56
105
+ railWidth : number
100
106
  @label "Rail Width"
101
- @description "Width of `rail` in pixels. @default 56"
107
+ @description "Width of `rail` in pixels; the rail sizes the column itself when omitted."
102
108
  @tier "presentation"
103
109
  secondarySidebarWidth : number = 280
104
110
  @label "Secondary Sidebar Width"
105
111
  @description "Width of `secondarySidebar` in pixels (fixed — not resizable). @default 280"
106
112
  @tier "presentation"
107
- sidebarCollapsed : boolean = false
113
+ sidebarCollapsed : boolean
108
114
  @label "Sidebar Collapsed"
109
115
  @description "Whether `sidebar` is collapsed. @default false"
110
116
  @tier "presentation"
@@ -124,7 +130,7 @@ orbital DockLayoutOrbital {
124
130
  @label "Sidebar Min Size"
125
131
  @description "Minimum sidebar size in pixels, forwarded to SplitPane's `minSize`. @default 160"
126
132
  @tier "presentation"
127
- bottomPanelCollapsed : boolean = false
133
+ bottomPanelCollapsed : boolean
128
134
  @label "Bottom Panel Collapsed"
129
135
  @description "Whether `bottomPanel` is collapsed. @default false"
130
136
  @tier "presentation"
@@ -144,7 +150,7 @@ orbital DockLayoutOrbital {
144
150
  @label "Bottom Panel Min Size"
145
151
  @description "Minimum bottom panel size in pixels, forwarded to SplitPane's `minSize`. @default 120"
146
152
  @tier "presentation"
147
- secondarySidebarCollapsed : boolean = false
153
+ secondarySidebarCollapsed : boolean
148
154
  @label "Secondary Sidebar Collapsed"
149
155
  @description "Whether `secondarySidebar` is collapsed. @default false"
150
156
  @tier "presentation"
@@ -152,6 +158,30 @@ orbital DockLayoutOrbital {
152
158
  @label "On Secondary Sidebar Collapsed Change"
153
159
  @description "onSecondarySidebarCollapsedChange prop"
154
160
  @tier "presentation"
161
+ compact : boolean
162
+ @label "Compact"
163
+ @description "The mobile variant; decided by the viewport (narrower than 1024px) when omitted."
164
+ @tier "presentation"
165
+ secondarySidebarLabel : string
166
+ @label "Secondary Sidebar Label"
167
+ @description "Compact: the top-bar button that opens `secondarySidebar` (e.g. 'Inspector', 'Chat')."
168
+ @tier "presentation"
169
+ secondarySidebarIcon : icon
170
+ @label "Secondary Sidebar Icon"
171
+ @description "secondarySidebarIcon prop"
172
+ @tier "presentation"
173
+ bottomPanelLabel : string
174
+ @label "Bottom Panel Label"
175
+ @description "Compact: the top-bar button that opens `bottomPanel`."
176
+ @tier "presentation"
177
+ bottomPanelIcon : icon
178
+ @label "Bottom Panel Icon"
179
+ @description "bottomPanelIcon prop"
180
+ @tier "presentation"
181
+ topBarActions : node
182
+ @label "Top Bar Actions"
183
+ @description "Compact: the host's own actions at the end of the top bar (e.g. Run)."
184
+ @tier "presentation"
155
185
  className : string
156
186
  @label "Class Name"
157
187
  @description "Additional CSS classes on the root frame."
@@ -146,6 +146,7 @@ orbital CanvasOrbital {
146
146
  featureId : string!
147
147
  x : number!
148
148
  z : number!
149
+ type : string
149
150
  elevation : number
150
151
  }
151
152
  @description "Feature-click event (3D only)."