@bpfdev/oly-ui 1.0.12 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3901,7 +3901,7 @@ var FalconAuditTimeline = ({
3901
3901
  date: run.date,
3902
3902
  ordinal: run.label ?? getOrdinalStr(idx + 1),
3903
3903
  status: run.status === "done" ? "completed" : "upcoming",
3904
- onExportClick: onExportReportClick ? (e) => onExportReportClick(e, run.date) : void 0,
3904
+ onExportClick: onExportReportClick ? (e) => onExportReportClick(e, run.date, run) : void 0,
3905
3905
  brandFont,
3906
3906
  interFont,
3907
3907
  completedColor,
@@ -3939,7 +3939,16 @@ var FalconAuditTimeline = ({
3939
3939
  date: `${activeMonth.label} 5`,
3940
3940
  ordinal: getOrdinalStr(precedingEvents + 1),
3941
3941
  status: isFirstActiveMonth ? "completed" : "upcoming",
3942
- onExportClick: onExportReportClick ? (e) => onExportReportClick(e, `${activeMonth.label} 5`) : void 0,
3942
+ onExportClick: onExportReportClick ? (e) => {
3943
+ const date = `${activeMonth.label} 5`;
3944
+ onExportReportClick(e, date, {
3945
+ run_number: precedingEvents + 1,
3946
+ date,
3947
+ month: activeMonth.label,
3948
+ year: activeMonth.year,
3949
+ status: isFirstActiveMonth ? "done" : "scheduled"
3950
+ });
3951
+ } : void 0,
3943
3952
  brandFont,
3944
3953
  interFont,
3945
3954
  completedColor,
@@ -12331,21 +12340,973 @@ function QueueTimeBreakdown({
12331
12340
  ] }) }) }) });
12332
12341
  }
12333
12342
 
