@stella-source/stellasource-dsl 4.0.0 → 5.1.1

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 (30) hide show
  1. package/dist/cjs/index.js +108 -46
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/components/RadioButton/RadioButton.d.ts +4 -0
  4. package/dist/cjs/types/components/RadioButton/RadioButton.stories.d.ts +14 -0
  5. package/dist/cjs/types/components/RadioButton/styles.d.ts +38 -0
  6. package/dist/cjs/types/components/RadioButton/types.d.ts +13 -0
  7. package/dist/cjs/types/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
  8. package/dist/cjs/types/components/RadioButtonGroup/RadioButtonGroup.stories.d.ts +87 -0
  9. package/dist/cjs/types/components/RadioButtonGroup/styles.d.ts +8 -0
  10. package/dist/cjs/types/components/RadioButtonGroup/types.d.ts +22 -0
  11. package/dist/cjs/types/components/Table/Table.d.ts +1 -1
  12. package/dist/cjs/types/components/Table/Table.stories.d.ts +8 -0
  13. package/dist/cjs/types/components/Table/styles.d.ts +15 -3
  14. package/dist/cjs/types/components/Table/types.d.ts +4 -5
  15. package/dist/esm/index.esm.js +108 -46
  16. package/dist/esm/index.esm.js.map +1 -1
  17. package/dist/esm/types/components/RadioButton/RadioButton.d.ts +4 -0
  18. package/dist/esm/types/components/RadioButton/RadioButton.stories.d.ts +14 -0
  19. package/dist/esm/types/components/RadioButton/styles.d.ts +38 -0
  20. package/dist/esm/types/components/RadioButton/types.d.ts +13 -0
  21. package/dist/esm/types/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
  22. package/dist/esm/types/components/RadioButtonGroup/RadioButtonGroup.stories.d.ts +87 -0
  23. package/dist/esm/types/components/RadioButtonGroup/styles.d.ts +8 -0
  24. package/dist/esm/types/components/RadioButtonGroup/types.d.ts +22 -0
  25. package/dist/esm/types/components/Table/Table.d.ts +1 -1
  26. package/dist/esm/types/components/Table/Table.stories.d.ts +8 -0
  27. package/dist/esm/types/components/Table/styles.d.ts +15 -3
  28. package/dist/esm/types/components/Table/types.d.ts +4 -5
  29. package/dist/index.d.ts +5 -6
  30. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { RadioButtonProps } from "./types";
3
+ declare const RadioButton: ({ id, name, value, className, label, checked, disabled, align, onChange, htmlProps, }: RadioButtonProps) => React.JSX.Element;
4
+ export default RadioButton;
@@ -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
+ };
@@ -5,6 +5,7 @@ interface HeaderIconButtonProps {
5
5
  }
6
6
  interface PaginationProps {
7
7
  $hasData?: boolean;
8
+ $isEmpty: boolean;
8
9
  }
9
10
  declare const HeaderCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, "$isPinnedLeft" | "$isPinnedRight" | "$columnInfo" | "$filterMenuOpen"> & {
10
11
  $isPinnedLeft?: boolean;
@@ -33,7 +34,11 @@ declare const SortButton: import("styled-components/dist/types").IStyledComponen
33
34
  as?: import("styled-components").WebTarget | undefined;
34
35
  forwardedAs?: import("styled-components").WebTarget | undefined;
35
36
  }, keyof HeaderIconButtonProps> & HeaderIconButtonProps, never>>> & string;
