@almadar/core 10.108.0 → 10.109.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 (36) hide show
  1. package/dist/builders.d.ts +5 -5
  2. package/dist/builders.js.map +1 -1
  3. package/dist/{bus-BsY6WXg3.d.ts → bus-De_T27aq.d.ts} +2 -2
  4. package/dist/{effect-CG7murna.d.ts → effect-Cv7k1MTO.d.ts} +95 -8
  5. package/dist/{entityAccess-Gh1CZezI.d.ts → entityAccess-CH8vC2OG.d.ts} +3 -3
  6. package/dist/{expression-CfeHdS-f.d.ts → expression-C6Gs_c5b.d.ts} +7 -1
  7. package/dist/factory/index.d.ts +5 -5
  8. package/dist/factory/index.js +1349 -237
  9. package/dist/factory/index.js.map +1 -1
  10. package/dist/factory-runtime/index.d.ts +5 -5
  11. package/dist/factory-runtime/index.js.map +1 -1
  12. package/dist/fixtures.d.ts +3 -3
  13. package/dist/fixtures.js.map +1 -1
  14. package/dist/{index-C7WUNaRL.d.ts → index-BzFToa4c.d.ts} +7 -7
  15. package/dist/index.d.ts +15 -15
  16. package/dist/index.js +1448 -241
  17. package/dist/index.js.map +1 -1
  18. package/dist/mock/index.d.ts +6 -6
  19. package/dist/mock/index.js.map +1 -1
  20. package/dist/patterns/component-mapping.json +11 -1
  21. package/dist/patterns/event-contracts.json +1 -1
  22. package/dist/patterns/index.d.ts +2859 -740
  23. package/dist/patterns/index.js +1364 -240
  24. package/dist/patterns/index.js.map +1 -1
  25. package/dist/patterns/patterns-registry.json +1350 -238
  26. package/dist/patterns/registry.json +1350 -238
  27. package/dist/{schema-BaDkyxMw.d.ts → schema-Chi9QIcZ.d.ts} +1022 -1022
  28. package/dist/state-machine/index.d.ts +1 -1
  29. package/dist/themes/index.d.ts +1 -1
  30. package/dist/{trait-DSIFbDzj.d.ts → trait-A_OGE8xT.d.ts} +182 -182
  31. package/dist/types/index.d.ts +8 -8
  32. package/dist/types/index.js +86 -1
  33. package/dist/types/index.js.map +1 -1
  34. package/dist/{types-DKlN7sIB.d.ts → types-DQoBssKq.d.ts} +2 -2
  35. package/package.json +1 -1
  36. package/dist/{domain-DnEv7amB.d.ts → domain-DYverojF.d.ts} +28 -28
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-09-27T13:02:32.256Z",
3
+ "exportedAt": "2026-09-28T12:49:04.761Z",
4
4
  "patterns": {
5
5
  "entity-table": {
6
6
  "type": "entity-table",
@@ -17267,6 +17267,166 @@
17267
17267
  ],
17268
17268
  "renderCallback": true,
17269
17269
  "tier": "presentation"
17270
+ },
17271
+ "assist": {
17272
+ "types": [
17273
+ "function"
17274
+ ],
17275
+ "description": "Editable only: model-assisted editing. Asked after a pause (and on Ctrl-Space) for a completion at the caret, shown as ghost text; on ⌘/Ctrl-. for fixes, listed under the editor. Tab accepts the next, ⌘/Ctrl-Enter accepts all, Escape dismisses.",
17276
+ "callbackArgs": [
17277
+ {
17278
+ "name": "request",
17279
+ "type": "object",
17280
+ "schema": {
17281
+ "types": [
17282
+ "object"
17283
+ ],
17284
+ "properties": {
17285
+ "code": {
17286
+ "types": [
17287
+ "string"
17288
+ ]
17289
+ },
17290
+ "offset": {
17291
+ "types": [
17292
+ "number"
17293
+ ]
17294
+ },
17295
+ "kind": {
17296
+ "types": [
17297
+ "string"
17298
+ ],
17299
+ "enumValues": [
17300
+ "complete",
17301
+ "fix"
17302
+ ]
17303
+ },
17304
+ "trigger": {
17305
+ "types": [
17306
+ "string"
17307
+ ],
17308
+ "enumValues": [
17309
+ "idle",
17310
+ "explicit"
17311
+ ]
17312
+ }
17313
+ },
17314
+ "required": [
17315
+ "code",
17316
+ "offset",
17317
+ "kind",
17318
+ "trigger"
17319
+ ]
17320
+ }
17321
+ }
17322
+ ],
17323
+ "renderCallback": true,
17324
+ "tier": "presentation"
17325
+ },
17326
+ "problems": {
17327
+ "types": [
17328
+ "number"
17329
+ ],
17330
+ "description": "Editable only: how many problems the host knows the code has (some, like a parse error, have no line to mark). With `assist`, the editor offers to fix them.",
17331
+ "tier": "presentation"
17332
+ },
17333
+ "diagnostics": {
17334
+ "types": [
17335
+ "array"
17336
+ ],
17337
+ "description": "Editable only: problems located in the code (1-based line/column in characters, `endColumn` just past the last one), each underlined exactly — red wavy for an error, amber for a warning, dotted where the position is approximate. The message of the one under the caret shows below the editor.",
17338
+ "items": {
17339
+ "types": [
17340
+ "object"
17341
+ ],
17342
+ "properties": {
17343
+ "line": {
17344
+ "types": [
17345
+ "number"
17346
+ ]
17347
+ },
17348
+ "column": {
17349
+ "types": [
17350
+ "number"
17351
+ ]
17352
+ },
17353
+ "endLine": {
17354
+ "types": [
17355
+ "number"
17356
+ ]
17357
+ },
17358
+ "endColumn": {
17359
+ "types": [
17360
+ "number"
17361
+ ]
17362
+ },
17363
+ "severity": {
17364
+ "types": [
17365
+ "string"
17366
+ ],
17367
+ "enumValues": [
17368
+ "error",
17369
+ "warning"
17370
+ ]
17371
+ },
17372
+ "message": {
17373
+ "types": [
17374
+ "string"
17375
+ ]
17376
+ },
17377
+ "approximate": {
17378
+ "types": [
17379
+ "boolean"
17380
+ ]
17381
+ }
17382
+ },
17383
+ "required": [
17384
+ "line",
17385
+ "severity",
17386
+ "message"
17387
+ ]
17388
+ },
17389
+ "tier": "presentation"
17390
+ },
17391
+ "definitionAt": {
17392
+ "types": [
17393
+ "function"
17394
+ ],
17395
+ "description": "Editable only: go to definition. Whether the identifier (a dotted path is one) leads somewhere; with Cmd/Ctrl held the one under the pointer is underlined when it does. Comments and strings never qualify.",
17396
+ "callbackArgs": [
17397
+ {
17398
+ "name": "identifier",
17399
+ "type": "string"
17400
+ }
17401
+ ],
17402
+ "renderCallback": true
17403
+ },
17404
+ "onGoToDefinition": {
17405
+ "types": [
17406
+ "function"
17407
+ ],
17408
+ "description": "Editable only: Cmd/Ctrl+click, or Cmd/Ctrl+Enter at the caret, on an identifier `definitionAt` accepts.",
17409
+ "kind": "callback",
17410
+ "callbackArgs": [
17411
+ {
17412
+ "name": "identifier",
17413
+ "type": "string"
17414
+ }
17415
+ ]
17416
+ },
17417
+ "diagnosticsCode": {
17418
+ "types": [
17419
+ "string"
17420
+ ],
17421
+ "description": "The code `diagnostics` were computed on. When the editor's text has moved on, each range is carried over the edit; a range the edit touches is dropped until the code is checked again. Absent: they describe the current text.",
17422
+ "tier": "presentation"
17423
+ },
17424
+ "lineNumbers": {
17425
+ "types": [
17426
+ "boolean"
17427
+ ],
17428
+ "description": "Editable only: number the lines in a gutter (lines with errors in red). Default on.",
17429
+ "tier": "presentation"
17270
17430
  }
