@almadar/std 16.232.0 → 16.234.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 (44) hide show
  1. package/behaviors/behaviors-registry.json +1422 -133
  2. package/behaviors/lolo/ui/avl/atoms/ui-avl-glyph.lolo +54 -0
  3. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +132 -0
  4. package/behaviors/lolo/ui/avl/atoms/ui-behavior-view.lolo +5 -6
  5. package/behaviors/lolo/ui/avl/atoms/ui-module-card.lolo +7 -8
  6. package/behaviors/lolo/ui/core/atoms/std-board.lolo +6 -1
  7. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +12 -2
  8. package/behaviors/lolo/ui/core/atoms/ui-box.lolo +2 -2
  9. package/behaviors/lolo/ui/core/atoms/ui-button.lolo +1 -1
  10. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +1 -1
  11. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +74 -0
  12. package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +17 -0
  13. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +104 -2
  14. package/behaviors/lolo/ui/game/atoms/ui-draw-skinned-mesh.lolo +1 -1
  15. package/behaviors/lolo-behavior-contracts.json +1 -1
  16. package/behaviors/registry/factory-signatures.json +1 -1
  17. package/behaviors/registry/ui/avl/atoms/ui-avl-glyph.orb +211 -0
  18. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +761 -0
  19. package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +157 -66
  20. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +158 -67
  21. package/behaviors/registry/ui/core/atoms/std-board.orb +9 -1
  22. package/behaviors/registry/ui/core/atoms/std-event-log.orb +19 -3
  23. package/behaviors/registry/ui/core/atoms/ui-box.orb +2 -2
  24. package/behaviors/registry/ui/core/atoms/ui-button.orb +1 -0
  25. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +9 -1
  26. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +185 -0
  27. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +81 -0
  28. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +487 -2
  29. package/behaviors/registry/ui/game/atoms/ui-draw-skinned-mesh.orb +1 -2
  30. package/dist/behaviors/exports-reader.js +1891 -1476
  31. package/dist/behaviors/functions/index.d.ts +251 -10
  32. package/dist/behaviors/functions/index.js +1886 -1477
  33. package/dist/behaviors/index.d.ts +1 -1
  34. package/dist/behaviors/index.js +1892 -1477
  35. package/dist/behaviors/query.js +1891 -1476
  36. package/dist/behaviors-embeddings.hash.json +3 -3
  37. package/dist/behaviors-embeddings.json +19 -11
  38. package/dist/behaviors-registry.json +1422 -133
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.js +1892 -1477
  41. package/dist/knob-embeddings.hash.json +3 -3
  42. package/dist/knob-embeddings.json +171 -7
  43. package/dist/registry/factory-signatures.json +1 -1
  44. package/package.json +2 -2
@@ -2,6 +2,31 @@ app ui-state-machine-view "1.0.0"
2
2
  "StateMachineView — UI factory (1:1 with the @almadar/ui state-machine-view pattern)."
3
3
  ;; @pattern "state-machine-view"
