@almadar/std 16.150.0 → 16.152.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 (93) hide show
  1. package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +18 -0
  2. package/behaviors/lolo/ui/core/atoms/std-board.lolo +1 -1
  3. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +39 -10
  4. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +13 -1
  5. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +8 -10
  6. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +3 -0
  7. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +6 -1
  8. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +4 -2
  9. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +27 -1
  10. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +57 -0
  11. package/behaviors/lolo/ui/core/molecules/ui-simple-grid.lolo +2 -2
  12. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +3 -1
  13. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +4 -2
  14. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +2 -0
  15. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +3 -1
  16. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +3 -1
  17. package/behaviors/lolo/ui/game/atoms/ui-draw-group.lolo +54 -0
  18. package/behaviors/lolo/ui/game/atoms/ui-draw-shape.lolo +6 -1
  19. package/behaviors/lolo/ui/game/atoms/ui-svg-draw-group.lolo +58 -0
  20. package/behaviors/lolo/ui/game/atoms/ui-svg-draw-shape.lolo +103 -0
  21. package/behaviors/lolo/ui/game/atoms/ui-svg-draw-text.lolo +58 -0
  22. package/behaviors/lolo/ui/game/molecules/ui-draw-shape-layer.lolo +3 -2
  23. package/behaviors/lolo/ui/game/molecules/ui-svg-draw-shape-layer.lolo +52 -0
  24. package/behaviors/lolo/ui/game/molecules/ui-svg-stage.lolo +98 -0
  25. package/behaviors/lolo/ui/learning/atoms/std-branching-logic.lolo +0 -28
  26. package/behaviors/registry/factory-signatures.json +2435 -782
  27. package/behaviors/registry/ui/core/atoms/std-app-search.orb +60 -0
  28. package/behaviors/registry/ui/core/atoms/std-board.orb +1 -1
  29. package/behaviors/registry/ui/core/atoms/std-browse.orb +242 -35
  30. package/behaviors/registry/ui/core/atoms/std-calendar.orb +25 -1
  31. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +8 -10
  32. package/behaviors/registry/ui/core/atoms/std-stats.orb +27 -0
  33. package/behaviors/registry/ui/core/atoms/ui-typography.orb +17 -1
  34. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +39 -2
  35. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +71 -1
  36. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +296 -0
  37. package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +0 -2
  38. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +34 -1
  39. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +49 -2
  40. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +2 -0
  41. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +54 -1
  42. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +33 -1
  43. package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +196 -0
  44. package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +9 -1
  45. package/behaviors/registry/ui/game/atoms/ui-svg-draw-group.orb +186 -0
  46. package/behaviors/registry/ui/game/atoms/ui-svg-draw-shape.orb +259 -0
  47. package/behaviors/registry/ui/game/atoms/ui-svg-draw-text.orb +195 -0
  48. package/behaviors/registry/ui/game/molecules/ui-draw-shape-layer.orb +9 -1
  49. package/behaviors/registry/ui/game/molecules/ui-svg-draw-shape-layer.orb +188 -0
  50. package/behaviors/registry/ui/game/molecules/ui-svg-stage.orb +362 -0
  51. package/behaviors/registry/ui/learning/atoms/std-branching-logic.orb +0 -34
  52. package/dist/behaviors/behaviors-embeddings.json +476 -452
  53. package/dist/behaviors/behaviors-registry.json +2814 -877
  54. package/dist/behaviors/exports-reader.js +143 -4
  55. package/dist/behaviors/functions/index.d.ts +33 -20
  56. package/dist/behaviors/functions/index.js +143 -4
  57. package/dist/behaviors/index.d.ts +1 -1
  58. package/dist/behaviors/index.js +143 -4
  59. package/dist/behaviors/knob-embeddings.json +1 -1
  60. package/dist/behaviors/query.js +143 -4
  61. package/dist/behaviors/registry/factory-signatures.json +2435 -782
  62. package/dist/behaviors/registry/ui/core/atoms/std-app-search.orb +60 -0
  63. package/dist/behaviors/registry/ui/core/atoms/std-board.orb +1 -1
  64. package/dist/behaviors/registry/ui/core/atoms/std-browse.orb +242 -35
  65. package/dist/behaviors/registry/ui/core/atoms/std-calendar.orb +25 -1
  66. package/dist/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +8 -10
  67. package/dist/behaviors/registry/ui/core/atoms/std-stats.orb +27 -0
  68. package/dist/behaviors/registry/ui/core/atoms/ui-typography.orb +17 -1
  69. package/dist/behaviors/registry/ui/core/molecules/ui-data-grid.orb +39 -2
  70. package/dist/behaviors/registry/ui/core/molecules/ui-data-list.orb +71 -1
  71. package/dist/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +296 -0
  72. package/dist/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +0 -2
  73. package/dist/behaviors/registry/ui/core/molecules/ui-table-view.orb +34 -1
  74. package/dist/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +49 -2
  75. package/dist/behaviors/registry/ui/core/organisms/ui-entity-list.orb +2 -0
  76. package/dist/behaviors/registry/ui/core/organisms/ui-entity-table.orb +54 -1
  77. package/dist/behaviors/registry/ui/core/organisms/ui-timeline.orb +33 -1
  78. package/dist/behaviors/registry/ui/game/atoms/ui-draw-group.orb +196 -0
  79. package/dist/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +9 -1
  80. package/dist/behaviors/registry/ui/game/atoms/ui-svg-draw-group.orb +186 -0
  81. package/dist/behaviors/registry/ui/game/atoms/ui-svg-draw-shape.orb +259 -0
  82. package/dist/behaviors/registry/ui/game/atoms/ui-svg-draw-text.orb +195 -0
  83. package/dist/behaviors/registry/ui/game/molecules/ui-draw-shape-layer.orb +9 -1
  84. package/dist/behaviors/registry/ui/game/molecules/ui-svg-draw-shape-layer.orb +188 -0
  85. package/dist/behaviors/registry/ui/game/molecules/ui-svg-stage.orb +362 -0
  86. package/dist/behaviors/registry/ui/learning/atoms/std-branching-logic.orb +0 -34
  87. package/dist/behaviors-embeddings.json +476 -452
  88. package/dist/behaviors-registry.json +2814 -877
  89. package/dist/index.d.ts +1 -1
  90. package/dist/index.js +143 -4
  91. package/dist/knob-embeddings.json +1 -1
  92. package/dist/registry/factory-signatures.json +2435 -782
  93. package/package.json +3 -3
