@juspay/blend-design-system 0.0.16-beta → 0.0.17-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.
- package/dist/components/Card/utils.d.ts +86 -0
- package/dist/components/DateRangePicker/MobileDrawerPresets.d.ts +1 -22
- package/dist/components/DateRangePicker/QuickRangeSelector.d.ts +1 -0
- package/dist/components/DateRangePicker/components/ActionButtons.d.ts +4 -0
- package/dist/components/DateRangePicker/components/DatePickerComponent.d.ts +4 -0
- package/dist/components/DateRangePicker/components/PresetItem.d.ts +4 -0
- package/dist/components/DateRangePicker/components/ScrollablePicker.d.ts +4 -0
- package/dist/components/DateRangePicker/dateRangePicker.tokens.d.ts +2 -1
- package/dist/components/DateRangePicker/types.d.ts +119 -0
- package/dist/components/DateRangePicker/utils.d.ts +143 -21
- package/dist/components/Inputs/TextInput/TextInput.d.ts +1 -1
- package/dist/components/Inputs/TextInput/types.d.ts +1 -0
- package/dist/components/Menu/MenuItem.d.ts +2 -1
- package/dist/components/Menu/SubMenu.d.ts +2 -1
- package/dist/components/Menu/types.d.ts +2 -0
- package/dist/components/MultiSelect/MultiSelect.d.ts +1 -1
- package/dist/components/MultiSelect/MultiSelectMenu.d.ts +1 -1
- package/dist/components/MultiSelect/types.d.ts +7 -6
- package/dist/components/SingleSelect/SingleSelect.d.ts +1 -1
- package/dist/components/SingleSelect/SingleSelectMenu.d.ts +4 -4
- package/dist/components/SingleSelect/types.d.ts +4 -3
- package/dist/components/Skeleton/Skeleton.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonAvatar.d.ts +5 -0
- package/dist/components/Skeleton/SkeletonButton.d.ts +13 -0
- package/dist/components/Skeleton/SkeletonCard.d.ts +5 -0
- package/dist/components/Skeleton/SkeletonCompound.d.ts +64 -0
- package/dist/components/Skeleton/hooks/useSkeletonBase.d.ts +21 -0
- package/dist/components/Skeleton/index.d.ts +10 -0
- package/dist/components/Skeleton/skeleton.tokens.d.ts +56 -0
- package/dist/components/Skeleton/types.d.ts +37 -0
- package/dist/components/StatCard/StatCard.d.ts +1 -1
- package/dist/components/StatCard/types.d.ts +1 -0
- package/dist/context/ThemeContext.d.ts +2 -0
- package/dist/context/useComponentToken.d.ts +2 -1
- package/dist/main.d.ts +2 -0
- package/dist/main.js +17292 -16091
- package/package.json +1 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { SkeletonProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Enhanced Skeleton with compound component pattern
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* <Skeleton loading={true}>
|
|
7
|
+
* <Skeleton.Avatar size="md" />
|
|
8
|
+
* <Skeleton.Text lines={2} />
|
|
9
|
+
* <Skeleton.Button />
|
|
10
|
+
* </Skeleton>
|
|
11
|
+
*
|
|
12
|
+
* Or traditional:
|
|
13
|
+
* <Skeleton.Text loading={isLoading} lines={3} />
|
|
14
|
+
*/
|
|
15
|
+
declare const SkeletonCompound: import('react').ForwardRefExoticComponent<import('./types').BaseSkeletonProps & Omit<import('../Primitives/Block/Block').BlockProps, "children"> & {
|
|
16
|
+
children?: import('react').ReactNode;
|
|
17
|
+
animate?: boolean;
|
|
18
|
+
width?: string | number;
|
|
19
|
+
height?: string | number;
|
|
20
|
+
shape?: import('./skeleton.tokens').SkeletonShape;
|
|
21
|
+
} & import('react').RefAttributes<HTMLDivElement>> & {
|
|
22
|
+
/**
|
|
23
|
+
* Avatar skeleton with circular or square shapes and multiple sizes
|
|
24
|
+
*/
|
|
25
|
+
Avatar: import('react').ForwardRefExoticComponent<import('./types').BaseSkeletonProps & Omit<import('../Primitives/Block/Block').BlockProps, "children"> & {
|
|
26
|
+
size?: import('./types').SkeletonSize;
|
|
27
|
+
shape?: "circle" | "square";
|
|
28
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
29
|
+
/**
|
|
30
|
+
* Button skeleton with perfect token mirroring and dynamic sizing
|
|
31
|
+
*/
|
|
32
|
+
Button: import('react').ForwardRefExoticComponent<import('./types').BaseSkeletonProps & Omit<import('../Primitives/Block/Block').BlockProps, "children"> & {
|
|
33
|
+
buttonType?: import('../Button').ButtonType;
|
|
34
|
+
size?: import('../Button').ButtonSize;
|
|
35
|
+
subType?: import('../Button').ButtonSubType;
|
|
36
|
+
width?: string | number;
|
|
37
|
+
fullWidth?: boolean;
|
|
38
|
+
buttonGroupPosition?: "center" | "left" | "right";
|
|
39
|
+
text?: string;
|
|
40
|
+
hasLeadingIcon?: boolean;
|
|
41
|
+
hasTrailingIcon?: boolean;
|
|
42
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
43
|
+
/**
|
|
44
|
+
* Card skeleton with default layout or custom children
|
|
45
|
+
*/
|
|
46
|
+
Card: import('react').ForwardRefExoticComponent<import('./types').BaseSkeletonProps & Omit<import('../Primitives/Block/Block').BlockProps, "children"> & {
|
|
47
|
+
children?: import('react').ReactNode;
|
|
48
|
+
padding?: string | number;
|
|
49
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
50
|
+
/**
|
|
51
|
+
* Base skeleton component for custom shapes and layouts
|
|
52
|
+
*/
|
|
53
|
+
Base: import('react').ForwardRefExoticComponent<import('./types').BaseSkeletonProps & Omit<import('../Primitives/Block/Block').BlockProps, "children"> & {
|
|
54
|
+
children?: import('react').ReactNode;
|
|
55
|
+
animate?: boolean;
|
|
56
|
+
width?: string | number;
|
|
57
|
+
height?: string | number;
|
|
58
|
+
shape?: import('./skeleton.tokens').SkeletonShape;
|
|
59
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
60
|
+
Circle: import('react').ForwardRefExoticComponent<Omit<SkeletonProps, "shape"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
61
|
+
Rectangle: import('react').ForwardRefExoticComponent<Omit<SkeletonProps, "shape"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
62
|
+
Rounded: import('react').ForwardRefExoticComponent<Omit<SkeletonProps, "shape"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
63
|
+
};
|
|
64
|
+
export default SkeletonCompound;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { SkeletonTokensType } from '../skeleton.tokens';
|
|
3
|
+
/**
|
|
4
|
+
* Shared hook for all skeleton components to eliminate code duplication
|
|
5
|
+
* Handles token fetching, loading state, and motion preferences
|
|
6
|
+
*/
|
|
7
|
+
export declare const useSkeletonBase: (loading: boolean, children?: ReactNode) => {
|
|
8
|
+
shouldRender: boolean;
|
|
9
|
+
fallback: string | number | bigint | true | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null;
|
|
10
|
+
tokens: null;
|
|
11
|
+
prefersReducedMotion: boolean;
|
|
12
|
+
} | {
|
|
13
|
+
shouldRender: boolean;
|
|
14
|
+
fallback: null;
|
|
15
|
+
tokens: SkeletonTokensType;
|
|
16
|
+
prefersReducedMotion: boolean;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Common skeleton component props validation and defaults
|
|
20
|
+
*/
|
|
21
|
+
export declare const useSkeletonDefaults: <T extends Record<string, unknown>>(props: T, defaults: Partial<T>) => T;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { default as Skeleton } from './SkeletonCompound';
|
|
2
|
+
export { default as SkeletonBase } from './Skeleton';
|
|
3
|
+
export { default as SkeletonAvatar } from './SkeletonAvatar';
|
|
4
|
+
export { default as SkeletonButton } from './SkeletonButton';
|
|
5
|
+
export { default as SkeletonCard } from './SkeletonCard';
|
|
6
|
+
export { useSkeletonBase } from './hooks/useSkeletonBase';
|
|
7
|
+
export type { SkeletonProps, SkeletonAvatarProps, SkeletonButtonProps, SkeletonCardProps, SkeletonSize, BaseSkeletonProps, SkeletonVariant, SkeletonShape, } from './types';
|
|
8
|
+
export type { SkeletonTokensType, ResponsiveSkeletonTokens, } from './skeleton.tokens';
|
|
9
|
+
export { getSkeletonTokens } from './skeleton.tokens';
|
|
10
|
+
export { default } from './SkeletonCompound';
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { CSSObject } from 'styled-components';
|
|
2
|
+
import { FoundationTokenType } from '../../tokens/theme.token';
|
|
3
|
+
import { BreakpointType } from '../../breakpoints/breakPoints';
|
|
4
|
+
export type SkeletonVariant = 'pulse' | 'wave' | 'shimmer';
|
|
5
|
+
export type SkeletonShape = 'rectangle' | 'circle' | 'rounded';
|
|
6
|
+
export type SkeletonTokensType = {
|
|
7
|
+
animation: {
|
|
8
|
+
duration: CSSObject['animationDuration'];
|
|
9
|
+
timingFunction: CSSObject['animationTimingFunction'];
|
|
10
|
+
iterationCount: CSSObject['animationIterationCount'];
|
|
11
|
+
direction: CSSObject['animationDirection'];
|
|
12
|
+
};
|
|
13
|
+
colors: {
|
|
14
|
+
base: CSSObject['backgroundColor'];
|
|
15
|
+
highlight: CSSObject['backgroundColor'];
|
|
16
|
+
shimmer: CSSObject['backgroundColor'];
|
|
17
|
+
};
|
|
18
|
+
borderRadius: {
|
|
19
|
+
rectangle: CSSObject['borderRadius'];
|
|
20
|
+
rounded: CSSObject['borderRadius'];
|
|
21
|
+
circle: CSSObject['borderRadius'];
|
|
22
|
+
};
|
|
23
|
+
spacing: {
|
|
24
|
+
gap: CSSObject['gap'];
|
|
25
|
+
margin: CSSObject['margin'];
|
|
26
|
+
};
|
|
27
|
+
sizes: {
|
|
28
|
+
text: {
|
|
29
|
+
height: CSSObject['height'];
|
|
30
|
+
minWidth: CSSObject['minWidth'];
|
|
31
|
+
};
|
|
32
|
+
avatar: {
|
|
33
|
+
sm: CSSObject['width'];
|
|
34
|
+
md: CSSObject['width'];
|
|
35
|
+
lg: CSSObject['width'];
|
|
36
|
+
};
|
|
37
|
+
button: {
|
|
38
|
+
sm: {
|
|
39
|
+
height: CSSObject['height'];
|
|
40
|
+
minWidth: CSSObject['minWidth'];
|
|
41
|
+
};
|
|
42
|
+
md: {
|
|
43
|
+
height: CSSObject['height'];
|
|
44
|
+
minWidth: CSSObject['minWidth'];
|
|
45
|
+
};
|
|
46
|
+
lg: {
|
|
47
|
+
height: CSSObject['height'];
|
|
48
|
+
minWidth: CSSObject['minWidth'];
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export type ResponsiveSkeletonTokens = {
|
|
54
|
+
[key in keyof BreakpointType]: SkeletonTokensType;
|
|
55
|
+
};
|
|
56
|
+
export declare const getSkeletonTokens: (foundationToken: FoundationTokenType) => ResponsiveSkeletonTokens;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { BlockProps } from '../Primitives/Block/Block';
|
|
3
|
+
import { SkeletonVariant, SkeletonShape } from './skeleton.tokens';
|
|
4
|
+
import { ButtonType, ButtonSize, ButtonSubType } from '../Button/types';
|
|
5
|
+
export type SkeletonSize = 'sm' | 'md' | 'lg';
|
|
6
|
+
export type BaseSkeletonProps = {
|
|
7
|
+
variant?: SkeletonVariant;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
'data-testid'?: string;
|
|
10
|
+
};
|
|
11
|
+
export type SkeletonProps = BaseSkeletonProps & Omit<BlockProps, 'children'> & {
|
|
12
|
+
children?: ReactNode;
|
|
13
|
+
animate?: boolean;
|
|
14
|
+
width?: string | number;
|
|
15
|
+
height?: string | number;
|
|
16
|
+
shape?: SkeletonShape;
|
|
17
|
+
};
|
|
18
|
+
export type SkeletonAvatarProps = BaseSkeletonProps & Omit<BlockProps, 'children'> & {
|
|
19
|
+
size?: SkeletonSize;
|
|
20
|
+
shape?: 'circle' | 'square';
|
|
21
|
+
};
|
|
22
|
+
export type SkeletonButtonProps = BaseSkeletonProps & Omit<BlockProps, 'children'> & {
|
|
23
|
+
buttonType?: ButtonType;
|
|
24
|
+
size?: ButtonSize;
|
|
25
|
+
subType?: ButtonSubType;
|
|
26
|
+
width?: string | number;
|
|
27
|
+
fullWidth?: boolean;
|
|
28
|
+
buttonGroupPosition?: 'center' | 'left' | 'right';
|
|
29
|
+
text?: string;
|
|
30
|
+
hasLeadingIcon?: boolean;
|
|
31
|
+
hasTrailingIcon?: boolean;
|
|
32
|
+
};
|
|
33
|
+
export type SkeletonCardProps = BaseSkeletonProps & Omit<BlockProps, 'children'> & {
|
|
34
|
+
children?: ReactNode;
|
|
35
|
+
padding?: string | number;
|
|
36
|
+
};
|
|
37
|
+
export { SkeletonVariant, SkeletonShape };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StatCardProps } from './types';
|
|
2
2
|
declare const StatCard: {
|
|
3
|
-
({ title, value, valueTooltip, change, subtitle, variant, chartData, progressValue, titleIcon, actionIcon, helpIconText, dropdownProps, maxWidth, xAxis, yAxis, valueFormatter, }: StatCardProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
({ title, value, valueTooltip, change, subtitle, variant, chartData, progressValue, titleIcon, actionIcon, helpIconText, dropdownProps, maxWidth, xAxis, yAxis, valueFormatter, height, }: StatCardProps): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
displayName: string;
|
|
5
5
|
};
|
|
6
6
|
export default StatCard;
|
|
@@ -33,6 +33,7 @@ import { ResponsiveCardTokens } from '../components/Card/card.tokens';
|
|
|
33
33
|
import { ResponsiveTopbarTokens } from '../components/Topbar/topbar.tokens';
|
|
34
34
|
import { ThemeType } from '../tokens';
|
|
35
35
|
import { BREAKPOINTS } from '../breakpoints/breakPoints';
|
|
36
|
+
import { ResponsiveSkeletonTokens } from '../components/Skeleton/skeleton.tokens';
|
|
36
37
|
export type ComponentTokenType = {
|
|
37
38
|
TAGS?: ResponsiveTagTokens;
|
|
38
39
|
SEARCH_INPUT?: SearchInputTokensType;
|
|
@@ -66,6 +67,7 @@ export type ComponentTokenType = {
|
|
|
66
67
|
SNACKBAR?: ResponsiveSnackbarTokens;
|
|
67
68
|
KEYVALUEPAIR?: ResponsiveKeyValuePairTokens;
|
|
68
69
|
CARD?: ResponsiveCardTokens;
|
|
70
|
+
SKELETON?: ResponsiveSkeletonTokens;
|
|
69
71
|
TOPBAR?: ResponsiveTopbarTokens;
|
|
70
72
|
};
|
|
71
73
|
type ThemeContextType = {
|
|
@@ -31,5 +31,6 @@ import { ResponsiveChartTokens } from '../components/Charts/chart.tokens';
|
|
|
31
31
|
import { ResponsiveSnackbarTokens } from '../components/Snackbar/snackbar.tokens';
|
|
32
32
|
import { ResponsiveKeyValuePairTokens } from '../components/KeyValuePair/KeyValuePair.tokens';
|
|
33
33
|
import { ResponsiveCardTokens } from '../components/Card/card.tokens';
|
|
34
|
+
import { ResponsiveSkeletonTokens } from '../components/Skeleton/skeleton.tokens';
|
|
34
35
|
import { ResponsiveTopbarTokens } from '../components/Topbar/topbar.tokens';
|
|
35
|
-
export declare const useComponentToken: (component: keyof ComponentTokenType) => SearchInputTokensType | ResponsiveTagTokens | ResponsiveTextAreaTokens | ResponsiveTextInputTokens | ResponsiveNumberInputTokens | ResponsiveAlertTokens | ResponsiveRadioTokens | ResponsiveOTPInputTokens | ResponsiveUnitInputTokens | MultiValueInputTokensType | ResponsiveSwitchTokens | ResponsiveCheckboxTokens | ResponsiveTabsTokens | ResponsiveTooltipTokens | ResponsiveDropdownInputTokens | ResponsiveButtonTokens | ModalTokensType | ResponsiveBreadcrumbTokens | PopoverTokenType | ResponsiveMenuTokensType | ResponsiveMultiSelectTokens | ResponsiveSingleSelectTokens | ResponsiveTableTokens | ResponsiveCalendarTokens | ResponsiveAccordionTokens | ResponsiveStatCardTokens | ProgressBarTokenType | DrawerTokensType | ResponsiveChartTokens | ResponsiveSnackbarTokens | ResponsiveKeyValuePairTokens | ResponsiveCardTokens | ResponsiveTopbarTokens;
|
|
36
|
+
export declare const useComponentToken: (component: keyof ComponentTokenType) => SearchInputTokensType | ResponsiveTagTokens | ResponsiveTextAreaTokens | ResponsiveTextInputTokens | ResponsiveNumberInputTokens | ResponsiveAlertTokens | ResponsiveRadioTokens | ResponsiveOTPInputTokens | ResponsiveUnitInputTokens | MultiValueInputTokensType | ResponsiveSwitchTokens | ResponsiveCheckboxTokens | ResponsiveTabsTokens | ResponsiveTooltipTokens | ResponsiveDropdownInputTokens | ResponsiveButtonTokens | ModalTokensType | ResponsiveBreadcrumbTokens | PopoverTokenType | ResponsiveMenuTokensType | ResponsiveMultiSelectTokens | ResponsiveSingleSelectTokens | ResponsiveTableTokens | ResponsiveCalendarTokens | ResponsiveAccordionTokens | ResponsiveStatCardTokens | ProgressBarTokenType | DrawerTokensType | ResponsiveChartTokens | ResponsiveSnackbarTokens | ResponsiveKeyValuePairTokens | ResponsiveCardTokens | ResponsiveSkeletonTokens | ResponsiveTopbarTokens;
|
package/dist/main.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export * from './components/SingleSelect';
|
|
|
29
29
|
export * from './components/Slider';
|
|
30
30
|
export * from './components/ProgressBar';
|
|
31
31
|
export * from './components/Drawer';
|
|
32
|
+
export * from './components/Skeleton';
|
|
33
|
+
export * from './components/KeyValuePair';
|
|
32
34
|
export * from './components/ButtonGroup';
|
|
33
35
|
export * from './components/Button';
|
|
34
36
|
export * from './context';
|