@almadar/std 14.3.0 → 14.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.
Files changed (33) hide show
  1. package/behaviors/registry/app/organisms/std-api-gateway.orb +940 -807
  2. package/behaviors/registry/app/organisms/std-booking-system.orb +1281 -1148
  3. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +954 -821
  4. package/behaviors/registry/app/organisms/std-crm.orb +950 -817
  5. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +1590 -1650
  6. package/behaviors/registry/app/organisms/std-ecommerce.orb +1145 -1012
  7. package/behaviors/registry/app/organisms/std-finance-tracker.orb +746 -613
  8. package/behaviors/registry/app/organisms/std-healthcare.orb +1655 -1522
  9. package/behaviors/registry/app/organisms/std-helpdesk.orb +865 -732
  10. package/behaviors/registry/app/organisms/std-hr-portal.orb +1364 -1231
  11. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +1522 -1503
  12. package/behaviors/registry/app/organisms/std-lms.orb +1060 -926
  13. package/behaviors/registry/app/organisms/std-project-manager.orb +926 -792
  14. package/behaviors/registry/app/organisms/std-realtime-chat.orb +886 -753
  15. package/behaviors/registry/app/organisms/std-social-feed.orb +403 -268
  16. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +1372 -1353
  17. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +940 -807
  18. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +1281 -1148
  19. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +954 -821
  20. package/dist/behaviors/registry/app/organisms/std-crm.orb +950 -817
  21. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1590 -1650
  22. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +1145 -1012
  23. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +746 -613
  24. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +1655 -1522
  25. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +865 -732
  26. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +1364 -1231
  27. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +1522 -1503
  28. package/dist/behaviors/registry/app/organisms/std-lms.orb +1060 -926
  29. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +926 -792
  30. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +886 -753
  31. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +403 -268
  32. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +1372 -1353
  33. package/package.json +1 -1
@@ -5,6 +5,12 @@
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "PortfolioOrbital",
8
+ "uses": [
9
+ {
10
+ "from": "std/behaviors/std-app-layout",
11
+ "as": "AppShell"
12
+ }
13
+ ],
8
14
  "entity": {
9
15
  "name": "Portfolio",
10
16
  "persistence": "runtime",
@@ -37,6 +43,38 @@
37
43
  ]
38
44
  },
39
45
  "traits": [
46
+ {
47
+ "ref": "AppShell.traits.AppLayout",
48
+ "name": "PortfolioAppLayout",
49
+ "config": {
50
+ "notificationClickEvent": "PORTFOLIO_NOTIFICATIONS_OPEN",
51
+ "searchEvent": "PORTFOLIO_SEARCH",
52
+ "navItems": [
53
+ {
54
+ "label": "Portfolio",
55
+ "icon": "layout-list",
56
+ "href": "/portfolio"
57
+ },
58
+ {
59
+ "label": "Orders",
60
+ "href": "/orders",
61
+ "icon": "clipboard-list"
62
+ },
63
+ {
64
+ "icon": "layout-list",
65
+ "label": "Market",
66
+ "href": "/market"
67
+ }
68
+ ],
69
+ "notifications": [],
70
+ "contentTrait": "@trait.PortfolioDisplay",
71
+ "appName": "Trading Dashboard"
72
+ },
73
+ "events": {
74
+ "NOTIFY_CLICK": "PORTFOLIO_NOTIFICATIONS_OPEN",
75
+ "SEARCH": "PORTFOLIO_SEARCH"
76
+ }
77
+ },
40
78
  {
41
79
  "name": "PortfolioDisplay",
42
80
  "category": "interaction",
@@ -165,6 +203,24 @@
165
203
  ]
166
204
  }
167
205
  ],
206
+ "listens": [
207
+ {
208
+ "event": "PORTFOLIO_SEARCH",
209
+ "triggers": "PORTFOLIO_SEARCH",
210
+ "source": {
211
+ "kind": "trait",
212
+ "trait": "PortfolioAppLayout"
213
+ }
214
+ },
215
+ {
216
+ "event": "PORTFOLIO_NOTIFICATIONS_OPEN",
217
+ "triggers": "PORTFOLIO_NOTIFICATIONS_OPEN",
218
+ "source": {
219
+ "kind": "trait",
220
+ "trait": "PortfolioAppLayout"
221
+ }
222
+ }
223
+ ],
168
224
  "stateMachine": {
169
225
  "states": [
170
226
  {
@@ -191,6 +247,26 @@
191
247
  "key": "REFRESH",
192
248
  "name": "Refresh"
193
249
  },
250
+ {
251
+ "key": "PORTFOLIO_SEARCH",
252
+ "name": "Portfolio Search",
253
+ "payloadSchema": [
254
+ {
255
+ "name": "value",
256
+ "type": "string"
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ "key": "PORTFOLIO_NOTIFICATIONS_OPEN",
262
+ "name": "Portfolio Notifications Open",
263
+ "payloadSchema": [
264
+ {
265
+ "name": "id",
266
+ "type": "string"
267
+ }
268
+ ]
269
+ },
194
270
  {
195
271
  "key": "REFRESHED",
196
272
  "name": "Refreshed"
@@ -356,218 +432,190 @@
356
432
  "render-ui",
357
433
  "main",
358
434
  {
359
- "navItems": [
360
- {
361
- "icon": "layout-list",
362
- "href": "/portfolio",
363
- "label": "Portfolio"
364
- },
435
+ "gap": "lg",
436
+ "type": "stack",
437
+ "direction": "vertical",
438
+ "children": [
365
439
  {
366
- "href": "/orders",
367
- "icon": "clipboard-list",
368
- "label": "Orders"
440
+ "items": [
441
+ {
442
+ "label": "Home",
443
+ "href": "/"
444
+ },
445
+ {
446
+ "label": "Portfolio"
447
+ }
448
+ ],
449
+ "type": "breadcrumb"
369
450
  },
370
451
  {
371
- "href": "/market",
372
- "icon": "layout-list",
373
- "label": "Market"
374
- }
375
- ],
376
- "appName": "Trading Dashboard",
377
- "children": [
378
- {
379
- "type": "scaled-diagram",
452
+ "justify": "between",
453
+ "gap": "md",
454
+ "type": "stack",
380
455
  "children": [
381
456
  {
382
457
  "type": "stack",
383
- "gap": "lg",
458
+ "gap": "md",
459
+ "direction": "horizontal",
384
460
  "children": [
385
461
  {
386
- "items": [
387
- {
388
- "href": "/",
389
- "label": "Home"
390
- },
391
- {
392
- "label": "Portfolio"
393
- }
394
- ],
395
- "type": "breadcrumb"
396
- },
397
- {
398
- "type": "stack",
399
- "justify": "between",
400
- "gap": "md",
401
- "children": [
402
- {
403
- "gap": "md",
404
- "direction": "horizontal",
405
- "type": "stack",
406
- "children": [
407
- {
408
- "name": "trending-up",
409
- "type": "icon"
410
- },
411
- {
412
- "variant": "h2",
413
- "content": "Portfolio",
414
- "type": "typography"
415
- }
416
- ]
417
- },
418
- {
419
- "variant": "secondary",
420
- "action": "REFRESH",
421
- "type": "button",
422
- "label": "Refresh",
423
- "icon": "refresh-cw"
424
- }
425
- ],
426
- "direction": "horizontal"
462
+ "name": "trending-up",
463
+ "type": "icon"
427
464
  },
428
465
  {
429
- "type": "divider"
430
- },
466
+ "type": "typography",
467
+ "content": "Portfolio",
468
+ "variant": "h2"
469
+ }
470
+ ]
471
+ },
472
+ {
473
+ "variant": "secondary",
474
+ "action": "REFRESH",
475
+ "type": "button",
476
+ "icon": "refresh-cw",
477
+ "label": "Refresh"
478
+ }
479
+ ],
480
+ "direction": "horizontal"
481
+ },
482
+ {
483
+ "type": "divider"
484
+ },
485
+ {
486
+ "type": "box",
487
+ "children": [
488
+ {
489
+ "type": "simple-grid",
490
+ "children": [
431
491
  {
432
- "padding": "md",
433
- "children": [
434
- {
435
- "cols": 3.0,
436
- "type": "simple-grid",
437
- "children": [
438
- {
439
- "value": "@entity.totalValue",
440
- "type": "stat-display",
441
- "label": "TotalValue"
442
- },
443
- {
444
- "label": "DailyChange",
445
- "value": "@entity.dailyChange",
446
- "type": "stat-display"
447
- },
448
- {
449
- "value": "@entity.positions",
450
- "label": "Positions",
451
- "type": "stat-display"
452
- },
453
- {
454
- "label": "CashBalance",
455
- "value": "@entity.cashBalance",
456
- "type": "stat-display"
457
- }
458
- ]
459
- }
460
- ],
461
- "type": "box"
492
+ "label": "TotalValue",
493
+ "type": "stat-display",
494
+ "value": "@entity.totalValue"
462
495
  },
463
496
  {
464
- "type": "divider"
497
+ "label": "DailyChange",
498
+ "value": "@entity.dailyChange",
499
+ "type": "stat-display"
465
500
  },
466
501
  {
467
- "gap": "md",
468
- "cols": 2.0,
469
- "type": "grid",
470
- "children": [
471
- {
472
- "children": [
473
- {
474
- "type": "typography",
475
- "variant": "caption",
476
- "content": "Chart View"
477
- }
478
- ],
479
- "type": "card"
480
- },
481
- {
482
- "type": "card",
483
- "children": [
484
- {
485
- "type": "typography",
486
- "content": "Graph View",
487
- "variant": "caption"
488
- }
489
- ]
490
- }
491
- ]
502
+ "type": "stat-display",
503
+ "label": "Positions",
504
+ "value": "@entity.positions"
492
505
  },
493
506
  {
494
- "data": [
495
- {
496
- "value": 12.0,
497
- "date": "Jan"
498
- },
499
- {
500
- "value": 19.0,
501
- "date": "Feb"
502
- },
503
- {
504
- "value": 15.0,
505
- "date": "Mar"
506
- },
507
- {
508
- "date": "Apr",
509
- "value": 25.0
510
- },
511
- {
512
- "value": 22.0,
513
- "date": "May"
514
- },
515
- {
516
- "value": 30.0,
517
- "date": "Jun"
518
- }
519
- ],
520
- "type": "line-chart"
521
- },
507
+ "type": "stat-display",
508
+ "label": "CashBalance",
509
+ "value": "@entity.cashBalance"
510
+ }
511
+ ],
512
+ "cols": 3.0
513
+ }
514
+ ],
515
+ "padding": "md"
516
+ },
517
+ {
518
+ "type": "divider"
519
+ },
520
+ {
521
+ "children": [
522
+ {
523
+ "type": "card",
524
+ "children": [
522
525
  {
523
- "type": "chart-legend",
524
- "items": [
525
- {
526
- "color": "primary",
527
- "label": "Current"
528
- },
529
- {
530
- "color": "muted",
531
- "label": "Previous"
532
- }
533
- ]
534
- },
526
+ "type": "typography",
527
+ "content": "Chart View",
528
+ "variant": "caption"
529
+ }
530
+ ]
531
+ },
532
+ {
533
+ "type": "card",
534
+ "children": [
535
535
  {
536
- "type": "graph-view",
537
- "width": 400.0,
538
- "edges": [
539
- {
540
- "target": "b",
541
- "source": "a"
542
- },
543
- {
544
- "target": "c",
545
- "source": "b"
546
- }
547
- ],
548
- "height": 200.0,
549
- "nodes": [
550
- {
551
- "id": "a",
552
- "label": "Start"
553
- },
554
- {
555
- "label": "Process",
556
- "id": "b"
557
- },
558
- {
559
- "id": "c",
560
- "label": "End"
561
- }
562
- ]
536
+ "content": "Graph View",
537
+ "type": "typography",
538
+ "variant": "caption"
563
539
  }
564
- ],
565
- "direction": "vertical"
540
+ ]
541
+ }
542
+ ],
543
+ "gap": "md",
544
+ "type": "grid",
545
+ "cols": 2.0
546
+ },
547
+ {
548
+ "type": "line-chart",
549
+ "data": [
550
+ {
551
+ "value": 12.0,
552
+ "date": "Jan"
553
+ },
554
+ {
555
+ "date": "Feb",
556
+ "value": 19.0
557
+ },
558
+ {
559
+ "date": "Mar",
560
+ "value": 15.0
561
+ },
562
+ {
563
+ "date": "Apr",
564
+ "value": 25.0
565
+ },
566
+ {
567
+ "date": "May",
568
+ "value": 22.0
569
+ },
570
+ {
571
+ "value": 30.0,
572
+ "date": "Jun"
573
+ }
574
+ ]
575
+ },
576
+ {
577
+ "type": "chart-legend",
578
+ "items": [
579
+ {
580
+ "label": "Current",
581
+ "color": "primary"
582
+ },
583
+ {
584
+ "label": "Previous",
585
+ "color": "muted"
586
+ }
587
+ ]
588
+ },
589
+ {
590
+ "type": "graph-view",
591
+ "width": 400.0,
592
+ "height": 200.0,
593
+ "nodes": [
594
+ {
595
+ "id": "a",
596
+ "label": "Start"
597
+ },
598
+ {
599
+ "label": "Process",
600
+ "id": "b"
601
+ },
602
+ {
603
+ "id": "c",
604
+ "label": "End"
605
+ }
606
+ ],
607
+ "edges": [
608
+ {
609
+ "source": "a",
610
+ "target": "b"
611
+ },
612
+ {
613
+ "source": "b",
614
+ "target": "c"
566
615
  }
567
616
  ]
568
617
  }
569
- ],
570
- "type": "dashboard-layout"
618
+ ]
571
619
  }
572
620
  ]
