@bpfdev/oly-ui 1.0.8 → 1.0.9

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.d.mts CHANGED
@@ -1619,6 +1619,8 @@ interface FootfallByAgeGroupsProps {
1619
1619
  data: FootfallByAgeGroupsRow[];
1620
1620
  /** Stacked series bottom-to-top (first item is bottom of stack). */
1621
1621
  series: FootfallByAgeGroupsSeries[];
1622
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
1623
+ isLoading?: boolean;
1622
1624
  /** Plot height in px. Default: 430 */
1623
1625
  chartHeight?: number;
1624
1626
  /**
@@ -1677,8 +1679,12 @@ interface FootfallByAgeGroupsProps {
1677
1679
  renderTooltip?: (context: FootfallByAgeGroupsTooltipRenderContext) => ReactNode;
1678
1680
  /** Color key legend above the plot (from \`series\`). Default: \`true\`. */
1679
1681
  showLegend?: boolean;
1680
- /** Recharts \`BarChart\` margin; partial merge with defaults. */
1682
+ /** Recharts `BarChart` margin override (passed through directly when provided). */
1681
1683
  chartMargin?: FootfallByAgeGroupsChartMargin;
1684
+ /** Horizontal offset for left Y-axis tick text. Default: `-8`. */
1685
+ yAxisTickDx?: number;
1686
+ /** Inline SVG style for Y-axis tick text (typography/spacing). */
1687
+ yAxisTickStyle?: Record<string, string | number>;
1682
1688
  /** Grid / axis / bar-top label colors. */
1683
1689
  chartColors?: FootfallByAgeGroupsChartColors;
1684
1690
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
@@ -1693,9 +1699,13 @@ interface FootfallByAgeGroupsProps {
1693
1699
  * Pass `0` for horizontal — labels containing `\n` will render as multiple lines.
1694
1700
  */
1695
1701
  xAxisTickAngle?: number;
1702
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
1703
+ xAxisTickDx?: number;
1704
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
1705
+ xAxisTickStyle?: Record<string, string | number>;
1696
1706
  }
1697
1707
 
1698
- declare function FootfallByAgeGroups({ title, data, series, chartHeight, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipCategoryLabel, tooltipOverallLabel, tooltipStyles, renderTooltip, showLegend, chartMargin: chartMarginProp, chartColors: chartColorsProp, emptyStatePlaceholderProps, dimmedStackOpacity, barStackId, xAxisTickAngle, }: FootfallByAgeGroupsProps): react_jsx_runtime.JSX.Element;
1708
+ declare function FootfallByAgeGroups({ title, data, series, isLoading, chartHeight, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipCategoryLabel, tooltipOverallLabel, tooltipStyles, renderTooltip, showLegend, chartMargin: chartMarginProp, yAxisTickDx, yAxisTickStyle, chartColors: chartColorsProp, emptyStatePlaceholderProps, dimmedStackOpacity, barStackId, xAxisTickAngle, xAxisTickDx, xAxisTickStyle, }: FootfallByAgeGroupsProps): react_jsx_runtime.JSX.Element;
1699
1709
 
1700
1710
  /** Optional inline styles merged over tooltip defaults (undefined keys keep defaults). */
1701
1711
  interface FootfallByGenderTooltipStyles {
@@ -1750,6 +1760,8 @@ interface FootfallByGenderProps {
1750
1760
  /** Card heading — **centered**; \`headerActions\` (if any) sit on the right without shifting it. */
1751
1761
  title: string;
1752
1762
  data: FootfallByGenderRow[];
1763
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
1764
+ isLoading?: boolean;
1753
1765
  /** Legend / tooltip labels for the two series. Defaults: Male, Female */
1754
1766
  seriesLabels?: {
1755
1767
  male: string;
@@ -1833,8 +1845,12 @@ interface FootfallByGenderProps {
1833
1845
  * Full custom tooltip renderer. When provided, default tooltip layout is skipped.
1834
1846
  */
1835
1847
  renderTooltip?: (context: FootfallByGenderTooltipRenderContext) => ReactNode;
1836
- /** Recharts \`BarChart\` margin; partial merge after defaults (your values override). */
1848
+ /** Recharts `BarChart` margin override (passed through directly when provided). */
1837
1849
  chartMargin?: FootfallByGenderChartMargin;
1850
+ /** Horizontal offset for left Y-axis tick text. Default: `-6`. */
1851
+ yAxisTickDx?: number;
1852
+ /** Inline SVG style for Y-axis tick text (typography/spacing). */
1853
+ yAxisTickStyle?: Record<string, string | number>;
1838
1854
  /** Grid / axis / bar-top label colors. */
1839
1855
  chartColors?: FootfallByGenderChartColors;
1840
1856
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
@@ -1849,6 +1865,10 @@ interface FootfallByGenderProps {
1849
1865
  * Pass `0` for horizontal — labels containing `\n` will render as multiple lines.
1850
1866
  */
1851
1867
  xAxisTickAngle?: number;
1868
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
1869
+ xAxisTickDx?: number;
1870
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
1871
+ xAxisTickStyle?: Record<string, string | number>;
1852
1872
  /**
1853
1873
  * Rotation angle for bar-top value labels. Default: **-90** (vertical).
1854
1874
  * Pass `0` for horizontal labels.
@@ -1865,7 +1885,7 @@ interface FootfallByGenderProps {
1865
1885
  /**
1866
1886
  * Grouped bar chart: two series (male / female) per category, with hover dimming and a custom tooltip.
1867
1887
  */
1868
- declare function FootfallByGender({ title, data, seriesLabels: seriesLabelsProp, seriesColors: seriesColorsProp, chartHeight, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, barGap, showLegend, showBarValueLabels, showGrowthBadges, dimmedBarOpacity, hoveredBarOpacity, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendOverlaySx, legendItemSx, legendSwatchSx, legendLabelSx, chartViewportSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipCategoryLabel, tooltipOverallLabel, tooltipStyles, renderTooltip, chartMargin: chartMarginProp, chartColors: chartColorsProp, emptyStatePlaceholderProps, yAxisTickFormatter, xAxisTickAngle, barValueLabelAngle, growthBadgeWidth, growthBadgeHeight, growthBadgeOffsetY, }: FootfallByGenderProps): react_jsx_runtime.JSX.Element;
1888
+ declare function FootfallByGender({ title, data, isLoading, seriesLabels: seriesLabelsProp, seriesColors: seriesColorsProp, chartHeight, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, barGap, showLegend, showBarValueLabels, showGrowthBadges, dimmedBarOpacity, hoveredBarOpacity, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendOverlaySx, legendItemSx, legendSwatchSx, legendLabelSx, chartViewportSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipCategoryLabel, tooltipOverallLabel, tooltipStyles, renderTooltip, chartMargin: chartMarginProp, yAxisTickDx, yAxisTickStyle, chartColors: chartColorsProp, emptyStatePlaceholderProps, yAxisTickFormatter, xAxisTickAngle, xAxisTickDx, xAxisTickStyle, barValueLabelAngle, growthBadgeWidth, growthBadgeHeight, growthBadgeOffsetY, }: FootfallByGenderProps): react_jsx_runtime.JSX.Element;
1869
1889
 
1870
1890
  interface PasserbyConversionTooltipStyles {
1871
1891
  container?: CSSProperties;
@@ -1915,6 +1935,8 @@ interface PasserbyConversionTooltipRenderContext {
1915
1935
  interface PasserbyConversionProps {
1916
1936
  title: string;
1917
1937
  data: PasserbyConversionRow[];
1938
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
1939
+ isLoading?: boolean;
1918
1940
  /**
1919
1941
  * Optional fixed X-axis slots (e.g. full day series), used to render a stable time axis
1920
1942
  * even when `data` is partial (API hasn’t returned all slots yet).
@@ -1994,6 +2016,18 @@ interface PasserbyConversionProps {
1994
2016
  showConversionLine?: boolean;
1995
2017
  showBarValueLabels?: boolean;
1996
2018
  chartMargin?: PasserbyConversionChartMargin;
2019
+ /** Horizontal offset for left Y-axis tick text. Default: `-8`. */
2020
+ yAxisTickDx?: number;
2021
+ /** Inline SVG style for left Y-axis tick text (typography/spacing). */
2022
+ yAxisTickStyle?: Record<string, string | number>;
2023
+ /** Horizontal offset for right Y-axis tick text. Default: `0`. */
2024
+ conversionAxisTickDx?: number;
2025
+ /** Inline SVG style for right Y-axis tick text (typography/spacing). */
2026
+ conversionAxisTickStyle?: Record<string, string | number>;
2027
+ /** Alias for `conversionAxisTickDx` on the right Y-axis tick text. */
2028
+ rightYAxisTickDx?: number;
2029
+ /** Alias for `conversionAxisTickStyle` on the right Y-axis tick text. */
2030
+ rightYAxisTickStyle?: Record<string, string | number>;
1997
2031
  chartColors?: PasserbyConversionChartColors;
1998
2032
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
1999
2033
  emptyStateText?: string;
@@ -2014,9 +2048,13 @@ interface PasserbyConversionProps {
2014
2048
  * Pass `0` for horizontal — labels containing `\n` will render as multiple lines.
2015
2049
  */
2016
2050
  xAxisTickAngle?: number;
2051
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
2052
+ xAxisTickDx?: number;
2053
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
2054
+ xAxisTickStyle?: Record<string, string | number>;
2017
2055
  }
2018
2056
 
2019
- declare function PasserbyConversion({ title, data, timeSlots, fillMissingTimeSlots, chartHeight, passerbySeriesName, walkInsSeriesName, conversionSeriesName, lineType, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, barGap, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipTimeLabel, tooltipOverallLabel, tooltipWalkInsLabel, tooltipPasserbyLabel, tooltipConversionLabel, formatTooltipConversion, conversionAxisLabel, yAxisTickFormatter, conversionAxisTickFormatter, tooltipStyles, renderTooltip, showLegend, showConversionLine: showConversionLineProp, showBarValueLabels, chartMargin: chartMarginProp, chartColors: chartColorsProp, emptyStatePlaceholderProps, isChartAnimationActive, chartAnimationDuration, scrollChartToEndOnDataChange, xAxisTickAngle, }: PasserbyConversionProps): react_jsx_runtime.JSX.Element;
2057
+ declare function PasserbyConversion({ title, data, isLoading, timeSlots, fillMissingTimeSlots, chartHeight, passerbySeriesName, walkInsSeriesName, conversionSeriesName, lineType, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, barGap, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipTimeLabel, tooltipOverallLabel, tooltipWalkInsLabel, tooltipPasserbyLabel, tooltipConversionLabel, formatTooltipConversion, conversionAxisLabel, yAxisTickFormatter, conversionAxisTickFormatter, tooltipStyles, renderTooltip, showLegend, showConversionLine: showConversionLineProp, showBarValueLabels, chartMargin: chartMarginProp, yAxisTickDx, yAxisTickStyle, conversionAxisTickDx, conversionAxisTickStyle, rightYAxisTickDx, rightYAxisTickStyle, chartColors: chartColorsProp, emptyStatePlaceholderProps, isChartAnimationActive, chartAnimationDuration, scrollChartToEndOnDataChange, xAxisTickAngle, xAxisTickDx, xAxisTickStyle, }: PasserbyConversionProps): react_jsx_runtime.JSX.Element;
2020
2058
 
2021
2059
  /** Pie diameter: fixed px, or per-breakpoint (`xs` / `sm` / `md` match MUI breakpoints). */
2022
2060
  type WalkinAnalysisPieSize = number | {
@@ -2202,6 +2240,8 @@ interface WalkinTrafficTooltipRenderContext {
2202
2240
  interface WalkinTrafficProps {
2203
2241
  title: string;
2204
2242
  data: WalkinTrafficRow[];
2243
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
2244
+ isLoading?: boolean;
2205
2245
  /** Plot height in px. Default: **430**. */
2206
2246
  chartHeight?: number;
2207
2247
  /** Legend label and tooltip name for bars. Default: **Walk-ins**. */
@@ -2259,6 +2299,10 @@ interface WalkinTrafficProps {
2259
2299
  showLineInLegend?: boolean;
2260
2300
  showBarValueLabels?: boolean;
2261
2301
  chartMargin?: WalkinTrafficChartMargin;
2302
+ /** Horizontal offset for left Y-axis tick text. Default: `-8`. */
2303
+ yAxisTickDx?: number;
2304
+ /** Inline SVG style for Y-axis tick text (typography/spacing). */
2305
+ yAxisTickStyle?: Record<string, string | number>;
2262
2306
  chartColors?: WalkinTrafficChartColors;
2263
2307
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
2264
2308
  yAxisTickFormatter?: (value: number) => string;
@@ -2279,9 +2323,13 @@ interface WalkinTrafficProps {
2279
2323
  * Pass `0` for horizontal — labels containing `\n` will render as multiple lines.
2280
2324
  */
2281
2325
  xAxisTickAngle?: number;
2326
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
2327
+ xAxisTickDx?: number;
2328
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
2329
+ xAxisTickStyle?: Record<string, string | number>;
2282
2330
  }
2283
2331
 
2284
- declare function WalkinTraffic({ title, data, chartHeight, barSeriesName, lineSeriesName, lineType, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipTitle, tooltipTimeLabel, tooltipCurrentYearLabel, tooltipLastYearLabel, tooltipGrowthLabel, tooltipFooterNote: tooltipFooterNoteProp, tooltipHourLabel, tooltipStyles, renderTooltip, showLegend, showTrendLine: showTrendLineProp, showLineInLegend, showBarValueLabels, chartMargin: chartMarginProp, chartColors: chartColorsProp, emptyStatePlaceholderProps, yAxisTickFormatter, isChartAnimationActive, chartAnimationDuration, scrollChartToEndOnDataChange, xAxisTickAngle, }: WalkinTrafficProps): react_jsx_runtime.JSX.Element;
2332
+ declare function WalkinTraffic({ title, data, isLoading, chartHeight, barSeriesName, lineSeriesName, lineType, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipTitle, tooltipTimeLabel, tooltipCurrentYearLabel, tooltipLastYearLabel, tooltipGrowthLabel, tooltipFooterNote: tooltipFooterNoteProp, tooltipHourLabel, tooltipStyles, renderTooltip, showLegend, showTrendLine: showTrendLineProp, showLineInLegend, showBarValueLabels, chartMargin: chartMarginProp, yAxisTickDx, yAxisTickStyle, chartColors: chartColorsProp, emptyStatePlaceholderProps, yAxisTickFormatter, isChartAnimationActive, chartAnimationDuration, scrollChartToEndOnDataChange, xAxisTickAngle, xAxisTickDx, xAxisTickStyle, }: WalkinTrafficProps): react_jsx_runtime.JSX.Element;
2285
2333
 
2286
2334
  /** Primary line + tooltip fill (violet). */
2287
2335
  declare const BILLING_COUNTER_LINE_PRIMARY: "#7C3AED";
@@ -2892,7 +2940,24 @@ type PeakBillingHoursProps = {
2892
2940
  activeTabId: string;
2893
2941
  onTabChange: (tabId: string) => void;
2894
2942
  data?: PeakBillingHoursPoint[];
2943
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
2944
+ isLoading?: boolean;
2895
2945
  seriesByTabId?: Record<string, PeakBillingHoursPoint[]>;
2946
+ /** Recharts `BarChart` margin override (passed through directly when provided). */
2947
+ chartMargin?: {
2948
+ top?: number;
2949
+ right?: number;
2950
+ bottom?: number;
2951
+ left?: number;
2952
+ };
2953
+ /** Horizontal offset for Y-axis tick text. Default: `-6`. */
2954
+ yAxisTickDx?: number;
2955
+ /** Inline SVG style for Y-axis tick text (typography/spacing). */
2956
+ yAxisTickStyle?: Record<string, string | number>;
2957
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
2958
+ xAxisTickDx?: number;
2959
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
2960
+ xAxisTickStyle?: Record<string, string | number>;
2896
2961
  yAxisDomain?: [number, number];
2897
2962
  yAxisTicks?: number[];
2898
2963
  infoPopover?: ChartWidgetInfoPopoverContent | null;
@@ -2913,7 +2978,7 @@ declare const peakBillingHoursMockSeriesByTabId: Record<string, PeakBillingHours
2913
2978
  * Peak billing hours card: title + subtitle, info control, violet segmented tabs (intrinsic),
2914
2979
  * vertical bar chart with square tops, value labels, and panel tooltip.
2915
2980
  */
2916
- declare function PeakBillingHours({ title, subtitle, tabs, activeTabId, onTabChange, data, seriesByTabId, yAxisDomain, yAxisTicks, infoPopover, renderTooltip, emptyStatePlaceholderProps, customization, }: PeakBillingHoursProps): React$1.ReactElement;
2981
+ declare function PeakBillingHours({ title, subtitle, tabs, activeTabId, onTabChange, data, isLoading, seriesByTabId, chartMargin, yAxisTickDx, yAxisTickStyle, xAxisTickDx, xAxisTickStyle, yAxisDomain, yAxisTicks, infoPopover, renderTooltip, emptyStatePlaceholderProps, customization, }: PeakBillingHoursProps): React$1.ReactElement;
2917
2982
 
2918
2983
  type PeakBillingHoursCustomizationProviderProps = {
2919
2984
  value: PeakBillingHoursCustomization;
package/dist/index.d.ts CHANGED
@@ -1619,6 +1619,8 @@ interface FootfallByAgeGroupsProps {
1619
1619
  data: FootfallByAgeGroupsRow[];
1620
1620
  /** Stacked series bottom-to-top (first item is bottom of stack). */
1621
1621
  series: FootfallByAgeGroupsSeries[];
1622
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
1623
+ isLoading?: boolean;
1622
1624
  /** Plot height in px. Default: 430 */
1623
1625
  chartHeight?: number;
1624
1626
  /**
@@ -1677,8 +1679,12 @@ interface FootfallByAgeGroupsProps {
1677
1679
  renderTooltip?: (context: FootfallByAgeGroupsTooltipRenderContext) => ReactNode;
1678
1680
  /** Color key legend above the plot (from \`series\`). Default: \`true\`. */
1679
1681
  showLegend?: boolean;
1680
- /** Recharts \`BarChart\` margin; partial merge with defaults. */
1682
+ /** Recharts `BarChart` margin override (passed through directly when provided). */
1681
1683
  chartMargin?: FootfallByAgeGroupsChartMargin;
1684
+ /** Horizontal offset for left Y-axis tick text. Default: `-8`. */
1685
+ yAxisTickDx?: number;
1686
+ /** Inline SVG style for Y-axis tick text (typography/spacing). */
1687
+ yAxisTickStyle?: Record<string, string | number>;
1682
1688
  /** Grid / axis / bar-top label colors. */
1683
1689
  chartColors?: FootfallByAgeGroupsChartColors;
1684
1690
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
@@ -1693,9 +1699,13 @@ interface FootfallByAgeGroupsProps {
1693
1699
  * Pass `0` for horizontal — labels containing `\n` will render as multiple lines.
1694
1700
  */
1695
1701
  xAxisTickAngle?: number;
1702
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
1703
+ xAxisTickDx?: number;
1704
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
1705
+ xAxisTickStyle?: Record<string, string | number>;
1696
1706
  }
1697
1707
 
1698
- declare function FootfallByAgeGroups({ title, data, series, chartHeight, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipCategoryLabel, tooltipOverallLabel, tooltipStyles, renderTooltip, showLegend, chartMargin: chartMarginProp, chartColors: chartColorsProp, emptyStatePlaceholderProps, dimmedStackOpacity, barStackId, xAxisTickAngle, }: FootfallByAgeGroupsProps): react_jsx_runtime.JSX.Element;
1708
+ declare function FootfallByAgeGroups({ title, data, series, isLoading, chartHeight, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipCategoryLabel, tooltipOverallLabel, tooltipStyles, renderTooltip, showLegend, chartMargin: chartMarginProp, yAxisTickDx, yAxisTickStyle, chartColors: chartColorsProp, emptyStatePlaceholderProps, dimmedStackOpacity, barStackId, xAxisTickAngle, xAxisTickDx, xAxisTickStyle, }: FootfallByAgeGroupsProps): react_jsx_runtime.JSX.Element;
1699
1709
 
1700
1710
  /** Optional inline styles merged over tooltip defaults (undefined keys keep defaults). */
1701
1711
  interface FootfallByGenderTooltipStyles {
@@ -1750,6 +1760,8 @@ interface FootfallByGenderProps {
1750
1760
  /** Card heading — **centered**; \`headerActions\` (if any) sit on the right without shifting it. */
1751
1761
  title: string;
1752
1762
  data: FootfallByGenderRow[];
1763
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
1764
+ isLoading?: boolean;
1753
1765
  /** Legend / tooltip labels for the two series. Defaults: Male, Female */
1754
1766
  seriesLabels?: {
1755
1767
  male: string;
@@ -1833,8 +1845,12 @@ interface FootfallByGenderProps {
1833
1845
  * Full custom tooltip renderer. When provided, default tooltip layout is skipped.
1834
1846
  */
1835
1847
  renderTooltip?: (context: FootfallByGenderTooltipRenderContext) => ReactNode;
1836
- /** Recharts \`BarChart\` margin; partial merge after defaults (your values override). */
1848
+ /** Recharts `BarChart` margin override (passed through directly when provided). */
1837
1849
  chartMargin?: FootfallByGenderChartMargin;
1850
+ /** Horizontal offset for left Y-axis tick text. Default: `-6`. */
1851
+ yAxisTickDx?: number;
1852
+ /** Inline SVG style for Y-axis tick text (typography/spacing). */
1853
+ yAxisTickStyle?: Record<string, string | number>;
1838
1854
  /** Grid / axis / bar-top label colors. */
1839
1855
  chartColors?: FootfallByGenderChartColors;
1840
1856
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
@@ -1849,6 +1865,10 @@ interface FootfallByGenderProps {
1849
1865
  * Pass `0` for horizontal — labels containing `\n` will render as multiple lines.
1850
1866
  */
1851
1867
  xAxisTickAngle?: number;
1868
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
1869
+ xAxisTickDx?: number;
1870
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
1871
+ xAxisTickStyle?: Record<string, string | number>;
1852
1872
  /**
1853
1873
  * Rotation angle for bar-top value labels. Default: **-90** (vertical).
1854
1874
  * Pass `0` for horizontal labels.
@@ -1865,7 +1885,7 @@ interface FootfallByGenderProps {
1865
1885
  /**
1866
1886
  * Grouped bar chart: two series (male / female) per category, with hover dimming and a custom tooltip.
1867
1887
  */
1868
- declare function FootfallByGender({ title, data, seriesLabels: seriesLabelsProp, seriesColors: seriesColorsProp, chartHeight, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, barGap, showLegend, showBarValueLabels, showGrowthBadges, dimmedBarOpacity, hoveredBarOpacity, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendOverlaySx, legendItemSx, legendSwatchSx, legendLabelSx, chartViewportSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipCategoryLabel, tooltipOverallLabel, tooltipStyles, renderTooltip, chartMargin: chartMarginProp, chartColors: chartColorsProp, emptyStatePlaceholderProps, yAxisTickFormatter, xAxisTickAngle, barValueLabelAngle, growthBadgeWidth, growthBadgeHeight, growthBadgeOffsetY, }: FootfallByGenderProps): react_jsx_runtime.JSX.Element;
1888
+ declare function FootfallByGender({ title, data, isLoading, seriesLabels: seriesLabelsProp, seriesColors: seriesColorsProp, chartHeight, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, barGap, showLegend, showBarValueLabels, showGrowthBadges, dimmedBarOpacity, hoveredBarOpacity, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendOverlaySx, legendItemSx, legendSwatchSx, legendLabelSx, chartViewportSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipCategoryLabel, tooltipOverallLabel, tooltipStyles, renderTooltip, chartMargin: chartMarginProp, yAxisTickDx, yAxisTickStyle, chartColors: chartColorsProp, emptyStatePlaceholderProps, yAxisTickFormatter, xAxisTickAngle, xAxisTickDx, xAxisTickStyle, barValueLabelAngle, growthBadgeWidth, growthBadgeHeight, growthBadgeOffsetY, }: FootfallByGenderProps): react_jsx_runtime.JSX.Element;
1869
1889
 
1870
1890
  interface PasserbyConversionTooltipStyles {
1871
1891
  container?: CSSProperties;
@@ -1915,6 +1935,8 @@ interface PasserbyConversionTooltipRenderContext {
1915
1935
  interface PasserbyConversionProps {
1916
1936
  title: string;
1917
1937
  data: PasserbyConversionRow[];
1938
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
1939
+ isLoading?: boolean;
1918
1940
  /**
1919
1941
  * Optional fixed X-axis slots (e.g. full day series), used to render a stable time axis
1920
1942
  * even when `data` is partial (API hasn’t returned all slots yet).
@@ -1994,6 +2016,18 @@ interface PasserbyConversionProps {
1994
2016
  showConversionLine?: boolean;
1995
2017
  showBarValueLabels?: boolean;
1996
2018
  chartMargin?: PasserbyConversionChartMargin;
2019
+ /** Horizontal offset for left Y-axis tick text. Default: `-8`. */
2020
+ yAxisTickDx?: number;
2021
+ /** Inline SVG style for left Y-axis tick text (typography/spacing). */
2022
+ yAxisTickStyle?: Record<string, string | number>;
2023
+ /** Horizontal offset for right Y-axis tick text. Default: `0`. */
2024
+ conversionAxisTickDx?: number;
2025
+ /** Inline SVG style for right Y-axis tick text (typography/spacing). */
2026
+ conversionAxisTickStyle?: Record<string, string | number>;
2027
+ /** Alias for `conversionAxisTickDx` on the right Y-axis tick text. */
2028
+ rightYAxisTickDx?: number;
2029
+ /** Alias for `conversionAxisTickStyle` on the right Y-axis tick text. */
2030
+ rightYAxisTickStyle?: Record<string, string | number>;
1997
2031
  chartColors?: PasserbyConversionChartColors;
1998
2032
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
1999
2033
  emptyStateText?: string;
@@ -2014,9 +2048,13 @@ interface PasserbyConversionProps {
2014
2048
  * Pass `0` for horizontal — labels containing `\n` will render as multiple lines.
2015
2049
  */
2016
2050
  xAxisTickAngle?: number;
2051
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
2052
+ xAxisTickDx?: number;
2053
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
2054
+ xAxisTickStyle?: Record<string, string | number>;
2017
2055
  }
2018
2056
 
2019
- declare function PasserbyConversion({ title, data, timeSlots, fillMissingTimeSlots, chartHeight, passerbySeriesName, walkInsSeriesName, conversionSeriesName, lineType, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, barGap, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipTimeLabel, tooltipOverallLabel, tooltipWalkInsLabel, tooltipPasserbyLabel, tooltipConversionLabel, formatTooltipConversion, conversionAxisLabel, yAxisTickFormatter, conversionAxisTickFormatter, tooltipStyles, renderTooltip, showLegend, showConversionLine: showConversionLineProp, showBarValueLabels, chartMargin: chartMarginProp, chartColors: chartColorsProp, emptyStatePlaceholderProps, isChartAnimationActive, chartAnimationDuration, scrollChartToEndOnDataChange, xAxisTickAngle, }: PasserbyConversionProps): react_jsx_runtime.JSX.Element;
2057
+ declare function PasserbyConversion({ title, data, isLoading, timeSlots, fillMissingTimeSlots, chartHeight, passerbySeriesName, walkInsSeriesName, conversionSeriesName, lineType, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, barGap, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipTimeLabel, tooltipOverallLabel, tooltipWalkInsLabel, tooltipPasserbyLabel, tooltipConversionLabel, formatTooltipConversion, conversionAxisLabel, yAxisTickFormatter, conversionAxisTickFormatter, tooltipStyles, renderTooltip, showLegend, showConversionLine: showConversionLineProp, showBarValueLabels, chartMargin: chartMarginProp, yAxisTickDx, yAxisTickStyle, conversionAxisTickDx, conversionAxisTickStyle, rightYAxisTickDx, rightYAxisTickStyle, chartColors: chartColorsProp, emptyStatePlaceholderProps, isChartAnimationActive, chartAnimationDuration, scrollChartToEndOnDataChange, xAxisTickAngle, xAxisTickDx, xAxisTickStyle, }: PasserbyConversionProps): react_jsx_runtime.JSX.Element;
2020
2058
 
2021
2059
  /** Pie diameter: fixed px, or per-breakpoint (`xs` / `sm` / `md` match MUI breakpoints). */
2022
2060
  type WalkinAnalysisPieSize = number | {
@@ -2202,6 +2240,8 @@ interface WalkinTrafficTooltipRenderContext {
2202
2240
  interface WalkinTrafficProps {
2203
2241
  title: string;
2204
2242
  data: WalkinTrafficRow[];
2243
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
2244
+ isLoading?: boolean;
2205
2245
  /** Plot height in px. Default: **430**. */
2206
2246
  chartHeight?: number;
2207
2247
  /** Legend label and tooltip name for bars. Default: **Walk-ins**. */
@@ -2259,6 +2299,10 @@ interface WalkinTrafficProps {
2259
2299
  showLineInLegend?: boolean;
2260
2300
  showBarValueLabels?: boolean;
2261
2301
  chartMargin?: WalkinTrafficChartMargin;
2302
+ /** Horizontal offset for left Y-axis tick text. Default: `-8`. */
2303
+ yAxisTickDx?: number;
2304
+ /** Inline SVG style for Y-axis tick text (typography/spacing). */
2305
+ yAxisTickStyle?: Record<string, string | number>;
2262
2306
  chartColors?: WalkinTrafficChartColors;
2263
2307
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
2264
2308
  yAxisTickFormatter?: (value: number) => string;
@@ -2279,9 +2323,13 @@ interface WalkinTrafficProps {
2279
2323
  * Pass `0` for horizontal — labels containing `\n` will render as multiple lines.
2280
2324
  */
2281
2325
  xAxisTickAngle?: number;
2326
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
2327
+ xAxisTickDx?: number;
2328
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
2329
+ xAxisTickStyle?: Record<string, string | number>;
2282
2330
  }
2283
2331
 
2284
- declare function WalkinTraffic({ title, data, chartHeight, barSeriesName, lineSeriesName, lineType, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipTitle, tooltipTimeLabel, tooltipCurrentYearLabel, tooltipLastYearLabel, tooltipGrowthLabel, tooltipFooterNote: tooltipFooterNoteProp, tooltipHourLabel, tooltipStyles, renderTooltip, showLegend, showTrendLine: showTrendLineProp, showLineInLegend, showBarValueLabels, chartMargin: chartMarginProp, chartColors: chartColorsProp, emptyStatePlaceholderProps, yAxisTickFormatter, isChartAnimationActive, chartAnimationDuration, scrollChartToEndOnDataChange, xAxisTickAngle, }: WalkinTrafficProps): react_jsx_runtime.JSX.Element;
2332
+ declare function WalkinTraffic({ title, data, isLoading, chartHeight, barSeriesName, lineSeriesName, lineType, minWidthPerCategory, horizontalScroll: horizontalScrollProp, maxBarSize: maxBarSizeProp, cardMaxWidth, cardSx, titleRowSx, titleSx, dividerSx, legendRowSx, legendItemSx, legendSwatchSx, legendLabelSx, chartScrollAreaSx, stackSx, emptyStateSx, headerActions, tooltipTitle, tooltipTimeLabel, tooltipCurrentYearLabel, tooltipLastYearLabel, tooltipGrowthLabel, tooltipFooterNote: tooltipFooterNoteProp, tooltipHourLabel, tooltipStyles, renderTooltip, showLegend, showTrendLine: showTrendLineProp, showLineInLegend, showBarValueLabels, chartMargin: chartMarginProp, yAxisTickDx, yAxisTickStyle, chartColors: chartColorsProp, emptyStatePlaceholderProps, yAxisTickFormatter, isChartAnimationActive, chartAnimationDuration, scrollChartToEndOnDataChange, xAxisTickAngle, xAxisTickDx, xAxisTickStyle, }: WalkinTrafficProps): react_jsx_runtime.JSX.Element;
2285
2333
 
2286
2334
  /** Primary line + tooltip fill (violet). */
2287
2335
  declare const BILLING_COUNTER_LINE_PRIMARY: "#7C3AED";
@@ -2892,7 +2940,24 @@ type PeakBillingHoursProps = {
2892
2940
  activeTabId: string;
2893
2941
  onTabChange: (tabId: string) => void;
2894
2942
  data?: PeakBillingHoursPoint[];
2943
+ /** When `true`, render loading skeleton and suppress chart empty state. Default: `false`. */
2944
+ isLoading?: boolean;
2895
2945
  seriesByTabId?: Record<string, PeakBillingHoursPoint[]>;
2946
+ /** Recharts `BarChart` margin override (passed through directly when provided). */
2947
+ chartMargin?: {
2948
+ top?: number;
2949
+ right?: number;
2950
+ bottom?: number;
2951
+ left?: number;
2952
+ };
2953
+ /** Horizontal offset for Y-axis tick text. Default: `-6`. */
2954
+ yAxisTickDx?: number;
2955
+ /** Inline SVG style for Y-axis tick text (typography/spacing). */
2956
+ yAxisTickStyle?: Record<string, string | number>;
2957
+ /** Horizontal offset for X-axis tick text. Default: `0`. */
2958
+ xAxisTickDx?: number;
2959
+ /** Inline SVG style for X-axis tick text (typography/spacing). */
2960
+ xAxisTickStyle?: Record<string, string | number>;
2896
2961
  yAxisDomain?: [number, number];
2897
2962
  yAxisTicks?: number[];
2898
2963
  infoPopover?: ChartWidgetInfoPopoverContent | null;
@@ -2913,7 +2978,7 @@ declare const peakBillingHoursMockSeriesByTabId: Record<string, PeakBillingHours
2913
2978
  * Peak billing hours card: title + subtitle, info control, violet segmented tabs (intrinsic),
2914
2979
  * vertical bar chart with square tops, value labels, and panel tooltip.
2915
2980
  */
2916
- declare function PeakBillingHours({ title, subtitle, tabs, activeTabId, onTabChange, data, seriesByTabId, yAxisDomain, yAxisTicks, infoPopover, renderTooltip, emptyStatePlaceholderProps, customization, }: PeakBillingHoursProps): React$1.ReactElement;
2981
+ declare function PeakBillingHours({ title, subtitle, tabs, activeTabId, onTabChange, data, isLoading, seriesByTabId, chartMargin, yAxisTickDx, yAxisTickStyle, xAxisTickDx, xAxisTickStyle, yAxisDomain, yAxisTicks, infoPopover, renderTooltip, emptyStatePlaceholderProps, customization, }: PeakBillingHoursProps): React$1.ReactElement;
2917
2982
 
2918
2983
  type PeakBillingHoursCustomizationProviderProps = {
2919
2984
  value: PeakBillingHoursCustomization;