@almadar/core 10.91.0 → 10.93.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 (34) hide show
  1. package/dist/builders.d.ts +3 -3
  2. package/dist/builders.js +2 -1
  3. package/dist/builders.js.map +1 -1
  4. package/dist/{effect-Bt8vKHwd.d.ts → effect-BnSE0gKt.d.ts} +26 -3
  5. package/dist/{entityAccess-BdDX85rM.d.ts → entityAccess-DtWseAgf.d.ts} +1 -1
  6. package/dist/factory/index.d.ts +4 -4
  7. package/dist/factory/index.js +402 -38
  8. package/dist/factory/index.js.map +1 -1
  9. package/dist/factory-runtime/index.d.ts +3 -3
  10. package/dist/factory-runtime/index.js +6 -2
  11. package/dist/factory-runtime/index.js.map +1 -1
  12. package/dist/{index-rOBf1Oag.d.ts → index-CWArRU6P.d.ts} +19 -10
  13. package/dist/index.d.ts +11 -72
  14. package/dist/index.js +597 -141
  15. package/dist/index.js.map +1 -1
  16. package/dist/mock/index.d.ts +4 -4
  17. package/dist/patterns/component-mapping.json +6 -1
  18. package/dist/patterns/event-contracts.json +1 -1
  19. package/dist/patterns/index.d.ts +1243 -85
  20. package/dist/patterns/index.js +547 -42
  21. package/dist/patterns/index.js.map +1 -1
  22. package/dist/patterns/integrators-registry.json +136 -1
  23. package/dist/patterns/patterns-registry.json +403 -39
  24. package/dist/patterns/registry.json +403 -39
  25. package/dist/patterns/services-registry.json +136 -1
  26. package/dist/{schema-ovDTDQz9.d.ts → schema-DFmFFcLs.d.ts} +25 -25
  27. package/dist/state-machine/index.js +19 -4
  28. package/dist/state-machine/index.js.map +1 -1
  29. package/dist/{trait-C3e3btfn.d.ts → trait-DSMzclmJ.d.ts} +10 -1
  30. package/dist/types/index.d.ts +5 -5
  31. package/dist/types/index.js +31 -2
  32. package/dist/types/index.js.map +1 -1
  33. package/dist/{types-rh0naR6C.d.ts → types-DzkFdgNJ.d.ts} +2 -2
  34. package/package.json +1 -1
@@ -929,6 +929,7 @@ var patterns_registry_default = {
929
929
  tier: "organisms",
930
930
  family: "core",
931
931
  description: "Data table with columns and sorting",
932
+ fieldsContract: "display",
932
933
  suggestedFor: [
933
934
  "data-dense views",
934
935
  "comparisons",
@@ -1397,6 +1398,48 @@ var patterns_registry_default = {
1397
1398
  "card-rows"
1398
1399
  ],
1399
1400
  default: "dense"
1401
+ },
1402
+ relationsData: {
1403
+ types: [
1404
+ "object"
1405
+ ],
1406
+ description: "Relation display data: { fieldName: [{value, label}] } \u2014 injected server-side by the runtime (relation-option injection) or bound by compiled codegen; resolves stored foreign ids to display names for a column whose field is relation-typed. Same contract DetailPanel takes.",
1407
+ mapValue: {
1408
+ types: [
1409
+ "array"
1410
+ ],
1411
+ items: {
1412
+ types: [
1413
+ "object"
1414
+ ],
1415
+ properties: {
1416
+ value: {
1417
+ types: [
1418
+ "string"
1419
+ ]
1420
+ },
1421
+ label: {
1422
+ types: [
1423
+ "string"
1424
+ ]
1425
+ },
1426
+ description: {
1427
+ types: [
1428
+ "string"
1429
+ ]
1430
+ },
1431
+ disabled: {
1432
+ types: [
1433
+ "boolean"
1434
+ ]
1435
+ }
1436
+ },
1437
+ required: [
1438
+ "value",
1439
+ "label"
1440
+ ]
1441
+ }
1442
+ }
1400
1443
  }
1401
1444
  }
1402
1445
  },
@@ -1627,7 +1670,6 @@ var patterns_registry_default = {
1627
1670
  "function"
1628
1671
  ],
1629
1672
  description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