17271
17431
  }
17272
17432
  },
@@ -17598,18 +17758,284 @@
17598
17758
  ],
17599
17759
  "typicalSize": "large",
17600
17760
  "propsSchema": {
17761
+ "activeState": {
17762
+ "types": [
17763
+ "string"
17764
+ ],
17765
+ "description": "State execution is currently in."
17766
+ },
17767
+ "activeTransition": {
17768
+ "types": [
17769
+ "number"
17770
+ ],
17771
+ "description": "`index` of the transition that just fired."
17772
+ },
17773
+ "visitedStates": {
17774
+ "types": [
17775
+ "array"
17776
+ ],
17777
+ "description": "States already passed through, in order.",
17778
+ "items": {
17779
+ "types": [
17780
+ "string"
17781
+ ]
17782
+ }
17783
+ },
17784
+ "stateClickEvent": {
17785
+ "types": [
17786
+ "string"
17787
+ ],
17788
+ "description": "Emits UI:{stateClickEvent} with { stateId } when a state is clicked.",
17789
+ "kind": "event-ref",
17790
+ "emitPayloadSchema": [
17791
+ {
17792
+ "name": "stateId",
17793
+ "type": "string",
17794
+ "required": true
17795
+ }
17796
+ ]
17797
+ },
17798
+ "transitionClickEvent": {
17799
+ "types": [
17800
+ "string"
17801
+ ],
17802
+ "description": "Emits UI:{transitionClickEvent} with { index, event, from, to } when a transition label is clicked.",
17803
+ "kind": "event-ref",
17804
+ "emitPayloadSchema": [
17805
+ {
17806
+ "name": "index",
17807
+ "type": "number",
17808
+ "required": true
17809
+ },
17810
+ {
17811
+ "name": "event",
17812
+ "type": "string",
17813
+ "required": true
17814
+ },
17815
+ {
17816
+ "name": "from",
17817
+ "type": "string",
17818
+ "required": true
17819
+ },
17820
+ {
17821
+ "name": "to",
17822
+ "type": "string",
17823
+ "required": true
17824
+ }
17825
+ ]
17826
+ },
17827
+ "selectedState": {
17828
+ "types": [
17829
+ "string"
17830
+ ],
17831
+ "description": "State picked in an editor (first click)."
17832
+ },
17833
+ "pendingSourceState": {
17834
+ "types": [
17835
+ "string"
17836
+ ],
17837
+ "description": "Source of a transition being drawn — the next state click picks its target."
17838
+ },
17839
+ "nodeShape": {
17840
+ "types": [
17841
+ "string"
17842
+ ],
17843
+ "description": "Node silhouette. @default 'pill'",
17844
+ "enumValues": [
17845
+ "pill",
17846
+ "gear"
17847
+ ]
17848
+ },
17849
+ "entityFields": {
17850
+ "types": [
17851
+ "array"
17852
+ ],
17853
+ "description": "Entity field names listed in the header.",
17854
+ "items": {
17855
+ "types": [
17856
+ "string"
17857
+ ]
17858
+ }
17859
+ },
17860
+ "direction": {
17861
+ "types": [
17862
+ "string"
17863
+ ],
17864
+ "description": "Flow direction. @default 'ltr'",
17865
+ "enumValues": [
17866
+ "ltr",
17867
+ "rtl"
17868
+ ]
17869
+ },
17870
+ "showHeader": {
17871
+ "types": [
17872
+ "boolean"
17873
+ ],
17874
+ "description": "Show the trait header (name, entity, listens/emits). @default true"
17875
+ },
17601
17876
  "className": {
17602
17877
  "types": [
17603
17878
  "string"
17604
17879
  ],
17605
- "description": "Additional CSS classes",
17606
- "default": ""
17880
+ "description": "className prop"
17881
+ },
17882
+ "trait": {
17883
+ "types": [
17884
+ "object"
17885
+ ],
17886
+ "description": "The trait to draw (see `parseTraitLevel` / `traitLevelFromTrait`).",
17887
+ "properties": {
17888
+ "name": {
17889
+ "types": [
17890
+ "string"
17891
+ ]
17892
+ },
17893
+ "linkedEntity": {
17894
+ "types": [
17895
+ "string"
17896
+ ]
17897
+ },
17898
+ "states": {
17899
+ "types": [
17900
+ "array"
17901
+ ],
17902
+ "items": {
17903
+ "types": [
17904
+ "object"
17905
+ ],
17906
+ "properties": {
17907
+ "name": {
17908
+ "types": [
17909
+ "string"
17910
+ ]
17911
+ },
17912
+ "isInitial": {
17913
+ "types": [
17914
+ "boolean"
17915
+ ]
17916
+ },
17917
+ "isTerminal": {
17918
+ "types": [
17919
+ "boolean"
17920
+ ]
17921
+ }
17922
+ },
17923
+ "required": [
17924
+ "name"
17925
+ ]
17926
+ }
17927
+ },
17928
+ "transitions": {
17929
+ "types": [
17930
+ "array"
17931
+ ],
17932
+ "items": {
17933
+ "types": [
17934
+ "object"
17935
+ ],
17936
+ "properties": {
17937
+ "from": {
17938
+ "types": [
17939
+ "string"
17940
+ ]
17941
+ },
17942
+ "to": {
17943
+ "types": [
17944
+ "string"
17945
+ ]
17946
+ },
17947
+ "event": {
17948
+ "types": [
17949
+ "string"
17950
+ ]
17951
+ },
17952
+ "guard": {
17953
+ "types": [
17954
+ "sexpr"
17955
+ ]
17956
+ },
17957
+ "effects": {
17958
+ "types": [
17959
+ "array"
17960
+ ],
17961
+ "items": {
17962
+ "types": [
17963
+ "object"
17964
+ ],
17965
+ "properties": {
17966
+ "type": {
17967
+ "types": [
17968
+ "string"
17969
+ ]
17970
+ },
17971
+ "args": {
17972
+ "types": [
17973
+ "array"
17974
+ ],
17975
+ "items": {
17976
+ "types": [
17977
+ "sexpr"
17978
+ ]
17979
+ }
17980
+ }
17981
+ },
17982
+ "required": [
17983
+ "type",
17984
+ "args"
17985
+ ]
17986
+ }
17987
+ },
17988
+ "index": {
17989
+ "types": [
17990
+ "number"
17991
+ ]
17992
+ }
17993
+ },
17994
+ "required": [
17995
+ "from",
17996
+ "to",
17997
+ "event",
17998
+ "effects",
17999
+ "index"
18000
+ ]
18001
+ }
18002
+ },
18003
+ "emittedEvents": {
18004
+ "types": [
18005
+ "array"
18006
+ ],
18007
+ "items": {
18008
+ "types": [
18009
+ "string"
18010
+ ]
18011
+ }
18012
+ },
18013
+ "listenedEvents": {
18014
+ "types": [
18015
+ "array"
18016
+ ],
18017
+ "items": {
18018
+ "types": [
18019
+ "string"
18020
+ ]
18021
+ }
18022
+ }
18023
+ },
18024
+ "propertyRequired": [
18025
+ "name",
18026
+ "linkedEntity",
18027
+ "states",
18028
+ "transitions",
18029
+ "emittedEvents",
18030
+ "listenedEvents"
18031
+ ]
17607
18032
  },
17608
18033
  "isLoading": {
17609
18034
  "types": [
17610
18035
  "boolean"
17611
18036
  ],
17612
- "description": "Loading state indicator"
18037
+ "description": "Loading state indicator",
18038
+ "default": false
17613
18039
  },
17614
18040
  "error": {
17615
18041
  "types": [
@@ -17640,224 +18066,8 @@
17640
18066
  },
17641
18067
  "propertyRequired": [
17642
18068
  "message"
17643
- ]
17644
- },
17645
- "layoutData": {
17646
- "types": [
17647
- "object"
17648
- ],
17649
- "description": "Pre-computed visualizer layout. Optional: when absent the view renders nothing (an author wires real layout via config; the generic factory can't synthesize a `DomLayoutData`).",
17650
- "nonAuthorable": true
17651
- },
17652
- "renderStateNode": {
17653
- "types": [
17654
- "function"
17655
18069
  ],
17656
- "description": "Custom state node renderer — when provided, replaces the default circle nodes",
17657
- "callbackArgs": [
17658
- {
17659
- "name": "state",
17660
- "type": "object",
17661
- "schema": {
17662
- "types": [
17663
- "object"
17664
- ],
17665
- "properties": {
17666
- "id": {
17667
- "types": [
17668
- "string"
17669
- ]
17670
- },
17671
- "name": {
17672
- "types": [
17673
- "string"
17674
- ]
17675
- },
17676
- "x": {
17677
- "types": [
17678
- "number"
17679
- ]
17680
- },
17681
- "y": {
17682
- "types": [
17683
- "number"
17684
- ]
17685
- },
17686
- "radius": {
17687
- "types": [
17688
- "number"
17689
- ]
17690
- },
17691
- "isInitial": {
17692
- "types": [
17693
- "boolean"
17694
- ]
17695
- },
17696
- "isFinal": {
17697
- "types": [
17698
- "boolean"
17699
- ]
17700
- },
17701
- "description": {
17702
- "types": [
17703
- "string"
17704
- ]
17705
- }
17706
- },
17707
- "required": [
17708
- "id",
17709
- "name",
17710
- "x",
17711
- "y",
17712
- "radius",
17713
- "isInitial",
17714
- "isFinal"
17715
- ]
17716
- }
17717
- },
17718
- {
17719
- "name": "config",
17720
- "type": "object",
17721
- "schema": {
17722
- "types": [
17723
- "object"
17724
- ],
17725
- "properties": {
17726
- "nodeRadius": {
17727
- "types": [
17728
- "number"
17729
- ]
17730
- },
17731
- "nodeSpacing": {
17732
- "types": [
17733
- "number"
17734
- ]
17735
- },
17736
- "initialIndicatorOffset": {
17737
- "types": [
17738
- "number"
17739
- ]
17740
- },
17741
- "arrowSize": {
17742
- "types": [
17743
- "number"
17744
- ]
17745
- },
17746
- "colors": {
17747
- "types": [
17748
- "object"
17749
- ],
17750
- "properties": {
17751
- "background": {
17752
- "types": [
17753
- "string"
17754
- ]
17755
- },
17756
- "node": {
17757
- "types": [
17758
- "string"
17759
- ]
17760
- },
17761
- "nodeBorder": {
17762
- "types": [
17763
- "string"
17764
- ]
17765
- },
17766
- "nodeText": {
17767
- "types": [
17768
- "string"
17769
- ]
17770
- },
17771
- "initialNode": {
17772
- "types": [
17773
- "string"
17774
- ]
17775
- },
17776
- "finalNode": {
17777
- "types": [
17778
- "string"
17779
- ]
17780
- },
17781
- "arrow": {
17782
- "types": [
17783
- "string"
17784
- ]
17785
- },
17786
- "arrowText": {
17787
- "types": [
17788
- "string"
17789
- ]
17790
- },
17791
- "effectText": {
17792
- "types": [
17793
- "string"
17794
- ]
17795
- },
17796
- "guardText": {
17797
- "types": [
17798
- "string"
17799
- ]
17800
- },
17801
- "initial": {
17802
- "types": [
17803
- "string"
17804
- ]
17805
- }
17806
- },
17807
- "required": [
17808
- "background",
17809
- "node",
17810
- "nodeBorder",
17811
- "nodeText",
17812
- "initialNode",
17813
- "finalNode",
17814
- "arrow",
17815
- "arrowText",
17816
- "effectText",
17817
- "guardText",
17818
- "initial"
17819
- ]
17820
- },
17821
- "fonts": {
17822
- "types": [
17823
- "object"
17824
- ],
17825
- "properties": {
17826
- "node": {
17827
- "types": [
17828
- "string"
17829
- ]
17830
- },
17831
- "event": {
17832
- "types": [
17833
- "string"
17834
- ]
17835
- },
17836
- "effect": {
17837
- "types": [
17838
- "string"
17839
- ]
17840
- }
17841
- },
17842
- "required": [
17843
- "node",
17844
- "event",
17845
- "effect"
17846
- ]
17847
- }
17848
- },
17849
- "required": [
17850
- "nodeRadius",
17851
- "nodeSpacing",
17852
- "initialIndicatorOffset",
17853
- "arrowSize",
17854
- "colors",
17855
- "fonts"
17856
- ]
17857
- }
17858
- }
17859
- ],
17860
- "renderCallback": true
18070
+ "default": null
17861
18071
  }
17862
18072
  }
