@elevasis/ui 2.10.1 → 2.11.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 (43) hide show
  1. package/dist/app/index.js +2 -2
  2. package/dist/{chunk-TSX4I3NW.js → chunk-23PZ57GB.js} +1 -1
  3. package/dist/{chunk-6PNHW4X2.js → chunk-24UMQV5B.js} +51 -95
  4. package/dist/chunk-3ZMAGTWF.js +18 -0
  5. package/dist/{chunk-WHQXDETX.js → chunk-AQDBRRZD.js} +124 -5
  6. package/dist/{chunk-CLXMNMIS.js → chunk-BDENEI4Q.js} +536 -39
  7. package/dist/{chunk-GJVGV7QZ.js → chunk-BLQLWIOW.js} +276 -5
  8. package/dist/chunk-BRXELOHC.js +47 -0
  9. package/dist/{chunk-YQLE5HR5.js → chunk-BSCTPKXM.js} +2 -2
  10. package/dist/{chunk-N5CLIRBS.js → chunk-C7BX547M.js} +4 -4
  11. package/dist/{chunk-LPSBID5V.js → chunk-DJBORKTR.js} +1 -1
  12. package/dist/{chunk-AEBKE4IX.js → chunk-DKQQK3WX.js} +1 -1
  13. package/dist/{chunk-E3IFHX6A.js → chunk-DOFVHWAP.js} +483 -321
  14. package/dist/{chunk-XA34RETF.js → chunk-GHIPBT5V.js} +1 -14
  15. package/dist/{chunk-KYOF6NYW.js → chunk-KDAOCM66.js} +1 -1
  16. package/dist/{chunk-LW5NKRI7.js → chunk-L34DFR2K.js} +8 -52
  17. package/dist/{chunk-XB4NWSI3.js → chunk-TNOIOBYI.js} +2 -2
  18. package/dist/{chunk-M6ZZ2FW5.js → chunk-XYSMBMAR.js} +3 -3
  19. package/dist/components/index.d.ts +69 -3
  20. package/dist/components/index.js +22 -20
  21. package/dist/execution/index.js +2 -1
  22. package/dist/features/crm/index.d.ts +7 -2
  23. package/dist/features/crm/index.js +8 -6
  24. package/dist/features/dashboard/index.js +9 -7
  25. package/dist/features/delivery/index.d.ts +14 -1
  26. package/dist/features/delivery/index.js +8 -6
  27. package/dist/features/lead-gen/index.js +12 -10
  28. package/dist/features/monitoring/index.js +10 -8
  29. package/dist/features/operations/index.js +11 -9
  30. package/dist/features/settings/index.js +9 -7
  31. package/dist/hooks/index.d.ts +230 -51
  32. package/dist/hooks/index.js +7 -5
  33. package/dist/hooks/published.d.ts +230 -51
  34. package/dist/hooks/published.js +7 -5
  35. package/dist/index.d.ts +191 -22
  36. package/dist/index.js +9 -7
  37. package/dist/provider/index.js +4 -4
  38. package/dist/provider/published.js +1 -1
  39. package/dist/supabase/index.js +2 -47
  40. package/dist/theme/index.js +2 -2
  41. package/dist/zustand/index.d.ts +0 -4
  42. package/dist/zustand/index.js +0 -10
  43. package/package.json +2 -2
package/dist/app/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { ElevasisUIProvider } from '../chunk-LPSBID5V.js';
2
- import '../chunk-6PNHW4X2.js';
1
+ import { ElevasisUIProvider } from '../chunk-DJBORKTR.js';
2
+ import '../chunk-24UMQV5B.js';
3
3
  import '../chunk-F4TPY6YL.js';
4
4
  import '../chunk-R7WLWGPO.js';
5
5
  import '../chunk-SZHARWKU.js';
@@ -1,5 +1,5 @@
1
1
  import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-STZJ7SY5.js';
2
- import { useResourcesHealth } from './chunk-E3IFHX6A.js';
2
+ import { useResourcesHealth } from './chunk-DOFVHWAP.js';
3
3
  import { getTimeRangeDates, formatBucketTime } from './chunk-LXHZYSMQ.js';
4
4
  import { CardHeader, EmptyState } from './chunk-SQQGLGHW.js';