@@ -573,6 +573,36 @@
573
573
  "from": "idle",
574
574
  "to": "searching"
575
575
  },
576
+ {
577
+ "effects": [
578
+ [
579
+ "set",
580
+ "@entity.searchTerm",
581
+ ""
582
+ ],
583
+ [
584
+ "fetch",
585
+ "AppSearchTarget",
586
+ {}
587
+ ],
588
+ [
589
+ "render-ui",
590
+ "main",
591
+ {
592
+ "children": [
593
+ "@config.idleContent"
594
+ ],
595
+ "direction": "vertical",
596
+ "gap": "md",
597
+ "type": "stack"
598
+ }
599
+ ]
600
+ ],
601
+ "event": "INIT",
602
+ "eventId": "evt_01KXG04FP6TY19Y30E3AN5K0C7",
603
+ "from": "searching",
604
+ "to": "idle"
605
+ },
576
606
  {
577
607
  "effects": [
578
608
  [
@@ -728,6 +758,36 @@
728
758
  "from": "searching",
729
759
  "to": "idle"
730
760
  },
761
+ {
762
+ "effects": [
763
+ [
764
+ "set",
765
+ "@entity.searchTerm",
766
+ ""
767
+ ],
768
+ [
769
+ "fetch",
770
+ "AppSearchTarget",
771
+ {}
772
+ ],
773
+ [
774
+ "render-ui",
775
+ "main",
776
+ {
777
+ "children": [
778
+ "@config.idleContent"
779
+ ],
780
+ "direction": "vertical",
781
+ "gap": "md",
782
+ "type": "stack"
783
+ }
784
+ ]
785
+ ],
786
+ "event": "INIT",
787
+ "eventId": "evt_01KXG04FP6TY19Y30E3AN5K0C7",
788
+ "from": "results",
789
+ "to": "idle"
790
+ },
731
791
  {
732
792
  "effects": [
733
793
  [
@@ -780,7 +780,7 @@
780
780
  "label": "@config.cardStageBinding",
781
781
  "size": "sm",
782
782
  "type": "badge",
783
- "variant": "primary"
783
+ "variant": "@col.variant"
784
784
  },
785
785
  {
786
786
  "action": "OPEN_CARD",
@@ -562,6 +562,19 @@
562
562
  "tier": "internal",
563
563
  "type": "string"
564
564
  },
565
+ "detailActions": {
566
+ "default": [
567
+ {
568
+ "event": "CLOSE",
569
+ "label": "Close"
570
+ }
571
+ ],
572
+ "description": "Action buttons on the master-detail record pane (detail-panel `actions` descriptors: label/event/icon/variant). Consumers add their own record actions (Edit/Delete/…) alongside or instead of Close.",
573
+ "label": "Master-detail record pane actions",
574
+ "synonyms": "record actions, detail actions, pane actions",
575
+ "tier": "presentation",
576
+ "type": "json"
577
+ },
565
578
  "detailFields": {
566
579
  "default": [
567
580
  "name",
@@ -669,6 +682,7 @@
669
682
  {
670
683
  "color": "muted",
671
684
  "content": "@config.metaBinding",
685
+ "format": "@config.metaFormat",
672
686
  "type": "typography",
673
687
  "variant": "caption"
674
688
  },
@@ -902,6 +916,22 @@
902
916
  "tier": "internal",
903
917
  "type": "string"
904
918
  },
919
+ "initialFilterField": {
920
+ "default": "",
921
+ "description": "Name the field the INITIAL load filters on, paired with initialFilterValue. This is the detail half of a list-detail pair: a thread that must wait for a conversation to be picked sets the field to its parent key and leaves the value blank, so the first load matches nothing and the empty state shows instead of every record in the table. REFETCH_FILTER then supplies the real selection. Left blank the first load is unfiltered, which is the default.",
922
+ "label": "Which field does the first load filter on?",
923
+ "synonyms": "initial filter, first load filter, wait for selection, detail pane filter, requires selection, start empty",
924
+ "tier": "policy",
925
+ "type": "string"
926
+ },
927
+ "initialFilterValue": {
928
+ "default": "",
929
+ "description": "The value initialFilterField must equal on the first load. Blank is meaningful: it matches only records whose field is itself blank, which for a detail pane is normally none — that is how a thread stays empty until its parent is selected.",
930
+ "label": "What value does the first load filter for?",
931
+ "synonyms": "initial filter value, first load value, default selection",
932
+ "tier": "policy",
933
+ "type": "string"
934
+ },
905
935
  "itemActions": {
906
936
  "default": [],
907
937
  "description": "Buttons rendered on each row (e.g. Edit, Delete, View).",
@@ -1019,15 +1049,10 @@
1019
1049
  },
1020
1050
  {
1021
1051
  "detail": {
1022
- "actions": [
1023
- {
1024
- "event": "CLOSE",
1025
- "label": "Close"
1026
- }
1027
- ],
1052
+ "actions": "@config.detailActions",
1028
1053
  "fieldNames": "@config.detailFields",
1029
1054
  "initialData": "@payload.row",
1030
- "showActions": false,
1055
+ "showActions": true,
1031
1056
  "type": "detail-panel"
1032
1057
  },
1033
1058
  "hasSelection": true,
@@ -1063,11 +1088,25 @@
1063
1088
  },
1064
1089
  "metaBinding": {
1065
1090
  "default": "@item.createdAt",
1066
- "description": "Binding path for the secondary meta slot (timestamp / category).",
1091
+ "description": "Binding path for the secondary meta slot (timestamp / category). Hosts binding a count or other non-date value should label it in the binding itself (e.g. (str/concat \"Vehicles: \" @item.vehicleCount)) and set metaFormat: none.",
1067
1092
  "label": "Meta field binding",
1068
1093
  "tier": "internal",
1069
1094
  "type": "string"
1070
1095
  },
1096
+ "metaFormat": {
1097
+ "default": "date",
1098
+ "description": "Typography format for the feed meta slot — date by default so the createdAt binding renders human-readable instead of raw ISO; set none for non-date bindings.",
1099
+ "label": "Meta value format",
1100
+ "tier": "presentation",
1101
+ "type": "string",
1102
+ "values": [
1103
+ "none",
1104
+ "date",
1105
+ "time",
1106
+ "datetime",
1107
+ "number"
1108
+ ]
1109
+ },
1071
1110
  "pageSize": {
1072
1111
  "default": 10.0,
1073
1112
  "description": "Records fetched from the server per page request.",
@@ -1090,6 +1129,14 @@
1090
1129
  "tier": "internal",
1091
1130
  "type": "string"
1092
1131
  },
1132
+ "scopeField": {
1133
+ "default": "",
1134
+ "description": "Name the field on this entity that holds the viewer's id (e.g. memberId, patientId, assignee). When set, the list loads ONLY rows whose that field equals @user.id — the 'my bookings' / 'my appointments' shape. Left blank the list loads every row, which is the default. Declared, never inferred: guessing the column from its name would silently scope the wrong one.",
1135
+ "label": "Only show records owned by the signed-in user?",
1136
+ "synonyms": "owner field, my records, only mine, only my own, scope to user, per-user list, mine only, owned by me",
1137
+ "tier": "policy",
1138
+ "type": "string"
1139
+ },
1093
1140
  "searchPlaceholder": {
1094
1141
  "default": "Search…",
1095
1142
  "description": "Hint text inside the list search box (e.g. 'Search orders…').",
@@ -1606,6 +1653,43 @@
1606
1653
  "failure": "BrowseItemLoadFailed",
1607
1654
  "success": "BrowseItemLoaded"
1608
1655
  },
1656
+ "filter": [
1657
+ "and",
1658
+ [
1659
+ "or",
1660
+ [
1661
+ "=",
1662
+ "@config.scopeField",
1663
+ ""
1664
+ ],
1665
+ [
1666
+ "=",
1667
+ [
1668
+ "object/get",
1669
+ "@entity",
1670
+ "@config.scopeField"
1671
+ ],
1672
+ "@user.id"
1673
+ ]
1674
+ ],
1675
+ [
1676
+ "or",
1677
+ [
1678
+ "=",
1679
+ "@config.initialFilterField",
1680
+ ""
1681
+ ],
1682
+ [
1683
+ "=",
1684
+ [
1685
+ "object/get",
1686
+ "@entity",
1687
+ "@config.initialFilterField"
1688
+ ],
1689
+ "@config.initialFilterValue"
1690
+ ]
1691
+ ]
1692
+ ],
1609
1693
  "limit": "@config.pageSize",
1610
1694
  "offset": 0.0
1611
1695
  }
@@ -1730,17 +1814,46 @@
1730
1814
  "failure": "BrowseItemLoadFailed",
1731
1815
  "success": "BrowseItemLoaded"
1732
1816
  },
1817
+ "filter": [
1818
+ "and",
1819
+ [
1820
+ "or",
1821
+ [
1822
+ "=",
1823
+ "@config.scopeField",
1824
+ ""
1825
+ ],
1826
+ [
1827
+ "=",
1828
+ [
1829
+ "object/get",
1830
+ "@entity",
1831
+ "@config.scopeField"
1832
+ ],
1833
+ "@user.id"
1834
+ ]
1835
+ ],
1836
+ [
1837
+ "or",
1838
+ [
1839
+ "=",
1840
+ "@config.initialFilterField",
1841
+ ""
1842
+ ],
1843
+ [
1844
+ "=",
1845
+ [
1846
+ "object/get",
1847
+ "@entity",
1848
+ "@config.initialFilterField"
1849
+ ],
1850
+ "@config.initialFilterValue"
1851
+ ]
1852
+ ]
1853
+ ],
1733
1854
  "limit": "@config.pageSize",
1734
1855
  "offset": 0.0
1735
1856
  }
1736
- ],
1737
- [
1738
- "render-ui",
1739
- "main",
1740
- {
1741
- "rows": 4.0,
1742
- "type": "skeleton"
1743
- }
1744
1857
  ]
1745
1858
  ],