4
4
  orbital StateMachineViewOrbital {
5
+ type StateMachineViewTrait = {
6
+ name : string!
7
+ linkedEntity : string!
8
+ states : [StateMachineViewTraitStatesItem]!
9
+ transitions : [StateMachineViewTraitTransitionsItem]!
10
+ emittedEvents : [string]!
11
+ listenedEvents : [string]!
12
+ }
13
+ type StateMachineViewTraitStatesItem = {
14
+ name : string!
15
+ isInitial : boolean
16
+ isTerminal : boolean
17
+ }
18
+ type StateMachineViewTraitTransitionsItem = {
19
+ from : string!
20
+ to : string!
21
+ event : string!
22
+ guard : SExpr
23
+ effects : [StateMachineViewTraitTransitionsItemEffectsItem]!
24
+ index : number!
25
+ }
26
+ type StateMachineViewTraitTransitionsItemEffectsItem = {
27
+ type : string!
28
+ args : [SExpr]!
29
+ }
5
30
  type StateMachineViewError = {
6
31
  message : string!
7
32
  name : string
@@ -19,19 +44,96 @@ orbital StateMachineViewOrbital {
19
44
  state idle {
20
45
  INIT -> idle
21
46
  (render-ui main {
47
+ activeState: @config.activeState
48
+ activeTransition: @config.activeTransition
49
+ visitedStates: @config.visitedStates
50
+ stateClickEvent: @config.stateClickEvent
51
+ transitionClickEvent: @config.transitionClickEvent
52
+ selectedState: @config.selectedState
53
+ pendingSourceState: @config.pendingSourceState
54
+ nodeShape: @config.nodeShape
55
+ entityFields: @config.entityFields
56
+ direction: @config.direction
57
+ showHeader: @config.showHeader
22
58
  className: @config.className
59
+ trait: @config.traitProp
23
60
  isLoading: @config.isLoading
24
61
  error: @config.error
25
62
  type: state-machine-view
26
63
  })
27
64
  }
28
65
 
66
+ emits {
67
+ @config.stateClickEvent -> external {
68
+ stateId : string!
69
+ }
70
+ @description "Emits UI:{stateClickEvent} with { stateId } when a state is clicked."
71
+ @tier "essential"
72
+ @config.transitionClickEvent -> external {
73
+ index : number!
74
+ event : string!
75
+ from : string!
76
+ to : string!
77
+ }
78
+ @description "Emits UI:{transitionClickEvent} with { index, event, from, to } when a transition label is clicked."
79
+ @tier "essential"
80
+ }
81
+
29
82
  config {
83
+ activeState : string
84
+ @label "Active State"
85
+ @description "State execution is currently in."
86
+ @tier "presentation"
87
+ activeTransition : number
88
+ @label "Active Transition"
89
+ @description "`index` of the transition that just fired."
90
+ @tier "presentation"
91
+ visitedStates : [string] = []
92
+ @label "Visited States"
93
+ @description "States already passed through, in order."
94
+ @tier "presentation"
95
+ stateClickEvent : event = "STATE_CLICK"
96
+ @label "State Click Event"
97
+ @description "Emits UI:{stateClickEvent} with { stateId } when a state is clicked."
98
+ @tier "presentation"
99
+ transitionClickEvent : event = "TRANSITION_CLICK"
100
+ @label "Transition Click Event"
101
+ @description "Emits UI:{transitionClickEvent} with { index, event, from, to } when a transition label is clicked."
102
+ @tier "presentation"
103
+ selectedState : string
104
+ @label "Selected State"
105
+ @description "State picked in an editor (first click)."
106
+ @tier "presentation"
107
+ pendingSourceState : string
108
+ @label "Pending Source State"
109
+ @description "Source of a transition being drawn — the next state click picks its target."
110
+ @tier "presentation"
111
+ nodeShape : "pill" | "gear" = pill
112
+ @label "Node Shape"
113
+ @description "Node silhouette. @default 'pill'"
114
+ @tier "presentation"
115
+ entityFields : [string] = []
116
+ @label "Entity Fields"
117
+ @description "Entity field names listed in the header."
118
+ @tier "presentation"
119
+ direction : "ltr" | "rtl" = ltr
120
+ @label "Direction"
121
+ @description "Flow direction. @default 'ltr'"
122
+ @tier "presentation"
123
+ showHeader : boolean
124
+ @label "Show Header"
125
+ @description "Show the trait header (name, entity, listens/emits). @default true"
126
+ @tier "presentation"
30
127
  className : string
31
128
  @label "Class Name"
32
- @description "Additional CSS classes"
129
+ @description "className prop"
130
+ @tier "presentation"
131
+ traitProp : StateMachineViewTrait
132
+ @label "Trait"
133
+ @description "The trait to draw (see `parseTraitLevel` / `traitLevelFromTrait`)."
134
+ @synonyms "trait"
33
135
  @tier "presentation"
34
- isLoading : boolean
136
+ isLoading : boolean = false
35
137
  @label "Is Loading"
36
138
  @description "Loading state indicator"
37
139
  @tier "presentation"
@@ -38,7 +38,7 @@ orbital DrawSkinnedMeshOrbital {
38
38
  }
39
39
  type DrawSkinnedMeshBonesItem = {
40
40
  name : string!
41
- parent : string!
41
+ parent : string
42
42
  pivot : [number]!
43
43
  tip : [number]!
44
44
  }