@juspay/blend-design-system 0.0.37-beta.3 → 0.0.37-beta.4

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.
Files changed (162) hide show
  1. package/dist/components/AccordionV2/index.d.ts +3 -0
  2. package/dist/components/AvatarV2/avatarV2.utils.d.ts +1 -1
  3. package/dist/components/AvatarV2/index.d.ts +1 -2
  4. package/dist/components/BreadcrumbV2/index.d.ts +10 -0
  5. package/dist/components/ButtonV2/ButtonGroupV2/index.d.ts +1 -0
  6. package/dist/components/ButtonV2/buttonV2.types.d.ts +0 -4
  7. package/dist/components/ButtonV2/index.d.ts +3 -0
  8. package/dist/components/ButtonV2/utils.d.ts +1 -1
  9. package/dist/components/ChartsV2/index.d.ts +5 -0
  10. package/dist/components/CodeEditorV2/CodeEditorV2.d.ts +1 -1
  11. package/dist/components/CodeEditorV2/codeEditorV2.tokens.d.ts +5 -5
  12. package/dist/components/CodeEditorV2/codeEditorV2.types.d.ts +5 -5
  13. package/dist/components/CodeEditorV2/index.d.ts +2 -0
  14. package/dist/components/CodeEditorV2/utils.d.ts +1 -1
  15. package/dist/components/DataTable/DataTable.d.ts +2 -1
  16. package/dist/components/DataTable/PivotTableModal/PivotPreviewPanel.d.ts +3 -0
  17. package/dist/components/DataTable/PivotTableModal/PivotTableIllustration.d.ts +7 -0
  18. package/dist/components/DataTable/PivotTableModal/index.d.ts +3 -0
  19. package/dist/components/DataTable/PivotTableModal/pivotModalStyleTokens.d.ts +123 -0
  20. package/dist/components/DataTable/PivotTableModal/types.d.ts +62 -0
  21. package/dist/components/DataTable/PivotTableModal/utils.d.ts +32 -0
  22. package/dist/components/DataTable/TableBody/types.d.ts +2 -0
  23. package/dist/components/DataTable/TableHeader/types.d.ts +1 -0
  24. package/dist/components/DataTable/index.d.ts +2 -0
  25. package/dist/components/DataTable/types.d.ts +56 -0
  26. package/dist/components/DataTable/utils.d.ts +19 -1
  27. package/dist/components/InputsV2/ChatInputV2/AttachmentDropdown.d.ts +3 -3
  28. package/dist/components/InputsV2/ChatInputV2/ChatInputTagV2.d.ts +2 -2
  29. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.d.ts +4 -4
  30. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.types.d.ts +8 -8
  31. package/dist/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.d.ts +3 -3
  32. package/dist/components/InputsV2/ChatInputV2/MobileChatInputV2.d.ts +2 -2
  33. package/dist/components/InputsV2/ChatInputV2/utils.d.ts +4 -4
  34. package/dist/components/InputsV2/SearchInputV2/utils.d.ts +39 -0
  35. package/dist/components/InputsV2/TextInputV2/TextInputV2.types.d.ts +2 -2
  36. package/dist/components/InputsV2/TextInputV2/index.d.ts +2 -0
  37. package/dist/components/InputsV2/utils/utils.d.ts +1 -1
  38. package/dist/components/KeyValuePairV2/KeyValuePairV2.d.ts +1 -1
  39. package/dist/components/KeyValuePairV2/ResponsiveText.d.ts +2 -2
  40. package/dist/components/KeyValuePairV2/index.d.ts +3 -0
  41. package/dist/components/KeyValuePairV2/keyValuePairV2.types.d.ts +2 -2
  42. package/dist/components/KeyValuePairV2/responsiveTextStyles.d.ts +3 -3
  43. package/dist/components/KeyValuePairV2/utils.d.ts +2 -2
  44. package/dist/components/MenuV2/index.d.ts +1 -0
  45. package/dist/components/MenuV2/menuV2.utils.d.ts +2 -2
  46. package/dist/components/MultiSelectV2/index.d.ts +3 -0
  47. package/dist/components/MultiSelectV2/multiSelectV2.types.d.ts +1 -1
  48. package/dist/components/MultiSelectV2/utils.d.ts +2 -2
  49. package/dist/components/ProgressBarV2/index.d.ts +3 -0
  50. package/dist/components/ProgressBarV2/utils.d.ts +1 -1
  51. package/dist/components/SelectV2/index.d.ts +1 -0
  52. package/dist/components/SelectorV2/CheckboxV2/index.d.ts +4 -0
  53. package/dist/components/SelectorV2/CheckboxV2/utils.d.ts +1 -1
  54. package/dist/components/SelectorV2/RadioV2/index.d.ts +3 -0
  55. package/dist/components/SelectorV2/SwitchV2/index.d.ts +1 -0
  56. package/dist/components/SidebarV2/index.d.ts +5 -0
  57. package/dist/components/SingleSelectV2/SingleSelectV2VirtualList.d.ts +2 -2
  58. package/dist/components/SingleSelectV2/index.d.ts +3 -0
  59. package/dist/components/SingleSelectV2/singleSelectV2.types.d.ts +2 -2
  60. package/dist/components/SingleSelectV2/utils.d.ts +6 -6
  61. package/dist/components/StatCardV2/index.d.ts +10 -1
  62. package/dist/components/StepperV2/index.d.ts +3 -1
  63. package/dist/components/StepperV2/stepperV2.types.d.ts +2 -2
  64. package/dist/components/TabsV2/index.d.ts +3 -1
  65. package/dist/components/TagV2/index.d.ts +3 -0
  66. package/dist/components/TooltipV2/index.d.ts +1 -0
  67. package/dist/components/common/index.d.ts +1 -1
  68. package/dist/main.d.ts +30 -70
  69. package/dist/main.js +87817 -85412
  70. package/dist/{node-CRWdZOVN.js → node-C2uf3sNA.js} +1303 -1300
  71. package/dist/node.js +1 -1
  72. package/dist/tokens.js +1 -1
  73. package/lib/components/AccordionV2/index.ts +3 -0
  74. package/lib/components/AvatarV2/AvatarV2.tsx +2 -2
  75. package/lib/components/AvatarV2/avatarV2.utils.ts +1 -1
  76. package/lib/components/AvatarV2/index.ts +1 -12
  77. package/lib/components/BreadcrumbV2/index.ts +10 -0
  78. package/lib/components/ButtonV2/ButtonGroupV2/index.ts +1 -0
  79. package/lib/components/ButtonV2/ButtonV2.tsx +2 -2
  80. package/lib/components/ButtonV2/LinkButton.tsx +2 -2
  81. package/lib/components/ButtonV2/buttonV2.types.ts +0 -6
  82. package/lib/components/ButtonV2/index.ts +3 -0
  83. package/lib/components/ButtonV2/utils.ts +2 -2
  84. package/lib/components/Charts/BlendChart.tsx +1 -1
  85. package/lib/components/ChartsV2/ChartV2.tsx +3 -2
  86. package/lib/components/ChartsV2/index.ts +5 -0
  87. package/lib/components/CodeEditorV2/CodeEditorV2.tsx +2 -2
  88. package/lib/components/CodeEditorV2/codeEditorV2.dark.tokens.ts +37 -25
  89. package/lib/components/CodeEditorV2/codeEditorV2.light.token.ts +37 -25
  90. package/lib/components/CodeEditorV2/codeEditorV2.tokens.ts +5 -5
  91. package/lib/components/CodeEditorV2/codeEditorV2.types.ts +5 -5
  92. package/lib/components/CodeEditorV2/index.ts +2 -0
  93. package/lib/components/CodeEditorV2/utils.ts +1 -1
  94. package/lib/components/DataTable/DataTable.tsx +148 -4
  95. package/lib/components/DataTable/PivotTableModal/PivotPreviewPanel.tsx +174 -0
  96. package/lib/components/DataTable/PivotTableModal/PivotTableIllustration.tsx +28 -0
  97. package/lib/components/DataTable/PivotTableModal/index.tsx +859 -0
  98. package/lib/components/DataTable/PivotTableModal/pivot-table-illustration.png +0 -0
  99. package/lib/components/DataTable/PivotTableModal/pivotModal.styled.ts +13 -0
  100. package/lib/components/DataTable/PivotTableModal/pivotModalStyleTokens.ts +250 -0
  101. package/lib/components/DataTable/PivotTableModal/types.ts +69 -0
  102. package/lib/components/DataTable/PivotTableModal/utils.ts +360 -0
  103. package/lib/components/DataTable/TableBody/index.tsx +16 -5
  104. package/lib/components/DataTable/TableBody/types.ts +2 -0
  105. package/lib/components/DataTable/TableHeader/index.tsx +6 -3
  106. package/lib/components/DataTable/TableHeader/types.ts +1 -0
  107. package/lib/components/DataTable/index.ts +4 -0
  108. package/lib/components/DataTable/types.ts +57 -0
  109. package/lib/components/DataTable/utils.ts +197 -0
  110. package/lib/components/InputsV2/ChatInputV2/AttachmentDropdown.tsx +3 -3
  111. package/lib/components/InputsV2/ChatInputV2/ChatInputTagV2.tsx +3 -3
  112. package/lib/components/InputsV2/ChatInputV2/ChatInputV2.types.ts +8 -8
  113. package/lib/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.tsx +7 -7
  114. package/lib/components/InputsV2/ChatInputV2/utils.ts +8 -8
  115. package/lib/components/InputsV2/SearchInputV2/utils.ts +14 -1
  116. package/lib/components/InputsV2/TextInputV2/TextInputV2.tsx +3 -3
  117. package/lib/components/InputsV2/TextInputV2/TextInputV2.types.ts +2 -2
  118. package/lib/components/InputsV2/TextInputV2/index.ts +2 -0
  119. package/lib/components/KeyValuePairV2/KeyValuePairV2.tsx +6 -2
  120. package/lib/components/KeyValuePairV2/ResponsiveText.tsx +2 -2
  121. package/lib/components/KeyValuePairV2/index.ts +3 -0
  122. package/lib/components/KeyValuePairV2/keyValuePairV2.types.ts +2 -2
  123. package/lib/components/KeyValuePairV2/responsiveTextStyles.ts +3 -3
  124. package/lib/components/KeyValuePairV2/utils.ts +3 -3
  125. package/lib/components/MenuV2/MenuV2.tsx +2 -2
  126. package/lib/components/MenuV2/MenuV2SubMenu.tsx +2 -2
  127. package/lib/components/MenuV2/index.ts +1 -0
  128. package/lib/components/MenuV2/menuV2.utils.ts +4 -4
  129. package/lib/components/MultiSelectV2/MultiSelectV2.tsx +2 -2
  130. package/lib/components/MultiSelectV2/MultiSelectV2Menu.tsx +5 -2
  131. package/lib/components/MultiSelectV2/index.ts +3 -0
  132. package/lib/components/MultiSelectV2/mobile/MobileMultiSelectV2.tsx +7 -4
  133. package/lib/components/MultiSelectV2/multiSelectV2.types.ts +1 -1
  134. package/lib/components/MultiSelectV2/utils.ts +2 -2
  135. package/lib/components/ProgressBarV2/ProgressBarV2.tsx +5 -2
  136. package/lib/components/ProgressBarV2/index.ts +3 -0
  137. package/lib/components/ProgressBarV2/utils.ts +1 -1
  138. package/lib/components/SelectV2/index.ts +1 -0
  139. package/lib/components/SelectorV2/CheckboxV2/CheckboxV2.tsx +2 -2
  140. package/lib/components/SelectorV2/CheckboxV2/index.ts +4 -0
  141. package/lib/components/SelectorV2/CheckboxV2/utils.ts +1 -1
  142. package/lib/components/SelectorV2/RadioV2/index.ts +3 -0
  143. package/lib/components/SelectorV2/SwitchV2/index.ts +1 -0
  144. package/lib/components/Sidebar/Sidebar.tsx +7 -2
  145. package/lib/components/SidebarV2/index.ts +5 -0
  146. package/lib/components/SingleSelectV2/MobileSingleSelectV2.tsx +2 -2
  147. package/lib/components/SingleSelectV2/SingleSelectV2.tsx +10 -3
  148. package/lib/components/SingleSelectV2/SingleSelectV2Menu.tsx +4 -2
  149. package/lib/components/SingleSelectV2/SingleSelectV2VirtualList.tsx +5 -2
  150. package/lib/components/SingleSelectV2/index.ts +7 -0
  151. package/lib/components/SingleSelectV2/singleSelectV2.types.ts +2 -2
  152. package/lib/components/SingleSelectV2/utils.ts +10 -10
  153. package/lib/components/StatCardV2/index.ts +13 -1
  154. package/lib/components/StepperV2/index.ts +3 -1
  155. package/lib/components/StepperV2/stepperV2.types.ts +2 -2
  156. package/lib/components/TabsV2/index.ts +13 -1
  157. package/lib/components/TagV2/index.ts +3 -0
  158. package/lib/components/TooltipV2/index.ts +1 -0
  159. package/lib/components/common/index.ts +1 -1
  160. package/lib/main.ts +34 -258
  161. package/lib/types/assets.d.ts +24 -0
  162. package/package.json +2 -1