1630
- kind: "callback",
1631
1673
  callbackArgs: [
1632
1674
  {
1633
1675
  name: "item",
@@ -9456,6 +9498,7 @@ var patterns_registry_default = {
9456
9498
  textarea: {
9457
9499
  type: "textarea",
9458
9500
  category: "component",
9501
+ sourceFile: "components/core/atoms/Textarea.tsx",
9459
9502
  tier: "atoms",
9460
9503
  family: "core",
9461
9504
  description: "Multi-line text input",
@@ -9488,7 +9531,7 @@ var patterns_registry_default = {
9488
9531
  types: [
9489
9532
  "string"
9490
9533
  ],
9491
- description: "Declarative event name for trait dispatch",
9534
+ description: "Declarative event: fires on \u2318/Ctrl+Enter with `{ value }`.",
9492
9535
  kind: "event"
9493
9536
  },
9494
9537
  error: {
@@ -10673,6 +10716,7 @@ var patterns_registry_default = {
10673
10716
  "repeatable-form-section": {
10674
10717
  type: "repeatable-form-section",
10675
10718
  category: "form",
10719
+ sourceFile: "components/core/molecules/RepeatableFormSection.tsx",
10676
10720
  tier: "molecules",
10677
10721
  family: "core",
10678
10722
  description: "RepeatableFormSection \u2014 a form section that repeats a fixed group of fields, letting the user add or remove entries.",
@@ -10736,7 +10780,6 @@ var patterns_registry_default = {
10736
10780
  ],
10737
10781
  description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
10738
10782
  required: true,
10739
- kind: "callback",
10740
10783
  callbackArgs: [
10741
10784
  {
10742
10785
  name: "item",
@@ -18332,6 +18375,7 @@ var patterns_registry_default = {
18332
18375
  "state-machine-view": {
18333
18376
  type: "state-machine-view",
18334
18377
  category: "display",
18378
+ sourceFile: "components/core/organisms/StateMachineView.tsx",
18335
18379
  tier: "organisms",
18336
18380
  family: "core",
18337
18381
  description: "StateMachineView component",
@@ -18399,7 +18443,6 @@ var patterns_registry_default = {
18399
18443
  "function"
18400
18444
  ],
18401
18445
  description: "Custom state node renderer \u2014 when provided, replaces the default circle nodes",
18402
- kind: "callback",
18403
18446
  callbackArgs: [
18404
18447
  {
18405
18448
  name: "state",
@@ -18783,6 +18826,7 @@ var patterns_registry_default = {
18783
18826
  "calendar-grid": {
18784
18827
  type: "calendar-grid",
18785
18828
  category: "display",
18829
+ sourceFile: "components/core/molecules/CalendarGrid.tsx",
18786
18830
  tier: "molecules",
18787
18831
  family: "core",
18788
18832
  description: "CalendarGrid component",
@@ -18920,7 +18964,8 @@ var patterns_registry_default = {
18920
18964
  "object"
18921
18965
  ],
18922
18966
  description: "Additional payload for long-press events",
18923
- payloadFor: "longPressEvent"
18967
+ payloadFor: "longPressEvent",
18968
+ eventPayloadBrand: true
18924
18969
  },
18925
18970
  swipeLeftEvent: {
18926
18971
  types: [
@@ -18982,7 +19027,6 @@ var patterns_registry_default = {
18982
19027
  "function"
18983
19028
  ],
18984
19029
  description: "Render function for one event chip's content. Receives the row and its index in the materialised events array. The grid keeps ownership of placement, colour and the click target; this replaces only what is drawn INSIDE the chip, so a host can show a time + instructor + badge stack instead of the default single label.",
18985
- kind: "callback",
18986
19030
  callbackArgs: [
18987
19031
  {
18988
19032
  name: "item",
@@ -19000,7 +19044,6 @@ var patterns_registry_default = {
19000
19044
  "function"
19001
19045
  ],
19002
19046
  description: 'Per-event render function (schema-level alias for the children render prop). In `.orb`: `["fn", "item", { pattern tree with @item.field bindings }]`. In `.lolo`: `renderItem: (fn item <Component \u2026={@item.field}/>)` \u2014 the same contract `data-list` / `data-grid` / `carousel` already use.',
19003
- kind: "callback",
19004
19047
  callbackArgs: [
19005
19048
  {
19006
19049
  name: "item",
@@ -19546,6 +19589,7 @@ var patterns_registry_default = {
19546
19589
  "progress-dots": {
19547
19590
  type: "progress-dots",
19548
19591
  category: "component",
19592
+ sourceFile: "components/core/molecules/ProgressDots.tsx",
19549
19593
  tier: "molecules",
19550
19594
  family: "core",
19551
19595
  description: "ProgressDots component",
@@ -19575,7 +19619,6 @@ var patterns_registry_default = {
19575
19619
  "function"
19576
19620
  ],
19577
19621
  description: "Custom state resolver per dot index",
19578
- kind: "callback",
19579
19622
  callbackArgs: [
19580
19623
  {
19581
19624
  name: "index",
@@ -19625,6 +19668,7 @@ var patterns_registry_default = {
19625
19668
  family: "core",
19626
19669
  description: "DataGrid \u2014 structured records grid rendering rows over configurable columns, with sort, select, and drag-reorder.",
19627
19670
  capabilities: "admin table, records grid, user list, CRUD list, manage-records view, spreadsheet-style data grid, sortable columns",
19671
+ fieldsContract: "display",
19628
19672
  suggestedFor: [
19629
19673
  "data",
19630
19674
  "grid",
@@ -20031,7 +20075,6 @@ var patterns_registry_default = {
20031
20075
  "function"
20032
20076
  ],
20033
20077
  description: "Render prop for custom per-card content. When provided, `fields` are ignored; `itemActions` render as a footer beneath the custom content.",
20034
- kind: "callback",
20035
20078
  callbackArgs: [
20036
20079
  {
20037
20080
  name: "item",
@@ -20049,7 +20092,6 @@ var patterns_registry_default = {
20049
20092
  "function"
20050
20093
  ],
20051
20094
  description: 'Per-item render function (schema-level alias for children render prop). In .orb schemas: ["fn", "item", { pattern tree with @item.field bindings }] The compiler converts this to the children render prop. In .lolo, author the per-item renderer as renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.',
20052
- kind: "callback",
20053
20095
  callbackArgs: [
20054
20096
  {
20055
20097
  name: "item",
@@ -20082,6 +20124,48 @@ var patterns_registry_default = {
20082
20124
  "card-rows"
20083
20125
  ],
20084
20126
  default: "dense"
20127
+ },
20128
+ relationsData: {
20129
+ types: [
20130
+ "object"
20131
+ ],
20132
+ description: "Relation display data: { fieldName: [{value, label}] } \u2014 injected server-side by the runtime (relation-option injection) or bound by compiled codegen; resolves stored foreign ids to display names for a field whose type is relation. Same contract DetailPanel takes.",
20133
+ mapValue: {
20134
+ types: [
20135
+ "array"
20136
+ ],
20137
+ items: {
20138
+ types: [
20139
+ "object"
20140
+ ],
20141
+ properties: {
20142
+ value: {
20143
+ types: [
20144
+ "string"
20145
+ ]
20146
+ },
20147
+ label: {
20148
+ types: [
20149
+ "string"
20150
+ ]
20151
+ },
20152
+ description: {
20153
+ types: [
20154
+ "string"
20155
+ ]
20156
+ },
20157
+ disabled: {
20158
+ types: [
20159
+ "boolean"
20160
+ ]
20161
+ }
20162
+ },
20163
+ required: [
20164
+ "value",
20165
+ "label"
20166
+ ]
20167
+ }
20168
+ }
20085
20169
  }
20086
20170
  }
20087
20171
  },
@@ -20092,6 +20176,7 @@ var patterns_registry_default = {
20092
20176
  tier: "molecules",
20093
20177
  family: "core",
20094
20178
  description: "DataList component",
20179
+ fieldsContract: "display",
20095
20180
  suggestedFor: [
20096
20181
  "data",
20097
20182
  "list",
@@ -20575,7 +20660,6 @@ var patterns_registry_default = {
20575
20660
  "function"
20576
20661
  ],
20577
20662
  description: "Render prop for custom per-item content. When provided, `fields` and `itemActions` are ignored.",
20578
- kind: "callback",
20579
20663
  callbackArgs: [
20580
20664
  {
20581
20665
  name: "item",
@@ -20593,7 +20677,6 @@ var patterns_registry_default = {
20593
20677
  "function"
20594
20678
  ],
20595
20679
  description: 'Per-item render function (schema-level alias for children render prop). In .orb schemas: ["fn", "item", { pattern tree with @item.field bindings }] The compiler converts this to the children render prop. In .lolo, author the per-item renderer as renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.',
20596
- kind: "callback",
20597
20680
  callbackArgs: [
20598
20681
  {
20599
20682
  name: "item",
@@ -20642,6 +20725,48 @@ var patterns_registry_default = {
20642
20725
  "card-rows"
20643
20726
  ],
20644
20727
  default: "dense"
20728
+ },
20729
+ relationsData: {
20730
+ types: [
20731
+ "object"
20732
+ ],
20733
+ description: "Relation display data: { fieldName: [{value, label}] } \u2014 injected server-side by the runtime (relation-option injection) or bound by compiled codegen; resolves stored foreign ids to display names for a field whose type is relation. Same contract DetailPanel takes.",
20734
+ mapValue: {
20735
+ types: [
20736
+ "array"
20737
+ ],
20738
+ items: {
20739
+ types: [
20740
+ "object"
20741
+ ],
20742
+ properties: {
20743
+ value: {
20744
+ types: [
20745
+ "string"
20746
+ ]
20747
+ },
20748
+ label: {
20749
+ types: [
20750
+ "string"
20751
+ ]
20752
+ },
20753
+ description: {
20754
+ types: [
20755
+ "string"
20756
+ ]
20757
+ },
20758
+ disabled: {
20759
+ types: [
20760
+ "boolean"
20761
+ ]
20762
+ }
20763
+ },
20764
+ required: [
20765
+ "value",
20766
+ "label"
20767
+ ]
20768
+ }
20769
+ }
20645
20770
  }
20646
20771
  }
20647
20772
  },
@@ -20952,6 +21077,7 @@ var patterns_registry_default = {
20952
21077
  "range-slider": {
20953
21078
  type: "range-slider",
20954
21079
  category: "component",
21080
+ sourceFile: "components/core/atoms/RangeSlider.tsx",
20955
21081
  tier: "atoms",
20956
21082
  family: "core",
20957
21083
  description: "RangeSlider component",
@@ -21054,7 +21180,8 @@ var patterns_registry_default = {
21054
21180
  "object"
21055
21181
  ],
21056
21182
  description: "Payload to include with the action event",
21057
- payloadFor: "action"
21183
+ payloadFor: "action",
21184
+ eventPayloadBrand: true
21058
21185
  },
21059
21186
  onChange: {
21060
21187
  types: [
@@ -21074,7 +21201,6 @@ var patterns_registry_default = {
21074
21201
  "function"
21075
21202
  ],
21076
21203
  description: "Format function for tooltip display",
21077
- kind: "callback",
21078
21204
  callbackArgs: [
21079
21205
  {
21080
21206
  name: "value",
@@ -21924,7 +22050,6 @@ var patterns_registry_default = {
21924
22050
  "function"
21925
22051
  ],
21926
22052
  description: "Render function for each slide. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
21927
- kind: "callback",
21928
22053
  callbackArgs: [
21929
22054
  {
21930
22055
  name: "item",
@@ -21964,7 +22089,6 @@ var patterns_registry_default = {
21964
22089
  "function"
21965
22090
  ],
21966
22091
  description: "Children-as-function fallback for renderItem (compiler compatibility)",
21967
- kind: "callback",
21968
22092
  callbackArgs: [
21969
22093
  {
21970
22094
  name: "item",
@@ -22122,6 +22246,7 @@ var patterns_registry_default = {
22122
22246
  "sortable-list": {
22123
22247
  type: "sortable-list",
22124
22248
  category: "display",
22249
+ sourceFile: "components/core/molecules/SortableList.tsx",
22125
22250
  tier: "molecules",
22126
22251
  family: "core",
22127
22252
  description: "SortableList \u2014 a drag-and-drop reorderable list of items.",
@@ -22149,7 +22274,6 @@ var patterns_registry_default = {
22149
22274
  ],
22150
22275
  description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
22151
22276
  required: true,
22152
- kind: "callback",
22153
22277
  callbackArgs: [
22154
22278
  {
22155
22279
  name: "item",
@@ -22193,7 +22317,8 @@ var patterns_registry_default = {
22193
22317
  "object"
22194
22318
  ],
22195
22319
  description: "reorderPayload prop",
22196
- payloadFor: "reorderEvent"
22320
+ payloadFor: "reorderEvent",
22321
+ eventPayloadBrand: true
22197
22322
  },
22198
22323
  dragHandlePosition: {
22199
22324
  types: [
@@ -31677,6 +31802,7 @@ var patterns_registry_default = {
31677
31802
  "doc-search": {
31678
31803
  type: "doc-search",
31679
31804
  category: "filter",
31805
+ sourceFile: "components/core/molecules/DocSearch.tsx",
31680
31806
  tier: "molecules",
31681
31807
  family: "core",
31682
31808
  description: "DocSearch component",
@@ -31698,7 +31824,6 @@ var patterns_registry_default = {
31698
31824
  "function"
31699
31825
  ],
31700
31826
  description: "Callback invoked with the search query, returns results",
31701
- kind: "callback",
31702
31827
  callbackArgs: [
31703
31828
  {
31704
31829
  name: "query",
@@ -37887,6 +38012,7 @@ var patterns_registry_default = {
37887
38012
  family: "core",
37888
38013
  description: "TableView \u2014 sortable, selectable data table rendering rows over configurable columns, with inline row actions and grouping.",
37889
38014
  capabilities: "admin console table, records list, CRUD data table, user list, manage-users grid, sortable columns, row selection with bulk actions, grouped list view",
38015
+ fieldsContract: "display",
37890
38016
  suggestedFor: [
37891
38017
  "table",
37892
38018
  "view",
@@ -38343,7 +38469,6 @@ var patterns_registry_default = {
38343
38469
  "function"
38344
38470
  ],
38345
38471
  description: "Custom per-row render. When provided, the whole row content is delegated to this function (columns are ignored for the body; the header still renders). Mirrors DataList's children render prop.",
38346
- kind: "callback",
38347
38472
  callbackArgs: [
38348
38473
  {
38349
38474
  name: "item",
@@ -38361,7 +38486,6 @@ var patterns_registry_default = {
38361
38486
  "function"
38362
38487
  ],
38363
38488
  description: 'Per-row render function (schema alias). In .orb: ["fn","item",{...}]. The compiler converts this to the children render prop. In .lolo, author the per-row renderer as renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.',
38364
- kind: "callback",
38365
38489
  callbackArgs: [
38366
38490
  {
38367
38491
  name: "item",
@@ -38387,6 +38511,48 @@ var patterns_registry_default = {
38387
38511
  "bordered"
38388
38512
  ],
38389
38513
  default: "dense"
38514
+ },
38515
+ relationsData: {
38516
+ types: [
38517
+ "object"
38518
+ ],
38519
+ description: "Relation display data: { fieldName: [{value, label}] } \u2014 injected server-side by the runtime (relation-option injection) or bound by compiled codegen; resolves stored foreign ids to display names for a column whose field is relation-typed. Same contract DetailPanel takes.",
38520
+ mapValue: {
38521
+ types: [
38522
+ "array"
38523
+ ],
38524
+ items: {
38525
+ types: [
38526
+ "object"
38527
+ ],
38528
+ properties: {
38529
+ value: {
38530
+ types: [
38531
+ "string"
38532
+ ]
38533
+ },
38534
+ label: {
38535
+ types: [
38536
+ "string"
38537
+ ]
38538
+ },
38539
+ description: {
38540
+ types: [
38541
+ "string"
38542
+ ]
38543
+ },
38544
+ disabled: {
38545
+ types: [
38546
+ "boolean"
38547
+ ]
38548
+ }
38549
+ },
38550
+ required: [
38551
+ "value",
38552
+ "label"
38553
+ ]
38554
+ }
38555
+ }
38390
38556
  }
38391
38557
  }
38392
38558
  },
@@ -38968,6 +39134,7 @@ var patterns_registry_default = {
38968
39134
  "code-runner-panel": {
38969
39135
  type: "code-runner-panel",
38970
39136
  category: "display",
39137
+ sourceFile: "components/core/organisms/CodeRunnerPanel.tsx",
38971
39138
  tier: "organisms",
38972
39139
  family: "core",
38973
39140
  description: "CodeRunnerPanel component",
@@ -39005,7 +39172,6 @@ var patterns_registry_default = {
39005
39172
  "function"
39006
39173
  ],
39007
39174
  description: "Simulate executing the code. Omit to render a read-only block. Real execution is a separate future track \u2014 this callback supplies deterministic simulated output for UI feedback.",
39008
- kind: "callback",
39009
39175
  callbackArgs: [
39010
39176
  {
39011
39177
  name: "code",
@@ -39032,6 +39198,7 @@ var patterns_registry_default = {
39032
39198
  "segment-renderer": {
39033
39199
  type: "segment-renderer",
39034
39200
  category: "display",
39201
+ sourceFile: "components/core/organisms/SegmentRenderer.tsx",
39035
39202
  tier: "organisms",
39036
39203
  family: "core",
39037
39204
  description: "SegmentRenderer component",
@@ -39123,7 +39290,6 @@ var patterns_registry_default = {
39123
39290
  "function"
39124
39291
  ],
39125
39292
  description: "Simulate executing runnable code blocks. Omit to render runnable blocks as read-only. Real execution is a future track.",
39126
- kind: "callback",
39127
39293
  callbackArgs: [
39128
39294
  {
39129
39295
  name: "code",
@@ -39141,7 +39307,6 @@ var patterns_registry_default = {
39141
39307
  "function"
39142
39308
  ],
39143
39309
  description: "Optional render slot for `visualization` segment types. When not provided, visualization segments are silently skipped. Callers can wire this to any custom component or orbital generator.",
39144
- kind: "callback",
39145
39310
  callbackArgs: [
39146
39311
  {
39147
39312
  name: "type",
@@ -39939,22 +40104,26 @@ var patterns_registry_default = {
39939
40104
  types: [
39940
40105
  "object"
39941
40106
  ],
39942
- description: "Maps a keydown `e.code` \u2192 the board's SEMANTIC event (device-agnostic input).",
40107
+ description: "Maps a keydown `e.code` \u2014 optionally prefixed `Mod+` (\u2318/Ctrl), `Shift+`, `Alt+` in that order \u2014 to the board's SEMANTIC event (device-agnostic input), emitted as `UI:{event}`; keystrokes inside inputs/textareas never route.",
40108
+ kind: "event-map",
39943
40109
  mapValue: {
39944
40110
  types: [
39945
40111
  "string"
39946
- ]
40112
+ ],
40113
+ kind: "event"
39947
40114
  }
39948
40115
  },
39949
40116
  keyUpMap: {
39950
40117
  types: [
39951
40118
  "object"
39952
40119
  ],
39953
- description: "Maps a keyup `e.code` \u2192 the board's SEMANTIC event.",
40120
+ description: "Maps a keyup `e.code` \u2014 optionally prefixed `Mod+` (\u2318/Ctrl), `Shift+`, `Alt+` in that order \u2014 to the board's SEMANTIC event, emitted as `UI:{event}`; keystrokes inside inputs/textareas never route.",
40121
+ kind: "event-map",
39954
40122
  mapValue: {
39955
40123
  types: [
39956
40124
  "string"
39957
- ]
40125
+ ],
40126
+ kind: "event"
39958
40127
  }
39959
40128
  },
39960
40129
  editable: {
@@ -40415,10 +40584,12 @@ var patterns_registry_default = {
40415
40584
  "object"
40416
40585
  ],
40417
40586
  description: 'Per-direction PRESS \u2192 the board\'s SEMANTIC event (kind="dpad"), e.g. `{ left: "LEFT", right: "RIGHT", up: "JUMP" }`. Lets the d-pad emit the SAME intent events as the keyboard so the FSM stays device-agnostic.',
40587
+ kind: "event-map",
40418
40588
  mapValue: {
40419
40589
  types: [
40420
40590
  "string"
40421
- ]
40591
+ ],
40592
+ kind: "event"
40422
40593
  }
40423
40594
  },
40424
40595
  directionReleaseEvents: {
@@ -40426,10 +40597,12 @@ var patterns_registry_default = {
40426
40597
  "object"
40427
40598
  ],
40428
40599
  description: 'Per-direction RELEASE \u2192 semantic event, e.g. `{ left: "STOP", right: "STOP" }`. Omit a direction to ignore its release.',
40600
+ kind: "event-map",
40429
40601
  mapValue: {
40430
40602
  types: [
40431
40603
  "string"
40432
- ]
40604
+ ],
40605
+ kind: "event"
40433
40606
  }
40434
40607
  },
40435
40608
  directionAssets: {
@@ -44378,6 +44551,7 @@ var patterns_registry_default = {
44378
44551
  "math-canvas": {
44379
44552
  type: "math-canvas",
44380
44553
  category: "learning",
44554
+ sourceFile: "components/learning/molecules/MathCanvas.tsx",
44381
44555
  tier: "molecules",
44382
44556
  family: "learning",
44383
44557
  description: "MathCanvas component",
@@ -45408,22 +45582,26 @@ var patterns_registry_default = {
45408
45582
  types: [
45409
45583
  "object"
45410
45584
  ],
45411
- description: "Maps a keydown `e.code` \u2192 the board's SEMANTIC event (device-agnostic input), emitted as `UI:{event}` \u2014 same contract as the game canvas keyMap.",
45585
+ description: "Maps a keydown `e.code` \u2014 optionally prefixed `Mod+` (\u2318/Ctrl), `Shift+`, `Alt+` in that order \u2014 to the board's SEMANTIC event (device-agnostic input), emitted as `UI:{event}` \u2014 same contract as the game canvas keyMap; keystrokes inside inputs/textareas never route.",
45586
+ kind: "event-map",
45412
45587
  mapValue: {
45413
45588
  types: [
45414
45589
  "string"
45415
- ]
45590
+ ],
45591
+ kind: "event"
45416
45592
  }
45417
45593
  },
45418
45594
  keyUpMap: {
45419
45595
  types: [
45420
45596
  "object"
45421
45597
  ],
45422
- description: "Maps a keyup `e.code` \u2192 the board's SEMANTIC event.",
45598
+ description: "Maps a keyup `e.code` \u2014 optionally prefixed `Mod+` (\u2318/Ctrl), `Shift+`, `Alt+` in that order \u2014 to the board's SEMANTIC event, emitted as `UI:{event}`; keystrokes inside inputs/textareas never route.",
45599
+ kind: "event-map",
45423
45600
  mapValue: {
45424
45601
  types: [
45425
45602
  "string"
45426
- ]
45603
+ ],
45604
+ kind: "event"
45427
45605
  }
45428
45606
  },
45429
45607
  isLoading: {
@@ -51172,22 +51350,26 @@ var patterns_registry_default = {
51172
51350
  types: [
51173
51351
  "object"
51174
51352
  ],
51175
- description: "keyMap prop",
51353
+ description: "Maps a keydown `e.code` \u2014 optionally prefixed `Mod+` (\u2318/Ctrl), `Shift+`, `Alt+` in that order \u2014 to the board's SEMANTIC event (device-agnostic input), emitted as `UI:{event}`; keystrokes inside inputs/textareas never route.",
51354
+ kind: "event-map",
51176
51355
  mapValue: {
51177
51356
  types: [
51178
51357
  "string"
51179
- ]
51358
+ ],
51359
+ kind: "event"
51180
51360
  }
51181
51361
  },
51182
51362
  keyUpMap: {
51183
51363
  types: [
51184
51364
  "object"
51185
51365
  ],
51186
- description: "keyUpMap prop",
51366
+ description: "Maps a keyup `e.code` \u2014 optionally prefixed `Mod+` (\u2318/Ctrl), `Shift+`, `Alt+` in that order \u2014 to the board's SEMANTIC event, emitted as `UI:{event}`; keystrokes inside inputs/textareas never route.",
51367
+ kind: "event-map",
51187
51368
  mapValue: {
51188
51369
  types: [
51189
51370
  "string"
51190
- ]
51371
+ ],
51372
+ kind: "event"
51191
51373
  }
51192
51374
  },
51193
51375
  editable: {
@@ -55252,6 +55434,188 @@ var patterns_registry_default = {
55252
55434
  }
55253
55435
  },
55254
55436
  drawable: true
55437
+ },
55438
+ gantt: {
55439
+ type: "gantt",
55440
+ category: "component",
55441
+ sourceFile: "components/core/molecules/Gantt.tsx",
55442
+ tier: "molecules",
55443
+ family: "core",
55444
+ description: "Gantt \u2014 view-only task schedule rendering rows as bars on a day axis.",
55445
+ capabilities: "gantt chart, project timeline, schedule view, task bars, dependency arrows, roadmap, milestone plan",
55446
+ fieldsContract: "display",
55447
+ suggestedFor: [
55448
+ "gantt"
55449
+ ],
55450
+ typicalSize: "medium",
55451
+ propsSchema: {
55452
+ tasks: {
55453
+ types: [
55454
+ "object",
55455
+ "array"
55456
+ ],
55457
+ description: 'Schema entity data \u2014 the task rows to place on the axis. pattern-sync tags it `kind:"entity", cardinality:"collection"` so consumers bind the domain entity without name-matching the prop.',
55458
+ kind: "entity",
55459
+ cardinality: "collection",
55460
+ default: []
55461
+ },
55462
+ links: {
55463
+ types: [
55464
+ "array"
55465
+ ],
55466
+ description: "Dependency arrows between task ids",
55467
+ items: {
55468
+ types: [
55469
+ "object"
55470
+ ],
55471
+ properties: {
55472
+ from: {
55473
+ types: [
55474
+ "string"
55475
+ ]
55476
+ },
55477
+ to: {
55478
+ types: [
55479
+ "string"
55480
+ ]
55481
+ }
55482
+ },
55483
+ required: [
55484
+ "from",
55485
+ "to"
55486
+ ]
55487
+ },
55488
+ default: []
55489
+ },
55490
+ titleField: {
55491
+ types: [
55492
+ "string"
55493
+ ],
55494
+ description: "Row field holding the bar label. Defaults to `title`.",
55495
+ default: "title"
55496
+ },
55497
+ startField: {
55498
+ types: [
55499
+ "string"
55500
+ ],
55501
+ description: "Row field holding the start timestamp (ISO or epoch). Defaults to `start`.",
55502
+ default: "start"
55503
+ },
55504
+ endField: {
55505
+ types: [
55506
+ "string"
55507
+ ],
55508
+ description: "Row field holding the end timestamp (ISO or epoch). Defaults to `end`. When absent, `durationField` (days) is used instead.",
55509
+ default: "end"
55510
+ },
55511
+ durationField: {
55512
+ types: [
55513
+ "string"
55514
+ ],
55515
+ description: "Row field holding the task length in days, used when the row has no end."
55516
+ },
55517
+ statusField: {
55518
+ types: [
55519
+ "string"
55520
+ ],
55521
+ description: "Row field holding the bar status (drives bar colour). Defaults to `status`.",
55522
+ default: "status"
55523
+ },
55524
+ groupField: {
55525
+ types: [
55526
+ "string"
55527
+ ],
55528
+ description: "Row field rows are grouped under header rows by. Empty (default) = flat list.",
55529
+ default: ""
55530
+ },
55531
+ rangeStart: {
55532
+ types: [
55533
+ "string",
55534
+ "date"
55535
+ ],
55536
+ description: "First visible day (ISO or Date). Defaults to 2 days before the earliest task."
55537
+ },
55538
+ rangeEnd: {
55539
+ types: [
55540
+ "string",
55541
+ "date"
55542
+ ],
55543
+ description: "Last visible day (ISO or Date). Defaults to 2 days after the latest task end."
55544
+ },
55545
+ showToday: {
55546
+ types: [
55547
+ "boolean"
55548
+ ],
55549
+ description: "Paint the today marker line when today falls inside the range (default true).",
55550
+ default: true
55551
+ },
55552
+ dayWidth: {
55553
+ types: [
55554
+ "number"
55555
+ ],
55556
+ description: "Pixels per day on the axis (default 28)",
55557
+ default: 28
55558
+ },
55559
+ barClickEvent: {
55560
+ types: [
55561
+ "string"
55562
+ ],
55563
+ description: "Event emitted when a bar is clicked: UI:{barClickEvent} with { id }",
55564
+ kind: "event-ref",
55565
+ emitPayloadSchema: [
55566
+ {
55567
+ name: "id",
55568
+ type: "string",
55569
+ required: true
55570
+ }
55571
+ ]
55572
+ },
55573
+ className: {
55574
+ types: [
55575
+ "string"
55576
+ ],
55577
+ description: "Additional CSS classes"
55578
+ },
55579
+ isLoading: {
55580
+ types: [
55581
+ "boolean"
55582
+ ],
55583
+ description: "Loading state",
55584
+ default: false
55585
+ },
55586
+ error: {
55587
+ types: [
55588
+ "object"
55589
+ ],
55590
+ description: "Error state",
55591
+ properties: {
55592
+ message: {
55593
+ types: [
55594
+ "string"
55595
+ ]
55596
+ },
55597
+ name: {
55598
+ types: [
55599
+ "string"
55600
+ ]
55601
+ },
55602
+ code: {
55603
+ types: [
55604
+ "string"
55605
+ ]
55606
+ },
55607
+ stack: {
55608
+ types: [
55609
+ "string"
55610
+ ]
55611
+ }
55612
+ },
55613
+ propertyRequired: [
55614
+ "message"
55615
+ ],
55616
+ default: null
55617
+ }
55618
+ }
55255
55619
  }
55256
55620
  }};
55257
55621
  var JsonValueSchema = z.lazy(