@juspay/blend-design-system 0.0.37-beta.3 → 0.0.37-beta.5
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/AccordionV2/index.d.ts +3 -0
- package/dist/components/AvatarV2/avatarV2.utils.d.ts +1 -1
- package/dist/components/AvatarV2/index.d.ts +1 -2
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +2 -5
- package/dist/components/Breadcrumb/types.d.ts +6 -0
- package/dist/components/BreadcrumbV2/index.d.ts +10 -0
- package/dist/components/ButtonV2/ButtonGroupV2/index.d.ts +1 -0
- package/dist/components/ButtonV2/buttonV2.types.d.ts +0 -4
- package/dist/components/ButtonV2/index.d.ts +3 -0
- package/dist/components/ButtonV2/utils.d.ts +1 -1
- package/dist/components/Charts/ChartUtils.d.ts +2 -0
- package/dist/components/Charts/types.d.ts +2 -2
- package/dist/components/ChartsV2/index.d.ts +5 -0
- package/dist/components/CodeEditorV2/CodeEditorV2.d.ts +1 -1
- package/dist/components/CodeEditorV2/codeEditorV2.tokens.d.ts +5 -5
- package/dist/components/CodeEditorV2/codeEditorV2.types.d.ts +5 -5
- package/dist/components/CodeEditorV2/index.d.ts +2 -0
- package/dist/components/CodeEditorV2/utils.d.ts +1 -1
- package/dist/components/DataTable/DataTable.d.ts +2 -1
- package/dist/components/DataTable/PivotTableModal/PivotPreviewPanel.d.ts +3 -0
- package/dist/components/DataTable/PivotTableModal/PivotTableIllustration.d.ts +7 -0
- package/dist/components/DataTable/PivotTableModal/index.d.ts +3 -0
- package/dist/components/DataTable/PivotTableModal/pivotModalStyleTokens.d.ts +123 -0
- package/dist/components/DataTable/PivotTableModal/types.d.ts +62 -0
- package/dist/components/DataTable/PivotTableModal/utils.d.ts +32 -0
- package/dist/components/DataTable/TableBody/types.d.ts +2 -0
- package/dist/components/DataTable/TableHeader/types.d.ts +1 -0
- package/dist/components/DataTable/index.d.ts +2 -0
- package/dist/components/DataTable/types.d.ts +56 -0
- package/dist/components/DataTable/utils.d.ts +19 -1
- package/dist/components/DateRangePicker/types.d.ts +1 -1
- package/dist/components/DateRangePicker/utils.d.ts +2 -0
- package/dist/components/Directory/Directory.d.ts +1 -1
- package/dist/components/Directory/types.d.ts +1 -1
- package/dist/components/Directory/utils.d.ts +2 -0
- package/dist/components/InputsV2/ChatInputV2/AttachmentDropdown.d.ts +3 -3
- package/dist/components/InputsV2/ChatInputV2/ChatInputTagV2.d.ts +2 -2
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2.d.ts +4 -4
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2.types.d.ts +8 -8
- package/dist/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.d.ts +3 -3
- package/dist/components/InputsV2/ChatInputV2/MobileChatInputV2.d.ts +2 -2
- package/dist/components/InputsV2/ChatInputV2/utils.d.ts +4 -4
- package/dist/components/InputsV2/SearchInputV2/utils.d.ts +39 -0
- package/dist/components/InputsV2/TextInputV2/TextInputV2.types.d.ts +2 -2
- package/dist/components/InputsV2/TextInputV2/index.d.ts +2 -0
- package/dist/components/InputsV2/utils/utils.d.ts +1 -1
- package/dist/components/KeyValuePairV2/KeyValuePairV2.d.ts +1 -1
- package/dist/components/KeyValuePairV2/ResponsiveText.d.ts +2 -2
- package/dist/components/KeyValuePairV2/index.d.ts +3 -0
- package/dist/components/KeyValuePairV2/keyValuePairV2.types.d.ts +2 -2
- package/dist/components/KeyValuePairV2/responsiveTextStyles.d.ts +3 -3
- package/dist/components/KeyValuePairV2/utils.d.ts +2 -2
- package/dist/components/MenuV2/index.d.ts +1 -0
- package/dist/components/MenuV2/menuV2.utils.d.ts +2 -2
- package/dist/components/MultiSelectV2/index.d.ts +3 -0
- package/dist/components/MultiSelectV2/multiSelectV2.types.d.ts +1 -1
- package/dist/components/MultiSelectV2/utils.d.ts +2 -2
- package/dist/components/ProgressBarV2/index.d.ts +3 -0
- package/dist/components/ProgressBarV2/utils.d.ts +1 -1
- package/dist/components/Radio/StyledRadio.d.ts +0 -1
- package/dist/components/SelectV2/index.d.ts +1 -0
- package/dist/components/SelectorV2/CheckboxV2/index.d.ts +4 -0
- package/dist/components/SelectorV2/CheckboxV2/utils.d.ts +1 -1
- package/dist/components/SelectorV2/RadioV2/index.d.ts +3 -0
- package/dist/components/SelectorV2/SwitchV2/index.d.ts +1 -0
- package/dist/components/Sidebar/SidebarContent.d.ts +1 -1
- package/dist/components/Sidebar/types.d.ts +10 -1
- package/dist/components/Sidebar/utils.d.ts +1 -1
- package/dist/components/SidebarV2/SidebarV2Panel.d.ts +1 -1
- package/dist/components/SidebarV2/index.d.ts +6 -1
- package/dist/components/SidebarV2/types.d.ts +3 -0
- package/dist/components/SingleSelectV2/SingleSelectV2VirtualList.d.ts +2 -2
- package/dist/components/SingleSelectV2/index.d.ts +3 -0
- package/dist/components/SingleSelectV2/singleSelectV2.types.d.ts +2 -2
- package/dist/components/SingleSelectV2/utils.d.ts +6 -6
- package/dist/components/StatCardV2/index.d.ts +10 -1
- package/dist/components/Stepper/types.d.ts +2 -0
- package/dist/components/StepperV2/index.d.ts +3 -1
- package/dist/components/StepperV2/stepperV2.types.d.ts +2 -2
- package/dist/components/TabsV2/index.d.ts +3 -1
- package/dist/components/TagV2/index.d.ts +3 -0
- package/dist/components/TooltipV2/index.d.ts +1 -0
- package/dist/components/common/index.d.ts +1 -1
- package/dist/main.d.ts +30 -70
- package/dist/main.js +91851 -89103
- package/dist/{node-CRWdZOVN.js → node-C2uf3sNA.js} +1303 -1300
- package/dist/node.js +1 -1
- package/dist/tokens.js +17 -16
- package/lib/components/AccordionV2/index.ts +3 -0
- package/lib/components/Avatar/Avatar.tsx +6 -1
- package/lib/components/AvatarGroup/AvatarGroup.tsx +1 -1
- package/lib/components/AvatarV2/AvatarV2.tsx +12 -3
- package/lib/components/AvatarV2/avatarV2.utils.ts +1 -1
- package/lib/components/AvatarV2/index.ts +1 -12
- package/lib/components/Breadcrumb/Breadcrumb.tsx +9 -8
- package/lib/components/Breadcrumb/types.ts +12 -0
- package/lib/components/BreadcrumbV2/index.ts +10 -0
- package/lib/components/Button/ButtonBase.tsx +1 -1
- package/lib/components/ButtonV2/ButtonGroupV2/index.ts +1 -0
- package/lib/components/ButtonV2/ButtonV2.tsx +2 -2
- package/lib/components/ButtonV2/LinkButton.tsx +2 -2
- package/lib/components/ButtonV2/buttonV2.types.ts +0 -6
- package/lib/components/ButtonV2/index.ts +3 -0
- package/lib/components/ButtonV2/utils.ts +2 -2
- package/lib/components/Card/CardComponents.tsx +52 -17
- package/lib/components/Charts/BlendChart.tsx +1 -1
- package/lib/components/Charts/ChartUtils.tsx +7 -0
- package/lib/components/Charts/Charts.tsx +4 -2
- package/lib/components/Charts/CoreChart.tsx +4 -2
- package/lib/components/Charts/types.tsx +2 -2
- package/lib/components/ChartsV2/ChartV2.tsx +4 -3
- package/lib/components/ChartsV2/index.ts +5 -0
- package/lib/components/Checkbox/Checkbox.tsx +29 -7
- package/lib/components/CodeBlock/CodeBlock.tsx +47 -1
- package/lib/components/CodeBlock/codeBlock.token.ts +5 -5
- package/lib/components/CodeEditor/CodeEditor.tsx +26 -4
- package/lib/components/CodeEditor/MonacoEditorWrapper.tsx +13 -1
- package/lib/components/CodeEditorV2/CodeEditorV2.tsx +2 -2
- package/lib/components/CodeEditorV2/codeEditorV2.dark.tokens.ts +37 -25
- package/lib/components/CodeEditorV2/codeEditorV2.light.token.ts +37 -25
- package/lib/components/CodeEditorV2/codeEditorV2.tokens.ts +5 -5
- package/lib/components/CodeEditorV2/codeEditorV2.types.ts +5 -5
- package/lib/components/CodeEditorV2/index.ts +2 -0
- package/lib/components/CodeEditorV2/utils.ts +1 -1
- package/lib/components/DataTable/DataTable.tsx +156 -4
- package/lib/components/DataTable/PivotTableModal/PivotPreviewPanel.tsx +174 -0
- package/lib/components/DataTable/PivotTableModal/PivotTableIllustration.tsx +28 -0
- package/lib/components/DataTable/PivotTableModal/index.tsx +859 -0
- package/lib/components/DataTable/PivotTableModal/pivot-table-illustration.png +0 -0
- package/lib/components/DataTable/PivotTableModal/pivotModal.styled.ts +13 -0
- package/lib/components/DataTable/PivotTableModal/pivotModalStyleTokens.ts +250 -0
- package/lib/components/DataTable/PivotTableModal/types.ts +69 -0
- package/lib/components/DataTable/PivotTableModal/utils.ts +360 -0
- package/lib/components/DataTable/TableBody/index.tsx +16 -5
- package/lib/components/DataTable/TableBody/types.ts +2 -0
- package/lib/components/DataTable/TableHeader/FilterComponents.tsx +4 -0
- package/lib/components/DataTable/TableHeader/index.tsx +6 -3
- package/lib/components/DataTable/TableHeader/types.ts +1 -0
- package/lib/components/DataTable/index.ts +4 -0
- package/lib/components/DataTable/types.ts +57 -0
- package/lib/components/DataTable/utils.ts +197 -0
- package/lib/components/DateRangePicker/DateRangePicker.tsx +34 -17
- package/lib/components/DateRangePicker/types.ts +5 -5
- package/lib/components/DateRangePicker/utils.ts +5 -0
- package/lib/components/Directory/Directory.tsx +3 -2
- package/lib/components/Directory/types.ts +1 -1
- package/lib/components/Directory/utils.ts +6 -0
- package/lib/components/Drawer/components/DrawerBase.tsx +16 -0
- package/lib/components/Drawer/components/NestedSelectDrawer.tsx +13 -1
- package/lib/components/Drawer/components/SelectDrawer.tsx +9 -1
- package/lib/components/Inputs/OTPInput/OTPInput.tsx +5 -3
- package/lib/components/InputsV2/ChatInputV2/AttachmentDropdown.tsx +3 -3
- package/lib/components/InputsV2/ChatInputV2/ChatInputTagV2.tsx +3 -3
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2.types.ts +8 -8
- package/lib/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.tsx +7 -7
- package/lib/components/InputsV2/ChatInputV2/utils.ts +8 -8
- package/lib/components/InputsV2/SearchInputV2/utils.ts +14 -1
- package/lib/components/InputsV2/TextInputV2/TextInputV2.tsx +3 -3
- package/lib/components/InputsV2/TextInputV2/TextInputV2.types.ts +2 -2
- package/lib/components/InputsV2/TextInputV2/index.ts +2 -0
- package/lib/components/KeyValuePairV2/KeyValuePairV2.tsx +6 -2
- package/lib/components/KeyValuePairV2/ResponsiveText.tsx +2 -2
- package/lib/components/KeyValuePairV2/index.ts +3 -0
- package/lib/components/KeyValuePairV2/keyValuePairV2.types.ts +2 -2
- package/lib/components/KeyValuePairV2/responsiveTextStyles.ts +3 -3
- package/lib/components/KeyValuePairV2/utils.ts +3 -3
- package/lib/components/Menu/Menu.tsx +9 -1
- package/lib/components/MenuV2/MenuV2.tsx +2 -2
- package/lib/components/MenuV2/MenuV2SubMenu.tsx +2 -2
- package/lib/components/MenuV2/index.ts +1 -0
- package/lib/components/MenuV2/menuV2.utils.ts +4 -4
- package/lib/components/Modal/useModal.ts +7 -0
- package/lib/components/MultiSelectV2/MultiSelectV2.tsx +2 -2
- package/lib/components/MultiSelectV2/MultiSelectV2Menu.tsx +5 -2
- package/lib/components/MultiSelectV2/index.ts +3 -0
- package/lib/components/MultiSelectV2/mobile/MobileMultiSelectV2.tsx +7 -4
- package/lib/components/MultiSelectV2/multiSelectV2.types.ts +1 -1
- package/lib/components/MultiSelectV2/utils.ts +2 -2
- package/lib/components/ProgressBarV2/ProgressBarV2.tsx +5 -2
- package/lib/components/ProgressBarV2/index.ts +3 -0
- package/lib/components/ProgressBarV2/utils.ts +1 -1
- package/lib/components/Radio/Radio.tsx +12 -5
- package/lib/components/Radio/StyledRadio.tsx +33 -17
- package/lib/components/SelectV2/index.ts +1 -0
- package/lib/components/SelectorV2/CheckboxV2/CheckboxV2.tsx +2 -2
- package/lib/components/SelectorV2/CheckboxV2/index.ts +4 -0
- package/lib/components/SelectorV2/CheckboxV2/utils.ts +1 -1
- package/lib/components/SelectorV2/RadioV2/index.ts +3 -0
- package/lib/components/SelectorV2/SwitchV2/index.ts +1 -0
- package/lib/components/Sidebar/Sidebar.tsx +18 -3
- package/lib/components/Sidebar/SidebarContent.tsx +5 -2
- package/lib/components/Sidebar/TenantPanel.tsx +52 -34
- package/lib/components/Sidebar/types.ts +11 -1
- package/lib/components/Sidebar/utils.ts +1 -1
- package/lib/components/SidebarV2/SecondarySidebar.tsx +86 -44
- package/lib/components/SidebarV2/SidebarV2Panel.tsx +4 -2
- package/lib/components/SidebarV2/index.ts +6 -0
- package/lib/components/SidebarV2/types.ts +4 -0
- package/lib/components/SingleSelectV2/MobileSingleSelectV2.tsx +2 -2
- package/lib/components/SingleSelectV2/SingleSelectV2.tsx +10 -3
- package/lib/components/SingleSelectV2/SingleSelectV2Menu.tsx +4 -2
- package/lib/components/SingleSelectV2/SingleSelectV2VirtualList.tsx +5 -2
- package/lib/components/SingleSelectV2/index.ts +7 -0
- package/lib/components/SingleSelectV2/singleSelectV2.types.ts +2 -2
- package/lib/components/SingleSelectV2/utils.ts +10 -10
- package/lib/components/StatCard/statcard.tokens.ts +1 -1
- package/lib/components/StatCardV2/index.ts +13 -1
- package/lib/components/Stepper/VerticalStepper.tsx +209 -171
- package/lib/components/Stepper/types.ts +2 -0
- package/lib/components/StepperV2/Stepper/Steps.tsx +15 -1
- package/lib/components/StepperV2/index.ts +3 -1
- package/lib/components/StepperV2/stepperV2.types.ts +2 -2
- package/lib/components/TabsV2/index.ts +13 -1
- package/lib/components/TagV2/index.ts +3 -0
- package/lib/components/Text/Text.tsx +1 -0
- package/lib/components/TooltipV2/index.ts +1 -0
- package/lib/components/Upload/Upload.tsx +6 -0
- package/lib/components/Upload/components/FileListDisplay.tsx +159 -16
- package/lib/components/Upload/utils.ts +10 -2
- package/lib/components/common/index.ts +1 -1
- package/lib/context/ThemeProvider.tsx +19 -8
- package/lib/hooks/useDebounce.ts +9 -1
- package/lib/main.ts +34 -258
- package/lib/types/assets.d.ts +24 -0
- 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
|
|
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
|
|
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,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BreadcrumbProps } from './types';
|
|
2
2
|
declare const Breadcrumb: {
|
|
3
|
-
({ items, skeleton
|
|
4
|
-
items: BreadcrumbItemType[];
|
|
5
|
-
skeleton?: BreadcrumbSkeletonProps;
|
|
6
|
-
}): import("react/jsx-runtime").JSX.Element | null;
|
|
3
|
+
({ items: itemsProp, skeleton }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element | null;
|
|
7
4
|
displayName: string;
|
|
8
5
|
};
|
|
9
6
|
export default Breadcrumb;
|
|
@@ -3,6 +3,12 @@ export type BreadcrumbSkeletonProps = {
|
|
|
3
3
|
show: boolean;
|
|
4
4
|
variant: SkeletonVariant;
|
|
5
5
|
};
|
|
6
|
+
/** Replace null, undefined, or non-array `items` with `[]`. */
|
|
7
|
+
export declare function normalizeBreadcrumbItems(items: BreadcrumbItemType[] | null | undefined): BreadcrumbItemType[];
|
|
8
|
+
export type BreadcrumbProps = {
|
|
9
|
+
items: BreadcrumbItemType[] | null;
|
|
10
|
+
skeleton?: BreadcrumbSkeletonProps;
|
|
11
|
+
};
|
|
6
12
|
export type BreadcrumbItemType = {
|
|
7
13
|
leftSlot?: React.ReactNode;
|
|
8
14
|
rightSlot?: React.ReactNode;
|
|
@@ -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';
|
|
@@ -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
|
|
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;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { NewNestedDataPoint, FlattenedDataPoint, AxisConfig } from './types';
|
|
2
|
+
/** Replace null, undefined, or non-array `data` with `[]` (empty / no-data state). */
|
|
3
|
+
export declare function normalizeChartData(data: NewNestedDataPoint[] | null | undefined): NewNestedDataPoint[];
|
|
2
4
|
export declare function transformNestedData(data: NewNestedDataPoint[], selectedKeys?: string[]): FlattenedDataPoint[];
|
|
3
5
|
export declare function transformScatterData(data: NewNestedDataPoint[], selectedKeys?: string[]): Array<{
|
|
4
6
|
name: string;
|
|
@@ -144,7 +144,7 @@ export type RenderChartProps = {
|
|
|
144
144
|
};
|
|
145
145
|
export type CoreChartProps = {
|
|
146
146
|
chartType?: ChartType;
|
|
147
|
-
data
|
|
147
|
+
data?: NewNestedDataPoint[] | null;
|
|
148
148
|
colors?: {
|
|
149
149
|
key: string;
|
|
150
150
|
color: string;
|
|
@@ -168,7 +168,7 @@ export type ChartsSkeletonProps = {
|
|
|
168
168
|
};
|
|
169
169
|
export type ChartsProps = {
|
|
170
170
|
chartType?: ChartType;
|
|
171
|
-
data
|
|
171
|
+
data?: NewNestedDataPoint[] | null;
|
|
172
172
|
colors?: {
|
|
173
173
|
key: string;
|
|
174
174
|
color: 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').
|
|
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
|
|
40
|
+
[key in CodeEditorV2DiffLineType]: CSSObject['backgroundColor'];
|
|
41
41
|
};
|
|
42
42
|
borderLeft: {
|
|
43
|
-
[key in
|
|
43
|
+
[key in CodeEditorV2DiffLineType]: CSSObject['borderLeft'];
|
|
44
44
|
};
|
|
45
45
|
borderColor: {
|
|
46
|
-
[key in
|
|
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
|
|
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
|
|
13
|
+
export declare enum CodeEditorV2DiffLineType {
|
|
14
14
|
ADDED = "added",
|
|
15
15
|
REMOVED = "removed",
|
|
16
16
|
UNCHANGED = "unchanged"
|
|
17
17
|
}
|
|
18
|
-
export type
|
|
18
|
+
export type CodeEditorV2DiffLine = {
|
|
19
19
|
content: string;
|
|
20
|
-
type:
|
|
20
|
+
type: CodeEditorV2DiffLineType;
|
|
21
21
|
};
|
|
22
|
-
export type
|
|
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?:
|
|
44
|
+
language?: CodeEditorV2SupportedLanguage;
|
|
45
45
|
placeholder?: string;
|
|
46
46
|
readOnly?: boolean;
|
|
47
47
|
disabled?: boolean;
|
|
@@ -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
|
|
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:
|
|
3
|
+
declare const DataTable: React.ForwardRefExoticComponent<DataTableProps<Record<string, unknown>> & React.RefAttributes<HTMLDivElement>>;
|
|
3
4
|
export default DataTable;
|
|
@@ -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,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 {};
|
|
@@ -165,7 +165,7 @@ export type CustomPresetDefinition = {
|
|
|
165
165
|
/**
|
|
166
166
|
* Presets configuration - can be predefined presets, custom configs, or custom definitions
|
|
167
167
|
*/
|
|
168
|
-
export type PresetsConfig =
|
|
168
|
+
export type PresetsConfig = (DateRangePreset | CustomPresetConfig | CustomPresetDefinition)[];
|
|
169
169
|
/**
|
|
170
170
|
* Function type for custom date disabling logic
|
|
171
171
|
* @param date The date to check
|
|
@@ -62,6 +62,8 @@ export declare const parseDate: (dateString: string, format: string, hour: numbe
|
|
|
62
62
|
* @returns True if the date is valid
|
|
63
63
|
*/
|
|
64
64
|
export declare const isValidDate: (date: Date) => boolean;
|
|
65
|
+
/** True when a controlled `value` has a usable start date (avoids `.getTime()` on undefined). */
|
|
66
|
+
export declare const isControlledDateRange: (value?: DateRange | null) => value is DateRange;
|
|
65
67
|
/**
|
|
66
68
|
* Formats time in 12-hour format
|
|
67
69
|
* @param date The date to format
|