17863
18073
  },
@@ -22839,6 +23049,11 @@
22839
23049
  "string"
22840
23050
  ]
22841
23051
  },
23052
+ "expandable": {
23053
+ "types": [
23054
+ "boolean"
23055
+ ]
23056
+ },
22842
23057
  "size": {
22843
23058
  "types": [
22844
23059
  "number"
@@ -22930,6 +23145,30 @@
22930
23145
  }
22931
23146
  ]
22932
23147
  },
23148
+ "onNodeExpand": {
23149
+ "types": [
23150
+ "function"
23151
+ ],
23152
+ "description": "Called the first time a node marked `expandable` is expanded, with its path, so its children can be loaded.",
23153
+ "kind": "callback",
23154
+ "callbackArgs": [
23155
+ {
23156
+ "name": "path",
23157
+ "type": "string"
23158
+ }
23159
+ ]
23160
+ },
23161
+ "expandedPaths": {
23162
+ "types": [
23163
+ "array"
23164
+ ],
23165
+ "description": "Paths to show expanded (e.g. to reveal a node): each is expanded when it appears here, loading its children if needed.",
23166
+ "items": {
23167
+ "types": [
23168
+ "string"
23169
+ ]
23170
+ }
23171
+ },
22933
23172
  "onNodeSelect": {
22934
23173
  "types": [
22935
23174
  "function"
@@ -27415,7 +27654,7 @@
27415
27654
  "types": [
27416
27655
  "object"
27417
27656
  ],
27418
- "description": "data prop",
27657
+ "description": "The orbital to summarize.",
27419
27658
  "required": true,
27420
27659
  "properties": {
27421
27660
  "orbitalName": {
@@ -27430,7 +27669,7 @@
27430
27669
  },
27431
27670
  "persistence": {
27432
27671
  "types": [
27433
- "string"
27672
+ "object"
27434
27673
  ]
27435
27674
  },
27436
27675
  "fields": {
@@ -27602,9 +27841,7 @@
27602
27841
  }
27603
27842
  },
27604
27843
  "required": [
27605
- "name",
27606
- "isInitial",
27607
- "isTerminal"
27844
+ "name"
27608
27845
  ]
27609
27846
  }
27610
27847
  },
