@stella-source/stellasource-dsl 3.6.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.
Files changed (36) hide show
  1. package/dist/cjs/index.js +453 -263
  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/StellaIcon/types.d.ts +1 -1
  12. package/dist/cjs/types/components/Table/Table.d.ts +1 -1
  13. package/dist/cjs/types/components/Table/Table.stories.d.ts +8 -0
  14. package/dist/cjs/types/components/Table/TableComponents/CheckboxDropdownMenu.d.ts +26 -0
  15. package/dist/cjs/types/components/Table/styles.d.ts +10 -1
  16. package/dist/cjs/types/components/Table/types.d.ts +8 -3
  17. package/dist/cjs/types/components/Table/useTableState.d.ts +9 -0
  18. package/dist/esm/index.esm.js +453 -263
  19. package/dist/esm/index.esm.js.map +1 -1
  20. package/dist/esm/types/components/RadioButton/RadioButton.d.ts +4 -0
  21. package/dist/esm/types/components/RadioButton/RadioButton.stories.d.ts +14 -0
  22. package/dist/esm/types/components/RadioButton/styles.d.ts +38 -0
  23. package/dist/esm/types/components/RadioButton/types.d.ts +13 -0
  24. package/dist/esm/types/components/RadioButtonGroup/RadioButtonGroup.d.ts +4 -0
  25. package/dist/esm/types/components/RadioButtonGroup/RadioButtonGroup.stories.d.ts +87 -0
  26. package/dist/esm/types/components/RadioButtonGroup/styles.d.ts +8 -0
  27. package/dist/esm/types/components/RadioButtonGroup/types.d.ts +22 -0
  28. package/dist/esm/types/components/StellaIcon/types.d.ts +1 -1
  29. package/dist/esm/types/components/Table/Table.d.ts +1 -1
  30. package/dist/esm/types/components/Table/Table.stories.d.ts +8 -0
  31. package/dist/esm/types/components/Table/TableComponents/CheckboxDropdownMenu.d.ts +26 -0
  32. package/dist/esm/types/components/Table/styles.d.ts +10 -1
  33. package/dist/esm/types/components/Table/types.d.ts +8 -3
  34. package/dist/esm/types/components/Table/useTableState.d.ts +9 -0
  35. package/dist/index.d.ts +9 -4
  36. 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