12343
+ // src/components/charts/StackedComparisonBarChart/stackedComparisonBarChart.chartTokens.ts
12344
+ var STACKED_COMPARISON_DEFAULT_STACK_COLORS = [
12345
+ "#CFE0FB",
12346
+ "#7FB1F0",
12347
+ "#3D7CDF",
12348
+ "#1E2A5E"
12349
+ ];
12350
+ var STACKED_COMPARISON_DEFAULT_COMPARISON_COLOR = "#F47C7C";
12351
+ var STACKED_COMPARISON_DEFAULT_LEGEND_STACK_COLOR = "#2563EB";
12352
+ var STACKED_COMPARISON_DEFAULT_LEGEND_COMPARISON_COLOR = "#EF4444";
12353
+ var STACKED_COMPARISON_DEFAULT_FRAME_BORDER = "#EAECEF";
12354
+
12355
+ // src/components/charts/StackedComparisonBarChart/StackedComparisonBarChart.tsx
12356
+ import Box31 from "@mui/material/Box";
12357
+ import ButtonBase2 from "@mui/material/ButtonBase";
12358
+ import Stack25 from "@mui/material/Stack";
12359
+ import Typography26 from "@mui/material/Typography";
12360
+ import * as React25 from "react";
12361
+ import {
12362
+ Bar as Bar5,
12363
+ BarChart as BarChart3,
12364
+ CartesianGrid as CartesianGrid7,
12365
+ ResponsiveContainer as ResponsiveContainer5,
12366
+ Tooltip as Tooltip12,
12367
+ XAxis as XAxis7,
12368
+ YAxis as YAxis7
12369
+ } from "recharts";
12370
+
12371
+ // src/components/charts/StackedComparisonBarChart/stackedComparisonBarChartCustomization.merge.ts
12372
+ function mergeCss7(a, b) {
12373
+ if (!b) {
12374
+ return { ...a };
12375
+ }
12376
+ return { ...a, ...b };
12377
+ }
12378
+ function mergeSx4(...parts) {
12379
+ const flat = parts.filter(Boolean);
12380
+ if (flat.length === 0) {
12381
+ return void 0;
12382
+ }
12383
+ if (flat.length === 1) {
12384
+ return flat[0];
12385
+ }
12386
+ return flat.flat();
12387
+ }
12388
+
12389
+ // src/components/charts/StackedComparisonBarChart/StackedComparisonBarChartCustomizationContext.tsx
12390
+ import * as React24 from "react";
12391
+ import { jsx as jsx45 } from "react/jsx-runtime";
12392
+ var StackedComparisonBarChartCustomizationContext = React24.createContext({});
12393
+ function StackedComparisonBarChartCustomizationProvider({
12394
+ value,
12395
+ children
12396
+ }) {
12397
+ const memo = React24.useMemo(() => value, [value]);
12398
+ return /* @__PURE__ */ jsx45(StackedComparisonBarChartCustomizationContext.Provider, { value: memo, children });
12399
+ }
12400
+ function useStackedComparisonBarChartCustomization() {
12401
+ return React24.useContext(StackedComparisonBarChartCustomizationContext);
12402
+ }
12403
+
12404
+ // src/components/charts/StackedComparisonBarChart/StackedComparisonBarChartTooltip.tsx
12405
+ import { jsx as jsx46, jsxs as jsxs36 } from "react/jsx-runtime";
12406
+ function fmt(n) {
12407
+ return new Intl.NumberFormat("en-US", { maximumFractionDigits: 0 }).format(n);
12408
+ }
12409
+ function StackedComparisonBarChartTooltip({
12410
+ active,
12411
+ row,
12412
+ buckets,
12413
+ bucketColors,
12414
+ comparisonColor,
12415
+ stackedTotalLabel,
12416
+ comparisonLabel
12417
+ }) {
12418
+ const { barChart: bc } = useStackedComparisonBarChartCustomization();
12419
+ const tt = bc?.tooltip;
12420
+ if (!active || !row) {
12421
+ return null;
12422
+ }
12423
+ const borderColor = tt?.borderColor ?? "#E5E7EB";
12424
+ const radius = tt?.borderRadiusPx ?? 10;
12425
+ const shadow = tt?.boxShadow ?? "0 8px 24px rgba(15, 23, 42, 0.12)";
12426
+ const bg = tt?.backgroundColor ?? "#FFFFFF";
12427
+ const pad = tt?.paddingPx ?? 14;
12428
+ const bucketNameColor = tt?.bucketNameColor ?? "#0F172A";
12429
+ const bucketValueColor = tt?.bucketValueColor ?? "#0F172A";
12430
+ const totalStackedLabelColor = tt?.totalStackedLabelColor ?? STACKED_COMPARISON_DEFAULT_LEGEND_STACK_COLOR;
12431
+ const totalStackedValueColor = tt?.totalStackedValueColor ?? "#1D4ED8";
12432
+ const comparisonLabelColor = tt?.comparisonLabelColor ?? STACKED_COMPARISON_DEFAULT_LEGEND_COMPARISON_COLOR;
12433
+ const comparisonValueColor = tt?.comparisonValueColor ?? STACKED_COMPARISON_DEFAULT_LEGEND_COMPARISON_COLOR;
12434
+ const dividerColor = tt?.dividerColor ?? "#E5E7EB";
12435
+ const titleColor = tt?.titleColor ?? "#0F172A";
12436
+ const fs = tt?.fontSizePx ?? 13;
12437
+ const titleFs = tt?.titleFontSizePx ?? 15;
12438
+ const titleText = row.subName ? `${row.name} ${row.subName}` : row.name;
12439
+ const orderedBuckets = [...buckets].reverse();
12440
+ const bodyStyle = mergeCss7(
12441
+ {
12442
+ boxSizing: "border-box",
12443
+ backgroundColor: bg,
12444
+ padding: pad,
12445
+ borderRadius: radius,
12446
+ border: `1px solid ${borderColor}`,
12447
+ boxShadow: shadow,
12448
+ minWidth: tt?.minWidthPx ?? 220,
12449
+ ...tt?.maxWidthPx != null ? { maxWidth: tt.maxWidthPx } : null
12450
+ },
12451
+ tt?.bodyStyle
12452
+ );
12453
+ const rowStyle = {
12454
+ display: "flex",
12455
+ alignItems: "center",
12456
+ justifyContent: "space-between",
12457
+ fontSize: fs,
12458
+ lineHeight: 1.4,
12459
+ margin: "4px 0",
12460
+ fontFamily: "inherit"
12461
+ };
12462
+ const swatch = (color) => ({
12463
+ width: 10,
12464
+ height: 10,
12465
+ borderRadius: "50%",
12466
+ backgroundColor: color,
12467
+ flexShrink: 0,
12468
+ display: "inline-block",
12469
+ marginRight: 8
12470
+ });
12471
+ return /* @__PURE__ */ jsx46("div", { style: { pointerEvents: "none" }, children: /* @__PURE__ */ jsxs36("div", { style: bodyStyle, children: [
12472
+ /* @__PURE__ */ jsx46(
12473
+ "div",
12474
+ {
12475
+ style: {
12476
+ fontSize: titleFs,
12477
+ fontWeight: 700,
12478
+ color: titleColor,
12479
+ marginBottom: 8
12480
+ },
12481
+ children: titleText
12482
+ }
12483
+ ),
12484
+ orderedBuckets.map((b, i) => {
12485
+ const originalIndex = buckets.length - 1 - i;
12486
+ const color = b.color ?? bucketColors[originalIndex] ?? "#94A3B8";
12487
+ const v = row.stacked[b.id] ?? 0;
12488
+ return /* @__PURE__ */ jsxs36("div", { style: rowStyle, children: [
12489
+ /* @__PURE__ */ jsxs36(
12490
+ "span",
12491
+ {
12492
+ style: {
12493
+ display: "flex",
12494
+ alignItems: "center",
12495
+ color: bucketNameColor,
12496
+ fontWeight: 500
12497
+ },
12498
+ children: [
12499
+ /* @__PURE__ */ jsx46("span", { style: swatch(color), "aria-hidden": true }),
12500
+ b.label
12501
+ ]
12502
+ }
12503
+ ),
12504
+ /* @__PURE__ */ jsx46("span", { style: { color: bucketValueColor, fontWeight: 700 }, children: fmt(v) })
12505
+ ] }, b.id);
12506
+ }),
12507
+ /* @__PURE__ */ jsx46(
12508
+ "div",
12509
+ {
12510
+ style: {
12511
+ height: 1,
12512
+ background: dividerColor,
12513
+ margin: "10px 0 8px"
12514
+ }
12515
+ }
12516
+ ),
12517
+ /* @__PURE__ */ jsxs36("div", { style: { ...rowStyle, margin: "2px 0" }, children: [
12518
+ /* @__PURE__ */ jsx46("span", { style: { color: totalStackedLabelColor, fontWeight: 700 }, children: stackedTotalLabel }),
12519
+ /* @__PURE__ */ jsx46("span", { style: { color: totalStackedValueColor, fontWeight: 700 }, children: fmt(buckets.reduce((acc, b) => acc + (row.stacked[b.id] ?? 0), 0)) })
12520
+ ] }),
12521
+ /* @__PURE__ */ jsxs36("div", { style: { ...rowStyle, margin: "6px 0 0" }, children: [
12522
+ /* @__PURE__ */ jsxs36(
12523
+ "span",
12524
+ {
12525
+ style: {
12526
+ display: "flex",
12527
+ alignItems: "center",
12528
+ color: comparisonLabelColor,
12529
+ fontWeight: 600
12530
+ },
12531
+ children: [
12532
+ /* @__PURE__ */ jsx46("span", { style: swatch(comparisonColor), "aria-hidden": true }),
12533
+ comparisonLabel
12534
+ ]
12535
+ }
12536
+ ),
12537
+ /* @__PURE__ */ jsx46("span", { style: { color: comparisonValueColor, fontWeight: 700 }, children: fmt(row.comparison) })
12538
+ ] })
12539
+ ] }) });
12540
+ }
12541
+
12542
+ // src/components/charts/StackedComparisonBarChart/StackedComparisonBarChart.tsx
12543
+ import { Fragment as Fragment16, jsx as jsx47, jsxs as jsxs37 } from "react/jsx-runtime";
12544
+ var DEFAULT_AXIS_TICK_FILL = "#9CA3AF";
12545
+ var DEFAULT_GRID_STROKE = "#EEF0F3";
12546
+ var STACK_KEY = (id) => `stack__${id}`;
12547
+ var COMPARISON_KEY = "__comparison";
12548
+ function SortIcon({ color }) {
12549
+ return /* @__PURE__ */ jsxs37(
12550
+ "svg",
12551
+ {
12552
+ width: "14",
12553
+ height: "14",
12554
+ viewBox: "0 0 14 14",
12555
+ fill: "none",
12556
+ xmlns: "http://www.w3.org/2000/svg",
12557
+ "aria-hidden": true,
12558
+ children: [
12559
+ /* @__PURE__ */ jsx47(
12560
+ "path",
12561
+ {
12562
+ d: "M4 2.5V11.5M4 11.5L1.5 9M4 11.5L6.5 9",
12563
+ stroke: color,
12564
+ strokeWidth: "1.4",
12565
+ strokeLinecap: "round",
12566
+ strokeLinejoin: "round"
12567
+ }
12568
+ ),
12569
+ /* @__PURE__ */ jsx47(
12570
+ "path",
12571
+ {
12572
+ d: "M10 11.5V2.5M10 2.5L7.5 5M10 2.5L12.5 5",
12573
+ stroke: color,
12574
+ strokeWidth: "1.4",
12575
+ strokeLinecap: "round",
12576
+ strokeLinejoin: "round"
12577
+ }
12578
+ )
12579
+ ]
12580
+ }
12581
+ );
12582
+ }
12583
+ function LegendDot({
12584
+ color,
12585
+ sizePx = 10
12586
+ }) {
12587
+ return /* @__PURE__ */ jsx47(
12588
+ Box31,
12589
+ {
12590
+ sx: {
12591
+ width: sizePx,
12592
+ height: sizePx,
12593
+ borderRadius: "50%",
12594
+ bgcolor: color,
12595
+ flexShrink: 0
12596
+ }
12597
+ }
12598
+ );
12599
+ }
12600
+ function MultilineTick(props) {
12601
+ const {
12602
+ x = 0,
12603
+ y = 0,
12604
+ payload,
12605
+ fill = DEFAULT_AXIS_TICK_FILL,
12606
+ fontSize = 12,
12607
+ rowsByName,
12608
+ angle = 0,
12609
+ textAnchor = "middle"
12610
+ } = props;
12611
+ const name = payload?.value ?? "";
12612
+ if (!name) return null;
12613
+ const row = rowsByName ? rowsByName[name] : void 0;
12614
+ const subName = row?.subName;
12615
+ const lines = [];
12616
+ String(name).split("\n").forEach((s) => lines.push(s));
12617
+ if (subName) {
12618
+ String(subName).split("\n").forEach((s) => lines.push(s));
12619
+ }
12620
+ const lineHeight = fontSize * 1.25;
12621
+ const isHorizontal = angle === 0;
12622
+ const anchor = isHorizontal ? "middle" : textAnchor;
12623
+ const dy0 = isHorizontal ? lineHeight : 4;
12624
+ return /* @__PURE__ */ jsx47("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx47(
12625
+ "text",
12626
+ {
12627
+ transform: angle !== 0 ? `rotate(${angle})` : void 0,
12628
+ textAnchor: anchor,
12629
+ fontSize,
12630
+ fill,
12631
+ children: lines.map((line, i) => /* @__PURE__ */ jsx47("tspan", { x: 0, dy: i === 0 ? dy0 : lineHeight, children: line }, i))
12632
+ }
12633
+ ) });
12634
+ }
12635
+ function BarPlot({
12636
+ data,
12637
+ buckets,
12638
+ bucketColors,
12639
+ comparisonColor,
12640
+ rowsByName,
12641
+ yAxisDomain,
12642
+ yAxisTicks,
12643
+ yAxisTickFormatter,
12644
+ stackedTotalLabel,
12645
+ comparisonLabel,
12646
+ renderTooltip,
12647
+ enableHorizontalScroll,
12648
+ chartMinWidth,
12649
+ categoryWidthPx
12650
+ }) {
12651
+ const { barChart: bc } = useStackedComparisonBarChartCustomization();
12652
+ const height = bc?.heightPx ?? 360;
12653
+ const stackedSize = bc?.stackedBarSizePx ?? 22;
12654
+ const comparisonSize = bc?.comparisonBarSizePx ?? 18;
12655
+ const barCategoryGap = bc?.barCategoryGapPx ?? 20;
12656
+ const barGap = bc?.barGap ?? 2;
12657
+ const barTopRadius = bc?.barTopRadiusPx ?? 3;
12658
+ const m = {
12659
+ top: bc?.margin?.top ?? 16,
12660
+ right: bc?.margin?.right ?? 8,
12661
+ bottom: bc?.margin?.bottom ?? 28,
12662
+ left: bc?.margin?.left ?? 4
12663
+ };
12664
+ const gridStroke = bc?.gridStroke ?? DEFAULT_GRID_STROKE;
12665
+ const dash = bc?.gridStrokeDasharray ?? "0";
12666
+ const xFill = bc?.xAxisTickFill ?? "#6B7280";
12667
+ const xTickAngle = bc?.xAxisTickAngle ?? 0;
12668
+ const xTickAnchor = bc?.xAxisTickAnchor ?? "end";
12669
+ const xAxisHeight = bc?.xAxisHeight ?? 50;
12670
+ const yFill = bc?.yAxisTickFill ?? DEFAULT_AXIS_TICK_FILL;
12671
+ const yWidth = bc?.yAxisWidth ?? 44;
12672
+ const cursorFill = bc?.cursorFill ?? "rgba(15, 23, 42, 0.04)";
12673
+ const defaultFmt = React25.useCallback(
12674
+ (v) => v >= 1e3 ? `${(v / 1e3).toFixed(v % 1e3 === 0 ? 0 : 1)}k` : `${v}`,
12675
+ []
12676
+ );
12677
+ const tickFmt = yAxisTickFormatter ?? defaultFmt;
12678
+ const resolvedCategoryWidth = categoryWidthPx ?? 90;
12679
+ const innerMinWidth = chartMinWidth ?? resolvedCategoryWidth * Math.max(data.length, 1);
12680
+ const outerSx = enableHorizontalScroll ? {
12681
+ width: "100%",
12682
+ height,
12683
+ mt: 0.5,
12684
+ overflowX: "auto",
12685
+ overflowY: "hidden"
12686
+ } : { width: "100%", height, mt: 0.5 };
12687
+ const innerSx = enableHorizontalScroll ? { width: "100%", height: "100%", minWidth: innerMinWidth } : { width: "100%", height: "100%" };
12688
+ return /* @__PURE__ */ jsx47(Box31, { sx: outerSx, children: /* @__PURE__ */ jsx47(Box31, { sx: innerSx, children: /* @__PURE__ */ jsx47(ResponsiveContainer5, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs37(
12689
+ BarChart3,
12690
+ {
12691
+ data,
12692
+ margin: m,
12693
+ barCategoryGap,
12694
+ barGap,
12695
+ children: [
12696
+ /* @__PURE__ */ jsx47(
12697
+ CartesianGrid7,
12698
+ {
12699
+ strokeDasharray: dash,
12700
+ vertical: false,
12701
+ stroke: gridStroke
12702
+ }
12703
+ ),
12704
+ /* @__PURE__ */ jsx47(
12705
+ XAxis7,
12706
+ {
12707
+ dataKey: "__name",
12708
+ tick: /* @__PURE__ */ jsx47(
12709
+ MultilineTick,
12710
+ {
12711
+ fill: xFill,
12712
+ fontSize: 12,
12713
+ rowsByName,
12714
+ angle: xTickAngle,
12715
+ textAnchor: xTickAnchor
12716
+ }
12717
+ ),
12718
+ tickLine: false,
12719
+ axisLine: { stroke: gridStroke },
12720
+ interval: 0,
12721
+ height: xAxisHeight
12722
+ }
12723
+ ),
12724
+ /* @__PURE__ */ jsx47(
12725
+ YAxis7,
12726
+ {
12727
+ domain: yAxisDomain,
12728
+ ticks: yAxisTicks,
12729
+ tick: { fill: yFill, fontSize: 11 },
12730
+ tickLine: false,
12731
+ axisLine: false,
12732
+ width: yWidth,
12733
+ tickFormatter: tickFmt
12734
+ }
12735
+ ),
12736
+ /* @__PURE__ */ jsx47(
12737
+ Tooltip12,
12738
+ {
12739
+ content: (tooltipProps) => {
12740
+ const label = tooltipProps.label;
12741
+ const labelStr = typeof label === "string" ? label : String(label ?? "");
12742
+ const row = rowsByName[labelStr] ?? null;
12743
+ if (renderTooltip) {
12744
+ const custom = renderTooltip({
12745
+ tooltipProps,
12746
+ row,
12747
+ buckets,
12748
+ bucketColors,
12749
+ comparisonColor
12750
+ });
12751
+ return custom == null ? null : /* @__PURE__ */ jsx47(Fragment16, { children: custom });
12752
+ }
12753
+ return /* @__PURE__ */ jsx47(
12754
+ StackedComparisonBarChartTooltip,
12755
+ {
12756
+ ...tooltipProps,
12757
+ row,
12758
+ buckets,
12759
+ bucketColors,
12760
+ comparisonColor,
12761
+ stackedTotalLabel,
12762
+ comparisonLabel
12763
+ }
12764
+ );
12765
+ },
12766
+ cursor: { fill: cursorFill },
12767
+ allowEscapeViewBox: { x: false, y: true }
12768
+ }
12769
+ ),
12770
+ buckets.map((b, i) => {
12771
+ const color = b.color ?? bucketColors[i] ?? "#94A3B8";
12772
+ const isTop = i === buckets.length - 1;
12773
+ const radius = isTop ? [barTopRadius, barTopRadius, 0, 0] : [0, 0, 0, 0];
12774
+ return /* @__PURE__ */ jsx47(
12775
+ Bar5,
12776
+ {
12777
+ dataKey: STACK_KEY(b.id),
12778
+ name: b.label,
12779
+ stackId: "stacked",
12780
+ fill: color,
12781
+ barSize: stackedSize,
12782
+ isAnimationActive: false,
12783
+ radius
12784
+ },
12785
+ b.id
12786
+ );
12787
+ }),
12788
+ /* @__PURE__ */ jsx47(
12789
+ Bar5,
12790
+ {
12791
+ dataKey: COMPARISON_KEY,
12792
+ name: comparisonLabel,
12793
+ stackId: "comparison",
12794
+ fill: comparisonColor,
12795
+ barSize: comparisonSize,
12796
+ isAnimationActive: false,
12797
+ radius: [barTopRadius, barTopRadius, 0, 0]
12798
+ }
12799
+ )
12800
+ ]
12801
+ }
12802
+ ) }) }) });
12803
+ }
12804
+ function StackedComparisonBarChart({
12805
+ subHeading,
12806
+ showSortToggle = true,
12807
+ onSortToggle,
12808
+ showSubHeadingDivider = true,
12809
+ showHeaderLegend = true,
12810
+ enableHorizontalScroll = false,
12811
+ chartMinWidth,
12812
+ categoryWidthPx,
12813
+ buckets,
12814
+ data,
12815
+ stackedLegendLabel = "Stacked",
12816
+ comparisonLegendLabel = "Comparison",
12817
+ stackedTotalLabel,
12818
+ yAxisDomain,
12819
+ yAxisTicks,
12820
+ yAxisTickFormatter,
12821
+ renderTooltip,
12822
+ emptyStatePlaceholderProps,
12823
+ customization
12824
+ }) {
12825
+ const bucketColors = customization?.barChart?.stackColors ?? STACKED_COMPARISON_DEFAULT_STACK_COLORS;
12826
+ const comparisonColor = customization?.barChart?.comparisonColor ?? STACKED_COMPARISON_DEFAULT_COMPARISON_COLOR;
12827
+ const legendStackDot = customization?.header?.legendStackColor ?? STACKED_COMPARISON_DEFAULT_LEGEND_STACK_COLOR;
12828
+ const legendComparisonDot = customization?.header?.legendComparisonColor ?? STACKED_COMPARISON_DEFAULT_LEGEND_COMPARISON_COLOR;
12829
+ const legendDividerColor = customization?.header?.legendDividerColor ?? "#E5E7EB";
12830
+ const legendDotSize = customization?.header?.legendDotSizePx ?? 10;
12831
+ const frameBorder = customization?.frame?.borderColor ?? STACKED_COMPARISON_DEFAULT_FRAME_BORDER;
12832
+ const frameBg = customization?.frame?.backgroundColor ?? "#FFFFFF";
12833
+ const rowsByName = React25.useMemo(() => {
12834
+ const r = {};
12835
+ for (const row of data) r[row.name] = row;
12836
+ return r;
12837
+ }, [data]);
12838
+ const chartData = React25.useMemo(() => {
12839
+ return data.map((row) => {
12840
+ const d = {
12841
+ __key: row.name,
12842
+ __name: row.name,
12843
+ __subName: row.subName,
12844
+ __row: row,
12845
+ [COMPARISON_KEY]: row.comparison
12846
+ };
12847
+ for (const b of buckets) {
12848
+ d[STACK_KEY(b.id)] = row.stacked[b.id] ?? 0;
12849
+ }
12850
+ return d;
12851
+ });
12852
+ }, [data, buckets]);
12853
+ const subHeadingSx = mergeSx4(
12854
+ {
12855
+ fontWeight: 700,
12856
+ fontSize: "0.95rem",
12857
+ color: "#0f172a"
12858
+ },
12859
+ customization?.header?.subHeadingSx
12860
+ );
12861
+ const frameSx = mergeSx4(
12862
+ {
12863
+ bgcolor: frameBg,
12864
+ border: `1px solid ${frameBorder}`,
12865
+ borderRadius: 2,
12866
+ px: 2,
12867
+ pt: 2,
12868
+ pb: 1.5,
12869
+ width: "100%",
12870
+ boxSizing: "border-box"
12871
+ },
12872
+ customization?.frame?.sx
12873
+ );
12874
+ const subHeadingDividerColor = customization?.frame?.subHeadingDividerColor ?? "#C7C9D9";
12875
+ const subHeadingDividerSx = mergeSx4(
12876
+ {
12877
+ height: "1px",
12878
+ width: "100%",
12879
+ bgcolor: subHeadingDividerColor,
12880
+ mb: 1.5
12881
+ },
12882
+ customization?.frame?.subHeadingDividerSx
12883
+ );
12884
+ const legendSx = mergeSx4({ flexShrink: 0 }, customization?.header?.legendSx);
12885
+ const showSubHeadingRow = Boolean(subHeading) || showSortToggle || showHeaderLegend;
12886
+ const resolvedStackedTotal = stackedTotalLabel ?? `Total ${stackedLegendLabel}`;
12887
+ if (chartData.length === 0) {
12888
+ return /* @__PURE__ */ jsx47(ChartEmptyState, { minHeight: 360, ...emptyStatePlaceholderProps });
12889
+ }
12890
+ return /* @__PURE__ */ jsx47(StackedComparisonBarChartCustomizationProvider, { value: customization ?? {}, children: /* @__PURE__ */ jsxs37(Box31, { sx: frameSx, children: [
12891
+ showSubHeadingRow ? /* @__PURE__ */ jsxs37(
12892
+ Stack25,
12893
+ {
12894
+ direction: "row",
12895
+ alignItems: "center",
12896
+ justifyContent: "space-between",
12897
+ gap: 2,
12898
+ flexWrap: "wrap",
12899
+ sx: { mb: 1 },
12900
+ children: [
12901
+ /* @__PURE__ */ jsxs37(Stack25, { direction: "row", alignItems: "center", spacing: 1, children: [
12902
+ subHeading ? /* @__PURE__ */ jsx47(Typography26, { sx: subHeadingSx, children: subHeading }) : /* @__PURE__ */ jsx47("span", {}),
12903
+ showSortToggle ? /* @__PURE__ */ jsx47(
12904
+ ButtonBase2,
12905
+ {
12906
+ onClick: onSortToggle,
12907
+ disableRipple: !onSortToggle,
12908
+ sx: mergeSx4(
12909
+ {
12910
+ width: 26,
12911
+ height: 26,
12912
+ borderRadius: 1,
12913
+ bgcolor: "#EEF2FF",
12914
+ color: "#5B6DEC",
12915
+ display: "inline-flex",
12916
+ alignItems: "center",
12917
+ justifyContent: "center",
12918
+ cursor: onSortToggle ? "pointer" : "default",
12919
+ "&:hover": onSortToggle ? { bgcolor: "#E0E7FF" } : void 0
12920
+ },
12921
+ customization?.header?.sortButtonSx
12922
+ ),
12923
+ "aria-label": "Toggle sort order",
12924
+ children: /* @__PURE__ */ jsx47(SortIcon, { color: "#5B6DEC" })
12925
+ }
12926
+ ) : null
12927
+ ] }),
12928
+ showHeaderLegend ? /* @__PURE__ */ jsxs37(
12929
+ Stack25,
12930
+ {
12931
+ direction: "row",
12932
+ alignItems: "center",
12933
+ spacing: 1.5,
12934
+ sx: legendSx,
12935
+ children: [
12936
+ /* @__PURE__ */ jsxs37(Stack25, { direction: "row", alignItems: "center", spacing: 0.75, children: [
12937
+ /* @__PURE__ */ jsx47(LegendDot, { color: legendStackDot, sizePx: legendDotSize }),
12938
+ /* @__PURE__ */ jsx47(
12939
+ Typography26,
12940
+ {
12941
+ sx: mergeSx4(
12942
+ {
12943
+ fontWeight: 700,
12944
+ fontSize: "0.85rem",
12945
+ color: legendStackDot
12946
+ },
12947
+ customization?.header?.legendLabelSx
12948
+ ),
12949
+ children: stackedLegendLabel
12950
+ }
12951
+ )
12952
+ ] }),
12953
+ /* @__PURE__ */ jsx47(
12954
+ Box31,
12955
+ {
12956
+ sx: {
12957
+ width: "1px",
12958
+ height: 18,
12959
+ bgcolor: legendDividerColor
12960
+ }
12961
+ }
12962
+ ),
12963
+ /* @__PURE__ */ jsxs37(Stack25, { direction: "row", alignItems: "center", spacing: 0.75, children: [
12964
+ /* @__PURE__ */ jsx47(
12965
+ LegendDot,
12966
+ {
12967
+ color: legendComparisonDot,
12968
+ sizePx: legendDotSize
12969
+ }
12970
+ ),
12971
+ /* @__PURE__ */ jsx47(
12972
+ Typography26,
12973
+ {
12974
+ sx: mergeSx4(
12975
+ {
12976
+ fontWeight: 700,
12977
+ fontSize: "0.85rem",
12978
+ color: legendComparisonDot
12979
+ },
12980
+ customization?.header?.legendLabelSx
12981
+ ),
12982
+ children: comparisonLegendLabel
12983
+ }
12984
+ )
12985
+ ] })
12986
+ ]
12987
+ }
12988
+ ) : null
12989
+ ]
12990
+ }
12991
+ ) : null,
12992
+ showSubHeadingDivider ? /* @__PURE__ */ jsx47(Box31, { sx: subHeadingDividerSx }) : null,
12993
+ /* @__PURE__ */ jsx47(
12994
+ BarPlot,
12995
+ {
12996
+ data: chartData,
12997
+ buckets,
12998
+ bucketColors,
12999
+ comparisonColor,
13000
+ rowsByName,
13001
+ yAxisDomain,
13002
+ yAxisTicks,
13003
+ yAxisTickFormatter,
13004
+ stackedTotalLabel: resolvedStackedTotal,
13005
+ comparisonLabel: comparisonLegendLabel,
13006
+ renderTooltip,
13007
+ enableHorizontalScroll,
13008
+ chartMinWidth,
13009
+ categoryWidthPx
13010
+ }
13011
+ )
13012
+ ] }) });
13013
+ }
13014
+
13015
+ // src/components/widgets/StorePerformanceByAssist/storePerformanceByAssist.defaultInfoPopover.ts
13016
+ var DEFAULT_STORE_PERFORMANCE_BY_ASSIST_INFO_POPOVER = {
13017
+ title: "Store Performance by Assist",
13018
+ description: "Per-store breakdown of attended customers split by attend-duration buckets, alongside the unattended count.",
13019
+ helpBullets: [
13020
+ "Compare attended vs unattended customer volume by store.",
13021
+ "Identify stores with high unattended counts that need staffing.",
13022
+ "See how attended customers split across 0-10 sec, 11-30 sec, 31-59 sec, and 1-2 min buckets."
13023
+ ]
13024
+ };
13025
+
13026
+ // src/components/widgets/StorePerformanceByAssist/storePerformanceByAssist.mock.ts
13027
+ var STORE_PERFORMANCE_DEFAULT_BUCKETS = [
13028
+ { id: "0-10", label: "0-10sec" },
13029
+ { id: "11-30", label: "11-30sec" },
13030
+ { id: "31-59", label: "31-59sec" },
13031
+ { id: "1-2", label: "1-2min" }
13032
+ ];
13033
+ var STORE_PERFORMANCE_DEFAULT_DATA = [
13034
+ {
13035
+ name: "Lake Mall",
13036
+ subName: "Kolkata",
13037
+ stacked: { "0-10": 1100, "11-30": 1100, "31-59": 1500, "1-2": 3e3 },
13038
+ comparison: 700
13039
+ },
13040
+ {
13041
+ name: "V3s",
13042
+ subName: "Delhi",
13043
+ stacked: { "0-10": 1e3, "11-30": 1100, "31-59": 1450, "1-2": 2900 },
13044
+ comparison: 620
13045
+ },
13046
+ {
13047
+ name: "Forum Mall",
13048
+ subName: "Bangalore",
13049
+ stacked: { "0-10": 750, "11-30": 800, "31-59": 1450, "1-2": 2050 },
13050
+ comparison: 520
13051
+ },
13052
+ {
13053
+ name: "Phoenix",
13054
+ subName: "Mumbai",
13055
+ stacked: { "0-10": 600, "11-30": 700, "31-59": 1450, "1-2": 1500 },
13056
+ comparison: 470
13057
+ },
13058
+ {
13059
+ name: "DB City",
13060
+ subName: "Bhopal",
13061
+ stacked: { "0-10": 400, "11-30": 600, "31-59": 950, "1-2": 1550 },
13062
+ comparison: 580
13063
+ },
13064
+ {
13065
+ name: "DLF",
13066
+ subName: "Gurgaon",
13067
+ stacked: { "0-10": 225, "11-30": 300, "31-59": 375, "1-2": 600 },
13068
+ comparison: 190
13069
+ },
13070
+ {
13071
+ name: "Highway",
13072
+ subName: "Chennai",
13073
+ stacked: { "0-10": 200, "11-30": 250, "31-59": 350, "1-2": 850 },
13074
+ comparison: 140
13075
+ },
13076
+ {
13077
+ name: "Elante",
13078
+ subName: "Chandigarh",
13079
+ stacked: { "0-10": 150, "11-30": 200, "31-59": 250, "1-2": 600 },
13080
+ comparison: 100
13081
+ }
13082
+ ];
13083
+
13084
+ // src/components/widgets/StorePerformanceByAssist/StorePerformanceByAssist.tsx
13085
+ import Box32 from "@mui/material/Box";
13086
+ import Card4 from "@mui/material/Card";
13087
+ import CardContent3 from "@mui/material/CardContent";
13088
+ import Stack26 from "@mui/material/Stack";
13089
+ import Typography27 from "@mui/material/Typography";
13090
+ import { Fragment as Fragment17, jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
13091
+ function LegendSquare({
13092
+ color,
13093
+ size = 12
13094
+ }) {
13095
+ return /* @__PURE__ */ jsx48(
13096
+ Box32,
13097
+ {
13098
+ sx: {
13099
+ width: size,
13100
+ height: size,
13101
+ borderRadius: 0.5,
13102
+ bgcolor: color,
13103
+ flexShrink: 0
13104
+ }
13105
+ }
13106
+ );
13107
+ }
13108
+ function StorePerformanceByAssist({
13109
+ title,
13110
+ width,
13111
+ maxWidth,
13112
+ minWidth,
13113
+ subHeading = "Stores (Top to Bottom)",
13114
+ showSortToggle = true,
13115
+ onSortToggle,
13116
+ showSubHeadingDivider = true,
13117
+ showHeaderLegend = true,
13118
+ enableHorizontalScroll = false,
13119
+ chartMinWidth,
13120
+ categoryWidthPx,
13121
+ buckets,
13122
+ data,
13123
+ attendedLegendLabel = "Attended",
13124
+ unattendedLegendLabel = "Unattended",
13125
+ unattendedBottomLegendLabel = "Unattended Customers",
13126
+ yAxisDomain,
13127
+ yAxisTicks,
13128
+ yAxisTickFormatter,
13129
+ infoPopover = null,
13130
+ renderTooltip,
13131
+ emptyStatePlaceholderProps,
13132
+ customization
13133
+ }) {
13134
+ const bucketColors = customization?.chart?.barChart?.stackColors ?? STACKED_COMPARISON_DEFAULT_STACK_COLORS;
13135
+ const comparisonColor = customization?.chart?.barChart?.comparisonColor ?? STACKED_COMPARISON_DEFAULT_COMPARISON_COLOR;
13136
+ const bottomLegendColor = customization?.bottomLegend?.labelColor ?? "#6B7280";
13137
+ const bottomLegendFs = customization?.bottomLegend?.fontSizePx ?? 12;
13138
+ const bottomLegendDividerColor = customization?.bottomLegend?.dividerColor ?? "#E5E7EB";
13139
+ const bottomSwatch = customization?.bottomLegend?.swatchSizePx ?? 12;
13140
+ const resolvedInfo = infoPopover === void 0 ? DEFAULT_STORE_PERFORMANCE_BY_ASSIST_INFO_POPOVER : infoPopover;
13141
+ const rootSx = mergeSx4(
13142
+ {
13143
+ bgcolor: "#FFFFFF",
13144
+ borderRadius: 2,
13145
+ boxShadow: "0 1px 3px rgba(15, 23, 42, 0.08)",
13146
+ ...width !== void 0 ? { width } : null,
13147
+ ...maxWidth !== void 0 ? { maxWidth } : null,
13148
+ ...minWidth !== void 0 ? { minWidth } : null
13149
+ },
13150
+ customization?.rootCard?.sx
13151
+ );
13152
+ const titleSx = mergeSx4(
13153
+ {
13154
+ fontWeight: 700,
13155
+ fontSize: { xs: "1rem", sm: "1.05rem" },
13156
+ color: "#0f172a"
13157
+ },
13158
+ customization?.header?.titleSx
13159
+ );
13160
+ const bottomLegendSx = mergeSx4(
13161
+ {
13162
+ display: "flex",
13163
+ flexWrap: "wrap",
13164
+ alignItems: "center",
13165
+ rowGap: 1,
13166
+ mt: 1.5,
13167
+ px: 0.5
13168
+ },
13169
+ customization?.bottomLegend?.sx
13170
+ );
13171
+ const showOuterHeader = Boolean(title) || Boolean(resolvedInfo);
13172
+ const hasData = data.length > 0;
13173
+ return /* @__PURE__ */ jsx48(Card4, { elevation: customization?.rootCard?.elevation ?? 0, sx: rootSx, children: /* @__PURE__ */ jsx48(CardContent3, { children: /* @__PURE__ */ jsxs38(Stack26, { spacing: 1.5, sx: { width: "100%" }, children: [
13174
+ showOuterHeader ? /* @__PURE__ */ jsxs38(
13175
+ Stack26,
13176
+ {
13177
+ direction: "row",
13178
+ alignItems: "center",
13179
+ justifyContent: "space-between",
13180
+ gap: 2,
13181
+ flexWrap: "wrap",
13182
+ children: [
13183
+ title ? /* @__PURE__ */ jsx48(Typography27, { sx: titleSx, children: title }) : /* @__PURE__ */ jsx48("span", {}),
13184
+ /* @__PURE__ */ jsx48(
13185
+ Stack26,
13186
+ {
13187
+ direction: "row",
13188
+ alignItems: "center",
13189
+ spacing: 1.5,
13190
+ sx: { flexShrink: 0 },
13191
+ children: resolvedInfo ? /* @__PURE__ */ jsxs38(Fragment17, { children: [
13192
+ /* @__PURE__ */ jsx48(ChartWidgetHeaderSeparator, {}),
13193
+ /* @__PURE__ */ jsx48(
13194
+ ChartWidgetInfoButton,
13195
+ {
13196
+ popover: resolvedInfo,
13197
+ ariaLabel: "Store performance by assist information"
13198
+ }
13199
+ )
13200
+ ] }) : null
13201
+ }
13202
+ )
13203
+ ]
13204
+ }
13205
+ ) : null,
13206
+ /* @__PURE__ */ jsx48(
13207
+ StackedComparisonBarChart,
13208
+ {
13209
+ subHeading,
13210
+ showSortToggle,
13211
+ onSortToggle,
13212
+ showSubHeadingDivider,
13213
+ showHeaderLegend,
13214
+ enableHorizontalScroll,
13215
+ chartMinWidth,
13216
+ categoryWidthPx,
13217
+ buckets,
13218
+ data,
13219
+ stackedLegendLabel: attendedLegendLabel,
13220
+ comparisonLegendLabel: unattendedLegendLabel,
13221
+ yAxisDomain,
13222
+ yAxisTicks,
13223
+ yAxisTickFormatter,
13224
+ renderTooltip,
13225
+ emptyStatePlaceholderProps,
13226
+ customization: customization?.chart
13227
+ }
13228
+ ),
13229
+ hasData ? /* @__PURE__ */ jsxs38(Box32, { sx: bottomLegendSx, children: [
13230
+ buckets.map((b, i) => {
13231
+ const color = b.color ?? bucketColors[i] ?? "#94A3B8";
13232
+ return /* @__PURE__ */ jsxs38(
13233
+ Stack26,
13234
+ {
13235
+ direction: "row",
13236
+ alignItems: "center",
13237
+ spacing: 0.75,
13238
+ sx: { mr: 2 },
13239
+ children: [
13240
+ /* @__PURE__ */ jsx48(LegendSquare, { color, size: bottomSwatch }),
13241
+ /* @__PURE__ */ jsx48(
13242
+ Typography27,
13243
+ {
13244
+ sx: {
13245
+ fontSize: bottomLegendFs,
13246
+ color: bottomLegendColor,
13247
+ fontWeight: 500
13248
+ },
13249
+ children: b.label
13250
+ }
13251
+ )
13252
+ ]
13253
+ },
13254
+ b.id
13255
+ );
13256
+ }),
13257
+ /* @__PURE__ */ jsx48(
13258
+ Box32,
13259
+ {
13260
+ sx: {
13261
+ width: "1px",
13262
+ height: 14,
13263
+ bgcolor: bottomLegendDividerColor,
13264
+ mx: 1
13265
+ }
13266
+ }
13267
+ ),
13268
+ /* @__PURE__ */ jsxs38(
13269
+ Stack26,
13270
+ {
13271
+ direction: "row",
13272
+ alignItems: "center",
13273
+ spacing: 0.75,
13274
+ sx: { mr: 2 },
13275
+ children: [
13276
+ /* @__PURE__ */ jsx48(LegendSquare, { color: comparisonColor, size: bottomSwatch }),
13277
+ /* @__PURE__ */ jsx48(
13278
+ Typography27,
13279
+ {
13280
+ sx: {
13281
+ fontSize: bottomLegendFs,
13282
+ color: bottomLegendColor,
13283
+ fontWeight: 500
13284
+ },
13285
+ children: unattendedBottomLegendLabel
13286
+ }
13287
+ )
13288
+ ]
13289
+ }
13290
+ )
13291
+ ] }) : null
13292
+ ] }) }) });
13293
+ }
13294
+
12334
13295
  // src/components/widgets/FootFallHeatMap/FootFallHeatMapView.tsx
12335
13296
  import { Icon as Icon13 } from "@iconify/react";
12336
13297
  import {
12337
- Box as Box31,
13298
+ Box as Box33,
12338
13299
  Button as Button8,
12339
13300
  IconButton as IconButton5,
12340
13301
  Paper as Paper5,
12341
13302
  Skeleton as Skeleton7,
12342
- Stack as Stack25,
12343
- Tooltip as Tooltip12,
12344
- Typography as Typography26
13303
+ Stack as Stack27,
13304
+ Tooltip as Tooltip13,
13305
+ Typography as Typography28
12345
13306
  } from "@mui/material";
12346
- import * as React24 from "react";
12347
- import { useEffect as useEffect3, useMemo as useMemo19, useState as useState17 } from "react";
12348
- import { ResponsiveContainer as ResponsiveContainer5, Treemap } from "recharts";
13307
+ import * as React26 from "react";
13308
+ import { useEffect as useEffect3, useMemo as useMemo21, useState as useState17 } from "react";
13309
+ import { ResponsiveContainer as ResponsiveContainer6, Treemap } from "recharts";
12349
13310
 
12350
13311
  // src/components/widgets/FootFallHeatMap/FootFallHeatMapView.types.ts
12351
13312
  var DEFAULT_FOOTFALL_TILE_ICONS = {
@@ -12768,7 +13729,7 @@ function getNestedList(payload) {
12768
13729
  }
12769
13730
 
12770
13731
  // src/components/widgets/FootFallHeatMap/FootFallHeatMapView.tsx
12771
- import { Fragment as Fragment17, jsx as jsx45, jsxs as jsxs36 } from "react/jsx-runtime";
13732
+ import { Fragment as Fragment19, jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
12772
13733
  function toDisplayNumber(value) {
12773
13734
  if (!Number.isFinite(value)) return "0";
12774
13735
  return new Intl.NumberFormat("en-IN").format(value);
@@ -12787,7 +13748,7 @@ function InlineStatCard({
12787
13748
  sx,
12788
13749
  iconColor = "#1565C0"
12789
13750
  }) {
12790
- return /* @__PURE__ */ jsx45(
13751
+ return /* @__PURE__ */ jsx49(
12791
13752
  Paper5,
12792
13753
  {
12793
13754
  elevation: 0,
@@ -12803,8 +13764,8 @@ function InlineStatCard({
12803
13764
  },
12804
13765
  ...sx ? [sx] : []
12805
13766
  ],
12806
- children: /* @__PURE__ */ jsxs36(Stack25, { direction: "row", alignItems: "center", spacing: 1.5, children: [
12807
- /* @__PURE__ */ jsx45(
13767
+ children: /* @__PURE__ */ jsxs39(Stack27, { direction: "row", alignItems: "center", spacing: 1.5, children: [
13768
+ /* @__PURE__ */ jsx49(
12808
13769
  Icon13,
12809
13770
  {
12810
13771
  icon,
@@ -12814,17 +13775,17 @@ function InlineStatCard({
12814
13775
  style: { flexShrink: 0 }
12815
13776
  }
12816
13777
  ),
12817
- /* @__PURE__ */ jsxs36(Stack25, { spacing: 0.15, children: [
12818
- /* @__PURE__ */ jsx45(
12819
- Typography26,
13778
+ /* @__PURE__ */ jsxs39(Stack27, { spacing: 0.15, children: [
13779
+ /* @__PURE__ */ jsx49(
13780
+ Typography28,
12820
13781
  {
12821
13782
  variant: "body2",
12822
13783
  sx: { fontWeight: 500, color: "text.primary" },
12823
13784
  children: title
12824
13785
  }
12825
13786
  ),
12826
- /* @__PURE__ */ jsx45(
12827
- Typography26,
13787
+ /* @__PURE__ */ jsx49(
13788
+ Typography28,
12828
13789
  {
12829
13790
  variant: "h6",
12830
13791
  sx: { lineHeight: 1.1, fontWeight: 700, color: "text.primary" },
@@ -12853,17 +13814,17 @@ function InlineSegmentStrip({
12853
13814
  const barHeight = presentation?.barHeight ?? 12;
12854
13815
  const trackInsetPx = presentation?.trackInsetPx ?? 3;
12855
13816
  const trackBg = presentation?.trackBackgroundColor ?? "#ECEFF3";
12856
- return /* @__PURE__ */ jsxs36(Stack25, { spacing: 0.75, children: [
12857
- /* @__PURE__ */ jsxs36(
12858
- Stack25,
13817
+ return /* @__PURE__ */ jsxs39(Stack27, { spacing: 0.75, children: [
13818
+ /* @__PURE__ */ jsxs39(
13819
+ Stack27,
12859
13820
  {
12860
13821
  direction: "row",
12861
13822
  alignItems: "center",
12862
13823
  justifyContent: "space-between",
12863
13824
  gap: 1,
12864
13825
  children: [
12865
- /* @__PURE__ */ jsx45(
12866
- Typography26,
13826
+ /* @__PURE__ */ jsx49(
13827
+ Typography28,
12867
13828
  {
12868
13829
  variant: "subtitle2",
12869
13830
  sx: [
@@ -12873,8 +13834,8 @@ function InlineSegmentStrip({
12873
13834
  children: item.label
12874
13835
  }
12875
13836
  ),
12876
- /* @__PURE__ */ jsx45(
12877
- Typography26,
13837
+ /* @__PURE__ */ jsx49(
13838
+ Typography28,
12878
13839
  {
12879
13840
  variant: "body2",
12880
13841
  sx: [
@@ -12887,8 +13848,8 @@ function InlineSegmentStrip({
12887
13848
  ]
12888
13849
  }
12889
13850
  ),
12890
- /* @__PURE__ */ jsx45(
12891
- Box31,
13851
+ /* @__PURE__ */ jsx49(
13852
+ Box33,
12892
13853
  {
12893
13854
  sx: {
12894
13855
  width: "100%",
@@ -12905,8 +13866,8 @@ function InlineSegmentStrip({
12905
13866
  const widthPercent = total > 0 ? segment.value / total * filledPercent : 0;
12906
13867
  const isLast = idx === lastIdx;
12907
13868
  const fill = resolveSegmentFill(presentation, idx, segment.color);
12908
- return /* @__PURE__ */ jsx45(
12909
- Tooltip12,
13869
+ return /* @__PURE__ */ jsx49(
13870
+ Tooltip13,
12910
13871
  {
12911
13872
  title: (() => {
12912
13873
  if (presentation?.renderSegmentTooltip) {
@@ -12918,7 +13879,7 @@ function InlineSegmentStrip({
12918
13879
  });
12919
13880
  return custom == null ? "" : custom;
12920
13881
  }
12921
- return /* @__PURE__ */ jsx45(
13882
+ return /* @__PURE__ */ jsx49(
12922
13883
  InlineSegmentTooltipCard,
12923
13884
  {
12924
13885
  segment,
@@ -12933,8 +13894,8 @@ function InlineSegmentStrip({
12933
13894
  sx: inlineSegmentTooltipPopperSx
12934
13895
  }
12935
13896
  },
12936
- children: /* @__PURE__ */ jsx45(
12937
- Box31,
13897
+ children: /* @__PURE__ */ jsx49(
13898
+ Box33,
12938
13899
  {
12939
13900
  sx: {
12940
13901
  width: `${Math.max(0, widthPercent)}%`,
@@ -12978,10 +13939,10 @@ function InlineSegmentTooltipCard({
12978
13939
  cardSx
12979
13940
  }) {
12980
13941
  const tooltipSurfaceSx = cardSx ? [inlineSegmentTooltipCardSx, cardSx] : inlineSegmentTooltipCardSx;
12981
- return /* @__PURE__ */ jsxs36(Box31, { sx: tooltipSurfaceSx, children: [
12982
- /* @__PURE__ */ jsx45(Box31, { sx: { height: 3, bgcolor: "grey.200", width: "100%" } }),
12983
- /* @__PURE__ */ jsxs36(
12984
- Box31,
13942
+ return /* @__PURE__ */ jsxs39(Box33, { sx: tooltipSurfaceSx, children: [
13943
+ /* @__PURE__ */ jsx49(Box33, { sx: { height: 3, bgcolor: "grey.200", width: "100%" } }),
13944
+ /* @__PURE__ */ jsxs39(
13945
+ Box33,
12985
13946
  {
12986
13947
  sx: {
12987
13948
  display: "flex",
@@ -12993,8 +13954,8 @@ function InlineSegmentTooltipCard({
12993
13954
  py: 1.25
12994
13955
  },
12995
13956
  children: [
12996
- /* @__PURE__ */ jsx45(
12997
- Box31,
13957
+ /* @__PURE__ */ jsx49(
13958
+ Box33,
12998
13959
  {
12999
13960
  component: "span",
13000
13961
  "aria-hidden": true,
@@ -13007,8 +13968,8 @@ function InlineSegmentTooltipCard({
13007
13968
  }
13008
13969
  }
13009
13970
  ),
13010
- /* @__PURE__ */ jsx45(
13011
- Typography26,
13971
+ /* @__PURE__ */ jsx49(
13972
+ Typography28,
13012
13973
  {
13013
13974
  component: "span",
13014
13975
  sx: {
@@ -13020,8 +13981,8 @@ function InlineSegmentTooltipCard({
13020
13981
  children: segment.label
13021
13982
  }
13022
13983
  ),
13023
- /* @__PURE__ */ jsx45(
13024
- Typography26,
13984
+ /* @__PURE__ */ jsx49(
13985
+ Typography28,
13025
13986
  {
13026
13987
  component: "span",
13027
13988
  sx: {
@@ -13033,8 +13994,8 @@ function InlineSegmentTooltipCard({
13033
13994
  children: " : "
13034
13995
  }
13035
13996
  ),
13036
- /* @__PURE__ */ jsx45(
13037
- Typography26,
13997
+ /* @__PURE__ */ jsx49(
13998
+ Typography28,
13038
13999
  {
13039
14000
  component: "span",
13040
14001
  sx: {
@@ -13064,8 +14025,8 @@ function FootfallHeatMapKpiRankedBlock({
13064
14025
  const statIcon = presentation?.statCardIconColor ?? "#1565C0";
13065
14026
  const customSummary = presentation?.summaryCards?.(summaryKpis);
13066
14027
  const useCustomSummary = customSummary !== void 0;
13067
- return /* @__PURE__ */ jsxs36(
13068
- Stack25,
14028
+ return /* @__PURE__ */ jsxs39(
14029
+ Stack27,
13069
14030
  {
13070
14031
  spacing: 2,
13071
14032
  sx: [
@@ -13074,15 +14035,15 @@ function FootfallHeatMapKpiRankedBlock({
13074
14035
  ...presentation?.kpiContainerSx ? [presentation.kpiContainerSx] : []
13075
14036
  ],
13076
14037
  children: [
13077
- useCustomSummary && customSummary.length === 0 ? null : /* @__PURE__ */ jsx45(
13078
- Stack25,
14038
+ useCustomSummary && customSummary.length === 0 ? null : /* @__PURE__ */ jsx49(
14039
+ Stack27,
13079
14040
  {
13080
14041
  direction: "row",
13081
14042
  spacing: 1.5,
13082
14043
  flexWrap: "wrap",
13083
14044
  useFlexGap: true,
13084
14045
  sx: presentation?.summaryRowSx ? [presentation.summaryRowSx] : void 0,
13085
- children: useCustomSummary ? customSummary.map((card) => /* @__PURE__ */ jsx45(
14046
+ children: useCustomSummary ? customSummary.map((card) => /* @__PURE__ */ jsx49(
13086
14047
  InlineStatCard,
13087
14048
  {
13088
14049
  icon: card.icon ?? "mdi:chart-box-outline",
@@ -13095,7 +14056,7 @@ function FootfallHeatMapKpiRankedBlock({
13095
14056
  },
13096
14057
  card.id
13097
14058
  )) : [
13098
- /* @__PURE__ */ jsx45(
14059
+ /* @__PURE__ */ jsx49(
13099
14060
  InlineStatCard,
13100
14061
  {
13101
14062
  icon: "mdi:store-marker-outline",
@@ -13106,7 +14067,7 @@ function FootfallHeatMapKpiRankedBlock({
13106
14067
  },
13107
14068
  "default-stores"
13108
14069
  ),
13109
- /* @__PURE__ */ jsx45(
14070
+ /* @__PURE__ */ jsx49(
13110
14071
  InlineStatCard,
13111
14072
  {
13112
14073
  icon: "fluent:people-community-16-filled",
@@ -13120,15 +14081,15 @@ function FootfallHeatMapKpiRankedBlock({
13120
14081
  ]
13121
14082
  }
13122
14083
  ),
13123
- /* @__PURE__ */ jsx45(
13124
- Stack25,
14084
+ /* @__PURE__ */ jsx49(
14085
+ Stack27,
13125
14086
  {
13126
14087
  spacing: 1.25,
13127
14088
  sx: [
13128
14089
  { pt: 0.5, pb: 1 },
13129
14090
  ...presentation?.rankedListStackSx ? [presentation.rankedListStackSx] : []
13130
14091
  ],
13131
- children: rankedBarList.items.map((item) => /* @__PURE__ */ jsx45(
14092
+ children: rankedBarList.items.map((item) => /* @__PURE__ */ jsx49(
13132
14093
  InlineSegmentStrip,
13133
14094
  {
13134
14095
  item,
@@ -13310,7 +14271,7 @@ function FootFallHeatMapView({
13310
14271
  tileColors: treemapProp?.tileColors
13311
14272
  };
13312
14273
  const tileMetrics = treemapLayout.tileMetrics;
13313
- const tileColorFromSeed = useMemo19(
14274
+ const tileColorFromSeed = useMemo21(
13314
14275
  () => createTreemapTileColorResolver(treemapLayout.tileColors),
13315
14276
  [treemapLayout.tileColors]
13316
14277
  );
@@ -13352,7 +14313,7 @@ function FootFallHeatMapView({
13352
14313
  startFromPathMode,
13353
14314
  tileColorFromSeed
13354
14315
  ]);
13355
- const derivedKpiStrip = useMemo19(() => {
14316
+ const derivedKpiStrip = useMemo21(() => {
13356
14317
  if (isLoading || loading || !initialData) return null;
13357
14318
  const activeZoneForStrip = trackingDetails.length > 0 ? trackingDetails[trackingDetails.length - 1] : void 0;
13358
14319
  return deriveFootfallHeatMapKpiStrip(
@@ -13448,7 +14409,7 @@ function FootFallHeatMapView({
13448
14409
  );
13449
14410
  const dwellIconColor = resolveIconColor(iconColorProp, tileColor, "dwell");
13450
14411
  const p = inner;
13451
- return /* @__PURE__ */ jsx45(
14412
+ return /* @__PURE__ */ jsx49(
13452
14413
  "foreignObject",
13453
14414
  {
13454
14415
  x,
@@ -13456,8 +14417,8 @@ function FootFallHeatMapView({
13456
14417
  width,
13457
14418
  height,
13458
14419
  style: { borderRadius: "12px", overflow: "hidden" },
13459
- children: /* @__PURE__ */ jsxs36(
13460
- Stack25,
14420
+ children: /* @__PURE__ */ jsxs39(
14421
+ Stack27,
13461
14422
  {
13462
14423
  onClick: handleClick,
13463
14424
  onKeyDown: (e) => {
@@ -13487,8 +14448,8 @@ function FootFallHeatMapView({
13487
14448
  }
13488
14449
  },
13489
14450
  children: [
13490
- /* @__PURE__ */ jsxs36(
13491
- Stack25,
14451
+ /* @__PURE__ */ jsxs39(
14452
+ Stack27,
13492
14453
  {
13493
14454
  direction: isSmall ? "row" : "column",
13494
14455
  justifyContent: "center",
@@ -13499,8 +14460,8 @@ function FootFallHeatMapView({
13499
14460
  mb: isSmall ? 0.5 : 1
13500
14461
  },
13501
14462
  children: [
13502
- /* @__PURE__ */ jsx45(
13503
- Typography26,
14463
+ /* @__PURE__ */ jsx49(
14464
+ Typography28,
13504
14465
  {
13505
14466
  sx: {
13506
14467
  fontSize: `${fontSize}px!important`,
@@ -13522,8 +14483,8 @@ function FootFallHeatMapView({
13522
14483
  children: name
13523
14484
  }
13524
14485
  ),
13525
- /* @__PURE__ */ jsx45(
13526
- Typography26,
14486
+ /* @__PURE__ */ jsx49(
14487
+ Typography28,
13527
14488
  {
13528
14489
  sx: {
13529
14490
  fontSize: `${fontSize}px!important`,
@@ -13537,8 +14498,8 @@ function FootFallHeatMapView({
13537
14498
  ]
13538
14499
  }
13539
14500
  ),
13540
- /* @__PURE__ */ jsxs36(
13541
- Stack25,
14501
+ /* @__PURE__ */ jsxs39(
14502
+ Stack27,
13542
14503
  {
13543
14504
  direction: "row",
13544
14505
  justifyContent: "center",
@@ -13551,8 +14512,8 @@ function FootFallHeatMapView({
13551
14512
  ...tileMetrics?.metricsRowStackSx != null ? [tileMetrics.metricsRowStackSx] : []
13552
14513
  ],
13553
14514
  children: [
13554
- /* @__PURE__ */ jsxs36(
13555
- Stack25,
14515
+ /* @__PURE__ */ jsxs39(
14516
+ Stack27,
13556
14517
  {
13557
14518
  direction: "row",
13558
14519
  alignItems: "center",
@@ -13569,8 +14530,8 @@ function FootFallHeatMapView({
13569
14530
  ...tileMetrics?.metricPillStackSx != null ? [tileMetrics.metricPillStackSx] : []
13570
14531
  ],
13571
14532
  children: [
13572
- /* @__PURE__ */ jsx45(
13573
- Box31,
14533
+ /* @__PURE__ */ jsx49(
14534
+ Box33,
13574
14535
  {
13575
14536
  sx: [
13576
14537
  {
@@ -13582,7 +14543,7 @@ function FootFallHeatMapView({
13582
14543
  },
13583
14544
  ...tileMetrics?.metricPillIconBoxSx != null ? [tileMetrics.metricPillIconBoxSx] : []
13584
14545
  ],
13585
- children: /* @__PURE__ */ jsx45(
14546
+ children: /* @__PURE__ */ jsx49(
13586
14547
  Icon13,
13587
14548
  {
13588
14549
  icon: icons.visitors,
@@ -13592,8 +14553,8 @@ function FootFallHeatMapView({
13592
14553
  )
13593
14554
  }
13594
14555
  ),
13595
- /* @__PURE__ */ jsx45(
13596
- Typography26,
14556
+ /* @__PURE__ */ jsx49(
14557
+ Typography28,
13597
14558
  {
13598
14559
  sx: [
13599
14560
  {
@@ -13610,8 +14571,8 @@ function FootFallHeatMapView({
13610
14571
  ]
13611
14572
  }
13612
14573
  ),
13613
- /* @__PURE__ */ jsxs36(
13614
- Stack25,
14574
+ /* @__PURE__ */ jsxs39(
14575
+ Stack27,
13615
14576
  {
13616
14577
  direction: "row",
13617
14578
  alignItems: "center",
@@ -13628,8 +14589,8 @@ function FootFallHeatMapView({
13628
14589
  ...tileMetrics?.metricPillStackSx != null ? [tileMetrics.metricPillStackSx] : []
13629
14590
  ],
13630
14591
  children: [
13631
- /* @__PURE__ */ jsx45(
13632
- Box31,
14592
+ /* @__PURE__ */ jsx49(
14593
+ Box33,
13633
14594
  {
13634
14595
  sx: [
13635
14596
  {
@@ -13641,7 +14602,7 @@ function FootFallHeatMapView({
13641
14602
  },
13642
14603
  ...tileMetrics?.metricPillIconBoxSx != null ? [tileMetrics.metricPillIconBoxSx] : []
13643
14604
  ],
13644
- children: /* @__PURE__ */ jsx45(
14605
+ children: /* @__PURE__ */ jsx49(
13645
14606
  Icon13,
13646
14607
  {
13647
14608
  icon: icons.dwell,
@@ -13651,8 +14612,8 @@ function FootFallHeatMapView({
13651
14612
  )
13652
14613
  }
13653
14614
  ),
13654
- /* @__PURE__ */ jsx45(
13655
- Typography26,
14615
+ /* @__PURE__ */ jsx49(
14616
+ Typography28,
13656
14617
  {
13657
14618
  sx: [
13658
14619
  {
@@ -13694,8 +14655,8 @@ function FootFallHeatMapView({
13694
14655
  const LabelTag = ({ textColor = "#f0f0f0" }) => {
13695
14656
  const pathSegments = trackingDetails.map((t) => String(t?.name ?? "").trim()).filter(Boolean);
13696
14657
  const breadcrumbSegments = Array.from(new Set([...pathSegments].reverse()));
13697
- return /* @__PURE__ */ jsx45(Stack25, { direction: "row", alignItems: "baseline", flexWrap: "wrap", gap: 1.5, children: breadcrumbSegments.length === 0 ? /* @__PURE__ */ jsx45(
13698
- Typography26,
14658
+ return /* @__PURE__ */ jsx49(Stack27, { direction: "row", alignItems: "baseline", flexWrap: "wrap", gap: 1.5, children: breadcrumbSegments.length === 0 ? /* @__PURE__ */ jsx49(
14659
+ Typography28,
13699
14660
  {
13700
14661
  component: "span",
13701
14662
  sx: {
@@ -13708,10 +14669,10 @@ function FootFallHeatMapView({
13708
14669
  color: textColor,
13709
14670
  children: brandLabel
13710
14671
  }
13711
- ) : /* @__PURE__ */ jsxs36(Fragment17, { children: [
13712
- breadcrumbSegments.map((seg, i) => /* @__PURE__ */ jsxs36(React24.Fragment, { children: [
13713
- i > 0 ? /* @__PURE__ */ jsx45(
13714
- Typography26,
14672
+ ) : /* @__PURE__ */ jsxs39(Fragment19, { children: [
14673
+ breadcrumbSegments.map((seg, i) => /* @__PURE__ */ jsxs39(React26.Fragment, { children: [
14674
+ i > 0 ? /* @__PURE__ */ jsx49(
14675
+ Typography28,
13715
14676
  {
13716
14677
  component: "span",
13717
14678
  fontSize: "15px !important",
@@ -13721,8 +14682,8 @@ function FootFallHeatMapView({
13721
14682
  children: "/"
13722
14683
  }
13723
14684
  ) : null,
13724
- /* @__PURE__ */ jsx45(
13725
- Typography26,
14685
+ /* @__PURE__ */ jsx49(
14686
+ Typography28,
13726
14687
  {
13727
14688
  component: "span",
13728
14689
  sx: {
@@ -13737,9 +14698,9 @@ function FootFallHeatMapView({
13737
14698
  }
13738
14699
  )
13739
14700
  ] }, `${seg}-${i}`)),
13740
- brandLabel ? /* @__PURE__ */ jsxs36(Fragment17, { children: [
13741
- /* @__PURE__ */ jsx45(
13742
- Typography26,
14701
+ brandLabel ? /* @__PURE__ */ jsxs39(Fragment19, { children: [
14702
+ /* @__PURE__ */ jsx49(
14703
+ Typography28,
13743
14704
  {
13744
14705
  component: "span",
13745
14706
  fontSize: "15px !important",
@@ -13748,8 +14709,8 @@ function FootFallHeatMapView({
13748
14709
  children: "/"
13749
14710
  }
13750
14711
  ),
13751
- /* @__PURE__ */ jsx45(
13752
- Typography26,
14712
+ /* @__PURE__ */ jsx49(
14713
+ Typography28,
13753
14714
  {
13754
14715
  component: "span",
13755
14716
  sx: {
@@ -13768,10 +14729,10 @@ function FootFallHeatMapView({
13768
14729
  };
13769
14730
  const is500Error = error !== null && error !== void 0 && typeof error === "object" && "status" in error && error.status === 500;
13770
14731
  if (is500Error) {
13771
- return /* @__PURE__ */ jsx45(Box31, { sx: { p: 4, textAlign: "center" }, children: /* @__PURE__ */ jsx45(Typography26, { color: "error", children: "Something went wrong (500). Try again later." }) });
14732
+ return /* @__PURE__ */ jsx49(Box33, { sx: { p: 4, textAlign: "center" }, children: /* @__PURE__ */ jsx49(Typography28, { color: "error", children: "Something went wrong (500). Try again later." }) });
13772
14733
  }
13773
14734
  if (isLoading || loading) {
13774
- return /* @__PURE__ */ jsx45(
14735
+ return /* @__PURE__ */ jsx49(
13775
14736
  Skeleton7,
13776
14737
  {
13777
14738
  variant: "rectangular",
@@ -13812,9 +14773,9 @@ function FootFallHeatMapView({
13812
14773
  "#888888",
13813
14774
  "header"
13814
14775
  );
13815
- return /* @__PURE__ */ jsxs36(Stack25, { width: "100%", children: [
13816
- /* @__PURE__ */ jsxs36(
13817
- Box31,
14776
+ return /* @__PURE__ */ jsxs39(Stack27, { width: "100%", children: [
14777
+ /* @__PURE__ */ jsxs39(
14778
+ Box33,
13818
14779
  {
13819
14780
  sx: {
13820
14781
  width: "100%",
@@ -13825,16 +14786,16 @@ function FootFallHeatMapView({
13825
14786
  gap: 1
13826
14787
  },
13827
14788
  children: [
13828
- /* @__PURE__ */ jsx45(Typography26, { variant: "h6", fontWeight: 700, children: title }),
13829
- /* @__PURE__ */ jsxs36(Stack25, { direction: "row", alignItems: "center", gap: 1, children: [
13830
- isFetching ? /* @__PURE__ */ jsx45(Typography26, { variant: "caption", color: "text.secondary", children: "Updating\u2026" }) : null,
13831
- /* @__PURE__ */ jsx45(Tooltip12, { title: infoTooltip, arrow: true, children: /* @__PURE__ */ jsx45(
14789
+ /* @__PURE__ */ jsx49(Typography28, { variant: "h6", fontWeight: 700, children: title }),
14790
+ /* @__PURE__ */ jsxs39(Stack27, { direction: "row", alignItems: "center", gap: 1, children: [
14791
+ isFetching ? /* @__PURE__ */ jsx49(Typography28, { variant: "caption", color: "text.secondary", children: "Updating\u2026" }) : null,
14792
+ /* @__PURE__ */ jsx49(Tooltip13, { title: infoTooltip, arrow: true, children: /* @__PURE__ */ jsx49(
13832
14793
  IconButton5,
13833
14794
  {
13834
14795
  size: "small",
13835
14796
  "aria-label": "Zone performance info",
13836
14797
  edge: "end",
13837
- children: /* @__PURE__ */ jsx45(
14798
+ children: /* @__PURE__ */ jsx49(
13838
14799
  Icon13,
13839
14800
  {
13840
14801
  icon: icons.headerInfo,
@@ -13849,8 +14810,8 @@ function FootFallHeatMapView({
13849
14810
  ]
13850
14811
  }
13851
14812
  ),
13852
- data?.previous?.length > 0 && headerData ? /* @__PURE__ */ jsxs36(
13853
- Stack25,
14813
+ data?.previous?.length > 0 && headerData ? /* @__PURE__ */ jsxs39(
14814
+ Stack27,
13854
14815
  {
13855
14816
  direction: "row",
13856
14817
  alignItems: "center",
@@ -13864,13 +14825,13 @@ function FootFallHeatMapView({
13864
14825
  backgroundColor: zoneBarColor
13865
14826
  },
13866
14827
  children: [
13867
- /* @__PURE__ */ jsxs36(Stack25, { direction: "row", alignItems: "center", spacing: 1, children: [
13868
- /* @__PURE__ */ jsx45(
14828
+ /* @__PURE__ */ jsxs39(Stack27, { direction: "row", alignItems: "center", spacing: 1, children: [
14829
+ /* @__PURE__ */ jsx49(
13869
14830
  Button8,
13870
14831
  {
13871
14832
  size: "small",
13872
14833
  onClick: handleClose,
13873
- startIcon: /* @__PURE__ */ jsx45(
14834
+ startIcon: /* @__PURE__ */ jsx49(
13874
14835
  Icon13,
13875
14836
  {
13876
14837
  icon: "mdi:chevron-left",
@@ -13890,10 +14851,10 @@ function FootFallHeatMapView({
13890
14851
  children: "Back"
13891
14852
  }
13892
14853
  ),
13893
- /* @__PURE__ */ jsx45(LabelTag, { textColor: zoneBarHeaderFg })
14854
+ /* @__PURE__ */ jsx49(LabelTag, { textColor: zoneBarHeaderFg })
13894
14855
  ] }),
13895
- /* @__PURE__ */ jsxs36(
13896
- Typography26,
14856
+ /* @__PURE__ */ jsxs39(
14857
+ Typography28,
13897
14858
  {
13898
14859
  variant: "h6",
13899
14860
  sx: { color: zoneBarHeaderFg, fontWeight: 700 },
@@ -13907,7 +14868,7 @@ function FootFallHeatMapView({
13907
14868
  ]
13908
14869
  }
13909
14870
  ) : null,
13910
- isDrilledIntoZone && showKpiStrip && derivedKpiStrip ? /* @__PURE__ */ jsx45(
14871
+ isDrilledIntoZone && showKpiStrip && derivedKpiStrip ? /* @__PURE__ */ jsx49(
13911
14872
  FootfallHeatMapKpiRankedBlock,
13912
14873
  {
13913
14874
  strip: derivedKpiStrip,
@@ -13924,8 +14885,8 @@ function FootFallHeatMapView({
13924
14885
  }
13925
14886
  }
13926
14887
  ) : null,
13927
- showLeafDetailsBody ? /* @__PURE__ */ jsx45(
13928
- Box31,
14888
+ showLeafDetailsBody ? /* @__PURE__ */ jsx49(
14889
+ Box33,
13929
14890
  {
13930
14891
  sx: [
13931
14892
  {
@@ -13940,7 +14901,7 @@ function FootFallHeatMapView({
13940
14901
  ]
13941
14902
  }
13942
14903
  ) : null,
13943
- showLeaf ? null : showChart ? hideTreemapForTerminalCardWithKpi ? null : hasTreemapData ? /* @__PURE__ */ jsx45(ResponsiveContainer5, { width: "100%", height: treemapHeight, children: /* @__PURE__ */ jsx45(
14904
+ showLeaf ? null : showChart ? hideTreemapForTerminalCardWithKpi ? null : hasTreemapData ? /* @__PURE__ */ jsx49(ResponsiveContainer6, { width: "100%", height: treemapHeight, children: /* @__PURE__ */ jsx49(
13944
14905
  Treemap,
13945
14906
  {
13946
14907
  data: data?.current ?? [],
@@ -13953,22 +14914,22 @@ function FootFallHeatMapView({
13953
14914
  animationDuration: 0,
13954
14915
  style: { borderRadius: "12px" }
13955
14916
  }
13956
- ) }) : /* @__PURE__ */ jsx45(
14917
+ ) }) : /* @__PURE__ */ jsx49(
13957
14918
  ChartEmptyState,
13958
14919
  {
13959
14920
  minHeight: treemapHeight,
13960
14921
  ...emptyStatePlaceholderProps
13961
14922
  }
13962
- ) : /* @__PURE__ */ jsx45(ChartEmptyState, { minHeight: 400, ...emptyStatePlaceholderProps })
14923
+ ) : /* @__PURE__ */ jsx49(ChartEmptyState, { minHeight: 400, ...emptyStatePlaceholderProps })
13963
14924
  ] });
13964
14925
  }
13965
14926
 
13966
14927
  // src/components/widgets/FootFallHeatMap/ZoneWiseKpiCards.tsx
13967
14928
  import Grid2 from "@mui/material/Grid";
13968
14929
  import Paper6 from "@mui/material/Paper";
13969
- import Stack26 from "@mui/material/Stack";
13970
- import Typography27 from "@mui/material/Typography";
13971
- import { jsx as jsx46, jsxs as jsxs37 } from "react/jsx-runtime";
14930
+ import Stack28 from "@mui/material/Stack";
14931
+ import Typography29 from "@mui/material/Typography";
14932
+ import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
13972
14933
  function metricsToRows(metrics) {
13973
14934
  return [
13974
14935
  { id: 1, title: "Overall Visits", value: metrics.overall_visits ?? 0 },
@@ -14006,7 +14967,7 @@ function metricsToRows(metrics) {
14006
14967
  }
14007
14968
  var ZoneWiseKpiCards = ({ metrics }) => {
14008
14969
  const rows = metricsToRows(metrics);
14009
- return /* @__PURE__ */ jsx46(Grid2, { container: true, spacing: 3, sx: { marginTop: "10px", paddingX: "6px" }, children: rows.map((item) => /* @__PURE__ */ jsx46(
14970
+ return /* @__PURE__ */ jsx50(Grid2, { container: true, spacing: 3, sx: { marginTop: "10px", paddingX: "6px" }, children: rows.map((item) => /* @__PURE__ */ jsx50(
14010
14971
  Grid2,
14011
14972
  {
14012
14973
  size: {
@@ -14014,7 +14975,7 @@ var ZoneWiseKpiCards = ({ metrics }) => {
14014
14975
  sm: 6,
14015
14976
  md: 3
14016
14977
  },
14017
- children: /* @__PURE__ */ jsxs37(
14978
+ children: /* @__PURE__ */ jsxs40(
14018
14979
  Paper6,
14019
14980
  {
14020
14981
  elevation: 0,
@@ -14026,8 +14987,8 @@ var ZoneWiseKpiCards = ({ metrics }) => {
14026
14987
  height: "100%"
14027
14988
  },
14028
14989
  children: [
14029
- /* @__PURE__ */ jsx46(
14030
- Typography27,
14990
+ /* @__PURE__ */ jsx50(
14991
+ Typography29,
14031
14992
  {
14032
14993
  variant: "caption",
14033
14994
  color: "text.secondary",
@@ -14035,7 +14996,7 @@ var ZoneWiseKpiCards = ({ metrics }) => {
14035
14996
  children: item.title
14036
14997
  }
14037
14998
  ),
14038
- /* @__PURE__ */ jsx46(Stack26, { mt: 1, children: /* @__PURE__ */ jsx46(Typography27, { variant: "h6", fontWeight: 700, children: item.value }) })
14999
+ /* @__PURE__ */ jsx50(Stack28, { mt: 1, children: /* @__PURE__ */ jsx50(Typography29, { variant: "h6", fontWeight: 700, children: item.value }) })
14039
15000
  ]
14040
15001
  }
14041
15002
  )
@@ -14094,41 +15055,41 @@ var peakBillingHoursMockSeriesByTabId = {
14094
15055
  };
14095
15056
 
14096
15057
  // src/components/widgets/PeakBillingHours/PeakBillingHours.tsx
14097
- import Box32 from "@mui/material/Box";
14098
- import Card4 from "@mui/material/Card";
14099
- import CardContent3 from "@mui/material/CardContent";
15058
+ import Box34 from "@mui/material/Box";
15059
+ import Card5 from "@mui/material/Card";
15060
+ import CardContent4 from "@mui/material/CardContent";
14100
15061
  import Skeleton8 from "@mui/material/Skeleton";
14101
- import Stack27 from "@mui/material/Stack";
14102
- import Typography28 from "@mui/material/Typography";
14103
- import * as React26 from "react";
15062
+ import Stack29 from "@mui/material/Stack";
15063
+ import Typography30 from "@mui/material/Typography";
15064
+ import * as React28 from "react";
14104
15065
  import {
14105
- Bar as Bar5,
14106
- BarChart as BarChart3,
14107
- CartesianGrid as CartesianGrid7,
15066
+ Bar as Bar6,
15067
+ BarChart as BarChart4,
15068
+ CartesianGrid as CartesianGrid8,
14108
15069
  LabelList as LabelList5,
14109
- ResponsiveContainer as ResponsiveContainer6,
14110
- Tooltip as Tooltip13,
14111
- XAxis as XAxis7,
14112
- YAxis as YAxis7
15070
+ ResponsiveContainer as ResponsiveContainer7,
15071
+ Tooltip as Tooltip14,
15072
+ XAxis as XAxis8,
15073
+ YAxis as YAxis8
14113
15074
  } from "recharts";
14114
15075
 
14115
15076
  // src/components/widgets/PeakBillingHours/PeakBillingHoursCustomizationContext.tsx
14116
- import * as React25 from "react";
14117
- import { jsx as jsx47 } from "react/jsx-runtime";
14118
- var PeakBillingHoursCustomizationContext = React25.createContext({});
15077
+ import * as React27 from "react";
15078
+ import { jsx as jsx51 } from "react/jsx-runtime";
15079
+ var PeakBillingHoursCustomizationContext = React27.createContext({});
14119
15080
  function PeakBillingHoursCustomizationProvider({
14120
15081
  value,
14121
15082
  children
14122
15083
  }) {
14123
- const memo = React25.useMemo(() => value, [value]);
14124
- return /* @__PURE__ */ jsx47(PeakBillingHoursCustomizationContext.Provider, { value: memo, children });
15084
+ const memo = React27.useMemo(() => value, [value]);
15085
+ return /* @__PURE__ */ jsx51(PeakBillingHoursCustomizationContext.Provider, { value: memo, children });
14125
15086
  }
14126
15087
  function usePeakBillingHoursCustomization() {
14127
- return React25.useContext(PeakBillingHoursCustomizationContext);
15088
+ return React27.useContext(PeakBillingHoursCustomizationContext);
14128
15089
  }
14129
15090
 
14130
15091
  // src/components/widgets/PeakBillingHours/PeakBillingHoursTooltip.tsx
14131
- import { jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
15092
+ import { jsx as jsx52, jsxs as jsxs41 } from "react/jsx-runtime";
14132
15093
  function formatTooltipValue2(n) {
14133
15094
  return new Intl.NumberFormat(void 0, { maximumFractionDigits: 0 }).format(
14134
15095
  Math.round(n)
@@ -14175,7 +15136,7 @@ function PeakBillingHoursTooltip(props) {
14175
15136
  },
14176
15137
  tt?.bodyStyle
14177
15138
  );
14178
- return /* @__PURE__ */ jsx48(
15139
+ return /* @__PURE__ */ jsx52(
14179
15140
  "div",
14180
15141
  {
14181
15142
  style: {
@@ -14183,7 +15144,7 @@ function PeakBillingHoursTooltip(props) {
14183
15144
  minWidth: 160,
14184
15145
  maxWidth: 280
14185
15146
  },
14186
- children: /* @__PURE__ */ jsxs38(
15147
+ children: /* @__PURE__ */ jsxs41(
14187
15148
  "div",
14188
15149
  {
14189
15150
  style: {
@@ -14194,7 +15155,7 @@ function PeakBillingHoursTooltip(props) {
14194
15155
  boxShadow: shadow
14195
15156
  },
14196
15157
  children: [
14197
- /* @__PURE__ */ jsx48(
15158
+ /* @__PURE__ */ jsx52(
14198
15159
  "div",
14199
15160
  {
14200
15161
  style: {
@@ -14205,14 +15166,14 @@ function PeakBillingHoursTooltip(props) {
14205
15166
  "aria-hidden": true
14206
15167
  }
14207
15168
  ),
14208
- /* @__PURE__ */ jsxs38("div", { style: bodyStyle, children: [
14209
- /* @__PURE__ */ jsxs38("div", { style: rowStyle, children: [
14210
- /* @__PURE__ */ jsx48("span", { style: { color: prefixCol, fontWeight: prefixFw }, children: dateP }),
14211
- /* @__PURE__ */ jsx48("span", { style: { color: valueCol, fontWeight: valueFw }, children: labelText })
15169
+ /* @__PURE__ */ jsxs41("div", { style: bodyStyle, children: [
15170
+ /* @__PURE__ */ jsxs41("div", { style: rowStyle, children: [
15171
+ /* @__PURE__ */ jsx52("span", { style: { color: prefixCol, fontWeight: prefixFw }, children: dateP }),
15172
+ /* @__PURE__ */ jsx52("span", { style: { color: valueCol, fontWeight: valueFw }, children: labelText })
14212
15173
  ] }),
14213
- /* @__PURE__ */ jsxs38("div", { style: { ...rowStyle, marginTop: gap }, children: [
14214
- /* @__PURE__ */ jsx48("span", { style: { color: prefixCol, fontWeight: prefixFw }, children: totalP }),
14215
- /* @__PURE__ */ jsx48("span", { style: { color: valueCol, fontWeight: valueFw }, children: formatTooltipValue2(num) })
15174
+ /* @__PURE__ */ jsxs41("div", { style: { ...rowStyle, marginTop: gap }, children: [
15175
+ /* @__PURE__ */ jsx52("span", { style: { color: prefixCol, fontWeight: prefixFw }, children: totalP }),
15176
+ /* @__PURE__ */ jsx52("span", { style: { color: valueCol, fontWeight: valueFw }, children: formatTooltipValue2(num) })
14216
15177
  ] })
14217
15178
  ] })
14218
15179
  ]
@@ -14223,7 +15184,7 @@ function PeakBillingHoursTooltip(props) {
14223
15184
  }
14224
15185
 
14225
15186
  // src/components/widgets/PeakBillingHours/PeakBillingHours.tsx
14226
- import { Fragment as Fragment18, jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
15187
+ import { Fragment as Fragment20, jsx as jsx53, jsxs as jsxs42 } from "react/jsx-runtime";
14227
15188
  var OLY_DEFAULT_COMPOSED_CHART_CHROME6 = {
14228
15189
  cartesianGridStroke: "#D3D6DF",
14229
15190
  xAxisLineStroke: "#7566FC",
@@ -14249,7 +15210,7 @@ function PeakBarTopLabel(props) {
14249
15210
  const cx = nx + nw / 2;
14250
15211
  const cy = ny - 6;
14251
15212
  const isHorizontal = angle === 0;
14252
- return /* @__PURE__ */ jsx49(
15213
+ return /* @__PURE__ */ jsx53(
14253
15214
  "text",
14254
15215
  {
14255
15216
  x: cx,
@@ -14263,7 +15224,7 @@ function PeakBarTopLabel(props) {
14263
15224
  }
14264
15225
  );
14265
15226
  }
14266
- function BarPlot({
15227
+ function BarPlot2({
14267
15228
  data,
14268
15229
  yAxisDomain,
14269
15230
  yAxisTicks,
@@ -14302,24 +15263,24 @@ function BarPlot({
14302
15263
  barRadius,
14303
15264
  barRadius
14304
15265
  ];
14305
- return /* @__PURE__ */ jsx49(Box32, { sx: { width: "100%", height, mt: 0.5 }, children: /* @__PURE__ */ jsx49(ResponsiveContainer6, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs39(
14306
- BarChart3,
15266
+ return /* @__PURE__ */ jsx53(Box34, { sx: { width: "100%", height, mt: 0.5 }, children: /* @__PURE__ */ jsx53(ResponsiveContainer7, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs42(
15267
+ BarChart4,
14307
15268
  {
14308
15269
  data,
14309
15270
  margin: m,
14310
15271
  barCategoryGap: categoryGap,
14311
15272
  barGap,
14312
15273
  children: [
14313
- /* @__PURE__ */ jsx49(
14314
- CartesianGrid7,
15274
+ /* @__PURE__ */ jsx53(
15275
+ CartesianGrid8,
14315
15276
  {
14316
15277
  strokeDasharray: dash,
14317
15278
  vertical: false,
14318
15279
  stroke: gridStroke
14319
15280
  }
14320
15281
  ),
14321
- /* @__PURE__ */ jsx49(
14322
- XAxis7,
15282
+ /* @__PURE__ */ jsx53(
15283
+ XAxis8,
14323
15284
  {
14324
15285
  dataKey: "label",
14325
15286
  dx: xAxisTickDx,
@@ -14332,8 +15293,8 @@ function BarPlot({
14332
15293
  height: 36
14333
15294
  }
14334
15295
  ),
14335
- /* @__PURE__ */ jsx49(
14336
- YAxis7,
15296
+ /* @__PURE__ */ jsx53(
15297
+ YAxis8,
14337
15298
  {
14338
15299
  domain: yAxisDomain,
14339
15300
  ticks: yAxisTicks,
@@ -14344,8 +15305,8 @@ function BarPlot({
14344
15305
  width: yWidth
14345
15306
  }
14346
15307
  ),
14347
- /* @__PURE__ */ jsx49(
14348
- Tooltip13,
15308
+ /* @__PURE__ */ jsx53(
15309
+ Tooltip14,
14349
15310
  {
14350
15311
  content: (tooltipProps) => {
14351
15312
  if (renderTooltip) {
@@ -14354,9 +15315,9 @@ function BarPlot({
14354
15315
  data,
14355
15316
  activeTabId
14356
15317
  });
14357
- return customTooltip == null ? null : /* @__PURE__ */ jsx49(Fragment18, { children: customTooltip });
15318
+ return customTooltip == null ? null : /* @__PURE__ */ jsx53(Fragment20, { children: customTooltip });
14358
15319
  }
14359
- return /* @__PURE__ */ jsx49(PeakBillingHoursTooltip, { ...tooltipProps });
15320
+ return /* @__PURE__ */ jsx53(PeakBillingHoursTooltip, { ...tooltipProps });
14360
15321
  },
14361
15322
  cursor: {
14362
15323
  fill: hoverBandFill,
@@ -14366,8 +15327,8 @@ function BarPlot({
14366
15327
  allowEscapeViewBox: { x: false, y: true }
14367
15328
  }
14368
15329
  ),
14369
- /* @__PURE__ */ jsx49(
14370
- Bar5,
15330
+ /* @__PURE__ */ jsx53(
15331
+ Bar6,
14371
15332
  {
14372
15333
  dataKey: "value",
14373
15334
  name: "Visits",
@@ -14375,11 +15336,11 @@ function BarPlot({
14375
15336
  radius: radiusTuple,
14376
15337
  isAnimationActive: false,
14377
15338
  maxBarSize: 48,
14378
- children: /* @__PURE__ */ jsx49(
15339
+ children: /* @__PURE__ */ jsx53(
14379
15340
  LabelList5,
14380
15341
  {
14381
15342
  dataKey: "value",
14382
- content: (props) => /* @__PURE__ */ jsx49(
15343
+ content: (props) => /* @__PURE__ */ jsx53(
14383
15344
  PeakBarTopLabel,
14384
15345
  {
14385
15346
  ...props,
@@ -14419,7 +15380,7 @@ function PeakBillingHours({
14419
15380
  emptyStatePlaceholderProps,
14420
15381
  customization
14421
15382
  }) {
14422
- const chartData = React26.useMemo(() => {
15383
+ const chartData = React28.useMemo(() => {
14423
15384
  if (seriesByTabId) {
14424
15385
  return seriesByTabId[activeTabId] ?? [];
14425
15386
  }
@@ -14454,9 +15415,9 @@ function PeakBillingHours({
14454
15415
  },
14455
15416
  customization?.header?.subtitleSx
14456
15417
  );
14457
- return /* @__PURE__ */ jsx49(PeakBillingHoursCustomizationProvider, { value: customization ?? {}, children: /* @__PURE__ */ jsx49(Card4, { elevation: customization?.rootCard?.elevation ?? 0, sx: rootSx, children: /* @__PURE__ */ jsx49(CardContent3, { children: /* @__PURE__ */ jsxs39(Stack27, { spacing: 1.75, sx: { width: "100%" }, children: [
14458
- /* @__PURE__ */ jsxs39(
14459
- Stack27,
15418
+ return /* @__PURE__ */ jsx53(PeakBillingHoursCustomizationProvider, { value: customization ?? {}, children: /* @__PURE__ */ jsx53(Card5, { elevation: customization?.rootCard?.elevation ?? 0, sx: rootSx, children: /* @__PURE__ */ jsx53(CardContent4, { children: /* @__PURE__ */ jsxs42(Stack29, { spacing: 1.75, sx: { width: "100%" }, children: [
15419
+ /* @__PURE__ */ jsxs42(
15420
+ Stack29,
14460
15421
  {
14461
15422
  direction: "row",
14462
15423
  alignItems: "flex-start",
@@ -14464,20 +15425,20 @@ function PeakBillingHours({
14464
15425
  gap: 2,
14465
15426
  flexWrap: "wrap",
14466
15427
  children: [
14467
- /* @__PURE__ */ jsxs39(Box32, { component: "div", sx: { minWidth: 0 }, children: [
14468
- /* @__PURE__ */ jsx49(Typography28, { component: "span", sx: titleSx, children: title }),
14469
- /* @__PURE__ */ jsx49(Typography28, { component: "span", sx: subtitleSx, children: subtitle })
15428
+ /* @__PURE__ */ jsxs42(Box34, { component: "div", sx: { minWidth: 0 }, children: [
15429
+ /* @__PURE__ */ jsx53(Typography30, { component: "span", sx: titleSx, children: title }),
15430
+ /* @__PURE__ */ jsx53(Typography30, { component: "span", sx: subtitleSx, children: subtitle })
14470
15431
  ] }),
14471
- /* @__PURE__ */ jsx49(
14472
- Stack27,
15432
+ /* @__PURE__ */ jsx53(
15433
+ Stack29,
14473
15434
  {
14474
15435
  direction: "row",
14475
15436
  alignItems: "center",
14476
15437
  spacing: 1.5,
14477
15438
  sx: { flexShrink: 0 },
14478
- children: resolvedInfo ? /* @__PURE__ */ jsxs39(Fragment18, { children: [
14479
- /* @__PURE__ */ jsx49(ChartWidgetHeaderSeparator, {}),
14480
- /* @__PURE__ */ jsx49(
15439
+ children: resolvedInfo ? /* @__PURE__ */ jsxs42(Fragment20, { children: [
15440
+ /* @__PURE__ */ jsx53(ChartWidgetHeaderSeparator, {}),
15441
+ /* @__PURE__ */ jsx53(
14481
15442
  ChartWidgetInfoButton,
14482
15443
  {
14483
15444
  popover: resolvedInfo,
@@ -14490,7 +15451,7 @@ function PeakBillingHours({
14490
15451
  ]
14491
15452
  }
14492
15453
  ),
14493
- /* @__PURE__ */ jsx49(
15454
+ /* @__PURE__ */ jsx53(
14494
15455
  ChartWidgetSegmentedTabs,
14495
15456
  {
14496
15457
  tabs,
@@ -14510,8 +15471,8 @@ function PeakBillingHours({
14510
15471
  inactiveTabFontWeight: st?.inactiveTabFontWeight ?? 600
14511
15472
  }
14512
15473
  ),
14513
- isLoading ? /* @__PURE__ */ jsx49(Skeleton8, { variant: "rounded", width: "100%", height: 320 }) : chartData.length > 0 ? /* @__PURE__ */ jsx49(
14514
- BarPlot,
15474
+ isLoading ? /* @__PURE__ */ jsx53(Skeleton8, { variant: "rounded", width: "100%", height: 320 }) : chartData.length > 0 ? /* @__PURE__ */ jsx53(
15475
+ BarPlot2,
14515
15476
  {
14516
15477
  data: chartData,
14517
15478
  yAxisDomain,
@@ -14525,7 +15486,7 @@ function PeakBillingHours({
14525
15486
  xAxisTickStyle,
14526
15487
  barValueLabelAngle
14527
15488
  }
14528
- ) : /* @__PURE__ */ jsx49(
15489
+ ) : /* @__PURE__ */ jsx53(
14529
15490
  ChartEmptyState,
14530
15491
  {
14531
15492
  minHeight: 320,
@@ -14536,10 +15497,10 @@ function PeakBillingHours({
14536
15497
  }
14537
15498
 
14538
15499
  // src/components/widgets/CustomerJourneyAnalysis/CustomerJourneyAnalysis.tsx
14539
- import Box33 from "@mui/material/Box";
14540
- import Stack28 from "@mui/material/Stack";
14541
- import Typography29 from "@mui/material/Typography";
14542
- import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
15500
+ import Box35 from "@mui/material/Box";
15501
+ import Stack30 from "@mui/material/Stack";
15502
+ import Typography31 from "@mui/material/Typography";
15503
+ import { jsx as jsx54, jsxs as jsxs43 } from "react/jsx-runtime";
14543
15504
  var DEFAULT_WALK_INS_BG = "#5B8DEF";
14544
15505
  var DEFAULT_TRIAL_VISITS_BG = "#F59E42";
14545
15506
  var DEFAULT_BILLING_VISITS_BG = "#6EBE7A";
@@ -14587,7 +15548,7 @@ function resolveMetricConfig(shared, perCard, props) {
14587
15548
  sx: perCard?.sx ?? shared?.sx
14588
15549
  };
14589
15550
  }
14590
- function mergeSx4(...items) {
15551
+ function mergeSx5(...items) {
14591
15552
  return items.flatMap(
14592
15553
  (item) => Array.isArray(item) ? item : item ? [item] : []
14593
15554
  );
@@ -14794,17 +15755,17 @@ function CustomerJourneyAnalysis({
14794
15755
  ...Array.isArray(metricsSx) ? metricsSx : metricsSx ? [metricsSx] : []
14795
15756
  ];
14796
15757
  const bodyDirection = { xs: "column", [bodyBreakpoint]: "row" };
14797
- return /* @__PURE__ */ jsx50(Box33, { sx: outerSx, children: /* @__PURE__ */ jsxs40(Stack28, { spacing: 2, children: [
14798
- !hideTitle && /* @__PURE__ */ jsxs40(
14799
- Stack28,
15758
+ return /* @__PURE__ */ jsx54(Box35, { sx: outerSx, children: /* @__PURE__ */ jsxs43(Stack30, { spacing: 2, children: [
15759
+ !hideTitle && /* @__PURE__ */ jsxs43(
15760
+ Stack30,
14800
15761
  {
14801
15762
  direction: "row",
14802
15763
  alignItems: "flex-start",
14803
15764
  justifyContent: "space-between",
14804
15765
  gap: 2,
14805
15766
  children: [
14806
- /* @__PURE__ */ jsx50(
14807
- Typography29,
15767
+ /* @__PURE__ */ jsx54(
15768
+ Typography31,
14808
15769
  {
14809
15770
  component: "h2",
14810
15771
  variant: "h6",
@@ -14817,8 +15778,8 @@ function CustomerJourneyAnalysis({
14817
15778
  children: title
14818
15779
  }
14819
15780
  ),
14820
- headerActions != null ? /* @__PURE__ */ jsx50(
14821
- Box33,
15781
+ headerActions != null ? /* @__PURE__ */ jsx54(
15782
+ Box35,
14822
15783
  {
14823
15784
  sx: {
14824
15785
  flexShrink: 0,
@@ -14832,9 +15793,9 @@ function CustomerJourneyAnalysis({
14832
15793
  ]
14833
15794
  }
14834
15795
  ),
14835
- /* @__PURE__ */ jsxs40(Stack28, { direction: bodyDirection, spacing: bodyGap, alignItems: "stretch", children: [
14836
- /* @__PURE__ */ jsx50(Box33, { sx: stripSx, children: /* @__PURE__ */ jsxs40(Box33, { sx: statCardsRowSx, children: [
14837
- /* @__PURE__ */ jsx50(
15796
+ /* @__PURE__ */ jsxs43(Stack30, { direction: bodyDirection, spacing: bodyGap, alignItems: "stretch", children: [
15797
+ /* @__PURE__ */ jsx54(Box35, { sx: stripSx, children: /* @__PURE__ */ jsxs43(Box35, { sx: statCardsRowSx, children: [
15798
+ /* @__PURE__ */ jsx54(
14838
15799
  JourneyStatCard,
14839
15800
  {
14840
15801
  icon: wiConfig.icon,
@@ -14855,7 +15816,7 @@ function CustomerJourneyAnalysis({
14855
15816
  borderRadius: wiConfig.borderRadius,
14856
15817
  minHeight: wiConfig.minHeight,
14857
15818
  isLoading,
14858
- sx: mergeSx4(
15819
+ sx: mergeSx5(
14859
15820
  {
14860
15821
  flex: statCardFlexes[0],
14861
15822
  borderRadius: `${statStripInnerBorderRadius} 0 0 ${statStripInnerBorderRadius}`
@@ -14864,7 +15825,7 @@ function CustomerJourneyAnalysis({
14864
15825
  )
14865
15826
  }
14866
15827
  ),
14867
- /* @__PURE__ */ jsx50(
15828
+ /* @__PURE__ */ jsx54(
14868
15829
  JourneyStatCard,
14869
15830
  {
14870
15831
  icon: tvConfig.icon,
@@ -14885,10 +15846,10 @@ function CustomerJourneyAnalysis({
14885
15846
  borderRadius: tvConfig.borderRadius,
14886
15847
  minHeight: tvConfig.minHeight,
14887
15848
  isLoading,
14888
- sx: mergeSx4({ flex: statCardFlexes[1] }, tvConfig.sx)
15849
+ sx: mergeSx5({ flex: statCardFlexes[1] }, tvConfig.sx)
14889
15850
  }
14890
15851
  ),
14891
- /* @__PURE__ */ jsx50(
15852
+ /* @__PURE__ */ jsx54(
14892
15853
  JourneyStatCard,
14893
15854
  {
14894
15855
  icon: bvConfig.icon,
@@ -14909,7 +15870,7 @@ function CustomerJourneyAnalysis({
14909
15870
  borderRadius: bvConfig.borderRadius,
14910
15871
  minHeight: bvConfig.minHeight,
14911
15872
  isLoading,
14912
- sx: mergeSx4(
15873
+ sx: mergeSx5(
14913
15874
  {
14914
15875
  flex: statCardFlexes[2],
14915
15876
  borderRadius: `0 ${statStripInnerBorderRadius} ${statStripInnerBorderRadius} 0`
@@ -14919,8 +15880,8 @@ function CustomerJourneyAnalysis({
14919
15880
  }
14920
15881
  )
14921
15882
  ] }) }),
14922
- /* @__PURE__ */ jsx50(Box33, { sx: metricsBoxSx, children: /* @__PURE__ */ jsx50(
14923
- Box33,
15883
+ /* @__PURE__ */ jsx54(Box35, { sx: metricsBoxSx, children: /* @__PURE__ */ jsx54(
15884
+ Box35,
14924
15885
  {
14925
15886
  sx: {
14926
15887
  display: "grid",
@@ -14953,8 +15914,8 @@ function CustomerJourneyAnalysis({
14953
15914
  label: avgBillingPerTrialLabel,
14954
15915
  value: formatAverage(avgBillingPerTrial)
14955
15916
  }
14956
- ].map(({ cfg, label, value }) => /* @__PURE__ */ jsx50(
14957
- Box33,
15917
+ ].map(({ cfg, label, value }) => /* @__PURE__ */ jsx54(
15918
+ Box35,
14958
15919
  {
14959
15920
  sx: {
14960
15921
  bgcolor: metricsCardBg,
@@ -14963,7 +15924,7 @@ function CustomerJourneyAnalysis({
14963
15924
  height: "100%",
14964
15925
  minWidth: 0
14965
15926
  },
14966
- children: /* @__PURE__ */ jsx50(
15927
+ children: /* @__PURE__ */ jsx54(
14967
15928
  JourneyMetricCard,
14968
15929
  {
14969
15930
  label,
@@ -14998,7 +15959,7 @@ import {
14998
15959
  createTheme,
14999
15960
  responsiveFontSizes
15000
15961
  } from "@mui/material/styles";
15001
- import { jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
15962
+ import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
15002
15963
  var lightColor = "51, 48, 60";
15003
15964
  var darkColor = "228, 230, 244";
15004
15965
  var darkPaperBg = "#2F3349";
@@ -15078,8 +16039,8 @@ var FalconThemeProvider = ({
15078
16039
  mixins: { toolbar: { minHeight: 64 } }
15079
16040
  })
15080
16041
  );
15081
- return /* @__PURE__ */ jsxs41(ThemeProvider, { theme, children: [
15082
- /* @__PURE__ */ jsx51(CssBaseline, {}),
16042
+ return /* @__PURE__ */ jsxs44(ThemeProvider, { theme, children: [
16043
+ /* @__PURE__ */ jsx55(CssBaseline, {}),
15083
16044
  children
15084
16045
  ] });
15085
16046
  };
@@ -15102,6 +16063,7 @@ export {
15102
16063
  DEFAULT_FOOTFALL_TILE_ICONS,
15103
16064
  DEFAULT_PEAK_BILLING_HOURS_INFO_POPOVER,
15104
16065
  DEFAULT_QUEUE_TIME_BREAKDOWN_INFO_POPOVER,
16066
+ DEFAULT_STORE_PERFORMANCE_BY_ASSIST_INFO_POPOVER,
15105
16067
  FalconAuditTimeline,
15106
16068
  FalconButton,
15107
16069
  FalconDIstrictFilter,
@@ -15140,6 +16102,17 @@ export {
15140
16102
  QueueTimeBreakdownStackedBar,
15141
16103
  TimePeriodFilter as QueueTimePeriodFilter,
15142
16104
  RankedBarList,
16105
+ STACKED_COMPARISON_DEFAULT_COMPARISON_COLOR,
16106
+ STACKED_COMPARISON_DEFAULT_FRAME_BORDER,
16107
+ STACKED_COMPARISON_DEFAULT_LEGEND_COMPARISON_COLOR,
16108
+ STACKED_COMPARISON_DEFAULT_LEGEND_STACK_COLOR,
16109
+ STACKED_COMPARISON_DEFAULT_STACK_COLORS,
16110
+ STORE_PERFORMANCE_DEFAULT_BUCKETS,
16111
+ STORE_PERFORMANCE_DEFAULT_DATA,
16112
+ StackedComparisonBarChart,
16113
+ StackedComparisonBarChartCustomizationProvider,
16114
+ StackedComparisonBarChartTooltip,
16115
+ StorePerformanceByAssist,
15143
16116
  TIME_PERIOD_FILTER_INFO_POPOVER,
15144
16117
  TIME_PERIOD_FILTER_INFO_POPOVER_BREAKDOWN,
15145
16118
  TimePeriodFilter,
@@ -15171,9 +16144,12 @@ export {
15171
16144
  peakBillingHoursVisitsMock,
15172
16145
  preprocessData,
15173
16146
  skipSingleBranchLevels,
16147
+ mergeCss7 as stackedComparisonMergeCss,
16148
+ mergeSx4 as stackedComparisonMergeSx,
15174
16149
  toRechartsTreemapData,
15175
16150
  useBillingCounterAnalyticsCustomization,
15176
16151
  usePeakBillingHoursCustomization,
15177
- useQueueTimeBreakdownCustomization
16152
+ useQueueTimeBreakdownCustomization,
16153
+ useStackedComparisonBarChartCustomization
15178
16154
  };
15179
16155
  //# sourceMappingURL=index.mjs.map