36
- declare const HeaderRow: 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;
37
+ declare const HeaderRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "$isEmpty"> & {
38
+ $isEmpty: boolean;
39
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "$isEmpty"> & {
40
+ $isEmpty: boolean;
41
+ }, never>>> & string;
37
42
  declare const CellRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "$isClickable"> & {
38
43
  $isClickable: boolean;
39
44
  }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "$isClickable"> & {
@@ -69,7 +74,7 @@ declare const LoadingShimmer: import("styled-components/dist/types").IStyledComp
69
74
  $width?: string;
70
75
  $height?: string;
71
76
  }, never>>> & string;
72
- declare const CustomPagination: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("../Pagination/types").PaginationProps, "$hasData"> & PaginationProps, never> & Partial<Pick<import("styled-components").FastOmit<import("../Pagination/types").PaginationProps, "$hasData"> & PaginationProps, never>>> & string & Omit<({ isLoading, rowsPerPage, totalRows, ariaLabel, onPageChange, startingPage, id, className, htmlProps, }: import("../Pagination/types").PaginationProps) => import("react").JSX.Element, keyof import("react").Component<any, {}, any>>;
77
+ declare const CustomPagination: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("../Pagination/types").PaginationProps, keyof PaginationProps> & PaginationProps, never> & Partial<Pick<import("styled-components").FastOmit<import("../Pagination/types").PaginationProps, keyof PaginationProps> & PaginationProps, never>>> & string & Omit<({ isLoading, rowsPerPage, totalRows, ariaLabel, onPageChange, startingPage, id, className, htmlProps, }: import("../Pagination/types").PaginationProps) => import("react").JSX.Element, keyof import("react").Component<any, {}, any>>;
73
78
  declare const KebabAlign: 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;
74
79
  declare const EmptyTableCell: 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;
75
80
  declare const EmptyTableSection: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "$size"> & {
@@ -80,6 +85,13 @@ declare const EmptyTableSection: import("styled-components/dist/types").IStyledC
80
85
  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
86
  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
87
  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;
88
+ 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;
89
+ 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;
90
+ 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"> & {
91
+ $expanded: boolean;
92
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "$expanded"> & {
93
+ $expanded: boolean;
94
+ }, never>>> & string;
83
95
  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
96
  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, };
97
+ 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";
@@ -22095,6 +22095,7 @@ const HeaderRow = styled.tr `
22095
22095
  background-color: ${Styles.color.grey.pale};
22096
22096
  min-height: 50px;
22097
22097
  height: 50px;
22098
+ display: ${({ $isEmpty }) => ($isEmpty ? "none" : "table-row")};
22098
22099
  `;
22099
22100
  const CellRow = styled.tr `
22100
22101
  min-height: 50px;
@@ -22308,6 +22309,7 @@ const LoadingShimmer = styled.div `
22308
22309
  `;
22309
22310
  const CustomPagination = styled(Pagination) `
22310
22311
  border-top: ${({ $hasData }) => $hasData ? "0px" : `1px solid ${Styles.color.grey.light}`};
22312
+ display: ${({ $isEmpty }) => ($isEmpty ? "none" : "flex")};
22311
22313
  `;
22312
22314
  const KebabAlign = styled.div `
22313
22315
  display: flex;
@@ -22324,12 +22326,8 @@ const EmptyTableSection = styled.section `
22324
22326
  flex-direction: column;
22325
22327
  justify-content: center;
22326
22328
  align-items: center;
22327
- position: absolute;
22328
22329
  gap: 20px;
22329
- top: 50px;
22330
- left: 0;
22331
- right: 0;
22332
- margin: 80px auto 0;
22330
+ margin: 0 auto;
22333
22331
  `;
22334
22332
  const EmptyTableHeader = styled.p `
22335
22333
  display: flex;
@@ -22358,6 +22356,37 @@ const ClearFilterButtonRow = styled.div `
22358
22356
  align-items: "center";
22359
22357
  text-align: "center";
22360
22358
  `;
22359
+ const ExpandedContentRow = styled.tr `
22360
+ background-color: ${Styles.color.grey.pale};
22361
+ `;
22362
+ const ExpandedContentCell = styled.td `
22363
+ padding: 12px 16px;
22364
+ border-bottom: 1px solid ${Styles.color.grey.light};
22365
+ background-color: ${Styles.color.grey.pale};
22366
+ `;
22367
+ const ExpandChevronButton = styled.button `
22368
+ display: flex;
22369
+ align-items: center;
22370
+ justify-content: center;
22371
+ background: none;
22372
+ border: none;
22373
+ cursor: pointer;
22374
+ padding: 4px;
22375
+ border-radius: 4px;
22376
+ transition:
22377
+ transform 0.2s ease,
22378
+ background-color 0.15s ease;
22379
+
22380
+ & > svg {
22381
+ transition: transform 0.2s ease;
22382
+ transform: ${({ $expanded }) => $expanded ? "rotate(90deg)" : "rotate(0deg)"};
22383
+ fill: ${Styles.color.grey.charcoal};
22384
+ }
22385
+
22386
+ &:hover {
22387
+ background-color: ${Styles.color.grey.light};
22388
+ }
22389
+ `;
22361
22390
  const ActionBar = styled.div `
22362
22391
  display: flex;
22363
22392
  justify-content: space-between;
@@ -22598,7 +22627,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
22598
22627
  startingPage: 1,
22599
22628
  rowsPerPage: 10,
22600
22629
  totalRows: data.length,
22601
- }, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, }) {
22630
+ }, selectionMenuItems, dataAuto, dataTestId, id, className, htmlProps, resetTrigger, emptyTableState, defaultFilters, staticFilters, enableShowHide, globalActions, showExpandedRowToggle = false, renderExpandedRow, }) {
22602
22631
  const [rowSelection, setRowSelection] = useState({});
22603
22632
  const [selectedRows] = useState({});
22604
22633
  const [pageIndex, setPageIndex] = useState(paginationDetails?.startingPage);
@@ -22658,6 +22687,14 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
22658
22687
  });
22659
22688
  const [rowStatusesState, setRowStatusesState] = useState(rowStatuses || {});