573
621
  ]
@@ -582,8 +630,8 @@
582
630
  "Portfolio",
583
631
  {
584
632
  "emit": {
585
- "success": "PortfolioLoaded",
586
- "failure": "PortfolioLoadFailed"
633
+ "failure": "PortfolioLoadFailed",
634
+ "success": "PortfolioLoaded"
587
635
  }
588
636
  }
589
637
  ],
@@ -591,218 +639,190 @@
591
639
  "render-ui",
592
640
  "main",
593
641
  {
594
- "type": "dashboard-layout",
595
- "appName": "Trading Dashboard",
596
- "navItems": [
642
+ "gap": "lg",
643
+ "direction": "vertical",
644
+ "children": [
597
645
  {
598
- "icon": "layout-list",
599
- "href": "/portfolio",
600
- "label": "Portfolio"
646
+ "type": "breadcrumb",
647
+ "items": [
648
+ {
649
+ "label": "Home",
650
+ "href": "/"
651
+ },
652
+ {
653
+ "label": "Portfolio"
654
+ }
655
+ ]
601
656
  },
602
657
  {
603
- "href": "/orders",
604
- "icon": "clipboard-list",
605
- "label": "Orders"
658
+ "justify": "between",
659
+ "direction": "horizontal",
660
+ "children": [
661
+ {
662
+ "direction": "horizontal",
663
+ "gap": "md",
664
+ "children": [
665
+ {
666
+ "type": "icon",
667
+ "name": "trending-up"
668
+ },
669
+ {
670
+ "content": "Portfolio",
671
+ "variant": "h2",
672
+ "type": "typography"
673
+ }
674
+ ],
675
+ "type": "stack"
676
+ },
677
+ {
678
+ "label": "Refresh",
679
+ "variant": "secondary",
680
+ "icon": "refresh-cw",
681
+ "type": "button",
682
+ "action": "REFRESH"
683
+ }
684
+ ],
685
+ "gap": "md",
686
+ "type": "stack"
606
687
  },
607
688
  {
608
- "href": "/market",
609
- "icon": "layout-list",
610
- "label": "Market"
611
- }
612
- ],
613
- "children": [
689
+ "type": "divider"
690
+ },
614
691
  {
615
- "type": "scaled-diagram",
692
+ "type": "box",
693
+ "padding": "md",
616
694
  "children": [
617
695
  {
618
- "type": "stack",
619
- "direction": "vertical",
620
- "gap": "lg",
696
+ "cols": 3.0,
621
697
  "children": [
622
698
  {
623
- "type": "breadcrumb",
624
- "items": [
625
- {
626
- "label": "Home",
627
- "href": "/"
628
- },
629
- {
630
- "label": "Portfolio"
631
- }
632
- ]
633
- },
634
- {
635
- "gap": "md",
636
- "type": "stack",
637
- "justify": "between",
638
- "children": [
639
- {
640
- "children": [
641
- {
642
- "name": "trending-up",
643
- "type": "icon"
644
- },
645
- {
646
- "variant": "h2",
647
- "type": "typography",
648
- "content": "Portfolio"
649
- }
650
- ],
651
- "direction": "horizontal",
652
- "type": "stack",
653
- "gap": "md"
654
- },
655
- {
656
- "variant": "secondary",
657
- "type": "button",
658
- "icon": "refresh-cw",
659
- "label": "Refresh",
660
- "action": "REFRESH"
661
- }
662
- ],
663
- "direction": "horizontal"
699
+ "value": "@entity.totalValue",
700
+ "label": "TotalValue",
701
+ "type": "stat-display"
664
702
  },
665
703
  {
666
- "type": "divider"
704
+ "type": "stat-display",
705
+ "value": "@entity.dailyChange",
706
+ "label": "DailyChange"
667
707
  },
668
708
  {
669
- "padding": "md",
670
- "type": "box",
671
- "children": [
672
- {
673
- "type": "simple-grid",
674
- "cols": 3.0,
675
- "children": [
676
- {
677
- "label": "TotalValue",
678
- "type": "stat-display",
679
- "value": "@entity.totalValue"
680
- },
681
- {
682
- "label": "DailyChange",
683
- "type": "stat-display",
684
- "value": "@entity.dailyChange"
685
- },
686
- {
687
- "value": "@entity.positions",
688
- "type": "stat-display",
689
- "label": "Positions"
690
- },
691
- {
692
- "type": "stat-display",
693
- "value": "@entity.cashBalance",
694
- "label": "CashBalance"
695
- }
696
- ]
697
- }
698
- ]
709
+ "label": "Positions",
710
+ "value": "@entity.positions",
711
+ "type": "stat-display"
699
712
  },
700
713
  {
701
- "type": "divider"
702
- },
703
- {
704
- "cols": 2.0,
705
- "type": "grid",
706
- "gap": "md",
707
- "children": [
708
- {
709
- "children": [
710
- {
711
- "content": "Chart View",
712
- "type": "typography",
713
- "variant": "caption"
714
- }
715
- ],
716
- "type": "card"
717
- },
718
- {
719
- "type": "card",
720
- "children": [
721
- {
722
- "variant": "caption",
723
- "content": "Graph View",
724
- "type": "typography"
725
- }
726
- ]
727
- }
728
- ]
729
- },
730
- {
731
- "type": "line-chart",
732
- "data": [
733
- {
734
- "value": 12.0,
735
- "date": "Jan"
736
- },
737
- {
738
- "date": "Feb",
739
- "value": 19.0
740
- },
741
- {
742
- "date": "Mar",
743
- "value": 15.0
744
- },
745
- {
746
- "value": 25.0,
747
- "date": "Apr"
748
- },
749
- {
750
- "value": 22.0,
751
- "date": "May"
752
- },
753
- {
754
- "date": "Jun",
755
- "value": 30.0
756
- }
757
- ]
758
- },
714
+ "label": "CashBalance",
715
+ "value": "@entity.cashBalance",
716
+ "type": "stat-display"
717
+ }
718
+ ],
719
+ "type": "simple-grid"
720
+ }
721
+ ]
722
+ },
723
+ {
724
+ "type": "divider"
725
+ },
726
+ {
727
+ "children": [
728
+ {
729
+ "children": [
759
730
  {
760
- "type": "chart-legend",
761
- "items": [
762
- {
763
- "color": "primary",
764
- "label": "Current"
765
- },
766
- {
767
- "color": "muted",
768
- "label": "Previous"
769
- }
770
- ]
771
- },
731
+ "content": "Chart View",
732
+ "variant": "caption",
733
+ "type": "typography"
734
+ }
735
+ ],
736
+ "type": "card"
737
+ },
738
+ {
739
+ "type": "card",
740
+ "children": [
772
741
  {
773
- "edges": [
774
- {
775
- "source": "a",
776
- "target": "b"
777
- },
778
- {
779
- "source": "b",
780
- "target": "c"
781
- }
782
- ],
783
- "type": "graph-view",
784
- "nodes": [
785
- {
786
- "id": "a",
787
- "label": "Start"
788
- },
789
- {
790
- "id": "b",
791
- "label": "Process"
792
- },
793
- {
794
- "label": "End",
795
- "id": "c"
796
- }
797
- ],
798
- "width": 400.0,
799
- "height": 200.0
742
+ "type": "typography",
743
+ "variant": "caption",
744
+ "content": "Graph View"
800
745
  }
801
746
  ]
802
747
  }
803
- ]
748
+ ],
749
+ "gap": "md",
750
+ "type": "grid",
751
+ "cols": 2.0
752
+ },
753
+ {
754
+ "data": [
755
+ {
756
+ "value": 12.0,
757
+ "date": "Jan"
758
+ },
759
+ {
760
+ "value": 19.0,
761
+ "date": "Feb"
762
+ },
763
+ {
764
+ "date": "Mar",
765
+ "value": 15.0
766
+ },
767
+ {
768
+ "date": "Apr",
769
+ "value": 25.0
770
+ },
771
+ {
772
+ "date": "May",
773
+ "value": 22.0
774
+ },
775
+ {
776
+ "date": "Jun",
777
+ "value": 30.0
778
+ }
779
+ ],
780
+ "type": "line-chart"
781
+ },
782
+ {
783
+ "items": [
784
+ {
785
+ "label": "Current",
786
+ "color": "primary"
787
+ },
788
+ {
789
+ "label": "Previous",
790
+ "color": "muted"
791
+ }
792
+ ],
793
+ "type": "chart-legend"
794
+ },
795
+ {
796
+ "type": "graph-view",
797
+ "width": 400.0,
798
+ "nodes": [
799
+ {
800
+ "label": "Start",
801
+ "id": "a"
802
+ },
803
+ {
804
+ "id": "b",
805
+ "label": "Process"
806
+ },
807
+ {
808
+ "id": "c",
809
+ "label": "End"
810
+ }
811
+ ],
812
+ "edges": [
813
+ {
814
+ "source": "a",
815
+ "target": "b"
816
+ },
817
+ {
818
+ "target": "c",
819
+ "source": "b"
820
+ }
821
+ ],
822
+ "height": 200.0
804
823
  }
805
- ]
824
+ ],
825
+ "type": "stack"
806
826
  }
807
827
  ]
808
828
  ]
@@ -826,234 +846,413 @@
826
846
  "render-ui",
827
847
  "main",