@@ -27678,7 +27915,6 @@
27678
27915
  "from",
27679
27916
  "to",
27680
27917
  "event",
27681
- "guard",
27682
27918
  "effects",
27683
27919
  "index"
27684
27920
  ]
@@ -27763,7 +27999,188 @@
27763
27999
  "pages",
27764
28000
  "traitDetails",
27765
28001
  "externalLinks"
27766
- ]
28002
+ ],
28003
+ "example": {
28004
+ "orbitalName": "OrderOrbital",
28005
+ "entityName": "Order",
28006
+ "persistence": "persistent",
28007
+ "fields": [
28008
+ {
28009
+ "name": "customer",
28010
+ "type": "string",
28011
+ "required": true,
28012
+ "hasDefault": false
28013
+ },
28014
+ {
28015
+ "name": "qty",
28016
+ "type": "number",
28017
+ "required": true,
28018
+ "hasDefault": true
28019
+ },
28020
+ {
28021
+ "name": "status",
28022
+ "type": "string",
28023
+ "required": false,
28024
+ "hasDefault": true
28025
+ }
28026
+ ],
28027
+ "traits": [
28028
+ {
28029
+ "name": "OrderFlow",
28030
+ "stateCount": 5,
28031
+ "eventCount": 7,
28032
+ "transitionCount": 7,
28033
+ "emits": [
28034
+ "ORDER_SAVED"
28035
+ ],
28036
+ "listens": [
28037
+ "PAYMENT_OK"
28038
+ ]
28039
+ }
28040
+ ],
28041
+ "pages": [
28042
+ {
28043
+ "name": "Orders",
28044
+ "route": "/orders"
28045
+ }
28046
+ ],
28047
+ "traitDetails": {
28048
+ "OrderFlow": {
28049
+ "name": "OrderFlow",
28050
+ "linkedEntity": "Order",
28051
+ "states": [
28052
+ {
28053
+ "name": "browsing",
28054
+ "isInitial": true,
28055
+ "isTerminal": false
28056
+ },
28057
+ {
28058
+ "name": "editing",
28059
+ "isInitial": false,
28060
+ "isTerminal": false
28061
+ },
28062
+ {
28063
+ "name": "saving",
28064
+ "isInitial": false,
28065
+ "isTerminal": false
28066
+ },
28067
+ {
28068
+ "name": "confirmed",
28069
+ "isInitial": false,
28070
+ "isTerminal": true
28071
+ },
28072
+ {
28073
+ "name": "failed",
28074
+ "isInitial": false,
28075
+ "isTerminal": false
28076
+ }
28077
+ ],
28078
+ "transitions": [
28079
+ {
28080
+ "from": "browsing",
28081
+ "to": "editing",
28082
+ "event": "EDIT",
28083
+ "effects": [
28084
+ {
28085
+ "type": "render-ui",
28086
+ "args": []
28087
+ }
28088
+ ],
28089
+ "index": 0
28090
+ },
28091
+ {
28092
+ "from": "editing",
28093
+ "to": "saving",
28094
+ "event": "SAVE",
28095
+ "effects": [
28096
+ {
28097
+ "type": "persist",
28098
+ "args": []
28099
+ },
28100
+ {
28101
+ "type": "notify",
28102
+ "args": []
28103
+ }
28104
+ ],
28105
+ "index": 1
28106
+ },
28107
+ {
28108
+ "from": "saving",
28109
+ "to": "confirmed",
28110
+ "event": "SAVED",
28111
+ "effects": [
28112
+ {
28113
+ "type": "emit",
28114
+ "args": []
28115
+ },
28116
+ {
28117
+ "type": "render-ui",
28118
+ "args": []
28119
+ }
28120
+ ],
28121
+ "index": 2
28122
+ },
28123
+ {
28124
+ "from": "saving",
28125
+ "to": "failed",
28126
+ "event": "SAVE_FAILED",
28127
+ "effects": [
28128
+ {
28129
+ "type": "notify",
28130
+ "args": []
28131
+ }
28132
+ ],
28133
+ "index": 3
28134
+ },
28135
+ {
28136
+ "from": "failed",
28137
+ "to": "editing",
28138
+ "event": "RETRY",
28139
+ "effects": [],
28140
+ "index": 4
28141
+ },
28142
+ {
28143
+ "from": "editing",
28144
+ "to": "browsing",
28145
+ "event": "CANCEL",
28146
+ "effects": [
28147
+ {
28148
+ "type": "render-ui",
28149
+ "args": []
28150
+ }
28151
+ ],
28152
+ "index": 5
28153
+ },
28154
+ {
28155
+ "from": "confirmed",
28156
+ "to": "browsing",
28157
+ "event": "DONE",
28158
+ "effects": [
28159
+ {
28160
+ "type": "navigate",
28161
+ "args": []
28162
+ }
28163
+ ],
28164
+ "index": 6
28165
+ }
28166
+ ],
28167
+ "emittedEvents": [
28168
+ "ORDER_SAVED"
28169
+ ],
28170
+ "listenedEvents": [
28171
+ "PAYMENT_OK"
28172
+ ]
28173
+ }
28174
+ },
28175
+ "externalLinks": [
28176
+ {
28177
+ "targetOrbital": "PaymentOrbital",
28178
+ "eventName": "PAYMENT_OK",
28179
+ "direction": "in",
28180
+ "traitName": "OrderFlow"
28181
+ }
28182
+ ]
28183
+ }
27767
28184
  }