5
5
  import { Paper, Center, Loader, Group } from '@mantine/core';
@@ -494,7 +494,7 @@ var STYLE = `
494
494
  [data-mantine-color-scheme="light"] .chrome-bg-beam-1 {
495
495
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-1) 10%, var(--chrome-beam-1) 90%, transparent 100%);
496
496
  transform: rotate(0deg);
497
- --chrome-beam-opacity: 0.09;
497
+ --chrome-beam-opacity: 0.08;
498
498
  }
499
499
  [data-mantine-color-scheme="light"] .chrome-bg-beam-2 {
500
500
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-2) 10%, var(--chrome-beam-2) 90%, transparent 100%);
@@ -504,65 +504,43 @@ var STYLE = `
504
504
  [data-mantine-color-scheme="light"] .chrome-bg-beam-3 {
505
505
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-3) 10%, var(--chrome-beam-3) 90%, transparent 100%);
506
506
  transform: rotate(45deg);
507
- --chrome-beam-opacity: 0.09;
507
+ --chrome-beam-opacity: 0.08;
508
508
  }
509
509
  [data-mantine-color-scheme="light"] .chrome-bg-beam-4 {
510
510
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-4) 10%, var(--chrome-beam-4) 90%, transparent 100%);
511
511
  transform: rotate(67.5deg);
512
- --chrome-beam-opacity: 0.07;
512
+ --chrome-beam-opacity: 0.08;
513
513
  }
514
514
  [data-mantine-color-scheme="light"] .chrome-bg-beam-5 {
515
515
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-5) 10%, var(--chrome-beam-5) 90%, transparent 100%);
516
516
  transform: rotate(90deg);
517
- --chrome-beam-opacity: 0.09;
517
+ --chrome-beam-opacity: 0.08;
518
518
  }
519
519
  [data-mantine-color-scheme="light"] .chrome-bg-beam-6 {
520
520
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-6) 10%, var(--chrome-beam-6) 90%, transparent 100%);
521
521
  transform: rotate(112.5deg);
522
- --chrome-beam-opacity: 0.07;
522
+ --chrome-beam-opacity: 0.08;
523
523
  }
524
524
  [data-mantine-color-scheme="light"] .chrome-bg-beam-7 {
525
525
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-7) 10%, var(--chrome-beam-7) 90%, transparent 100%);
526
526
  transform: rotate(135deg);
527
- --chrome-beam-opacity: 0.09;
527
+ --chrome-beam-opacity: 0.08;
528
528
  }
529
529
  [data-mantine-color-scheme="light"] .chrome-bg-beam-8 {
530
530
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-8) 10%, var(--chrome-beam-8) 90%, transparent 100%);
531
531
  transform: rotate(157.5deg);
532
- --chrome-beam-opacity: 0.07;
532
+ --chrome-beam-opacity: 0.08;
533
533
  }
534
534
 
535
535
  /* Midnight light mode: reduce beam intensity by one step */