1746
1859
  "event": "INIT",
@@ -1759,20 +1872,40 @@
1759
1872
  "success": "BrowseItemLoaded"
1760
1873
  },
1761
1874
  "filter": [
1762
- "or",
1875
+ "and",
1763
1876
  [
1764
- "=",
1765
- "@payload.searchTerm",
1766
- ""
1877
+ "or",
1878
+ [
1879
+ "=",
1880
+ "@config.scopeField",
1881
+ ""
1882
+ ],
1883
+ [
1884
+ "=",
1885
+ [
1886
+ "object/get",
1887
+ "@entity",
1888
+ "@config.scopeField"
1889
+ ],
1890
+ "@user.id"
1891
+ ]
1767
1892
  ],
1768
1893
  [
1769
- "str/includes",
1894
+ "or",
1770
1895
  [
1771
- "object/get",
1772
- "@entity",
1773
- "name"
1896
+ "=",
1897
+ "@payload.searchTerm",
1898
+ ""
1774
1899
  ],
1775
- "@payload.searchTerm"
1900
+ [
1901
+ "str/includes",
1902
+ [
1903
+ "object/get",
1904
+ "@entity",
1905
+ "name"
1906
+ ],
1907
+ "@payload.searchTerm"
1908
+ ]
1776
1909
  ]
1777
1910
  ],
