@stella-source/stellasource-dsl 4.0.0 → 5.1.0
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/cjs/index.js +103 -39
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/RadioButton/RadioButton.d.ts +4 -0
- package/dist/cjs/types/components/RadioButton/RadioButton.stories.d.ts +14 -0
- package/dist/cjs/types/components/RadioButton/styles.d.ts +38 -0
- package/dist/cjs/types/components/RadioButton/types.d.ts +13 -0
- package/dist/cjs/types/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
- package/dist/cjs/types/components/RadioButtonGroup/RadioButtonGroup.stories.d.ts +87 -0
- package/dist/cjs/types/components/RadioButtonGroup/styles.d.ts +8 -0
- package/dist/cjs/types/components/RadioButtonGroup/types.d.ts +22 -0
- package/dist/cjs/types/components/Table/Table.d.ts +1 -1
- package/dist/cjs/types/components/Table/Table.stories.d.ts +8 -0
- package/dist/cjs/types/components/Table/styles.d.ts +8 -1
- package/dist/cjs/types/components/Table/types.d.ts +4 -5
- package/dist/esm/index.esm.js +103 -39
- package/dist/esm/index.esm.js.map +1 -1
- package/dist/esm/types/components/RadioButton/RadioButton.d.ts +4 -0
- package/dist/esm/types/components/RadioButton/RadioButton.stories.d.ts +14 -0
- package/dist/esm/types/components/RadioButton/styles.d.ts +38 -0
- package/dist/esm/types/components/RadioButton/types.d.ts +13 -0
- package/dist/esm/types/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
- package/dist/esm/types/components/RadioButtonGroup/RadioButtonGroup.stories.d.ts +87 -0
- package/dist/esm/types/components/RadioButtonGroup/styles.d.ts +8 -0
- package/dist/esm/types/components/RadioButtonGroup/types.d.ts +22 -0
- package/dist/esm/types/components/Table/Table.d.ts +1 -1
- package/dist/esm/types/components/Table/Table.stories.d.ts +8 -0
- package/dist/esm/types/components/Table/styles.d.ts +8 -1
- package/dist/esm/types/components/Table/types.d.ts +4 -5
- package/dist/index.d.ts +5 -6
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: ({ id, name, value, className, label, checked, disabled, align, onChange, htmlProps, }: import("./types").RadioButtonProps) => React.JSX.Element;
|
|
5
|
+
tags: string[];
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
args: {
|
|
10
|
+
label: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export default _default;
|
|
14
|
+
export declare const Default: {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type RadioState = "selected" | "unselected" | "disabled";
|
|
2
|
+
interface RadioStateProps {
|
|
3
|
+
$state: RadioState;
|
|
4
|
+
}
|
|
5
|
+
export declare const RadioContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
6
|
+
export declare const RadioLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "$state"> & RadioStateProps, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "$state"> & RadioStateProps, never>>> & string;
|
|
7
|
+
export declare const RadioOuter: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$state"> & RadioStateProps, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$state"> & RadioStateProps, never>>> & string;
|
|
8
|
+
export declare const RadioDot: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$state"> & RadioStateProps, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$state"> & RadioStateProps, never>>> & string;
|
|
9
|
+
export declare const RadioInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>> & string;
|
|
10
|
+
declare const IconWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$disabled" | "$hasLabel"> & {
|
|
11
|
+
$disabled?: boolean;
|
|
12
|
+
$hasLabel?: boolean;
|
|
13
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$disabled" | "$hasLabel"> & {
|
|
14
|
+
$disabled?: boolean;
|
|
15
|
+
$hasLabel?: boolean;
|
|
16
|
+
}, never>>> & string;
|
|
17
|
+
declare const RadioButtonWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "$align" | "$disabled" | "$fontSize"> & {
|
|
18
|
+
$disabled?: boolean;
|
|
19
|
+
$align?: "top" | "center";
|
|
20
|
+
$fontSize?: string | null;
|
|
21
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "$align" | "$disabled" | "$fontSize"> & {
|
|
22
|
+
$disabled?: boolean;
|
|
23
|
+
$align?: "top" | "center";
|
|
24
|
+
$fontSize?: string | null;
|
|
25
|
+
}, never>>> & string;
|
|
26
|
+
declare const RadioIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$disabled" | "$hasLabel" | "$checked"> & {
|
|
27
|
+
$checked?: boolean;
|
|
28
|
+
$disabled?: boolean;
|
|
29
|
+
$hasLabel?: boolean;
|
|
30
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$disabled" | "$hasLabel" | "$checked"> & {
|
|
31
|
+
$checked?: boolean;
|
|
32
|
+
$disabled?: boolean;
|
|
33
|
+
$hasLabel?: boolean;
|
|
34
|
+
}, never>>> & string;
|
|
35
|
+
declare const HiddenInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, keyof import("react").ClassAttributes<HTMLInputElement> | keyof import("react").InputHTMLAttributes<HTMLInputElement>> & import("react").ClassAttributes<HTMLInputElement> & import("react").InputHTMLAttributes<HTMLInputElement>, "type"> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, keyof import("react").ClassAttributes<HTMLInputElement> | keyof import("react").InputHTMLAttributes<HTMLInputElement>> & import("react").ClassAttributes<HTMLInputElement> & import("react").InputHTMLAttributes<HTMLInputElement>, "type">>> & string;
|
|
36
|
+
declare const LabelGroup: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
37
|
+
declare const MainLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
|
|
38
|
+
export { RadioButtonWrapper, HiddenInput, LabelGroup, MainLabel, IconWrapper, RadioIcon, };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactElement } from "react";
|
|
2
|
+
export interface RadioButtonProps {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
value?: string;
|
|
6
|
+
label?: string | ReactElement;
|
|
7
|
+
checked?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
align?: "top" | "center";
|
|
11
|
+
onChange?: (id: string, value?: string, label?: string) => void;
|
|
12
|
+
htmlProps?: HTMLAttributes<HTMLInputElement>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RadioButtonGroupProps } from "./types";
|
|
3
|
+
declare const RadioButtonGroup: ({ name, id, options, onChange, defaultSelectedId, heading, required, tooltipText, disabled, className, isViewOnly, showError, errorMessage, }: RadioButtonGroupProps) => React.JSX.Element;
|
|
4
|
+
export default RadioButtonGroup;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CheckBoxFontSizeVariant } from "../CheckBox/types";
|
|
3
|
+
declare const _default: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: ({ name, id, options, onChange, defaultSelectedId, heading, required, tooltipText, disabled, className, isViewOnly, showError, errorMessage, }: import("./types").RadioButtonGroupProps) => React.JSX.Element;
|
|
6
|
+
tags: string[];
|
|
7
|
+
argTypes: {
|
|
8
|
+
heading: {
|
|
9
|
+
control: string;
|
|
10
|
+
};
|
|
11
|
+
disabled: {
|
|
12
|
+
control: string;
|
|
13
|
+
};
|
|
14
|
+
required: {
|
|
15
|
+
control: string;
|
|
16
|
+
};
|
|
17
|
+
tooltipText: {
|
|
18
|
+
control: string;
|
|
19
|
+
};
|
|
20
|
+
onChange: {
|
|
21
|
+
action: string;
|
|
22
|
+
};
|
|
23
|
+
isViewOnly: {
|
|
24
|
+
control: string;
|
|
25
|
+
};
|
|
26
|
+
showError: {
|
|
27
|
+
control: string;
|
|
28
|
+
};
|
|
29
|
+
errorMessage: {
|
|
30
|
+
control: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
args: {
|
|
34
|
+
name: string;
|
|
35
|
+
heading: string;
|
|
36
|
+
disabled: boolean;
|
|
37
|
+
required: boolean;
|
|
38
|
+
fontSize: CheckBoxFontSizeVariant;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export default _default;
|
|
42
|
+
type StoryArgs = {
|
|
43
|
+
name?: string;
|
|
44
|
+
heading?: string;
|
|
45
|
+
defaultSelectedId?: string;
|
|
46
|
+
disabled?: boolean;
|
|
47
|
+
required?: boolean;
|
|
48
|
+
tooltipText?: string;
|
|
49
|
+
fontSize?: string;
|
|
50
|
+
isViewOnly?: boolean;
|
|
51
|
+
showError?: boolean;
|
|
52
|
+
errorMessage?: string;
|
|
53
|
+
};
|
|
54
|
+
export declare const Default: {
|
|
55
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
56
|
+
};
|
|
57
|
+
export declare const WithDefaultSelected: {
|
|
58
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
59
|
+
};
|
|
60
|
+
export declare const AllDisabled: {
|
|
61
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
62
|
+
args: {
|
|
63
|
+
disabled: boolean;
|
|
64
|
+
defaultSelectedId: string;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
export declare const RequiredWithTooltip: {
|
|
68
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
69
|
+
args: {
|
|
70
|
+
heading: string;
|
|
71
|
+
required: boolean;
|
|
72
|
+
showError: boolean;
|
|
73
|
+
disabled: boolean;
|
|
74
|
+
tooltipText: string;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
export declare const ViewOnlyMode: {
|
|
78
|
+
render: (args: StoryArgs) => React.JSX.Element;
|
|
79
|
+
args: {
|
|
80
|
+
heading: string;
|
|
81
|
+
required: boolean;
|
|
82
|
+
showError: boolean;
|
|
83
|
+
isViewOnly: boolean;
|
|
84
|
+
defaultSelectedId: string;
|
|
85
|
+
tooltipText: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HelperTextProps } from "../HelperText/types";
|
|
2
|
+
declare const GroupWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>, never>>> & string;
|
|
3
|
+
declare const HeadingRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
4
|
+
declare const Legend: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLLegendElement>, HTMLLegendElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLLegendElement>, HTMLLegendElement>, never>>> & string;
|
|
5
|
+
declare const CustomHelperText: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<HelperTextProps, keyof HelperTextProps> & HelperTextProps, never> & Partial<Pick<import("styled-components").FastOmit<HelperTextProps, keyof HelperTextProps> & HelperTextProps, never>>> & string & Omit<({ id, className, affectLayout, text, type, htmlProps, }: HelperTextProps) => import("react").JSX.Element, keyof import("react").Component<any, {}, any>>;
|
|
6
|
+
declare const SelectedLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
|
|
7
|
+
declare const OptionsWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
8
|
+
export { GroupWrapper, HeadingRow, Legend, CustomHelperText, SelectedLabel, OptionsWrapper, };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
export interface RadioButtonGroupOption {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string | ReactElement;
|
|
5
|
+
value: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface RadioButtonGroupProps {
|
|
9
|
+
name: string;
|
|
10
|
+
id?: string;
|
|
11
|
+
options: RadioButtonGroupOption[];
|
|
12
|
+
onChange: (payload: RadioButtonGroupOption) => void;
|
|
13
|
+
defaultSelectedId?: string;
|
|
14
|
+
heading?: string;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
tooltipText?: string;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
className?: string;
|
|
19
|
+
isViewOnly?: boolean;
|
|
20
|
+
showError?: boolean;
|
|
21
|
+
errorMessage?: string;
|
|
22
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { TableProps } from "./types";
|
|
3
|
-
declare function Table<T>({ columns, data, isLoading, serverSide, onPageChange, onSortChange, onFilterChange, onRowSelect, onRowClick, rowStatuses, showSelection, showRowOptions, showPagination, variant, paginationDetails, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, }: TableProps<T>): React.JSX.Element;
|
|
3
|
+
declare function Table<T>({ columns, data, isLoading, serverSide, onPageChange, onSortChange, onFilterChange, onRowSelect, onRowClick, rowStatuses, showSelection, showRowOptions, showPagination, variant, paginationDetails, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, showExpandedRowToggle, renderExpandedRow, }: TableProps<T>): React.JSX.Element;
|
|
4
4
|
export default Table;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import TableComponent from "./Table";
|
|
2
3
|
import { TableProps } from "./types";
|
|
3
4
|
interface Person {
|
|
@@ -21,3 +22,10 @@ export declare const Table: {
|
|
|
21
22
|
variant: string;
|
|
22
23
|
};
|
|
23
24
|
};
|
|
25
|
+
export declare const ExpandedRows: {
|
|
26
|
+
args: {
|
|
27
|
+
id: string;
|
|
28
|
+
renderExpandedRow: (row: any) => React.JSX.Element | null;
|
|
29
|
+
showExpandedRowToggle: boolean;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -80,6 +80,13 @@ declare const EmptyTableSection: import("styled-components/dist/types").IStyledC
|
|
|
80
80
|
declare const EmptyTableHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never>>> & string;
|
|
81
81
|
declare const EmptyTableSubHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never>>> & string;
|
|
82
82
|
declare const ClearFilterButtonRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
83
|
+
declare const ExpandedContentRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, never>>> & string;
|
|
84
|
+
declare const ExpandedContentCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, never>>> & string;
|
|
85
|
+
declare const ExpandChevronButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$expanded"> & {
|
|
86
|
+
$expanded: boolean;
|
|
87
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$expanded"> & {
|
|
88
|
+
$expanded: boolean;
|
|
89
|
+
}, never>>> & string;
|
|
83
90
|
declare const ActionBar: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
84
91
|
declare const GlobalActionWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
85
|
-
export { HeaderCell, TableWrapper, TableWrapperScroll, StyledTable, CustomIconButton, SortButton, HeaderRow, FilterMenu, Checkbox, BodyCell, HeaderCellPosition, MenuButton, MenuItem, FilterBoxLabel, LoadingShimmer, FilterLabelTransparent, CustomPagination, CellRow, MenuItemGroup, KebabAlign, MenuItemOption, EmptyTableCell, EmptyTableSection, EmptyTableHeader, EmptyTableSubHeader, ClearFilterButtonRow, ActionBar, GlobalActionWrapper, };
|
|
92
|
+
export { HeaderCell, TableWrapper, TableWrapperScroll, StyledTable, CustomIconButton, SortButton, HeaderRow, FilterMenu, Checkbox, BodyCell, HeaderCellPosition, MenuButton, MenuItem, FilterBoxLabel, LoadingShimmer, FilterLabelTransparent, CustomPagination, CellRow, MenuItemGroup, KebabAlign, MenuItemOption, EmptyTableCell, EmptyTableSection, EmptyTableHeader, EmptyTableSubHeader, ClearFilterButtonRow, ActionBar, GlobalActionWrapper, ExpandedContentRow, ExpandedContentCell, ExpandChevronButton, };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ColumnDef, ColumnFiltersState, Row, Table } from "@tanstack/react-table";
|
|
2
|
-
import { HTMLAttributes, ReactElement } from "react";
|
|
2
|
+
import React, { HTMLAttributes, ReactElement } from "react";
|
|
3
3
|
declare enum TableVariant {
|
|
4
4
|
PRIMARY = "Primary",
|
|
5
5
|
SECONDARY = "Secondary"
|
|
@@ -13,6 +13,8 @@ export interface TableProps<T> {
|
|
|
13
13
|
columns: ColumnDef<T, any>[];
|
|
14
14
|
data: T[];
|
|
15
15
|
isLoading?: boolean;
|
|
16
|
+
showExpandedRowToggle?: boolean;
|
|
17
|
+
renderExpandedRow?: (row: Row<T>) => React.ReactNode | null;
|
|
16
18
|
serverSide?: boolean;
|
|
17
19
|
onPageChange?: (page: number, pageSize: number) => void;
|
|
18
20
|
onSortChange?: (sort: {
|
|
@@ -54,10 +56,7 @@ export interface TableProps<T> {
|
|
|
54
56
|
value: unknown;
|
|
55
57
|
}[];
|
|
56
58
|
enableShowHide?: boolean;
|
|
57
|
-
globalActions?:
|
|
58
|
-
element: ReactElement;
|
|
59
|
-
onChange?: (table?: Table<T>) => void;
|
|
60
|
-
}[];
|
|
59
|
+
globalActions?: (table: Table<T>) => ReactElement;
|
|
61
60
|
}
|
|
62
61
|
export interface CustomColumnMeta {
|
|
63
62
|
headerAlign?: "left" | "right";
|
package/dist/esm/index.esm.js
CHANGED
|
@@ -22358,6 +22358,37 @@ const ClearFilterButtonRow = styled.div `
|
|
|
22358
22358
|
align-items: "center";
|
|
22359
22359
|
text-align: "center";
|
|
22360
22360
|
`;
|
|
22361
|
+
const ExpandedContentRow = styled.tr `
|
|
22362
|
+
background-color: ${Styles.color.grey.pale};
|
|
22363
|
+
`;
|
|
22364
|
+
const ExpandedContentCell = styled.td `
|
|
22365
|
+
padding: 12px 16px;
|
|
22366
|
+
border-bottom: 1px solid ${Styles.color.grey.light};
|
|
22367
|
+
background-color: ${Styles.color.grey.pale};
|
|
22368
|
+
`;
|
|
22369
|
+
const ExpandChevronButton = styled.button `
|
|
22370
|
+
display: flex;
|
|
22371
|
+
align-items: center;
|
|
22372
|
+
justify-content: center;
|
|
22373
|
+
background: none;
|
|
22374
|
+
border: none;
|
|
22375
|
+
cursor: pointer;
|
|
22376
|
+
padding: 4px;
|
|
22377
|
+
border-radius: 4px;
|
|
22378
|
+
transition:
|
|
22379
|
+
transform 0.2s ease,
|
|
22380
|
+
background-color 0.15s ease;
|
|
22381
|
+
|
|
22382
|
+
& > svg {
|
|
22383
|
+
transition: transform 0.2s ease;
|
|
22384
|
+
transform: ${({ $expanded }) => $expanded ? "rotate(90deg)" : "rotate(0deg)"};
|
|
22385
|
+
fill: ${Styles.color.grey.charcoal};
|
|
22386
|
+
}
|
|
22387
|
+
|
|
22388
|
+
&:hover {
|
|
22389
|
+
background-color: ${Styles.color.grey.light};
|
|
22390
|
+
}
|
|
22391
|
+
`;
|
|
22361
22392
|
const ActionBar = styled.div `
|
|
22362
22393
|
display: flex;
|
|
22363
22394
|
justify-content: space-between;
|
|
@@ -22598,7 +22629,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22598
22629
|
startingPage: 1,
|
|
22599
22630
|
rowsPerPage: 10,
|
|
22600
22631
|
totalRows: data.length,
|
|
22601
|
-
}, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, }) {
|
|
22632
|
+
}, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, showExpandedRowToggle = false, renderExpandedRow, }) {
|
|
22602
22633
|
const [rowSelection, setRowSelection] = useState({});
|
|
22603
22634
|
const [selectedRows] = useState({});
|
|
22604
22635
|
const [pageIndex, setPageIndex] = useState(paginationDetails?.startingPage);
|
|
@@ -22658,6 +22689,14 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22658
22689
|
});
|
|
22659
22690
|
const [rowStatusesState, setRowStatusesState] = useState(rowStatuses || {});
|
|
22660
22691
|
const [filterMenuOpen, setFilterMenuOpen] = useState({});
|
|
22692
|
+
const [expandedRows, setExpandedRows] = useState(new Set());
|
|
22693
|
+
const toggleRowExpanded = (rowId) => {
|
|
22694
|
+
setExpandedRows((prev) => {
|
|
22695
|
+
const next = new Set(prev);
|
|
22696
|
+
next.has(rowId) ? next.delete(rowId) : next.add(rowId);
|
|
22697
|
+
return next;
|
|
22698
|
+
});
|
|
22699
|
+
};
|
|
22661
22700
|
useEffect(() => {
|
|
22662
22701
|
setRowStatusesState(rowStatuses || {});
|
|
22663
22702
|
}, [rowStatuses]);
|
|
@@ -22731,6 +22770,18 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22731
22770
|
};
|
|
22732
22771
|
const enhancedColumns = useMemo$1(() => {
|
|
22733
22772
|
const cols = [];
|
|
22773
|
+
if (showExpandedRowToggle) {
|
|
22774
|
+
cols.push({
|
|
22775
|
+
id: "expand",
|
|
22776
|
+
header: "",
|
|
22777
|
+
cell: ({ row }) => !!renderExpandedRow?.(row) ? (a__default.createElement(ExpandChevronButton, { "$expanded": expandedRows.has(row.id), onClick: (e) => {
|
|
22778
|
+
e.stopPropagation();
|
|
22779
|
+
toggleRowExpanded(row.id);
|
|
22780
|
+
}, "aria-label": expandedRows.has(row.id) ? "Collapse row" : "Expand row" },
|
|
22781
|
+
a__default.createElement(StellaIcon, { iconName: "chevron-right", size: 14 }))) : (a__default.createElement(a__default.Fragment, null)),
|
|
22782
|
+
size: 36,
|
|
22783
|
+
});
|
|
22784
|
+
}
|
|
22734
22785
|
if (showSelection) {
|
|
22735
22786
|
cols.push({
|
|
22736
22787
|
id: "select",
|
|
@@ -22762,6 +22813,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22762
22813
|
onRowSelect,
|
|
22763
22814
|
showSelection,
|
|
22764
22815
|
showRowOptions,
|
|
22816
|
+
expandedRows,
|
|
22765
22817
|
]);
|
|
22766
22818
|
const table = useReactTable({
|
|
22767
22819
|
data: localData,
|
|
@@ -22867,7 +22919,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22867
22919
|
};
|
|
22868
22920
|
return (a__default.createElement(a__default.Fragment, null,
|
|
22869
22921
|
!isLoading && (a__default.createElement(ActionBar, null,
|
|
22870
|
-
a__default.createElement(GlobalActionWrapper, null, globalActions?.
|
|
22922
|
+
a__default.createElement(GlobalActionWrapper, null, globalActions?.(table)),
|
|
22871
22923
|
a__default.createElement(GlobalActionWrapper, null, enableShowHide && (a__default.createElement(a__default.Fragment, null,
|
|
22872
22924
|
a__default.createElement(IconButton, { ref: visibilityButtonRef, ariaLabel: "Column show hide button", variant: "tertiary", iconName: "table", onClick: () => {
|
|
22873
22925
|
const rect = visibilityButtonRef.current?.getBoundingClientRect();
|
|
@@ -22945,44 +22997,56 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
|
|
|
22945
22997
|
}))))),
|
|
22946
22998
|
a__default.createElement("tbody", null,
|
|
22947
22999
|
table.getRowModel().rows.length === 0 && (a__default.createElement(EmptyTableState, { header: emptyTableState?.header || "No data available.", subHeader: emptyTableState?.subHeader, showClearFilterButton: emptyTableState?.showClearFilterButton, onClearFilters: resetTable, colSpan: table.getVisibleLeafColumns().length, size: "large" })),
|
|
22948
|
-
table.getRowModel().rows.map((row) => (a__default.createElement(
|
|
22949
|
-
|
|
22950
|
-
|
|
22951
|
-
|
|
22952
|
-
|
|
22953
|
-
|
|
22954
|
-
|
|
22955
|
-
.
|
|
22956
|
-
|
|
22957
|
-
|
|
22958
|
-
|
|
22959
|
-
|
|
22960
|
-
|
|
22961
|
-
|
|
22962
|
-
|
|
22963
|
-
|
|
22964
|
-
|
|
22965
|
-
|
|
22966
|
-
|
|
22967
|
-
|
|
23000
|
+
table.getRowModel().rows.map((row) => (a__default.createElement(a__default.Fragment, { key: row.id },
|
|
23001
|
+
a__default.createElement(CellRow, { onClick: () => {
|
|
23002
|
+
if (!showExpandedRowToggle &&
|
|
23003
|
+
!!renderExpandedRow?.(row))
|
|
23004
|
+
toggleRowExpanded(row.id);
|
|
23005
|
+
onRowClick?.(row.original);
|
|
23006
|
+
}, "$isClickable": !!onRowClick }, row.getVisibleCells().map((cell) => {
|
|
23007
|
+
const value = flexRender(cell.column.columnDef.cell, {
|
|
23008
|
+
...cell.getContext(),
|
|
23009
|
+
localValue: rowState[row.id]?.[cell.column.id],
|
|
23010
|
+
onLocalChange: (val) => handleInputChange(row.id, cell.column.id, val),
|
|
23011
|
+
});
|
|
23012
|
+
const meta = cell.column.columnDef
|
|
23013
|
+
.meta;
|
|
23014
|
+
return (a__default.createElement(BodyCell, { key: cell.id, style: {
|
|
23015
|
+
width: cell.column.getSize(),
|
|
23016
|
+
textAlign: meta?.cellAlign ||
|
|
23017
|
+
(typeof cell.getValue() === "number" ||
|
|
23018
|
+
meta?.dataType === "number"
|
|
23019
|
+
? "right"
|
|
23020
|
+
: "left"),
|
|
23021
|
+
boxShadow: scrollState.atLeft &&
|
|
23022
|
+
cell.column.getIsPinned() === "left"
|
|
22968
23023
|
? "none"
|
|
22969
|
-
:
|
|
22970
|
-
|
|
22971
|
-
|
|
22972
|
-
|
|
22973
|
-
|
|
22974
|
-
|
|
22975
|
-
|
|
22976
|
-
|
|
22977
|
-
|
|
22978
|
-
|
|
22979
|
-
|
|
22980
|
-
|
|
22981
|
-
|
|
22982
|
-
|
|
22983
|
-
|
|
22984
|
-
|
|
22985
|
-
|
|
23024
|
+
: scrollState.atRight &&
|
|
23025
|
+
cell.column.getIsPinned() === "right"
|
|
23026
|
+
? "none"
|
|
23027
|
+
: undefined,
|
|
23028
|
+
backgroundColor: table
|
|
23029
|
+
.getSelectedRowModel()
|
|
23030
|
+
.rows.find((r) => r.id === row.id)
|
|
23031
|
+
? "#EBF0FA"
|
|
23032
|
+
: rowStatusesState?.[row.id] ===
|
|
23033
|
+
"action-pending"
|
|
23034
|
+
? "#FFFDEB"
|
|
23035
|
+
: rowStatusesState?.[row.id] === "completed"
|
|
23036
|
+
? "#F5F5F5"
|
|
23037
|
+
: "",
|
|
23038
|
+
}, "$isPinnedLeft": cell.column.getIsPinned() === "left", "$isPinnedRight": cell.column.getIsPinned() === "right", "$columnInfo": cell.column, "$isLastRow": serverSide
|
|
23039
|
+
? row.index ===
|
|
23040
|
+
table.getRowModel().rows.length - 1
|
|
23041
|
+
: row.index -
|
|
23042
|
+
pagination.pageSize *
|
|
23043
|
+
pagination.pageIndex ===
|
|
23044
|
+
table.getRowModel().rows.length - 1 }, value));
|
|
23045
|
+
})),
|
|
23046
|
+
expandedRows.has(row.id) &&
|
|
23047
|
+
renderExpandedRow &&
|
|
23048
|
+
!!renderExpandedRow(row) && (a__default.createElement(ExpandedContentRow, null,
|
|
23049
|
+
a__default.createElement(ExpandedContentCell, { colSpan: table.getVisibleLeafColumns().length }, renderExpandedRow(row))))))))))),
|
|
22986
23050
|
showPagination && paginationDetails?.totalRows > 0 && (a__default.createElement(CustomPagination, { "$hasData": table.getRowModel().rows.length > 0, totalRows: serverSide ? totalData : table.getFilteredRowModel().rows.length, isLoading: isLoading, rowsPerPage: paginationDetails?.rowsPerPage, startingPage: pageIndex, onPageChange: (page, pageSize) => {
|
|
22987
23051
|
table.toggleAllRowsSelected(false);
|
|
22988
23052
|
setPageIndex(page);
|