@@ -1,4 +1,7 @@
1
1
  export { default as AccordionV2 } from './AccordionV2';
2
2
  export { AccordionV2Item } from './AccordionV2Item';
3
+ export { AccordionV2Chevron } from './AccordionV2Chevron';
4
+ export { AccordionV2TriggerContent } from './AccordionV2TriggerContent';
5
+ export * from './accordionV2.animations';
3
6
  export * from './accordionV2.tokens';
4
7
  export * from './accordionV2.types';
@@ -21,5 +21,5 @@ export declare function getStatusPositionStyles(position: AvatarV2StatusPosition
21
21
  bottom?: string;
22
22
  left?: string;
23
23
  };
24
- export declare function createKeyboardHandler(onClick: ((event: React.MouseEvent<HTMLDivElement>) => void) | undefined): ((e: React.KeyboardEvent<HTMLDivElement>) => void) | undefined;
24
+ export declare function createAvatarKeyboardHandler(onClick: ((event: React.MouseEvent<HTMLDivElement>) => void) | undefined): ((e: React.KeyboardEvent<HTMLDivElement>) => void) | undefined;
25
25
  export declare function isInteractive(onClick: ((event: React.MouseEvent<HTMLDivElement>) => void) | undefined): boolean;
@@ -1,5 +1,4 @@
1
1
  export { default as AvatarV2 } from './AvatarV2';