- export type StellaIconDefinition = "search" | "required" | "help" | "info" | "kebab-menu" | "error" | "warning" | "filter" | "sort" | "close" | "add" | "stella-logo" | "chevron-right" | "chevron-down" | "caret-right" | "caret-down" | "success" | "in-progress" | "complete" | "calendar" | "unlocked" | "locked" | "settings" | "preferences" | "account-settings" | "user" | "company-details" | "collapse" | "expand" | "star-filled" | "star-outline" | "dashboard" | "shopping-cart" | "calculator" | "pricing-strategies" | "stella-finance" | "resource-center" | "line-item-pricing" | "basket-pricing" | "paperclip" | "thumbs-up" | "thumbs-down" | "send" | "palette" | "eye" | "eye-slash" | "sync" | "chevron-left" | "check-square" | "money" | "currency-dollar" | "x-circle" | "empty" | "hourglass-simple-low" | "broadcast" | "list-checks" | "note-pencil" | "truck";
1
+ export type StellaIconDefinition = "search" | "required" | "help" | "info" | "kebab-menu" | "error" | "warning" | "filter" | "sort" | "close" | "add" | "stella-logo" | "chevron-right" | "chevron-down" | "caret-right" | "caret-down" | "success" | "in-progress" | "complete" | "calendar" | "unlocked" | "locked" | "settings" | "preferences" | "account-settings" | "user" | "company-details" | "collapse" | "expand" | "star-filled" | "star-outline" | "dashboard" | "shopping-cart" | "calculator" | "pricing-strategies" | "stella-finance" | "resource-center" | "line-item-pricing" | "basket-pricing" | "paperclip" | "thumbs-up" | "thumbs-down" | "send" | "palette" | "eye" | "eye-slash" | "sync" | "chevron-left" | "check-square" | "money" | "currency-dollar" | "x-circle" | "empty" | "hourglass-simple-low" | "broadcast" | "list-checks" | "note-pencil" | "truck" | "table";
2
2
  export interface StellaIconProps {
3
3
  iconName: StellaIconDefinition;
4
4
  size?: number;
@@ -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, }: 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
+ };
@@ -0,0 +1,26 @@
1
+ import React, { RefObject } from "react";
2
+ export interface CheckboxDropdownOption {
3
+ key: string;
4
+ value: string;
5
+ }
6
+ interface CheckboxDropdownMenuProps {
7
+ options: CheckboxDropdownOption[];
8
+ selected: (string | number)[];
9
+ mode?: "search" | "singleSelect" | "multiSelect";
10
+ coords: {
11
+ top: number;
12
+ left: number;
13
+ };
14
+ menuRef: RefObject<HTMLDivElement | null>;
15
+ onApply: (selected: (string | number)[]) => void;
16
+ onClear: () => void;
17
+ showSelectAll?: boolean;
18
+ showClear?: boolean;
19
+ searchInputId?: string;
20
+ searchInputLabel?: string;
21
+ onSearch?: (value: string) => void;
22
+ onSearchBlur?: () => void;
23
+ serverSide?: boolean;
24
+ }
25
+ declare const CheckboxDropdownMenu: ({ options, selected, mode, coords, menuRef, onApply, onClear, showSelectAll, showClear, searchInputId, searchInputLabel, onSearch, onSearchBlur, serverSide, }: CheckboxDropdownMenuProps) => React.ReactPortal;
26
+ export default CheckboxDropdownMenu;
@@ -80,4 +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
- 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, };
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;
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;
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;
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
- import { ColumnDef, ColumnFiltersState, Row } from "@tanstack/react-table";
2
- import { HTMLAttributes } from "react";
1
+ import { ColumnDef, ColumnFiltersState, Row, Table } from "@tanstack/react-table";
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: {
@@ -33,7 +35,7 @@ export interface TableProps<T> {
33
35
  }[];
34
36
  dataTestId?: string;
35
37
  dataAuto?: string;
36
- id?: string;
38
+ id: string;
37
39
  className?: string;
38
40
  htmlProps?: HTMLAttributes<HTMLTableElement>;
39
41
  paginationDetails?: PaginationDetails;
@@ -53,6 +55,8 @@ export interface TableProps<T> {
53
55
  id: string;
54
56
  value: unknown;
55
57
  }[];
58
+ enableShowHide?: boolean;
59
+ globalActions?: (table: Table<T>) => ReactElement;
56
60
  }
57
61
  export interface CustomColumnMeta {
58
62
  headerAlign?: "left" | "right";
@@ -64,6 +68,7 @@ export interface CustomColumnMeta {
64
68
  value?: string;
65
69
  }[];
66
70
  filterMode?: "singleSelect" | "multiSelect" | "search";
71
+ defaultHidden?: boolean;
67
72
  }
68
73
  export type RowStatus = "action-pending" | "completed";
69
74
  export {};
@@ -0,0 +1,9 @@
1
+ import { ColumnSizingState, SortingState, VisibilityState } from "@tanstack/react-table";
2
+ type PersistedTableState = {
3
+ columnVisibility: VisibilityState;
4
+ columnSizing: ColumnSizingState;
5
+ sorting: SortingState;
6
+ };
7
+ export declare function loadTableState(tableId: string): Partial<PersistedTableState>;
8
+ export declare function usePersistTableState(tableId: string, state: Partial<PersistedTableState>, sizingDebounceMs?: number): void;
9
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import React$1, { HTMLAttributes, ReactElement } from 'react';
2
2
  import { TooltipProps as TooltipProps$1 } from 'antd';
3
- import { ColumnDef, ColumnFiltersState, Row } from '@tanstack/react-table';
3
+ import { ColumnDef, Row, ColumnFiltersState, Table as Table$1 } from '@tanstack/react-table';
4
4
 