27768
28185
  }
27769
28186
  },
@@ -27773,8 +28190,8 @@
27773
28190
  "sourceFile": "components/avl/molecules/ModuleCard.tsx",
27774
28191
  "tier": "molecules",
27775
28192
  "family": "avl",
27776
- "description": "ModuleCard — a card summarizing one course module or lesson with progress and entry point.",
27777
- "capabilities": "course module card, lesson card, curriculum unit card, learning-path step card",
28193
+ "description": "ModuleCard — a compact summary card for one orbital module: its entity and fields, a mini state machine per trait, and its pages.",
28194
+ "capabilities": "orbital module summary card, entity and trait overview card, app architecture node card",
27778
28195
  "suggestedFor": [
27779
28196
  "module",
27780
28197
  "card",
@@ -27786,7 +28203,7 @@
27786
28203
  "types": [
27787
28204
  "object"
27788
28205
  ],
27789
- "description": "data prop",
28206
+ "description": "The orbital to summarize.",
27790
28207
  "required": true,
27791
28208
  "properties": {
27792
28209
  "orbitalName": {
@@ -27801,7 +28218,7 @@
27801
28218
  },
27802
28219
  "persistence": {
27803
28220
  "types": [
27804
- "string"
28221
+ "object"
27805
28222
  ]
27806
28223
  },
27807
28224
  "fields": {
@@ -27973,9 +28390,7 @@
27973
28390
  }
27974
28391
  },
27975
28392
  "required": [
27976
- "name",
27977
- "isInitial",
27978
- "isTerminal"
28393
+ "name"
27979
28394
  ]
27980
28395
  }
27981
28396
  },
@@ -28049,7 +28464,6 @@
28049
28464
  "from",
28050
28465
  "to",
28051
28466
  "event",
28052
- "guard",
28053
28467
  "effects",
28054
28468
  "index"
28055
28469
  ]
@@ -28134,7 +28548,188 @@
28134
28548
  "pages",
28135
28549
  "traitDetails",
28136
28550
  "externalLinks"
