@almadar/std 13.2.7 → 13.4.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.
- package/behaviors/registry/core/atoms/std-display.orb +19 -1511
- package/behaviors/registry/core/atoms/std-graphs.orb +275 -0
- package/behaviors/registry/core/atoms/std-stats.orb +418 -0
- package/behaviors/registry/core/molecules/std-dashboard.orb +365 -0
- package/dist/behaviors/behaviors-registry.json +201 -127
- package/dist/behaviors/registry/core/atoms/std-display.orb +19 -1511
- package/dist/behaviors/registry/core/atoms/std-graphs.orb +275 -0
- package/dist/behaviors/registry/core/atoms/std-stats.orb +418 -0
- package/dist/behaviors/registry/core/molecules/std-dashboard.orb +365 -0
- package/dist/behaviors-registry.json +201 -127
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$generated": "2026-05-
|
|
2
|
+
"$generated": "2026-05-03T15:10:39.156Z",
|
|
3
3
|
"$source": "tools/behavior-registry-sync",
|
|
4
|
-
"totalBehaviors":
|
|
5
|
-
"atoms":
|
|
6
|
-
"molecules":
|
|
4
|
+
"totalBehaviors": 96,
|
|
5
|
+
"atoms": 52,
|
|
6
|
+
"molecules": 12,
|
|
7
7
|
"organisms": 32,
|
|
8
8
|
"layers": {
|
|
9
|
-
"UI Patterns":
|
|
9
|
+
"UI Patterns": 96
|
|
10
10
|
},
|
|
11
11
|
"behaviors": {
|
|
12
12
|
"std-agent-activity-log": {
|
|
@@ -86,7 +86,6 @@
|
|
|
86
86
|
"std-agent-conversation",
|
|
87
87
|
"std-agent-search",
|
|
88
88
|
"std-collision",
|
|
89
|
-
"std-search",
|
|
90
89
|
"std-selection"
|
|
91
90
|
],
|
|
92
91
|
"connectableEvents": [
|
|
@@ -174,7 +173,6 @@
|
|
|
174
173
|
"std-agent-search",
|
|
175
174
|
"std-collision",
|
|
176
175
|
"std-realtime-chat",
|
|
177
|
-
"std-search",
|
|
178
176
|
"std-selection",
|
|
179
177
|
"std-service-email"
|
|
180
178
|
],
|
|
@@ -639,7 +637,6 @@
|
|
|
639
637
|
"std-agent-search",
|
|
640
638
|
"std-collision",
|
|
641
639
|
"std-realtime-chat",
|
|
642
|
-
"std-search",
|
|
643
640
|
"std-selection",
|
|
644
641
|
"std-service-email"
|
|
645
642
|
],
|
|
@@ -2477,7 +2474,6 @@
|
|
|
2477
2474
|
"std-agent-search",
|
|
2478
2475
|
"std-collision",
|
|
2479
2476
|
"std-realtime-chat",
|
|
2480
|
-
"std-search",
|
|
2481
2477
|
"std-selection",
|
|
2482
2478
|
"std-service-email"
|
|
2483
2479
|
],
|
|
@@ -4351,7 +4347,6 @@
|
|
|
4351
4347
|
],
|
|
4352
4348
|
"composableWith": [
|
|
4353
4349
|
"std-cache-aside",
|
|
4354
|
-
"std-display",
|
|
4355
4350
|
"std-service-oauth",
|
|
4356
4351
|
"std-trading-dashboard"
|
|
4357
4352
|
],
|
|
@@ -4797,7 +4792,6 @@
|
|
|
4797
4792
|
],
|
|
4798
4793
|
"composableWith": [
|
|
4799
4794
|
"std-cache-aside",
|
|
4800
|
-
"std-display",
|
|
4801
4795
|
"std-iot-dashboard",
|
|
4802
4796
|
"std-service-oauth"
|
|
4803
4797
|
],
|
|
@@ -4827,8 +4821,8 @@
|
|
|
4827
4821
|
"statePattern": "browsing, error, loading",
|
|
4828
4822
|
"complexity": {
|
|
4829
4823
|
"states": 3,
|
|
4830
|
-
"events":
|
|
4831
|
-
"transitions":
|
|
4824
|
+
"events": 6,
|
|
4825
|
+
"transitions": 9
|
|
4832
4826
|
},
|
|
4833
4827
|
"defaultEntity": {
|
|
4834
4828
|
"name": "BrowseItem",
|
|
@@ -4868,7 +4862,10 @@
|
|
|
4868
4862
|
"composableWith": [],
|
|
4869
4863
|
"connectableEvents": [
|
|
4870
4864
|
"BrowseItemLoaded",
|
|
4871
|
-
"BrowseItemLoadFailed"
|
|
4865
|
+
"BrowseItemLoadFailed",
|
|
4866
|
+
"REFETCH_QUERY",
|
|
4867
|
+
"REFETCH_FILTER",
|
|
4868
|
+
"REFETCH_PAGE"
|
|
4872
4869
|
],
|
|
4873
4870
|
"eventPayloads": {}
|
|
4874
4871
|
},
|
|
@@ -4932,7 +4929,6 @@
|
|
|
4932
4929
|
"database"
|
|
4933
4930
|
],
|
|
4934
4931
|
"composableWith": [
|
|
4935
|
-
"std-display",
|
|
4936
4932
|
"std-iot-dashboard",
|
|
4937
4933
|
"std-service-oauth",
|
|
4938
4934
|
"std-trading-dashboard"
|
|
@@ -5204,12 +5200,12 @@
|
|
|
5204
5200
|
"level": "atom",
|
|
5205
5201
|
"family": "unknown",
|
|
5206
5202
|
"layer": "UI Patterns",
|
|
5207
|
-
"description": "std-display
|
|
5208
|
-
"statePattern": "
|
|
5203
|
+
"description": "std-display — DEPRECATED. The earlier shape inlined a hard-coded\nchart + graph-view + several stat cards into a single render-ui spec\nwith @entity.X bindings that no transition explicitly set, which\nviolates the explicit-binding rule (gap #25 in\ndocs/Almadar_Std_Verification.md). The chart payload was hand-\nauthored literal data, not aggregated from a real entity stream.\n\nUse these instead:\n std-stats — embeddable stat-card aggregations (count / sum / avg\n / min / max / distinct), ITEMS_LOADED listener.\n std-graphs — embeddable charts (bar / line / pie / area / donut),\n config-driven categoryField + aggregation, same\n ITEMS_LOADED listener shape.\n\nCompose them in a molecule alongside std-browse the same way\nstd-filtered-list composes std-search / std-filter / std-browse /\nstd-pagination. See std-dashboard.lolo for the canonical pattern.\n\nThis file is preserved (and still embedded) so existing projects\nthat import `std/behaviors/std-display` keep loading; new dashboards\nshould target std-stats + std-graphs.",
|
|
5204
|
+
"statePattern": "idle",
|
|
5209
5205
|
"complexity": {
|
|
5210
|
-
"states":
|
|
5211
|
-
"events":
|
|
5212
|
-
"transitions":
|
|
5206
|
+
"states": 1,
|
|
5207
|
+
"events": 1,
|
|
5208
|
+
"transitions": 1
|
|
5213
5209
|
},
|
|
5214
5210
|
"defaultEntity": {
|
|
5215
5211
|
"name": "DisplayItem",
|
|
@@ -5217,24 +5213,8 @@
|
|
|
5217
5213
|
"fields": [
|
|
5218
5214
|
{
|
|
5219
5215
|
"name": "id",
|
|
5220
|
-
"type": "string"
|
|
5221
|
-
},
|
|
5222
|
-
{
|
|
5223
|
-
"name": "name",
|
|
5224
|
-
"type": "string"
|
|
5225
|
-
},
|
|
5226
|
-
{
|
|
5227
|
-
"name": "description",
|
|
5228
|
-
"type": "string"
|
|
5229
|
-
},
|
|
5230
|
-
{
|
|
5231
|
-
"name": "status",
|
|
5232
5216
|
"type": "string",
|
|
5233
|
-
"
|
|
5234
|
-
},
|
|
5235
|
-
{
|
|
5236
|
-
"name": "createdAt",
|
|
5237
|
-
"type": "string"
|
|
5217
|
+
"required": true
|
|
5238
5218
|
}
|
|
5239
5219
|
]
|
|
5240
5220
|
},
|
|
@@ -5243,22 +5223,9 @@
|
|
|
5243
5223
|
"entitySingular": "DisplayItem",
|
|
5244
5224
|
"entityPlural": "DisplayItems"
|
|
5245
5225
|
},
|
|
5246
|
-
"defaultIcons": [
|
|
5247
|
-
|
|
5248
|
-
],
|
|
5249
|
-
"composableWith": [
|
|
5250
|
-
"std-cache-aside",
|
|
5251
|
-
"std-iot-dashboard",
|
|
5252
|
-
"std-service-oauth",
|
|
5253
|
-
"std-trading-dashboard"
|
|
5254
|
-
],
|
|
5255
|
-
"connectableEvents": [
|
|
5256
|
-
"LOADED",
|
|
5257
|
-
"REFRESH",
|
|
5258
|
-
"REFRESHED",
|
|
5259
|
-
"DisplayItemLoaded",
|
|
5260
|
-
"DisplayItemLoadFailed"
|
|
5261
|
-
],
|
|
5226
|
+
"defaultIcons": [],
|
|
5227
|
+
"composableWith": [],
|
|
5228
|
+
"connectableEvents": [],
|
|
5262
5229
|
"eventPayloads": {}
|
|
5263
5230
|
},
|
|
5264
5231
|
"std-drawer": {
|
|
@@ -5337,12 +5304,12 @@
|
|
|
5337
5304
|
"level": "atom",
|
|
5338
5305
|
"family": "unknown",
|
|
5339
5306
|
"layer": "UI Patterns",
|
|
5340
|
-
"description": "std-filter as a Function — single primitive: filter-group",
|
|
5341
|
-
"statePattern": "
|
|
5307
|
+
"description": "std-filter as a Function — single primitive: filter-group. The atom's\nown FilterTarget entity is the UI-state container — every FILTER\ntransition persists field/value into the entity. Visual reflection of\nthe persisted value (filter-group `value` prop) is a follow-up that\nneeds the pattern registry + UI component to accept a `value` prop;\nthe persistence side is done.",
|
|
5308
|
+
"statePattern": "idle",
|
|
5342
5309
|
"complexity": {
|
|
5343
|
-
"states":
|
|
5344
|
-
"events":
|
|
5345
|
-
"transitions":
|
|
5310
|
+
"states": 1,
|
|
5311
|
+
"events": 3,
|
|
5312
|
+
"transitions": 3
|
|
5346
5313
|
},
|
|
5347
5314
|
"defaultEntity": {
|
|
5348
5315
|
"name": "FilterTarget",
|
|
@@ -5354,21 +5321,11 @@
|
|
|
5354
5321
|
"required": true
|
|
5355
5322
|
},
|
|
5356
5323
|
{
|
|
5357
|
-
"name": "
|
|
5358
|
-
"type": "string",
|
|
5359
|
-
"required": true
|
|
5360
|
-
},
|
|
5361
|
-
{
|
|
5362
|
-
"name": "description",
|
|
5324
|
+
"name": "field",
|
|
5363
5325
|
"type": "string"
|
|
5364
5326
|
},
|
|
5365
5327
|
{
|
|
5366
|
-
"name": "
|
|
5367
|
-
"type": "string",
|
|
5368
|
-
"default": "active"
|
|
5369
|
-
},
|
|
5370
|
-
{
|
|
5371
|
-
"name": "createdAt",
|
|
5328
|
+
"name": "value",
|
|
5372
5329
|
"type": "string"
|
|
5373
5330
|
}
|
|
5374
5331
|
]
|
|
@@ -5381,8 +5338,6 @@
|
|
|
5381
5338
|
"defaultIcons": [],
|
|
5382
5339
|
"composableWith": [],
|
|
5383
5340
|
"connectableEvents": [
|
|
5384
|
-
"FilterTargetLoaded",
|
|
5385
|
-
"FilterTargetLoadFailed",
|
|
5386
5341
|
"FILTER",
|
|
5387
5342
|
"CLEAR_FILTERS"
|
|
5388
5343
|
],
|
|
@@ -5480,6 +5435,49 @@
|
|
|
5480
5435
|
],
|
|
5481
5436
|
"eventPayloads": {}
|
|
5482
5437
|
},
|
|
5438
|
+
"std-graphs": {
|
|
5439
|
+
"name": "std-graphs",
|
|
5440
|
+
"level": "atom",
|
|
5441
|
+
"family": "unknown",
|
|
5442
|
+
"layer": "UI Patterns",
|
|
5443
|
+
"description": "std-graphs — embeddable chart atom. Drops into a dashboard molecule\nalongside std-stats / std-browse; wire its ITEMS_LOADED listener to\nthe upstream collection's success emit, then configure `chartType` +\n`categoryField` + (`valueField` | `aggregation`) per call-site to\ndeclare WHAT to chart.\n\nAggregation runs in the lolo state machine: ITEMS_LOADED groups\n@payload.data by @config.categoryField (array/groupBy returns\n{<category>: [<rows>]}) then array/maps over (object/entries result)\nto apply the configured aggregation (count | sum | avg | min | max)\nper bucket. The resulting chart-data array of {label, value} drops\ninto the existing chart pattern with no aggregator component required.\n\nThe `ChartPoint` type alias narrows the entity field to the exact\nshape the `chart` pattern's `data` prop expects (`{label, value}`),\nso no `Record<string, unknown>` cast lands at the call site —\nschema authors keep strict typing end-to-end.",
|
|
5444
|
+
"statePattern": "idle",
|
|
5445
|
+
"complexity": {
|
|
5446
|
+
"states": 1,
|
|
5447
|
+
"events": 2,
|
|
5448
|
+
"transitions": 2
|
|
5449
|
+
},
|
|
5450
|
+
"defaultEntity": {
|
|
5451
|
+
"name": "GraphItem",
|
|
5452
|
+
"persistence": "runtime",
|
|
5453
|
+
"fields": [
|
|
5454
|
+
{
|
|
5455
|
+
"name": "id",
|
|
5456
|
+
"type": "string",
|
|
5457
|
+
"required": true
|
|
5458
|
+
},
|
|
5459
|
+
{
|
|
5460
|
+
"name": "chartData",
|
|
5461
|
+
"type": "array",
|
|
5462
|
+
"default": []
|
|
5463
|
+
}
|
|
5464
|
+
]
|
|
5465
|
+
},
|
|
5466
|
+
"defaultLabels": {
|
|
5467
|
+
"title": "GraphItems",
|
|
5468
|
+
"entitySingular": "GraphItem",
|
|
5469
|
+
"entityPlural": "GraphItems"
|
|
5470
|
+
},
|
|
5471
|
+
"defaultIcons": [],
|
|
5472
|
+
"composableWith": [
|
|
5473
|
+
"std-pagination",
|
|
5474
|
+
"std-stats"
|
|
5475
|
+
],
|
|
5476
|
+
"connectableEvents": [
|
|
5477
|
+
"ITEMS_LOADED"
|
|
5478
|
+
],
|
|
5479
|
+
"eventPayloads": {}
|
|
5480
|
+
},
|
|
5483
5481
|
"std-modal": {
|
|
5484
5482
|
"name": "std-modal",
|
|
5485
5483
|
"level": "atom",
|
|
@@ -5556,12 +5554,12 @@
|
|
|
5556
5554
|
"level": "atom",
|
|
5557
5555
|
"family": "unknown",
|
|
5558
5556
|
"layer": "UI Patterns",
|
|
5559
|
-
"description": "std-pagination as a Function — single primitive: pagination
|
|
5560
|
-
"statePattern": "
|
|
5557
|
+
"description": "std-pagination as a Function — single primitive: pagination control.\nThe Pagination UI component emits `{page}` for page changes; the atom's\nPAGE event payload matches that shape. ITEMS_LOADED accepts an upstream\ndata-loaded event payload `{data : [object]}` and derives totalPages =\nceil(len(data) / pageSize). Molecules wire e.g.\n`FilteredItemBrowse.BrowseItemLoaded -> ITEMS_LOADED` to keep the\npagination control in lockstep with the data hub. The PagedItem entity\npersists currentPage and the derived totalPages so reads from\n@entity.totalPages reflect the latest row count.",
|
|
5558
|
+
"statePattern": "idle",
|
|
5561
5559
|
"complexity": {
|
|
5562
|
-
"states":
|
|
5560
|
+
"states": 1,
|
|
5563
5561
|
"events": 4,
|
|
5564
|
-
"transitions":
|
|
5562
|
+
"transitions": 4
|
|
5565
5563
|
},
|
|
5566
5564
|
"defaultEntity": {
|
|
5567
5565
|
"name": "PagedItem",
|
|
@@ -5573,22 +5571,14 @@
|
|
|
5573
5571
|
"required": true
|
|
5574
5572
|
},
|
|
5575
5573
|
{
|
|
5576
|
-
"name": "
|
|
5577
|
-
"type": "
|
|
5578
|
-
"
|
|
5579
|
-
},
|
|
5580
|
-
{
|
|
5581
|
-
"name": "description",
|
|
5582
|
-
"type": "string"
|
|
5583
|
-
},
|
|
5584
|
-
{
|
|
5585
|
-
"name": "status",
|
|
5586
|
-
"type": "string",
|
|
5587
|
-
"default": "active"
|
|
5574
|
+
"name": "currentPage",
|
|
5575
|
+
"type": "number",
|
|
5576
|
+
"default": 1
|
|
5588
5577
|
},
|
|
5589
5578
|
{
|
|
5590
|
-
"name": "
|
|
5591
|
-
"type": "
|
|
5579
|
+
"name": "totalPages",
|
|
5580
|
+
"type": "number",
|
|
5581
|
+
"default": 1
|
|
5592
5582
|
}
|
|
5593
5583
|
]
|
|
5594
5584
|
},
|
|
@@ -5598,11 +5588,14 @@
|
|
|
5598
5588
|
"entityPlural": "PagedItems"
|
|
5599
5589
|
},
|
|
5600
5590
|
"defaultIcons": [],
|
|
5601
|
-
"composableWith": [
|
|
5591
|
+
"composableWith": [
|
|
5592
|
+
"std-graphs",
|
|
5593
|
+
"std-stats"
|
|
5594
|
+
],
|
|
5602
5595
|
"connectableEvents": [
|
|
5603
5596
|
"PagedItemLoaded",
|
|
5604
|
-
"
|
|
5605
|
-
"
|
|
5597
|
+
"PAGE",
|
|
5598
|
+
"ITEMS_LOADED"
|
|
5606
5599
|
],
|
|
5607
5600
|
"eventPayloads": {}
|
|
5608
5601
|
},
|
|
@@ -5795,12 +5788,12 @@
|
|
|
5795
5788
|
"level": "atom",
|
|
5796
5789
|
"family": "unknown",
|
|
5797
5790
|
"layer": "UI Patterns",
|
|
5798
|
-
"description": "std-search as a Function — single primitive: search-input",
|
|
5799
|
-
"statePattern": "
|
|
5791
|
+
"description": "std-search as a Function — single primitive: search-input. The atom's\nown SearchResult entity is the UI-state container — SEARCH persists\n@payload.searchTerm (matching the SearchInput component's emit shape)\ninto @entity.searchTerm. Cross-trait listeners route the same payload\nfield to data atoms (Browse REFETCH_QUERY).",
|
|
5792
|
+
"statePattern": "idle",
|
|
5800
5793
|
"complexity": {
|
|
5801
|
-
"states":
|
|
5802
|
-
"events":
|
|
5803
|
-
"transitions":
|
|
5794
|
+
"states": 1,
|
|
5795
|
+
"events": 2,
|
|
5796
|
+
"transitions": 2
|
|
5804
5797
|
},
|
|
5805
5798
|
"defaultEntity": {
|
|
5806
5799
|
"name": "SearchResult",
|
|
@@ -5808,23 +5801,11 @@
|
|
|
5808
5801
|
"fields": [
|
|
5809
5802
|
{
|
|
5810
5803
|
"name": "id",
|
|
5811
|
-
"type": "string"
|
|
5812
|
-
},
|
|
5813
|
-
{
|
|
5814
|
-
"name": "name",
|
|
5815
|
-
"type": "string"
|
|
5816
|
-
},
|
|
5817
|
-
{
|
|
5818
|
-
"name": "description",
|
|
5819
|
-
"type": "string"
|
|
5820
|
-
},
|
|
5821
|
-
{
|
|
5822
|
-
"name": "status",
|
|
5823
5804
|
"type": "string",
|
|
5824
|
-
"
|
|
5805
|
+
"required": true
|
|
5825
5806
|
},
|
|
5826
5807
|
{
|
|
5827
|
-
"name": "
|
|
5808
|
+
"name": "searchTerm",
|
|
5828
5809
|
"type": "string"
|
|
5829
5810
|
}
|
|
5830
5811
|
]
|
|
@@ -5836,21 +5817,12 @@
|
|
|
5836
5817
|
},
|
|
5837
5818
|
"defaultIcons": [],
|
|
5838
5819
|
"composableWith": [
|
|
5839
|
-
"std-agent-activity-log",
|
|
5840
|
-
"std-agent-assistant",
|
|
5841
|
-
"std-agent-chat-thread",
|
|
5842
|
-
"std-agent-conversation",
|
|
5843
5820
|
"std-agent-search",
|
|
5844
|
-
"std-collision",
|
|
5845
|
-
"std-selection",
|
|
5846
5821
|
"std-service-research-assistant",
|
|
5847
5822
|
"std-service-youtube"
|
|
5848
5823
|
],
|
|
5849
5824
|
"connectableEvents": [
|
|
5850
|
-
"SEARCH"
|
|
5851
|
-
"SearchResultLoaded",
|
|
5852
|
-
"SearchResultLoadFailed",
|
|
5853
|
-
"CLEAR"
|
|
5825
|
+
"SEARCH"
|
|
5854
5826
|
],
|
|
5855
5827
|
"eventPayloads": {}
|
|
5856
5828
|
},
|
|
@@ -5907,8 +5879,7 @@
|
|
|
5907
5879
|
"std-agent-chat-thread",
|
|
5908
5880
|
"std-agent-conversation",
|
|
5909
5881
|
"std-agent-search",
|
|
5910
|
-
"std-collision"
|
|
5911
|
-
"std-search"
|
|
5882
|
+
"std-collision"
|
|
5912
5883
|
],
|
|
5913
5884
|
"connectableEvents": [
|
|
5914
5885
|
"SelectableItemLoaded",
|
|
@@ -5919,6 +5890,49 @@
|
|
|
5919
5890
|
],
|
|
5920
5891
|
"eventPayloads": {}
|
|
5921
5892
|
},
|
|
5893
|
+
"std-stats": {
|
|
5894
|
+
"name": "std-stats",
|
|
5895
|
+
"level": "atom",
|
|
5896
|
+
"family": "unknown",
|
|
5897
|
+
"layer": "UI Patterns",
|
|
5898
|
+
"description": "std-stats — embeddable analytics-card atom. Drop into a dashboard\nmolecule alongside std-browse / std-search / std-filter; wire its\nITEMS_LOADED listener to the upstream collection's success emit, then\nconfigure `metrics` per call-site to declare WHICH aggregations to\nshow.\n\nAggregation runs in the lolo state machine (no custom React component\nbeyond stat-display): the ITEMS_LOADED transition uses array/map over\n@config.metrics with a chained `if` to dispatch each metric to the\nright reducer (array/len | array/sum | array/avg | array/min |\narray/max), and the resulting cards array drops into a data-list\nwhose renderItem maps each card to a stat-display pattern. The atom\nowns its own auxiliary entity (StatsItem) for UI state — explicit-\nbinding rule applies: every @entity.X is set explicitly via\n(set @entity.X ...) on each transition.\n\nEach entry in `metrics` is `{ aggregation, field, label, icon,\nformat, variant, max }` where:\n- aggregation ∈ count|sum|avg|min|max (default count)\n- field is the numeric entity field for sum/avg/min/max\n- label is the card title (required)\n- icon, format (number|currency|percent), variant\n (default|primary|success|warning|error|info), max are pass-through\n to the stat-display render.",
|
|
5899
|
+
"statePattern": "idle",
|
|
5900
|
+
"complexity": {
|
|
5901
|
+
"states": 1,
|
|
5902
|
+
"events": 2,
|
|
5903
|
+
"transitions": 2
|
|
5904
|
+
},
|
|
5905
|
+
"defaultEntity": {
|
|
5906
|
+
"name": "StatsItem",
|
|
5907
|
+
"persistence": "runtime",
|
|
5908
|
+
"fields": [
|
|
5909
|
+
{
|
|
5910
|
+
"name": "id",
|
|
5911
|
+
"type": "string",
|
|
5912
|
+
"required": true
|
|
5913
|
+
},
|
|
5914
|
+
{
|
|
5915
|
+
"name": "cards",
|
|
5916
|
+
"type": "array",
|
|
5917
|
+
"default": []
|
|
5918
|
+
}
|
|
5919
|
+
]
|
|
5920
|
+
},
|
|
5921
|
+
"defaultLabels": {
|
|
5922
|
+
"title": "StatsItems",
|
|
5923
|
+
"entitySingular": "StatsItem",
|
|
5924
|
+
"entityPlural": "StatsItems"
|
|
5925
|
+
},
|
|
5926
|
+
"defaultIcons": [],
|
|
5927
|
+
"composableWith": [
|
|
5928
|
+
"std-graphs",
|
|
5929
|
+
"std-pagination"
|
|
5930
|
+
],
|
|
5931
|
+
"connectableEvents": [
|
|
5932
|
+
"ITEMS_LOADED"
|
|
5933
|
+
],
|
|
5934
|
+
"eventPayloads": {}
|
|
5935
|
+
},
|
|
5922
5936
|
"std-tabs": {
|
|
5923
5937
|
"name": "std-tabs",
|
|
5924
5938
|
"level": "atom",
|
|
@@ -6035,6 +6049,67 @@
|
|
|
6035
6049
|
],
|
|
6036
6050
|
"eventPayloads": {}
|
|
6037
6051
|
},
|
|
6052
|
+
"std-dashboard": {
|
|
6053
|
+
"name": "std-dashboard",
|
|
6054
|
+
"level": "molecule",
|
|
6055
|
+
"family": "unknown",
|
|
6056
|
+
"layer": "UI Patterns",
|
|
6057
|
+
"description": "std-dashboard — molecule composing std-stats + std-graphs + std-browse\ninto a typical dashboard view: stat cards across the top, two charts\nin the middle, data list at the bottom. Browse is the data hub — it\nfetches the rows, emits BrowseItemLoaded; Stats and Graphs both listen\nfor it via cross-trait `Browse.BrowseItemLoaded -> ITEMS_LOADED`. All\nthree atoms render into the layout's `main` slot via `@trait.X`\nplacement.",
|
|
6058
|
+
"statePattern": "composing",
|
|
6059
|
+
"complexity": {
|
|
6060
|
+
"states": 1,
|
|
6061
|
+
"events": 3,
|
|
6062
|
+
"transitions": 1
|
|
6063
|
+
},
|
|
6064
|
+
"defaultEntity": {
|
|
6065
|
+
"name": "DashboardItem",
|
|
6066
|
+
"persistence": "persistent",
|
|
6067
|
+
"fields": [
|
|
6068
|
+
{
|
|
6069
|
+
"name": "id",
|
|
6070
|
+
"type": "string",
|
|
6071
|
+
"required": true
|
|
6072
|
+
},
|
|
6073
|
+
{
|
|
6074
|
+
"name": "name",
|
|
6075
|
+
"type": "string"
|
|
6076
|
+
},
|
|
6077
|
+
{
|
|
6078
|
+
"name": "category",
|
|
6079
|
+
"type": "string"
|
|
6080
|
+
},
|
|
6081
|
+
{
|
|
6082
|
+
"name": "status",
|
|
6083
|
+
"type": "string",
|
|
6084
|
+
"default": "active"
|
|
6085
|
+
},
|
|
6086
|
+
{
|
|
6087
|
+
"name": "amount",
|
|
6088
|
+
"type": "number",
|
|
6089
|
+
"default": 0
|
|
6090
|
+
},
|
|
6091
|
+
{
|
|
6092
|
+
"name": "units",
|
|
6093
|
+
"type": "number",
|
|
6094
|
+
"default": 0
|
|
6095
|
+
}
|
|
6096
|
+
]
|
|
6097
|
+
},
|
|
6098
|
+
"defaultLabels": {
|
|
6099
|
+
"title": "Dashboard",
|
|
6100
|
+
"entitySingular": "DashboardItem",
|
|
6101
|
+
"entityPlural": "DashboardItems"
|
|
6102
|
+
},
|
|
6103
|
+
"defaultIcons": [
|
|
6104
|
+
"bar-chart-2"
|
|
6105
|
+
],
|
|
6106
|
+
"composableWith": [],
|
|
6107
|
+
"connectableEvents": [
|
|
6108
|
+
"DashboardItemLoaded",
|
|
6109
|
+
"DashboardItemLoadFailed"
|
|
6110
|
+
],
|
|
6111
|
+
"eventPayloads": {}
|
|
6112
|
+
},
|
|
6038
6113
|
"std-filtered-list": {
|
|
6039
6114
|
"name": "std-filtered-list",
|
|
6040
6115
|
"level": "molecule",
|
|
@@ -6066,7 +6141,8 @@
|
|
|
6066
6141
|
},
|
|
6067
6142
|
{
|
|
6068
6143
|
"name": "status",
|
|
6069
|
-
"type": "string"
|
|
6144
|
+
"type": "string",
|
|
6145
|
+
"default": "active"
|
|
6070
6146
|
}
|
|
6071
6147
|
]
|
|
6072
6148
|
},
|
|
@@ -6420,7 +6496,6 @@
|
|
|
6420
6496
|
"std-agent-chat-thread",
|
|
6421
6497
|
"std-agent-conversation",
|
|
6422
6498
|
"std-agent-search",
|
|
6423
|
-
"std-search",
|
|
6424
6499
|
"std-selection"
|
|
6425
6500
|
],
|
|
6426
6501
|
"connectableEvents": [
|
|
@@ -8512,7 +8587,6 @@
|
|
|
8512
8587
|
"std-agent-rag",
|
|
8513
8588
|
"std-agent-tool-loop",
|
|
8514
8589
|
"std-cache-aside",
|
|
8515
|
-
"std-display",
|
|
8516
8590
|
"std-iot-dashboard",
|
|
8517
8591
|
"std-service-custom-bearer",
|
|
8518
8592
|
"std-service-email",
|