828
848
  {
829
- "appName": "Trading Dashboard",
830
- "type": "dashboard-layout",
831
- "navItems": [
849
+ "gap": "lg",
850
+ "direction": "vertical",
851
+ "children": [
832
852
  {
833
- "icon": "layout-list",
834
- "label": "Portfolio",
835
- "href": "/portfolio"
853
+ "type": "breadcrumb",
854
+ "items": [
855
+ {
856
+ "label": "Home",
857
+ "href": "/"
858
+ },
859
+ {
860
+ "label": "Portfolio"
861
+ }
862
+ ]
836
863
  },
837
864
  {
838
- "label": "Orders",
839
- "icon": "clipboard-list",
840
- "href": "/orders"
865
+ "direction": "horizontal",
866
+ "justify": "between",
867
+ "children": [
868
+ {
869
+ "children": [
870
+ {
871
+ "type": "icon",
872
+ "name": "trending-up"
873
+ },
874
+ {
875
+ "type": "typography",
876
+ "content": "Portfolio",
877
+ "variant": "h2"
878
+ }
879
+ ],
880
+ "gap": "md",
881
+ "direction": "horizontal",
882
+ "type": "stack"
883
+ },
884
+ {
885
+ "type": "button",
886
+ "action": "REFRESH",
887
+ "icon": "refresh-cw",
888
+ "label": "Refresh",
889
+ "variant": "secondary"
890
+ }
891
+ ],
892
+ "type": "stack",
893
+ "gap": "md"
841
894
  },
842
895
  {
843
- "label": "Market",
844
- "icon": "layout-list",
845
- "href": "/market"
846
- }
847
- ],
848
- "children": [
896
+ "type": "divider"
897
+ },
849
898
  {
850
899
  "children": [
851
900
  {
852
- "gap": "lg",
853
- "direction": "vertical",
901
+ "type": "simple-grid",
854
902
  "children": [
855
903
  {
856
- "type": "breadcrumb",
857
- "items": [
858
- {
859
- "label": "Home",
860
- "href": "/"
861
- },
862
- {
863
- "label": "Portfolio"
864
- }
865
- ]
904
+ "value": "@entity.totalValue",
905
+ "label": "TotalValue",
906
+ "type": "stat-display"
866
907
  },
867
908
  {
868
- "type": "stack",
869
- "direction": "horizontal",
870
- "children": [
871
- {
872
- "type": "stack",
873
- "gap": "md",
874
- "direction": "horizontal",
875
- "children": [
876
- {
877
- "type": "icon",
878
- "name": "trending-up"
879
- },
880
- {
881
- "type": "typography",
882
- "content": "Portfolio",
883
- "variant": "h2"
884
- }
885
- ]
886
- },
887
- {
888
- "variant": "secondary",
889
- "action": "REFRESH",
890
- "type": "button",
891
- "label": "Refresh",
892
- "icon": "refresh-cw"
893
- }
894
- ],
895
- "gap": "md",
896
- "justify": "between"
909
+ "label": "DailyChange",
910
+ "value": "@entity.dailyChange",
911
+ "type": "stat-display"
897
912
  },
898
913
  {
899
- "type": "divider"
914
+ "value": "@entity.positions",
915
+ "label": "Positions",
916
+ "type": "stat-display"
900
917
  },
901
918
  {
902
- "children": [
903
- {
904
- "children": [
905
- {
906
- "label": "TotalValue",
907
- "value": "@entity.totalValue",
908
- "type": "stat-display"
909
- },
910
- {
911
- "value": "@entity.dailyChange",
912
- "type": "stat-display",
913
- "label": "DailyChange"
914
- },
915
- {
916
- "label": "Positions",
917
- "type": "stat-display",
918
- "value": "@entity.positions"
919
- },
920
- {
921
- "label": "CashBalance",
922
- "value": "@entity.cashBalance",
923
- "type": "stat-display"
924
- }
925
- ],
926
- "cols": 3.0,
927
- "type": "simple-grid"
928
- }
929
- ],
930
- "type": "box",
931
- "padding": "md"
932
- },
919
+ "label": "CashBalance",
920
+ "type": "stat-display",
921
+ "value": "@entity.cashBalance"
922
+ }
923
+ ],
924
+ "cols": 3.0
925
+ }
926
+ ],
927
+ "type": "box",
928
+ "padding": "md"
929
+ },
930
+ {
931
+ "type": "divider"
932
+ },
933
+ {
934
+ "children": [
935
+ {
936
+ "children": [
933
937
  {
934
- "type": "divider"
938
+ "variant": "caption",
939
+ "type": "typography",
940
+ "content": "Chart View"
941
+ }
942
+ ],
943
+ "type": "card"
944
+ },
945
+ {
946
+ "children": [
947
+ {
948
+ "content": "Graph View",
949
+ "variant": "caption",
950
+ "type": "typography"
951
+ }
952
+ ],
953
+ "type": "card"
954
+ }
955
+ ],
956
+ "type": "grid",
957
+ "cols": 2.0,
958
+ "gap": "md"
959
+ },
960
+ {
961
+ "type": "line-chart",
962
+ "data": [
963
+ {
964
+ "date": "Jan",
965
+ "value": 12.0
966
+ },
967
+ {
968
+ "value": 19.0,
969
+ "date": "Feb"
970
+ },
971
+ {
972
+ "value": 15.0,
973
+ "date": "Mar"
974
+ },
975
+ {
976
+ "value": 25.0,
977
+ "date": "Apr"
978
+ },
979
+ {
980
+ "value": 22.0,
981
+ "date": "May"
982
+ },
983
+ {
984
+ "value": 30.0,
985
+ "date": "Jun"
986
+ }
987
+ ]
988
+ },
989
+ {
990
+ "type": "chart-legend",
991
+ "items": [
992
+ {
993
+ "label": "Current",
994
+ "color": "primary"
995
+ },
996
+ {
997
+ "label": "Previous",
998
+ "color": "muted"
999
+ }
1000
+ ]
1001
+ },
1002
+ {
1003
+ "edges": [
1004
+ {
1005
+ "source": "a",
1006
+ "target": "b"
1007
+ },
1008
+ {
1009
+ "target": "c",
1010
+ "source": "b"
1011
+ }
1012
+ ],
1013
+ "width": 400.0,
1014
+ "nodes": [
1015
+ {
1016
+ "label": "Start",
1017
+ "id": "a"
1018
+ },
1019
+ {
1020
+ "id": "b",
1021
+ "label": "Process"
1022
+ },
1023
+ {
1024
+ "id": "c",
1025
+ "label": "End"
1026
+ }
1027
+ ],
1028
+ "type": "graph-view",
1029
+ "height": 200.0
1030
+ }
1031
+ ],
1032
+ "type": "stack"
1033
+ }
1034
+ ]
1035
+ ]
1036
+ },
1037
+ {
1038
+ "from": "displaying",
1039
+ "to": "refreshing",
1040
+ "event": "REFRESH",
1041
+ "effects": [
1042
+ [
1043
+ "fetch",
1044
+ "Portfolio",
1045
+ {
1046
+ "emit": {
1047
+ "success": "PortfolioLoaded",
1048
+ "failure": "PortfolioLoadFailed"
1049
+ }
1050
+ }
1051
+ ],
1052
+ [
1053
+ "render-ui",
1054
+ "main",
1055
+ {
1056
+ "children": [
1057
+ {
1058
+ "items": [
1059
+ {
1060
+ "href": "/",
1061
+ "label": "Home"
1062
+ },
1063
+ {
1064
+ "label": "Portfolio"
1065
+ }
1066
+ ],
1067
+ "type": "breadcrumb"
1068
+ },
1069
+ {
1070
+ "direction": "horizontal",
1071
+ "type": "stack",
1072
+ "justify": "between",
1073
+ "children": [
1074
+ {
1075
+ "children": [
1076
+ {
1077
+ "name": "trending-up",
1078
+ "type": "icon"
935
1079
  },
936
1080
  {
937
- "gap": "md",
938
- "type": "grid",
939
- "children": [
940
- {
941
- "type": "card",
942
- "children": [
943
- {
944
- "type": "typography",
945
- "variant": "caption",
946
- "content": "Chart View"
947
- }
948
- ]
949
- },
950
- {
951
- "children": [
952
- {
953
- "content": "Graph View",
954
- "type": "typography",
955
- "variant": "caption"
956
- }
957
- ],
958
- "type": "card"
959
- }
960
- ],
961
- "cols": 2.0
1081
+ "variant": "h2",
1082
+ "type": "typography",
1083
+ "content": "Portfolio"
1084
+ }
1085
+ ],
1086
+ "gap": "md",
1087
+ "direction": "horizontal",
1088
+ "type": "stack"
1089
+ },
1090
+ {
1091
+ "type": "button",
1092
+ "variant": "secondary",
1093
+ "label": "Refresh",
1094
+ "action": "REFRESH",
1095
+ "icon": "refresh-cw"
1096
+ }
1097
+ ],
1098
+ "gap": "md"
1099
+ },
1100
+ {
1101
+ "type": "divider"
1102
+ },
1103
+ {
1104
+ "type": "box",
1105
+ "children": [
1106
+ {
1107
+ "children": [
1108
+ {
1109
+ "type": "stat-display",
1110
+ "label": "TotalValue",
1111
+ "value": "@entity.totalValue"
962
1112
  },
963
1113
  {
964
- "type": "line-chart",
965
- "data": [
966
- {
967
- "date": "Jan",
968
- "value": 12.0
969
- },
970
- {
971
- "date": "Feb",
972
- "value": 19.0
973
- },
974
- {
975
- "date": "Mar",
976
- "value": 15.0
977
- },
978
- {
979
- "value": 25.0,
980
- "date": "Apr"
981
- },
982
- {
983
- "value": 22.0,
984
- "date": "May"
985
- },
986
- {
987
- "date": "Jun",
988
- "value": 30.0
989
- }
990
- ]
1114
+ "value": "@entity.dailyChange",
1115
+ "label": "DailyChange",
1116
+ "type": "stat-display"
991
1117
  },
992
1118
  {
993
- "items": [
994
- {
995
- "color": "primary",
996
- "label": "Current"
997
- },
998
- {
999
- "color": "muted",
1000
- "label": "Previous"
1001
- }
1002
- ],
1003
- "type": "chart-legend"
1119
+ "label": "Positions",
1120
+ "type": "stat-display",
1121
+ "value": "@entity.positions"
1004
1122
  },
1005
1123
  {
1006
- "height": 200.0,
1007
- "nodes": [
1008
- {
1009
- "label": "Start",
1010
- "id": "a"
1011
- },
1012
- {
1013
- "label": "Process",
1014
- "id": "b"
1015
- },
1016
- {
1017
- "label": "End",
1018
- "id": "c"
1019
- }
1020
- ],
1021
- "width": 400.0,
1022
- "type": "graph-view",
1023
- "edges": [
1024
- {
1025
- "source": "a",
1026
- "target": "b"
1027
- },
1028
- {
1029
- "source": "b",
1030
- "target": "c"
1031
- }
1032
- ]
1124
+ "type": "stat-display",
1125
+ "label": "CashBalance",
1126
+ "value": "@entity.cashBalance"
1127
+ }
1128
+ ],
1129
+ "type": "simple-grid",
1130
+ "cols": 3.0
1131
+ }
1132
+ ],
1133
+ "padding": "md"
1134
+ },
1135
+ {
1136
+ "type": "divider"
1137
+ },
1138
+ {
1139
+ "gap": "md",
1140
+ "type": "grid",
1141
+ "cols": 2.0,
1142
+ "children": [
1143
+ {
1144
+ "children": [
1145
+ {
1146
+ "type": "typography",
1147
+ "variant": "caption",
1148
+ "content": "Chart View"
1033
1149
  }
1034
1150
  ],
1035
- "type": "stack"
1151
+ "type": "card"
1152
+ },
1153
+ {
1154
+ "type": "card",
1155
+ "children": [
1156
+ {
1157
+ "type": "typography",
1158
+ "variant": "caption",
1159
+ "content": "Graph View"
1160
+ }
1161
+ ]
1162
+ }
1163
+ ]
1164
+ },
1165
+ {
1166
+ "type": "line-chart",
1167
+ "data": [
1168
+ {
1169
+ "date": "Jan",
1170
+ "value": 12.0
1171
+ },
1172
+ {
1173
+ "date": "Feb",
1174
+ "value": 19.0
1175
+ },
1176
+ {
1177
+ "date": "Mar",
1178
+ "value": 15.0
1179
+ },
1180
+ {
1181
+ "value": 25.0,
1182
+ "date": "Apr"
1183
+ },
1184
+ {
1185
+ "date": "May",
1186
+ "value": 22.0
1187
+ },
1188
+ {
1189
+ "date": "Jun",
1190
+ "value": 30.0
1191
+ }
1192
+ ]
1193
+ },
1194
+ {
1195
+ "items": [
1196
+ {
1197
+ "label": "Current",
1198
+ "color": "primary"
1199
+ },
1200
+ {
1201
+ "color": "muted",
1202
+ "label": "Previous"
1036
1203
  }
1037
1204
  ],
1038
- "type": "scaled-diagram"
1205
+ "type": "chart-legend"
1206
+ },
1207
+ {
1208
+ "edges": [
1209
+ {
1210
+ "target": "b",
1211
+ "source": "a"
1212
+ },
1213
+ {
1214
+ "source": "b",
1215
+ "target": "c"
1216
+ }
1217
+ ],
1218
+ "width": 400.0,
1219
+ "height": 200.0,
1220
+ "nodes": [
1221
+ {
1222
+ "id": "a",
1223
+ "label": "Start"
1224
+ },
1225
+ {
1226
+ "label": "Process",
1227
+ "id": "b"
1228
+ },
1229
+ {
1230
+ "label": "End",
1231
+ "id": "c"
1232
+ }
1233
+ ],
1234
+ "type": "graph-view"
1039
1235
  }
1040
- ]
1236
+ ],
1237
+ "gap": "lg",
1238
+ "type": "stack",
1239
+ "direction": "vertical"
1041
1240
  }
1042
1241
  ]
1043
1242
  ]