28137
- ]
28551
+ ],
28552
+ "example": {
28553
+ "orbitalName": "OrderOrbital",
28554
+ "entityName": "Order",
28555
+ "persistence": "persistent",
28556
+ "fields": [
28557
+ {
28558
+ "name": "customer",
28559
+ "type": "string",
28560
+ "required": true,
28561
+ "hasDefault": false
28562
+ },
28563
+ {
28564
+ "name": "qty",
28565
+ "type": "number",
28566
+ "required": true,
28567
+ "hasDefault": true
28568
+ },
28569
+ {
28570
+ "name": "status",
28571
+ "type": "string",
28572
+ "required": false,
28573
+ "hasDefault": true
28574
+ }
28575
+ ],
28576
+ "traits": [
28577
+ {
28578
+ "name": "OrderFlow",
28579
+ "stateCount": 5,
28580
+ "eventCount": 7,
28581
+ "transitionCount": 7,
28582
+ "emits": [
28583
+ "ORDER_SAVED"
28584
+ ],
28585
+ "listens": [
28586
+ "PAYMENT_OK"
28587
+ ]
28588
+ }
28589
+ ],
28590
+ "pages": [
28591
+ {
28592
+ "name": "Orders",
28593
+ "route": "/orders"
28594
+ }
28595
+ ],
28596
+ "traitDetails": {
28597
+ "OrderFlow": {
28598
+ "name": "OrderFlow",
28599
+ "linkedEntity": "Order",
28600
+ "states": [
28601
+ {
28602
+ "name": "browsing",
28603
+ "isInitial": true,
28604
+ "isTerminal": false
28605
+ },
28606
+ {
28607
+ "name": "editing",
28608
+ "isInitial": false,
28609
+ "isTerminal": false
28610
+ },
28611
+ {
28612
+ "name": "saving",
28613
+ "isInitial": false,
28614
+ "isTerminal": false
28615
+ },
28616
+ {
28617
+ "name": "confirmed",
28618
+ "isInitial": false,
28619
+ "isTerminal": true
28620
+ },
28621
+ {
28622
+ "name": "failed",
28623
+ "isInitial": false,
28624
+ "isTerminal": false
28625
+ }
28626
+ ],
28627
+ "transitions": [
28628
+ {
28629
+ "from": "browsing",
28630
+ "to": "editing",
28631
+ "event": "EDIT",
28632
+ "effects": [
28633
+ {
28634
+ "type": "render-ui",
28635
+ "args": []
28636
+ }
28637
+ ],
28638
+ "index": 0
28639
+ },
28640
+ {
28641
+ "from": "editing",
28642
+ "to": "saving",
28643
+ "event": "SAVE",
28644
+ "effects": [
28645
+ {
28646
+ "type": "persist",
28647
+ "args": []
28648
+ },
28649
+ {
28650
+ "type": "notify",
28651
+ "args": []
28652
+ }
28653
+ ],
28654
+ "index": 1
28655
+ },
28656
+ {
28657
+ "from": "saving",
28658
+ "to": "confirmed",
28659
+ "event": "SAVED",
28660
+ "effects": [
28661
+ {
28662
+ "type": "emit",
28663
+ "args": []
28664
+ },
28665
+ {
28666
+ "type": "render-ui",
28667
+ "args": []
28668
+ }
28669
+ ],
28670
+ "index": 2
28671
+ },
28672
+ {
28673
+ "from": "saving",
28674
+ "to": "failed",
28675
+ "event": "SAVE_FAILED",
28676
+ "effects": [
28677
+ {
28678
+ "type": "notify",
28679
+ "args": []
28680
+ }
28681
+ ],
28682
+ "index": 3
28683
+ },
28684
+ {
28685
+ "from": "failed",
28686
+ "to": "editing",
28687
+ "event": "RETRY",
28688
+ "effects": [],
28689
+ "index": 4
28690
+ },
28691
+ {
28692
+ "from": "editing",
28693
+ "to": "browsing",
28694
+ "event": "CANCEL",
28695
+ "effects": [
28696
+ {
28697
+ "type": "render-ui",
28698
+ "args": []
28699
+ }
28700
+ ],
28701
+ "index": 5
28702
+ },
28703
+ {
28704
+ "from": "confirmed",
28705
+ "to": "browsing",
28706
+ "event": "DONE",
28707
+ "effects": [
28708
+ {
28709
+ "type": "navigate",
28710
+ "args": []
28711
+ }
28712
+ ],
28713
+ "index": 6
28714
+ }
28715
+ ],
28716
+ "emittedEvents": [
28717
+ "ORDER_SAVED"
28718
+ ],
28719
+ "listenedEvents": [
28720
+ "PAYMENT_OK"
28721
+ ]
28722
+ }
28723
+ },
28724
+ "externalLinks": [
28725
+ {
28726
+ "targetOrbital": "PaymentOrbital",
28727
+ "eventName": "PAYMENT_OK",
28728
+ "direction": "in",
28729
+ "traitName": "OrderFlow"
28730
+ }
28731
+ ]
28732
+ }
28138
28733
  }
28139
28734
  }
28140
28735
  },
@@ -50152,7 +50747,6 @@
50152
50747
  },
50153
50748
  "required": [
50154
50749
  "name",
50155
- "parent",
50156
50750
  "pivot",
50157
50751
  "tip"
50158
50752
  ]
@@ -51140,6 +51734,524 @@
51140
51734
  "description": "className prop"
51141
51735
  }
51142
51736
  }