1778
1911
  "limit": "@config.pageSize",
@@ -1796,20 +1929,40 @@
1796
1929
  "success": "BrowseItemLoaded"
1797
1930
  },
1798
1931
  "filter": [
1799
- "or",
1932
+ "and",
1800
1933
  [
1801
- "=",
1802
- "@payload.value",
1803
- ""
1934
+ "or",
1935
+ [
1936
+ "=",
1937
+ "@config.scopeField",
1938
+ ""
1939
+ ],
1940
+ [
1941
+ "=",
1942
+ [
1943
+ "object/get",
1944
+ "@entity",
1945
+ "@config.scopeField"
1946
+ ],
1947
+ "@user.id"
1948
+ ]
1804
1949
  ],
1805
1950
  [
1806
- "=",
1951
+ "or",
1807
1952
  [
1808
- "object/get",
1809
- "@entity",
1810
- "@payload.field"
1953
+ "=",
1954
+ "@payload.value",
1955
+ ""
1811
1956
  ],
1812
- "@payload.value"
1957
+ [
1958
+ "=",
1959
+ [
1960
+ "object/get",
1961
+ "@entity",
1962
+ "@payload.field"
1963
+ ],
1964
+ "@payload.value"
1965
+ ]
1813
1966
  ]
1814
1967
  ],