1044
1243
  },
1045
1244
  {
1046
1245
  "from": "displaying",
1047
- "to": "refreshing",
1048
- "event": "REFRESH",
1246
+ "to": "displaying",
1247
+ "event": "PORTFOLIO_SEARCH",
1049
1248
  "effects": [
1050
1249
  [
1051
1250
  "fetch",
1052
1251
  "Portfolio",
1053
1252
  {
1054
1253
  "emit": {
1055
- "success": "PortfolioLoaded",
1056
- "failure": "PortfolioLoadFailed"
1254
+ "failure": "PortfolioLoadFailed",
1255
+ "success": "PortfolioLoaded"
1057
1256
  }
1058
1257
  }
1059
1258
  ],
@@ -1061,218 +1260,63 @@
1061
1260
  "render-ui",
1062
1261
  "main",
1063
1262
  {
1064
- "appName": "Trading Dashboard",
1065
- "type": "dashboard-layout",
1263
+ "type": "stack",
1264
+ "className": "py-12",
1066
1265
  "children": [
1067
1266
  {
1068
- "children": [
1069
- {
1070
- "gap": "lg",
1071
- "type": "stack",
1072
- "children": [
1073
- {
1074
- "type": "breadcrumb",
1075
- "items": [
1076
- {
1077
- "label": "Home",
1078
- "href": "/"
1079
- },
1080
- {
1081
- "label": "Portfolio"
1082
- }
1083
- ]
1084
- },
1085
- {
1086
- "children": [
1087
- {
1088
- "direction": "horizontal",
1089
- "type": "stack",
1090
- "children": [
1091
- {
1092
- "type": "icon",
1093
- "name": "trending-up"
1094
- },
1095
- {
1096
- "content": "Portfolio",
1097
- "type": "typography",
1098
- "variant": "h2"
1099
- }
1100
- ],
1101
- "gap": "md"
1102
- },
1103
- {
1104
- "variant": "secondary",
1105
- "type": "button",
1106
- "action": "REFRESH",
1107
- "icon": "refresh-cw",
1108
- "label": "Refresh"
1109
- }
1110
- ],
1111
- "gap": "md",
1112
- "justify": "between",
1113
- "type": "stack",
1114
- "direction": "horizontal"
1115
- },
1116
- {
1117
- "type": "divider"
1118
- },
1119
- {
1120
- "padding": "md",
1121
- "children": [
1122
- {
1123
- "cols": 3.0,
1124
- "children": [
1125
- {
1126
- "type": "stat-display",
1127
- "value": "@entity.totalValue",
1128
- "label": "TotalValue"
1129
- },
1130
- {
1131
- "type": "stat-display",
1132
- "value": "@entity.dailyChange",
1133
- "label": "DailyChange"
1134
- },
1135
- {
1136
- "type": "stat-display",
1137
- "label": "Positions",
1138
- "value": "@entity.positions"
1139
- },
1140
- {
1141
- "type": "stat-display",
1142
- "value": "@entity.cashBalance",
1143
- "label": "CashBalance"
1144
- }
1145
- ],
1146
- "type": "simple-grid"
1147
- }
1148
- ],
1149
- "type": "box"
1150
- },
1151
- {
1152
- "type": "divider"
1153
- },
1154
- {
1155
- "type": "grid",
1156
- "gap": "md",
1157
- "cols": 2.0,
1158
- "children": [
1159
- {
1160
- "type": "card",
1161
- "children": [
1162
- {
1163
- "type": "typography",
1164
- "variant": "caption",
1165
- "content": "Chart View"
1166
- }
1167
- ]
1168
- },
1169
- {
1170
- "children": [
1171
- {
1172
- "type": "typography",
1173
- "variant": "caption",
1174
- "content": "Graph View"
1175
- }
1176
- ],
1177
- "type": "card"
1178
- }
1179
- ]
1180
- },
1181
- {
1182
- "data": [
1183
- {
1184
- "value": 12.0,
1185
- "date": "Jan"
1186
- },
1187
- {
1188
- "value": 19.0,
1189
- "date": "Feb"
1190
- },
1191
- {
1192
- "date": "Mar",
1193
- "value": 15.0
1194
- },
1195
- {
1196
- "date": "Apr",
1197
- "value": 25.0
1198
- },
1199
- {
1200
- "date": "May",
1201
- "value": 22.0
1202
- },
1203
- {
1204
- "value": 30.0,
1205
- "date": "Jun"
1206
- }
1207
- ],
1208
- "type": "line-chart"
1209
- },
1210
- {
1211
- "items": [
1212
- {
1213
- "label": "Current",
1214
- "color": "primary"
1215
- },
1216
- {
1217
- "color": "muted",
1218
- "label": "Previous"
1219
- }
1220
- ],
1221
- "type": "chart-legend"
1222
- },
1223
- {
1224
- "width": 400.0,
1225
- "height": 200.0,
1226
- "type": "graph-view",
1227
- "nodes": [
1228
- {
1229
- "id": "a",
1230
- "label": "Start"
1231
- },
1232
- {
1233
- "id": "b",
1234
- "label": "Process"
1235
- },
1236
- {
1237
- "id": "c",
1238
- "label": "End"
1239
- }
1240
- ],
1241
- "edges": [
1242
- {
1243
- "target": "b",
1244
- "source": "a"
1245
- },
1246
- {
1247
- "source": "b",
1248
- "target": "c"
1249
- }
1250
- ]
1251
- }
1252
- ],
1253
- "direction": "vertical"
1254
- }
1255
- ],
1256
- "type": "scaled-diagram"
1267
+ "type": "spinner"
1268
+ },
1269
+ {
1270
+ "color": "muted",
1271
+ "content": "Searching…",
1272
+ "type": "typography",
1273
+ "variant": "caption"
1257
1274
  }
1258
1275
  ],
1259
- "navItems": [
1276
+ "gap": "md",
1277
+ "direction": "vertical",
1278
+ "align": "center"
1279
+ }
1280
+ ]
1281
+ ]
1282
+ },
1283
+ {
1284
+ "from": "displaying",
1285
+ "to": "displaying",
1286
+ "event": "PORTFOLIO_NOTIFICATIONS_OPEN",
1287
+ "effects": [
1288
+ [
1289
+ "render-ui",
1290
+ "main",
1291
+ {
1292
+ "children": [
1260
1293
  {
1261
- "icon": "layout-list",
1262
- "href": "/portfolio",
1263
- "label": "Portfolio"
1294
+ "type": "icon",
1295
+ "name": "bell"
1264
1296
  },
1265
1297
  {
1266
- "icon": "clipboard-list",
1267
- "label": "Orders",
1268
- "href": "/orders"
1298
+ "variant": "h3",
1299
+ "content": "No notifications",
1300
+ "type": "typography"
1269
1301
  },
1270
1302
  {
1271
- "icon": "layout-list",
1272
- "label": "Market",
1273
- "href": "/market"
1303
+ "variant": "caption",
1304
+ "color": "muted",
1305
+ "type": "typography",
1306
+ "content": "You're all caught up."
1307
+ },
1308
+ {
1309
+ "type": "button",
1310
+ "action": "INIT",
1311
+ "label": "Back to portfolio",
1312
+ "variant": "ghost"
1274
1313
  }
1275
- ]
1314
+ ],
1315
+ "align": "center",
1316
+ "className": "py-8",
1317
+ "gap": "md",
1318
+ "type": "stack",
1319
+ "direction": "vertical"
1276
1320
  }
1277
1321
  ]
1278
1322
  ]
@@ -1287,8 +1331,8 @@
1287
1331
  "Portfolio",
1288
1332
  {
1289
1333
  "emit": {
1290
- "success": "PortfolioLoaded",
1291
- "failure": "PortfolioLoadFailed"
1334
+ "failure": "PortfolioLoadFailed",
1335
+ "success": "PortfolioLoaded"
1292
1336
  }
1293
1337
  }
1294
1338
  ],
@@ -1296,218 +1340,190 @@
1296
1340
  "render-ui",
1297
1341
  "main",
