@juspay/blend-design-system 0.0.13 → 0.0.14-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.
@@ -225,6 +225,7 @@ export type DataTableProps<T extends Record<string, unknown>> = {
225
225
  onPageSizeChange?: (pageSize: number) => void;
226
226
  isLoading?: boolean;
227
227
  showToolbar?: boolean;
228
+ showSettings?: boolean;
228
229
  headerSlot1?: ReactNode;
229
230
  headerSlot2?: ReactNode;
230
231
  enableInlineEdit?: boolean;
@@ -136,7 +136,6 @@ export type CalendarTokenType = {
136
136
  };
137
137
  };
138
138
  datePicker: {
139
- marginTop: CSSObject['marginTop'];
140
139
  container: {
141
140
  padding: CSSObject['padding'];
142
141
  gap: CSSObject['gap'];
@@ -1,3 +1,3 @@
1
1
  import { DropdownInputProps } from './types';
2
- declare const DropdownInput: ({ label, sublabel, disabled, helpIconHintText, name, required, error, errorMessage, hintText, value, onChange, slot, size, placeholder, dropDownValue, onDropDownChange, dropDownItems, dropdownName, onDropdownOpen, onDropdownClose, onBlur, onFocus, maxDropdownHeight, ...rest }: DropdownInputProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DropdownInput: ({ label, sublabel, disabled, helpIconHintText, name, required, error, errorMessage, hintText, value, onChange, slot, size, dropdownPosition, placeholder, dropDownValue, onDropDownChange, dropDownItems, dropdownName, onDropdownOpen, onDropdownClose, onBlur, onFocus, maxDropdownHeight, ...rest }: DropdownInputProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DropdownInput;
@@ -1,5 +1,6 @@
1
1
  import { TextInputSize } from '../TextInput/types';
2
2
  import { SelectMenuGroupType } from '../../Select/types';
3
+ import { ReactNode } from 'react';
3
4
  export declare enum DropdownInputSize {
4
5
  SM = "sm",
5
6
  MD = "md",
@@ -12,6 +13,10 @@ export declare enum DropdownInputState {
12
13
  ERROR = "error",
13
14
  DISABLED = "disabled"
14
15
  }
16
+ export declare enum DropdownPosition {
17
+ LEFT = "left",
18
+ RIGHT = "right"
19
+ }
15
20
  export type DropdownInputProps = {
16
21
  label?: string;
17
22
  sublabel?: string;
@@ -21,7 +26,7 @@ export type DropdownInputProps = {
21
26
  hintText?: string;
22
27
  value?: string;
23
28
  onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
24
- slot?: React.ReactNode;
29
+ slot?: ReactNode;
25
30
  size?: TextInputSize;
26
31
  dropDownValue?: string;
27
32
  onDropDownChange?: (value: string) => void;
@@ -32,4 +37,5 @@ export type DropdownInputProps = {
32
37
  onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
33
38
  onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
34
39
  maxDropdownHeight?: number;
35
- } & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'style' | 'className' | 'onBlur' | 'onFocus'>;
40
+ dropdownPosition?: DropdownPosition;
41
+ } & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'style' | 'className' | 'onBlur' | 'onFocus' | 'slot'>;
@@ -1,3 +1,3 @@
1
1
  import { OTPProps } from './types';
2
- declare const OTPInput: ({ label, sublabel, disabled, helpIconHintText, name, required, error, errorMessage, hintText, value, onChange, form, ...rest }: OTPProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const OTPInput: ({ label, sublabel, disabled, helpIconHintText, name, required, error, errorMessage, hintText, value, length, autoFocus, onChange, form, ...rest }: OTPProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default OTPInput;
@@ -1,5 +1,6 @@
1
1
  import { CSSObject } from 'styled-components';
2
2
  import { FoundationTokenType } from '../../../tokens/theme.token';
3
+ import { BreakpointType } from '../../../breakpoints/breakPoints';
3
4
  declare enum OTPInputState {
4
5
  DEFAULT = "default",
5
6
  HOVER = "hover",
@@ -29,6 +30,8 @@ export type OTPInputTokensType = {
29
30
  };
30
31
  };
31
32
  };
32
- declare const otpInputTokens: OTPInputTokensType;
33
- export declare const getOTPInputTokens: (foundationToken: FoundationTokenType) => OTPInputTokensType;
34
- export default otpInputTokens;
33
+ export type ResponsiveOTPInputTokens = {
34
+ [key in keyof BreakpointType]: OTPInputTokensType;
35
+ };
36
+ export declare const getOTPInputTokens: (foundationToken: FoundationTokenType) => ResponsiveOTPInputTokens;
37
+ export {};
@@ -6,6 +6,8 @@ export type OTPProps = {
6
6
  errorMessage?: string;
7
7
  hintText?: string;
8
8
  value?: string;
9
+ length?: number;
10
+ autoFocus?: boolean;
9
11
  onChange?: (value: string) => void;
10
12
  form?: string;
11
- } & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'style' | 'className'>;
13
+ } & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'style' | 'className' | 'onChange'>;
@@ -8,6 +8,11 @@ export type PopoverTokenType = {
8
8
  gap: CSSObject['gap'];
9
9
  zIndex: CSSObject['zIndex'];
10
10
  borderRadius: CSSObject['borderRadius'];
11
+ padding: {
12
+ horizontal: CSSObject['paddingLeft'];
13
+ top: CSSObject['paddingTop'];
14
+ bottom: CSSObject['paddingBottom'];
15
+ };
11
16
  headerContainer: {
12
17
  heading: {
13
18
  fontSize: {
@@ -1,5 +1,13 @@
1
1
  declare const Tabs: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-tabs').TabsProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & {
2
2
  variant?: import('./types').TabsVariant;
3
3
  size?: import('./types').TabsSize;
4
+ items?: import('./types').TabItem[];
5
+ onTabClose?: (value: string) => void;
6
+ onTabAdd?: () => void;
7
+ showDropdown?: boolean;
8
+ showAddButton?: boolean;
9
+ dropdownTooltip?: string;
10
+ addButtonTooltip?: string;
11
+ maxDisplayTabs?: number;
4
12
  } & import('react').RefAttributes<HTMLDivElement>>;
5
13
  export default Tabs;
@@ -4,5 +4,15 @@ declare const TabsList: import('react').ForwardRefExoticComponent<Omit<import('@
4
4
  size?: TabsSize;
5
5
  expanded?: boolean;
6
6
  fitContent?: boolean;
7
+ items?: import('./types').TabItem[];
8
+ onTabClose?: (value: string) => void;
9
+ onTabAdd?: () => void;
10
+ showDropdown?: boolean;
11
+ showAddButton?: boolean;
12
+ dropdownTooltip?: string;
13
+ addButtonTooltip?: string;
14
+ maxDisplayTabs?: number;
15
+ onTabChange?: (value: string) => void;
16
+ activeTab?: string;
7
17
  } & import('react').RefAttributes<HTMLDivElement>>;
8
18
  export default TabsList;
@@ -6,5 +6,7 @@ declare const TabsTrigger: import('react').ForwardRefExoticComponent<Omit<import
6
6
  leftSlot?: import('react').ReactNode;
7
7
  rightSlot?: import('react').ReactNode;
8
8
  children: string | number;
9
+ closable?: boolean;
10
+ onClose?: () => void;
9
11
  } & import('react').RefAttributes<HTMLButtonElement>>;
10
12
  export default TabsTrigger;
@@ -10,15 +10,40 @@ export declare enum TabsSize {
10
10
  MD = "md",
11
11
  LG = "lg"
12
12
  }
13
+ export type TabItem = {
14
+ value: string;
15
+ label: string;
16
+ content: ReactNode;
17
+ closable?: boolean;
18
+ isDefault?: boolean;
19
+ };
13
20
  export type TabsProps = ComponentPropsWithoutRef<typeof TabsPrimitive.Root> & {
14
21
  variant?: TabsVariant;
15
22
  size?: TabsSize;
23
+ items?: TabItem[];
24
+ onTabClose?: (value: string) => void;
25
+ onTabAdd?: () => void;
26
+ showDropdown?: boolean;
27
+ showAddButton?: boolean;
28
+ dropdownTooltip?: string;
29
+ addButtonTooltip?: string;
30
+ maxDisplayTabs?: number;
16
31
  };
17
32
  export type TabsListProps = ComponentPropsWithoutRef<typeof TabsPrimitive.List> & {
18
33
  variant?: TabsVariant;
19
34
  size?: TabsSize;
20
35
  expanded?: boolean;
21
36
  fitContent?: boolean;
37
+ items?: TabItem[];
38
+ onTabClose?: (value: string) => void;
39
+ onTabAdd?: () => void;
40
+ showDropdown?: boolean;
41
+ showAddButton?: boolean;
42
+ dropdownTooltip?: string;
43
+ addButtonTooltip?: string;
44
+ maxDisplayTabs?: number;
45
+ onTabChange?: (value: string) => void;
46
+ activeTab?: string;
22
47
  };
23
48
  export type TabsTriggerProps = ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> & {
24
49
  value: string;
@@ -27,6 +52,8 @@ export type TabsTriggerProps = ComponentPropsWithoutRef<typeof TabsPrimitive.Tri
27
52
  leftSlot?: ReactNode;
28
53
  rightSlot?: ReactNode;
29
54
  children: string | number;
55
+ closable?: boolean;
56
+ onClose?: () => void;
30
57
  };
31
58
  export type TabsContentProps = ComponentPropsWithoutRef<typeof TabsPrimitive.Content>;
32
59
  export type TabsStyles = {
@@ -0,0 +1,40 @@
1
+ import { ReactNode } from 'react';
2
+ import { TabItem } from './types';
3
+ /**
4
+ * Groups tabs by content and concatenates labels for tabs with identical content.
5
+ * Maximum 3 items can be concatenated.
6
+ *
7
+ * @param tabs - Array of tab items to process
8
+ * @returns Processed tabs with concatenation applied
9
+ */
10
+ export declare const processTabsWithConcatenation: (tabs: TabItem[]) => TabItem[];
11
+ /**
12
+ * Sorts tabs to ensure default tabs appear first
13
+ */
14
+ export declare const sortTabsByDefault: (tabs: TabItem[]) => TabItem[];
15
+ /**
16
+ * Filters available items that haven't been added as tabs yet
17
+ */
18
+ export declare const getAvailableItems: <T extends {
19
+ value: string;
20
+ }>(availableItems: T[], existingTabs: TabItem[]) => T[];
21
+ /**
22
+ * Creates tab items from selected values with shared content
23
+ */
24
+ export declare const createTabsFromSelection: <T extends {
25
+ value: string;
26
+ label: string;
27
+ }>(selectedValues: string[], availableItems: T[], content: ReactNode) => TabItem[];
28
+ /**
29
+ * Prepares items for SingleSelect dropdown (all tabs including scrolled-out)
30
+ */
31
+ export declare const prepareDropdownItems: (tabs: TabItem[]) => {
32
+ items: {
33
+ value: string;
34
+ label: string;
35
+ }[];
36
+ }[];
37
+ /**
38
+ * Returns all tabs for display (no limiting - let horizontal scroll handle overflow)
39
+ */
40
+ export declare const getDisplayTabs: (tabs: TabItem[]) => TabItem[];
@@ -7,7 +7,7 @@ import { ResponsiveSwitchTokens } from '../components/Switch/switch.token';
7
7
  import { ResponsiveTextInputTokens } from '../components/Inputs/TextInput/textInput.tokens';
8
8
  import { ResponsiveNumberInputTokens } from '../components/Inputs/NumberInput/numberInput.tokens';
9
9
  import { ResponsiveAlertTokens } from '../components/Alert/alert.tokens';
10
- import { OTPInputTokensType } from '../components/Inputs/OTPInput/otpInput.tokens';
10
+ import { ResponsiveOTPInputTokens } from '../components/Inputs/OTPInput/otpInput.tokens';
11
11
  import { ResponsiveTooltipTokens } from '../components/Tooltip/tooltip.tokens';
12
12
  import { ResponsiveUnitInputTokens } from '../components/Inputs/UnitInput/unitInput.tokens';
13
13
  import { MultiValueInputTokensType } from '../components/Inputs/MultiValueInput/multiValueInput.tokens';
@@ -39,7 +39,7 @@ export type ComponentTokenType = {
39
39
  TEXT_INPUT?: ResponsiveTextInputTokens;
40
40
  NUMBER_INPUT?: ResponsiveNumberInputTokens;
41
41
  ALERT?: ResponsiveAlertTokens;
42
- OTP_INPUT?: OTPInputTokensType;
42
+ OTP_INPUT?: ResponsiveOTPInputTokens;
43
43
  TOOLTIP?: ResponsiveTooltipTokens;
44
44
  UNIT_INPUT?: ResponsiveUnitInputTokens;
45
45
  MULTI_VALUE_INPUT?: MultiValueInputTokensType;
@@ -9,7 +9,7 @@ import { ComponentTokenType } from './ThemeContext';
9
9
  import { ResponsiveTextInputTokens } from '../components/Inputs/TextInput/textInput.tokens';
10
10
  import { ResponsiveNumberInputTokens } from '../components/Inputs/NumberInput/numberInput.tokens';
11
11
  import { ResponsiveAlertTokens } from '../components/Alert/alert.tokens';
12
- import { OTPInputTokensType } from '../components/Inputs/OTPInput/otpInput.tokens';
12
+ import { ResponsiveOTPInputTokens } from '../components/Inputs/OTPInput/otpInput.tokens';
13
13
  import { ResponsiveTooltipTokens } from '../components/Tooltip/tooltip.tokens';
14
14
  import { ResponsiveUnitInputTokens } from '../components/Inputs/UnitInput/unitInput.tokens';
15
15
  import { MultiValueInputTokensType } from '../components/Inputs/MultiValueInput/multiValueInput.tokens';
@@ -29,4 +29,4 @@ import { DrawerTokensType } from '../components/Drawer/drawer.tokens';
29
29
  import { ResponsiveSingleSelectTokens } from '../components/SingleSelect/singleSelect.tokens';
30
30
  import { ResponsiveChartTokens } from '../components/Charts/chart.tokens';
31
31
  import { ResponsiveSnackbarTokens } from '../components/Snackbar/snackbar.tokens';
32
- export declare const useComponentToken: (component: keyof ComponentTokenType) => SearchInputTokensType | ResponsiveTagTokens | ResponsiveTextAreaTokens | ResponsiveTextInputTokens | ResponsiveNumberInputTokens | ResponsiveAlertTokens | ResponsiveRadioTokens | OTPInputTokensType | ResponsiveUnitInputTokens | MultiValueInputTokensType | ResponsiveSwitchTokens | ResponsiveCheckboxTokens | ResponsiveTabsTokens | ResponsiveTooltipTokens | ResponsiveDropdownInputTokens | ResponsiveButtonTokens | ModalTokensType | ResponsiveBreadcrumbTokens | PopoverTokenType | ResponsiveMenuTokensType | ResponsiveMultiSelectTokens | ResponsiveSingleSelectTokens | ResponsiveTableTokens | ResponsiveCalendarTokens | ResponsiveAccordionTokens | ResponsiveStatCardTokens | ProgressBarTokenType | DrawerTokensType | ResponsiveChartTokens | ResponsiveSnackbarTokens;
32
+ 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;