@digital-ai/dot-components 1.8.1 → 1.9.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.
@@ -2,16 +2,17 @@ import { MouseEvent } from 'react';
2
2
  import { CommonProps } from '../CommonProps';
3
3
  export declare type ButtonToggleSize = 'small' | 'medium' | 'large';
4
4
  export declare type ButtonToggleOrientation = 'horizontal' | 'vertical';
5
- declare type ButtonToggleValue = string | number | boolean;
5
+ export declare type ButtonToggleValue = string | number | boolean;
6
+ export interface ButtonToggleOption extends CommonProps {
7
+ ariaLabel: string;
8
+ disabled?: boolean;
9
+ iconId?: string;
10
+ text?: string;
11
+ value: ButtonToggleValue;
12
+ }
6
13
  export interface ButtonToggleProps extends CommonProps {
7
14
  /** button props for each toggle button options*/
8
- buttonOptions: {
9
- ariaLabel: string;
10
- disabled?: boolean;
11
- iconId?: string;
12
- text?: string;
13
- value: ButtonToggleValue;
14
- }[];
15
+ buttonOptions: ButtonToggleOption[];
15
16
  /** If true, the keyboard focus ripple will be disabled */
16
17
  disableFocusRipple?: boolean;
17
18
  /** If true, the ripple effect will be disabled. */
@@ -28,4 +29,3 @@ export interface ButtonToggleProps extends CommonProps {
28
29
  value?: ButtonToggleValue;
29
30
  }
30
31
  export declare const DotButtonToggle: ({ ariaLabel, buttonOptions, className, "data-testid": dataTestId, disableFocusRipple, disableRipple, exclusive, onChange, orientation, size, value, }: ButtonToggleProps) => JSX.Element;
31
- export {};
@@ -0,0 +1 @@
1
+ export * from './ButtonToggle';
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { CommonProps } from '../CommonProps';
3
+ export declare type DividerOrientation = 'horizontal' | 'vertical';
4
+ export declare type DividerVariant = 'fullWidth' | 'inset' | 'middle';
5
+ export interface DividerProps extends CommonProps {
6
+ /** Absolutely position the element. Default value: `false` */
7
+ absolute?: boolean;
8
+ /** If true, a vertical divider will have the correct height when used in flex container. (By default, a vertical divider will have a calculated height of 0px if it is the child of a flex container.) */
9
+ flexItem?: boolean;
10
+ /** If `true`, the divider will have a lighter color. Default value: `false` */
11
+ light?: boolean;
12
+ /** The divider orientation. (`horizontal`, `vertical`). Default value: `horizontal` */
13
+ orientation?: DividerOrientation;
14
+ /** The variant to use. (`fullWidth`, `inset`, `middle`) */
15
+ variant?: DividerVariant;
16
+ }
17
+ export declare const DotDivider: ({ absolute, ariaLabel, className, "data-testid": dataTestId, flexItem, light, orientation, variant, }: DividerProps) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ export declare const verticalClassName = "dot-divider-vertical";
2
+ export declare const StyledVerticalDividerWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,2 @@
1
+ export declare const rootClassName = "dot-divider";
2
+ export declare const StyledDivider: import("styled-components").StyledComponent<import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").DividerTypeMap<{}, "hr">>, any, {}, never>;
@@ -0,0 +1 @@
1
+ export * from './Divider';
@@ -3,6 +3,7 @@ export type { AutoCompleteOption, AutoCompleteProps, AutoCompleteValue, } from '
3
3
  export type { AvatarProps } from './avatar/Avatar';
4
4
  export type { BreadcrumbItem } from './breadcrumbs/Breadcrumbs';
5
5
  export type { ButtonProps } from './button/Button';
6
+ export type { ButtonToggleProps, ButtonToggleValue, ButtonToggleOption, ButtonToggleOrientation, ButtonToggleSize, } from './button-toggle';
6
7
  export type { CheckboxProps } from './checkbox/Checkbox';
7
8
  export type { CheckboxGroupProps } from './checkbox/CheckboxGroup';
8
9
  export type { SubmitButtonProps } from './dialog/Dialog';
@@ -10,7 +11,7 @@ export type { DynamicFormProps } from './dynamic-form/DynamicForm';
10
11
  export type { ConditionFunction, ControlClickHandler, DisabledConditionFunction, DisabledControlCondition, DynamicFormConfig, DynamicFormControl, DynamicFormControlProps, DynamicFormControlType, DynamicFormOutputData, DynamicFormSectionProps, DynamicFormState, DynamicFormStateItem, FieldValidation, } from './dynamic-form/models';
11
12
  export type { IconButtonProps } from './button/IconButton';
12
13
  export type { InputTextProps } from './input-form-fields/InputText';
13
- export type { InputSelectProps, InputSelectOption } from './input-form-fields/InputSelect';
14
+ export type { InputSelectProps, InputSelectOption, } from './input-form-fields/InputSelect';
14
15
  export type { LinkUnderline } from './link/Link';
15
16
  export type { ListItemProps } from './list';
16
17
  export type { MenuItemProps } from './menu/Menu';
@@ -23,6 +24,8 @@ export type { DotColumnHeader, MultiSelect, Order, RowSelectionChangeHandler, Ro
23
24
  export type { TabProps } from './tabs/Tabs';
24
25
  export type { TypographyVariant } from './typography/Typography';
25
26
  export type { ProgressButtonProps } from './progress-button/ProgressButton';
27
+ export type { PopperPlacementType } from './popper';
28
+ export type { DividerOrientation, DividerProps, DividerVariant, } from './divider';
26
29
  export { DotAccordion } from './accordion/Accordion';
27
30
  export { DotActionToolbar } from './action-toolbar/ActionToolbar';
28
31
  export { DotAlertBanner } from './alert-banner/AlertBanner';
@@ -34,7 +37,7 @@ export { DotAvatarGroup } from './avatar-group/AvatarGroup';
34
37
  export { DotBadge } from './badge/Badge';
35
38
  export { DotBreadcrumbs } from './breadcrumbs/Breadcrumbs';
36
39
  export { DotButton } from './button/Button';
37
- export { DotButtonToggle } from './button-toggle/ButtonToggle';
40
+ export { DotButtonToggle } from './button-toggle';
38
41
  export { DotCard } from './card/Card';
39
42
  export { DotCardContent } from './card/CardContent';
40
43
  export { DotCardFooter } from './card/CardFooter';
@@ -78,3 +81,5 @@ export { DotTabs } from './tabs/Tabs';
78
81
  export { DotTypography } from './typography/Typography';
79
82
  export { DotFileUpload } from './file-upload/FileUpload';
80
83
  export { parseAutoCompleteValue } from './auto-complete/utils/helpers';
84
+ export { DotDivider } from './divider';
85
+ export { DotPopper } from './popper';
@@ -26,6 +26,8 @@ export interface MenuProps extends CommonProps {
26
26
  onSelect?: (event: MouseEvent | KeyboardEvent, menuId: string, itemKey: string) => void;
27
27
  /** If true, the menu is open. */
28
28
  open?: boolean;
29
+ /** Key of the item which needs to be selected. If provided, item will be highlighted. */
30
+ selectedKey?: string;
29
31
  }
30
32
  export interface MenuItemProps {
31
33
  /** Defines a string value that labels the current element **/
@@ -34,9 +36,13 @@ export interface MenuItemProps {
34
36
  children?: ReactNode;
35
37
  /** Space delimited CSS classes to be attributed to the menu item */
36
38
  classes?: string;
39
+ /** If true, a 1px light border is added to the bottom of the menu item. */
40
+ divider?: boolean;
37
41
  /** Used to set custom item height (in pixels). This value has priority over "menuItemHeight" prop. */
38
42
  height?: number;
43
+ /** Children items, for multi-level menu display */
44
+ items?: MenuItemProps[];
39
45
  /** A key that can be used to determine which item was clicked */
40
46
  key?: string;
41
47
  }
42
- export declare const DotMenu: ({ anchorEl, ariaLabel, className, "data-testid": dataTestId, dense, disablePortal, id, loading, maxVisibleItems, menuItemHeight, menuItems, menuPlacement, onLeave, onSelect, open, }: MenuProps) => JSX.Element;
48
+ export declare const DotMenu: ({ anchorEl, ariaLabel, className, "data-testid": dataTestId, dense, disablePortal, id, loading, maxVisibleItems, menuItemHeight, menuItems, menuPlacement, onLeave, onSelect, open, selectedKey, }: MenuProps) => JSX.Element;
@@ -9,6 +9,7 @@ export declare const defaultMenuItems: ({
9
9
  key: string;
10
10
  classes?: undefined;
11
11
  })[];
12
+ export declare const multiLevelMenuItems: MenuItemProps[];
12
13
  export declare const buttonMenuItems: {
13
14
  children: string;
14
15
  key: string;
@@ -1,2 +1,4 @@
1
1
  export declare const rootClassName = "dot-menu-wrapper";
2
+ export declare const multiLevelClassName = "dot-multi-level-menu";
2
3
  export declare const StyledMenuWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const StyledMultiLevelMenu: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,26 @@
1
+ import React, { KeyboardEvent, KeyboardEventHandler, MouseEvent, ReactNode } from 'react';
2
+ import { CommonProps } from '../CommonProps';
3
+ import { MenuItemProps } from './Menu';
4
+ export interface SubMenuCreateArgs {
5
+ anchorElement: Element;
6
+ isOpened: boolean;
7
+ subMenuId: string;
8
+ subMenuItems: MenuItemProps[];
9
+ }
10
+ export interface MenuListProps extends CommonProps {
11
+ autoFocusItem?: boolean;
12
+ dense?: boolean;
13
+ id?: string;
14
+ maxVisibleItems: number;
15
+ menuItemHeight: number | string;
16
+ menuItems: Array<MenuItemProps>;
17
+ onItemSelect?: (event: MouseEvent | KeyboardEvent, itemKey: string) => void;
18
+ onKeyDown?: KeyboardEventHandler<Element>;
19
+ onSubMenuCreate?: (args: SubMenuCreateArgs) => ReactNode;
20
+ selectedKey?: string;
21
+ }
22
+ /**
23
+ * Since this component is used inside 'ClickAwayListener',
24
+ * it needs to be contained within 'forwardRef' function
25
+ */
26
+ export declare const DotMenuList: React.ForwardRefExoticComponent<MenuListProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,5 @@
1
+ import { MenuList } from '@material-ui/core';
2
+ export declare const rootClassName = "dot-ul";
3
+ export declare const listItemClassName = "dot-li";
4
+ export declare const listItemWithSubmenuClassName = "dot-li-with-submenu";
5
+ export declare const StyledMenuList: import("styled-components").StyledComponent<typeof MenuList, any, {}, never>;
@@ -9,4 +9,8 @@ export declare const getDefaultItemHeight: (isDense: boolean) => 28 | 33;
9
9
  export declare const calculateItemHeight: (isDense: boolean, customItemHeight?: number, menuItemHeight?: number | string) => number | string;
10
10
  export declare const getNumberOfVisibleItems: (numberOfItems: number, maxVisibleItems?: number) => number;
11
11
  export declare const calculateMaxHeight: ({ isDense, maxVisibleItems, menuItems, menuItemHeight, }: MaxHeightCalculationArgs) => number | string;
12
+ export declare const checkForSubItems: (menuItems: MenuItemProps[]) => boolean;
13
+ export declare const checkIfSubmenu: (anchorElement: Element) => boolean;
14
+ export declare const checkIfMenuItemSelected: (key: string, selectedKey: string, activeSubmenu: string) => boolean;
15
+ export declare const checkForAutoFocus: (autoFocusItem: boolean, isFirstItem: boolean) => boolean;
12
16
  export {};
@@ -0,0 +1,18 @@
1
+ import { KeyboardEvent, MouseEvent, ReactNode } from 'react';
2
+ import { PopperPlacementType } from '@material-ui/core';
3
+ import { CommonProps } from '../CommonProps';
4
+ export interface PopperProps extends CommonProps {
5
+ /** Element that popper is attached to */
6
+ anchorEl?: Element;
7
+ /** The content of the component */
8
+ children: ReactNode;
9
+ /** Disable the portal behavior. If `true`, children stay within parent DOM hierarchy. */
10
+ disablePortal?: boolean;
11
+ /** Event callback when leaving popper by clicking away */
12
+ onClickAway?: (event: KeyboardEvent | MouseEvent<Document>) => void;
13
+ /** If `true`, the popper is visible. */
14
+ open: boolean;
15
+ /** Popper placement. */
16
+ placement?: PopperPlacementType;
17
+ }
18
+ export declare const DotPopper: ({ ariaLabel, anchorEl, children, className, "data-testid": dataTestId, disablePortal, onClickAway, open, placement, }: PopperProps) => JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { KeyboardEvent, MouseEvent } from 'react';
2
+ export interface PopperTestWrapperProps {
3
+ dataTestId?: string;
4
+ disablePortal?: boolean;
5
+ onClickAway?: (event: KeyboardEvent | MouseEvent<Document>) => void;
6
+ }
7
+ export declare const PopperTestWrapper: (props: PopperTestWrapperProps) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { ButtonToggleValue } from '../button-toggle';
3
+ export interface FlagTaskProps {
4
+ onChange: (optionValue: ButtonToggleValue) => void;
5
+ }
6
+ export declare const FlagTask: ({ onChange }: FlagTaskProps) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ export declare const defaultStoryClassName = "dot-popper-default";
2
+ export declare const flagTaskClassName = "dot-flag-task";
3
+ export declare const StyledPopperStory: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const StyledFlagTask: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,3 @@
1
+ import { Popper } from '@material-ui/core';
2
+ export declare const rootClassName = "dot-popper";
3
+ export declare const StyledPopper: import("styled-components").StyledComponent<typeof Popper, any, {}, never>;
@@ -0,0 +1,2 @@
1
+ export { PopperPlacementType } from '@material-ui/core';
2
+ export * from './Popper';
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  export declare const rootClassName = "dot-split-button-group";
3
3
  export declare const StyledSplitButtonGroup: import("styled-components").StyledComponent<import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").ButtonGroupTypeMap<{}, "div">>, any, {}, never>;
4
- export declare const StyledMenu: import("styled-components").StyledComponent<({ anchorEl, ariaLabel, className, "data-testid": dataTestId, dense, disablePortal, id, loading, maxVisibleItems, menuItemHeight, menuItems, menuPlacement, onLeave, onSelect, open, }: import("../menu/Menu").MenuProps) => JSX.Element, any, {}, never>;
4
+ export declare const StyledMenu: import("styled-components").StyledComponent<({ anchorEl, ariaLabel, className, "data-testid": dataTestId, dense, disablePortal, id, loading, maxVisibleItems, menuItemHeight, menuItems, menuPlacement, onLeave, onSelect, open, selectedKey, }: import("../menu/Menu").MenuProps) => JSX.Element, any, {}, never>;
@@ -3,4 +3,4 @@ import { Paper } from '@material-ui/core';
3
3
  export declare const rootClassName = "dot-table";
4
4
  export declare const StyledPaper: import("styled-components").StyledComponent<typeof Paper, any, {}, never>;
5
5
  export declare const StyledTableContainer: import("styled-components").StyledComponent<import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").TableContainerTypeMap<{}, "div">>, any, {}, never>;
6
- export declare const StyledMenu: import("styled-components").StyledComponent<({ anchorEl, ariaLabel, className, "data-testid": dataTestId, dense, disablePortal, id, loading, maxVisibleItems, menuItemHeight, menuItems, menuPlacement, onLeave, onSelect, open, }: import("../menu/Menu").MenuProps) => JSX.Element, any, {}, never>;
6
+ export declare const StyledMenu: import("styled-components").StyledComponent<({ anchorEl, ariaLabel, className, "data-testid": dataTestId, dense, disablePortal, id, loading, maxVisibleItems, menuItemHeight, menuItems, menuPlacement, onLeave, onSelect, open, selectedKey, }: import("../menu/Menu").MenuProps) => JSX.Element, any, {}, never>;
@@ -2,6 +2,7 @@ import { ReactNode } from 'react';
2
2
  import { CommonProps } from '../CommonProps';
3
3
  export interface TableSelectionToolbarProps extends CommonProps {
4
4
  bulkActions?: ReactNode;
5
+ onClearAll?: () => void;
5
6
  selectedRowsNumber: number;
6
7
  }
7
- export declare const DotTableSelectionToolbar: ({ ariaLabel, bulkActions, className, "data-testid": dataTestId, selectedRowsNumber, }: TableSelectionToolbarProps) => JSX.Element;
8
+ export declare const DotTableSelectionToolbar: ({ ariaLabel, bulkActions, className, "data-testid": dataTestId, onClearAll, selectedRowsNumber, }: TableSelectionToolbarProps) => JSX.Element;
@@ -7,6 +7,7 @@ export interface MultiSelect {
7
7
  bulkActions?: ReactNode;
8
8
  onCheckAllChange?: TableRowSelectChangeHandler;
9
9
  onCheckRowChange?: TableRowSelectChangeHandler;
10
+ onClearAllChange?: TableRowSelectChangeHandler;
10
11
  }
11
12
  interface MultiSelectTableBase {
12
13
  selectedTableRowIds: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digital-ai/dot-components",
3
- "version": "1.8.1",
3
+ "version": "1.9.0",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN <LICENSE.md>",
6
6
  "contributors": [