22660
22689
  const [filterMenuOpen, setFilterMenuOpen] = useState({});
22690
+ const [expandedRows, setExpandedRows] = useState(new Set());
22691
+ const toggleRowExpanded = (rowId) => {
22692
+ setExpandedRows((prev) => {
22693
+ const next = new Set(prev);
22694
+ next.has(rowId) ? next.delete(rowId) : next.add(rowId);
22695
+ return next;
22696
+ });
22697
+ };
22661
22698
  useEffect(() => {
22662
22699
  setRowStatusesState(rowStatuses || {});
22663
22700
  }, [rowStatuses]);
@@ -22731,6 +22768,18 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
22731
22768
  };
22732
22769
  const enhancedColumns = useMemo$1(() => {
22733
22770
  const cols = [];
22771
+ if (showExpandedRowToggle) {
22772
+ cols.push({
22773
+ id: "expand",
22774
+ header: "",
22775
+ cell: ({ row }) => !!renderExpandedRow?.(row) ? (a__default.createElement(ExpandChevronButton, { "$expanded": expandedRows.has(row.id), onClick: (e) => {
22776
+ e.stopPropagation();
22777
+ toggleRowExpanded(row.id);
22778
+ }, "aria-label": expandedRows.has(row.id) ? "Collapse row" : "Expand row" },
22779
+ a__default.createElement(StellaIcon, { iconName: "chevron-right", size: 14 }))) : (a__default.createElement(a__default.Fragment, null)),
22780
+ size: 36,
22781
+ });
22782
+ }
22734
22783
  if (showSelection) {
22735
22784
  cols.push({
22736
22785
  id: "select",
@@ -22762,6 +22811,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
22762
22811
  onRowSelect,
22763
22812
  showSelection,
22764
22813
  showRowOptions,
22814
+ expandedRows,
22765
22815
  ]);
22766
22816
  const table = useReactTable({
22767
22817
  data: localData,
@@ -22867,7 +22917,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
22867
22917
  };
22868
22918
  return (a__default.createElement(a__default.Fragment, null,
22869
22919
  !isLoading && (a__default.createElement(ActionBar, null,
22870
- a__default.createElement(GlobalActionWrapper, null, globalActions?.map((action) => action.element)),
22920
+ a__default.createElement(GlobalActionWrapper, null, globalActions?.(table)),
22871
22921
  a__default.createElement(GlobalActionWrapper, null, enableShowHide && (a__default.createElement(a__default.Fragment, null,
22872
22922
  a__default.createElement(IconButton, { ref: visibilityButtonRef, ariaLabel: "Column show hide button", variant: "tertiary", iconName: "table", onClick: () => {
22873
22923
  const rect = visibilityButtonRef.current?.getBoundingClientRect();
@@ -22929,7 +22979,7 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
22929
22979
  }, key: index + "loading-row" }, Array.from({
22930
22980
  length: 10,
22931
22981
  }).map((_, i) => (a__default.createElement(LoadingShimmer, { key: `${i}-loading`, "$width": "110px", "$height": "25px" }))))))))) : (a__default.createElement(StyledTable, { id: `${id}-table`, ...htmlProps },
22932
- a__default.createElement("thead", null, table.getHeaderGroups().map((headerGroup) => (a__default.createElement(HeaderRow, { key: headerGroup.id }, headerGroup.headers.map((header, i) => {
22982
+ a__default.createElement("thead", null, table.getHeaderGroups().map((headerGroup) => (a__default.createElement(HeaderRow, { key: headerGroup.id, "$isEmpty": table.getRowModel().rows.length === 0 }, headerGroup.headers.map((header, i) => {
22933
22983
  return (a__default.createElement(TableHeaderCell, { key: header.id, serverSide: serverSide, header: header, filters: filters, sorting: sorting, scrollPosition: scrollState, onFilterMenuInteraction: (id, active) => {
22934
22984
  setFilterMenuOpen((prev) => ({
22935
22985
  ...prev,
@@ -22945,45 +22995,57 @@ function Table({ columns, data, isLoading, serverSide = false, onPageChange, onS
22945
22995
  }))))),
22946
22996
  a__default.createElement("tbody", null,
22947
22997
  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(CellRow, { key: row.id, onClick: () => onRowClick?.(row.original), "$isClickable": !!onRowClick }, row.getVisibleCells().map((cell) => {
22949
- const value = flexRender(cell.column.columnDef.cell, {
22950
- ...cell.getContext(),
22951
- localValue: rowState[row.id]?.[cell.column.id],
22952
- onLocalChange: (val) => handleInputChange(row.id, cell.column.id, val),
22953
- });
22954
- const meta = cell.column.columnDef
22955
- .meta;
22956
- return (a__default.createElement(BodyCell, { key: cell.id, style: {
22957
- width: cell.column.getSize(),
22958
- textAlign: meta?.cellAlign ||
22959
- (typeof cell.getValue() === "number" ||
22960
- meta?.dataType === "number"
22961
- ? "right"
22962
- : "left"),
22963
- boxShadow: scrollState.atLeft &&
22964
- cell.column.getIsPinned() === "left"
22965
- ? "none"
22966
- : scrollState.atRight &&
22967
- cell.column.getIsPinned() === "right"
22998
+ table.getRowModel().rows.map((row) => (a__default.createElement(a__default.Fragment, { key: row.id },
22999
+ a__default.createElement(CellRow, { onClick: () => {
23000
+ if (!showExpandedRowToggle &&
23001
+ !!renderExpandedRow?.(row))
23002
+ toggleRowExpanded(row.id);
23003
+ onRowClick?.(row.original);
23004
+ }, "$isClickable": !!onRowClick }, row.getVisibleCells().map((cell) => {
23005
+ const value = flexRender(cell.column.columnDef.cell, {
23006
+ ...cell.getContext(),
23007
+ localValue: rowState[row.id]?.[cell.column.id],
23008
+ onLocalChange: (val) => handleInputChange(row.id, cell.column.id, val),
23009
+ });
23010
+ const meta = cell.column.columnDef
23011
+ .meta;
23012
+ return (a__default.createElement(BodyCell, { key: cell.id, style: {
23013
+ width: cell.column.getSize(),
23014
+ textAlign: meta?.cellAlign ||
23015
+ (typeof cell.getValue() === "number" ||
23016
+ meta?.dataType === "number"
23017
+ ? "right"
23018
+ : "left"),
23019
+ boxShadow: scrollState.atLeft &&
23020
+ cell.column.getIsPinned() === "left"
22968
23021
  ? "none"
22969
- : undefined,
22970
- backgroundColor: table
22971
- .getSelectedRowModel()
22972
- .rows.find((r) => r.id === row.id)
22973
- ? "#EBF0FA"
22974
- : rowStatusesState?.[row.id] === "action-pending"
22975
- ? "#FFFDEB"
22976
- : rowStatusesState?.[row.id] === "completed"
22977
- ? "#F5F5F5"
22978
- : "",
22979
- }, "$isPinnedLeft": cell.column.getIsPinned() === "left", "$isPinnedRight": cell.column.getIsPinned() === "right", "$columnInfo": cell.column, "$isLastRow": serverSide
22980
- ? row.index ===
22981
- table.getRowModel().rows.length - 1
22982
- : row.index -
22983
- pagination.pageSize * pagination.pageIndex ===
22984
- table.getRowModel().rows.length - 1 }, value));
22985
- })))))))),
22986
- 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) => {
23022
+ : scrollState.atRight &&
23023
+ cell.column.getIsPinned() === "right"
23024
+ ? "none"
23025
+ : undefined,
23026
+ backgroundColor: table
23027
+ .getSelectedRowModel()
23028
+ .rows.find((r) => r.id === row.id)
23029
+ ? "#EBF0FA"
23030
+ : rowStatusesState?.[row.id] ===
23031
+ "action-pending"
23032
+ ? "#FFFDEB"
23033
+ : rowStatusesState?.[row.id] === "completed"
23034
+ ? "#F5F5F5"
23035
+ : "",
23036
+ }, "$isPinnedLeft": cell.column.getIsPinned() === "left", "$isPinnedRight": cell.column.getIsPinned() === "right", "$columnInfo": cell.column, "$isLastRow": serverSide
23037
+ ? row.index ===
23038
+ table.getRowModel().rows.length - 1
23039
+ : row.index -
23040
+ pagination.pageSize *
23041
+ pagination.pageIndex ===
23042
+ table.getRowModel().rows.length - 1 }, value));
23043
+ })),
23044
+ expandedRows.has(row.id) &&
23045
+ renderExpandedRow &&
23046
+ !!renderExpandedRow(row) && (a__default.createElement(ExpandedContentRow, null,
23047
+ a__default.createElement(ExpandedContentCell, { colSpan: table.getVisibleLeafColumns().length }, renderExpandedRow(row))))))))))),
23048
+ showPagination && paginationDetails?.totalRows > 0 && (a__default.createElement(CustomPagination, { "$hasData": table.getRowModel().rows.length > 0, "$isEmpty": table.getRowModel().rows.length === 0, totalRows: serverSide ? totalData : table.getFilteredRowModel().rows.length, isLoading: isLoading, rowsPerPage: paginationDetails?.rowsPerPage, startingPage: pageIndex, onPageChange: (page, pageSize) => {
22987
23049
  table.toggleAllRowsSelected(false);
22988
23050
  setPageIndex(page);
22989
23051
  setPagination((prev) => ({