@juspay/blend-design-system 0.0.19-beta → 0.0.20-beta

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.
@@ -24,9 +24,11 @@ export type StatCardAxisConfig = {
24
24
  type?: AxisType;
25
25
  tickFormatter?: (value: string | number) => string;
26
26
  dateOnly?: boolean;
27
- smart?: boolean;
28
- timeZone?: string;
29
- hour12?: boolean;
27
+ useUTC?: boolean;
28
+ formatString?: string;
29
+ timeOnly?: boolean;
30
+ showYear?: boolean;
31
+ smartDateTimeFormat?: boolean;
30
32
  };
31
33
  export type StatCardProps = {
32
34
  title: string;
@@ -1,3 +1,3 @@
1
1
  import { TooltipProps } from './types';
2
- export declare const Tooltip: ({ children: trigger, content, side, align, showArrow, size, slot, slotDirection, delayDuration, offset, open, }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const Tooltip: ({ children: trigger, content, side, align, showArrow, size, slot, slotDirection, delayDuration, offset, open, maxWidth, }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default Tooltip;
@@ -30,4 +30,5 @@ export type TooltipProps = {
30
30
  slotDirection?: TooltipSlotDirection;
31
31
  delayDuration?: number;
32
32
  offset?: number;
33
+ maxWidth?: string;
33
34
  };
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { VirtualListProps, VirtualListRef, VirtualListItem } from './types';
3
+ declare const VirtualList: React.ForwardRefExoticComponent<VirtualListProps<VirtualListItem> & React.RefAttributes<VirtualListRef>>;
4
+ export default VirtualList;
@@ -0,0 +1,3 @@
1
+ export { default as VirtualList } from './VirtualList';
2
+ export { useVirtualList } from './utils';
3
+ export type { VirtualListItem, VirtualListProps, VirtualListRef, VirtualListRenderParams, UseVirtualListParams, UseVirtualListReturn, } from './types';
@@ -0,0 +1,79 @@
1
+ import { default as React } from 'react';
2
+ export type VirtualListItem = {
3
+ id: string | number;
4
+ height?: number;
5
+ data?: Record<string, unknown>;
6
+ };
7
+ export type VirtualListRenderParams<T extends VirtualListItem> = {
8
+ item: T;
9
+ index: number;
10
+ style: React.CSSProperties;
11
+ };
12
+ export type ScrollAlignment = 'start' | 'center' | 'end' | 'auto';
13
+ export type VisibleRange = {
14
+ startIndex: number;
15
+ endIndex: number;
16
+ };
17
+ export type VirtualListProps<T extends VirtualListItem> = {
18
+ items: T[];
19
+ itemHeight?: number | ((item: T, index: number) => number);
20
+ containerHeight?: number;
21
+ overscan?: number;
22
+ onScroll?: (scrollTop: number) => void;
23
+ renderItem: (params: VirtualListRenderParams<T>) => React.ReactNode;
24
+ className?: string;
25
+ style?: React.CSSProperties;
26
+ getItemHeight?: (item: T, index: number) => number;
27
+ dynamicHeight?: boolean;
28
+ estimatedItemHeight?: number;
29
+ ssrMode?: boolean;
30
+ ariaRole?: 'listbox' | 'menu' | 'table' | 'list';
31
+ onKeyDown?: (event: React.KeyboardEvent) => void;
32
+ emptyState?: React.ReactNode;
33
+ throttleScrollMs?: number;
34
+ onEndReached?: () => void;
35
+ endReachedThreshold?: number;
36
+ isLoading?: boolean;
37
+ loadingComponent?: React.ReactNode;
38
+ hasMore?: boolean;
39
+ onRangeChange?: (range: VisibleRange) => void;
40
+ initialScrollOffset?: number;
41
+ initialScrollIndex?: number;
42
+ scrollAlignment?: ScrollAlignment;
43
+ itemsToRender?: number;
44
+ minHeight?: number;
45
+ maxHeight?: number;
46
+ maintainScrollPosition?: boolean;
47
+ };
48
+ export type VirtualListRef = {
49
+ scrollTo: (scrollTop: number, smooth?: boolean) => void;
50
+ scrollToIndex: (index: number, alignment?: ScrollAlignment, smooth?: boolean) => void;
51
+ getScrollOffset: () => number;
52
+ recalculateHeights: () => void;
53
+ getVisibleRange: () => VisibleRange;
54
+ measureItem: (index: number) => void;
55
+ };
56
+ export type UseVirtualListParams<T extends VirtualListItem> = {
57
+ items: T[];
58
+ itemHeight?: number | ((item: T, index: number) => number);
59
+ containerHeight: number;
60
+ overscan?: number;
61
+ getItemHeight?: (item: T, index: number) => number;
62
+ dynamicHeight?: boolean;
63
+ ssrMode?: boolean;
64
+ estimatedItemHeight?: number;
65
+ itemsToRender?: number;
66
+ minHeight?: number;
67
+ maxHeight?: number;
68
+ };
69
+ export type UseVirtualListReturn = {
70
+ scrollTop: number;
71
+ setScrollTop: React.Dispatch<React.SetStateAction<number>>;
72
+ totalHeight: number;
73
+ itemOffsets: number[];
74
+ itemHeights: number[];
75
+ recalculateHeights: () => void;
76
+ startIndex: number;
77
+ endIndex: number;
78
+ measureItem: (index: number, height: number) => void;
79
+ };
@@ -0,0 +1,30 @@
1
+ import { VirtualListItem, UseVirtualListParams, UseVirtualListReturn, ScrollAlignment } from './types';
2
+ export declare function throttle<T extends (...args: unknown[]) => unknown>(func: T, wait: number): (...args: Parameters<T>) => void;
3
+ export declare const isBrowser: boolean;
4
+ export declare const findEndIndexBinarySearch: (startIndex: number, viewportBottom: number, itemOffsets: number[], itemsLength: number, overscan: number) => number;
5
+ export declare const calculateFixedHeightRange: (scrollTop: number, containerHeight: number, itemHeight: number, itemsLength: number, overscan: number, itemsToRender?: number) => {
6
+ startIndex: number;
7
+ endIndex: number;
8
+ };
9
+ export declare const calculateDynamicHeightRange: (scrollTop: number, containerHeight: number, itemOffsets: number[], itemsLength: number, overscan: number, itemsToRender?: number) => {
10
+ startIndex: number;
11
+ endIndex: number;
12
+ };
13
+ export declare const calculateItemHeights: <T extends VirtualListItem>(items: T[], itemHeight?: number | ((item: T, index: number) => number), getItemHeight?: (item: T, index: number) => number, estimatedItemHeight?: number, minHeight?: number, maxHeight?: number, measuredHeights?: Map<number, number>) => number[];
14
+ export declare const constrainHeight: (height: number, minHeight?: number, maxHeight?: number) => number;
15
+ export declare const calculateItemOffsets: (itemHeights: number[]) => {
16
+ totalHeight: number;
17
+ itemOffsets: number[];
18
+ };
19
+ export declare function useVirtualList<T extends VirtualListItem>({ items, itemHeight, containerHeight, overscan, getItemHeight, ssrMode, estimatedItemHeight, itemsToRender, minHeight, maxHeight, }: UseVirtualListParams<T>): UseVirtualListReturn;
20
+ export declare const handleVirtualListKeyDown: (e: React.KeyboardEvent<HTMLDivElement>, ariaRole: string, totalHeight: number, containerRef: React.RefObject<HTMLDivElement | null>, onKeyDown?: (event: React.KeyboardEvent) => void) => void;
21
+ export declare const calculateScrollForAlignment: (index: number, alignment: ScrollAlignment, containerHeight: number, itemOffsets: number[], itemHeights: number[], itemsLength: number) => number;
22
+ export declare const scrollToPosition: (containerRef: React.RefObject<HTMLDivElement | null>, scrollTop: number, smooth?: boolean) => void;
23
+ export declare const scrollToIndex: (containerRef: React.RefObject<HTMLDivElement | null>, index: number, itemOffsets: number[], itemHeights: number[], itemsLength: number, containerHeight: number, alignment?: ScrollAlignment, smooth?: boolean) => void;
24
+ export declare const createVirtualItemStyle: (top: number, height: number, useAbsolute?: boolean) => React.CSSProperties;
25
+ export declare const setupResizeObserver: (dynamicHeight: boolean, isMounted: boolean, containerRef: React.RefObject<HTMLDivElement | null>, measureItem: (index: number, height: number) => void) => (() => void) | undefined;
26
+ export declare const checkEndReached: (scrollTop: number, totalHeight: number, containerHeight: number, threshold: number) => boolean;
27
+ export declare const usePreviousRange: (startIndex: number, endIndex: number, onRangeChange?: (range: {
28
+ startIndex: number;
29
+ endIndex: number;
30
+ }) => void) => void;
package/dist/main.d.ts CHANGED
@@ -31,6 +31,7 @@ export * from './components/ProgressBar';
31
31
  export * from './components/Drawer';
32
32
  export * from './components/Skeleton';
33
33
  export * from './components/KeyValuePair';
34
+ export * from './components/VirtualList';
34
35
  export * from './components/ButtonGroup';
35
36
  export * from './components/Button';
36
37
  export * from './context';