1298
1342
  {
1299
- "type": "dashboard-layout",
1300
- "navItems": [
1301
- {
1302
- "icon": "layout-list",
1303
- "label": "Portfolio",
1304
- "href": "/portfolio"
1305
- },
1343
+ "children": [
1306
1344
  {
1307
- "label": "Orders",
1308
- "href": "/orders",
1309
- "icon": "clipboard-list"
1345
+ "items": [
1346
+ {
1347
+ "href": "/",
1348
+ "label": "Home"
1349
+ },
1350
+ {
1351
+ "label": "Portfolio"
1352
+ }
1353
+ ],
1354
+ "type": "breadcrumb"
1310
1355
  },
1311
1356
  {
1312
- "label": "Market",
1313
- "href": "/market",
1314
- "icon": "layout-list"
1315
- }
1316
- ],
1317
- "appName": "Trading Dashboard",
1318
- "children": [
1319
- {
1320
- "type": "scaled-diagram",
1357
+ "direction": "horizontal",
1358
+ "justify": "between",
1321
1359
  "children": [
1322
1360
  {
1323
- "gap": "lg",
1361
+ "gap": "md",
1362
+ "type": "stack",
1324
1363
  "children": [
1325
1364
  {
1326
- "type": "breadcrumb",
1327
- "items": [
1328
- {
1329
- "label": "Home",
1330
- "href": "/"
1331
- },
1332
- {
1333
- "label": "Portfolio"
1334
- }
1335
- ]
1336
- },
1337
- {
1338
- "type": "stack",
1339
- "direction": "horizontal",
1340
- "justify": "between",
1341
- "children": [
1342
- {
1343
- "direction": "horizontal",
1344
- "children": [
1345
- {
1346
- "type": "icon",
1347
- "name": "trending-up"
1348
- },
1349
- {
1350
- "content": "Portfolio",
1351
- "variant": "h2",
1352
- "type": "typography"
1353
- }
1354
- ],
1355
- "gap": "md",
1356
- "type": "stack"
1357
- },
1358
- {
1359
- "variant": "secondary",
1360
- "icon": "refresh-cw",
1361
- "action": "REFRESH",
1362
- "type": "button",
1363
- "label": "Refresh"
1364
- }
1365
- ],
1366
- "gap": "md"
1365
+ "name": "trending-up",
1366
+ "type": "icon"
1367
1367
  },
1368
1368
  {
1369
- "type": "divider"
1370
- },
1369
+ "type": "typography",
1370
+ "content": "Portfolio",
1371
+ "variant": "h2"
1372
+ }
1373
+ ],
1374
+ "direction": "horizontal"
1375
+ },
1376
+ {
1377
+ "type": "button",
1378
+ "action": "REFRESH",
1379
+ "variant": "secondary",
1380
+ "icon": "refresh-cw",
1381
+ "label": "Refresh"
1382
+ }
1383
+ ],
1384
+ "type": "stack",
1385
+ "gap": "md"
1386
+ },
1387
+ {
1388
+ "type": "divider"
1389
+ },
1390
+ {
1391
+ "type": "box",
1392
+ "children": [
1393
+ {
1394
+ "type": "simple-grid",
1395
+ "cols": 3.0,
1396
+ "children": [
1371
1397
  {
1372
- "padding": "md",
1373
- "children": [
1374
- {
1375
- "cols": 3.0,
1376
- "type": "simple-grid",
1377
- "children": [
1378
- {
1379
- "value": "@entity.totalValue",
1380
- "type": "stat-display",
1381
- "label": "TotalValue"
1382
- },
1383
- {
1384
- "value": "@entity.dailyChange",
1385
- "label": "DailyChange",
1386
- "type": "stat-display"
1387
- },
1388
- {
1389
- "type": "stat-display",
1390
- "label": "Positions",
1391
- "value": "@entity.positions"
1392
- },
1393
- {
1394
- "label": "CashBalance",
1395
- "type": "stat-display",
1396
- "value": "@entity.cashBalance"
1397
- }
1398
- ]
1399
- }
1400
- ],
1401
- "type": "box"
1398
+ "value": "@entity.totalValue",
1399
+ "type": "stat-display",
1400
+ "label": "TotalValue"
1402
1401
  },
1403
1402
  {
1404
- "type": "divider"
1403
+ "value": "@entity.dailyChange",
1404
+ "label": "DailyChange",
1405
+ "type": "stat-display"
1405
1406
  },
1406
1407
  {
1407
- "gap": "md",
1408
- "type": "grid",
1409
- "cols": 2.0,
1410
- "children": [
1411
- {
1412
- "type": "card",
1413
- "children": [
1414
- {
1415
- "variant": "caption",
1416
- "content": "Chart View",
1417
- "type": "typography"
1418
- }
1419
- ]
1420
- },
1421
- {
1422
- "type": "card",
1423
- "children": [
1424
- {
1425
- "content": "Graph View",
1426
- "type": "typography",
1427
- "variant": "caption"
1428
- }
1429
- ]
1430
- }
1431
- ]
1408
+ "value": "@entity.positions",
1409
+ "type": "stat-display",
1410
+ "label": "Positions"
1432
1411
  },
1433
1412
  {
1434
- "type": "line-chart",
1435
- "data": [
1436
- {
1437
- "date": "Jan",
1438
- "value": 12.0
1439
- },
1440
- {
1441
- "date": "Feb",
1442
- "value": 19.0
1443
- },
1444
- {
1445
- "date": "Mar",
1446
- "value": 15.0
1447
- },
1448
- {
1449
- "date": "Apr",
1450
- "value": 25.0
1451
- },
1452
- {
1453
- "date": "May",
1454
- "value": 22.0
1455
- },
1456
- {
1457
- "date": "Jun",
1458
- "value": 30.0
1459
- }
1460
- ]
1461
- },
1413
+ "value": "@entity.cashBalance",
1414
+ "type": "stat-display",
1415
+ "label": "CashBalance"
1416
+ }
1417
+ ]
1418
+ }
1419
+ ],
1420
+ "padding": "md"
1421
+ },
1422
+ {
1423
+ "type": "divider"
1424
+ },
1425
+ {
1426
+ "type": "grid",
1427
+ "children": [
1428
+ {
1429
+ "type": "card",
1430
+ "children": [
1462
1431
  {
1463
- "items": [
1464
- {
1465
- "label": "Current",
1466
- "color": "primary"
1467
- },
1468
- {
1469
- "color": "muted",
1470
- "label": "Previous"
1471
- }
1472
- ],
1473
- "type": "chart-legend"
1474
- },
1432
+ "type": "typography",
1433
+ "variant": "caption",
1434
+ "content": "Chart View"
1435
+ }
1436
+ ]
1437
+ },
1438
+ {
1439
+ "type": "card",
1440
+ "children": [
1475
1441
  {
1476
- "type": "graph-view",
1477
- "height": 200.0,
1478
- "edges": [
1479
- {
1480
- "source": "a",
1481
- "target": "b"
1482
- },
1483
- {
1484
- "target": "c",
1485
- "source": "b"
1486
- }
1487
- ],
1488
- "nodes": [
1489
- {
1490
- "id": "a",
1491
- "label": "Start"
1492
- },
1493
- {
1494
- "label": "Process",
1495
- "id": "b"
1496
- },
1497
- {
1498
- "label": "End",
1499
- "id": "c"
1500
- }
1501
- ],
1502
- "width": 400.0
1442
+ "content": "Graph View",
1443
+ "type": "typography",
1444
+ "variant": "caption"
1503
1445
  }
1504
- ],
1505
- "type": "stack",
1506
- "direction": "vertical"
1446
+ ]
1447
+ }
1448
+ ],
1449
+ "gap": "md",
1450
+ "cols": 2.0
1451
+ },
1452
+ {
1453
+ "data": [
1454
+ {
1455
+ "date": "Jan",
1456
+ "value": 12.0
1457
+ },
1458
+ {
1459
+ "value": 19.0,
1460
+ "date": "Feb"
1461
+ },
1462
+ {
1463
+ "value": 15.0,
1464
+ "date": "Mar"
1465
+ },
1466
+ {
1467
+ "value": 25.0,
1468
+ "date": "Apr"
1469
+ },
1470
+ {
1471
+ "value": 22.0,
1472
+ "date": "May"
1473
+ },
1474
+ {
1475
+ "date": "Jun",
1476
+ "value": 30.0
1477
+ }
1478
+ ],
1479
+ "type": "line-chart"
1480
+ },
1481
+ {
1482
+ "type": "chart-legend",
1483
+ "items": [
1484
+ {
1485
+ "label": "Current",
1486
+ "color": "primary"
1487
+ },
1488
+ {
1489
+ "label": "Previous",
1490
+ "color": "muted"
1507
1491
  }
1508
1492
  ]
1493
+ },
1494
+ {
1495
+ "edges": [
1496
+ {
1497
+ "source": "a",
1498
+ "target": "b"
1499
+ },
1500
+ {
1501
+ "target": "c",
1502
+ "source": "b"
1503
+ }
1504
+ ],
1505
+ "type": "graph-view",
1506
+ "height": 200.0,
1507
+ "nodes": [
1508
+ {
1509
+ "label": "Start",
1510
+ "id": "a"
1511
+ },
1512
+ {
1513
+ "id": "b",
1514
+ "label": "Process"
1515
+ },
1516
+ {
1517
+ "label": "End",
1518
+ "id": "c"
1519
+ }
1520
+ ],
1521
+ "width": 400.0
1509
1522
  }
1510
- ]
1523
+ ],
1524
+ "direction": "vertical",
1525
+ "gap": "lg",
1526
+ "type": "stack"
1511
1527
  }
1512
1528
  ]
1513
1529
  ]
@@ -1522,6 +1538,9 @@
1522
1538
  "name": "PortfolioPage",
1523
1539
  "path": "/portfolio",
1524
1540
  "traits": [
1541
+ {
1542
+ "ref": "PortfolioAppLayout"
1543
+ },
1525
1544
  {
1526
1545
  "ref": "PortfolioDisplay"
1527
1546
  }
@@ -1807,8 +1826,8 @@
1807
1826
  "TradeOrder",
1808
1827
  {
1809
1828
  "emit": {
1810
- "success": "TradeOrderLoaded",
1811
- "failure": "TradeOrderLoadFailed"
1829
+ "failure": "TradeOrderLoadFailed",
1830
+ "success": "TradeOrderLoaded"
1812
1831
  }
1813
1832
  }
1814
1833
  ],
@@ -1816,22 +1835,22 @@
1816
1835
  "render-ui",
1817
1836
  "main",
1818
1837
  {
1838
+ "direction": "vertical",
1839
+ "type": "stack",
1840
+ "align": "center",
1841
+ "gap": "md",
1842
+ "className": "py-12",
1819
1843
  "children": [
1820
1844
  {
1821
1845
  "type": "spinner"
1822
1846
  },
1823
1847
  {
1824
- "type": "typography",
1825
- "content": "Loading orders…",
1826
1848
  "variant": "caption",
1827
- "color": "muted"
1849
+ "color": "muted",
1850
+ "type": "typography",
1851
+ "content": "Loading orders…"
1828
1852
  }
1829
- ],
1830
- "gap": "md",
1831
- "direction": "vertical",
1832
- "align": "center",
1833
- "className": "py-12",
1834
- "type": "stack"
1853
+ ]
1835
1854
  }
1836
1855
  ]
1837
1856
  ]
@@ -1845,18 +1864,20 @@
1845
1864
  "render-ui",
1846
1865
  "main",
1847
1866
  {
1867
+ "appName": "Trading Dashboard",
1868
+ "type": "dashboard-layout",
1848
1869
  "children": [
1849
1870
  {
1850
- "className": "max-w-5xl mx-auto w-full",
1851
- "gap": "lg",
1852
1871
  "direction": "vertical",
1853
- "type": "stack",
1872
+ "className": "max-w-5xl mx-auto w-full",
1854
1873
  "children": [
1855
1874
  {
1856
- "gap": "md",
1875
+ "type": "stack",
1857
1876
  "justify": "between",
1858
1877
  "children": [
1859
1878
  {
1879
+ "type": "stack",
1880
+ "direction": "horizontal",
1860
1881
  "gap": "sm",
1861
1882
  "align": "center",
1862
1883
  "children": [
@@ -1865,30 +1886,28 @@
1865
1886
  "type": "icon"
1866
1887
  },
1867
1888
  {
1868
- "content": "Trade Orders",
1889
+ "type": "typography",
1869
1890
  "variant": "h2",
1870
- "type": "typography"
1891
+ "content": "Trade Orders"
1871
1892
  }
1872
- ],
1873
- "direction": "horizontal",
1874
- "type": "stack"
1893
+ ]
1875
1894
  },
1876
1895
  {
1877
- "type": "stack",
1878
1896
  "direction": "horizontal",
1897
+ "type": "stack",
1879
1898
  "gap": "sm",
1880
1899
  "children": [
1881
1900
  {
1882
1901
  "type": "button",
1883
- "variant": "primary",
1884
- "action": "CREATE",
1885
1902
  "label": "Create TradeOrder",
1886
- "icon": "plus"
1903
+ "icon": "plus",
1904
+ "action": "CREATE",
1905
+ "variant": "primary"
1887
1906
  }
1888
1907
  ]
1889
1908
  }
1890
1909
  ],
1891
- "type": "stack",
1910
+ "gap": "md",
1892
1911
  "align": "center",
1893
1912
  "direction": "horizontal"
1894
1913
  },
@@ -1896,57 +1915,59 @@
1896
1915
  "type": "divider"
1897
1916
  },
1898
1917
  {
1899
- "type": "data-list",
1918
+ "itemActions": [
1919
+ {
1920
+ "event": "VIEW",
1921
+ "label": "View",
1922
+ "variant": "ghost"
1923
+ },
1924
+ {
1925
+ "variant": "ghost",
1926
+ "label": "Edit",
1927
+ "event": "EDIT"
1928
+ },
1929
+ {
1930
+ "label": "Delete",
1931
+ "event": "DELETE",
1932
+ "variant": "danger"
1933
+ }
1934
+ ],
1900
1935
  "entity": "@payload.data",
1936
+ "type": "data-list",
1901
1937
  "fields": [
1902
1938
  {
1903
- "variant": "h3",
1939
+ "icon": "trending-up",
1904
1940
  "name": "symbol",
1905
- "icon": "trending-up"
1941
+ "variant": "h3"
1906
1942
  },
1907
1943
  {
1908
- "name": "side",
1909
- "variant": "badge"
1944
+ "variant": "badge",
1945
+ "name": "side"
1910
1946
  },
1911
1947
  {
1912
1948
  "name": "quantity",
1913
- "variant": "body",
1914
- "format": "number"
1949
+ "format": "number",
1950
+ "variant": "body"
1915
1951
  },
1916
1952
  {
1917
- "format": "currency",
1918
1953
  "name": "price",
1919
- "variant": "h4"
1954
+ "variant": "h4",
1955
+ "format": "currency"
1920
1956
  }
1921
1957
  ],
1922
- "variant": "card",
1923
1958
  "gap": "sm",
1924
- "itemActions": [
1925
- {
1926
- "variant": "ghost",
1927
- "label": "View",
1928
- "event": "VIEW"
1929
- },
1930
- {
1931
- "event": "EDIT",
1932
- "label": "Edit",
1933
- "variant": "ghost"
1934
- },
1935
- {
1936
- "label": "Delete",
1937
- "event": "DELETE",
1938
- "variant": "danger"
1939
- }
1940
- ]
1959
+ "variant": "card"
1941
1960
  }
1942
- ]
1961
+ ],
1962
+ "gap": "lg",
1963
+ "type": "stack"
1943
1964
  }
1944
1965
  ],