5
5
  interface LabelProps {
6
6
  id: string;
@@ -98,7 +98,7 @@ interface TooltipProps {
98
98
 
99
99
  declare const Tooltip: ({ title, placement, type, ariaLabel, iconSize, htmlProps, className, id, }: TooltipProps) => React$1.JSX.Element;
100
100
 
101
- type StellaIconDefinition = "search" | "required" | "help" | "info" | "kebab-menu" | "error" | "warning" | "filter" | "sort" | "close" | "add" | "stella-logo" | "chevron-right" | "chevron-down" | "caret-right" | "caret-down" | "success" | "in-progress" | "complete" | "calendar" | "unlocked" | "locked" | "settings" | "preferences" | "account-settings" | "user" | "company-details" | "collapse" | "expand" | "star-filled" | "star-outline" | "dashboard" | "shopping-cart" | "calculator" | "pricing-strategies" | "stella-finance" | "resource-center" | "line-item-pricing" | "basket-pricing" | "paperclip" | "thumbs-up" | "thumbs-down" | "send" | "palette" | "eye" | "eye-slash" | "sync" | "chevron-left" | "check-square" | "money" | "currency-dollar" | "x-circle" | "empty" | "hourglass-simple-low" | "broadcast" | "list-checks" | "note-pencil" | "truck";
101
+ type StellaIconDefinition = "search" | "required" | "help" | "info" | "kebab-menu" | "error" | "warning" | "filter" | "sort" | "close" | "add" | "stella-logo" | "chevron-right" | "chevron-down" | "caret-right" | "caret-down" | "success" | "in-progress" | "complete" | "calendar" | "unlocked" | "locked" | "settings" | "preferences" | "account-settings" | "user" | "company-details" | "collapse" | "expand" | "star-filled" | "star-outline" | "dashboard" | "shopping-cart" | "calculator" | "pricing-strategies" | "stella-finance" | "resource-center" | "line-item-pricing" | "basket-pricing" | "paperclip" | "thumbs-up" | "thumbs-down" | "send" | "palette" | "eye" | "eye-slash" | "sync" | "chevron-left" | "check-square" | "money" | "currency-dollar" | "x-circle" | "empty" | "hourglass-simple-low" | "broadcast" | "list-checks" | "note-pencil" | "truck" | "table";
102
102
  interface StellaIconProps {
103
103
  iconName: StellaIconDefinition;
104
104
  size?: number;
@@ -240,6 +240,8 @@ interface TableProps<T> {
240
240
  columns: ColumnDef<T, any>[];
241
241
  data: T[];
242
242
  isLoading?: boolean;
243
+ showExpandedRowToggle?: boolean;
244
+ renderExpandedRow?: (row: Row<T>) => React$1.ReactNode | null;
243
245
  serverSide?: boolean;
244
246
  onPageChange?: (page: number, pageSize: number) => void;
245
247
  onSortChange?: (sort: {
@@ -260,7 +262,7 @@ interface TableProps<T> {
260
262
  }[];
261
263
  dataTestId?: string;
262
264
  dataAuto?: string;
263
- id?: string;
265
+ id: string;
264
266
  className?: string;
265
267
  htmlProps?: HTMLAttributes<HTMLTableElement>;
266
268
  paginationDetails?: PaginationDetails;
@@ -280,6 +282,8 @@ interface TableProps<T> {
280
282
  id: string;
281
283
  value: unknown;
282
284
  }[];
285
+ enableShowHide?: boolean;
286
+ globalActions?: (table: Table$1<T>) => ReactElement;
283
287
  }
284
288
  interface CustomColumnMeta {
285
289
  headerAlign?: "left" | "right";
@@ -291,10 +295,11 @@ interface CustomColumnMeta {
291
295
  value?: string;
292
296
  }[];
293
297
  filterMode?: "singleSelect" | "multiSelect" | "search";
298
+ defaultHidden?: boolean;
294
299
  }
295
300
  type RowStatus = "action-pending" | "completed";
296
301
 
297
- 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, }: TableProps<T>): React$1.JSX.Element;
302
+ 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$1.JSX.Element;
298
303
 
299
304
  interface PaginationProps {
300
305
  id?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stella-source/stellasource-dsl",
3
- "version": "3.6.0",
3
+ "version": "5.1.0",
4
4
  "description": "Design System owned and operated by Stella Source.",
5
5
  "files": [
6
6
  "dist"