51737
+ },
51738
+ "avl-state-machine": {
51739
+ "type": "avl-state-machine",
51740
+ "category": "display",
51741
+ "sourceFile": "components/avl/molecules/AvlStateMachine.tsx",
51742
+ "tier": "molecules",
51743
+ "family": "avl",
51744
+ "description": "AvlStateMachine component",
51745
+ "suggestedFor": [
51746
+ "avl",
51747
+ "state",
51748
+ "machine",
51749
+ "avl state machine"
51750
+ ],
51751
+ "typicalSize": "medium",
51752
+ "propsSchema": {
51753
+ "trait": {
51754
+ "types": [
51755
+ "object"
51756
+ ],
51757
+ "description": "The trait to draw (see `parseTraitLevel`).",
51758
+ "required": true,
51759
+ "properties": {
51760
+ "name": {
51761
+ "types": [
51762
+ "string"
51763
+ ]
51764
+ },
51765
+ "linkedEntity": {
51766
+ "types": [
51767
+ "string"
51768
+ ]
51769
+ },
51770
+ "states": {
51771
+ "types": [
51772
+ "array"
51773
+ ],
51774
+ "items": {
51775
+ "types": [
51776
+ "object"
51777
+ ],
51778
+ "properties": {
51779
+ "name": {
51780
+ "types": [
51781
+ "string"
51782
+ ]
51783
+ },
51784
+ "isInitial": {
51785
+ "types": [
51786
+ "boolean"
51787
+ ]
51788
+ },
51789
+ "isTerminal": {
51790
+ "types": [
51791
+ "boolean"
51792
+ ]
51793
+ }
51794
+ },
51795
+ "required": [
51796
+ "name"
51797
+ ]
51798
+ }
51799
+ },
51800
+ "transitions": {
51801
+ "types": [
51802
+ "array"
51803
+ ],
51804
+ "items": {
51805
+ "types": [
51806
+ "object"
51807
+ ],
51808
+ "properties": {
51809
+ "from": {
51810
+ "types": [
51811
+ "string"
51812
+ ]
51813
+ },
51814
+ "to": {
51815
+ "types": [
51816
+ "string"
51817
+ ]
51818
+ },
51819
+ "event": {
51820
+ "types": [
51821
+ "string"
51822
+ ]
51823
+ },
51824
+ "guard": {
51825
+ "types": [
51826
+ "sexpr"
51827
+ ]
51828
+ },
51829
+ "effects": {
51830
+ "types": [
51831
+ "array"
51832
+ ],
51833
+ "items": {
51834
+ "types": [
51835
+ "object"
51836
+ ],
51837
+ "properties": {
51838
+ "type": {
51839
+ "types": [
51840
+ "string"
51841
+ ]
51842
+ },
51843
+ "args": {
51844
+ "types": [
51845
+ "array"
51846
+ ],
51847
+ "items": {
51848
+ "types": [
51849
+ "sexpr"
51850
+ ]
51851
+ }
51852
+ }
51853
+ },
51854
+ "required": [
51855
+ "type",
51856
+ "args"
51857
+ ]
51858
+ }
51859
+ },
51860
+ "index": {
51861
+ "types": [
51862
+ "number"
51863
+ ]
51864
+ }
51865
+ },
51866
+ "required": [
51867
+ "from",
51868
+ "to",
51869
+ "event",
51870
+ "effects",
51871
+ "index"
51872
+ ]
51873
+ }
51874
+ },
51875
+ "emittedEvents": {
51876
+ "types": [
51877
+ "array"
51878
+ ],
51879
+ "items": {
51880
+ "types": [
51881
+ "string"
51882
+ ]
51883
+ }
51884
+ },
51885
+ "listenedEvents": {
51886
+ "types": [
51887
+ "array"
51888
+ ],
51889
+ "items": {
51890
+ "types": [
51891
+ "string"
51892
+ ]
51893
+ }
51894
+ }
51895
+ },
51896
+ "propertyRequired": [
51897
+ "name",
51898
+ "linkedEntity",
51899
+ "states",
51900
+ "transitions",
51901
+ "emittedEvents",
51902
+ "listenedEvents"
51903
+ ],
51904
+ "example": {
51905
+ "name": "OrderFlow",
51906
+ "linkedEntity": "Order",
51907
+ "states": [
51908
+ {
51909
+ "name": "browsing",
51910
+ "isInitial": true,
51911
+ "isTerminal": false
51912
+ },
51913
+ {
51914
+ "name": "editing",
51915
+ "isInitial": false,
51916
+ "isTerminal": false
51917
+ },
51918
+ {
51919
+ "name": "saving",
51920
+ "isInitial": false,
51921
+ "isTerminal": false
51922
+ },
51923
+ {
51924
+ "name": "confirmed",
51925
+ "isInitial": false,
51926
+ "isTerminal": true
51927
+ },
51928
+ {
51929
+ "name": "failed",
51930
+ "isInitial": false,
51931
+ "isTerminal": false
51932
+ }
51933
+ ],
51934
+ "transitions": [
51935
+ {
51936
+ "from": "browsing",
51937
+ "to": "editing",
51938
+ "event": "EDIT",
51939
+ "effects": [
51940
+ {
51941
+ "type": "render-ui",
51942
+ "args": []
51943
+ }
51944
+ ],
51945
+ "index": 0
51946
+ },
51947
+ {
51948
+ "from": "editing",
51949
+ "to": "saving",
51950
+ "event": "SAVE",
51951
+ "effects": [
51952
+ {
51953
+ "type": "persist",
51954
+ "args": []
51955
+ },
51956
+ {
51957
+ "type": "notify",
51958
+ "args": []
51959
+ }
51960
+ ],
51961
+ "index": 1
51962
+ },
51963
+ {
51964
+ "from": "saving",
51965
+ "to": "confirmed",
51966
+ "event": "SAVED",
51967
+ "effects": [
51968
+ {
51969
+ "type": "emit",
51970
+ "args": []
51971
+ },
51972
+ {
51973
+ "type": "render-ui",
51974
+ "args": []
51975
+ }
51976
+ ],
51977
+ "index": 2
51978
+ },
51979
+ {
51980
+ "from": "saving",
51981
+ "to": "failed",
51982
+ "event": "SAVE_FAILED",
51983
+ "effects": [
51984
+ {
51985
+ "type": "notify",
51986
+ "args": []
51987
+ }
51988
+ ],
51989
+ "index": 3
51990
+ },
51991
+ {
51992
+ "from": "failed",
51993
+ "to": "editing",
51994
+ "event": "RETRY",
51995
+ "effects": [],
51996
+ "index": 4
51997
+ },
51998
+ {
51999
+ "from": "editing",
52000
+ "to": "browsing",
52001
+ "event": "CANCEL",
52002
+ "effects": [
52003
+ {
52004
+ "type": "render-ui",
52005
+ "args": []
52006
+ }
52007
+ ],
52008
+ "index": 5
52009
+ },
52010
+ {
52011
+ "from": "confirmed",
52012
+ "to": "browsing",
52013
+ "event": "DONE",
52014
+ "effects": [
52015
+ {
52016
+ "type": "navigate",
52017
+ "args": []
52018
+ }
52019
+ ],
52020
+ "index": 6
52021
+ }
52022
+ ],
52023
+ "emittedEvents": [
52024
+ "ORDER_SAVED"
52025
+ ],
52026
+ "listenedEvents": [
52027
+ "PAYMENT_OK"
52028
+ ]
52029
+ }
52030
+ },
52031
+ "activeState": {
52032
+ "types": [
52033
+ "string"
52034
+ ],
52035
+ "description": "State execution is currently in."
52036
+ },
52037
+ "activeTransition": {
52038
+ "types": [
52039
+ "number"
52040
+ ],
52041
+ "description": "`index` of the transition that just fired."
52042
+ },
52043
+ "visitedStates": {
52044
+ "types": [
52045
+ "array"
52046
+ ],
52047
+ "description": "States already passed through, in order.",
52048
+ "items": {
52049
+ "types": [
52050
+ "string"
52051
+ ]
52052
+ }
52053
+ },
52054
+ "stateClickEvent": {
52055
+ "types": [
52056
+ "string"
52057
+ ],
52058
+ "description": "Emits UI:{stateClickEvent} with { stateId } when a state is clicked.",
52059
+ "kind": "event-ref",
52060
+ "emitPayloadSchema": [
52061
+ {
52062
+ "name": "stateId",
52063
+ "type": "string",
52064
+ "required": true
52065
+ }
52066
+ ]
52067
+ },
52068
+ "transitionClickEvent": {
52069
+ "types": [
52070
+ "string"
52071
+ ],
52072
+ "description": "Emits UI:{transitionClickEvent} with { index, event, from, to } when a transition label is clicked.",
52073
+ "kind": "event-ref",
52074
+ "emitPayloadSchema": [
52075
+ {
52076
+ "name": "index",
52077
+ "type": "number",
52078
+ "required": true
52079
+ },
52080
+ {
52081
+ "name": "event",
52082
+ "type": "string",
52083
+ "required": true
52084
+ },
52085
+ {
52086
+ "name": "from",
52087
+ "type": "string",
52088
+ "required": true
52089
+ },
52090
+ {
52091
+ "name": "to",
52092
+ "type": "string",
52093
+ "required": true
52094
+ }
52095
+ ]
52096
+ },
52097
+ "selectedState": {
52098
+ "types": [
52099
+ "string"
52100
+ ],
52101
+ "description": "State picked in an editor (first click)."
52102
+ },
52103
+ "pendingSourceState": {
52104
+ "types": [
52105
+ "string"
52106
+ ],
52107
+ "description": "Source of a transition being drawn — the next state click picks its target."
52108
+ },
52109
+ "nodeShape": {
52110
+ "types": [
52111
+ "string"
52112
+ ],
52113
+ "description": "Node silhouette. @default 'pill'",
52114
+ "enumValues": [
52115
+ "pill",
52116
+ "gear"
52117
+ ],
52118
+ "default": "pill"
52119
+ },
52120
+ "entityFields": {
52121
+ "types": [
52122
+ "array"
52123
+ ],
52124
+ "description": "Entity field names listed in the header.",
52125
+ "items": {
52126
+ "types": [
52127
+ "string"
52128
+ ]
52129
+ }
52130
+ },
52131
+ "direction": {
52132
+ "types": [
52133
+ "string"
52134
+ ],
52135
+ "description": "Flow direction. @default 'ltr'",
52136
+ "enumValues": [
52137
+ "ltr",
52138
+ "rtl"
52139
+ ],
52140
+ "default": "ltr"
52141
+ },
52142
+ "showHeader": {
52143
+ "types": [
52144
+ "boolean"
52145
+ ],
52146
+ "description": "Show the trait header (name, entity, listens/emits). @default true",
52147
+ "default": true
52148
+ },
52149
+ "className": {
52150
+ "types": [
52151
+ "string"
52152
+ ],
52153
+ "description": "className prop"
52154
+ }
52155
+ }
52156
+ },
52157
+ "avl-glyph": {
52158
+ "type": "avl-glyph",
52159
+ "category": "component",
52160
+ "sourceFile": "components/avl/molecules/AvlGlyph.tsx",
52161
+ "tier": "molecules",
52162
+ "family": "avl",
52163
+ "description": "AvlGlyph component",
52164
+ "suggestedFor": [
52165
+ "avl",
52166
+ "glyph",
52167
+ "avl glyph"
52168
+ ],
52169
+ "typicalSize": "medium",
52170
+ "propsSchema": {
52171
+ "kind": {
52172
+ "types": [
52173
+ "string"
52174
+ ],
52175
+ "description": "Which notation symbol to draw.",
52176
+ "required": true,
52177
+ "enumValues": [
52178
+ "application",
52179
+ "orbital",
52180
+ "entity",
52181
+ "trait",
52182
+ "page",
52183
+ "state",
52184
+ "transition",
52185
+ "event",
52186
+ "guard",
52187
+ "effect",
52188
+ "field",
52189
+ "fieldType",
52190
+ "binding",
52191
+ "bindingRef",
52192
+ "persistence",
52193
+ "operator",
52194
+ "sexpr",
52195
+ "literal"
52196
+ ],
52197
+ "example": "state"
52198
+ },
52199
+ "label": {
52200
+ "types": [
52201
+ "string"
52202
+ ],
52203
+ "description": "Caption, and the drawn text for operator / literal / bindingRef symbols."
52204
+ },
52205
+ "effectType": {
52206
+ "types": [
52207
+ "string"
52208
+ ],
52209
+ "description": "Effect symbol variant. @default 'set'"
52210
+ },
52211
+ "fieldType": {
52212
+ "types": [
52213
+ "object"
52214
+ ],
52215
+ "description": "Field-type symbol variant. @default 'string'"
52216
+ },
52217
+ "persistence": {
52218
+ "types": [
52219
+ "object"
52220
+ ],
52221
+ "description": "Persistence symbol variant (also the entity's ring). @default 'persistent'"
52222
+ },
52223
+ "namespace": {
52224
+ "types": [
52225
+ "object"
52226
+ ],
52227
+ "description": "Operator category tint. @default 'arithmetic'"
52228
+ },
52229
+ "size": {
52230
+ "types": [
52231
+ "string"
52232
+ ],
52233
+ "description": "Symbol height. @default 'md'",
52234
+ "enumValues": [
52235
+ "sm",
52236
+ "md",
52237
+ "lg"
52238
+ ],
52239
+ "default": "md"
52240
+ },
52241
+ "showCaption": {
52242
+ "types": [
52243
+ "boolean"
52244
+ ],
52245
+ "description": "Show the caption under the symbol. @default true",
52246
+ "default": true
52247
+ },
52248
+ "className": {
52249
+ "types": [
52250
+ "string"
52251
+ ],
52252
+ "description": "className prop"
52253
+ }
52254
+ }
51143
52255
  }
51144
52256
  },
51145
52257
  "categories": [