1945
1966
  "navItems": [
1946
1967
  {
1947
1968
  "href": "/portfolio",
1948
- "label": "Portfolio",
1949
- "icon": "layout-list"
1969
+ "icon": "layout-list",
1970
+ "label": "Portfolio"
1950
1971
  },
1951
1972
  {
1952
1973
  "href": "/orders",
@@ -1954,13 +1975,11 @@
1954
1975
  "icon": "clipboard-list"
1955
1976
  },
1956
1977
  {
1957
- "href": "/market",
1978
+ "label": "Market",
1958
1979
  "icon": "layout-list",
1959
- "label": "Market"
1980
+ "href": "/market"
1960
1981
  }
1961
- ],
1962
- "type": "dashboard-layout",
1963
- "appName": "Trading Dashboard"
1982
+ ]
1964
1983
  }
1965
1984
  ]
1966
1985
  ]
@@ -1974,36 +1993,36 @@
1974
1993
  "render-ui",
1975
1994
  "main",
1976
1995
  {
1996
+ "direction": "vertical",
1997
+ "gap": "md",
1998
+ "type": "stack",
1999
+ "align": "center",
1977
2000
  "className": "py-12",
1978
2001
  "children": [
1979
2002
  {
1980
- "type": "icon",
1981
2003
  "name": "alert-triangle",
1982
- "color": "destructive"
2004
+ "color": "destructive",
2005
+ "type": "icon"
1983
2006
  },
1984
2007
  {
1985
- "content": "Failed to load orders",
1986
2008
  "type": "typography",
1987
- "variant": "h3"
2009
+ "variant": "h3",
2010
+ "content": "Failed to load orders"
1988
2011
  },
1989
2012
  {
1990
- "color": "muted",
1991
- "type": "typography",
1992
2013
  "content": "@payload.error",
1993
- "variant": "body"
2014
+ "type": "typography",
2015
+ "variant": "body",
2016
+ "color": "muted"
1994
2017
  },
1995
2018
  {
1996
2019
  "type": "button",
1997
- "label": "Retry",
1998
- "action": "INIT",
1999
2020
  "variant": "primary",
2021
+ "action": "INIT",
2022
+ "label": "Retry",
2000
2023
  "icon": "rotate-ccw"
2001
2024
  }
2002
- ],
2003
- "align": "center",
2004
- "type": "stack",
2005
- "direction": "vertical",
2006
- "gap": "md"
2025
+ ]
2007
2026
  }
2008
2027
  ]
2009
2028
  ]
@@ -2178,8 +2197,8 @@
2178
2197
  "TradeOrder",
2179
2198
  {
2180
2199
  "emit": {
2181
- "failure": "TradeOrderLoadFailed",
2182
- "success": "TradeOrderLoaded"
2200
+ "success": "TradeOrderLoaded",
2201
+ "failure": "TradeOrderLoadFailed"
2183
2202
  }
2184
2203
  }
2185
2204
  ]
@@ -2195,8 +2214,8 @@
2195
2214
  "TradeOrder",
2196
2215
  {
2197
2216
  "emit": {
2198
- "failure": "TradeOrderLoadFailed",
2199
- "success": "TradeOrderLoaded"
2217
+ "success": "TradeOrderLoaded",
2218
+ "failure": "TradeOrderLoadFailed"
2200
2219
  }
2201
2220
  }
2202
2221
  ],
@@ -2204,42 +2223,42 @@
2204
2223
  "render-ui",
2205
2224
  "modal",
2206
2225
  {
2226
+ "type": "stack",
2227
+ "direction": "vertical",
2207
2228
  "children": [
2208
2229
  {
2209
2230
  "direction": "horizontal",
2210
2231
  "children": [
2211
2232
  {
2212
- "name": "plus-circle",
2213
- "type": "icon"
2233
+ "type": "icon",
2234
+ "name": "plus-circle"
2214
2235
  },
2215
2236
  {
2216
- "content": "Create TradeOrder",
2217
2237
  "variant": "h3",
2238
+ "content": "Create TradeOrder",
2218
2239
  "type": "typography"
2219
2240
  }
2220
2241
  ],
2221
- "type": "stack",
2222
- "gap": "sm"
2242
+ "gap": "sm",
2243
+ "type": "stack"
2223
2244
  },
2224
2245
  {
2225
2246
  "type": "divider"
2226
2247
  },
2227
2248
  {
2228
2249
  "submitEvent": "SAVE",
2229
- "cancelEvent": "CLOSE",
2230
- "type": "form-section",
2231
2250
  "fields": [
2232
2251
  "symbol",
2233
2252
  "side",
2234
2253
  "quantity",
2235
2254
  "price"
2236
2255
  ],
2256
+ "type": "form-section",
2257
+ "cancelEvent": "CLOSE",
2237
2258
  "mode": "create"
2238
2259
  }
2239
2260
  ],
2240
- "gap": "md",
2241
- "direction": "vertical",
2242
- "type": "stack"
2261
+ "gap": "md"
2243
2262
  }
2244
2263
  ]
2245
2264
  ]
@@ -2280,8 +2299,8 @@
2280
2299
  "@payload.data",
2281
2300
  {
2282
2301
  "emit": {
2283
- "failure": "TradeOrderSaveFailed",
2284
- "success": "TradeOrderSaved"
2302
+ "success": "TradeOrderSaved",
2303
+ "failure": "TradeOrderSaveFailed"
2285
2304
  }
2286
2305
  }
2287
2306
  ],
@@ -2508,8 +2527,8 @@
2508
2527
  "TradeOrder",
2509
2528
  {
2510
2529
  "emit": {
2511
- "failure": "TradeOrderLoadFailed",
2512
- "success": "TradeOrderLoaded"
2530
+ "success": "TradeOrderLoaded",
2531
+ "failure": "TradeOrderLoadFailed"
2513
2532
  },
2514
2533
  "id": "@payload.id"
2515
2534
  }
@@ -2518,29 +2537,32 @@
2518
2537
  "render-ui",
2519
2538
  "modal",
2520
2539
  {
2540
+ "gap": "md",
2541
+ "direction": "vertical",
2521
2542
  "type": "stack",
2522
2543
  "children": [
2523
2544
  {
2524
2545
  "type": "stack",
2546
+ "gap": "sm",
2525
2547
  "direction": "horizontal",
2526
2548
  "children": [
2527
2549
  {
2528
- "type": "icon",
2529
- "name": "edit"
2550
+ "name": "edit",
2551
+ "type": "icon"
2530
2552
  },
2531
2553
  {
2532
- "variant": "h3",
2533
2554
  "type": "typography",
2555
+ "variant": "h3",
2534
2556
  "content": "Edit TradeOrder"
2535
2557
  }
2536
- ],
2537
- "gap": "sm"
2558
+ ]
2538
2559
  },
2539
2560
  {
2540
2561
  "type": "divider"
2541
2562
  },
2542
2563
  {
2543
- "submitEvent": "SAVE",
2564
+ "type": "form-section",
2565
+ "mode": "edit",
2544
2566
  "cancelEvent": "CLOSE",
2545
2567
  "fields": [
2546
2568
  "symbol",
@@ -2548,13 +2570,10 @@
2548
2570
  "quantity",
2549
2571
  "price"
2550
2572
  ],
2551
- "mode": "edit",
2552
- "type": "form-section",
2573
+ "submitEvent": "SAVE",
2553
2574
  "entity": "@payload.row"
2554
2575
  }
2555
- ],
2556
- "gap": "md",
2557
- "direction": "vertical"
2576
+ ]
2558
2577
  }
2559
2578
  ]
2560
2579
  ]
@@ -2595,8 +2614,8 @@
2595
2614
  "@payload.data",
2596
2615
  {
2597
2616
  "emit": {
2598
- "success": "TradeOrderUpdated",
2599
- "failure": "TradeOrderUpdateFailed"
2617
+ "failure": "TradeOrderUpdateFailed",
2618
+ "success": "TradeOrderUpdated"
2600
2619
  }
2601
2620
  }
2602
2621
  ],
@@ -2782,76 +2801,74 @@
2782
2801
  "fetch",
2783
2802
  "TradeOrder",
2784
2803
  {
2785
- "id": "@payload.id",
2786
2804
  "emit": {
2787
- "failure": "TradeOrderLoadFailed",
2788
- "success": "TradeOrderLoaded"
2789
- }
2805
+ "success": "TradeOrderLoaded",
2806
+ "failure": "TradeOrderLoadFailed"
2807
+ },
2808
+ "id": "@payload.id"
2790
2809
  }
2791
2810
  ],
2792
2811
  [
2793
2812
  "render-ui",
2794
2813
  "modal",
2795
2814
  {
2796
- "type": "stack",
2797
2815
  "children": [
2798
2816
  {
2817
+ "type": "stack",
2818
+ "direction": "horizontal",
2819
+ "align": "center",
2820
+ "gap": "sm",
2799
2821
  "children": [
2800
2822
  {
2801
- "name": "eye",
2802
- "type": "icon"
2823
+ "type": "icon",
2824
+ "name": "eye"
2803
2825
  },
2804
2826
  {
2805
- "content": "@entity.symbol",
2806
2827
  "variant": "h3",
2828
+ "content": "@entity.symbol",
2807
2829
  "type": "typography"
2808
2830
  }
2809
- ],
2810
- "direction": "horizontal",
2811
- "align": "center",
2812
- "gap": "sm",
2813
- "type": "stack"
2831
+ ]
2814
2832
  },
2815
2833
  {
2816
2834
  "type": "divider"
2817
2835
  },
2818
2836
  {
2837
+ "direction": "horizontal",
2838
+ "type": "stack",
2839
+ "gap": "md",
2819
2840
  "children": [
2820
2841
  {
2821
- "variant": "caption",
2822
2842
  "content": "Symbol",
2823
- "type": "typography"
2843
+ "type": "typography",
2844
+ "variant": "caption"
2824
2845
  },
2825
2846
  {
2826
- "type": "typography",
2847
+ "content": "@entity.symbol",
2827
2848
  "variant": "body",
2828
- "content": "@entity.symbol"
2849
+ "type": "typography"
2829
2850
  }
2830
- ],
2831
- "direction": "horizontal",
2832
- "type": "stack",
2833
- "gap": "md"
2851
+ ]
2834
2852
  },
2835
2853
  {
2854
+ "gap": "md",
2836
2855
  "direction": "horizontal",
2856
+ "type": "stack",
2837
2857
  "children": [
2838
2858
  {
2839
- "variant": "caption",
2840
2859
  "type": "typography",
2860
+ "variant": "caption",
2841
2861
  "content": "Side"
2842
2862
  },
2843
2863
  {
2844
- "type": "typography",
2845
2864
  "variant": "body",
2846
- "content": "@entity.side"
2865
+ "content": "@entity.side",
2866
+ "type": "typography"
2847
2867
  }
2848
- ],
2849
- "gap": "md",
2850
- "type": "stack"
2868
+ ]
2851
2869
  },
2852
2870
  {
2853
- "gap": "md",
2854
- "direction": "horizontal",
2871
+ "type": "stack",
2855
2872
  "children": [
2856
2873
  {
2857
2874
  "variant": "caption",
@@ -2860,56 +2877,58 @@
2860
2877
  },
2861
2878
  {
2862
2879
  "content": "@entity.quantity",
2863
- "type": "typography",
2864
- "variant": "body"
2880
+ "variant": "body",
2881
+ "type": "typography"
2865
2882
  }
2866
2883
  ],
2867
- "type": "stack"
2884
+ "gap": "md",
2885
+ "direction": "horizontal"
2868
2886
  },
2869
2887
  {
2870
- "gap": "md",
2871
2888
  "type": "stack",
2889
+ "direction": "horizontal",
2890
+ "gap": "md",
2872
2891
  "children": [
2873
2892
  {
2874
- "type": "typography",
2875
2893
  "variant": "caption",
2894
+ "type": "typography",
2876
2895
  "content": "Price"
2877
2896
  },
2878
2897
  {
2879
2898
  "variant": "body",
2880
- "type": "typography",
2881
- "content": "@entity.price"
2899
+ "content": "@entity.price",
2900
+ "type": "typography"
2882
2901
  }
2883
- ],
2884
- "direction": "horizontal"
2902
+ ]
2885
2903
  },
2886
2904
  {
2887
2905
  "type": "divider"
2888
2906
  },
