@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
@@ -18187,6 +18187,166 @@ var patterns_registry_default = {
18187
18187
  ],
18188
18188
  renderCallback: true,
18189
18189
  tier: "presentation"
18190
+ },
18191
+ assist: {
18192
+ types: [
18193
+ "function"
18194
+ ],
18195
+ 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 \u2318/Ctrl-. for fixes, listed under the editor. Tab accepts the next, \u2318/Ctrl-Enter accepts all, Escape dismisses.",
18196
+ callbackArgs: [
18197
+ {
18198
+ name: "request",
18199
+ type: "object",
18200
+ schema: {
18201
+ types: [
18202
+ "object"
18203
+ ],
18204
+ properties: {
18205
+ code: {
18206
+ types: [
18207
+ "string"
18208
+ ]
18209
+ },
18210
+ offset: {
18211
+ types: [
18212
+ "number"
18213
+ ]
18214
+ },
18215
+ kind: {
18216
+ types: [
18217
+ "string"
18218
+ ],
18219
+ enumValues: [
18220
+ "complete",
18221
+ "fix"
18222
+ ]
18223
+ },
18224
+ trigger: {
18225
+ types: [
18226
+ "string"
18227
+ ],
18228
+ enumValues: [
18229
+ "idle",
18230
+ "explicit"
18231
+ ]
18232
+ }
18233
+ },
18234
+ required: [
18235
+ "code",
18236
+ "offset",
18237
+ "kind",
18238
+ "trigger"
18239
+ ]
18240
+ }
18241
+ }
18242
+ ],
18243
+ renderCallback: true,
18244
+ tier: "presentation"
18245
+ },
18246
+ problems: {
18247
+ types: [
18248
+ "number"
18249
+ ],
18250
+ 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.",
18251
+ tier: "presentation"
18252
+ },
18253
+ diagnostics: {
18254
+ types: [
18255
+ "array"
18256
+ ],
18257
+ description: "Editable only: problems located in the code (1-based line/column in characters, `endColumn` just past the last one), each underlined exactly \u2014 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.",
18258
+ items: {
18259
+ types: [
18260
+ "object"
18261
+ ],
18262
+ properties: {
18263
+ line: {
18264
+ types: [
18265
+ "number"
18266
+ ]
18267
+ },
18268
+ column: {
18269
+ types: [
18270
+ "number"
18271
+ ]
18272
+ },
18273
+ endLine: {
18274
+ types: [
18275
+ "number"
18276
+ ]
18277
+ },
18278
+ endColumn: {
18279
+ types: [
18280
+ "number"
18281
+ ]
18282
+ },
18283
+ severity: {
18284
+ types: [
18285
+ "string"
18286
+ ],
18287
+ enumValues: [
18288
+ "error",
18289
+ "warning"
18290
+ ]
18291
+ },
18292
+ message: {
18293
+ types: [
18294
+ "string"
18295
+ ]
18296
+ },
18297
+ approximate: {
18298
+ types: [
18299
+ "boolean"
18300
+ ]
18301
+ }
18302
+ },
18303
+ required: [
18304
+ "line",
18305
+ "severity",
18306
+ "message"
18307
+ ]
18308
+ },
18309
+ tier: "presentation"
18310
+ },
18311
+ definitionAt: {
18312
+ types: [
18313
+ "function"
18314
+ ],
18315
+ 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.",
18316
+ callbackArgs: [
18317
+ {
18318
+ name: "identifier",
18319
+ type: "string"
18320
+ }
18321
+ ],
18322
+ renderCallback: true
18323
+ },
18324
+ onGoToDefinition: {
18325
+ types: [
18326
+ "function"
18327
+ ],
18328
+ description: "Editable only: Cmd/Ctrl+click, or Cmd/Ctrl+Enter at the caret, on an identifier `definitionAt` accepts.",
18329
+ kind: "callback",
18330
+ callbackArgs: [
18331
+ {
18332
+ name: "identifier",
18333
+ type: "string"
18334
+ }
18335
+ ]
18336
+ },
18337
+ diagnosticsCode: {
18338
+ types: [
18339
+ "string"
18340
+ ],
18341
+ 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.",
18342
+ tier: "presentation"
18343
+ },
18344
+ lineNumbers: {
18345
+ types: [
18346
+ "boolean"
18347
+ ],
18348
+ description: "Editable only: number the lines in a gutter (lines with errors in red). Default on.",
18349
+ tier: "presentation"
18190
18350
  }
18191
18351
  }
18192
18352
  },
@@ -18518,18 +18678,284 @@ var patterns_registry_default = {
18518
18678
  ],
18519
18679
  typicalSize: "large",