2
- export type { AvatarV2Props, AvatarV2SkeletonConfig, AvatarV2StatusConfig, } from './avatarV2.types';
3
- export { AvatarV2Size, AvatarV2Shape, AvatarV2Status, AvatarV2StatusPosition, AvatarV2Variant, } from './avatarV2.types';
2
+ export * from './avatarV2.types';
4
3
  export * from './avatarV2.tokens';
5
4
  export * from './avatarV2.utils';
@@ -1,3 +1,13 @@
1
1
  export { default as BreadcrumbV2 } from './BreadcrumbV2';
2
+ export { default as BreadcrumbV2Icon } from './BreadcrumbV2Icon';
3
+ export { default as BreadcrumbV2Item } from './BreadcrumbV2Item';
4
+ export { default as BreadcrumbV2List } from './BreadcrumbV2List';
5
+ export type { BreadcrumbV2ListProps } from './BreadcrumbV2List';
6
+ export { default as BreadcrumbV2OverflowMenu } from './BreadcrumbV2OverflowMenu';
7
+ export type { BreadcrumbV2OverflowMenuProps } from './BreadcrumbV2OverflowMenu';
8
+ export { default as BreadcrumbV2Page } from './BreadcrumbV2Page';
9
+ export type { BreadcrumbV2PageProps } from './BreadcrumbV2Page';
10
+ export { default as BreadcrumbV2Separator } from './BreadcrumbV2Separator';
2
11
  export * from './breadcrumbV2.tokens';
3
12
  export * from './breadcrumbV2.types';
13
+ export * from './utils';
@@ -1,3 +1,4 @@
1
1
  export { default as ButtonGroupV2 } from './ButtonGroupV2';
2
2
  export type { ButtonGroupV2Props, ButtonGroupPosition, } from './buttonGroupV2.types';
3
3
  export * from './buttonGroupV2.types';
4
+ export * from './utils';
@@ -28,10 +28,6 @@ export declare enum PaddingDirection {
28
28
  BOTTOM = "bottom",
29
29
  LEFT = "left"
30
30
  }