2889
2907
  {
2890
2908
  "type": "stack",
2909
+ "direction": "horizontal",
2910
+ "gap": "sm",
2911
+ "justify": "end",
2891
2912
  "children": [
2892
2913
  {
2893
- "variant": "primary",
2894
- "icon": "edit",
2895
- "type": "button",
2896
2914
  "label": "Edit",
2897
- "action": "EDIT"
2915
+ "type": "button",
2916
+ "action": "EDIT",
2917
+ "variant": "primary",
2918
+ "icon": "edit"
2898
2919
  },
2899
2920
  {
2900
- "label": "Close",
2901
- "variant": "ghost",
2902
2921
  "type": "button",
2922
+ "variant": "ghost",
2923
+ "label": "Close",
2903
2924
  "action": "CLOSE"
2904
2925
  }
2905
- ],
2906
- "direction": "horizontal",
2907
- "justify": "end",
2908
- "gap": "sm"
2926
+ ]
2909
2927
  }
2910
2928
  ],
2911
2929
  "direction": "vertical",
2912
- "gap": "md"
2930
+ "gap": "md",
2931
+ "type": "stack"
2913
2932
  }
2914
2933
  ]
2915
2934
  ]
@@ -3131,8 +3150,8 @@
3131
3150
  "TradeOrder",
3132
3151
  {
3133
3152
  "emit": {
3134
- "failure": "TradeOrderLoadFailed",
3135
- "success": "TradeOrderLoaded"
3153
+ "success": "TradeOrderLoaded",
3154
+ "failure": "TradeOrderLoadFailed"
3136
3155
  }
3137
3156
  }
3138
3157
  ]
@@ -3152,68 +3171,68 @@
3152
3171
  "fetch",
3153
3172
  "TradeOrder",
3154
3173
  {
3155
- "id": "@payload.id",
3156
3174
  "emit": {
3157
3175
  "failure": "TradeOrderLoadFailed",
3158
3176
  "success": "TradeOrderLoaded"
3159
- }
3177
+ },
3178
+ "id": "@payload.id"
3160
3179
  }
3161
3180
  ],
3162
3181
  [
3163
3182
  "render-ui",
3164
3183
  "modal",
3165
3184
  {
3185
+ "gap": "md",
3166
3186
  "children": [
3167
3187
  {
3168
- "type": "stack",
3169
3188
  "align": "center",
3170
3189
  "children": [
3171
3190
  {
3172
- "type": "icon",
3173
- "name": "alert-triangle"
3191
+ "name": "alert-triangle",
3192
+ "type": "icon"
3174
3193
  },
3175
3194
  {
3176
- "variant": "h3",
3177
3195
  "type": "typography",
3178
- "content": "Delete TradeOrder"
3196
+ "content": "Delete TradeOrder",
3197
+ "variant": "h3"
3179
3198
  }
3180
3199
  ],
3181
3200
  "direction": "horizontal",
3182
- "gap": "sm"
3201
+ "gap": "sm",
3202
+ "type": "stack"
3183
3203
  },
3184
3204
  {
3185
3205
  "type": "divider"
3186
3206
  },
3187
3207
  {
3188
3208
  "message": "This action cannot be undone.",
3189
- "variant": "error",
3190
- "type": "alert"
3209
+ "type": "alert",
3210
+ "variant": "error"
3191
3211
  },
3192
3212
  {
3213
+ "direction": "horizontal",
3214
+ "gap": "sm",
3215
+ "type": "stack",
3216
+ "justify": "end",
3193
3217
  "children": [
3194
3218
  {
3195
- "type": "button",
3196
3219
  "action": "CANCEL",
3220
+ "label": "Cancel",
3197
3221
  "variant": "ghost",
3198
- "label": "Cancel"
3222
+ "type": "button"
3199
3223
  },
3200
3224
  {
3201
- "variant": "danger",
3202
- "type": "button",
3203
3225
  "icon": "check",
3226
+ "type": "button",
3204
3227
  "label": "Delete",
3205
- "action": "CONFIRM_DELETE"
3228
+ "action": "CONFIRM_DELETE",
3229
+ "variant": "danger"
3206
3230
  }
3207
- ],
3208
- "justify": "end",
3209
- "direction": "horizontal",
3210
- "type": "stack",
3211
- "gap": "sm"
3231
+ ]
3212
3232
  }
3213
3233
  ],
3214
- "gap": "md",
3215
- "type": "stack",
3216
- "direction": "vertical"
3234
+ "direction": "vertical",
3235
+ "type": "stack"
3217
3236
  }
3218
3237
  ]
3219
3238
  ]
@@ -3230,8 +3249,8 @@
3230
3249
  "@entity.pendingId",
3231
3250
  {
3232
3251
  "emit": {
3233
- "success": "TradeOrderDeleted",
3234
- "failure": "TradeOrderDeleteFailed"
3252
+ "failure": "TradeOrderDeleteFailed",
3253
+ "success": "TradeOrderDeleted"
3235
3254
  }
3236
3255
  }
3237
3256
  ],
@@ -3252,8 +3271,8 @@
3252
3271
  "TradeOrder",
3253
3272
  {
3254
3273
  "emit": {
3255
- "failure": "TradeOrderLoadFailed",
3256
- "success": "TradeOrderLoaded"
3274
+ "success": "TradeOrderLoaded",
3275
+ "failure": "TradeOrderLoadFailed"
3257
3276
  }
3258
3277
  }
3259
3278
  ],
@@ -3314,8 +3333,8 @@
3314
3333
  "TradeOrder",
3315
3334
  {
3316
3335
  "emit": {
3317
- "failure": "TradeOrderLoadFailed",
3318
- "success": "TradeOrderLoaded"
3336
+ "success": "TradeOrderLoaded",
3337
+ "failure": "TradeOrderLoadFailed"
3319
3338
  }
3320
3339
  }
3321
3340
  ]
@@ -3554,68 +3573,68 @@
3554
3573
  "render-ui",
3555
3574
  "main",
3556
3575
  {
3576
+ "appName": "Trading Dashboard",
3577
+ "navItems": [
3578
+ {
3579
+ "href": "/portfolio",
3580
+ "label": "Portfolio",
3581
+ "icon": "layout-list"
3582
+ },
3583
+ {
3584
+ "href": "/orders",
3585
+ "label": "Orders",
3586
+ "icon": "clipboard-list"
3587
+ },
3588
+ {
3589
+ "label": "Market",
3590
+ "href": "/market",
3591
+ "icon": "layout-list"
3592
+ }
3593
+ ],
3594
+ "type": "dashboard-layout",
3557
3595
  "children": [
3558
3596
  {
3597
+ "gap": "lg",
3559
3598
  "type": "stack",
3560
- "align": "center",
3599
+ "direction": "vertical",
3561
3600
  "children": [
3562
3601
  {
3602
+ "align": "center",
3563
3603
  "children": [
3564
3604
  {
3565
3605
  "name": "activity",
3566
3606
  "type": "icon"
3567
3607
  },
3568
3608
  {
3569
- "variant": "h2",
3609
+ "content": "MarketFeed",
3570
3610
  "type": "typography",
3571
- "content": "MarketFeed"
3611
+ "variant": "h2"
3572
3612
  }
3573
3613
  ],
3574
- "direction": "horizontal",
3575
- "align": "center",
3576
3614
  "gap": "md",
3577
- "type": "stack"
3615
+ "type": "stack",
3616
+ "direction": "horizontal"
3578
3617
  },
3579
3618
  {
3580
3619
  "type": "divider"
3581
3620
  },
3582
3621
  {
3583
- "color": "muted",
3584
3622
  "content": "Ready to start marketfeed operation.",
3585
- "type": "typography",
3586
- "variant": "body"
3623
+ "variant": "body",
3624
+ "color": "muted",
3625
+ "type": "typography"
3587
3626
  },
3588
3627
  {
3589
3628
  "action": "START",
3629
+ "icon": "play",
3590
3630
  "type": "button",
3591
- "variant": "primary",
3592
3631
  "label": "Start",
3593
- "icon": "play"
3632
+ "variant": "primary"
3594
3633
  }
3595
3634
  ],
3596
- "gap": "lg",
3597
- "direction": "vertical"
3598
- }
3599
- ],
3600
- "navItems": [
3601
- {
3602
- "label": "Portfolio",
3603
- "href": "/portfolio",
3604
- "icon": "layout-list"
3605
- },
3606
- {
3607
- "href": "/orders",
3608
- "icon": "clipboard-list",
3609
- "label": "Orders"
3610
- },
3611
- {
3612
- "icon": "layout-list",
3613
- "label": "Market",
3614
- "href": "/market"
3635
+ "align": "center"
3615
3636
  }
3616
- ],
3617
- "type": "dashboard-layout",
3618
- "appName": "Trading Dashboard"
3637
+ ]
3619
3638
  }
3620
3639
  ]
3621
3640
  ]
@@ -3629,34 +3648,16 @@
3629
3648
  "render-ui",
3630
3649
  "main",
3631
3650
  {
3632
- "navItems": [
3633
- {
3634
- "icon": "layout-list",
3635
- "label": "Portfolio",
3636
- "href": "/portfolio"
3637
- },
3638
- {
3639
- "href": "/orders",
3640
- "label": "Orders",
3641
- "icon": "clipboard-list"
3642
- },
3643
- {
3644
- "label": "Market",
3645
- "icon": "layout-list",
3646
- "href": "/market"
3647
- }
3648
- ],
3649
- "type": "dashboard-layout",
3650
3651
  "children": [
3651
3652
  {
3652
3653
  "gap": "lg",
3653
- "align": "center",
3654
3654
  "direction": "vertical",
3655
+ "align": "center",
3655
3656
  "children": [
3656
3657
  {
3657
- "type": "loading-state",
3658
+ "message": "Processing marketfeed...",
3658
3659
  "title": "Connecting to market feed...",
3659
- "message": "Processing marketfeed..."
3660
+ "type": "loading-state"
3660
3661
  },
3661
3662
  {
3662
3663
  "variant": "text",
@@ -3666,7 +3667,25 @@
3666
3667
  "type": "stack"
3667
3668
  }
3668
3669
  ],
3669
- "appName": "Trading Dashboard"
3670
+ "navItems": [
3671
+ {
3672
+ "label": "Portfolio",
3673
+ "href": "/portfolio",
3674
+ "icon": "layout-list"
3675
+ },
3676
+ {
3677
+ "label": "Orders",
3678
+ "href": "/orders",
3679
+ "icon": "clipboard-list"
3680
+ },
3681
+ {
3682
+ "label": "Market",
3683
+ "href": "/market",
3684
+ "icon": "layout-list"
3685
+ }
3686
+ ],
3687
+ "appName": "Trading Dashboard",
3688
+ "type": "dashboard-layout"
3670
3689
  }
3671
3690
  ]
3672
3691
  ]
@@ -3683,8 +3702,8 @@
3683
3702
  "@payload.data",
3684
3703
  {
3685
3704
  "emit": {
3686
- "success": "MarketFeedSaved",
3687
- "failure": "MarketFeedSaveFailed"
3705
+ "failure": "MarketFeedSaveFailed",
3706
+ "success": "MarketFeedSaved"
3688
3707
  }
3689
3708
  }
3690
3709
  ],
@@ -3692,59 +3711,59 @@
3692
3711
  "render-ui",
3693
3712
  "main",