1815
1968
  "limit": "@config.pageSize",
@@ -1832,6 +1985,23 @@
1832
1985
  "failure": "BrowseItemLoadFailed",
1833
1986
  "success": "BrowseItemLoaded"
1834
1987
  },
1988
+ "filter": [
1989
+ "or",
1990
+ [
1991
+ "=",
1992
+ "@config.scopeField",
1993
+ ""
1994
+ ],
1995
+ [
1996
+ "=",
1997
+ [
1998
+ "object/get",
1999
+ "@entity",
2000
+ "@config.scopeField"
2001
+ ],
2002
+ "@user.id"
2003
+ ]
2004
+ ],
1835
2005
  "limit": "@config.pageSize",
1836
2006
  "offset": [
1837
2007
  "*",
@@ -1974,6 +2144,43 @@
1974
2144
  "failure": "BrowseItemLoadFailed",
1975
2145
  "success": "BrowseItemLoaded"
1976
2146
  },
2147
+ "filter": [
2148
+ "and",
2149
+ [
2150
+ "or",
2151
+ [
2152
+ "=",
2153
+ "@config.scopeField",
2154
+ ""
2155
+ ],
2156
+ [
2157
+ "=",
2158
+ [
2159
+ "object/get",
2160
+ "@entity",
2161
+ "@config.scopeField"
2162
+ ],
2163
+ "@user.id"
2164
+ ]
2165
+ ],
2166
+ [
2167
+ "or",
2168
+ [
2169
+ "=",
2170
+ "@config.initialFilterField",
2171
+ ""
2172
+ ],
2173
+ [
2174
+ "=",
2175
+ [
2176
+ "object/get",
2177
+ "@entity",
2178
+ "@config.initialFilterField"
2179
+ ],
2180
+ "@config.initialFilterValue"
2181
+ ]
2182
+ ]
2183
+ ],
1977
2184
  "limit": "@config.pageSize",