31
- export declare const ButtonType: typeof ButtonV2Type;
32
- export declare const ButtonSize: typeof ButtonV2Size;
33
- export declare const ButtonSubType: typeof ButtonV2SubType;
34
- export declare const ButtonState: typeof ButtonV2State;
35
31
  export type ButtonSlot = {
36
32
  slot: React.ReactNode;
37
33
  maxHeight?: string | number;
@@ -1,4 +1,5 @@
1
1
  export { default as ButtonV2 } from './ButtonV2';
2
+ export { renderButtonContent } from './ButtonV2';
2
3
  export { default as IconButton } from './IconButton';
3
4
  export { default as LinkButton } from './LinkButton';
4
5
  export { ButtonGroupV2 } from './ButtonGroupV2';
@@ -6,3 +7,5 @@ export type { ButtonV2Props, LinkButtonProps } from './buttonV2.types';
6
7
  export type { IconButtonProps } from './IconButton';
7
8
  export type { ButtonGroupV2Props, ButtonGroupPosition } from './ButtonGroupV2';
8
9
  export * from './buttonV2.types';
10
+ export * from './buttonV2.tokens';
11
+ export * from './utils';
@@ -1,7 +1,7 @@
1
1
  import { MouseEvent } from 'react';
2
2
  import { ButtonV2Size, ButtonV2State, ButtonV2SubType, ButtonV2Type } from './buttonV2.types';
3
3
  import { ButtonV2TokensType } from './buttonV2.tokens';
4
- export declare function getBorderRadius(size: ButtonV2Size, buttonType: ButtonV2Type, subType: ButtonV2SubType, buttonGroupPosition: 'center' | 'left' | 'right' | undefined, tokens: ButtonV2TokensType): string;
4
+ export declare function getButtonV2BorderRadius(size: ButtonV2Size, buttonType: ButtonV2Type, subType: ButtonV2SubType, buttonGroupPosition: 'center' | 'left' | 'right' | undefined, tokens: ButtonV2TokensType): string;
5
5
  export declare function createButtonClickHandler(onClick?: (event?: MouseEvent<HTMLButtonElement>) => void, isSkeleton?: boolean, isDisabled?: boolean, isLoading?: boolean): (event: MouseEvent<HTMLButtonElement>) => void;
6
6
  export declare function getButtonHeight(subType: ButtonV2SubType): string | undefined;
7
7
  export declare function getIconMaxHeight(subType: ButtonV2SubType, leftSlotMaxHeight: string | number | undefined, rightSlotMaxHeight: string | number | undefined, size: ButtonV2Size): string;
@@ -7,3 +7,8 @@ export { default as ChartV2Skeleton } from './ChartV2Skeleton';
7
7
  export { default as ChartV2NoData } from './ChartV2NoData';
8
8
  export * from './chartV2.tokens';
9
9
  export * from './chartV2.types';
10
+ export { useChartLegend } from './useChartLegend';
11
+ export { useChartLegendHover } from './useChartLegendHover';
12
+ export { default as useChartRefs } from './useChartRefs';
13
+ export { getLegendItems, applyHoverState } from './utils';
14
+ export { mergeChartOptions } from './chartV2Options';
@@ -11,7 +11,7 @@ declare const CodeEditorV2: import('react').ForwardRefExoticComponent<{
11
11
  rightSlot?: import('react').ReactNode;
12
12
  showCopyButton?: boolean;
13
13
  };
14
- language?: import('./codeEditorV2.types').SupportedLanguage;
14
+ language?: import('./codeEditorV2.types').CodeEditorV2SupportedLanguage;
15
15
  placeholder?: string;
16
16
  readOnly?: boolean;
17
17
  disabled?: boolean;
@@ -1,8 +1,8 @@
1
1
  import { CSSObject } from 'styled-components';
2
- import { DiffLineType } from './codeEditorV2.types';
3
2
  import { BreakpointType } from '../../breakpoints/breakPoints';
4
3
  import { FoundationTokenType } from '../../tokens/theme.token';
5
4
  import { Theme } from '../../context/theme.enum';
5
+ import { CodeEditorV2DiffLineType } from './codeEditorV2.types';
6
6
  export type CodeEditorV2Tokens = {
7
7
  backgroundColor: CSSObject['backgroundColor'];
8
8
  border: CSSObject['border'];
@@ -37,13 +37,13 @@ export type CodeEditorV2Tokens = {
37
37
  width: CSSObject['width'];
38
38
  color: CSSObject['color'];
39
39
  backgroundColor: {
40
- [key in DiffLineType]: CSSObject['backgroundColor'];
40
+ [key in CodeEditorV2DiffLineType]: CSSObject['backgroundColor'];
41
41
  };
42
42
  borderLeft: {
43
- [key in DiffLineType]: CSSObject['borderLeft'];
43
+ [key in CodeEditorV2DiffLineType]: CSSObject['borderLeft'];
44
44
  };
45
45
  borderColor: {
46
- [key in DiffLineType]: CSSObject['color'];
46
+ [key in CodeEditorV2DiffLineType]: CSSObject['color'];
47
47
  };
48
48
  };
49
49
  code: {
@@ -57,7 +57,7 @@ export type CodeEditorV2Tokens = {
57
57
  };
58
58
  highlightedLine: {
59
59
  backgroundColor: {
60
- [key in DiffLineType]: CSSObject['backgroundColor'];
60
+ [key in CodeEditorV2DiffLineType]: CSSObject['backgroundColor'];
61
61
  };
62
62
  };
63
63
  syntax: {
@@ -10,16 +10,16 @@ export declare enum MonacoTheme {
10
10
  LIGHT = "light",
11
11
  DARK = "dark"
12
12
  }
13
- export declare enum DiffLineType {
13
+ export declare enum CodeEditorV2DiffLineType {
14
14
  ADDED = "added",
15
15
  REMOVED = "removed",
16
16
  UNCHANGED = "unchanged"
17
17
  }
18
- export type DiffLine = {
18
+ export type CodeEditorV2DiffLine = {
19
19
  content: string;
20
- type: DiffLineType;
20
+ type: CodeEditorV2DiffLineType;
21
21
  };
22
- export type SupportedLanguage = 'javascript' | 'typescript' | 'jsx' | 'tsx' | 'json' | 'css' | 'html' | 'markdown' | 'yaml' | 'python' | 'rust' | 'haskell';
22
+ export type CodeEditorV2SupportedLanguage = 'javascript' | 'typescript' | 'jsx' | 'tsx' | 'json' | 'css' | 'html' | 'markdown' | 'yaml' | 'python' | 'rust' | 'haskell';
23
23
  export type CodeEditorV2Dimensions = {
24
24
  width?: CSSObject['width'];
25
25
  maxWidth?: CSSObject['maxWidth'];
@@ -41,7 +41,7 @@ export type CodeEditorV2Props = {
41
41
  rightSlot?: ReactNode;
42
42
  showCopyButton?: boolean;
43
43
  };
44
- language?: SupportedLanguage;
44
+ language?: CodeEditorV2SupportedLanguage;
45
45
  placeholder?: string;
46
46
  readOnly?: boolean;
47
47
  disabled?: boolean;
@@ -1,3 +1,5 @@
1
1
  export { default as CodeEditorV2 } from './CodeEditorV2';
2
+ export { CodeEditorV2Header } from './CodeEditorV2Header';
2
3
  export * from './codeEditorV2.types';
3
4
  export * from './codeEditorV2.tokens';
5
+ export * from './utils';
@@ -22,7 +22,7 @@ export declare const isDiffEditorMode: (diff: boolean | undefined, variant: Code
22
22
  /**
23
23
  * Calculates container styles with min/max height
24
24
  */
25
- export declare const getContainerStyles: (minHeight?: string | number, maxHeight?: string | number) => React.CSSProperties;
25
+ export declare const getCodeEditorV2ContainerStyles: (minHeight?: string | number, maxHeight?: string | number) => React.CSSProperties;
26
26
  export declare const toCssValue: (value?: string | number) => string | undefined;
27
27
  export declare const toNumericValue: (value: string | number | undefined, fallback?: number) => number;
28
28
  export type EditorMetrics = {
@@ -1,3 +1,4 @@
1
+ import { default as React } from 'react';
1
2
  import { DataTableProps } from './types';
2
- declare const DataTable: import('react').ForwardRefExoticComponent<DataTableProps<Record<string, unknown>> & import('react').RefAttributes<HTMLDivElement>>;
3
+ declare const DataTable: React.ForwardRefExoticComponent<DataTableProps<Record<string, unknown>> & React.RefAttributes<HTMLDivElement>>;
3
4
  export default DataTable;
@@ -0,0 +1,3 @@
1
+ import { PivotPreviewPanelProps } from './types';
2
+ declare const PivotPreviewPanel: import('react').ForwardRefExoticComponent<PivotPreviewPanelProps & import('react').RefAttributes<HTMLDivElement>>;
3
+ export default PivotPreviewPanel;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Pivot Table Illustration Component
3
+ * Displays when no pivot configuration is set
4
+ * Uses optimized PNG illustration with proper sizing
5
+ */
6
+ export declare const PivotTableIllustration: () => import("react/jsx-runtime").JSX.Element;
7
+ export default PivotTableIllustration;
@@ -0,0 +1,3 @@
1
+ import { PivotTableModalProps } from './types';
2
+ declare const PivotTableModal: import('react').ForwardRefExoticComponent<PivotTableModalProps<Record<string, unknown>> & import('react').RefAttributes<HTMLDivElement>>;
3
+ export default PivotTableModal;
@@ -0,0 +1,123 @@
1
+ import { FoundationTokenType } from '../../../tokens/theme.token';
2
+ import { TableTokenType } from '../dataTable.tokens';
3
+ export type PivotModalStyleTokens = {
4
+ modal: {
5
+ minWidth: string;
6
+ maxWidth: string;
7
+ maxHeight: string;
8
+ bodyPadding: string;
9
+ bodyGap: string;
10
+ };
11
+ rightPanel: {
12
+ width: string;
13
+ padding: string;
14
+ background: string;
15
+ border: string;
16
+ borderRadius: string;
17
+ };
18
+ shell: {
19
+ display: 'grid';
20
+ gridTemplateColumns: string;
21
+ height: string;
22
+ overflow: 'hidden';
23
+ };
24
+ layout: {
25
+ wideDesktopMinWidth: number;
26
+ wideDesktopColumns: string;
27
+ fallbackColumns: string;
28
+ };
29
+ panelPadding: string;
30
+ configPanelBackground: string;
31
+ previewPanelBackground: string;
32
+ text: {
33
+ sectionTitle: {
34
+ fontSize: string;
35
+ fontWeight: number;
36
+ color: string;
37
+ };
38
+ fieldLabel: {
39
+ fontSize: string;
40
+ fontWeight: number;
41
+ color: string;
42
+ };
43
+ checkboxLabel: {
44
+ fontSize: string;
45
+ color: string;
46
+ };
47
+ };
48
+ spacing: {
49
+ sectionGap: string;
50
+ builderIntroGap: string;
51
+ stackGap: string;
52
+ controlsRowGap: string;
53
+ iconBadgeGap: string;
54
+ sectionHeaderMarginBottom: string;
55
+ };
56
+ dropZone: {
57
+ emptyMinHeight: string;
58
+ padding: string;
59
+ borderRadius: string;
60
+ border: string;
61
+ background: string;
62
+ };
63
+ chip: {
64
+ borderRadius: string;
65
+ padding: string;
66
+ hoverShadow: string;
67
+ hoverTranslateY: string;
68
+ transition: string;
69
+ };
70
+ iconBadge: {
71
+ size: string;
72
+ borderRadius: string;
73
+ glyphFontSize: string | number;
74
+ glyphFontWeight: number;
75
+ };
76
+ sectionLabel: {
77
+ fontWeight: number;
78
+ fontSize: string | number;
79
+ textTransform: 'uppercase';
80
+ letterSpacing: string;
81
+ };
82
+ sectionCount: {
83
+ fontSize: string | number;
84
+ color: string;
85
+ };
86
+ emptyState: {
87
+ titleFontSize: string | number;
88
+ titleColor: string;
89
+ exampleFontSize: string | number;
90
+ exampleColor: string;
91
+ padding: string;
92
+ titleMarginBottom: string;
93
+ };
94
+ fieldRowLabel: {
95
+ fontSize: string | number;
96
+ color: string;
97
+ marginBottom: string;
98
+ };
99
+ removeButton: {
100
+ minWidth: string;
101
+ padding: string;
102
+ borderRadius: string;
103
+ border: string;
104
+ background: string;
105
+ hoverBackground: string;
106
+ iconColor: string;
107
+ iconSize: number;
108
+ };
109
+ menuCheckIconSize: number;
110
+ preview: {
111
+ headerMarginBottom: string;
112
+ titleFontWeight: number;
113
+ titleFontSize: string | number;
114
+ titleMarginBottom: string;
115
+ metaFontSize: string;
116
+ };
117
+ bodyLineHeight: string;
118
+ };
119
+ /**
120
+ * Layout and typography for the pivot modal, derived from foundation tokens + responsive table tokens.
121
+ * Section chips use `colors.primary` only (see color.tokens).
122
+ */
123
+ export declare const getPivotModalStyleTokens: (f: FoundationTokenType, tableToken: TableTokenType) => PivotModalStyleTokens;
@@ -0,0 +1,62 @@
1
+ import { ReactNode } from 'react';
2
+ import { TableTokenType } from '../dataTable.tokens';
3
+ import { ColumnDefinition, PivotAggregationType } from '../types';
4
+ import { PivotModalStyleTokens } from './pivotModalStyleTokens';
5
+ export type PivotValueConfig<T extends Record<string, unknown>> = {
6
+ field: keyof T;
7
+ aggregation: PivotAggregationType;
8
+ };
9
+ export type PivotTableConfig<T extends Record<string, unknown>> = {
10
+ rows: Array<keyof T>;
11
+ columns: Array<keyof T>;
12
+ values: PivotValueConfig<T>[];
13
+ };
14
+ export type PivotTableModalProps<T extends Record<string, unknown>> = {
15
+ isOpen: boolean;
16
+ onClose: () => void;
17
+ data: T[];
18
+ columns: ColumnDefinition<T>[];
19
+ title?: string;
20
+ description?: string;
21
+ showExport?: boolean;
22
+ initialConfig?: Partial<PivotTableConfig<T>>;
23
+ previewColumns?: PivotPreviewColumn[];
24
+ previewRows?: PivotPreviewRow[];
25
+ onConfigChange?: (config: PivotTableConfig<T>) => void;
26
+ onExport?: (config: PivotTableConfig<T>) => void;
27
+ trigger?: ReactNode;
28
+ /**
29
+ * Callback when trigger is clicked. Use this to open the modal.
30
+ */
31
+ onTriggerClick?: () => void;
32
+ /**
33
+ * Configure which aggregation operations are available in the Values section.
34
+ * If not provided, all operations will be shown.
35
+ * @example ['sum', 'count', 'average'] // Show only sum, count, and average
36
+ */
37
+ availableAggregations?: PivotAggregationType[];
38
+ };
39
+ export type PivotPreviewColumn = {
40
+ key: string;
41
+ label: string;
42
+ };
43
+ export type PivotPreviewRow = Record<string, unknown> & {
44
+ __pivotId: string;
45
+ __pivotRowType?: 'data' | 'subtotal' | 'grand_total';
46
+ };
47
+ export type PivotPreviewPanelProps = {
48
+ pivot: PivotModalStyleTokens;
49
+ tableToken: TableTokenType;
50
+ showExport: boolean;
51
+ previewRows?: PivotPreviewRow[];
52
+ previewColumns?: PivotPreviewColumn[];
53
+ previewTableColumns: ColumnDefinition<Record<string, unknown>>[];
54
+ onExport: () => void;
55
+ hasValues: boolean;
56
+ };
57
+ export type PivotFieldConfig = {
58
+ field: string;
59
+ showTotal: boolean;
60
+ aggregation?: PivotAggregationType;
61
+ header?: string;
62
+ };
@@ -0,0 +1,32 @@
1
+ import { ColumnDefinition, PivotAggregationType } from '../types';
2
+ import { PivotPreviewColumn, PivotPreviewRow, PivotValueConfig } from './types';
3
+ export declare const normalizePivotValue: (value: unknown) => string;
4
+ export declare const getPivotFieldOptions: <T extends Record<string, unknown>>(columns: ColumnDefinition<T>[]) => Array<{
5
+ key: string;
6
+ label: string;
7
+ }>;
8
+ export declare const isPivotNumericValue: (value: unknown) => boolean;
9
+ export declare const getSupportedAggregationsForField: <T extends Record<string, unknown>>(data: T[], field: keyof T, allowedAggregations: PivotAggregationType[], isNumericColumn?: boolean) => PivotAggregationType[];
10
+ /**
11
+ * Builds the rectangular grid the modal preview renders as a {@link DataTable}.
12
+ *
13
+ * - **Columns:** First column key `__rowLabel` — header is joined row field names
14
+ * (or `All Rows`). Each unique combination of **column** dimension values
15
+ * becomes a group; for each group, every **value** config adds one column
16
+ * (`columnKey__field__aggregation`).
17
+ * - **Rows:** One row per distinct row-dimension key; cells are aggregated from
18
+ * raw rows that match that row key and column key.
19
+ * - **Grand total:** Appended last with `__pivotRowType: 'grand_total'` and
20
+ * `__rowLabel` `"Grand Total"`; each metric is aggregated over the full
21
+ * (already filtered) `data` for that column bucket.
22
+ */
23
+ export declare const buildPivotPreview: <T extends Record<string, unknown>>(data: T[], rowFields: Array<keyof T> | Array<{
24
+ field: keyof T;
25
+ showTotal?: boolean;
26
+ }>, columnFields: Array<keyof T> | Array<{
27
+ field: keyof T;
28
+ showTotal?: boolean;
29
+ }>, valueConfigs: PivotValueConfig<T>[], fieldLabelByKey?: Record<string, string>) => {
30
+ columns: PivotPreviewColumn[];
31
+ rows: PivotPreviewRow[];
32
+ };
@@ -3,6 +3,7 @@ import { MobileDataTableConfig } from '../hooks/useMobileDataTable';
3
3
  import { SkeletonVariant } from '../../Skeleton/skeleton.tokens';
4
4
  export type TableBodyProps<T extends Record<string, unknown>> = {
5
5
  currentData: T[];
6
+ dataVersion?: number | string;
6
7
  visibleColumns: ColumnDefinition<T>[];
7
8
  idField: string;
8
9
  tableTitle?: string;
@@ -11,6 +12,7 @@ export type TableBodyProps<T extends Record<string, unknown>> = {
11
12
  editValues: Record<string, T>;
12
13
  expandedRows: Record<string, boolean>;
13
14
  enableInlineEdit?: boolean;
15
+ showActionsColumn?: boolean;
14
16
  enableColumnManager?: boolean;
15
17
  enableRowExpansion?: boolean;
16
18
  enableRowSelection?: boolean;
@@ -7,6 +7,7 @@ export type TableHeaderProps<T extends Record<string, unknown>> = {
7
7
  selectAll: boolean | 'indeterminate';
8
8
  sortConfig?: SortConfig | null;
9
9
  enableInlineEdit?: boolean;
10
+ showActionsColumn?: boolean;
10
11
  enableColumnManager?: boolean;
11
12
  enableColumnReordering?: boolean;
12
13
  showSkeleton?: boolean;
@@ -8,3 +8,5 @@ export * from './DataTableHeader/types';
8
8
  export * from './dataTable.tokens';
9
9
  export { validateColumnData, getColumnTypeConfig } from './columnTypes';
10
10
  export type { ColumnFilterOption, SelectData, MultiSelectData, DateData, DateRangeData, TagData, ColumnDataTypeMap, GetColumnDataType, ColumnTypeConfig, AvatarData as DataTableAvatarData, } from './columnTypes';
11
+ export { default as PivotTableModal } from './PivotTableModal';
12
+ export * from './PivotTableModal/types';
@@ -31,6 +31,15 @@ export declare enum ColumnType {
31
31
  SLIDER = "slider",
32
32
  CUSTOM = "custom"
33
33
  }
34
+ export declare enum PivotAggregationType {
35
+ SUM = "sum",
36
+ COUNT = "count",
37
+ AVERAGE = "average",
38
+ MEAN = "mean",
39
+ MEDIAN = "median",
40
+ MIN = "min",
41
+ MAX = "max"
42
+ }
34
43
  export type AvatarColumnProps = {
35
44
  src?: string;
36
45
  alt?: string;
@@ -328,10 +337,12 @@ export type DataTableProps<T extends Record<string, unknown>> = {
328
337
  headerSlot1?: ReactNode;
329
338
  headerSlot2?: ReactNode;
330
339
  enableInlineEdit?: boolean;
340
+ showActionsColumn?: boolean;
331
341
  onRowSave?: (rowId: unknown, updatedRow: T) => void;
332
342
  onRowCancel?: (rowId: unknown) => void;
333
343
  onRowClick?: (row: T, index: number) => void;
334
344
  onFieldChange?: (rowId: unknown, fieldName: keyof T, value: unknown) => void;
345
+ onHeaderChange?: (field: keyof T, newHeader: string) => void;
335
346
  enableRowExpansion?: boolean;
336
347
  renderExpandedRow?: (expandedData: {
337
348
  row: T;
@@ -354,4 +365,49 @@ export type DataTableProps<T extends Record<string, unknown>> = {
354
365
  getRowStyle?: (row: T, index: number) => React.CSSProperties;
355
366
  tableBodyHeight?: string | number;
356
367
  mobileColumnsToShow?: number;
368
+ enablePivotTable?: boolean;
369
+ pivotTableConfig?: {
370
+ triggerButton?: ReactNode;
371
+ triggerSlot?: 1 | 2 | 3;
372
+ title?: string;
373
+ description?: string;
374
+ showExport?: boolean;
375
+ initialConfig?: {
376
+ rows?: (keyof T)[];
377
+ columns?: (keyof T)[];
378
+ values?: Array<{
379
+ field: keyof T;
380
+ aggregation: PivotAggregationType;
381
+ }>;
382
+ };
383
+ previewColumns?: Array<{
384
+ key: string;
385
+ label: string;
386
+ }>;
387
+ previewRows?: Array<Record<string, unknown> & {
388
+ __pivotId: string;
389
+ }>;
390
+ /**
391
+ * Configure which aggregation operations are available in the Values section.
392
+ * If not provided, all operations will be shown.
393
+ * @example ['sum', 'count', 'average'] // Show only sum, count, and average
394
+ */
395
+ availableAggregations?: PivotAggregationType[];
396
+ onConfigChange?: (config: {
397
+ rows: (keyof T)[];
398
+ columns: (keyof T)[];
399
+ values: Array<{
400
+ field: keyof T;
401
+ aggregation: PivotAggregationType;
402
+ }>;
403
+ }) => void;
404
+ onExport?: (config: {
405
+ rows: (keyof T)[];
406
+ columns: (keyof T)[];
407
+ values: Array<{
408
+ field: keyof T;
409
+ aggregation: PivotAggregationType;
410
+ }>;
411
+ }) => void;
412
+ };
357
413
  };
@@ -1,4 +1,4 @@
1
- import { SortConfig, ColumnFilter, SearchConfig, FilterType, ColumnDefinition } from './types';
1
+ import { SortConfig, ColumnFilter, SearchConfig, FilterType, ColumnDefinition, PivotAggregationType } from './types';
2
2
  import { AvatarData, TagData, SelectData, MultiSelectData, DateData, DateRangeData } from './columnTypes';
3
3
  export declare const isDateOnlyString: (value: string) => boolean;
4
4
  /**
@@ -58,3 +58,21 @@ export declare const enforceDataTypeMatching: <T extends Record<string, unknown>
58
58
  throwOnError?: boolean;
59
59
  logWarnings?: boolean;
60
60
  }) => boolean;
61
+ type PivotValueConfig<T extends Record<string, unknown>> = {
62
+ field: keyof T;
63
+ aggregation: PivotAggregationType;
64
+ label?: string;
65
+ };
66
+ type PivotResultRow = Record<string, unknown>;
67
+ export declare const buildPivotData: <T extends Record<string, unknown>>(data: T[], rowFields: (keyof T)[], columnFields: (keyof T)[], valueConfigs: PivotValueConfig<T>[], filterValues?: Record<string, string[]>) => {
68
+ columns: Array<{
69
+ key: string;
70
+ label: string;
71
+ }>;
72
+ rows: PivotResultRow[];
73
+ };
74
+ export declare const exportPivotToCSV: (rows: PivotResultRow[], columns: Array<{
75
+ key: string;
76
+ label: string;
77
+ }>, filename: string) => void;
78
+ export {};
@@ -1,11 +1,11 @@
1
1
  import { ChatInputV2TokensType } from './ChatInputV2.tokens';
2
- import { AttachedFile } from './ChatInputV2.types';
2
+ import { ChatInputV2AttachedFile } from './ChatInputV2.types';
3
3
  type AttachmentDropdownV2Props = {
4
4
  id?: string;
5
- files: AttachedFile[];
5
+ files: ChatInputV2AttachedFile[];
6
6
  onFileRemove: (fileId: string) => void;
7
7
  tokens: ChatInputV2TokensType;
8
- onFileClick: (file: AttachedFile) => void;
8
+ onFileClick: (file: ChatInputV2AttachedFile) => void;
9
9
  };
10
10
  declare const AttachmentDropdownV2: ({ id, files, onFileRemove, onFileClick, tokens, }: AttachmentDropdownV2Props) => import("react/jsx-runtime").JSX.Element;
11
11
  export default AttachmentDropdownV2;
@@ -1,5 +1,5 @@
1
1
  import { ChatInputV2TokensType } from './ChatInputV2.tokens';
2
- import { AttachedFile } from './ChatInputV2.types';
2
+ import { ChatInputV2AttachedFile } from './ChatInputV2.types';
3
3
  type ChatInputTagV2Props = {
4
4
  text: string;
5
5
  tokens: ChatInputV2TokensType['container']['tagContainer'];
@@ -7,7 +7,7 @@ type ChatInputTagV2Props = {
7
7
  onRemove: () => void;
8
8
  /** Fired after the file-name control handles `preventDefault` / `stopPropagation` (button). */
9
9
  onFileClick: () => void;
10
- file: AttachedFile;
10
+ file: ChatInputV2AttachedFile;
11
11
  };
12
12
  declare const ChatInputTagV2: ({ file, text, tokens, onRemove, onFileClick, }: ChatInputTagV2Props) => import("react/jsx-runtime").JSX.Element;
13
13
  export default ChatInputTagV2;
@@ -1,7 +1,7 @@
1
1
  declare const ChatInputV2: import('react').ForwardRefExoticComponent<{
2
2
  value?: string;
3
- topQueries?: import('./ChatInputV2.types').TopQuery[];
4
- onTopQuerySelect?: (query: import('./ChatInputV2.types').TopQuery) => void;
3
+ topQueries?: import('./ChatInputV2.types').ChatInputV2TopQuery[];
4
+ onTopQuerySelect?: (query: import('./ChatInputV2.types').ChatInputV2TopQuery) => void;
5
5
  placeholder?: string;
6
6
  onChange: (value: string) => void;
7
7
  topContent?: import('react').ReactNode;
@@ -10,10 +10,10 @@ declare const ChatInputV2: import('react').ForwardRefExoticComponent<{
10
10
  topQueriesMaxHeight?: number;
11
11
  textareaMaxHeight?: number;
12
12
  disabled?: boolean;
13
- attachedFiles?: import('./ChatInputV2.types').AttachedFile[];
13
+ attachedFiles?: import('./ChatInputV2.types').ChatInputV2AttachedFile[];
14
14
  onAttachFiles?: (files: File[]) => void;
15
15
  onFileRemove?: (fileId: string) => void;
16
- onFileClick?: (file: import('./ChatInputV2.types').AttachedFile) => void;
16
+ onFileClick?: (file: import('./ChatInputV2.types').ChatInputV2AttachedFile) => void;
17
17
  onEnter?: () => void;
18
18
  } & Omit<import('react').TextareaHTMLAttributes<HTMLTextAreaElement>, "size" | "style" | "className" | "onFocus" | "onBlur" | "onChange" | "cols"> & import('react').RefAttributes<HTMLDivElement>>;
19
19
  export default ChatInputV2;