18520
18680
  propsSchema: {
18681
+ activeState: {
18682
+ types: [
18683
+ "string"
18684
+ ],
18685
+ description: "State execution is currently in."
18686
+ },
18687
+ activeTransition: {
18688
+ types: [
18689
+ "number"
18690
+ ],
18691
+ description: "`index` of the transition that just fired."
18692
+ },
18693
+ visitedStates: {
18694
+ types: [
18695
+ "array"
18696
+ ],
18697
+ description: "States already passed through, in order.",
18698
+ items: {
18699
+ types: [
18700
+ "string"
18701
+ ]
18702
+ }
18703
+ },
18704
+ stateClickEvent: {
18705
+ types: [
18706
+ "string"
18707
+ ],
18708
+ description: "Emits UI:{stateClickEvent} with { stateId } when a state is clicked.",
18709
+ kind: "event-ref",
18710
+ emitPayloadSchema: [
18711
+ {
18712
+ name: "stateId",
18713
+ type: "string",
18714
+ required: true
18715
+ }
18716
+ ]
18717
+ },
18718
+ transitionClickEvent: {
18719
+ types: [
18720
+ "string"
18721
+ ],
18722
+ description: "Emits UI:{transitionClickEvent} with { index, event, from, to } when a transition label is clicked.",
18723
+ kind: "event-ref",
18724
+ emitPayloadSchema: [
18725
+ {
18726
+ name: "index",
18727
+ type: "number",
18728
+ required: true
18729
+ },
18730
+ {
18731
+ name: "event",
18732
+ type: "string",
18733
+ required: true
18734
+ },
18735
+ {
18736
+ name: "from",
18737
+ type: "string",
18738
+ required: true
18739
+ },
18740
+ {
18741
+ name: "to",
18742
+ type: "string",
18743
+ required: true
18744
+ }
18745
+ ]
18746
+ },
18747
+ selectedState: {
18748
+ types: [
18749
+ "string"
18750
+ ],
18751
+ description: "State picked in an editor (first click)."
18752
+ },
18753
+ pendingSourceState: {
18754
+ types: [
18755
+ "string"
18756
+ ],
18757
+ description: "Source of a transition being drawn \u2014 the next state click picks its target."
18758
+ },
18759
+ nodeShape: {
18760
+ types: [
18761
+ "string"
18762
+ ],
18763
+ description: "Node silhouette. @default 'pill'",
18764
+ enumValues: [
18765
+ "pill",
18766
+ "gear"
18767
+ ]
18768
+ },
18769
+ entityFields: {
18770
+ types: [
18771
+ "array"
18772
+ ],
18773
+ description: "Entity field names listed in the header.",
18774
+ items: {
18775
+ types: [
18776
+ "string"
18777
+ ]
18778
+ }
18779
+ },
18780
+ direction: {
18781
+ types: [
18782
+ "string"
18783
+ ],
18784
+ description: "Flow direction. @default 'ltr'",
18785
+ enumValues: [
18786
+ "ltr",
18787
+ "rtl"
18788
+ ]
18789
+ },
18790
+ showHeader: {
18791
+ types: [
18792
+ "boolean"
18793
+ ],
18794
+ description: "Show the trait header (name, entity, listens/emits). @default true"
18795
+ },
18521
18796
  className: {
18522
18797
  types: [
18523
18798
  "string"
18524
18799
  ],
18525
- description: "Additional CSS classes",
18526
- default: ""
18800
+ description: "className prop"
18801
+ },
18802
+ trait: {
18803
+ types: [
18804
+ "object"
18805
+ ],
18806
+ description: "The trait to draw (see `parseTraitLevel` / `traitLevelFromTrait`).",
18807
+ properties: {
18808
+ name: {
18809
+ types: [
18810
+ "string"
18811
+ ]
18812
+ },
18813
+ linkedEntity: {
18814
+ types: [
18815
+ "string"
18816
+ ]
18817
+ },
18818
+ states: {
18819
+ types: [
18820
+ "array"
18821
+ ],
18822
+ items: {
18823
+ types: [
18824
+ "object"
18825
+ ],
18826
+ properties: {
18827
+ name: {
18828
+ types: [
18829
+ "string"
18830
+ ]
18831
+ },
18832
+ isInitial: {
18833
+ types: [
18834
+ "boolean"
18835
+ ]
18836
+ },
18837
+ isTerminal: {
18838
+ types: [
18839
+ "boolean"
18840
+ ]
18841
+ }
18842
+ },
18843
+ required: [
18844
+ "name"
18845
+ ]
18846
+ }
18847
+ },
18848
+ transitions: {
18849
+ types: [
18850
+ "array"
18851
+ ],
18852
+ items: {
18853
+ types: [
18854
+ "object"
18855
+ ],
18856
+ properties: {
18857
+ from: {
18858
+ types: [
18859
+ "string"
18860
+ ]
18861
+ },
18862
+ to: {
18863
+ types: [
18864
+ "string"
18865
+ ]
18866
+ },
18867
+ event: {
18868
+ types: [
18869
+ "string"
18870
+ ]
18871
+ },
18872
+ guard: {
18873
+ types: [
18874
+ "sexpr"
18875
+ ]
18876
+ },
18877
+ effects: {
18878
+ types: [
18879
+ "array"
18880
+ ],
18881
+ items: {
18882
+ types: [
18883
+ "object"
18884
+ ],
18885
+ properties: {
18886
+ type: {
18887
+ types: [
18888
+ "string"
18889
+ ]
18890
+ },
18891
+ args: {
18892
+ types: [
18893
+ "array"
18894
+ ],
18895
+ items: {
18896
+ types: [
18897
+ "sexpr"
18898
+ ]
18899
+ }
18900
+ }
18901
+ },
18902
+ required: [
18903
+ "type",
18904
+ "args"
18905
+ ]
18906
+ }
18907
+ },
18908
+ index: {
18909
+ types: [
18910
+ "number"
18911
+ ]
18912
+ }
18913
+ },
18914
+ required: [
18915
+ "from",
18916
+ "to",
18917
+ "event",
18918
+ "effects",
18919
+ "index"
18920
+ ]
18921
+ }
18922
+ },
18923
+ emittedEvents: {
18924
+ types: [
18925
+ "array"
18926
+ ],
18927
+ items: {
18928
+ types: [
18929
+ "string"
18930
+ ]
18931
+ }
18932
+ },
18933
+ listenedEvents: {
18934
+ types: [
18935
+ "array"
18936
+ ],
18937
+ items: {
18938
+ types: [
18939
+ "string"
18940
+ ]
18941
+ }
18942
+ }
18943
+ },
18944
+ propertyRequired: [
18945
+ "name",
18946
+ "linkedEntity",
18947
+ "states",
18948
+ "transitions",
18949
+ "emittedEvents",
18950
+ "listenedEvents"
18951
+ ]
18527
18952
  },
18528
18953
  isLoading: {
18529
18954
  types: [
18530
18955
  "boolean"
18531
18956
  ],
18532
- description: "Loading state indicator"
18957
+ description: "Loading state indicator",
18958
+ default: false
18533
18959
  },
18534
18960
  error: {
18535
18961
  types: [
@@ -18560,224 +18986,8 @@ var patterns_registry_default = {
18560
18986
  },
18561
18987
  propertyRequired: [
18562
18988
  "message"
18563
- ]
18564
- },
18565
- layoutData: {
18566
- types: [
18567
- "object"
18568
- ],
18569
- 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`).",
18570
- nonAuthorable: true
18571
- },
18572
- renderStateNode: {
18573
- types: [
18574
- "function"
18575
18989
  ],
18576
- description: "Custom state node renderer \u2014 when provided, replaces the default circle nodes",
18577
- callbackArgs: [
18578
- {
18579
- name: "state",
18580
- type: "object",
18581
- schema: {
18582
- types: [
18583
- "object"
18584
- ],
18585
- properties: {
18586
- id: {
18587
- types: [
18588
- "string"
18589
- ]
18590
- },
18591
- name: {
18592
- types: [
18593
- "string"
18594
- ]
18595
- },
18596
- x: {
18597
- types: [
18598
- "number"
18599
- ]
18600
- },
18601
- y: {
18602
- types: [
18603
- "number"
18604
- ]
18605
- },
18606
- radius: {
18607
- types: [
18608
- "number"
18609
- ]
18610
- },
18611
- isInitial: {
18612
- types: [
18613
- "boolean"
18614
- ]
18615
- },
18616
- isFinal: {
18617
- types: [
18618
- "boolean"
18619
- ]
18620
- },
18621
- description: {
18622
- types: [
18623
- "string"
18624
- ]
18625
- }
18626
- },
18627
- required: [
18628
- "id",
18629
- "name",
18630
- "x",
18631
- "y",
18632
- "radius",
18633
- "isInitial",
18634
- "isFinal"
18635
- ]
18636
- }
18637
- },
18638
- {
18639
- name: "config",
18640
- type: "object",
18641
- schema: {
18642
- types: [
18643
- "object"
18644
- ],
18645
- properties: {
18646
- nodeRadius: {
18647
- types: [
18648
- "number"
18649
- ]
18650
- },
18651
- nodeSpacing: {
18652
- types: [
18653
- "number"
18654
- ]
18655
- },
18656
- initialIndicatorOffset: {
18657
- types: [
18658
- "number"
18659
- ]
18660
- },
18661
- arrowSize: {
18662
- types: [
18663
- "number"
18664
- ]
18665
- },
18666
- colors: {
18667
- types: [
18668
- "object"
18669
- ],
18670
- properties: {
18671
- background: {
18672
- types: [
18673
- "string"
18674
- ]
18675
- },
18676
- node: {
18677
- types: [
18678
- "string"
18679
- ]
18680
- },
18681
- nodeBorder: {
18682
- types: [
18683
- "string"
18684
- ]
18685
- },
18686
- nodeText: {
18687
- types: [
18688
- "string"
18689
- ]
18690
- },
18691
- initialNode: {
18692
- types: [
18693
- "string"
18694
- ]
18695
- },
18696
- finalNode: {
18697
- types: [
18698
- "string"
18699
- ]
18700
- },
18701
- arrow: {
18702
- types: [
18703
- "string"
18704
- ]
18705
- },
18706
- arrowText: {
18707
- types: [
18708
- "string"
18709
- ]
18710
- },
18711
- effectText: {
18712
- types: [
18713
- "string"
18714
- ]
18715
- },
18716
- guardText: {
18717
- types: [
18718
- "string"
18719
- ]
18720
- },
18721
- initial: {
18722
- types: [
18723
- "string"
18724
- ]
18725
- }
18726
- },
18727
- required: [
18728
- "background",
18729
- "node",
18730
- "nodeBorder",
18731
- "nodeText",
18732
- "initialNode",
18733
- "finalNode",
18734
- "arrow",
18735
- "arrowText",
18736
- "effectText",
18737
- "guardText",
18738
- "initial"
18739
- ]
18740
- },
18741
- fonts: {
18742
- types: [
18743
- "object"
18744
- ],
18745
- properties: {
18746
- node: {
18747
- types: [
18748
- "string"
18749
- ]
18750
- },
18751
- event: {
18752
- types: [
18753
- "string"
18754
- ]
18755
- },
18756
- effect: {
18757
- types: [
18758
- "string"
18759
- ]
18760
- }
18761
- },
18762
- required: [
18763
- "node",
18764
- "event",
18765
- "effect"
18766
- ]
18767
- }
18768
- },
18769
- required: [
18770
- "nodeRadius",
18771
- "nodeSpacing",
18772
- "initialIndicatorOffset",
18773
- "arrowSize",
18774
- "colors",
18775
- "fonts"
18776
- ]
18777
- }
18778
- }
18779
- ],
18780
- renderCallback: true
18990
+ default: null
18781
18991
  }
18782
18992
  }
18783
18993
  },
@@ -23759,6 +23969,11 @@ var patterns_registry_default = {
23759
23969
  "string"
23760
23970
  ]
23761
23971
  },
23972
+ expandable: {
23973
+ types: [
23974
+ "boolean"
23975
+ ]
23976
+ },
23762
23977
  size: {
23763
23978
  types: [
23764
23979
  "number"
@@ -23850,6 +24065,30 @@ var patterns_registry_default = {
23850
24065
  }
23851
24066
  ]
23852
24067
  },
24068
+ onNodeExpand: {
24069
+ types: [
24070
+ "function"
24071
+ ],
24072
+ description: "Called the first time a node marked `expandable` is expanded, with its path, so its children can be loaded.",
24073
+ kind: "callback",
24074
+ callbackArgs: [
24075
+ {
24076
+ name: "path",
24077
+ type: "string"
24078
+ }
24079
+ ]
24080
+ },
24081
+ expandedPaths: {
24082
+ types: [
24083
+ "array"
24084
+ ],
24085
+ description: "Paths to show expanded (e.g. to reveal a node): each is expanded when it appears here, loading its children if needed.",
24086
+ items: {
24087
+ types: [
24088
+ "string"
24089
+ ]
24090
+ }
24091
+ },
23853
24092
  onNodeSelect: {
23854
24093
  types: [
23855
24094
  "function"
@@ -28335,7 +28574,7 @@ var patterns_registry_default = {
28335
28574
  types: [
28336
28575
  "object"
28337
28576
  ],
28338
- description: "data prop",
28577
+ description: "The orbital to summarize.",
28339
28578
  required: true,
28340
28579
  properties: {
28341
28580
  orbitalName: {
@@ -28350,7 +28589,7 @@ var patterns_registry_default = {
28350
28589
  },
28351
28590
  persistence: {
28352
28591
  types: [
28353
- "string"
28592
+ "object"
28354
28593
  ]
28355
28594
  },
28356
28595
  fields: {
@@ -28522,9 +28761,7 @@ var patterns_registry_default = {
28522
28761
  }
28523
28762
  },
28524
28763
  required: [
28525
- "name",
28526
- "isInitial",
28527
- "isTerminal"
28764
+ "name"
28528
28765
  ]
28529
28766
  }
28530
28767
  },
@@ -28598,7 +28835,6 @@ var patterns_registry_default = {
28598
28835
  "from",
28599
28836
  "to",
28600
28837
  "event",
28601
- "guard",
28602
28838
  "effects",
28603
28839
  "index"
28604
28840
  ]
@@ -28683,7 +28919,188 @@ var patterns_registry_default = {
28683
28919
  "pages",
28684
28920
  "traitDetails",
28685
28921
  "externalLinks"
28686
- ]
28922
+ ],
28923
+ example: {
28924
+ orbitalName: "OrderOrbital",
28925
+ entityName: "Order",
28926
+ persistence: "persistent",
28927
+ fields: [
28928
+ {
28929
+ name: "customer",
28930
+ type: "string",
28931
+ required: true,
28932
+ hasDefault: false
28933
+ },
28934
+ {
28935
+ name: "qty",
28936
+ type: "number",
28937
+ required: true,
28938
+ hasDefault: true
28939
+ },
28940
+ {
28941
+ name: "status",
28942
+ type: "string",
28943
+ required: false,
28944
+ hasDefault: true
28945
+ }
28946
+ ],
28947
+ traits: [
28948
+ {
28949
+ name: "OrderFlow",
28950
+ stateCount: 5,
28951
+ eventCount: 7,
28952
+ transitionCount: 7,
28953
+ emits: [
28954
+ "ORDER_SAVED"
28955
+ ],
28956
+ listens: [
28957
+ "PAYMENT_OK"
28958
+ ]
28959
+ }
28960
+ ],
28961
+ pages: [
28962
+ {
28963
+ name: "Orders",
28964
+ route: "/orders"
28965
+ }
28966
+ ],
28967
+ traitDetails: {
28968
+ OrderFlow: {
28969
+ name: "OrderFlow",
28970
+ linkedEntity: "Order",
28971
+ states: [
28972
+ {
28973
+ name: "browsing",
28974
+ isInitial: true,
28975
+ isTerminal: false
28976
+ },
28977
+ {
28978
+ name: "editing",
28979
+ isInitial: false,
28980
+ isTerminal: false
28981
+ },
28982
+ {
28983
+ name: "saving",
28984
+ isInitial: false,
28985
+ isTerminal: false
28986
+ },
28987
+ {
28988
+ name: "confirmed",
28989
+ isInitial: false,
28990
+ isTerminal: true
28991
+ },
28992
+ {
28993
+ name: "failed",
28994
+ isInitial: false,
28995
+ isTerminal: false
28996
+ }
28997
+ ],
28998
+ transitions: [
28999
+ {
29000
+ from: "browsing",
29001
+ to: "editing",
29002
+ event: "EDIT",
29003
+ effects: [
29004
+ {
29005
+ type: "render-ui",
29006
+ args: []
29007
+ }
29008
+ ],
29009
+ index: 0
29010
+ },
29011
+ {
29012
+ from: "editing",
29013
+ to: "saving",
29014
+ event: "SAVE",
29015
+ effects: [
29016
+ {
29017
+ type: "persist",
29018
+ args: []
29019
+ },
29020
+ {
29021
+ type: "notify",
29022
+ args: []
29023
+ }
29024
+ ],
29025
+ index: 1
29026
+ },
29027
+ {
29028
+ from: "saving",
29029
+ to: "confirmed",
29030
+ event: "SAVED",
29031
+ effects: [
29032
+ {
29033
+ type: "emit",
29034
+ args: []
29035
+ },
29036
+ {
29037
+ type: "render-ui",
29038
+ args: []
29039
+ }
29040
+ ],
29041
+ index: 2
29042
+ },
29043
+ {
29044
+ from: "saving",
29045
+ to: "failed",
29046
+ event: "SAVE_FAILED",
29047
+ effects: [
29048
+ {
29049
+ type: "notify",
29050
+ args: []
29051
+ }
29052
+ ],
29053
+ index: 3
29054
+ },
29055
+ {
29056
+ from: "failed",
29057
+ to: "editing",
29058
+ event: "RETRY",
29059
+ effects: [],
29060
+ index: 4
29061
+ },
29062
+ {
29063
+ from: "editing",
29064
+ to: "browsing",
29065
+ event: "CANCEL",
29066
+ effects: [
29067
+ {
29068
+ type: "render-ui",
29069
+ args: []
29070
+ }
29071
+ ],
29072
+ index: 5
29073
+ },
29074
+ {
29075
+ from: "confirmed",
29076
+ to: "browsing",
29077
+ event: "DONE",
29078
+ effects: [
29079
+ {
29080
+ type: "navigate",
29081
+ args: []
29082
+ }
29083
+ ],
29084
+ index: 6
29085
+ }
29086
+ ],
29087
+ emittedEvents: [
29088
+ "ORDER_SAVED"
29089
+ ],
29090
+ listenedEvents: [
29091
+ "PAYMENT_OK"
29092
+ ]
29093
+ }
29094
+ },
29095
+ externalLinks: [
29096
+ {
29097
+ targetOrbital: "PaymentOrbital",
29098
+ eventName: "PAYMENT_OK",
29099
+ direction: "in",
29100
+ traitName: "OrderFlow"
29101
+ }
29102
+ ]
29103
+ }
28687
29104
  }
28688
29105
  }
28689
29106
  },
@@ -28693,8 +29110,8 @@ var patterns_registry_default = {
28693
29110
  sourceFile: "components/avl/molecules/ModuleCard.tsx",
28694
29111
  tier: "molecules",
28695
29112
  family: "avl",
28696
- description: "ModuleCard \u2014 a card summarizing one course module or lesson with progress and entry point.",
28697
- capabilities: "course module card, lesson card, curriculum unit card, learning-path step card",
29113
+ description: "ModuleCard \u2014 a compact summary card for one orbital module: its entity and fields, a mini state machine per trait, and its pages.",
29114
+ capabilities: "orbital module summary card, entity and trait overview card, app architecture node card",
28698
29115
  suggestedFor: [
28699
29116
  "module",
28700
29117
  "card",
@@ -28706,7 +29123,7 @@ var patterns_registry_default = {
28706
29123
  types: [
28707
29124
  "object"
28708
29125
  ],
28709
- description: "data prop",
29126
+ description: "The orbital to summarize.",
28710
29127
  required: true,
28711
29128
  properties: {
28712
29129
  orbitalName: {
@@ -28721,7 +29138,7 @@ var patterns_registry_default = {
28721
29138
  },
28722
29139
  persistence: {
28723
29140
  types: [
28724
- "string"
29141
+ "object"
28725
29142
  ]
28726
29143
  },
28727
29144
  fields: {
@@ -28893,9 +29310,7 @@ var patterns_registry_default = {
28893
29310
  }
28894
29311
  },
28895
29312
  required: [
28896
- "name",
28897
- "isInitial",
28898
- "isTerminal"
29313
+ "name"
28899
29314
  ]
28900
29315
  }
28901
29316
  },
@@ -28969,7 +29384,6 @@ var patterns_registry_default = {
28969
29384
  "from",
28970
29385
  "to",
28971
29386
  "event",
28972
- "guard",
28973
29387
  "effects",
28974
29388
  "index"
28975
29389
  ]
@@ -29054,7 +29468,188 @@ var patterns_registry_default = {
29054
29468
  "pages",
29055
29469
  "traitDetails",
29056
29470
  "externalLinks"
29057
- ]
29471
+ ],
29472
+ example: {
29473
+ orbitalName: "OrderOrbital",
29474
+ entityName: "Order",
29475
+ persistence: "persistent",
29476
+ fields: [
29477
+ {
29478
+ name: "customer",
29479
+ type: "string",
29480
+ required: true,
29481
+ hasDefault: false
29482
+ },
29483
+ {
29484
+ name: "qty",
29485
+ type: "number",
29486
+ required: true,
29487
+ hasDefault: true
29488
+ },
29489
+ {
29490
+ name: "status",
29491
+ type: "string",
29492
+ required: false,
29493
+ hasDefault: true
29494
+ }
29495
+ ],
29496
+ traits: [
29497
+ {
29498
+ name: "OrderFlow",
29499
+ stateCount: 5,
29500
+ eventCount: 7,
29501
+ transitionCount: 7,
29502
+ emits: [
29503
+ "ORDER_SAVED"
29504
+ ],
29505
+ listens: [
29506
+ "PAYMENT_OK"
29507
+ ]
29508
+ }
29509
+ ],
29510
+ pages: [
29511
+ {
29512
+ name: "Orders",
29513
+ route: "/orders"
29514
+ }
29515
+ ],
29516
+ traitDetails: {
29517
+ OrderFlow: {
29518
+ name: "OrderFlow",
29519
+ linkedEntity: "Order",
29520
+ states: [
29521
+ {
29522
+ name: "browsing",
29523
+ isInitial: true,
29524
+ isTerminal: false
29525
+ },
29526
+ {
29527
+ name: "editing",
29528
+ isInitial: false,
29529
+ isTerminal: false
29530
+ },
29531
+ {
29532
+ name: "saving",
29533
+ isInitial: false,
29534
+ isTerminal: false
29535
+ },
29536
+ {
29537
+ name: "confirmed",
29538
+ isInitial: false,
29539
+ isTerminal: true
29540
+ },
29541
+ {
29542
+ name: "failed",
29543
+ isInitial: false,
29544
+ isTerminal: false
29545
+ }
29546
+ ],
29547
+ transitions: [
29548
+ {
29549
+ from: "browsing",
29550
+ to: "editing",
29551
+ event: "EDIT",
29552
+ effects: [
29553
+ {
29554
+ type: "render-ui",
29555
+ args: []
29556
+ }
29557
+ ],
29558
+ index: 0
29559
+ },
29560
+ {
29561
+ from: "editing",
29562
+ to: "saving",
29563
+ event: "SAVE",
29564
+ effects: [
29565
+ {
29566
+ type: "persist",
29567
+ args: []
29568
+ },
29569
+ {
29570
+ type: "notify",
29571
+ args: []
29572
+ }
29573
+ ],
29574
+ index: 1
29575
+ },
29576
+ {
29577
+ from: "saving",
29578
+ to: "confirmed",
29579
+ event: "SAVED",
29580
+ effects: [
29581
+ {
29582
+ type: "emit",
29583
+ args: []
29584
+ },
29585
+ {
29586
+ type: "render-ui",
29587
+ args: []
29588
+ }
29589
+ ],
29590
+ index: 2
29591
+ },
29592
+ {
29593
+ from: "saving",
29594
+ to: "failed",
29595
+ event: "SAVE_FAILED",
29596
+ effects: [
29597
+ {
29598
+ type: "notify",
29599
+ args: []
29600
+ }
29601
+ ],
29602
+ index: 3
29603
+ },
29604
+ {
29605
+ from: "failed",
29606
+ to: "editing",
29607
+ event: "RETRY",
29608
+ effects: [],
29609
+ index: 4
29610
+ },
29611
+ {
29612
+ from: "editing",
29613
+ to: "browsing",
29614
+ event: "CANCEL",
29615
+ effects: [
29616
+ {
29617
+ type: "render-ui",
29618
+ args: []
29619
+ }
29620
+ ],
29621
+ index: 5
29622
+ },
29623
+ {
29624
+ from: "confirmed",
29625
+ to: "browsing",
29626
+ event: "DONE",
29627
+ effects: [
29628
+ {
29629
+ type: "navigate",
29630
+ args: []
29631
+ }
29632
+ ],
29633
+ index: 6
29634
+ }
29635
+ ],
29636
+ emittedEvents: [
29637
+ "ORDER_SAVED"
29638
+ ],
29639
+ listenedEvents: [
29640
+ "PAYMENT_OK"
29641
+ ]
29642
+ }
29643
+ },
29644
+ externalLinks: [
29645
+ {
29646
+ targetOrbital: "PaymentOrbital",
29647
+ eventName: "PAYMENT_OK",
29648
+ direction: "in",
29649
+ traitName: "OrderFlow"
29650
+ }
29651
+ ]
29652
+ }
29058
29653
  }
29059
29654
  }
29060
29655
  },
@@ -51072,7 +51667,6 @@ var patterns_registry_default = {
51072
51667
  },
51073
51668
  required: [
51074
51669
  "name",
51075
- "parent",
51076
51670
  "pivot",
51077
51671
  "tip"
51078
51672
  ]
@@ -52060,6 +52654,524 @@ var patterns_registry_default = {
52060
52654
  description: "className prop"
52061
52655
  }
52062
52656
  }
52657
+ },
52658
+ "avl-state-machine": {
52659
+ type: "avl-state-machine",
52660
+ category: "display",
52661
+ sourceFile: "components/avl/molecules/AvlStateMachine.tsx",
52662
+ tier: "molecules",
52663
+ family: "avl",
52664
+ description: "AvlStateMachine component",
52665
+ suggestedFor: [
52666
+ "avl",
52667
+ "state",
52668
+ "machine",
52669
+ "avl state machine"
52670
+ ],
52671
+ typicalSize: "medium",
52672
+ propsSchema: {
52673
+ trait: {
52674
+ types: [
52675
+ "object"
52676
+ ],
52677
+ description: "The trait to draw (see `parseTraitLevel`).",
52678
+ required: true,
52679
+ properties: {
52680
+ name: {
52681
+ types: [
52682
+ "string"
52683
+ ]
52684
+ },
52685
+ linkedEntity: {
52686
+ types: [
52687
+ "string"
52688
+ ]
52689
+ },
52690
+ states: {
52691
+ types: [
52692
+ "array"
52693
+ ],
52694
+ items: {
52695
+ types: [
52696
+ "object"
52697
+ ],
52698
+ properties: {
52699
+ name: {
52700
+ types: [
52701
+ "string"
52702
+ ]
52703
+ },
52704
+ isInitial: {
52705
+ types: [
52706
+ "boolean"
52707
+ ]
52708
+ },
52709
+ isTerminal: {
52710
+ types: [
52711
+ "boolean"
52712
+ ]
52713
+ }
52714
+ },
52715
+ required: [
52716
+ "name"
52717
+ ]
52718
+ }
52719
+ },
52720
+ transitions: {
52721
+ types: [
52722
+ "array"
52723
+ ],
52724
+ items: {
52725
+ types: [
52726
+ "object"
52727
+ ],
52728
+ properties: {
52729
+ from: {
52730
+ types: [
52731
+ "string"
52732
+ ]
52733
+ },
52734
+ to: {
52735
+ types: [
52736
+ "string"
52737
+ ]
52738
+ },
52739
+ event: {
52740
+ types: [
52741
+ "string"
52742
+ ]
52743
+ },
52744
+ guard: {
52745
+ types: [
52746
+ "sexpr"
52747
+ ]
52748
+ },
52749
+ effects: {
52750
+ types: [
52751
+ "array"
52752
+ ],
52753
+ items: {
52754
+ types: [
52755
+ "object"
52756
+ ],
52757
+ properties: {
52758
+ type: {
52759
+ types: [
52760
+ "string"
52761
+ ]
52762
+ },
52763
+ args: {
52764
+ types: [
52765
+ "array"
52766
+ ],
52767
+ items: {
52768
+ types: [
52769
+ "sexpr"
52770
+ ]
52771
+ }
52772
+ }
52773
+ },
52774
+ required: [
52775
+ "type",
52776
+ "args"
52777
+ ]
52778
+ }
52779
+ },
52780
+ index: {
52781
+ types: [
52782
+ "number"
52783
+ ]
52784
+ }
52785
+ },
52786
+ required: [
52787
+ "from",
52788
+ "to",
52789
+ "event",
52790
+ "effects",
52791
+ "index"
52792
+ ]
52793
+ }
52794
+ },
52795
+ emittedEvents: {
52796
+ types: [
52797
+ "array"
52798
+ ],
52799
+ items: {
52800
+ types: [
52801
+ "string"
52802
+ ]
52803
+ }
52804
+ },
52805
+ listenedEvents: {
52806
+ types: [
52807
+ "array"
52808
+ ],
52809
+ items: {
52810
+ types: [
52811
+ "string"
52812
+ ]
52813
+ }
52814
+ }
52815
+ },
52816
+ propertyRequired: [
52817
+ "name",
52818
+ "linkedEntity",
52819
+ "states",
52820
+ "transitions",
52821
+ "emittedEvents",
52822
+ "listenedEvents"
52823
+ ],
52824
+ example: {
52825
+ name: "OrderFlow",
52826
+ linkedEntity: "Order",
52827
+ states: [
52828
+ {
52829
+ name: "browsing",
52830
+ isInitial: true,
52831
+ isTerminal: false
52832
+ },
52833
+ {
52834
+ name: "editing",
52835
+ isInitial: false,
52836
+ isTerminal: false
52837
+ },
52838
+ {
52839
+ name: "saving",
52840
+ isInitial: false,
52841
+ isTerminal: false
52842
+ },
52843
+ {
52844
+ name: "confirmed",
52845
+ isInitial: false,
52846
+ isTerminal: true
52847
+ },
52848
+ {
52849
+ name: "failed",
52850
+ isInitial: false,
52851
+ isTerminal: false
52852
+ }
52853
+ ],
52854
+ transitions: [
52855
+ {
52856
+ from: "browsing",
52857
+ to: "editing",
52858
+ event: "EDIT",
52859
+ effects: [
52860
+ {
52861
+ type: "render-ui",
52862
+ args: []
52863
+ }
52864
+ ],
52865
+ index: 0
52866
+ },
52867
+ {
52868
+ from: "editing",
52869
+ to: "saving",
52870
+ event: "SAVE",
52871
+ effects: [
52872
+ {
52873
+ type: "persist",
52874
+ args: []
52875
+ },
52876
+ {
52877
+ type: "notify",
52878
+ args: []
52879
+ }
52880
+ ],
52881
+ index: 1
52882
+ },
52883
+ {
52884
+ from: "saving",
52885
+ to: "confirmed",
52886
+ event: "SAVED",
52887
+ effects: [
52888
+ {
52889
+ type: "emit",
52890
+ args: []
52891
+ },
52892
+ {
52893
+ type: "render-ui",
52894
+ args: []
52895
+ }
52896
+ ],
52897
+ index: 2
52898
+ },
52899
+ {
52900
+ from: "saving",
52901
+ to: "failed",
52902
+ event: "SAVE_FAILED",
52903
+ effects: [
52904
+ {
52905
+ type: "notify",
52906
+ args: []
52907
+ }
52908
+ ],
52909
+ index: 3
52910
+ },
52911
+ {
52912
+ from: "failed",
52913
+ to: "editing",
52914
+ event: "RETRY",
52915
+ effects: [],
52916
+ index: 4
52917
+ },
52918
+ {
52919
+ from: "editing",
52920
+ to: "browsing",
52921
+ event: "CANCEL",
52922
+ effects: [
52923
+ {
52924
+ type: "render-ui",
52925
+ args: []
52926
+ }
52927
+ ],
52928
+ index: 5
52929
+ },
52930
+ {
52931
+ from: "confirmed",
52932
+ to: "browsing",
52933
+ event: "DONE",
52934
+ effects: [
52935
+ {
52936
+ type: "navigate",
52937
+ args: []
52938
+ }
52939
+ ],
52940
+ index: 6
52941
+ }
52942
+ ],
52943
+ emittedEvents: [
52944
+ "ORDER_SAVED"
52945
+ ],
52946
+ listenedEvents: [
52947
+ "PAYMENT_OK"
52948
+ ]
52949
+ }
52950
+ },
52951
+ activeState: {
52952
+ types: [
52953
+ "string"
52954
+ ],
52955
+ description: "State execution is currently in."
52956
+ },
52957
+ activeTransition: {
52958
+ types: [
52959
+ "number"
52960
+ ],
52961
+ description: "`index` of the transition that just fired."
52962
+ },
52963
+ visitedStates: {
52964
+ types: [
52965
+ "array"
52966
+ ],
52967
+ description: "States already passed through, in order.",
52968
+ items: {
52969
+ types: [
52970
+ "string"
52971
+ ]
52972
+ }
52973
+ },
52974
+ stateClickEvent: {
52975
+ types: [
52976
+ "string"
52977
+ ],
52978
+ description: "Emits UI:{stateClickEvent} with { stateId } when a state is clicked.",
52979
+ kind: "event-ref",
52980
+ emitPayloadSchema: [
52981
+ {
52982
+ name: "stateId",
52983
+ type: "string",
52984
+ required: true
52985
+ }
52986
+ ]
52987
+ },
52988
+ transitionClickEvent: {
52989
+ types: [
52990
+ "string"
52991
+ ],
52992
+ description: "Emits UI:{transitionClickEvent} with { index, event, from, to } when a transition label is clicked.",
52993
+ kind: "event-ref",
52994
+ emitPayloadSchema: [
52995
+ {
52996
+ name: "index",
52997
+ type: "number",
52998
+ required: true
52999
+ },
53000
+ {
53001
+ name: "event",
53002
+ type: "string",
53003
+ required: true
53004
+ },
53005
+ {
53006
+ name: "from",
53007
+ type: "string",
53008
+ required: true
53009
+ },
53010
+ {
53011
+ name: "to",
53012
+ type: "string",
53013
+ required: true
53014
+ }
53015
+ ]
53016
+ },
53017
+ selectedState: {
53018
+ types: [
53019
+ "string"
53020
+ ],
53021
+ description: "State picked in an editor (first click)."
53022
+ },
53023
+ pendingSourceState: {
53024
+ types: [
53025
+ "string"
53026
+ ],
53027
+ description: "Source of a transition being drawn \u2014 the next state click picks its target."
53028
+ },
53029
+ nodeShape: {
53030
+ types: [
53031
+ "string"
53032
+ ],
53033
+ description: "Node silhouette. @default 'pill'",
53034
+ enumValues: [
53035
+ "pill",
53036
+ "gear"
53037
+ ],
53038
+ default: "pill"
53039
+ },
53040
+ entityFields: {
53041
+ types: [
53042
+ "array"
53043
+ ],
53044
+ description: "Entity field names listed in the header.",
53045
+ items: {
53046
+ types: [
53047
+ "string"
53048
+ ]
53049
+ }
53050
+ },
53051
+ direction: {
53052
+ types: [
53053
+ "string"
53054
+ ],
53055
+ description: "Flow direction. @default 'ltr'",
53056
+ enumValues: [
53057
+ "ltr",
53058
+ "rtl"
53059
+ ],
53060
+ default: "ltr"
53061
+ },
53062
+ showHeader: {
53063
+ types: [
53064
+ "boolean"
53065
+ ],
53066
+ description: "Show the trait header (name, entity, listens/emits). @default true",
53067
+ default: true
53068
+ },
53069
+ className: {
53070
+ types: [
53071
+ "string"
53072
+ ],
53073
+ description: "className prop"
53074
+ }
53075
+ }
53076
+ },
53077
+ "avl-glyph": {
53078
+ type: "avl-glyph",
53079
+ category: "component",
53080
+ sourceFile: "components/avl/molecules/AvlGlyph.tsx",
53081
+ tier: "molecules",
53082
+ family: "avl",
53083
+ description: "AvlGlyph component",
53084
+ suggestedFor: [
53085
+ "avl",
53086
+ "glyph",
53087
+ "avl glyph"
53088
+ ],
53089
+ typicalSize: "medium",
53090
+ propsSchema: {
53091
+ kind: {
53092
+ types: [
53093
+ "string"
53094
+ ],
53095
+ description: "Which notation symbol to draw.",
53096
+ required: true,
53097
+ enumValues: [
53098
+ "application",
53099
+ "orbital",
53100
+ "entity",
53101
+ "trait",
53102
+ "page",
53103
+ "state",
53104
+ "transition",
53105
+ "event",
53106
+ "guard",
53107
+ "effect",
53108
+ "field",
53109
+ "fieldType",
53110
+ "binding",
53111
+ "bindingRef",
53112
+ "persistence",
53113
+ "operator",
53114
+ "sexpr",
53115
+ "literal"
53116
+ ],
53117
+ example: "state"
53118
+ },
53119
+ label: {
53120
+ types: [
53121
+ "string"
53122
+ ],
53123
+ description: "Caption, and the drawn text for operator / literal / bindingRef symbols."
53124
+ },
53125
+ effectType: {
53126
+ types: [
53127
+ "string"
53128
+ ],
53129
+ description: "Effect symbol variant. @default 'set'"
53130
+ },
53131
+ fieldType: {
53132
+ types: [
53133
+ "object"
53134
+ ],
53135
+ description: "Field-type symbol variant. @default 'string'"
53136
+ },
53137
+ persistence: {
53138
+ types: [
53139
+ "object"
53140
+ ],
53141
+ description: "Persistence symbol variant (also the entity's ring). @default 'persistent'"
53142
+ },
53143
+ namespace: {
53144
+ types: [
53145
+ "object"
53146
+ ],
53147
+ description: "Operator category tint. @default 'arithmetic'"
53148
+ },
53149
+ size: {
53150
+ types: [
53151
+ "string"
53152
+ ],
53153
+ description: "Symbol height. @default 'md'",
53154
+ enumValues: [
53155
+ "sm",
53156
+ "md",
53157
+ "lg"
53158
+ ],
53159
+ default: "md"
53160
+ },
53161
+ showCaption: {
53162
+ types: [
53163
+ "boolean"
53164
+ ],
53165
+ description: "Show the caption under the symbol. @default true",
53166
+ default: true
53167
+ },
53168
+ className: {
53169
+ types: [
53170
+ "string"
53171
+ ],
53172
+ description: "className prop"
53173
+ }
53174
+ }
52063
53175
  }
52064
53176
  }};
52065
53177
  var JsonValueSchema = z.lazy(