536
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-1,
537
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-3,
538
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-5,
539
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-7 {
540
- --chrome-beam-opacity: 0.08;
541
- }
542
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-2 {
536
+ [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam {
543
537
  --chrome-beam-opacity: 0.07;
544
538
  }
545
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-4,
546
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-6,
547
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-8 {
548
- --chrome-beam-opacity: 0.06;
549
- }
550
539
 
551
540
  /* Aurora light mode: reduce beam intensity by one step */
552
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-1,
553
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-3,
554
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-5,
555
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-7 {
556
- --chrome-beam-opacity: 0.08;
557
- }
558
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-2 {
541
+ [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam {
559
542
  --chrome-beam-opacity: 0.07;
560
543
  }
561
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-4,
562
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-6,
563
- [data-mantine-color-scheme="light"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-8 {
564
- --chrome-beam-opacity: 0.06;
565
- }
566
544
 
567
545
  /* Dark mode: screen blend with low opacity over near-black base */
568
546
  [data-mantine-color-scheme="dark"] .chrome-bg-beam {
@@ -571,98 +549,62 @@ var STYLE = `
571
549
  [data-mantine-color-scheme="dark"] .chrome-bg-beam-1 {
572
550
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-1) 10%, var(--chrome-beam-1) 90%, transparent 100%);
573
551
  transform: rotate(0deg);
574
- --chrome-beam-opacity: 0.12;
552
+ --chrome-beam-opacity: 0.11;
575
553
  }
576
554
  [data-mantine-color-scheme="dark"] .chrome-bg-beam-2 {
577
555
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-2) 10%, var(--chrome-beam-2) 90%, transparent 100%);
578
556
  transform: rotate(22.5deg);
579
- --chrome-beam-opacity: 0.1;
557
+ --chrome-beam-opacity: 0.11;
580
558
  }
581
559
  [data-mantine-color-scheme="dark"] .chrome-bg-beam-3 {
582
560
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-3) 10%, var(--chrome-beam-3) 90%, transparent 100%);
583
561
  transform: rotate(45deg);
584
- --chrome-beam-opacity: 0.12;
562
+ --chrome-beam-opacity: 0.11;
585
563
  }
586
564
  [data-mantine-color-scheme="dark"] .chrome-bg-beam-4 {
587
565
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-4) 10%, var(--chrome-beam-4) 90%, transparent 100%);
588
566
  transform: rotate(67.5deg);
589
- --chrome-beam-opacity: 0.1;
567
+ --chrome-beam-opacity: 0.11;
590
568
  }
591
569
  [data-mantine-color-scheme="dark"] .chrome-bg-beam-5 {
592
570
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-5) 10%, var(--chrome-beam-5) 90%, transparent 100%);
593
571
  transform: rotate(90deg);
594
- --chrome-beam-opacity: 0.12;
572
+ --chrome-beam-opacity: 0.11;
595
573
  }
596
574
  [data-mantine-color-scheme="dark"] .chrome-bg-beam-6 {
597
575
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-6) 10%, var(--chrome-beam-6) 90%, transparent 100%);
598
576
  transform: rotate(112.5deg);
599
- --chrome-beam-opacity: 0.1;
577
+ --chrome-beam-opacity: 0.11;
600
578
  }
601
579
  [data-mantine-color-scheme="dark"] .chrome-bg-beam-7 {
602
580
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-7) 10%, var(--chrome-beam-7) 90%, transparent 100%);
603
581
  transform: rotate(135deg);
604
- --chrome-beam-opacity: 0.12;
582
+ --chrome-beam-opacity: 0.11;
605
583
  }
606
584
  [data-mantine-color-scheme="dark"] .chrome-bg-beam-8 {
607
585
  background: linear-gradient(to right, transparent 0%, var(--chrome-beam-8) 10%, var(--chrome-beam-8) 90%, transparent 100%);
608
586
  transform: rotate(157.5deg);
609
- --chrome-beam-opacity: 0.1;
587
+ --chrome-beam-opacity: 0.11;
610
588
  }
611
589
 
612
590
  /* Rose-gold dark mode: reduced brightness */
613
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam-1,
614
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam-3,
615
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam-5,
616
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam-7 {
617
- --chrome-beam-opacity: 0.07;
618
- }
619
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam-2,
620
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam-4,
621
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam-6,
622
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam-8 {
623
- --chrome-beam-opacity: 0.06;
591
+ [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="rose-gold"] .chrome-bg-beam {
592
+ --chrome-beam-opacity: 0.065;
624
593
  }
625
594
 
626
595
  /* Titanium dark mode: softened beams for subtle silver shimmer */
627
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam-1,
628
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam-3,
629
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam-5,
630
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam-7 {
631
- --chrome-beam-opacity: 0.10;
632
- }
633
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam-2,
634
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam-4,
635
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam-6,
636
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam-8 {
637
- --chrome-beam-opacity: 0.08;
596
+ [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="titanium"] .chrome-bg-beam {
597
+ --chrome-beam-opacity: 0.09;
638
598
  }
639
599
 
640
600
  /* Aurora dark mode: softer beams to reduce ambient bloom */
641
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-1,
642
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-3,
643
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-5,
644
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-7 {
645
- --chrome-beam-opacity: 0.12;
646
- }
647
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-2,
648
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-4,
649
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-6,
650
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam-8 {
651
- --chrome-beam-opacity: 0.09;
601
+ [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="aurora"] .chrome-bg-beam {
602
+ --chrome-beam-opacity: 0.10;
652
603
  }
653
604
 
654
605
  /* Midnight dark mode: slightly brighter beams */
655
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-1,
656
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-3,
657
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-5,
658
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-7 {
659
- --chrome-beam-opacity: 0.14;
660
- }
661
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-2,
662
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-4,
663
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-6,
664
- [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam-8 {
665
- --chrome-beam-opacity: 0.11;
606
+ [data-mantine-color-scheme="dark"] .chrome-bg-root[data-variant="midnight"] .chrome-bg-beam {
607
+ --chrome-beam-opacity: 0.12;
666
608
  }
667
609
 
668
610
  @keyframes chrome-rotate {
@@ -675,11 +617,13 @@ var STYLE = `
675
617
  }
676
618
  }
677
619
  `;
620
+ var RANDOM_OFFSET = `${-Math.random() * 180}s`;
678
621
  function ChromeBackground({ variant, beam }) {
679
622
  const style = {
680
623
  "--chrome-beam-width": beam?.width ?? "200vmax",
681
624
  "--chrome-beam-height": beam?.height ?? "32vmax",
682
- "--chrome-beam-intensity": beam?.intensity ?? 1
625
+ "--chrome-beam-intensity": beam?.intensity ?? 1,
626
+ "--chrome-animation-delay": RANDOM_OFFSET
683
627
  };
684
628
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
685
629
  /* @__PURE__ */ jsx("style", { children: STYLE }),
@@ -705,7 +649,7 @@ var auroraPreset = {
705
649
  beam: {
706
650
  width: "240vmax",
707
651
  height: "30vmax",
708
- intensity: 1
652
+ intensity: 0.85
709
653
  }
710
654
  }),
711
655
  light: {
@@ -774,7 +718,12 @@ var roseGoldPreset = {
774
718
  "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap",
775
719
  "https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&display=swap"
776
720
  ],
777
- background: createElement(ChromeBackground, { variant: "rose-gold" }),
721
+ background: createElement(ChromeBackground, {
722
+ variant: "rose-gold",
723
+ beam: {
724
+ intensity: 0.85
725
+ }
726
+ }),
778
727
  light: {
779
728
  primary: "#A8695E",
780
729
  primaryContrast: "#ffffff",
@@ -845,7 +794,7 @@ var midnightPreset = {
845
794
  beam: {
846
795
  width: "240vmax",
847
796
  height: "30vmax",
848
- intensity: 1
797
+ intensity: 0.85
849
798
  }
850
799
  }),
851
800
  light: {
@@ -918,7 +867,7 @@ var titaniumPreset = {
918
867
  beam: {
919
868
  width: "260vmax",
920
869
  height: "32vmax",
921
- intensity: 1.15
870
+ intensity: 0.85
922
871
  }
923
872
  }),
924
873
  light: {
@@ -2571,8 +2520,8 @@ var componentThemes = {
2571
2520
  HoverCard: HoverCard.extend({
2572
2521
  styles: {
2573
2522
  dropdown: {
2574
- backgroundColor: "var(--color-surface)",
2575
- border: "1px solid var(--color-border)",
2523
+ backgroundColor: "var(--glass-background)",
2524
+ ...glassBase,
2576
2525
  boxShadow: "var(--standard-box-shadow)"
2577
2526
  }
2578
2527
  }
@@ -2590,12 +2539,18 @@ var componentThemes = {
2590
2539
  Menu: Menu.extend({
2591
2540
  styles: {
2592
2541
  dropdown: {
2593
- background: "var(--color-surface)",
2594
- border: "1px solid var(--color-border)"
2542
+ backgroundColor: "var(--glass-background)",
2543
+ ...glassBase,
2544
+ boxShadow: "var(--standard-box-shadow)"
2595
2545
  }
2596
2546
  }
2597
2547
  }),
2598
2548
  Modal: Modal.extend({
2549
+ defaultProps: {
2550
+ withCloseButton: false,
2551
+ centered: true,
2552
+ padding: "xs"
2553
+ },
2599
2554
  styles: {
2600
2555
  content: {
2601
2556
  backgroundColor: "var(--color-elevated, var(--color-background))",
@@ -2614,7 +2569,7 @@ var componentThemes = {
2614
2569
  Popover: Popover.extend({
2615
2570
  styles: {
2616
2571
  dropdown: {
2617
- backgroundColor: "var(--color-surface)",
2572
+ backgroundColor: "var(--glass-background)",
2618
2573
  ...glassBase,
2619
2574
  boxShadow: "var(--standard-box-shadow)"
2620
2575
  }
@@ -2713,9 +2668,10 @@ var componentThemes = {
2713
2668
  Tooltip: Tooltip.extend({
2714
2669
  styles: {
2715
2670
  tooltip: {
2716
- backgroundColor: "var(--color-surface)",
2671
+ backgroundColor: "var(--glass-background)",
2672
+ ...glassBase,
2717
2673
  color: "var(--color-text)",
2718
- border: "1px solid var(--color-border)"
2674
+ boxShadow: "var(--standard-box-shadow)"
2719
2675
  }
2720
2676
  }
2721
2677
  })
@@ -0,0 +1,18 @@
1
+ import { useMemo } from 'react';
2
+
3
+ // src/execution/hooks/useMergedExecution.ts
4
+ function useMergedExecution(fetchedExecution, streamingLogs) {
5
+ return useMemo(() => {
6
+ if (!fetchedExecution) return void 0;
7
+ if (!streamingLogs || streamingLogs.length === 0) return fetchedExecution;
8
+ const existingKeys = new Set(fetchedExecution.executionLogs.map((log) => `${log.timestamp}:${log.message}`));
9
+ const newLogs = streamingLogs.filter((log) => !existingKeys.has(`${log.timestamp}:${log.message}`));
10
+ if (newLogs.length === 0) return fetchedExecution;
11
+ return {
12
+ ...fetchedExecution,
13
+ executionLogs: [...fetchedExecution.executionLogs, ...newLogs].sort((a, b) => a.timestamp - b.timestamp)
14
+ };
15
+ }, [fetchedExecution, streamingLogs]);
16
+ }
17
+
18
+ export { useMergedExecution };
@@ -4,14 +4,14 @@ import { SubshellNavItem } from './chunk-CEWTOKE7.js';
4
4
  import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
5
5
  import { FilterBar } from './chunk-PDHTXPSF.js';
6
6
  import { CustomModal } from './chunk-GBMNCNHX.js';
7
- import { useDealTasksDue, useDeals, useCreateDealTask, useDeleteDeal, useTableSort, sortData, usePaginationState, useTableSelection, useDealDetail } from './chunk-E3IFHX6A.js';
7
+ import { useDealTasksDue, useDeals, useCreateDealTask, useDeleteDeal, useTableSort, sortData, usePaginationState, useTableSelection, useDealDetail, useCompany } from './chunk-DOFVHWAP.js';
8
8
  import { SubshellContentContainer } from './chunk-RX4UWZZR.js';
9
9
  import { CenteredErrorState, CardHeader, PageTitleCaption, EmptyState, ActivityTimeline } from './chunk-SQQGLGHW.js';
10
10
  import { PAGE_SIZE_DEFAULT, formatTimeAgo } from './chunk-IOKL7BKE.js';
11
11
  import { useElevasisServices } from './chunk-QEPXAWE2.js';
12
12
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
13
- import { Box, Stack, Group, Text, Badge, Center, Loader, UnstyledButton, Button, Modal, Select, TextInput, Textarea, Paper, Alert, SimpleGrid, Table, Checkbox, Pagination, Title, ActionIcon, Tabs, Card, Code, Divider, Anchor } from '@mantine/core';
14
- import { IconLayoutGrid, IconColumns, IconFileInvoice, IconAddressBook, IconTrophy, IconClockExclamation, IconUser, IconPlus, IconChecklist, IconAlertCircle, IconHistory, IconSearch, IconTargetArrow, IconAlertTriangle, IconArrowLeft, IconFileText, IconTrash, IconX, IconCheckbox, IconCalendar, IconMail, IconPhone, IconArrowRight, IconNote } from '@tabler/icons-react';
13
+ import { Box, Stack, Group, Text, Badge, Center, Loader, UnstyledButton, Button, Modal, Title, Select, TextInput, Textarea, Paper, Alert, SimpleGrid, Table, Checkbox, Pagination, ActionIcon, Tabs, Card, Code, Divider, Anchor } from '@mantine/core';
14
+ import { IconLayoutGrid, IconColumns, IconFileInvoice, IconAddressBook, IconTrophy, IconClockExclamation, IconUser, IconPlus, IconChecklist, IconAlertCircle, IconHistory, IconSearch, IconTargetArrow, IconAlertTriangle, IconArrowLeft, IconFileText, IconTrash, IconX, IconBuilding, IconCheckbox, IconCalendar, IconMail, IconPhone, IconArrowRight, IconNote } from '@tabler/icons-react';
15
15
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
16
16
  import { useState, useMemo, useEffect } from 'react';
17
17
  import { useQuery, useQueryClient } from '@tanstack/react-query';
@@ -209,8 +209,9 @@ function QuickCreateActions({ showSectionLabel = true }) {
209
209
  showSectionLabel && /* @__PURE__ */ jsx(Text, { fz: "xs", tt: "uppercase", c: "dimmed", fw: 600, children: "TASKS" }),
210
210
  /* @__PURE__ */ jsx(Button, { variant: "light", size: "xs", leftSection: /* @__PURE__ */ jsx(IconPlus, { size: 14 }), fullWidth: true, onClick: () => setOpen(true), children: "New Task" })
211
211
  ] }),
212
- /* @__PURE__ */ jsxs(Modal, { opened: open, onClose: handleClose, title: "New Task", size: "md", children: [
212
+ /* @__PURE__ */ jsxs(Modal, { opened: open, onClose: handleClose, size: "md", children: [
213
213
  /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
214
+ /* @__PURE__ */ jsx(Title, { order: 3, children: "New Task" }),
214
215
  /* @__PURE__ */ jsx(
215
216
  Select,
216
217
  {
@@ -1108,5 +1109,123 @@ function DealDetailPage({ dealId, renderActions, onDealLoaded }) {
1108
1109
  ] }) })
1109
1110
  ] }) });
1110
1111
  }
1112
+ function CompanyDetailPage({ companyId }) {
1113
+ const navigate = useNavigate();
1114
+ const { data: company, isLoading, error } = useCompany(companyId);
1115
+ const title = company ? company.name : "Company Detail";
1116
+ const headerActions = /* @__PURE__ */ jsx(
1117
+ Button,
1118
+ {
1119
+ variant: "light",
1120
+ size: "sm",
1121
+ leftSection: /* @__PURE__ */ jsx(IconArrowLeft, { size: 16 }),
1122
+ onClick: () => navigate({ to: "/crm" }),
1123
+ children: "CRM"
1124
+ }
1125
+ );
1126
+ if (isLoading) {
1127
+ return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsxs(PageContainer, { children: [
1128
+ /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(PageTitleCaption, { title, caption: "Loading company details...", rightSection: headerActions }) }),
1129
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) })
1130
+ ] }) });
1131
+ }
1132
+ if (error) {
1133
+ return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsxs(PageContainer, { children: [
1134
+ /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(PageTitleCaption, { title, caption: "Unable to load company details", rightSection: headerActions }) }),
1135
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(CenteredErrorState, { error, title: "Failed to load company" }) })
1136
+ ] }) });
1137
+ }
1138
+ if (!company) {
1139
+ return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsxs(PageContainer, { children: [
1140
+ /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(PageTitleCaption, { title, caption: "Company not found", rightSection: headerActions }) }),
1141
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(
1142
+ EmptyState,
1143
+ {
1144
+ icon: IconBuilding,
1145
+ title: "Company not found",
1146
+ description: "The selected company no longer exists."
1147
+ }
1148
+ ) })
1149
+ ] }) });
1150
+ }
1151
+ return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsxs(PageContainer, { children: [
1152
+ /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(
1153
+ PageTitleCaption,
1154
+ {
1155
+ title: company.name,
1156
+ caption: [company.domain, company.locationCity, company.locationState].filter(Boolean).join(" \xB7 ") || "Company",
1157
+ rightSection: headerActions
1158
+ }
1159
+ ) }),
1160
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", p: "md", children: [
1161
+ /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
1162
+ /* @__PURE__ */ jsx(Title, { order: 4, children: "Overview" }),
1163
+ /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, sm: 2 }, spacing: "sm", children: [
1164
+ /* @__PURE__ */ jsxs(Group, { children: [
1165
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "Name:" }),
1166
+ /* @__PURE__ */ jsx(Text, { children: company.name })
1167
+ ] }),
1168
+ /* @__PURE__ */ jsxs(Group, { children: [
1169
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "Status:" }),
1170
+ /* @__PURE__ */ jsx(Badge, { variant: "light", color: "blue", children: company.status })
1171
+ ] }),
1172
+ company.domain && /* @__PURE__ */ jsxs(Group, { children: [
1173
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "Domain:" }),
1174
+ /* @__PURE__ */ jsx(Text, { children: company.domain })
1175
+ ] }),
1176
+ company.website && /* @__PURE__ */ jsxs(Group, { children: [
1177
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "Website:" }),
1178
+ /* @__PURE__ */ jsx(Text, { component: "a", href: company.website, target: "_blank", c: "blue", children: company.website })
1179
+ ] }),
1180
+ company.numEmployees != null && /* @__PURE__ */ jsxs(Group, { children: [
1181
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "Employees:" }),
1182
+ /* @__PURE__ */ jsx(Text, { children: company.numEmployees.toLocaleString() })
1183
+ ] }),
1184
+ company.foundedYear != null && /* @__PURE__ */ jsxs(Group, { children: [
1185
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "Founded:" }),
1186
+ /* @__PURE__ */ jsx(Text, { children: company.foundedYear })
1187
+ ] })
1188
+ ] })
1189
+ ] }) }),
1190
+ (company.locationCity || company.locationState) && /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
1191
+ /* @__PURE__ */ jsx(Title, { order: 4, children: "Location" }),
1192
+ /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, sm: 2 }, spacing: "sm", children: [
1193
+ company.locationCity && /* @__PURE__ */ jsxs(Group, { children: [
1194
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "City:" }),
1195
+ /* @__PURE__ */ jsx(Text, { children: company.locationCity })
1196
+ ] }),
1197
+ company.locationState && /* @__PURE__ */ jsxs(Group, { children: [
1198
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "State:" }),
1199
+ /* @__PURE__ */ jsx(Text, { children: company.locationState })
1200
+ ] })
1201
+ ] })
1202
+ ] }) }),
1203
+ company.linkedinUrl && /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
1204
+ /* @__PURE__ */ jsx(Title, { order: 4, children: "Social" }),
1205
+ /* @__PURE__ */ jsxs(Group, { children: [
1206
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "LinkedIn:" }),
1207
+ /* @__PURE__ */ jsx(Text, { component: "a", href: company.linkedinUrl, target: "_blank", c: "blue", children: "View Profile" })
1208
+ ] })
1209
+ ] }) }),
1210
+ (company.segment || company.category) && /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
1211
+ /* @__PURE__ */ jsx(Title, { order: 4, children: "Classification" }),
1212
+ /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, sm: 2 }, spacing: "sm", children: [
1213
+ company.segment && /* @__PURE__ */ jsxs(Group, { children: [
1214
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "Segment:" }),
1215
+ /* @__PURE__ */ jsx(Text, { children: company.segment })
1216
+ ] }),
1217
+ company.category && /* @__PURE__ */ jsxs(Group, { children: [
1218
+ /* @__PURE__ */ jsx(Text, { fw: 500, children: "Category:" }),
1219
+ /* @__PURE__ */ jsx(Text, { children: company.category })
1220
+ ] })
1221
+ ] })
1222
+ ] }) }),
1223
+ company.verticalResearch && /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
1224
+ /* @__PURE__ */ jsx(Title, { order: 4, children: "Vertical Research" }),
1225
+ /* @__PURE__ */ jsx(Text, { size: "sm", style: { whiteSpace: "pre-wrap" }, children: company.verticalResearch })
1226
+ ] }) })
1227
+ ] }) })
1228
+ ] }) });
1229
+ }
1111
1230
 
1112
- export { ActivityFeedWidget, CRM_ITEMS, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, formatDealStageLabel, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity };
1231
+ export { ActivityFeedWidget, CRM_ITEMS, CompanyDetailPage, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, formatDealStageLabel, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity };