@bpfdev/oly-ui 1.0.6 → 1.0.7

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
@@ -187,6 +187,12 @@ type WidgetHeaderFilterStyleProps = Pick<FalconMultiSelectStyleProps, 'triggerBg
187
187
  popperMatchTrigger?: boolean;
188
188
  /** Merged into the dropdown `Paper` after base styles (e.g. `minWidth`, `maxWidth`, padding). */
189
189
  popperSx?: SxProps<Theme>;
190
+ /** Merged onto the trigger **label** `Typography` (first line) after built-in font styles. */
191
+ triggerLabelSx?: SxProps<Theme>;
192
+ /** Merged onto the trigger **value** `Typography` (second line, selected item) after built-in font styles. */
193
+ triggerValueSx?: SxProps<Theme>;
194
+ /** Merged onto each option row `ListItemButton` after built-in padding / height / border styles. */
195
+ listItemSx?: SxProps<Theme>;
190
196
  };
191
197
  /** Props for the widget header filter: two-line trigger + simple option list. */
192
198
  type WidgetHeaderFilterProps = {
@@ -244,7 +250,7 @@ type WidgetHeaderMultiSelectConfig = WidgetHeaderFilterProps;
244
250
  * Widget header filter styled like the provided mock:
245
251
  * two-line trigger + simple dropdown list.
246
252
  */
247
- declare const WidgetHeaderFilter: ({ label, list, groupedList, data, setData, triggerBg, triggerColor, triggerMinWidth, triggerBorderRadius, triggerSx, popperMatchTrigger, popperWidth, popperSx, popperBorderColor, popperBorderColorDark, popperBg, popperBgDark, popperColor, popperColorDark, multiSelect, searchPlaceholder, applyLabel, cancelLabel, checkboxColor, checkboxCheckedColor, groupHeaderBg, groupHeaderColor, groupHeaderFontSize, optionTextColor, searchIconColor, searchTextColor, searchPlaceholderColor, applyBg, applyColor, cancelBg, cancelColor, cancelBorderColor, }: WidgetHeaderFilterProps) => react_jsx_runtime.JSX.Element;
253
+ declare const WidgetHeaderFilter: ({ label, list, groupedList, data, setData, triggerBg, triggerColor, triggerMinWidth, triggerBorderRadius, triggerSx, popperMatchTrigger, popperWidth, popperSx, popperBorderColor, popperBorderColorDark, popperBg, popperBgDark, popperColor, popperColorDark, multiSelect, searchPlaceholder, applyLabel, cancelLabel, checkboxColor, checkboxCheckedColor, groupHeaderBg, groupHeaderColor, groupHeaderFontSize, optionTextColor, searchIconColor, searchTextColor, searchPlaceholderColor, applyBg, applyColor, cancelBg, cancelColor, cancelBorderColor, triggerLabelSx, triggerValueSx, listItemSx, }: WidgetHeaderFilterProps) => react_jsx_runtime.JSX.Element;
248
254
 
249
255
  /** One slice inside a row’s bar (e.g. age band). Widths are proportional to `value` within the row. */
250
256
  interface RankedBarListSegment {
@@ -455,6 +461,11 @@ type QueueTimeBreakdownCustomization = {
455
461
  * Prefer this over targeting `.MuiBox-root:nth-of-type(...)` on the card root.
456
462
  */
457
463
  labelRowContainerSx?: SxProps$1<Theme$1>;
464
+ /**
465
+ * Merged onto each per-segment label `Box` (flex width, padding, text-align, overflow).
466
+ * Applied after built-in flex sizing — use to adjust padding, text alignment, or min-width.
467
+ */
468
+ segmentBoxSx?: SxProps$1<Theme$1>;
458
469
  tooltip?: QueueTimeRechartsTooltipTheme;
459
470
  };
460
471
  /**
@@ -908,8 +919,22 @@ declare const FalconButton: ({ loading, disabled, children, size, variant, type,
908
919
 
909
920
  interface MonthData {
910
921
  label: string;
922
+ /** Year this bucket belongs to. Required for multi-year timelines. */
923
+ year?: number;
911
924
  count: number;
912
925
  }
926
+ interface AuditRunItem {
927
+ run_number: number;
928
+ /** Display date string shown on the card, e.g. "Apr 5" */
929
+ date: string;
930
+ /** Matches MonthData.label for the bucket this run belongs to */
931
+ month: string;
932
+ /** Matches MonthData.year when the timeline spans multiple years */
933
+ year?: number;
934
+ status: 'done' | 'scheduled';
935
+ /** Ordinal label shown on the card (e.g. "1st Audit"). Auto-computed if omitted. */
936
+ label?: string;
937
+ }
913
938
  interface FalconAuditTimelineProps {
914
939
  /**
915
940
  * Title of the component
@@ -917,16 +942,28 @@ interface FalconAuditTimelineProps {
917
942
  */
918
943
  title?: string;
919
944
  /**
920
- * Months data array
945
+ * Month buckets to display. Each entry can carry an optional `year` field to
946
+ * support timelines that span multiple calendar years.
921
947
  */
922
948
  months?: MonthData[];
923
949
  /**
924
- * Initial selected month label
950
+ * Actual audit run items. When provided the timeline cards render real data
951
+ * instead of placeholder dates.
952
+ */
953
+ auditRuns?: AuditRunItem[];
954
+ /**
955
+ * Initial selected month label (e.g. 'Mar')
925
956
  * @default 'Mar'
926
957
  */
927
958
  initialSelectedMonth?: string;
928
959
  /**
929
- * Current year to display
960
+ * When months span multiple years, supply this alongside `initialSelectedMonth`
961
+ * to disambiguate which bucket to pre-select.
962
+ */
963
+ initialSelectedYear?: number;
964
+ /**
965
+ * Fallback year shown in the year selector when no MonthData carries a `year`
966
+ * field.
930
967
  * @default 2026
931
968
  */
932
969
  year?: number;
@@ -956,9 +993,9 @@ interface FalconAuditTimelineProps {
956
993
  */
957
994
  showYearSelector?: boolean;
958
995
  /**
959
- * Callback on month change
996
+ * Callback on month change. Receives the month label and, when present, the year.
960
997
  */
961
- onMonthChange?: (month: string) => void;
998
+ onMonthChange?: (month: string, year?: number) => void;
962
999
  /**
963
1000
  * Callback for previous year click
964
1001
  */
@@ -1013,6 +1050,12 @@ interface FalconAuditTimelineProps {
1013
1050
  eventCardBg?: string;
1014
1051
  /** Text color for header */
1015
1052
  headerColor?: string;
1053
+ /**
1054
+ * Merged onto the **time-controls row** `Box` (year selector + month pill strip).
1055
+ * The default includes `overflow: 'hidden !important'` to clip overflowing month pills;
1056
+ * pass `overflow: 'auto !important'` or `overflow: 'visible !important'` here to override.
1057
+ */
1058
+ timeControlsRowSx?: SxProps$1<Theme$1>;
1016
1059
  /** Custom calendar icon */
1017
1060
  calendarIcon?: string | React__default.ReactNode;
1018
1061
  /** Custom chevron left icon */
@@ -1935,6 +1978,16 @@ interface WalkinAnalysisCustomization {
1935
1978
  titleRowStackSx?: SxProps$1<Theme$1>;
1936
1979
  /** Merged onto the card **title** `Typography` after built-in styles. */
1937
1980
  titleSx?: SxProps$1<Theme$1>;
1981
+ /**
1982
+ * Merged onto the **chart-and-legend row** `Stack` that wraps the pie `Box` and legend column.
1983
+ * Controls direction, spacing (gap between pie and legend), and alignment.
1984
+ */
1985
+ chartLegendRowSx?: SxProps$1<Theme$1>;
1986
+ /**
1987
+ * Merged onto the **pie chart wrapper** `Box` (default `flexShrink: 0, lineHeight: 0`).
1988
+ * Use to adjust pie offset, margin, or positioning within the row.
1989
+ */
1990
+ pieChartBoxSx?: SxProps$1<Theme$1>;
1938
1991
  /** Merged onto the **legend column** `Stack` (list of slice rows) after built-in styles. */
1939
1992
  legendColumnStackSx?: SxProps$1<Theme$1>;
1940
1993
  /** Merged onto each legend **label** and **count** `Typography` after built-in styles. */
@@ -2633,8 +2686,12 @@ type FootFallHeatMapKpiStripPresentation = {
2633
2686
  trackBackgroundColor?: string;
2634
2687
  /** Merged onto the outer KPI panel (container under the breadcrumb). Applied after built-in layout styles. */
2635
2688
  kpiContainerSx?: SxProps$1<Theme$1>;
2689
+ /** Merged onto the summary KPI cards row `Stack` (direction, spacing, wrap). */
2690
+ summaryRowSx?: SxProps$1<Theme$1>;
2636
2691
  /** Merged onto each summary stat card (`Paper`). */
2637
2692
  statCardSx?: SxProps$1<Theme$1>;
2693
+ /** Merged onto the ranked-bar-list items `Stack` (spacing between rows, padding). */
2694
+ rankedListStackSx?: SxProps$1<Theme$1>;
2638
2695
  /** Icon color for both stat cards. Default `#1565C0`. */
2639
2696
  statCardIconColor?: string;
2640
2697
  /** Zone / row title next to the segmented bar. */
@@ -2677,12 +2734,14 @@ type FootFallHeatMapViewProps = {
2677
2734
  */
2678
2735
  kpiStrip?: FootFallHeatMapKpiStripPresentation;
2679
2736
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
2737
+ /** Callback fired when the navigation path changes (drill-down or back) */
2738
+ onPathChange?: (path: string[]) => void;
2680
2739
  };
2681
2740
 
2682
2741
  /**
2683
2742
  * In-store zone treemap with drill-down and leaf KPIs. Pass `initialData` from your API or mocks.
2684
2743
  */
2685
- declare function FootFallHeatMapView({ initialData, isLoading, isFetching, error, title, infoTooltip, brandLabel, icons: iconsProp, iconSize: iconSizeProp, iconColor: iconColorProp, headerInfoIconSize, treemap: treemapProp, tree: treeProp, kpiStrip: kpiStripPresentation, emptyStatePlaceholderProps, }: FootFallHeatMapViewProps): react_jsx_runtime.JSX.Element;
2744
+ declare function FootFallHeatMapView({ initialData, isLoading, isFetching, error, title, infoTooltip, brandLabel, icons: iconsProp, iconSize: iconSizeProp, iconColor: iconColorProp, headerInfoIconSize, treemap: treemapProp, tree: treeProp, kpiStrip: kpiStripPresentation, emptyStatePlaceholderProps, onPathChange, }: FootFallHeatMapViewProps): react_jsx_runtime.JSX.Element;
2686
2745
 
2687
2746
  /** Zone KPI grid using MUI layout. */
2688
2747
  declare const ZoneWiseKpiCards: ({ metrics }: {
package/dist/index.d.ts CHANGED
@@ -187,6 +187,12 @@ type WidgetHeaderFilterStyleProps = Pick<FalconMultiSelectStyleProps, 'triggerBg
187
187
  popperMatchTrigger?: boolean;
188
188
  /** Merged into the dropdown `Paper` after base styles (e.g. `minWidth`, `maxWidth`, padding). */
189
189
  popperSx?: SxProps<Theme>;
190
+ /** Merged onto the trigger **label** `Typography` (first line) after built-in font styles. */
191
+ triggerLabelSx?: SxProps<Theme>;
192
+ /** Merged onto the trigger **value** `Typography` (second line, selected item) after built-in font styles. */
193
+ triggerValueSx?: SxProps<Theme>;
194
+ /** Merged onto each option row `ListItemButton` after built-in padding / height / border styles. */
195
+ listItemSx?: SxProps<Theme>;
190
196
  };
191
197
  /** Props for the widget header filter: two-line trigger + simple option list. */
192
198
  type WidgetHeaderFilterProps = {
@@ -244,7 +250,7 @@ type WidgetHeaderMultiSelectConfig = WidgetHeaderFilterProps;
244
250
  * Widget header filter styled like the provided mock:
245
251
  * two-line trigger + simple dropdown list.
246
252
  */
247
- declare const WidgetHeaderFilter: ({ label, list, groupedList, data, setData, triggerBg, triggerColor, triggerMinWidth, triggerBorderRadius, triggerSx, popperMatchTrigger, popperWidth, popperSx, popperBorderColor, popperBorderColorDark, popperBg, popperBgDark, popperColor, popperColorDark, multiSelect, searchPlaceholder, applyLabel, cancelLabel, checkboxColor, checkboxCheckedColor, groupHeaderBg, groupHeaderColor, groupHeaderFontSize, optionTextColor, searchIconColor, searchTextColor, searchPlaceholderColor, applyBg, applyColor, cancelBg, cancelColor, cancelBorderColor, }: WidgetHeaderFilterProps) => react_jsx_runtime.JSX.Element;
253
+ declare const WidgetHeaderFilter: ({ label, list, groupedList, data, setData, triggerBg, triggerColor, triggerMinWidth, triggerBorderRadius, triggerSx, popperMatchTrigger, popperWidth, popperSx, popperBorderColor, popperBorderColorDark, popperBg, popperBgDark, popperColor, popperColorDark, multiSelect, searchPlaceholder, applyLabel, cancelLabel, checkboxColor, checkboxCheckedColor, groupHeaderBg, groupHeaderColor, groupHeaderFontSize, optionTextColor, searchIconColor, searchTextColor, searchPlaceholderColor, applyBg, applyColor, cancelBg, cancelColor, cancelBorderColor, triggerLabelSx, triggerValueSx, listItemSx, }: WidgetHeaderFilterProps) => react_jsx_runtime.JSX.Element;
248
254
 
249
255
  /** One slice inside a row’s bar (e.g. age band). Widths are proportional to `value` within the row. */
250
256
  interface RankedBarListSegment {
@@ -455,6 +461,11 @@ type QueueTimeBreakdownCustomization = {
455
461
  * Prefer this over targeting `.MuiBox-root:nth-of-type(...)` on the card root.
456
462
  */
457
463
  labelRowContainerSx?: SxProps$1<Theme$1>;
464
+ /**
465
+ * Merged onto each per-segment label `Box` (flex width, padding, text-align, overflow).
466
+ * Applied after built-in flex sizing — use to adjust padding, text alignment, or min-width.
467
+ */
468
+ segmentBoxSx?: SxProps$1<Theme$1>;
458
469
  tooltip?: QueueTimeRechartsTooltipTheme;
459
470
  };
460
471
  /**
@@ -908,8 +919,22 @@ declare const FalconButton: ({ loading, disabled, children, size, variant, type,
908
919
 
909
920
  interface MonthData {
910
921
  label: string;
922
+ /** Year this bucket belongs to. Required for multi-year timelines. */
923
+ year?: number;
911
924
  count: number;
912
925
  }
926
+ interface AuditRunItem {
927
+ run_number: number;
928
+ /** Display date string shown on the card, e.g. "Apr 5" */
929
+ date: string;
930
+ /** Matches MonthData.label for the bucket this run belongs to */
931
+ month: string;
932
+ /** Matches MonthData.year when the timeline spans multiple years */
933
+ year?: number;
934
+ status: 'done' | 'scheduled';
935
+ /** Ordinal label shown on the card (e.g. "1st Audit"). Auto-computed if omitted. */
936
+ label?: string;
937
+ }
913
938
  interface FalconAuditTimelineProps {
914
939
  /**
915
940
  * Title of the component
@@ -917,16 +942,28 @@ interface FalconAuditTimelineProps {
917
942
  */
918
943
  title?: string;
919
944
  /**
920
- * Months data array
945
+ * Month buckets to display. Each entry can carry an optional `year` field to
946
+ * support timelines that span multiple calendar years.
921
947
  */
922
948
  months?: MonthData[];
923
949
  /**
924
- * Initial selected month label
950
+ * Actual audit run items. When provided the timeline cards render real data
951
+ * instead of placeholder dates.
952
+ */
953
+ auditRuns?: AuditRunItem[];
954
+ /**
955
+ * Initial selected month label (e.g. 'Mar')
925
956
  * @default 'Mar'
926
957
  */
927
958
  initialSelectedMonth?: string;
928
959
  /**
929
- * Current year to display
960
+ * When months span multiple years, supply this alongside `initialSelectedMonth`
961
+ * to disambiguate which bucket to pre-select.
962
+ */
963
+ initialSelectedYear?: number;
964
+ /**
965
+ * Fallback year shown in the year selector when no MonthData carries a `year`
966
+ * field.
930
967
  * @default 2026
931
968
  */
932
969
  year?: number;
@@ -956,9 +993,9 @@ interface FalconAuditTimelineProps {
956
993
  */
957
994
  showYearSelector?: boolean;
958
995
  /**
959
- * Callback on month change
996
+ * Callback on month change. Receives the month label and, when present, the year.
960
997
  */
961
- onMonthChange?: (month: string) => void;
998
+ onMonthChange?: (month: string, year?: number) => void;
962
999
  /**
963
1000
  * Callback for previous year click
964
1001
  */
@@ -1013,6 +1050,12 @@ interface FalconAuditTimelineProps {
1013
1050
  eventCardBg?: string;
1014
1051
  /** Text color for header */
1015
1052
  headerColor?: string;
1053
+ /**
1054
+ * Merged onto the **time-controls row** `Box` (year selector + month pill strip).
1055
+ * The default includes `overflow: 'hidden !important'` to clip overflowing month pills;
1056
+ * pass `overflow: 'auto !important'` or `overflow: 'visible !important'` here to override.
1057
+ */
1058
+ timeControlsRowSx?: SxProps$1<Theme$1>;
1016
1059
  /** Custom calendar icon */
1017
1060
  calendarIcon?: string | React__default.ReactNode;
1018
1061
  /** Custom chevron left icon */
@@ -1935,6 +1978,16 @@ interface WalkinAnalysisCustomization {
1935
1978
  titleRowStackSx?: SxProps$1<Theme$1>;
1936
1979
  /** Merged onto the card **title** `Typography` after built-in styles. */
1937
1980
  titleSx?: SxProps$1<Theme$1>;
1981
+ /**
1982
+ * Merged onto the **chart-and-legend row** `Stack` that wraps the pie `Box` and legend column.
1983
+ * Controls direction, spacing (gap between pie and legend), and alignment.
1984
+ */
1985
+ chartLegendRowSx?: SxProps$1<Theme$1>;
1986
+ /**
1987
+ * Merged onto the **pie chart wrapper** `Box` (default `flexShrink: 0, lineHeight: 0`).
1988
+ * Use to adjust pie offset, margin, or positioning within the row.
1989
+ */
1990
+ pieChartBoxSx?: SxProps$1<Theme$1>;
1938
1991
  /** Merged onto the **legend column** `Stack` (list of slice rows) after built-in styles. */
1939
1992
  legendColumnStackSx?: SxProps$1<Theme$1>;
1940
1993
  /** Merged onto each legend **label** and **count** `Typography` after built-in styles. */
@@ -2633,8 +2686,12 @@ type FootFallHeatMapKpiStripPresentation = {
2633
2686
  trackBackgroundColor?: string;
2634
2687
  /** Merged onto the outer KPI panel (container under the breadcrumb). Applied after built-in layout styles. */
2635
2688
  kpiContainerSx?: SxProps$1<Theme$1>;
2689
+ /** Merged onto the summary KPI cards row `Stack` (direction, spacing, wrap). */
2690
+ summaryRowSx?: SxProps$1<Theme$1>;
2636
2691
  /** Merged onto each summary stat card (`Paper`). */
2637
2692
  statCardSx?: SxProps$1<Theme$1>;
2693
+ /** Merged onto the ranked-bar-list items `Stack` (spacing between rows, padding). */
2694
+ rankedListStackSx?: SxProps$1<Theme$1>;
2638
2695
  /** Icon color for both stat cards. Default `#1565C0`. */
2639
2696
  statCardIconColor?: string;
2640
2697
  /** Zone / row title next to the segmented bar. */
@@ -2677,12 +2734,14 @@ type FootFallHeatMapViewProps = {
2677
2734
  */
2678
2735
  kpiStrip?: FootFallHeatMapKpiStripPresentation;
2679
2736
  emptyStatePlaceholderProps?: ChartEmptyStateProps;
2737
+ /** Callback fired when the navigation path changes (drill-down or back) */
2738
+ onPathChange?: (path: string[]) => void;
2680
2739
  };
2681
2740
 
2682
2741
  /**
2683
2742
  * In-store zone treemap with drill-down and leaf KPIs. Pass `initialData` from your API or mocks.
2684
2743
  */
2685
- declare function FootFallHeatMapView({ initialData, isLoading, isFetching, error, title, infoTooltip, brandLabel, icons: iconsProp, iconSize: iconSizeProp, iconColor: iconColorProp, headerInfoIconSize, treemap: treemapProp, tree: treeProp, kpiStrip: kpiStripPresentation, emptyStatePlaceholderProps, }: FootFallHeatMapViewProps): react_jsx_runtime.JSX.Element;
2744
+ declare function FootFallHeatMapView({ initialData, isLoading, isFetching, error, title, infoTooltip, brandLabel, icons: iconsProp, iconSize: iconSizeProp, iconColor: iconColorProp, headerInfoIconSize, treemap: treemapProp, tree: treeProp, kpiStrip: kpiStripPresentation, emptyStatePlaceholderProps, onPathChange, }: FootFallHeatMapViewProps): react_jsx_runtime.JSX.Element;
2686
2745
 
2687
2746
  /** Zone KPI grid using MUI layout. */
2688
2747
  declare const ZoneWiseKpiCards: ({ metrics }: {