1978
2185
  "offset": 0.0
1979
2186
  }
@@ -2022,5 +2229,5 @@
2022
2229
  }
2023
2230
  ],
2024
2231
  "schemaVersion": 1,
2025
- "version": "2.3.0"
2232
+ "version": "2.5.0"
2026
2233
  }
@@ -202,6 +202,28 @@
202
202
  {
203
203
  "category": "interaction",
204
204
  "config": {
205
+ "agendaGroupBy": {
206
+ "default": "date",
207
+ "description": "Row field the agenda list groups its day sections by. Rebound hosts point this at their own timestamp column (e.g. startTime, scheduledAt).",
208
+ "label": "Agenda group-by field",
209
+ "synonyms": "group field, section field, day field",
210
+ "tier": "presentation",
211
+ "type": "string"
212
+ },
213
+ "agendaItemActions": {
214
+ "default": [
215
+ {
216
+ "event": "SELECT_DAY",
217
+ "icon": "eye",
218
+ "label": "View"
219
+ }
220
+ ],
221
+ "description": "Per-item action buttons on agenda-list rows — data-list itemActions descriptors (label/event/icon/variant). Consumers override to wire their own row actions (View/Edit/Delete) so agenda hosts never need a second table for actions.",
222
+ "label": "Agenda item actions",
223
+ "synonyms": "agenda actions, row actions, event actions, list actions",
224
+ "tier": "presentation",
225
+ "type": "json"
226
+ },
205
227
  "agendaListBodyContent": {
206
228
  "default": {
207
229
  "children": [
@@ -243,7 +265,8 @@
243
265
  "entity": "@payload.data",
244
266
  "fields": [],
245
267
  "gap": "md",
246
- "groupBy": "date",
268
+ "groupBy": "@config.agendaGroupBy",
269
+ "itemActions": "@config.agendaItemActions",
247
270
  "renderItem": [
248
271
  "fn",
249
272
  "item",
@@ -258,6 +281,7 @@
258
281
  {
259
282
  "color": "muted",
260
283
  "content": "@config.timeBinding",
284
+ "format": "time",
261
285
  "type": "typography",
262
286
  "variant": "overline"
263
287
  },
@@ -426,29 +426,27 @@
426
426
  "parties": {
427
427
  "default": [
428
428
  {
429
- "actionDescription": "Authorize $28,500 to be held in escrow until delivery is confirmed.",
429
+ "actionDescription": "Authorize the funds to be held in escrow until delivery is confirmed.",
430
430
  "actionIcon": "credit-card",
431
431
  "actionLabel": "Confirm payment",
432
- "actor": "Alice Chen",
433
- "description": "Funds the transaction and confirms receipt of the vehicle.",
432
+ "description": "Funds the transaction and confirms receipt.",
434
433
  "icon": "user",
435
434
  "id": "buyer",
436
435
  "stepLabel": "Step 1 of 2",
437
436
  "title": "Buyer"
438
437
  },
439
438
  {
440
- "actionDescription": "Mark the vehicle as shipped. Funds will release after the buyer confirms receipt.",
439
+ "actionDescription": "Mark the item as shipped. Funds release after the buyer confirms receipt.",
441
440
  "actionIcon": "package",
442
441
  "actionLabel": "Confirm shipment",
443
- "actor": "Bob's Auto Sales LLC",
444
- "description": "Ships the vehicle and uploads delivery proof.",
442
+ "description": "Ships the item and uploads delivery proof.",
445
443
  "icon": "user-check",
446
444
  "id": "seller",
447
445
  "stepLabel": "Step 2 of 2",
448
446
  "title": "Seller"
449
447
  }
450
448
  ],
451
- "description": "Ordered participants with role, actor name, and required action",
449
+ "description": "Ordered participants with role, actor name, and required action. stepLabel entries should track the party count when overriding.",
452
450
  "items": {
453
451
  "properties": {
454
452
  "actionDescription": {
@@ -570,21 +568,21 @@
570
568
  "type": "string"
571
569
  },
572
570
  "transactionAmount": {
573
- "default": "$28,500",
571
+ "default": "$0.00",
574
572
  "description": "Formatted amount held in escrow",
575
573
  "label": "Amount",
576
574
  "tier": "presentation",
577
575
  "type": "string"
578
576
  },
579
577
  "transactionReference": {
580
- "default": "TXN-A8B2C-2024-001",
578
+ "default": "",
581
579
  "description": "External identifier shown in the summary",
582
580
  "label": "Reference",
583
581
  "tier": "presentation",
584
582
  "type": "string"
585
583
  },
586
584
  "transactionSubject": {
587
- "default": "Sale of 2024 Honda CR-V",
585
+ "default": "Sale of item",
588
586
  "description": "Short description of what is being transacted",
589
587
  "label": "Subject",
590
588
  "tier": "presentation",
@@ -458,6 +458,15 @@
458
458
  "format": "number",
459
459
  "icon": "list",
460
460
  "label": "Total Items",
461
+ "sparklineData": [
462
+ 2.0,
463
+ 4.0,
464
+ 3.0,
465
+ 6.0,
466
+ 5.0,
467
+ 8.0,
468
+ 7.0
469
+ ],
461
470
  "variant": "primary"
462
471
  },
463
472
  {
@@ -465,6 +474,15 @@
465
474
  "format": "number",
466
475
  "icon": "check-circle",
467
476
  "label": "Active",
477
+ "sparklineData": [
478
+ 1.0,
479
+ 3.0,
480
+ 2.0,
481
+ 4.0,
482
+ 6.0,
483
+ 5.0,
484
+ 7.0
485
+ ],
468
486
  "variant": "success"
469
487
  },
470
488
  {
@@ -473,6 +491,15 @@
473
491
  "format": "number",
474
492
  "icon": "trending-up",
475
493
  "label": "Avg Value",
494
+ "sparklineData": [
495
+ 5.0,
496
+ 4.0,
497
+ 6.0,
498
+ 3.0,
499
+ 5.0,
500
+ 7.0,
501
+ 6.0
502
+ ],
476
503
  "variant": "info"
477
504
  }
478
505
  ],
@@ -126,8 +126,23 @@
126
126
  "tier": "presentation",
127
127
  "type": "node"
128
128
  },
129
+ "format": {
130
+ "default": "none",
131
+ "description": "Value formatting applied to string/number/Date content — `none` (the default) renders content as-is. Covers the raw-ISO-date class: a bound datetime renders human-readable via `format='date'|'time'|'datetime'`.",
132
+ "label": "Format",
133
+ "tier": "presentation",
134
+ "type": "string",
135
+ "values": [
136
+ "none",
137
+ "date",
138
+ "time",
139
+ "datetime",
140
+ "number",
141
+ "currency",
142
+ "percent"
143
+ ]
144
+ },
129
145
  "level": {
130
- "default": 1.0,
131
146
  "description": "Heading level (1-6) - alternative to variant for headings",
132
147
  "label": "Level",
133
148
  "tier": "presentation",
@@ -258,6 +273,7 @@
258
273
  "className": "@config.className",
259
274
  "color": "@config.color",
260
275
  "content": "@config.content",
276
+ "format": "@config.format",
261
277
  "level": "@config.level",
262
278
  "overflow": "@config.overflow",
263
279
  "size": "@config.size",