3694
3713
  {
3695
- "navItems": [
3696
- {
3697
- "label": "Portfolio",
3698
- "href": "/portfolio",
3699
- "icon": "layout-list"
3700
- },
3701
- {
3702
- "label": "Orders",
3703
- "href": "/orders",
3704
- "icon": "clipboard-list"
3705
- },
3706
- {
3707
- "icon": "layout-list",
3708
- "label": "Market",
3709
- "href": "/market"
3710
- }
3711
- ],
3712
3714
  "children": [
3713
3715
  {
3714
- "type": "stack",
3715
- "direction": "vertical",
3716
3716
  "align": "center",
3717
+ "type": "stack",
3717
3718
  "children": [
3718
3719
  {
3719
3720
  "name": "check-circle",
3720
3721
  "type": "icon"
3721
3722
  },
3722
3723
  {
3723
- "variant": "success",
3724
3724
  "type": "alert",
3725
+ "variant": "success",
3725
3726
  "message": "Market feed connected."
3726
3727
  },
3727
3728
  {
3728
- "type": "stack",
3729
3729
  "children": [
3730
3730
  {
3731
- "label": "Reset",
3732
- "action": "RESET",
3733
3731
  "icon": "rotate-ccw",
3732
+ "action": "RESET",
3733
+ "variant": "ghost",
3734
3734
  "type": "button",
3735
- "variant": "ghost"
3735
+ "label": "Reset"
3736
3736
  }
3737
3737
  ],
3738
3738
  "direction": "horizontal",
3739
- "justify": "center",
3740
- "gap": "sm"
3739
+ "gap": "sm",
3740
+ "type": "stack",
3741
+ "justify": "center"
3741
3742
  }
3742
3743
  ],
3743
- "gap": "lg"
3744
+ "gap": "lg",
3745
+ "direction": "vertical"
3744
3746
  }
3745
3747
  ],
3746
- "appName": "Trading Dashboard",
3747
- "type": "dashboard-layout"
3748
+ "navItems": [
3749
+ {
3750
+ "href": "/portfolio",
3751
+ "icon": "layout-list",
3752
+ "label": "Portfolio"
3753
+ },
3754
+ {
3755
+ "href": "/orders",
3756
+ "icon": "clipboard-list",
3757
+ "label": "Orders"
3758
+ },
3759
+ {
3760
+ "icon": "layout-list",
3761
+ "label": "Market",
3762
+ "href": "/market"
3763
+ }
3764
+ ],
3765
+ "type": "dashboard-layout",
3766
+ "appName": "Trading Dashboard"
3748
3767
  }
3749
3768
  ]
3750
3769
  ]
@@ -3758,63 +3777,63 @@
3758
3777
  "render-ui",
3759
3778
  "main",
3760
3779
  {
3761
- "appName": "Trading Dashboard",
3762
- "navItems": [
3763
- {
3764
- "label": "Portfolio",
3765
- "href": "/portfolio",
3766
- "icon": "layout-list"
3767
- },
3768
- {
3769
- "label": "Orders",
3770
- "href": "/orders",
3771
- "icon": "clipboard-list"
3772
- },
3773
- {
3774
- "href": "/market",
3775
- "label": "Market",
3776
- "icon": "layout-list"
3777
- }
3778
- ],
3779
3780
  "children": [
3780
3781
  {
3782
+ "align": "center",
3783
+ "gap": "lg",
3784
+ "type": "stack",
3785
+ "direction": "vertical",
3781
3786
  "children": [
3782
3787
  {
3783
- "title": "Operation Failed",
3784
3788
  "type": "error-state",
3785
3789
  "onRetry": "RETRY",
3786
- "message": "Market feed disconnected."
3790
+ "message": "Market feed disconnected.",
3791
+ "title": "Operation Failed"
3787
3792
  },
3788
3793
  {
3789
- "direction": "horizontal",
3790
- "justify": "center",
3791
3794
  "children": [
3792
3795
  {
3793
- "type": "button",
3794
3796
  "icon": "refresh-cw",
3795
3797
  "variant": "primary",
3796
- "label": "Retry",
3797
- "action": "RETRY"
3798
+ "action": "RETRY",
3799
+ "type": "button",
3800
+ "label": "Retry"
3798
3801
  },
3799
3802
  {
3803
+ "variant": "ghost",
3804
+ "action": "RESET",
3800
3805
  "icon": "rotate-ccw",
3801
3806
  "label": "Reset",
3802
- "action": "RESET",
3803
- "variant": "ghost",
3804
3807
  "type": "button"
3805
3808
  }
3806
3809
  ],
3810
+ "gap": "sm",
3807
3811
  "type": "stack",
3808
- "gap": "sm"
3812
+ "direction": "horizontal",
3813
+ "justify": "center"
3809
3814
  }
3810
- ],
3811
- "gap": "lg",
3812
- "align": "center",
3813
- "direction": "vertical",
3814
- "type": "stack"
3815
+ ]
3815
3816
  }
3816
3817
  ],
3817
- "type": "dashboard-layout"
3818
+ "appName": "Trading Dashboard",
3819
+ "type": "dashboard-layout",
3820
+ "navItems": [
3821
+ {
3822
+ "icon": "layout-list",
3823
+ "label": "Portfolio",
3824
+ "href": "/portfolio"
3825
+ },
3826
+ {
3827
+ "href": "/orders",
3828
+ "label": "Orders",
3829
+ "icon": "clipboard-list"
3830
+ },
3831
+ {
3832
+ "icon": "layout-list",
3833
+ "label": "Market",
3834
+ "href": "/market"
3835
+ }
3836
+ ]
3818
3837
  }
3819
3838
  ]
3820
3839
  ]
@@ -3828,16 +3847,35 @@
3828
3847
  "render-ui",
3829
3848
  "main",
3830
3849
  {
3831
- "appName": "Trading Dashboard",
3850
+ "navItems": [
3851
+ {
3852
+ "label": "Portfolio",
3853
+ "href": "/portfolio",
3854
+ "icon": "layout-list"
3855
+ },
3856
+ {
3857
+ "label": "Orders",
3858
+ "href": "/orders",
3859
+ "icon": "clipboard-list"
3860
+ },
3861
+ {
3862
+ "href": "/market",
3863
+ "icon": "layout-list",
3864
+ "label": "Market"
3865
+ }
3866
+ ],
3832
3867
  "type": "dashboard-layout",
3833
3868
  "children": [
3834
3869
  {
3870
+ "gap": "lg",
3871
+ "type": "stack",
3872
+ "align": "center",
3835
3873
  "children": [
3836
3874
  {
3837
- "direction": "horizontal",
3838
3875
  "gap": "md",
3839
- "type": "stack",
3840
3876
  "align": "center",
3877
+ "direction": "horizontal",
3878
+ "type": "stack",
3841
3879
  "children": [
3842
3880
  {
3843
3881
  "type": "icon",
@@ -3854,42 +3892,23 @@
3854
3892
  "type": "divider"
3855
3893
  },
3856
3894
  {
3895
+ "content": "Ready to start marketfeed operation.",
3857
3896
  "color": "muted",
3858
- "variant": "body",
3859
3897
  "type": "typography",
3860
- "content": "Ready to start marketfeed operation."
3898
+ "variant": "body"
3861
3899
  },
3862
3900
  {
3863
- "type": "button",
3864
- "label": "Start",
3865
- "icon": "play",
3901
+ "action": "START",
3866
3902
  "variant": "primary",
3867
- "action": "START"
3903
+ "icon": "play",
3904
+ "label": "Start",
3905
+ "type": "button"
3868
3906
  }
3869
3907
  ],
3870
- "align": "center",
3871
- "gap": "lg",
3872
- "type": "stack",
3873
3908
  "direction": "vertical"
3874
3909
  }
3875
3910
  ],
3876
- "navItems": [
3877
- {
3878
- "icon": "layout-list",
3879
- "label": "Portfolio",
3880
- "href": "/portfolio"
3881
- },
3882
- {
3883
- "label": "Orders",
3884
- "href": "/orders",
3885
- "icon": "clipboard-list"
3886
- },
3887
- {
3888
- "href": "/market",
3889
- "icon": "layout-list",
3890
- "label": "Market"
3891
- }
3892
- ]
3911
+ "appName": "Trading Dashboard"
3893
3912
  }
3894
3913
  ]
3895
3914
  ]
@@ -3903,29 +3922,46 @@
3903
3922
  "render-ui",
3904
3923
  "main",
3905
3924
  {
3925
+ "navItems": [
3926
+ {
3927
+ "href": "/portfolio",
3928
+ "label": "Portfolio",
3929
+ "icon": "layout-list"
3930
+ },
3931
+ {
3932
+ "icon": "clipboard-list",
3933
+ "label": "Orders",
3934
+ "href": "/orders"
3935
+ },
3936
+ {
3937
+ "href": "/market",
3938
+ "icon": "layout-list",
3939
+ "label": "Market"
3940
+ }
3941
+ ],
3942
+ "type": "dashboard-layout",
3943
+ "appName": "Trading Dashboard",
3906
3944
  "children": [
3907
3945
  {
3908
3946
  "direction": "vertical",
3909
- "gap": "lg",
3910
- "type": "stack",
3911
3947
  "align": "center",
3912
3948
  "children": [
3913
3949
  {
3914
- "gap": "md",
3915
- "type": "stack",
3916
- "align": "center",
3917
3950
  "direction": "horizontal",
3951
+ "gap": "md",
3918
3952
  "children": [
3919
3953
  {
3920
- "type": "icon",
3921
- "name": "activity"
3954
+ "name": "activity",
3955
+ "type": "icon"
3922
3956
  },
3923
3957
  {
3924
- "content": "MarketFeed",
3958
+ "variant": "h2",
3925
3959
  "type": "typography",
3926
- "variant": "h2"
3960
+ "content": "MarketFeed"
3927
3961
  }
3928
- ]
3962
+ ],
3963
+ "type": "stack",
3964
+ "align": "center"
3929
3965
  },
3930
3966
  {
3931
3967
  "type": "divider"
@@ -3937,34 +3973,17 @@
3937
3973
  "color": "muted"
3938
3974
  },
3939
3975
  {
3940
- "action": "START",
3976
+ "label": "Start",
3941
3977
  "icon": "play",
3978
+ "type": "button",
3942
3979
  "variant": "primary",
3943
- "label": "Start",
3944
- "type": "button"
3980
+ "action": "START"
3945
3981
  }
3946
- ]
3947
- }
3948
- ],
3949
- "navItems": [
3950
- {
3951
- "href": "/portfolio",
3952
- "icon": "layout-list",
3953
- "label": "Portfolio"
3954
- },
3955
- {
3956
- "icon": "clipboard-list",
3957
- "href": "/orders",
3958
- "label": "Orders"
3959
- },
3960
- {
3961
- "href": "/market",
3962
- "label": "Market",
3963
- "icon": "layout-list"
3982
+ ],
3983
+ "type": "stack",
3984
+ "gap": "lg"
3964
3985
  }
3965
- ],
3966
- "appName": "Trading Dashboard",
3967
- "type": "dashboard-layout"
3986
+ ]
3968
3987
  }
3969
3988
  ]
3970
3989
  ]
@@ -3979,26 +3998,6 @@
3979
3998
  "main",
3980
3999
  {
3981
4000
  "type": "dashboard-layout",
3982
- "children": [
3983
- {
3984
- "gap": "lg",
3985
- "children": [
3986
- {
3987
- "type": "loading-state",
3988
- "title": "Connecting to market feed...",
3989
- "message": "Processing marketfeed..."
3990
- },
3991
- {
3992
- "type": "skeleton",
3993
- "variant": "text"
3994
- }
3995
- ],
3996
- "direction": "vertical",
3997
- "align": "center",
3998
- "type": "stack"
3999
- }
4000
- ],
4001
- "appName": "Trading Dashboard",
4002
4001
  "navItems": [
4003
4002
  {
4004
4003
  "label": "Portfolio",
@@ -4007,13 +4006,33 @@
4007
4006
  },
4008
4007
  {
4009
4008
  "label": "Orders",
4010
- "href": "/orders",
4011
- "icon": "clipboard-list"
4009
+ "icon": "clipboard-list",
4010
+ "href": "/orders"
4012
4011
  },
4013
4012
  {
4014
- "label": "Market",
4013
+ "href": "/market",
4015
4014
  "icon": "layout-list",
4016
- "href": "/market"
4015
+ "label": "Market"
4016
+ }
4017
+ ],
4018
+ "appName": "Trading Dashboard",
4019
+ "children": [
4020
+ {
4021
+ "type": "stack",
4022
+ "gap": "lg",
4023
+ "direction": "vertical",
4024
+ "align": "center",
4025
+ "children": [
4026
+ {
4027
+ "title": "Connecting to market feed...",
4028
+ "message": "Processing marketfeed...",
4029
+ "type": "loading-state"
4030
+ },
4031
+ {
4032
+ "variant": "text",
4033
+ "type": "skeleton"
4034
+ }
4035
+ ]
4017
4036
  }
4018
4037
  ]
4019
4038
  }