From 111f3b7e2cccb8b703932acb57b502c78184e50e Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Wed, 5 Apr 2023 08:56:55 +0300 Subject: [PATCH 01/16] feat: defined types for Paragon exports --- src/ActionRow/index.d.ts | 12 ++++++++++++ src/Icon/index.d.ts | 22 ++++++++++++---------- src/IconButton/index.d.ts | 26 ++++++++++++++++++++++++++ src/IconButtonToggle/index.d.ts | 14 ++++++++++++++ src/Layout/index.d.ts | 15 +++++++++++++++ src/MailtoLink/index.d.ts | 21 +++++++++++++++++++++ src/Menu/index.d.ts | 21 +++++++++++++++++++++ src/PageBanner/index.d.ts | 14 ++++++++++++++ src/Spinner/index.d.ts | 11 +++++++++++ src/Stack/types.d.ts | 10 ++++++++++ 10 files changed, 156 insertions(+), 10 deletions(-) create mode 100644 src/ActionRow/index.d.ts create mode 100644 src/IconButton/index.d.ts create mode 100644 src/IconButtonToggle/index.d.ts create mode 100644 src/Layout/index.d.ts create mode 100644 src/MailtoLink/index.d.ts create mode 100644 src/Menu/index.d.ts create mode 100644 src/PageBanner/index.d.ts create mode 100644 src/Spinner/index.d.ts create mode 100644 src/Stack/types.d.ts diff --git a/src/ActionRow/index.d.ts b/src/ActionRow/index.d.ts new file mode 100644 index 0000000000..59c32e0988 --- /dev/null +++ b/src/ActionRow/index.d.ts @@ -0,0 +1,12 @@ +import { FC, ReactNode } from 'react'; + +export interface ActionRowProps { + as?: string; + className?: string, + isStacked?: boolean; + children?: ReactNode; +} + +declare const ActionRow: FC; + +export default ActionRow; diff --git a/src/Icon/index.d.ts b/src/Icon/index.d.ts index eb8c52ce6f..df0d8af29b 100644 --- a/src/Icon/index.d.ts +++ b/src/Icon/index.d.ts @@ -1,18 +1,20 @@ -import React from 'react'; +import { FC, ReactNode } from 'react'; + +export interface ISvgAttrs { + 'aria-label'?: string; + 'aria-labelledby'?: string; +} export interface IconProps { - src?: React.ReactElement | Function; - svgAttrs?: { - 'aria-label'?: string; - 'aria-labelledby'?: string; - }; + src?: ReactNode | FC; + svgAttrs?: ISvgAttrs, id?: string; size?: 'xs' | 'sm' | 'md' | 'lg'; - className?: string; - hidden?: boolean; - screenReaderText?: React.ReactNode; + className?: string, + hidden?: boolean, + screenReaderText?: string | JSX.Element, } -declare const Icon: React.FC; +declare const Icon: FC; export default Icon; diff --git a/src/IconButton/index.d.ts b/src/IconButton/index.d.ts new file mode 100644 index 0000000000..053f351602 --- /dev/null +++ b/src/IconButton/index.d.ts @@ -0,0 +1,26 @@ +import React from 'react'; + +export type IconButtonProps = React.ButtonHTMLAttributes & { + className?: string; + alt: string; + invertColors?: boolean; + icon?: { prefix: string; iconName: string; icon: any[] }; + src?: React.ElementType; + iconClassNames?: string; + onClick?: () => void; + size?: 'sm' | 'md' | 'inline'; + variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; + iconAs?: React.ElementType; + isActive?: boolean; +}; + +export type IconButtonWithTooltipProps = IconButtonProps & { + tooltipPlacement?: string; + tooltipContent: React.ReactNode; +}; + +const IconButton: React.FunctionComponent; +const IconButtonWithTooltip: React.FunctionComponent; + +export default IconButton; +export { IconButtonWithTooltip }; diff --git a/src/IconButtonToggle/index.d.ts b/src/IconButtonToggle/index.d.ts new file mode 100644 index 0000000000..1cbddc0d8c --- /dev/null +++ b/src/IconButtonToggle/index.d.ts @@ -0,0 +1,14 @@ +import React from 'react'; + +// eslint-disable-next-line import/extensions +import IconButton from './IconButton'; + +export interface IconButtonToggleProps { + activeValue?: string; + onChange?: (value: string) => void; + children: React.ReactElement[]; +} + +const IconButtonToggle: React.FunctionComponent; + +export default IconButtonToggle; diff --git a/src/Layout/index.d.ts b/src/Layout/index.d.ts new file mode 100644 index 0000000000..5a0df350f8 --- /dev/null +++ b/src/Layout/index.d.ts @@ -0,0 +1,15 @@ +import { FC, ReactNode } from 'react'; + +export interface ILayout { + children: ReactNode; + xs?: { span: number | 'auto'; offset?: number | 'auto' }[]; + sm?: { span: number | 'auto'; offset?: number | 'auto' }[]; + md?: { span: number | 'auto'; offset?: number | 'auto' }[]; + lg?: { span: number | 'auto'; offset?: number | 'auto' }[]; + xl?: { span: number | 'auto'; offset?: number | 'auto' }[]; + [key: string]: any; +} + +declare const Layout: FC; + +export default Layout; diff --git a/src/MailtoLink/index.d.ts b/src/MailtoLink/index.d.ts new file mode 100644 index 0000000000..f44b58fb85 --- /dev/null +++ b/src/MailtoLink/index.d.ts @@ -0,0 +1,21 @@ +import { FC, MouseEventHandler, ReactNode } from 'react'; + +export interface IMailtoLink { + children: ReactNode; + className?: string; + to?: string[]; + cc?: string[]; + bcc?: string[]; + subject?: string; + body?: string; + target?: string; + onClick?: MouseEventHandler; + externalLink?: { + alternativeText: string; + title: string; + }; +} + +declare const MailtoLink: FC; + +export default MailtoLink; diff --git a/src/Menu/index.d.ts b/src/Menu/index.d.ts new file mode 100644 index 0000000000..1036bbb617 --- /dev/null +++ b/src/Menu/index.d.ts @@ -0,0 +1,21 @@ +import { FC, ReactNode } from 'react'; + +export interface IMenu { + className?: string; + arrowKeyNavigationSelector?: string; + as?: ElementType; + children?: ReactNode; +} + +export interface IMenuItem { + defaultSelected?: boolean; + className?: string; + children?: ReactNode; + as?: ElementType; + iconBefore?: ReactNode; + iconAfter?: ReactNode; +} + +declare const Menu: FC; + +export default Menu; diff --git a/src/PageBanner/index.d.ts b/src/PageBanner/index.d.ts new file mode 100644 index 0000000000..9551187865 --- /dev/null +++ b/src/PageBanner/index.d.ts @@ -0,0 +1,14 @@ +import { FC, ReactNode } from 'react'; + +export interface PageBannerTypes { + children?: ReactNode; + dismissible?: boolean; + dismissAltText?: ReactNode; + onDismiss?: () => void; + show?: boolean; + variant?: 'light' | 'dark' | 'warning' | 'accentA' | 'accentB'; +} + +declare const PageBanner: FC; + +export default PageBanner; diff --git a/src/Spinner/index.d.ts b/src/Spinner/index.d.ts new file mode 100644 index 0000000000..a8a6148bc8 --- /dev/null +++ b/src/Spinner/index.d.ts @@ -0,0 +1,11 @@ +import { FC, ReactNode } from 'react'; +import { SpinnerProps } from 'react-bootstrap/Spinner'; + +export interface SpinnerTypes extends SpinnerProps { + className?: string; + screenReaderText?: ReactNode; +} + +declare const Spinner: FC; + +export default Spinner; diff --git a/src/Stack/types.d.ts b/src/Stack/types.d.ts new file mode 100644 index 0000000000..e39fb68640 --- /dev/null +++ b/src/Stack/types.d.ts @@ -0,0 +1,10 @@ +import { FC } from 'react'; + +interface StackTypes extends HTMLAttributes { + direction?: typeof DIRECTION_VARIANTS[number]; + gap?: number; +} + +declare const Stack: FC; + +export default Stack; From fc96ceac502f735fc093cd1dcb9c6b004bedf039 Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Wed, 5 Apr 2023 21:59:04 +0300 Subject: [PATCH 02/16] feat: writing type definition for components --- src/ActionRow/index.d.ts | 17 +++++-- src/Icon/index.d.ts | 20 ++++---- src/IconButton/index.d.ts | 38 +++++++++----- src/IconButtonToggle/index.d.ts | 12 ++--- src/Layout/index.d.ts | 39 ++++++++++----- src/MailtoLink/index.d.ts | 16 +++--- src/Menu/MenuItem.d.ts | 14 ++++++ src/Menu/SelectMenu.d.ts | 12 +++++ src/Menu/index.d.ts | 17 ++----- src/Nav/index.d.ts | 64 ++++++++++++++++++++++++ src/Overlay/index.d.ts | 37 ++++++++++++++ src/PageBanner/index.d.ts | 12 +++-- src/ProgressBar/index.d.ts | 24 +++++++++ src/Scrollable/index.d.ts | 10 ++++ src/SelectableBox/SelectableBoxSet.d.ts | 18 +++++++ src/SelectableBox/index.d.ts | 28 +++++++++++ src/Sheet/SheetContainer.d.ts | 12 +++++ src/Sheet/index.d.ts | 29 +++++++++++ src/Spinner/index.d.ts | 10 ++-- src/Stack/index.d.ts | 14 ++++++ src/Stack/types.d.ts | 10 ---- src/StatefulButton/index.d.ts | 21 ++++++++ src/Stepper/index.d.ts | 66 +++++++++++++++++++++++++ src/Sticky/index.d.ts | 14 ++++++ src/Tabs/index.d.ts | 23 +++++++++ src/Toast/ToastContainer.d.ts | 12 +++++ src/Toast/index.d.ts | 24 +++++++++ src/Tooltip/index.d.ts | 38 ++++++++++++++ src/TransitionReplace/index.d.ts | 28 +++++++++++ src/Truncate/index.d.ts | 15 ++++++ 30 files changed, 608 insertions(+), 86 deletions(-) create mode 100644 src/Menu/MenuItem.d.ts create mode 100644 src/Menu/SelectMenu.d.ts create mode 100644 src/Nav/index.d.ts create mode 100644 src/Overlay/index.d.ts create mode 100644 src/ProgressBar/index.d.ts create mode 100644 src/Scrollable/index.d.ts create mode 100644 src/SelectableBox/SelectableBoxSet.d.ts create mode 100644 src/SelectableBox/index.d.ts create mode 100644 src/Sheet/SheetContainer.d.ts create mode 100644 src/Sheet/index.d.ts create mode 100644 src/Stack/index.d.ts delete mode 100644 src/Stack/types.d.ts create mode 100644 src/StatefulButton/index.d.ts create mode 100644 src/Stepper/index.d.ts create mode 100644 src/Sticky/index.d.ts create mode 100644 src/Tabs/index.d.ts create mode 100644 src/Toast/ToastContainer.d.ts create mode 100644 src/Toast/index.d.ts create mode 100644 src/Tooltip/index.d.ts create mode 100644 src/TransitionReplace/index.d.ts create mode 100644 src/Truncate/index.d.ts diff --git a/src/ActionRow/index.d.ts b/src/ActionRow/index.d.ts index 59c32e0988..7fcc5432c7 100644 --- a/src/ActionRow/index.d.ts +++ b/src/ActionRow/index.d.ts @@ -1,12 +1,19 @@ -import { FC, ReactNode } from 'react'; +import * as React from 'react'; export interface ActionRowProps { - as?: string; - className?: string, + as?: keyof JSX.IntrinsicElements; + className?: string; + children?: React.ReactNode; isStacked?: boolean; - children?: ReactNode; } -declare const ActionRow: FC; +declare function ActionRow(props: ActionRowProps): JSX.Element; +declare function ActionRowSpacer(): JSX.Element; + +declare namespace ActionRow { + const Spacer: typeof ActionRowSpacer; +} + +export { ActionRowSpacer }; export default ActionRow; diff --git a/src/Icon/index.d.ts b/src/Icon/index.d.ts index df0d8af29b..6e459fc9ae 100644 --- a/src/Icon/index.d.ts +++ b/src/Icon/index.d.ts @@ -1,20 +1,22 @@ -import { FC, ReactNode } from 'react'; +import * as React from 'react'; -export interface ISvgAttrs { +export type IconSizes = 'xs' | 'sm' | 'md' | 'lg'; + +export interface SvgAttrs { 'aria-label'?: string; 'aria-labelledby'?: string; } export interface IconProps { - src?: ReactNode | FC; - svgAttrs?: ISvgAttrs, + src?: ReactElement | FC<{}>; + svgAttrs?: SvgAttrs; id?: string; - size?: 'xs' | 'sm' | 'md' | 'lg'; - className?: string, - hidden?: boolean, - screenReaderText?: string | JSX.Element, + size?: IconSizes; + className?: string; + hidden?: boolean; + screenReaderText?: string | React.ReactNode; } -declare const Icon: FC; +declare const Icon: React.FC; export default Icon; diff --git a/src/IconButton/index.d.ts b/src/IconButton/index.d.ts index 053f351602..48f7c77db5 100644 --- a/src/IconButton/index.d.ts +++ b/src/IconButton/index.d.ts @@ -1,26 +1,38 @@ -import React from 'react'; +import * as React from 'react'; -export type IconButtonProps = React.ButtonHTMLAttributes & { +export type IconButtonVariants = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; +export type IconButtonSizes = 'sm' | 'md' | 'inline'; + +export interface IconButtonProps extends React.ButtonHTMLAttributes { className?: string; + iconAs?: keyof JSX.IntrinsicElements; + src?: React.ReactElement | React.FC; alt: string; invertColors?: boolean; - icon?: { prefix: string; iconName: string; icon: any[] }; - src?: React.ElementType; + icon?: { + prefix: string; + iconName: string; + icon: any[]; + }; iconClassNames?: string; - onClick?: () => void; - size?: 'sm' | 'md' | 'inline'; - variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; - iconAs?: React.ElementType; + onClick?: (event: React.MouseEvent) => void; + variant?: IconButtonVariants; + size?: IconButtonSizes; isActive?: boolean; -}; +} -export type IconButtonWithTooltipProps = IconButtonProps & { +export interface IconButtonWithTooltipProps extends Omit { tooltipPlacement?: string; tooltipContent: React.ReactNode; -}; +} -const IconButton: React.FunctionComponent; -const IconButtonWithTooltip: React.FunctionComponent; +declare const IconButtonWithTooltip: React.ForwardRefExoticComponent< +IconButtonWithTooltipProps & React.RefAttributes>; + +declare const IconButton: React.ForwardRefExoticComponent< +IconButtonProps & React.RefAttributes> & { + IconButtonWithTooltip: typeof IconButtonWithTooltip; +}; export default IconButton; export { IconButtonWithTooltip }; diff --git a/src/IconButtonToggle/index.d.ts b/src/IconButtonToggle/index.d.ts index 1cbddc0d8c..22c349596d 100644 --- a/src/IconButtonToggle/index.d.ts +++ b/src/IconButtonToggle/index.d.ts @@ -1,14 +1,12 @@ -import React from 'react'; +import * as React from 'react'; +import { IconButtonProps } from '../IconButton'; -// eslint-disable-next-line import/extensions -import IconButton from './IconButton'; - -export interface IconButtonToggleProps { +interface IconButtonToggleProps { activeValue?: string; onChange?: (value: string) => void; - children: React.ReactElement[]; + children: React.ReactElement[]; } -const IconButtonToggle: React.FunctionComponent; +declare const IconButtonToggle: React.FC; export default IconButtonToggle; diff --git a/src/Layout/index.d.ts b/src/Layout/index.d.ts index 5a0df350f8..93e0180f33 100644 --- a/src/Layout/index.d.ts +++ b/src/Layout/index.d.ts @@ -1,15 +1,32 @@ -import { FC, ReactNode } from 'react'; - -export interface ILayout { - children: ReactNode; - xs?: { span: number | 'auto'; offset?: number | 'auto' }[]; - sm?: { span: number | 'auto'; offset?: number | 'auto' }[]; - md?: { span: number | 'auto'; offset?: number | 'auto' }[]; - lg?: { span: number | 'auto'; offset?: number | 'auto' }[]; - xl?: { span: number | 'auto'; offset?: number | 'auto' }[]; - [key: string]: any; +import * as React from 'react'; +import { RowProps } from 'react-bootstrap'; + +export type LayoutElementProps = React.HTMLAttributes; +export type ColSpanValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto'; + +export declare const LayoutElement: React.ForwardRefExoticComponent< +LayoutElementProps & React.RefAttributes>; + +export interface ColLayout { + span: ColSpanValue; + offset?: number; +} + +export interface LayoutProps extends RowProps { + children: React.ReactNode; + xs?: ColLayout[]; + sm?: ColLayout[]; + md?: ColLayout[]; + lg?: ColLayout[]; + xl?: ColLayout[]; +} + +export interface LayoutComponent extends React.ForwardRefExoticComponent< +LayoutProps & React.RefAttributes +> { + Element: typeof LayoutElement; } -declare const Layout: FC; +declare const Layout: LayoutComponent; export default Layout; diff --git a/src/MailtoLink/index.d.ts b/src/MailtoLink/index.d.ts index f44b58fb85..af2b733c21 100644 --- a/src/MailtoLink/index.d.ts +++ b/src/MailtoLink/index.d.ts @@ -1,21 +1,21 @@ -import { FC, MouseEventHandler, ReactNode } from 'react'; +import * as React from 'react'; -export interface IMailtoLink { - children: ReactNode; +export interface MailtoLinkProps { + children: React.ReactNode; className?: string; - to?: string[]; - cc?: string[]; - bcc?: string[]; + to?: string[] | string; + cc?: string[] | string; + bcc?: string[] | string; subject?: string; body?: string; target?: string; - onClick?: MouseEventHandler; + onClick?: React.MouseEventHandler; externalLink?: { alternativeText: string; title: string; }; } -declare const MailtoLink: FC; +declare const MailtoLink: React.ForwardRefExoticComponent>; export default MailtoLink; diff --git a/src/Menu/MenuItem.d.ts b/src/Menu/MenuItem.d.ts new file mode 100644 index 0000000000..8d4fe971f8 --- /dev/null +++ b/src/Menu/MenuItem.d.ts @@ -0,0 +1,14 @@ +import * as React from 'react'; + +interface MenuItemProps extends React.HTMLAttributes { + defaultSelected?: boolean; + className?: string; + children?: React.ReactNode; + as?: keyof JSX.IntrinsicElements | React.ComponentType; + iconBefore?: React.ReactNode; + iconAfter?: React.ReactNode; +} + +declare const MenuItem: React.FC; + +export default MenuItem; diff --git a/src/Menu/SelectMenu.d.ts b/src/Menu/SelectMenu.d.ts new file mode 100644 index 0000000000..3c4f9f45d4 --- /dev/null +++ b/src/Menu/SelectMenu.d.ts @@ -0,0 +1,12 @@ +import * as React from 'react'; + +interface SelectMenuProps { + defaultMessage?: string; + isLink?: boolean; + children: React.ReactNode; + className?: string; +} + +declare const SelectMenu: React.FC; + +export default SelectMenu; diff --git a/src/Menu/index.d.ts b/src/Menu/index.d.ts index 1036bbb617..a542bb80cc 100644 --- a/src/Menu/index.d.ts +++ b/src/Menu/index.d.ts @@ -1,21 +1,12 @@ -import { FC, ReactNode } from 'react'; +import * as React from 'react'; export interface IMenu { className?: string; arrowKeyNavigationSelector?: string; - as?: ElementType; - children?: ReactNode; + as?: keyof JSX.IntrinsicElements; + children?: React.ReactNode; } -export interface IMenuItem { - defaultSelected?: boolean; - className?: string; - children?: ReactNode; - as?: ElementType; - iconBefore?: ReactNode; - iconAfter?: ReactNode; -} - -declare const Menu: FC; +declare const Menu: React.FC; export default Menu; diff --git a/src/Nav/index.d.ts b/src/Nav/index.d.ts new file mode 100644 index 0000000000..2d2ad25552 --- /dev/null +++ b/src/Nav/index.d.ts @@ -0,0 +1,64 @@ +import * as React from 'react'; +import { HTMLAttributes } from 'react'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; + +export interface NavProps extends BsPrefixProps, HTMLAttributes { + activeKey?: string | number; + as?: keyof JSX.IntrinsicElements; + fill?: boolean; + justify?: boolean; + navbar?: boolean; + onSelect?: string; + role?: string; + onKeyDown?: (event: React.KeyboardEvent) => void; + variant?: 'tabs' | 'pills'; +} + +export interface NavItemProps extends BsPrefixProps, HTMLAttributes { + as?: keyof JSX.IntrinsicElements; +} + +export interface NavLinkProps extends BsPrefixProps, HTMLAttributes { + active?: boolean; + as?: keyof JSX.IntrinsicElements; + disabled?: boolean; + eventKey?: string | number; + href?: string; + role?: string; +} + +export interface NavDropdownProps extends BsPrefixProps, HTMLAttributes { + id: string; + title: React.ReactNode; + active?: boolean; + disabled?: boolean; + menuRole?: string; + menuVariant?: 'dark'; + onClick?: (event: React.SyntheticEvent) => void; + renderMenuOnMount?: boolean; + rootCloseEvent?: string; +} + +export interface NavDropdownItemProps extends BsPrefixProps, HTMLAttributes {} + +export interface NavDropdownDividerProps extends BsPrefixProps, HTMLAttributes {} + +declare const NavDropdownItem: React.ForwardRefExoticComponent>; +declare const NavDropdownDivider: React.ForwardRefExoticComponent< +NavDropdownDividerProps & React.RefAttributes>; +declare const NavItem: React.ForwardRefExoticComponent>; +declare const NavLink: React.ForwardRefExoticComponent>; + +declare const Nav: React.ForwardRefExoticComponent & { + Item: React.ForwardRefExoticComponent>; + Link: React.ForwardRefExoticComponent>; + Dropdown: React.ForwardRefExoticComponent> & { + Item: React.ForwardRefExoticComponent>; + Divider: React.ForwardRefExoticComponent>; + }; +}; + +export default Nav; +export { + NavDropdownItem, NavDropdownDivider, NavItem, NavLink, +}; diff --git a/src/Overlay/index.d.ts b/src/Overlay/index.d.ts new file mode 100644 index 0000000000..2ee3b27026 --- /dev/null +++ b/src/Overlay/index.d.ts @@ -0,0 +1,37 @@ +import * as React from 'react'; +import { Placement } from '@popperjs/core'; +import { TransitionProps } from 'react-transition-group/Transition'; +import { FadeProps } from 'react-bootstrap/Fade'; + +export interface OverlayProps extends React.HTMLAttributes { + show: boolean; + onHide: () => void; + placement?: Placement; + container?: Element | (() => Element | null) | null; + flip?: boolean; + popperConfig?: Object; + rootClose?: boolean; + rootCloseEvent?: 'click' | 'mousedown'; + transition?: FadeProps | TransitionProps; + onEnter?: () => void; + onEntered?: () => void; + onEntering?: () => void; + onExit?: () => void; + onExited?: () => void; + onExiting?: () => void; + target: Element | (() => Element | null) | null; +} + +export interface OverlayTriggerProps extends OverlayProps { + trigger: 'click' | 'hover' | 'focus'; + delay?: number | { show: number; hide: number }; + defaultShow?: boolean; + onToggle?: (show: boolean) => void; + overlay: React.ReactNode | ((props: any) => React.ReactNode); +} + +declare const Overlay: React.FC; +declare const OverlayTrigger: React.FC; + +export default Overlay; +export { OverlayTrigger }; diff --git a/src/PageBanner/index.d.ts b/src/PageBanner/index.d.ts index 9551187865..0f8ac152da 100644 --- a/src/PageBanner/index.d.ts +++ b/src/PageBanner/index.d.ts @@ -1,14 +1,16 @@ -import { FC, ReactNode } from 'react'; +import * as React from 'react'; + +export type PageBannerVariants = 'light' | 'dark' | 'warning' | 'accentA' | 'accentB'; export interface PageBannerTypes { - children?: ReactNode; + children?: React.ReactNode; dismissible?: boolean; - dismissAltText?: ReactNode; + dismissAltText?: React.ReactNode; onDismiss?: () => void; show?: boolean; - variant?: 'light' | 'dark' | 'warning' | 'accentA' | 'accentB'; + variant?: PageBannerVariants; } -declare const PageBanner: FC; +declare const PageBanner: React.FC; export default PageBanner; diff --git a/src/ProgressBar/index.d.ts b/src/ProgressBar/index.d.ts new file mode 100644 index 0000000000..78b91525e7 --- /dev/null +++ b/src/ProgressBar/index.d.ts @@ -0,0 +1,24 @@ +import * as React from 'react'; + +export type ProgressBarVariant = 'dark' | 'warning' | 'success' | 'error'; + +export interface ProgressBarProps { + now?: number; + label?: React.ReactNode; + variant?: ProgressBarVariant; + className?: string; +} + +export interface ProgressBarAnnotatedProps extends ProgressBarProps { + threshold?: number; + thresholdLabel?: React.ReactNode; + thresholdVariant?: ProgressBarVariant; + progressHint?: React.ReactNode; + thresholdHint?: React.ReactNode; +} + +declare const ProgressBar: React.FC & { + Annotated: React.FC; +}; + +export default ProgressBar; diff --git a/src/Scrollable/index.d.ts b/src/Scrollable/index.d.ts new file mode 100644 index 0000000000..381e315544 --- /dev/null +++ b/src/Scrollable/index.d.ts @@ -0,0 +1,10 @@ +import * as React from 'react'; + +export interface ScrollableProps extends React.HTMLAttributes { + children: React.ReactNode; + className?: string; +} + +declare function Scrollable(props: ScrollableProps): JSX.Element; + +export default Scrollable; diff --git a/src/SelectableBox/SelectableBoxSet.d.ts b/src/SelectableBox/SelectableBoxSet.d.ts new file mode 100644 index 0000000000..4dc9d93ba4 --- /dev/null +++ b/src/SelectableBox/SelectableBoxSet.d.ts @@ -0,0 +1,18 @@ +import * as React from 'react'; + +export interface SelectableBoxSetProps { + name: string; + children?: React.ReactNode; + onChange?: React.ChangeEventHandler; + value?: string | number | Array; + defaultValue?: string | number; + type?: 'radio' | 'checkbox'; + columns?: number; + className?: string; +} + +declare const SelectableBoxSet: React.ForwardRefExoticComponent< +SelectableBoxSetProps & React.RefAttributes +>; + +export default SelectableBoxSet; diff --git a/src/SelectableBox/index.d.ts b/src/SelectableBox/index.d.ts new file mode 100644 index 0000000000..a1f6cfa13f --- /dev/null +++ b/src/SelectableBox/index.d.ts @@ -0,0 +1,28 @@ +import * as React from 'react'; +import SelectableBoxSet from './SelectableBoxSet'; + +export type InputProps = React.InputHTMLAttributes; + +export interface SelectableBoxProps extends React.HTMLAttributes { + value?: string | number; + checked?: boolean; + type?: 'radio' | 'checkbox'; + onClick?: (inputRef: HTMLInputElement) => void; + onFocus?: () => void; + inputHidden?: boolean; + isIndeterminate?: boolean; + isInvalid?: boolean; + className?: string; +} + +type SelectableBoxRef = HTMLDivElement & { + inputRef?: HTMLInputElement; +}; + +declare const SelectableBox: React.ForwardRefExoticComponent< +SelectableBoxProps & React.RefAttributes +> & { + Set: typeof SelectableBoxSet; +}; + +export default SelectableBox; diff --git a/src/Sheet/SheetContainer.d.ts b/src/Sheet/SheetContainer.d.ts new file mode 100644 index 0000000000..1b2b42bc80 --- /dev/null +++ b/src/Sheet/SheetContainer.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable react/require-default-props */ +/* eslint-disable react/no-unused-prop-types */ +import * as React from 'react'; + +export interface SheetContainerProps { + children: React.ReactNode; +} + +// eslint-disable-next-line react/prefer-stateless-function +declare class SheetContainer extends React.Component {} + +export default SheetContainer; diff --git a/src/Sheet/index.d.ts b/src/Sheet/index.d.ts new file mode 100644 index 0000000000..91b5ea7fc2 --- /dev/null +++ b/src/Sheet/index.d.ts @@ -0,0 +1,29 @@ +/* eslint-disable react/require-default-props */ +/* eslint-disable react/no-unused-prop-types */ +import * as React from 'react'; + +export declare const POSITIONS: { + left: string; + right: string; + top: string; + bottom: string; +}; + +export declare const VARIANTS: { + light: string; + dark: string; +}; + +export interface SheetProps { + blocking?: boolean; + children?: React.ReactNode; + position?: keyof typeof POSITIONS; + show?: boolean; + onClose?: () => void; + variant?: keyof typeof VARIANTS; +} + +// eslint-disable-next-line react/prefer-stateless-function +declare class Sheet extends React.Component {} + +export default Sheet; diff --git a/src/Spinner/index.d.ts b/src/Spinner/index.d.ts index a8a6148bc8..ca26a24058 100644 --- a/src/Spinner/index.d.ts +++ b/src/Spinner/index.d.ts @@ -1,11 +1,11 @@ -import { FC, ReactNode } from 'react'; -import { SpinnerProps } from 'react-bootstrap/Spinner'; +import * as React from 'react'; +import { SpinnerProps as BaseSpinnerProps } from 'react-bootstrap/Spinner'; -export interface SpinnerTypes extends SpinnerProps { +export interface SpinnerProps extends BaseSpinnerProps { className?: string; - screenReaderText?: ReactNode; + screenReaderText?: React.ReactNode; } -declare const Spinner: FC; +declare const Spinner: React.ForwardRefExoticComponent>; export default Spinner; diff --git a/src/Stack/index.d.ts b/src/Stack/index.d.ts new file mode 100644 index 0000000000..98e7cfd636 --- /dev/null +++ b/src/Stack/index.d.ts @@ -0,0 +1,14 @@ +import * as React from 'react'; + +export type DirectionVariants = 'horizontal' | 'vertical'; + +export interface StackProps extends React.HTMLAttributes { + children: React.ReactNode; + direction?: DirectionVariants; + gap?: number; + className?: string; +} + +declare const Stack: React.ForwardRefExoticComponent; + +export default Stack; diff --git a/src/Stack/types.d.ts b/src/Stack/types.d.ts deleted file mode 100644 index e39fb68640..0000000000 --- a/src/Stack/types.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { FC } from 'react'; - -interface StackTypes extends HTMLAttributes { - direction?: typeof DIRECTION_VARIANTS[number]; - gap?: number; -} - -declare const Stack: FC; - -export default Stack; diff --git a/src/StatefulButton/index.d.ts b/src/StatefulButton/index.d.ts new file mode 100644 index 0000000000..5dc42cda47 --- /dev/null +++ b/src/StatefulButton/index.d.ts @@ -0,0 +1,21 @@ +import * as React from 'react'; + +export type StatefulButtonState = 'default' | 'pending' | 'complete' | 'error'; + +export type DefaultValuesForLabelsAndIcons = { + default: React.ReactNode; + [key: string]: React.ReactNode; +}; + +export interface StatefulButtonProps extends React.ButtonHTMLAttributes { + className?: string; + state?: StatefulButtonState; + labels: DefaultValuesForLabelsAndIcons; + icons?: DefaultValuesForLabelsAndIcons; + disabledStates?: StatefulButtonState[]; + onClick?: (e: React.MouseEvent) => void; +} + +declare const StatefulButton: React.FC; + +export default StatefulButton; diff --git a/src/Stepper/index.d.ts b/src/Stepper/index.d.ts new file mode 100644 index 0000000000..4ae4da9919 --- /dev/null +++ b/src/Stepper/index.d.ts @@ -0,0 +1,66 @@ +// import * as React from 'react'; + +// interface StepperProps { +// children: React.ReactNode; +// activeKey: string; +// } + +// declare function Stepper(props: StepperProps): JSX.Element; + +// declare namespace Stepper { +// export const Step: typeof import('./StepperStep').default; +// export const Header: typeof import('./StepperHeader').default; +// export const ActionRow: typeof import('./StepperActionRow').default; +// } + +// export default Stepper; + +// interface StepperActionRowProps { +// as?: React.ElementType; +// children: React.ReactNode; +// eventKey: string; +// } + +// declare function StepperActionRow(props: StepperActionRowProps): JSX.Element; + +// declare namespace StepperActionRow { +// export const Spacer: typeof import('..').ActionRow.Spacer; +// } + +// export default StepperActionRow; + +// interface Step { +// eventKey: string; +// label: string; +// index?: number; +// } + +// interface StepperContextType { +// activeKey: string; +// registerStep: (step: Step) => void; +// steps: Step[]; +// removeStep: (eventKey: string) => void; +// getIsComplete: (eventKey: string) => boolean; +// } + +// declare const StepperContext: React.Context; + +// interface StepperContextProviderProps { +// children: React.ReactNode; +// activeKey: string; +// } + +// declare function StepperContextProvider(props: StepperContextProviderProps): JSX.Element; + +// export { +// StepperContext, StepperContextProvider, Step, stepsReducer, +// }; + +// interface StepperHeaderProps { +// className?: string; +// PageCountComponent?: React.FC<{ activeStepIndex: number; totalSteps: number }>; +// } + +// declare function StepperHeader(props: StepperHeaderProps): JSX.Element; + +// export default StepperHeader; diff --git a/src/Sticky/index.d.ts b/src/Sticky/index.d.ts new file mode 100644 index 0000000000..c778d39535 --- /dev/null +++ b/src/Sticky/index.d.ts @@ -0,0 +1,14 @@ +import * as React from 'react'; + +export type PositionVariant = 'top' | 'bottom'; + +export interface StickyProps { + children: React.ReactNode; + position?: PositionVariant; + offset?: number | string; + className?: string; +} + +declare const Sticky: React.ForwardRefExoticComponent>; + +export default Sticky; diff --git a/src/Tabs/index.d.ts b/src/Tabs/index.d.ts new file mode 100644 index 0000000000..7e0afb4ec9 --- /dev/null +++ b/src/Tabs/index.d.ts @@ -0,0 +1,23 @@ +import * as React from 'react'; + +export interface TabsProps { + children: React.ReactNode; + className?: string; + moreTabText?: string; + defaultActiveKey?: string; + activeKey?: string; +} + +export interface TabProps { + title: React.ReactNode; + notification?: React.ReactNode; + disabled?: boolean; + eventKey?: string | number; + tabClassName?: string; +} + +declare const Tabs: React.FC; +declare const Tab: React.FC; + +export default Tabs; +export { Tab }; diff --git a/src/Toast/ToastContainer.d.ts b/src/Toast/ToastContainer.d.ts new file mode 100644 index 0000000000..3c77b88b1e --- /dev/null +++ b/src/Toast/ToastContainer.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable react/require-default-props */ +/* eslint-disable react/no-unused-prop-types */ +import * as React from 'react'; + +export interface ToastContainerProps { + children: React.ReactNode; +} + +// eslint-disable-next-line react/prefer-stateless-function +declare class ToastContainer extends React.Component {} + +export default ToastContainer; diff --git a/src/Toast/index.d.ts b/src/Toast/index.d.ts new file mode 100644 index 0000000000..77fd7218ed --- /dev/null +++ b/src/Toast/index.d.ts @@ -0,0 +1,24 @@ +import * as React from 'react'; + +export interface ToastActionProps { + label: string; + href?: string; + onClick?: () => void; +} + +export interface ToastProps extends React.HTMLAttributes { + children: string; + onClose: () => void; + show: boolean; + action?: ToastActionProps; + closeLabel?: string; + delay?: number; + className?: string; +} + +// export const TOAST_CLOSE_LABEL_TEXT: string; +// export const TOAST_DELAY: number; + +declare function Toast(props: ToastProps): JSX.Element; + +export default Toast; diff --git a/src/Tooltip/index.d.ts b/src/Tooltip/index.d.ts new file mode 100644 index 0000000000..c408f5cca3 --- /dev/null +++ b/src/Tooltip/index.d.ts @@ -0,0 +1,38 @@ +import * as React from 'react'; +import { TooltipProps as BaseTooltipProps } from 'react-bootstrap/Tooltip'; + +export type PlacementVariant = +| 'auto-start' +| 'auto' +| 'auto-end' +| 'top-start' +| 'top' +| 'top-end' +| 'right-start' +| 'right' +| 'right-end' +| 'bottom-end' +| 'bottom' +| 'bottom-start' +| 'left-end' +| 'left' +| 'left-start'; + +export interface TooltipProps extends BaseTooltipProps { + id: string; + placement?: PlacementVariant; + arrowProps?: { + ref?: ((element: HTMLElement | null) => void) | React.RefObject; + style?: React.CSSProperties; + }; + show?: boolean; + popper?: Object; + children?: React.ReactNode; + className?: string; + variant?: string; + bsPrefix?: string; +} + +declare const Tooltip: React.ForwardRefExoticComponent>; + +export default Tooltip; diff --git a/src/TransitionReplace/index.d.ts b/src/TransitionReplace/index.d.ts new file mode 100644 index 0000000000..e719678c06 --- /dev/null +++ b/src/TransitionReplace/index.d.ts @@ -0,0 +1,28 @@ +/* eslint-disable react/require-default-props */ +/* eslint-disable react/no-unused-prop-types */ +import * as React from 'react'; + +export interface TransitionReplaceProps { + children?: React.ReactElement; + enterDuration?: number; + exitDuration?: number; + className?: string; + onChildEnter?: (node: HTMLElement) => void; + onChildEntering?: (node: HTMLElement) => void; + onChildEntered?: (node: HTMLElement) => void; + onChildExit?: (node: HTMLElement) => void; + onChildExiting?: (node: HTMLElement) => void; + onChildExited?: (node: HTMLElement) => void; + transitionClassNames?: string; + transitionStyles?: { + entering?: React.CSSProperties; + entered?: React.CSSProperties; + exiting?: React.CSSProperties; + exited?: React.CSSProperties; + }; +} + +// eslint-disable-next-line react/prefer-stateless-function +declare class TransitionReplace extends React.Component {} + +export default TransitionReplace; diff --git a/src/Truncate/index.d.ts b/src/Truncate/index.d.ts new file mode 100644 index 0000000000..c4944a8db2 --- /dev/null +++ b/src/Truncate/index.d.ts @@ -0,0 +1,15 @@ +import * as React from 'react'; + +export interface TruncateProps { + children: string; + lines?: string | number; + ellipsis?: string | number | React.ReactNode; + whiteSpace?: boolean; + elementType?: string; + className?: string; + onTruncate?: (truncated: HTMLElement[]) => void; +} + +declare const Truncate: React.FC; + +export default Truncate; From 171cee463a6e537914cc7dc960f6168cca7e9676 Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Thu, 6 Apr 2023 21:19:12 +0300 Subject: [PATCH 03/16] feat: added file d.ts for Search Field, Pagination, Menu, ProductTour, Popover components --- src/ActionRow/index.d.ts | 8 +-- src/Modal/AlertModal.d.ts | 20 ++++++ src/Modal/FullscreenModal.d.ts | 22 +++++++ src/Modal/MarketingModal.d.ts | 23 +++++++ src/Modal/ModalCloseButton.d.ts | 13 ++++ src/Modal/ModalContext.d.ts | 21 +++++++ src/Modal/ModalDialog.d.ts | 42 +++++++++++++ src/Modal/ModalDialogBody.d.ts | 11 ++++ src/Modal/ModalDialogFooter.d.ts | 8 +++ src/Modal/ModalDialogHeader.d.ts | 8 +++ src/Modal/ModalDialogHero.d.ts | 11 ++++ src/Modal/ModalDialogHeroBackground.d.ts | 11 ++++ src/Modal/ModalDialogHeroContent.d.ts | 8 +++ src/Modal/ModalDialogTitle.d.ts | 8 +++ src/Modal/ModalLayer.d.ts | 15 +++++ src/Modal/ModalPopup.d.ts | 17 +++++ src/Modal/PopoverElement.d.ts | 18 ++++++ src/Modal/Portal.d.ts | 11 ++++ src/Modal/StandartModal.d.ts | 21 +++++++ src/Modal/index.d.ts | 31 +++++++++ src/Pagination/index.d.ts | 38 +++++++++++ src/Popover/index.d.ts | 29 +++++++++ src/ProductTour/Checkpoint.d.ts | 24 +++++++ src/ProductTour/CheckpointActionRow.d.ts | 19 ++++++ src/ProductTour/CheckpointBody.d.ts | 10 +++ src/ProductTour/CheckpointBreadcrumbs.d.ts | 11 ++++ src/ProductTour/CheckpointTitle.d.ts | 10 +++ src/ProductTour/index.d.ts | 51 +++++++++++++++ src/SearchField/SearchFieldAdvanced.d.ts | 28 +++++++++ src/SearchField/SearchFieldInput.d.ts | 10 +++ src/SearchField/SearchFieldLabel.d.ts | 9 +++ src/SearchField/SearchFieldSubmitButton.d.ts | 11 ++++ src/SearchField/SearchFileClearButton.d.ts | 7 +++ src/SearchField/index.d.ts | 43 +++++++++++++ src/Stepper/Stepper.Step.d.ts | 13 ++++ src/Stepper/Stepper.d.ts | 20 ++++++ src/Stepper/StepperActionRow.d.ts | 11 ++++ src/Stepper/StepperContext.d.ts | 15 +++++ src/Stepper/StepperHeader.d.ts | 12 ++++ src/Stepper/StepperHeaderStep.d.ts | 13 ++++ src/Stepper/index.d.ts | 66 -------------------- 41 files changed, 706 insertions(+), 71 deletions(-) create mode 100644 src/Modal/AlertModal.d.ts create mode 100644 src/Modal/FullscreenModal.d.ts create mode 100644 src/Modal/MarketingModal.d.ts create mode 100644 src/Modal/ModalCloseButton.d.ts create mode 100644 src/Modal/ModalContext.d.ts create mode 100644 src/Modal/ModalDialog.d.ts create mode 100644 src/Modal/ModalDialogBody.d.ts create mode 100644 src/Modal/ModalDialogFooter.d.ts create mode 100644 src/Modal/ModalDialogHeader.d.ts create mode 100644 src/Modal/ModalDialogHero.d.ts create mode 100644 src/Modal/ModalDialogHeroBackground.d.ts create mode 100644 src/Modal/ModalDialogHeroContent.d.ts create mode 100644 src/Modal/ModalDialogTitle.d.ts create mode 100644 src/Modal/ModalLayer.d.ts create mode 100644 src/Modal/ModalPopup.d.ts create mode 100644 src/Modal/PopoverElement.d.ts create mode 100644 src/Modal/Portal.d.ts create mode 100644 src/Modal/StandartModal.d.ts create mode 100644 src/Modal/index.d.ts create mode 100644 src/Pagination/index.d.ts create mode 100644 src/Popover/index.d.ts create mode 100644 src/ProductTour/Checkpoint.d.ts create mode 100644 src/ProductTour/CheckpointActionRow.d.ts create mode 100644 src/ProductTour/CheckpointBody.d.ts create mode 100644 src/ProductTour/CheckpointBreadcrumbs.d.ts create mode 100644 src/ProductTour/CheckpointTitle.d.ts create mode 100644 src/ProductTour/index.d.ts create mode 100644 src/SearchField/SearchFieldAdvanced.d.ts create mode 100644 src/SearchField/SearchFieldInput.d.ts create mode 100644 src/SearchField/SearchFieldLabel.d.ts create mode 100644 src/SearchField/SearchFieldSubmitButton.d.ts create mode 100644 src/SearchField/SearchFileClearButton.d.ts create mode 100644 src/SearchField/index.d.ts create mode 100644 src/Stepper/Stepper.Step.d.ts create mode 100644 src/Stepper/Stepper.d.ts create mode 100644 src/Stepper/StepperActionRow.d.ts create mode 100644 src/Stepper/StepperContext.d.ts create mode 100644 src/Stepper/StepperHeader.d.ts create mode 100644 src/Stepper/StepperHeaderStep.d.ts delete mode 100644 src/Stepper/index.d.ts diff --git a/src/ActionRow/index.d.ts b/src/ActionRow/index.d.ts index 7fcc5432c7..0d91e576ef 100644 --- a/src/ActionRow/index.d.ts +++ b/src/ActionRow/index.d.ts @@ -7,13 +7,11 @@ export interface ActionRowProps { isStacked?: boolean; } -declare function ActionRow(props: ActionRowProps): JSX.Element; - declare function ActionRowSpacer(): JSX.Element; -declare namespace ActionRow { - const Spacer: typeof ActionRowSpacer; -} +declare const ActionRow: React.FC & { + Spacer: typeof ActionRowSpacer; +}; export { ActionRowSpacer }; export default ActionRow; diff --git a/src/Modal/AlertModal.d.ts b/src/Modal/AlertModal.d.ts new file mode 100644 index 0000000000..06ec754e47 --- /dev/null +++ b/src/Modal/AlertModal.d.ts @@ -0,0 +1,20 @@ +import * as React from 'react'; + +export interface Props { + children: React.ReactNode; + title: string; + isOpen?: boolean; + isBlocking?: boolean; + hasCloseButton?: boolean; + onClose?: () => void; + size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; + variant?: 'default' | 'warning' | 'danger' | 'success' | 'dark'; + closeLabel?: string; + className?: string; + isFullscreenScroll?: boolean; + footerNode?: React.ReactNode; +} + +declare function AlertModal(props: Props): JSX.Element; + +export default AlertModal; diff --git a/src/Modal/FullscreenModal.d.ts b/src/Modal/FullscreenModal.d.ts new file mode 100644 index 0000000000..dbb980b6c2 --- /dev/null +++ b/src/Modal/FullscreenModal.d.ts @@ -0,0 +1,22 @@ +import * as React from 'react'; + +export interface FullscreenModalProps { + children: React.ReactNode; + className?: string; + title: string; + onClose: () => void; + isOpen?: boolean; + hasCloseButton?: boolean; + size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; + variant?: 'default' | 'warning' | 'danger' | 'success' | 'dark'; + closeLabel?: string; + isFullscreenScroll?: boolean; + footerNode?: React.ReactNode; + beforeBodyNode?: React.ReactNode; + afterBodyNode?: React.ReactNode; + modalBodyClassName?: string; +} + +export const FullscreenModal: React.FC; + +export default FullscreenModal; diff --git a/src/Modal/MarketingModal.d.ts b/src/Modal/MarketingModal.d.ts new file mode 100644 index 0000000000..1e56ddf1a2 --- /dev/null +++ b/src/Modal/MarketingModal.d.ts @@ -0,0 +1,23 @@ +import * as React from 'react'; + +export interface MarketingModalProps { + children: React.ReactNode; + title: string; + isOpen?: boolean; + isBlocking?: boolean; + hasCloseButton?: boolean; + onClose?: () => void; + size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; + closeLabel?: string; + className?: string; + isFullscreenScroll?: boolean; + footerNode?: React.ReactNode; + heroIsDark?: boolean; + heroNode?: React.ReactNode; + beforeBodyNode?: React.ReactNode; + afterBodyNode?: React.ReactNode; +} + +declare const MarketingModal = React.FC; + +export default MarketingModal; diff --git a/src/Modal/ModalCloseButton.d.ts b/src/Modal/ModalCloseButton.d.ts new file mode 100644 index 0000000000..8ced9eb873 --- /dev/null +++ b/src/Modal/ModalCloseButton.d.ts @@ -0,0 +1,13 @@ +import * as React from 'react'; + +export interface ModalCloseButtonProps extends React.ButtonHTMLAttributes { + as?: keyof JSX.IntrinsicElements; + children?: React.ReactNode; + className?: string; + onClick?: () => void; +} + +declare const ModalCloseButton: React.ForwardRefExoticComponent< +ModalCloseButtonProps & React.RefAttributes>; + +export default ModalCloseButton; diff --git a/src/Modal/ModalContext.d.ts b/src/Modal/ModalContext.d.ts new file mode 100644 index 0000000000..0a853dc3cd --- /dev/null +++ b/src/Modal/ModalContext.d.ts @@ -0,0 +1,21 @@ +import * as React from 'react'; + +export interface ModalContextValue { + onClose: () => void; + isOpen: boolean; + isBlocking: boolean; +} + +export interface ModalContextProviderProps { + children?: React.ReactNode; + onClose: () => void; + isBlocking?: boolean; + isOpen: boolean; +} + +declare const ModalContext: React.FC; + +declare function ModalContextProvider(props: ModalContextProviderProps): JSX.Element; + +export { ModalContextProvider }; +export default ModalContext; diff --git a/src/Modal/ModalDialog.d.ts b/src/Modal/ModalDialog.d.ts new file mode 100644 index 0000000000..d6d543f233 --- /dev/null +++ b/src/Modal/ModalDialog.d.ts @@ -0,0 +1,42 @@ +import * as React from 'react'; +import { ModalDialogHeaderProps } from './ModalDialogHeader'; +import { ModalDialogFooterProps } from './ModalDialogFooter'; +import { ModalDialogTitleProps } from './ModalDialogTitle'; +import { ModalCloseButtonProps } from './ModalCloseButton'; +import { ModalDialogHeroProps } from './ModalDialogHero'; +import { ModalDialogBodyProps } from './ModalDialogBody'; +import { ModalDialogHeroContentProps } from './ModalDialogHeroContent'; +import { ModalDialogHeroBackgroundProps } from './ModalDialogHeroBackground'; + +export type ModalDialogSizes = 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; +export type ModalDialogVariants = 'default' | 'warning' | 'danger' | 'success' | 'dark'; + +export interface ModalDialogProps { + children: React.ReactNode; + title: string; + isOpen?: boolean; + onClose: () => void; + hasCloseButton?: boolean; + size?: ModalDialogSizes; + variant?: ModalDialogVariants; + closeLabel?: string; + className?: string; + isFullscreenScroll?: boolean; + isFullscreenOnMobile?: boolean; + isBlocking?: boolean; + zIndex?: number | undefined; +} + +declare const ModalDialog: React.FC & { + Header: React.FC; + Title: React.FC; + Footer: React.FC; + CloseButton: React.FC; + Body: React.FC; + Hero: React.FC & { + Content: React.FC; + Background: React.FC; + } +}; + +export default ModalDialog; diff --git a/src/Modal/ModalDialogBody.d.ts b/src/Modal/ModalDialogBody.d.ts new file mode 100644 index 0000000000..38545bf432 --- /dev/null +++ b/src/Modal/ModalDialogBody.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export interface ModalDialogBodyProps { + as?: keyof JSX.IntrinsicElements; + children: React.ReactNode; + className?: string; +} + +declare const ModalDialogBody = React.FC; + +export default ModalDialogBody; diff --git a/src/Modal/ModalDialogFooter.d.ts b/src/Modal/ModalDialogFooter.d.ts new file mode 100644 index 0000000000..6e70d0f931 --- /dev/null +++ b/src/Modal/ModalDialogFooter.d.ts @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { ModalDialogBodyProps } from './ModalDialogBody'; + +export interface ModalDialogFooterProps extends ModalDialogBodyProps {} + +export const ModalDialogFooter = React.FC; + +export default ModalDialogFooter; diff --git a/src/Modal/ModalDialogHeader.d.ts b/src/Modal/ModalDialogHeader.d.ts new file mode 100644 index 0000000000..cae8cce838 --- /dev/null +++ b/src/Modal/ModalDialogHeader.d.ts @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { ModalDialogBodyProps } from './ModalDialogBody'; + +export interface ModalDialogHeaderProps extends ModalDialogBodyProps {} + +export const ModalDialogHeader = React.FC; + +export default ModalDialogHeader; diff --git a/src/Modal/ModalDialogHero.d.ts b/src/Modal/ModalDialogHero.d.ts new file mode 100644 index 0000000000..320b49f973 --- /dev/null +++ b/src/Modal/ModalDialogHero.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export interface ModalDialogHeroProps extends React.HTMLProps { + as?: keyof JSX.IntrinsicElements; + children: React.ReactNode; + className?: string; +} + +declare const ModalDialogHero: React.FC; + +export default ModalDialogHero; diff --git a/src/Modal/ModalDialogHeroBackground.d.ts b/src/Modal/ModalDialogHeroBackground.d.ts new file mode 100644 index 0000000000..a3aa144e4a --- /dev/null +++ b/src/Modal/ModalDialogHeroBackground.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export interface ModalDialogHeroBackgroundProps extends React.HTMLProps { + as?: keyof JSX.IntrinsicElements; + backgroundSrc?: string; + children?: React.ReactNode; +} + +declare const ModalDialogHeroBackground: React.FC; + +export default ModalDialogHeroBackground; diff --git a/src/Modal/ModalDialogHeroContent.d.ts b/src/Modal/ModalDialogHeroContent.d.ts new file mode 100644 index 0000000000..bc7fff3330 --- /dev/null +++ b/src/Modal/ModalDialogHeroContent.d.ts @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { ModalDialogBodyProps } from './ModalDialogBody'; + +export interface ModalDialogHeroContentProps extends ModalDialogBodyProps {} + +export const ModalDialogHeader = React.FC; + +export default ModalDialogHeader; diff --git a/src/Modal/ModalDialogTitle.d.ts b/src/Modal/ModalDialogTitle.d.ts new file mode 100644 index 0000000000..f86a23b881 --- /dev/null +++ b/src/Modal/ModalDialogTitle.d.ts @@ -0,0 +1,8 @@ +import * as React from 'react'; +import { ModalDialogBodyProps } from './ModalDialogBody'; + +export interface ModalDialogTitleProps extends ModalDialogBodyProps {} + +export const ModalDialogTitle = React.FC; + +export default ModalDialogTitle; diff --git a/src/Modal/ModalLayer.d.ts b/src/Modal/ModalLayer.d.ts new file mode 100644 index 0000000000..c31667ca50 --- /dev/null +++ b/src/Modal/ModalLayer.d.ts @@ -0,0 +1,15 @@ +import * as React from 'react'; + +export interface ModalLayerProps { + children: React.ReactNode; + onClose: () => void; + isOpen: boolean; + isBlocking?: boolean; + zIndex?: number; +} + +export function ModalBackdrop({ onClick }: { onClick?: () => void }): JSX.Element; + +export function ModalContentContainer({ children }: { children?: React.ReactNode }): JSX.Element; + +export default function ModalLayer(props: ModalLayerProps): JSX.Element; diff --git a/src/Modal/ModalPopup.d.ts b/src/Modal/ModalPopup.d.ts new file mode 100644 index 0000000000..a7a1fbdb2e --- /dev/null +++ b/src/Modal/ModalPopup.d.ts @@ -0,0 +1,17 @@ +import * as React from 'react'; +import { PopoverPlacements } from './PopoverElement'; + +export interface ModalPopupProps { + children: React.ReactNode; + onClose: () => void; + isOpen: boolean; + isBlocking?: boolean; + withPortal?: boolean; + positionRef?: ((instance: HTMLElement | null) => void) | React.RefObject; + placement?: PopoverPlacements; + hasArrow?: boolean; +} + +declare const ModalPopup = React.FC; + +export default ModalPopup; diff --git a/src/Modal/PopoverElement.d.ts b/src/Modal/PopoverElement.d.ts new file mode 100644 index 0000000000..76a1784a0a --- /dev/null +++ b/src/Modal/PopoverElement.d.ts @@ -0,0 +1,18 @@ +import * as React from 'react'; + +export type PopoverPlacements = 'auto' | 'auto-start' | 'auto-end' | 'top' | 'top-start' | 'top-end' | 'bottom' +| 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end'; + +export interface PopperElementProps { + children?: React.ReactNode; + target: { + current: React.ReactNode; + }; + strategy?: 'absolute' | 'fixed'; + placement?: PopoverPlacements; + modifiers?: Array>; +} + +declare const PopperElement: React.FC; + +export default PopperElement; diff --git a/src/Modal/Portal.d.ts b/src/Modal/Portal.d.ts new file mode 100644 index 0000000000..50cf545aff --- /dev/null +++ b/src/Modal/Portal.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +interface PortalProps { + // eslint-disable-next-line react/no-unused-prop-types + children: React.ReactNode; +} + +// eslint-disable-next-line react/prefer-stateless-function +declare class Portal extends React.Component {} + +export default Portal; diff --git a/src/Modal/StandartModal.d.ts b/src/Modal/StandartModal.d.ts new file mode 100644 index 0000000000..3513531ab7 --- /dev/null +++ b/src/Modal/StandartModal.d.ts @@ -0,0 +1,21 @@ +import * as React from 'react'; + +export interface StandardModalProps { + children: React.ReactNode; + title: string; + onClose: () => void; + isOpen?: boolean; + hasCloseButton?: boolean; + size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; + variant?: 'default' | 'warning' | 'danger' | 'success' | 'dark'; + closeLabel?: string; + className?: string; + isFullscreenScroll?: boolean; + footerNode?: React.ReactNode; + beforeBodyNode?: React.ReactNode; + afterBodyNode?: React.ReactNode; +} + +declare const StandardModal: React.FC; + +export default StandardModal; diff --git a/src/Modal/index.d.ts b/src/Modal/index.d.ts new file mode 100644 index 0000000000..9af050cacd --- /dev/null +++ b/src/Modal/index.d.ts @@ -0,0 +1,31 @@ +/* eslint-disable react/require-default-props */ +/* eslint-disable react/no-unused-prop-types */ +import * as React from 'react'; + +export interface ButtonProps { + children?: ReactNode; + disabled?: boolean; + onClick?: () => void; + className?: string; + variant?: string; + type?: string; +} + +export interface ModalProps { + open?: boolean; + parentSelector?: string; + title: string | React.ReactNode; + body: string | React.ReactNode; + buttons?: (React.ReactNode | ButtonProps)[]; + closeText?: string | React.ReactNode; + onClose: () => void; + variant?: { + status?: string; + }; + renderDefaultCloseButton?: boolean; + renderHeaderCloseButton?: boolean; + dialogClassName?: string; +} + +// eslint-disable-next-line react/prefer-stateless-function +export default class Modal extends React.Component {} diff --git a/src/Pagination/index.d.ts b/src/Pagination/index.d.ts new file mode 100644 index 0000000000..612ea7356a --- /dev/null +++ b/src/Pagination/index.d.ts @@ -0,0 +1,38 @@ +/* eslint-disable react/require-default-props */ +/* eslint-disable react/no-unused-prop-types */ +import * as React from 'react'; + +export interface ButtonLabels { + previous?: string; + next?: string; + page?: string; + currentPage?: string; + pageOfCount?: string; +} + +export interface Icons { + leftIcon?: React.ReactNode; + rightIcon?: React.ReactNode; +} + +export type PaginationVariants = 'default' | 'secondary' | 'reduced' | 'minimal'; +export type PaginationSizes = 'default' | 'small'; + +export interface PaginationProps { + onPageSelect: (pageNumber: number) => void; + pageCount: number; + paginationLabel: string; + buttonLabels?: ButtonLabels; + className?: string; + currentPage?: number; + maxPagesDisplayed?: number; + icons?: Icons; + variant?: PaginationVariants; + invertColors?: boolean; + size?: PaginationSizes; +} + +// eslint-disable-next-line react/prefer-stateless-function +declare class Pagination extends React.Component {} + +export default Pagination; diff --git a/src/Popover/index.d.ts b/src/Popover/index.d.ts new file mode 100644 index 0000000000..8c199d28c6 --- /dev/null +++ b/src/Popover/index.d.ts @@ -0,0 +1,29 @@ +import * as React from 'react'; + +export interface WrapperPopoverProps extends React.PropsWithChildren> { + id: string; + placement?: 'auto' | 'top' | 'bottom' | 'left' | 'right'; + title?: string; + arrowProps?: { + ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; + style?: React.CSSProperties; + }; + content?: boolean; + popper?: object; + show?: boolean; + className?: string; + variant?: string; +} + +export interface PopoverTitleProps extends React.PropsWithChildren> { + as?: keyof JSX.IntrinsicElements; + bsPrefix?: string; +} +export interface PopoverContentProps extends PopoverTitleProps {} + +declare const WrapperPopover: React.ForwardRefExoticComponent & { + Title: React.FC; + Content: React.FC; +}; + +export default WrapperPopover; diff --git a/src/ProductTour/Checkpoint.d.ts b/src/ProductTour/Checkpoint.d.ts new file mode 100644 index 0000000000..a1468aa9b0 --- /dev/null +++ b/src/ProductTour/Checkpoint.d.ts @@ -0,0 +1,24 @@ +import * as React from 'react'; + +export type CheckpointPlacements = 'top' | 'top-start' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'left-start' | 'left' +| 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end'; + +export interface CheckpointProps { + advanceButtonText?: React.ReactNode; + body?: React.ReactNode; + dismissButtonText?: React.ReactNode; + endButtonText?: React.ReactNode; + index: number; + onAdvance: () => void; + onDismiss: () => void; + onEnd: () => void; + placement?: CheckpointPlacements; + showDismissButton?: boolean; + target: string; + title?: React.ReactNode; + totalCheckpoints: number; +} + +declare const Checkpoint: React.ForwardRefExoticComponent>; + +export default Checkpoint; diff --git a/src/ProductTour/CheckpointActionRow.d.ts b/src/ProductTour/CheckpointActionRow.d.ts new file mode 100644 index 0000000000..4ae70e96ca --- /dev/null +++ b/src/ProductTour/CheckpointActionRow.d.ts @@ -0,0 +1,19 @@ +import * as React from 'react'; + +export interface CheckpointActionRowProps { + advanceButtonText?: React.ReactNode; + dismissButtonText?: React.ReactNode; + endButtonText?: React.ReactNode; + isLastCheckpoint?: boolean; + onAdvance?: (index: number) => void; + onDismiss?: () => void; + onEnd?: (index: number) => void; + showDismissButton?: boolean; + index?: number; +} + +declare const CheckpointActionRow: React.ForwardRefExoticComponent< +CheckpointActionRowProps & React.RefAttributes +>; + +export default CheckpointActionRow; diff --git a/src/ProductTour/CheckpointBody.d.ts b/src/ProductTour/CheckpointBody.d.ts new file mode 100644 index 0000000000..735aeae577 --- /dev/null +++ b/src/ProductTour/CheckpointBody.d.ts @@ -0,0 +1,10 @@ +import * as React from 'react'; + +export interface CheckpointBodyProps { + children?: React.ReactNode; +} + +declare const CheckpointBody: React.ForwardRefExoticComponent< +CheckpointBodyProps & React.RefAttributes>; + +export default CheckpointBody; diff --git a/src/ProductTour/CheckpointBreadcrumbs.d.ts b/src/ProductTour/CheckpointBreadcrumbs.d.ts new file mode 100644 index 0000000000..0d85d8ad79 --- /dev/null +++ b/src/ProductTour/CheckpointBreadcrumbs.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export type CheckpointBreadcrumbsProps = { + currentIndex?: number | null; + totalCheckpoints?: number | null; +}; + +const CheckpointBreadcrumbs: React.ForwardRefExoticComponent< +CheckpointBreadcrumbsProps & React.RefAttributes>; + +export default CheckpointBreadcrumbs; diff --git a/src/ProductTour/CheckpointTitle.d.ts b/src/ProductTour/CheckpointTitle.d.ts new file mode 100644 index 0000000000..36ea45b73e --- /dev/null +++ b/src/ProductTour/CheckpointTitle.d.ts @@ -0,0 +1,10 @@ +import * as React from 'react'; + +export interface CheckpointTitleProps { + children?: React.ReactNode; +} + +declare const CheckpointTitle: React.ForwardRefExoticComponent< +CheckpointTitleProps & React.RefAttributes>; + +export default CheckpointTitle; diff --git a/src/ProductTour/index.d.ts b/src/ProductTour/index.d.ts new file mode 100644 index 0000000000..566a74e292 --- /dev/null +++ b/src/ProductTour/index.d.ts @@ -0,0 +1,51 @@ +import * as React from 'react'; + +type PlacementType = + | 'top' + | 'top-start' + | 'top-end' + | 'right-start' + | 'right' + | 'right-end' + | 'left-start' + | 'left' + | 'left-end' + | 'bottom' + | 'bottom-start' + | 'bottom-end'; + +export interface CheckpointData { + advanceButtonText?: React.ReactNode; + body?: React.ReactNode; + dismissButtonText?: React.ReactNode; + endButtonText?: React.ReactNode; + onAdvance?: () => void; + onDismiss?: () => void; + onEnd?: () => void; + placement?: string; // TODO: Type 'string' is not assignable to type "top" + target?: string; + title?: React.ReactNode; + showDismissButton?: boolean; +} + +export interface TourData { + advanceButtonText?: React.ReactNode; + checkpoints?: CheckpointData[]; + dismissButtonText?: React.ReactNode; + endButtonText?: React.ReactNode; + enabled?: boolean; + onDismiss?: () => void; + onEnd?: (lastCheckpoint: CheckpointData) => void; + onEscape?: () => void; + startingIndex?: number; + tourId: string; +} + +export interface ProductTourProps { + tours: TourData[]; +} + +declare const ProductTour: React.ForwardRefExoticComponent< +ProductTourProps & React.RefAttributes>; + +export default ProductTour; diff --git a/src/SearchField/SearchFieldAdvanced.d.ts b/src/SearchField/SearchFieldAdvanced.d.ts new file mode 100644 index 0000000000..48d40586d2 --- /dev/null +++ b/src/SearchField/SearchFieldAdvanced.d.ts @@ -0,0 +1,28 @@ +import * as React from 'react'; + +export interface SearchFieldAdvancedProps { + children: React.ReactNode; + onSubmit: (value: string) => void; + className?: string; + onBlur?: (event: React.FocusEvent) => void; + onChange?: (value: string) => void; + onClear?: () => void; + onFocus?: (event: React.FocusEvent) => void; + screenReaderText?: { + label: string | React.ReactElement; + submitButton: string | React.ReactElement; + clearButton?: string | React.ReactElement; + }; + value?: string; + icons?: { + submit: React.ReactElement; + clear?: React.ReactElement; + }; + formAriaLabel?: string; + disabled?: boolean; + submitButtonLocation?: 'internal' | 'external'; +} + +declare const SearchFieldAdvanced = React.FC; + +export default SearchFieldAdvanced; diff --git a/src/SearchField/SearchFieldInput.d.ts b/src/SearchField/SearchFieldInput.d.ts new file mode 100644 index 0000000000..fcccbe893c --- /dev/null +++ b/src/SearchField/SearchFieldInput.d.ts @@ -0,0 +1,10 @@ +import * as React from 'react'; + +export interface SearchFieldInputProps extends React.InputHTMLAttributes { + className?: string; + placeholder?: string; +} + +declare function SearchFieldInput(props: SearchFieldInputProps): JSX.Element; + +export default SearchFieldInput; diff --git a/src/SearchField/SearchFieldLabel.d.ts b/src/SearchField/SearchFieldLabel.d.ts new file mode 100644 index 0000000000..ead7a36aed --- /dev/null +++ b/src/SearchField/SearchFieldLabel.d.ts @@ -0,0 +1,9 @@ +import * as React from 'react'; + +export interface SearchFieldLabelProps { + children?: React.ReactNode; +} + +declare function SearchFieldLabel(props: SearchFieldLabelProps): JSX.Element; + +export default SearchFieldLabel; diff --git a/src/SearchField/SearchFieldSubmitButton.d.ts b/src/SearchField/SearchFieldSubmitButton.d.ts new file mode 100644 index 0000000000..342f733074 --- /dev/null +++ b/src/SearchField/SearchFieldSubmitButton.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export interface SearchFieldSubmitButtonProps { + variant?: 'light' | 'dark'; + submitButtonLocation?: 'internal' | 'external'; + buttonText?: string; +} + +declare const SearchFieldSubmitButton: React.FC; + +export default SearchFieldSubmitButton; diff --git a/src/SearchField/SearchFileClearButton.d.ts b/src/SearchField/SearchFileClearButton.d.ts new file mode 100644 index 0000000000..4acda16134 --- /dev/null +++ b/src/SearchField/SearchFileClearButton.d.ts @@ -0,0 +1,7 @@ +import * as React from 'react'; + +export interface SearchFieldClearButtonProps extends ButtonHTMLAttributes {} + +declare const SearchFieldClearButton = React.FC; + +export default SearchFieldClearButton; diff --git a/src/SearchField/index.d.ts b/src/SearchField/index.d.ts new file mode 100644 index 0000000000..39fe83fc61 --- /dev/null +++ b/src/SearchField/index.d.ts @@ -0,0 +1,43 @@ +import * as React from 'react'; +import { SearchFieldAdvancedProps } from './SearchFieldAdvanced'; +import { SearchFieldClearButtonProps } from './SearchFieldClearButton'; +import { SearchFieldInputProps } from './SearchFieldInput'; +import { SearchFieldLabelProps } from './SearchFieldLabel'; +import { SearchFieldSubmitButtonProps } from './SearchFieldSubmitButton'; + +export interface SearchFieldProps { + onSubmit: (value: string) => void; + label?: string | React.ReactNode; + className?: string; + onBlur?: (event: React.FocusEvent) => void; + onChange?: (value: string) => void; + onClear?: () => void; + onFocus?: (event: React.FocusEvent) => void; + placeholder?: string; + screenReaderText?: { + label: string | React.ReactNode; + submitButton: string | React.ReactNode; + clearButton?: string | React.ReactNode; + }; + value?: string; + icons?: { + submit: React.ReactNode; + clear?: React.ReactNode; + }; + formAriaLabel?: string; + inputProps?: Record; + variant?: 'light' | 'dark'; + disabled?: boolean; + submitButtonLocation?: 'internal' | 'external'; + buttonText?: string | React.ReactNode; +} + +declare const SearchField: React.FC & { + Advanced: React.FC; + Label: React.FC; + Input: React.FC; + ClearButton: React.FC; + SubmitButton: React.FC; +}; + +export default SearchField; diff --git a/src/Stepper/Stepper.Step.d.ts b/src/Stepper/Stepper.Step.d.ts new file mode 100644 index 0000000000..16e7b1753f --- /dev/null +++ b/src/Stepper/Stepper.Step.d.ts @@ -0,0 +1,13 @@ +import * as React from 'react'; + +export interface StepperStepProps { + children: React.ReactNode; + className?: string; + eventKey: string; + title: string; + description?: string; + hasError?: boolean; + index?: number; +} + +export default function StepperStep(props: StepperStepProps): JSX.Element; diff --git a/src/Stepper/Stepper.d.ts b/src/Stepper/Stepper.d.ts new file mode 100644 index 0000000000..da69983430 --- /dev/null +++ b/src/Stepper/Stepper.d.ts @@ -0,0 +1,20 @@ +import * as React from 'react'; +import { StepperStepProps } from './Stepper.Step'; +import { StepperHeaderProps } from './StepperHeader'; +import { StepperActionRowProps } from './StepperActionRow'; +import ActionRow from '../ActionRow'; + +export interface StepperTypes { + children: React.ReactNode; + activeKey: string; +} + +declare const Stepper: React.FC & { + Step: React.FC; + Header: React.FC; + ActionRow: React.FC & { + Spacer: typeof ActionRow.Spacer; + }; +}; + +export default Stepper; diff --git a/src/Stepper/StepperActionRow.d.ts b/src/Stepper/StepperActionRow.d.ts new file mode 100644 index 0000000000..d891e72645 --- /dev/null +++ b/src/Stepper/StepperActionRow.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export interface StepperActionRowProps { + children: React.ReactNode; + eventKey: string; + as?: keyof JSX.IntrinsicElements; +} + +declare const StepperActionRow: React.FC; + +export default StepperActionRow; diff --git a/src/Stepper/StepperContext.d.ts b/src/Stepper/StepperContext.d.ts new file mode 100644 index 0000000000..97262ff01d --- /dev/null +++ b/src/Stepper/StepperContext.d.ts @@ -0,0 +1,15 @@ +import * as React from 'react'; + +interface StepperStepProps { + children: React.ReactNode, + eventKey: string.isRequired, + index?: number, + onClick?: (eventKey: string) => void, + active?: boolean, + complete?: boolean, + disabled?: boolean, +} + +declare const StepperStep: React.FC; + +export default StepperStep; diff --git a/src/Stepper/StepperHeader.d.ts b/src/Stepper/StepperHeader.d.ts new file mode 100644 index 0000000000..a7ee5d52fb --- /dev/null +++ b/src/Stepper/StepperHeader.d.ts @@ -0,0 +1,12 @@ +import * as React from 'react'; + +export interface StepperHeaderProps { + className?: string; + PageCountComponent?: keyof JSX.IntrinsicElements; +} + +declare const StepperHeader: React.FC & { + Step: typeof StepperHeaderStep; +}; + +export default StepperHeader; diff --git a/src/Stepper/StepperHeaderStep.d.ts b/src/Stepper/StepperHeaderStep.d.ts new file mode 100644 index 0000000000..fa63b88c9b --- /dev/null +++ b/src/Stepper/StepperHeaderStep.d.ts @@ -0,0 +1,13 @@ +import * as React from 'react'; + +export interface StepperHeaderStepProps { + eventKey: string; + title: string; + isActive?: boolean; + description?: string; + index?: number; +} + +declare const StepperHeaderStep = React.FC; + +export default StepperHeaderStep; diff --git a/src/Stepper/index.d.ts b/src/Stepper/index.d.ts deleted file mode 100644 index 4ae4da9919..0000000000 --- a/src/Stepper/index.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -// import * as React from 'react'; - -// interface StepperProps { -// children: React.ReactNode; -// activeKey: string; -// } - -// declare function Stepper(props: StepperProps): JSX.Element; - -// declare namespace Stepper { -// export const Step: typeof import('./StepperStep').default; -// export const Header: typeof import('./StepperHeader').default; -// export const ActionRow: typeof import('./StepperActionRow').default; -// } - -// export default Stepper; - -// interface StepperActionRowProps { -// as?: React.ElementType; -// children: React.ReactNode; -// eventKey: string; -// } - -// declare function StepperActionRow(props: StepperActionRowProps): JSX.Element; - -// declare namespace StepperActionRow { -// export const Spacer: typeof import('..').ActionRow.Spacer; -// } - -// export default StepperActionRow; - -// interface Step { -// eventKey: string; -// label: string; -// index?: number; -// } - -// interface StepperContextType { -// activeKey: string; -// registerStep: (step: Step) => void; -// steps: Step[]; -// removeStep: (eventKey: string) => void; -// getIsComplete: (eventKey: string) => boolean; -// } - -// declare const StepperContext: React.Context; - -// interface StepperContextProviderProps { -// children: React.ReactNode; -// activeKey: string; -// } - -// declare function StepperContextProvider(props: StepperContextProviderProps): JSX.Element; - -// export { -// StepperContext, StepperContextProvider, Step, stepsReducer, -// }; - -// interface StepperHeaderProps { -// className?: string; -// PageCountComponent?: React.FC<{ activeStepIndex: number; totalSteps: number }>; -// } - -// declare function StepperHeader(props: StepperHeaderProps): JSX.Element; - -// export default StepperHeader; From 4b5b29fc5576467fff4ed7c1fac206e79dc2e040 Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Mon, 10 Apr 2023 10:53:50 +0300 Subject: [PATCH 04/16] refactor: code refactoring --- .eslintignore | 1 + src/Icon/index.d.ts | 17 ++--- src/IconButton/index.d.ts | 23 +++--- src/IconButtonToggle/index.d.ts | 4 +- src/Layout/index.d.ts | 21 +++--- src/MailtoLink/index.d.ts | 12 ++-- src/Menu/MenuItem.d.ts | 9 ++- src/Menu/SelectMenu.d.ts | 4 +- src/Menu/index.d.ts | 6 +- src/Modal/AlertModal.d.ts | 19 +---- src/Modal/BaseModalProps.d.ts | 19 +++++ src/Modal/FullscreenModal.d.ts | 16 +---- src/Modal/MarketingModal.d.ts | 14 +--- src/Modal/ModalCloseButton.d.ts | 3 +- src/Modal/ModalContext.d.ts | 2 +- src/Modal/ModalDialog.d.ts | 19 +---- src/Modal/ModalDialogBody.d.ts | 2 +- src/Modal/ModalDialogFooter.d.ts | 4 +- src/Modal/ModalDialogHeader.d.ts | 2 +- src/Modal/ModalDialogHero.d.ts | 9 +-- src/Modal/ModalDialogHeroBackground.d.ts | 9 +-- src/Modal/ModalDialogHeroContent.d.ts | 6 +- src/Modal/ModalDialogTitle.d.ts | 4 +- src/Modal/ModalLayer.d.ts | 2 +- src/Modal/ModalPopup.d.ts | 4 +- ...PopoverElement.d.ts => PopperElement.d.ts} | 8 +-- src/Modal/Portal.d.ts | 4 +- src/Modal/StandardModal.d.ts | 12 ++++ src/Modal/StandartModal.d.ts | 2 +- src/Modal/index.d.ts | 7 +- src/Nav/index.d.ts | 71 +++++++------------ src/Navbar/index.d.ts | 24 +++++++ src/OverflowScroll/OverflowScroll.d.ts | 19 +++++ src/OverflowScroll/OverflowScrollItems.d.ts | 9 +++ src/Overlay/index.d.ts | 5 +- src/PageBanner/index.d.ts | 6 +- src/Pagination/index.d.ts | 38 ++++------ src/Popover/index.d.ts | 24 +++---- src/ProductTour/Checkpoint.d.ts | 8 +-- src/ProductTour/CheckpointActionRow.d.ts | 6 +- src/ProductTour/CheckpointBody.d.ts | 5 +- src/ProductTour/CheckpointBreadcrumbs.d.ts | 9 ++- src/ProductTour/CheckpointTitle.d.ts | 5 +- src/ProductTour/index.d.ts | 20 ++---- src/ProgressBar/index.d.ts | 14 ++-- src/Scrollable/index.d.ts | 2 +- src/SearchField/SearchFieldAdvanced.d.ts | 2 +- src/SearchField/SearchFieldInput.d.ts | 2 +- src/SearchField/SearchFieldLabel.d.ts | 2 +- src/SearchField/SearchFieldSubmitButton.d.ts | 2 +- src/SearchField/SearchFileClearButton.d.ts | 4 +- src/SearchField/index.d.ts | 2 +- src/SelectableBox/SelectableBoxSet.d.ts | 6 +- src/SelectableBox/index.d.ts | 18 ++--- src/Sheet/SheetContainer.d.ts | 5 +- src/Sheet/index.d.ts | 5 +- src/Spinner/index.d.ts | 4 +- src/Stack/index.d.ts | 6 +- src/StatefulButton/index.d.ts | 2 +- src/Stepper/Stepper.Step.d.ts | 2 +- src/Stepper/Stepper.d.ts | 2 +- src/Stepper/StepperActionRow.d.ts | 2 +- src/Stepper/StepperContext.d.ts | 18 ++--- src/Stepper/StepperHeader.d.ts | 5 +- src/Stepper/StepperHeaderStep.d.ts | 2 +- src/Sticky/index.d.ts | 8 +-- src/Tabs/index.d.ts | 9 +-- src/Toast/ToastContainer.d.ts | 5 +- src/Toast/index.d.ts | 22 ++---- src/Tooltip/index.d.ts | 30 +------- src/TransitionReplace/index.d.ts | 5 +- src/Truncate/index.d.ts | 2 +- 72 files changed, 301 insertions(+), 400 deletions(-) create mode 100644 src/Modal/BaseModalProps.d.ts rename src/Modal/{PopoverElement.d.ts => PopperElement.d.ts} (59%) create mode 100644 src/Modal/StandardModal.d.ts create mode 100644 src/Navbar/index.d.ts create mode 100644 src/OverflowScroll/OverflowScroll.d.ts create mode 100644 src/OverflowScroll/OverflowScrollItems.d.ts diff --git a/.eslintignore b/.eslintignore index a693875c8a..339ce84214 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,3 +7,4 @@ dependent-usage-analyzer/ build-scss.js component-generator/ example/ +*.d.ts diff --git a/src/Icon/index.d.ts b/src/Icon/index.d.ts index 6e459fc9ae..e688d2ce93 100644 --- a/src/Icon/index.d.ts +++ b/src/Icon/index.d.ts @@ -1,17 +1,14 @@ -import * as React from 'react'; +import React from 'react'; -export type IconSizes = 'xs' | 'sm' | 'md' | 'lg'; - -export interface SvgAttrs { - 'aria-label'?: string; - 'aria-labelledby'?: string; -} export interface IconProps { - src?: ReactElement | FC<{}>; - svgAttrs?: SvgAttrs; + src?: React.ReactElement | Function; + svgAttrs?: { + 'aria-label'?: string; + 'aria-labelledby'?: string; + }; id?: string; - size?: IconSizes; + size?: 'xs' | 'sm' | 'md' | 'lg'; className?: string; hidden?: boolean; screenReaderText?: string | React.ReactNode; diff --git a/src/IconButton/index.d.ts b/src/IconButton/index.d.ts index 48f7c77db5..aacf6c4c07 100644 --- a/src/IconButton/index.d.ts +++ b/src/IconButton/index.d.ts @@ -1,12 +1,9 @@ -import * as React from 'react'; - -export type IconButtonVariants = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; -export type IconButtonSizes = 'sm' | 'md' | 'inline'; +import React from 'react'; export interface IconButtonProps extends React.ButtonHTMLAttributes { className?: string; iconAs?: keyof JSX.IntrinsicElements; - src?: React.ReactElement | React.FC; + src?: React.ReactElement; alt: string; invertColors?: boolean; icon?: { @@ -16,22 +13,22 @@ export interface IconButtonProps extends React.ButtonHTMLAttributes) => void; - variant?: IconButtonVariants; - size?: IconButtonSizes; + variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; + size?: 'sm' | 'md' | 'inline'; isActive?: boolean; } -export interface IconButtonWithTooltipProps extends Omit { +export interface IconButtonWithTooltipProps { tooltipPlacement?: string; tooltipContent: React.ReactNode; + invertColors?: boolean; + variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; } -declare const IconButtonWithTooltip: React.ForwardRefExoticComponent< -IconButtonWithTooltipProps & React.RefAttributes>; +declare const IconButtonWithTooltip: React.ForwardRefExoticComponent; -declare const IconButton: React.ForwardRefExoticComponent< -IconButtonProps & React.RefAttributes> & { - IconButtonWithTooltip: typeof IconButtonWithTooltip; +declare const IconButton: React.ForwardRefExoticComponent & { + IconButtonWithTooltip: React.FC; }; export default IconButton; diff --git a/src/IconButtonToggle/index.d.ts b/src/IconButtonToggle/index.d.ts index 22c349596d..4fa7811497 100644 --- a/src/IconButtonToggle/index.d.ts +++ b/src/IconButtonToggle/index.d.ts @@ -1,7 +1,7 @@ -import * as React from 'react'; +import React from 'react'; import { IconButtonProps } from '../IconButton'; -interface IconButtonToggleProps { +export interface IconButtonToggleProps { activeValue?: string; onChange?: (value: string) => void; children: React.ReactElement[]; diff --git a/src/Layout/index.d.ts b/src/Layout/index.d.ts index 93e0180f33..967d56c159 100644 --- a/src/Layout/index.d.ts +++ b/src/Layout/index.d.ts @@ -1,18 +1,13 @@ -import * as React from 'react'; -import { RowProps } from 'react-bootstrap'; +import React from 'react'; -export type LayoutElementProps = React.HTMLAttributes; -export type ColSpanValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto'; - -export declare const LayoutElement: React.ForwardRefExoticComponent< -LayoutElementProps & React.RefAttributes>; +export type ColSpanValues = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto'; export interface ColLayout { - span: ColSpanValue; + span: ColSpanValues; offset?: number; } -export interface LayoutProps extends RowProps { +export interface LayoutProps { children: React.ReactNode; xs?: ColLayout[]; sm?: ColLayout[]; @@ -21,12 +16,12 @@ export interface LayoutProps extends RowProps { xl?: ColLayout[]; } -export interface LayoutComponent extends React.ForwardRefExoticComponent< -LayoutProps & React.RefAttributes -> { - Element: typeof LayoutElement; +export interface LayoutComponent extends React.ForwardRefExoticComponent { + Element: React.FC; } +export declare const LayoutElement: React.ForwardRefExoticComponent & React.RefAttributes>; + declare const Layout: LayoutComponent; export default Layout; diff --git a/src/MailtoLink/index.d.ts b/src/MailtoLink/index.d.ts index af2b733c21..af7df67ee9 100644 --- a/src/MailtoLink/index.d.ts +++ b/src/MailtoLink/index.d.ts @@ -1,13 +1,9 @@ -import * as React from 'react'; +import React from 'react'; +import { Options } from 'mailto-link'; -export interface MailtoLinkProps { +export interface MailtoLinkProps extends Options { children: React.ReactNode; className?: string; - to?: string[] | string; - cc?: string[] | string; - bcc?: string[] | string; - subject?: string; - body?: string; target?: string; onClick?: React.MouseEventHandler; externalLink?: { @@ -16,6 +12,6 @@ export interface MailtoLinkProps { }; } -declare const MailtoLink: React.ForwardRefExoticComponent>; +declare const MailtoLink: React.ForwardRefExoticComponent; export default MailtoLink; diff --git a/src/Menu/MenuItem.d.ts b/src/Menu/MenuItem.d.ts index 8d4fe971f8..5f1695e8a7 100644 --- a/src/Menu/MenuItem.d.ts +++ b/src/Menu/MenuItem.d.ts @@ -1,12 +1,15 @@ -import * as React from 'react'; +import React from 'react'; interface MenuItemProps extends React.HTMLAttributes { defaultSelected?: boolean; - className?: string; children?: React.ReactNode; - as?: keyof JSX.IntrinsicElements | React.ComponentType; + as?: keyof JSX.IntrinsicElements; iconBefore?: React.ReactNode; iconAfter?: React.ReactNode; + disabled?: boolean; + href?: string; + variant?: string; + size?: string; } declare const MenuItem: React.FC; diff --git a/src/Menu/SelectMenu.d.ts b/src/Menu/SelectMenu.d.ts index 3c4f9f45d4..1e6c642096 100644 --- a/src/Menu/SelectMenu.d.ts +++ b/src/Menu/SelectMenu.d.ts @@ -1,6 +1,6 @@ -import * as React from 'react'; +import React from 'react'; -interface SelectMenuProps { +export interface SelectMenuProps { defaultMessage?: string; isLink?: boolean; children: React.ReactNode; diff --git a/src/Menu/index.d.ts b/src/Menu/index.d.ts index a542bb80cc..e96b605555 100644 --- a/src/Menu/index.d.ts +++ b/src/Menu/index.d.ts @@ -1,12 +1,12 @@ -import * as React from 'react'; +import React from 'react'; -export interface IMenu { +export interface MenuProps { className?: string; arrowKeyNavigationSelector?: string; as?: keyof JSX.IntrinsicElements; children?: React.ReactNode; } -declare const Menu: React.FC; +declare const Menu: React.FC; export default Menu; diff --git a/src/Modal/AlertModal.d.ts b/src/Modal/AlertModal.d.ts index 06ec754e47..d82c601028 100644 --- a/src/Modal/AlertModal.d.ts +++ b/src/Modal/AlertModal.d.ts @@ -1,20 +1,5 @@ -import * as React from 'react'; +import { BaseModalProps } from './BaseModalProps'; -export interface Props { - children: React.ReactNode; - title: string; - isOpen?: boolean; - isBlocking?: boolean; - hasCloseButton?: boolean; - onClose?: () => void; - size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; - variant?: 'default' | 'warning' | 'danger' | 'success' | 'dark'; - closeLabel?: string; - className?: string; - isFullscreenScroll?: boolean; - footerNode?: React.ReactNode; -} - -declare function AlertModal(props: Props): JSX.Element; +declare function AlertModal(props: BaseModalProps): JSX.Element; export default AlertModal; diff --git a/src/Modal/BaseModalProps.d.ts b/src/Modal/BaseModalProps.d.ts new file mode 100644 index 0000000000..c764ae4c04 --- /dev/null +++ b/src/Modal/BaseModalProps.d.ts @@ -0,0 +1,19 @@ +import React from 'react'; + +export type ModalSizes = 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; +export type ModalVariants = 'default' | 'warning' | 'danger' | 'success' | 'dark'; + +export interface BaseModalProps { + children: React.ReactNode; + title: string; + isOpen?: boolean; + hasCloseButton?: boolean; + onClose?: () => void; + size?: ModalSizes; + variant?: ModalVariants; + closeLabel?: string; + className?: string; + isFullscreenScroll?: boolean; + footerNode?: React.ReactNode; + isBlocking?: boolean; +} diff --git a/src/Modal/FullscreenModal.d.ts b/src/Modal/FullscreenModal.d.ts index dbb980b6c2..db44884857 100644 --- a/src/Modal/FullscreenModal.d.ts +++ b/src/Modal/FullscreenModal.d.ts @@ -1,17 +1,7 @@ -import * as React from 'react'; +import React from 'react'; +import { BaseModalProps } from './BaseModalProps'; -export interface FullscreenModalProps { - children: React.ReactNode; - className?: string; - title: string; - onClose: () => void; - isOpen?: boolean; - hasCloseButton?: boolean; - size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; - variant?: 'default' | 'warning' | 'danger' | 'success' | 'dark'; - closeLabel?: string; - isFullscreenScroll?: boolean; - footerNode?: React.ReactNode; +export interface FullscreenModalProps extends BaseModalProps { beforeBodyNode?: React.ReactNode; afterBodyNode?: React.ReactNode; modalBodyClassName?: string; diff --git a/src/Modal/MarketingModal.d.ts b/src/Modal/MarketingModal.d.ts index 1e56ddf1a2..e16d13db39 100644 --- a/src/Modal/MarketingModal.d.ts +++ b/src/Modal/MarketingModal.d.ts @@ -1,17 +1,7 @@ import * as React from 'react'; +import { BaseModalProps } from './BaseModalProps'; -export interface MarketingModalProps { - children: React.ReactNode; - title: string; - isOpen?: boolean; - isBlocking?: boolean; - hasCloseButton?: boolean; - onClose?: () => void; - size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; - closeLabel?: string; - className?: string; - isFullscreenScroll?: boolean; - footerNode?: React.ReactNode; +export interface MarketingModalProps extends BaseModalProps { heroIsDark?: boolean; heroNode?: React.ReactNode; beforeBodyNode?: React.ReactNode; diff --git a/src/Modal/ModalCloseButton.d.ts b/src/Modal/ModalCloseButton.d.ts index 8ced9eb873..42b4285ec0 100644 --- a/src/Modal/ModalCloseButton.d.ts +++ b/src/Modal/ModalCloseButton.d.ts @@ -7,7 +7,6 @@ export interface ModalCloseButtonProps extends React.ButtonHTMLAttributes void; } -declare const ModalCloseButton: React.ForwardRefExoticComponent< -ModalCloseButtonProps & React.RefAttributes>; +declare const ModalCloseButton: React.ForwardRefExoticComponent>; export default ModalCloseButton; diff --git a/src/Modal/ModalContext.d.ts b/src/Modal/ModalContext.d.ts index 0a853dc3cd..de710a4cc6 100644 --- a/src/Modal/ModalContext.d.ts +++ b/src/Modal/ModalContext.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface ModalContextValue { onClose: () => void; diff --git a/src/Modal/ModalDialog.d.ts b/src/Modal/ModalDialog.d.ts index d6d543f233..2544390371 100644 --- a/src/Modal/ModalDialog.d.ts +++ b/src/Modal/ModalDialog.d.ts @@ -7,24 +7,11 @@ import { ModalDialogHeroProps } from './ModalDialogHero'; import { ModalDialogBodyProps } from './ModalDialogBody'; import { ModalDialogHeroContentProps } from './ModalDialogHeroContent'; import { ModalDialogHeroBackgroundProps } from './ModalDialogHeroBackground'; +import { BaseModalProps } from './BaseModalProps'; -export type ModalDialogSizes = 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; -export type ModalDialogVariants = 'default' | 'warning' | 'danger' | 'success' | 'dark'; - -export interface ModalDialogProps { - children: React.ReactNode; - title: string; - isOpen?: boolean; - onClose: () => void; - hasCloseButton?: boolean; - size?: ModalDialogSizes; - variant?: ModalDialogVariants; - closeLabel?: string; - className?: string; - isFullscreenScroll?: boolean; +export interface ModalDialogProps extends Omit { isFullscreenOnMobile?: boolean; - isBlocking?: boolean; - zIndex?: number | undefined; + zIndex?: number; } declare const ModalDialog: React.FC & { diff --git a/src/Modal/ModalDialogBody.d.ts b/src/Modal/ModalDialogBody.d.ts index 38545bf432..2db4e1fb58 100644 --- a/src/Modal/ModalDialogBody.d.ts +++ b/src/Modal/ModalDialogBody.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface ModalDialogBodyProps { as?: keyof JSX.IntrinsicElements; diff --git a/src/Modal/ModalDialogFooter.d.ts b/src/Modal/ModalDialogFooter.d.ts index 6e70d0f931..ecb06847cc 100644 --- a/src/Modal/ModalDialogFooter.d.ts +++ b/src/Modal/ModalDialogFooter.d.ts @@ -1,8 +1,8 @@ -import * as React from 'react'; +import React from 'react'; import { ModalDialogBodyProps } from './ModalDialogBody'; export interface ModalDialogFooterProps extends ModalDialogBodyProps {} -export const ModalDialogFooter = React.FC; +export const ModalDialogFooter = React.FC; export default ModalDialogFooter; diff --git a/src/Modal/ModalDialogHeader.d.ts b/src/Modal/ModalDialogHeader.d.ts index cae8cce838..ce333ff2f7 100644 --- a/src/Modal/ModalDialogHeader.d.ts +++ b/src/Modal/ModalDialogHeader.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { ModalDialogBodyProps } from './ModalDialogBody'; export interface ModalDialogHeaderProps extends ModalDialogBodyProps {} diff --git a/src/Modal/ModalDialogHero.d.ts b/src/Modal/ModalDialogHero.d.ts index 320b49f973..a30e72ddd3 100644 --- a/src/Modal/ModalDialogHero.d.ts +++ b/src/Modal/ModalDialogHero.d.ts @@ -1,10 +1,7 @@ -import * as React from 'react'; +import React from 'react'; +import { ModalDialogBodyProps } from './ModalDialogBody'; -export interface ModalDialogHeroProps extends React.HTMLProps { - as?: keyof JSX.IntrinsicElements; - children: React.ReactNode; - className?: string; -} +export interface ModalDialogHeroProps extends ModalDialogBodyProps {} declare const ModalDialogHero: React.FC; diff --git a/src/Modal/ModalDialogHeroBackground.d.ts b/src/Modal/ModalDialogHeroBackground.d.ts index a3aa144e4a..2b592da427 100644 --- a/src/Modal/ModalDialogHeroBackground.d.ts +++ b/src/Modal/ModalDialogHeroBackground.d.ts @@ -1,10 +1,7 @@ -import * as React from 'react'; +import React from 'react'; +import { ModalDialogBodyProps } from './ModalDialogBody'; -export interface ModalDialogHeroBackgroundProps extends React.HTMLProps { - as?: keyof JSX.IntrinsicElements; - backgroundSrc?: string; - children?: React.ReactNode; -} +export interface ModalDialogHeroBackgroundProps extends ModalDialogBodyProps {} declare const ModalDialogHeroBackground: React.FC; diff --git a/src/Modal/ModalDialogHeroContent.d.ts b/src/Modal/ModalDialogHeroContent.d.ts index bc7fff3330..ce333ff2f7 100644 --- a/src/Modal/ModalDialogHeroContent.d.ts +++ b/src/Modal/ModalDialogHeroContent.d.ts @@ -1,8 +1,8 @@ -import * as React from 'react'; +import React from 'react'; import { ModalDialogBodyProps } from './ModalDialogBody'; -export interface ModalDialogHeroContentProps extends ModalDialogBodyProps {} +export interface ModalDialogHeaderProps extends ModalDialogBodyProps {} -export const ModalDialogHeader = React.FC; +export const ModalDialogHeader = React.FC; export default ModalDialogHeader; diff --git a/src/Modal/ModalDialogTitle.d.ts b/src/Modal/ModalDialogTitle.d.ts index f86a23b881..09b25a2854 100644 --- a/src/Modal/ModalDialogTitle.d.ts +++ b/src/Modal/ModalDialogTitle.d.ts @@ -1,8 +1,8 @@ -import * as React from 'react'; +import React from 'react'; import { ModalDialogBodyProps } from './ModalDialogBody'; export interface ModalDialogTitleProps extends ModalDialogBodyProps {} -export const ModalDialogTitle = React.FC; +export const ModalDialogTitle = React.FC; export default ModalDialogTitle; diff --git a/src/Modal/ModalLayer.d.ts b/src/Modal/ModalLayer.d.ts index c31667ca50..9dedba6d3b 100644 --- a/src/Modal/ModalLayer.d.ts +++ b/src/Modal/ModalLayer.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface ModalLayerProps { children: React.ReactNode; diff --git a/src/Modal/ModalPopup.d.ts b/src/Modal/ModalPopup.d.ts index a7a1fbdb2e..9cf46e07bf 100644 --- a/src/Modal/ModalPopup.d.ts +++ b/src/Modal/ModalPopup.d.ts @@ -1,5 +1,5 @@ -import * as React from 'react'; -import { PopoverPlacements } from './PopoverElement'; +import React from 'react'; +import { PopoverPlacements } from './PopperElement'; export interface ModalPopupProps { children: React.ReactNode; diff --git a/src/Modal/PopoverElement.d.ts b/src/Modal/PopperElement.d.ts similarity index 59% rename from src/Modal/PopoverElement.d.ts rename to src/Modal/PopperElement.d.ts index 76a1784a0a..e472513dea 100644 --- a/src/Modal/PopoverElement.d.ts +++ b/src/Modal/PopperElement.d.ts @@ -1,6 +1,6 @@ -import * as React from 'react'; +import React from 'react'; -export type PopoverPlacements = 'auto' | 'auto-start' | 'auto-end' | 'top' | 'top-start' | 'top-end' | 'bottom' +export type PopperElementPlacements = 'auto' | 'auto-start' | 'auto-end' | 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end'; export interface PopperElementProps { @@ -9,8 +9,8 @@ export interface PopperElementProps { current: React.ReactNode; }; strategy?: 'absolute' | 'fixed'; - placement?: PopoverPlacements; - modifiers?: Array>; + placement?: PopperElementPlacements; + modifiers?: {}; } declare const PopperElement: React.FC; diff --git a/src/Modal/Portal.d.ts b/src/Modal/Portal.d.ts index 50cf545aff..f94a87f8b2 100644 --- a/src/Modal/Portal.d.ts +++ b/src/Modal/Portal.d.ts @@ -1,11 +1,9 @@ -import * as React from 'react'; +import React from 'react'; interface PortalProps { - // eslint-disable-next-line react/no-unused-prop-types children: React.ReactNode; } -// eslint-disable-next-line react/prefer-stateless-function declare class Portal extends React.Component {} export default Portal; diff --git a/src/Modal/StandardModal.d.ts b/src/Modal/StandardModal.d.ts new file mode 100644 index 0000000000..f0fcaecd5b --- /dev/null +++ b/src/Modal/StandardModal.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; +import { BaseModalProps } from './BaseModalProps'; + +export interface StandardModalProps extends Omit { + title: string, + beforeBodyNode?: React.ReactNode; + afterBodyNode?: React.ReactNode; +} + +declare const StandardModal: React.FC; + +export default StandardModal; diff --git a/src/Modal/StandartModal.d.ts b/src/Modal/StandartModal.d.ts index 3513531ab7..a998b9483e 100644 --- a/src/Modal/StandartModal.d.ts +++ b/src/Modal/StandartModal.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface StandardModalProps { children: React.ReactNode; diff --git a/src/Modal/index.d.ts b/src/Modal/index.d.ts index 9af050cacd..5f03b27c88 100644 --- a/src/Modal/index.d.ts +++ b/src/Modal/index.d.ts @@ -1,9 +1,7 @@ -/* eslint-disable react/require-default-props */ -/* eslint-disable react/no-unused-prop-types */ -import * as React from 'react'; +import React from 'react'; export interface ButtonProps { - children?: ReactNode; + children?: React.ReactNode; disabled?: boolean; onClick?: () => void; className?: string; @@ -27,5 +25,4 @@ export interface ModalProps { dialogClassName?: string; } -// eslint-disable-next-line react/prefer-stateless-function export default class Modal extends React.Component {} diff --git a/src/Nav/index.d.ts b/src/Nav/index.d.ts index 2d2ad25552..d869c820fc 100644 --- a/src/Nav/index.d.ts +++ b/src/Nav/index.d.ts @@ -1,64 +1,47 @@ -import * as React from 'react'; -import { HTMLAttributes } from 'react'; +import React from 'react'; import { BsPrefixProps } from 'react-bootstrap/helpers'; +import { NavProps as BaseNavProps } from 'react-bootstrap/Nav'; +import { NavItemProps as BaseNavItemProps } from 'react-bootstrap/NavItem'; +import { NavLinkProps as BaseNavLinkProps } from 'react-bootstrap/NavLink'; +import { NavDropdownProps as BaseNavDropdownProps } from 'react-bootstrap/NavDropdown'; +import { DropdownItemProps as BaseDropdownItemProps } from 'react-bootstrap/esm/DropdownItem'; -export interface NavProps extends BsPrefixProps, HTMLAttributes { - activeKey?: string | number; - as?: keyof JSX.IntrinsicElements; - fill?: boolean; - justify?: boolean; - navbar?: boolean; - onSelect?: string; - role?: string; - onKeyDown?: (event: React.KeyboardEvent) => void; - variant?: 'tabs' | 'pills'; -} +export interface NavProps extends BsPrefixProps, BaseNavProps {} -export interface NavItemProps extends BsPrefixProps, HTMLAttributes { - as?: keyof JSX.IntrinsicElements; -} +export interface NavItemProps extends BsPrefixProps, BaseNavItemProps {} -export interface NavLinkProps extends BsPrefixProps, HTMLAttributes { - active?: boolean; - as?: keyof JSX.IntrinsicElements; - disabled?: boolean; - eventKey?: string | number; - href?: string; - role?: string; +export interface NavLinkProps extends BsPrefixProps, Omit { + title?: string; } -export interface NavDropdownProps extends BsPrefixProps, HTMLAttributes { - id: string; - title: React.ReactNode; - active?: boolean; - disabled?: boolean; - menuRole?: string; +export interface NavDropdownProps extends BsPrefixProps, BaseNavDropdownProps { menuVariant?: 'dark'; onClick?: (event: React.SyntheticEvent) => void; - renderMenuOnMount?: boolean; - rootCloseEvent?: string; } -export interface NavDropdownItemProps extends BsPrefixProps, HTMLAttributes {} +export interface NavDropdownItemProps extends BsPrefixProps, BaseDropdownItemProps {} -export interface NavDropdownDividerProps extends BsPrefixProps, HTMLAttributes {} +export interface NavDropdownDividerProps extends BsPrefixProps, BsPrefixRefForwardingComponent<'div', unknown> {} -declare const NavDropdownItem: React.ForwardRefExoticComponent>; -declare const NavDropdownDivider: React.ForwardRefExoticComponent< -NavDropdownDividerProps & React.RefAttributes>; -declare const NavItem: React.ForwardRefExoticComponent>; -declare const NavLink: React.ForwardRefExoticComponent>; +declare const NavDropdownItem: React.ForwardRefExoticComponent; +declare const NavDropdownDivider: React.ForwardRefExoticComponent; +declare const NavItem: React.ForwardRefExoticComponent; +declare const NavLink: React.ForwardRefExoticComponent; +declare const NavDropdown: React.ForwardRefExoticComponent & { + Item: React.ForwardRefExoticComponent; + Divider: React.ForwardRefExoticComponent; +}; declare const Nav: React.ForwardRefExoticComponent & { - Item: React.ForwardRefExoticComponent>; - Link: React.ForwardRefExoticComponent>; - Dropdown: React.ForwardRefExoticComponent> & { - Item: React.ForwardRefExoticComponent>; - Divider: React.ForwardRefExoticComponent>; + Item: React.ForwardRefExoticComponent; + Link: React.ForwardRefExoticComponent; + Dropdown: React.ForwardRefExoticComponent & { + Item: React.ForwardRefExoticComponent; + Divider: React.ForwardRefExoticComponent; }; }; export default Nav; export { - NavDropdownItem, NavDropdownDivider, NavItem, NavLink, + NavDropdownItem, NavDropdownDivider, NavItem, NavLink, NavDropdown, }; diff --git a/src/Navbar/index.d.ts b/src/Navbar/index.d.ts new file mode 100644 index 0000000000..d55db48fc2 --- /dev/null +++ b/src/Navbar/index.d.ts @@ -0,0 +1,24 @@ +import React from 'react'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; +import { NavbarProps as BaseNavbarProps } from 'react-bootstrap/Navbar'; +import { NavbarBrandProps as BaseNavbarBrandProps } from 'react-bootstrap/NavbarBrand'; +import { NavbarToggleProps as BaseNavbarToggleProps } from 'react-bootstrap/NavbarToggle'; +import { NavbarCollapseProps as BaseNavbarCollapseProps } from 'react-bootstrap/NavbarCollapse'; + +export interface NavbarProps extends BsPrefixProps, BaseNavbarProps {} + +export interface NavbarBrandProps extends BsPrefixProps, BaseNavbarBrandProps {} + +export interface NavbarToggleProps extends BsPrefixProps, BaseNavbarToggleProps { + children?: React.ReactNode; +} + +export interface NavbarCollapseProps extends BsPrefixProps, BaseNavbarCollapseProps, React.HTMLAttributes {} + +declare const Navbar: React.FC & { + Brand: React.FC; + Toggle: React.FC; + Collapse: React.FC; +}; + +export default Navbar; diff --git a/src/OverflowScroll/OverflowScroll.d.ts b/src/OverflowScroll/OverflowScroll.d.ts new file mode 100644 index 0000000000..3bb6474039 --- /dev/null +++ b/src/OverflowScroll/OverflowScroll.d.ts @@ -0,0 +1,19 @@ +import React from 'react'; +import { OverflowScrollItems } from './OverflowScrollItems'; + +export interface OverflowScrollProps { + ariaLabel: string; + children: React.ReactNode; + childQuerySelector?: string; + hasInteractiveChildren?: boolean; + disableScroll?: boolean; + disableOpacityMasks?: boolean; + onScrollPrevious?: () => void; + onScrollNext?: () => void; +} + +declare const OverflowScroll: React.FC & { + Items: React.FC; +}; + +export default OverflowScroll; diff --git a/src/OverflowScroll/OverflowScrollItems.d.ts b/src/OverflowScroll/OverflowScrollItems.d.ts new file mode 100644 index 0000000000..c2dba4177c --- /dev/null +++ b/src/OverflowScroll/OverflowScrollItems.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface OverflowScrollItemsProps { + children: React.ReactNode; +} + +declare function OverflowScrollItems(props: OverflowScrollItemsProps): JSX.Element; + +export default OverflowScrollItems; diff --git a/src/Overlay/index.d.ts b/src/Overlay/index.d.ts index 2ee3b27026..358162e4c1 100644 --- a/src/Overlay/index.d.ts +++ b/src/Overlay/index.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { Placement } from '@popperjs/core'; import { TransitionProps } from 'react-transition-group/Transition'; import { FadeProps } from 'react-bootstrap/Fade'; @@ -33,5 +33,6 @@ export interface OverlayTriggerProps extends OverlayProps { declare const Overlay: React.FC; declare const OverlayTrigger: React.FC; -export default Overlay; export { OverlayTrigger }; +export default Overlay; + diff --git a/src/PageBanner/index.d.ts b/src/PageBanner/index.d.ts index 0f8ac152da..57f7ac6c20 100644 --- a/src/PageBanner/index.d.ts +++ b/src/PageBanner/index.d.ts @@ -1,6 +1,4 @@ -import * as React from 'react'; - -export type PageBannerVariants = 'light' | 'dark' | 'warning' | 'accentA' | 'accentB'; +import React from 'react'; export interface PageBannerTypes { children?: React.ReactNode; @@ -8,7 +6,7 @@ export interface PageBannerTypes { dismissAltText?: React.ReactNode; onDismiss?: () => void; show?: boolean; - variant?: PageBannerVariants; + variant?: 'light' | 'dark' | 'warning' | 'accentA' | 'accentB'; } declare const PageBanner: React.FC; diff --git a/src/Pagination/index.d.ts b/src/Pagination/index.d.ts index 612ea7356a..58649a4797 100644 --- a/src/Pagination/index.d.ts +++ b/src/Pagination/index.d.ts @@ -1,38 +1,28 @@ -/* eslint-disable react/require-default-props */ -/* eslint-disable react/no-unused-prop-types */ -import * as React from 'react'; - -export interface ButtonLabels { - previous?: string; - next?: string; - page?: string; - currentPage?: string; - pageOfCount?: string; -} - -export interface Icons { - leftIcon?: React.ReactNode; - rightIcon?: React.ReactNode; -} - -export type PaginationVariants = 'default' | 'secondary' | 'reduced' | 'minimal'; -export type PaginationSizes = 'default' | 'small'; +import React from 'react'; export interface PaginationProps { onPageSelect: (pageNumber: number) => void; pageCount: number; paginationLabel: string; - buttonLabels?: ButtonLabels; + buttonLabels?: { + previous?: string; + next?: string; + page?: string; + currentPage?: string; + pageOfCount?: string; + }; className?: string; currentPage?: number; maxPagesDisplayed?: number; - icons?: Icons; - variant?: PaginationVariants; + icons?: { + leftIcon?: React.ReactNode; + rightIcon?: React.ReactNode; + }; + variant?: 'default' | 'secondary' | 'reduced' | 'minimal'; invertColors?: boolean; - size?: PaginationSizes; + size?: 'default' | 'small'; } -// eslint-disable-next-line react/prefer-stateless-function declare class Pagination extends React.Component {} export default Pagination; diff --git a/src/Popover/index.d.ts b/src/Popover/index.d.ts index 8c199d28c6..64245d5b5c 100644 --- a/src/Popover/index.d.ts +++ b/src/Popover/index.d.ts @@ -1,25 +1,17 @@ -import * as React from 'react'; +import React from 'react'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; +import { PopoverProps } from 'react-bootstrap/Popover'; -export interface WrapperPopoverProps extends React.PropsWithChildren> { - id: string; +export interface WrapperPopoverProps extends Omit { placement?: 'auto' | 'top' | 'bottom' | 'left' | 'right'; - title?: string; - arrowProps?: { - ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; - style?: React.CSSProperties; - }; - content?: boolean; - popper?: object; - show?: boolean; + popper?: {}; className?: string; variant?: string; } -export interface PopoverTitleProps extends React.PropsWithChildren> { - as?: keyof JSX.IntrinsicElements; - bsPrefix?: string; -} -export interface PopoverContentProps extends PopoverTitleProps {} +export interface PopoverTitleProps extends BsPrefixProps {} + +export interface PopoverContentProps extends BsPrefixProps {} declare const WrapperPopover: React.ForwardRefExoticComponent & { Title: React.FC; diff --git a/src/ProductTour/Checkpoint.d.ts b/src/ProductTour/Checkpoint.d.ts index a1468aa9b0..a003e24798 100644 --- a/src/ProductTour/Checkpoint.d.ts +++ b/src/ProductTour/Checkpoint.d.ts @@ -1,7 +1,7 @@ -import * as React from 'react'; +import React from 'react'; -export type CheckpointPlacements = 'top' | 'top-start' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'left-start' | 'left' -| 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end'; +export type CheckpointPlacements = 'top' | 'top-start' | 'top-end' | 'right-start' | 'right' | 'right-end' +| 'left-start' | 'left' | 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end'; export interface CheckpointProps { advanceButtonText?: React.ReactNode; @@ -19,6 +19,6 @@ export interface CheckpointProps { totalCheckpoints: number; } -declare const Checkpoint: React.ForwardRefExoticComponent>; +declare const Checkpoint: React.ForwardRefExoticComponent; export default Checkpoint; diff --git a/src/ProductTour/CheckpointActionRow.d.ts b/src/ProductTour/CheckpointActionRow.d.ts index 4ae70e96ca..df77e3b281 100644 --- a/src/ProductTour/CheckpointActionRow.d.ts +++ b/src/ProductTour/CheckpointActionRow.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface CheckpointActionRowProps { advanceButtonText?: React.ReactNode; @@ -12,8 +12,6 @@ export interface CheckpointActionRowProps { index?: number; } -declare const CheckpointActionRow: React.ForwardRefExoticComponent< -CheckpointActionRowProps & React.RefAttributes ->; +declare const CheckpointActionRow: React.ForwardRefExoticComponent; export default CheckpointActionRow; diff --git a/src/ProductTour/CheckpointBody.d.ts b/src/ProductTour/CheckpointBody.d.ts index 735aeae577..7c35c5b96d 100644 --- a/src/ProductTour/CheckpointBody.d.ts +++ b/src/ProductTour/CheckpointBody.d.ts @@ -1,10 +1,9 @@ -import * as React from 'react'; +import React from 'react'; export interface CheckpointBodyProps { children?: React.ReactNode; } -declare const CheckpointBody: React.ForwardRefExoticComponent< -CheckpointBodyProps & React.RefAttributes>; +declare const CheckpointBody: React.ForwardRefExoticComponent; export default CheckpointBody; diff --git a/src/ProductTour/CheckpointBreadcrumbs.d.ts b/src/ProductTour/CheckpointBreadcrumbs.d.ts index 0d85d8ad79..2d96e732a7 100644 --- a/src/ProductTour/CheckpointBreadcrumbs.d.ts +++ b/src/ProductTour/CheckpointBreadcrumbs.d.ts @@ -1,11 +1,10 @@ -import * as React from 'react'; +import React from 'react'; export type CheckpointBreadcrumbsProps = { - currentIndex?: number | null; - totalCheckpoints?: number | null; + currentIndex?: number; + totalCheckpoints?: number; }; -const CheckpointBreadcrumbs: React.ForwardRefExoticComponent< -CheckpointBreadcrumbsProps & React.RefAttributes>; +const CheckpointBreadcrumbs: React.ForwardRefExoticComponent; export default CheckpointBreadcrumbs; diff --git a/src/ProductTour/CheckpointTitle.d.ts b/src/ProductTour/CheckpointTitle.d.ts index 36ea45b73e..09eb1c63ab 100644 --- a/src/ProductTour/CheckpointTitle.d.ts +++ b/src/ProductTour/CheckpointTitle.d.ts @@ -1,10 +1,9 @@ -import * as React from 'react'; +import React from 'react'; export interface CheckpointTitleProps { children?: React.ReactNode; } -declare const CheckpointTitle: React.ForwardRefExoticComponent< -CheckpointTitleProps & React.RefAttributes>; +declare const CheckpointTitle: React.ForwardRefExoticComponent; export default CheckpointTitle; diff --git a/src/ProductTour/index.d.ts b/src/ProductTour/index.d.ts index 566a74e292..4823e7066b 100644 --- a/src/ProductTour/index.d.ts +++ b/src/ProductTour/index.d.ts @@ -1,18 +1,7 @@ -import * as React from 'react'; +import React from 'react'; -type PlacementType = - | 'top' - | 'top-start' - | 'top-end' - | 'right-start' - | 'right' - | 'right-end' - | 'left-start' - | 'left' - | 'left-end' - | 'bottom' - | 'bottom-start' - | 'bottom-end'; +export type PlacementType = | 'top' | 'top-start' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'left-start' +| 'left' | 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end'; export interface CheckpointData { advanceButtonText?: React.ReactNode; @@ -45,7 +34,6 @@ export interface ProductTourProps { tours: TourData[]; } -declare const ProductTour: React.ForwardRefExoticComponent< -ProductTourProps & React.RefAttributes>; +declare const ProductTour: React.ForwardRefExoticComponent; export default ProductTour; diff --git a/src/ProgressBar/index.d.ts b/src/ProgressBar/index.d.ts index 78b91525e7..fb7ac86208 100644 --- a/src/ProgressBar/index.d.ts +++ b/src/ProgressBar/index.d.ts @@ -1,18 +1,12 @@ -import * as React from 'react'; +import React from 'react'; +import { ProgressBarProps as BaseProgressBarProps } from 'react-bootstrap/ProgressBar'; -export type ProgressBarVariant = 'dark' | 'warning' | 'success' | 'error'; - -export interface ProgressBarProps { - now?: number; - label?: React.ReactNode; - variant?: ProgressBarVariant; - className?: string; -} +export interface ProgressBarProps extends BaseProgressBarProps {} export interface ProgressBarAnnotatedProps extends ProgressBarProps { threshold?: number; thresholdLabel?: React.ReactNode; - thresholdVariant?: ProgressBarVariant; + thresholdVariant?: 'dark' | 'warning' | 'success' | 'error'; progressHint?: React.ReactNode; thresholdHint?: React.ReactNode; } diff --git a/src/Scrollable/index.d.ts b/src/Scrollable/index.d.ts index 381e315544..01a020bf40 100644 --- a/src/Scrollable/index.d.ts +++ b/src/Scrollable/index.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface ScrollableProps extends React.HTMLAttributes { children: React.ReactNode; diff --git a/src/SearchField/SearchFieldAdvanced.d.ts b/src/SearchField/SearchFieldAdvanced.d.ts index 48d40586d2..625910de51 100644 --- a/src/SearchField/SearchFieldAdvanced.d.ts +++ b/src/SearchField/SearchFieldAdvanced.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface SearchFieldAdvancedProps { children: React.ReactNode; diff --git a/src/SearchField/SearchFieldInput.d.ts b/src/SearchField/SearchFieldInput.d.ts index fcccbe893c..1f0072605f 100644 --- a/src/SearchField/SearchFieldInput.d.ts +++ b/src/SearchField/SearchFieldInput.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface SearchFieldInputProps extends React.InputHTMLAttributes { className?: string; diff --git a/src/SearchField/SearchFieldLabel.d.ts b/src/SearchField/SearchFieldLabel.d.ts index ead7a36aed..ffb3a427fc 100644 --- a/src/SearchField/SearchFieldLabel.d.ts +++ b/src/SearchField/SearchFieldLabel.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface SearchFieldLabelProps { children?: React.ReactNode; diff --git a/src/SearchField/SearchFieldSubmitButton.d.ts b/src/SearchField/SearchFieldSubmitButton.d.ts index 342f733074..8e7a861f83 100644 --- a/src/SearchField/SearchFieldSubmitButton.d.ts +++ b/src/SearchField/SearchFieldSubmitButton.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface SearchFieldSubmitButtonProps { variant?: 'light' | 'dark'; diff --git a/src/SearchField/SearchFileClearButton.d.ts b/src/SearchField/SearchFileClearButton.d.ts index 4acda16134..a9847aef45 100644 --- a/src/SearchField/SearchFileClearButton.d.ts +++ b/src/SearchField/SearchFileClearButton.d.ts @@ -1,6 +1,6 @@ -import * as React from 'react'; +import React from 'react'; -export interface SearchFieldClearButtonProps extends ButtonHTMLAttributes {} +export interface SearchFieldClearButtonProps extends React.ButtonHTMLAttributes {} declare const SearchFieldClearButton = React.FC; diff --git a/src/SearchField/index.d.ts b/src/SearchField/index.d.ts index 39fe83fc61..745482b984 100644 --- a/src/SearchField/index.d.ts +++ b/src/SearchField/index.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { SearchFieldAdvancedProps } from './SearchFieldAdvanced'; import { SearchFieldClearButtonProps } from './SearchFieldClearButton'; import { SearchFieldInputProps } from './SearchFieldInput'; diff --git a/src/SelectableBox/SelectableBoxSet.d.ts b/src/SelectableBox/SelectableBoxSet.d.ts index 4dc9d93ba4..57711d828c 100644 --- a/src/SelectableBox/SelectableBoxSet.d.ts +++ b/src/SelectableBox/SelectableBoxSet.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface SelectableBoxSetProps { name: string; @@ -11,8 +11,6 @@ export interface SelectableBoxSetProps { className?: string; } -declare const SelectableBoxSet: React.ForwardRefExoticComponent< -SelectableBoxSetProps & React.RefAttributes ->; +declare const SelectableBoxSet: React.ForwardRefExoticComponent; export default SelectableBoxSet; diff --git a/src/SelectableBox/index.d.ts b/src/SelectableBox/index.d.ts index a1f6cfa13f..848039269c 100644 --- a/src/SelectableBox/index.d.ts +++ b/src/SelectableBox/index.d.ts @@ -1,13 +1,11 @@ -import * as React from 'react'; -import SelectableBoxSet from './SelectableBoxSet'; - -export type InputProps = React.InputHTMLAttributes; +import React from 'react'; +import { SelectableBoxSetProps } from './SelectableBoxSet'; export interface SelectableBoxProps extends React.HTMLAttributes { value?: string | number; checked?: boolean; type?: 'radio' | 'checkbox'; - onClick?: (inputRef: HTMLInputElement) => void; + onClick?: (inputRef: React.HTMLInputElement) => void; onFocus?: () => void; inputHidden?: boolean; isIndeterminate?: boolean; @@ -15,14 +13,12 @@ export interface SelectableBoxProps extends React.HTMLAttributes className?: string; } -type SelectableBoxRef = HTMLDivElement & { - inputRef?: HTMLInputElement; +export type SelectableBoxRef = React.HTMLDivElement & { + inputRef?: React.HTMLInputElement; }; -declare const SelectableBox: React.ForwardRefExoticComponent< -SelectableBoxProps & React.RefAttributes -> & { - Set: typeof SelectableBoxSet; +declare const SelectableBox: React.ForwardRefExoticComponent> & { + Set: React.FC; }; export default SelectableBox; diff --git a/src/Sheet/SheetContainer.d.ts b/src/Sheet/SheetContainer.d.ts index 1b2b42bc80..11f97d4a2a 100644 --- a/src/Sheet/SheetContainer.d.ts +++ b/src/Sheet/SheetContainer.d.ts @@ -1,12 +1,9 @@ -/* eslint-disable react/require-default-props */ -/* eslint-disable react/no-unused-prop-types */ -import * as React from 'react'; +import React from 'react'; export interface SheetContainerProps { children: React.ReactNode; } -// eslint-disable-next-line react/prefer-stateless-function declare class SheetContainer extends React.Component {} export default SheetContainer; diff --git a/src/Sheet/index.d.ts b/src/Sheet/index.d.ts index 91b5ea7fc2..d0b34d31d9 100644 --- a/src/Sheet/index.d.ts +++ b/src/Sheet/index.d.ts @@ -1,6 +1,4 @@ -/* eslint-disable react/require-default-props */ -/* eslint-disable react/no-unused-prop-types */ -import * as React from 'react'; +import React from 'react'; export declare const POSITIONS: { left: string; @@ -23,7 +21,6 @@ export interface SheetProps { variant?: keyof typeof VARIANTS; } -// eslint-disable-next-line react/prefer-stateless-function declare class Sheet extends React.Component {} export default Sheet; diff --git a/src/Spinner/index.d.ts b/src/Spinner/index.d.ts index ca26a24058..fcc6fc3d29 100644 --- a/src/Spinner/index.d.ts +++ b/src/Spinner/index.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { SpinnerProps as BaseSpinnerProps } from 'react-bootstrap/Spinner'; export interface SpinnerProps extends BaseSpinnerProps { @@ -6,6 +6,6 @@ export interface SpinnerProps extends BaseSpinnerProps { screenReaderText?: React.ReactNode; } -declare const Spinner: React.ForwardRefExoticComponent>; +declare const Spinner: React.ForwardRefExoticComponent; export default Spinner; diff --git a/src/Stack/index.d.ts b/src/Stack/index.d.ts index 98e7cfd636..b0c1e2f965 100644 --- a/src/Stack/index.d.ts +++ b/src/Stack/index.d.ts @@ -1,10 +1,8 @@ -import * as React from 'react'; - -export type DirectionVariants = 'horizontal' | 'vertical'; +import React from 'react'; export interface StackProps extends React.HTMLAttributes { children: React.ReactNode; - direction?: DirectionVariants; + direction?: 'horizontal' | 'vertical'; gap?: number; className?: string; } diff --git a/src/StatefulButton/index.d.ts b/src/StatefulButton/index.d.ts index 5dc42cda47..763958c1e4 100644 --- a/src/StatefulButton/index.d.ts +++ b/src/StatefulButton/index.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export type StatefulButtonState = 'default' | 'pending' | 'complete' | 'error'; diff --git a/src/Stepper/Stepper.Step.d.ts b/src/Stepper/Stepper.Step.d.ts index 16e7b1753f..10c3c563ef 100644 --- a/src/Stepper/Stepper.Step.d.ts +++ b/src/Stepper/Stepper.Step.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface StepperStepProps { children: React.ReactNode; diff --git a/src/Stepper/Stepper.d.ts b/src/Stepper/Stepper.d.ts index da69983430..fff831dd8e 100644 --- a/src/Stepper/Stepper.d.ts +++ b/src/Stepper/Stepper.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { StepperStepProps } from './Stepper.Step'; import { StepperHeaderProps } from './StepperHeader'; import { StepperActionRowProps } from './StepperActionRow'; diff --git a/src/Stepper/StepperActionRow.d.ts b/src/Stepper/StepperActionRow.d.ts index d891e72645..9ac5db51c3 100644 --- a/src/Stepper/StepperActionRow.d.ts +++ b/src/Stepper/StepperActionRow.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface StepperActionRowProps { children: React.ReactNode; diff --git a/src/Stepper/StepperContext.d.ts b/src/Stepper/StepperContext.d.ts index 97262ff01d..509b619756 100644 --- a/src/Stepper/StepperContext.d.ts +++ b/src/Stepper/StepperContext.d.ts @@ -1,13 +1,13 @@ -import * as React from 'react'; +import React from 'react'; -interface StepperStepProps { - children: React.ReactNode, - eventKey: string.isRequired, - index?: number, - onClick?: (eventKey: string) => void, - active?: boolean, - complete?: boolean, - disabled?: boolean, +export interface StepperStepProps { + children: React.ReactNode; + eventKey: string; + index?: number; + onClick?: (eventKey: string) => void; + active?: boolean; + complete?: boolean; + disabled?: boolean; } declare const StepperStep: React.FC; diff --git a/src/Stepper/StepperHeader.d.ts b/src/Stepper/StepperHeader.d.ts index a7ee5d52fb..74927f2758 100644 --- a/src/Stepper/StepperHeader.d.ts +++ b/src/Stepper/StepperHeader.d.ts @@ -1,4 +1,5 @@ -import * as React from 'react'; +import React from 'react'; +import { StepperHeaderStepProps } from './StepperHeaderStep'; export interface StepperHeaderProps { className?: string; @@ -6,7 +7,7 @@ export interface StepperHeaderProps { } declare const StepperHeader: React.FC & { - Step: typeof StepperHeaderStep; + Step: React.FC; }; export default StepperHeader; diff --git a/src/Stepper/StepperHeaderStep.d.ts b/src/Stepper/StepperHeaderStep.d.ts index fa63b88c9b..6b7055ee10 100644 --- a/src/Stepper/StepperHeaderStep.d.ts +++ b/src/Stepper/StepperHeaderStep.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface StepperHeaderStepProps { eventKey: string; diff --git a/src/Sticky/index.d.ts b/src/Sticky/index.d.ts index c778d39535..2fb6b43273 100644 --- a/src/Sticky/index.d.ts +++ b/src/Sticky/index.d.ts @@ -1,14 +1,12 @@ -import * as React from 'react'; - -export type PositionVariant = 'top' | 'bottom'; +import React from 'react'; export interface StickyProps { children: React.ReactNode; - position?: PositionVariant; + position?: 'top' | 'bottom'; offset?: number | string; className?: string; } -declare const Sticky: React.ForwardRefExoticComponent>; +declare const Sticky: React.ForwardRefExoticComponent; export default Sticky; diff --git a/src/Tabs/index.d.ts b/src/Tabs/index.d.ts index 7e0afb4ec9..7b967b45e6 100644 --- a/src/Tabs/index.d.ts +++ b/src/Tabs/index.d.ts @@ -1,6 +1,6 @@ -import * as React from 'react'; +import React from 'react'; -export interface TabsProps { +export interface TabsProps extends React.ButtonHTMLAttributes { children: React.ReactNode; className?: string; moreTabText?: string; @@ -8,7 +8,7 @@ export interface TabsProps { activeKey?: string; } -export interface TabProps { +export interface TabProps extends React.ButtonHTMLAttributes { title: React.ReactNode; notification?: React.ReactNode; disabled?: boolean; @@ -19,5 +19,6 @@ export interface TabProps { declare const Tabs: React.FC; declare const Tab: React.FC; -export default Tabs; + export { Tab }; +export default Tabs; diff --git a/src/Toast/ToastContainer.d.ts b/src/Toast/ToastContainer.d.ts index 3c77b88b1e..94a0da726e 100644 --- a/src/Toast/ToastContainer.d.ts +++ b/src/Toast/ToastContainer.d.ts @@ -1,12 +1,9 @@ -/* eslint-disable react/require-default-props */ -/* eslint-disable react/no-unused-prop-types */ -import * as React from 'react'; +import React from 'react'; export interface ToastContainerProps { children: React.ReactNode; } -// eslint-disable-next-line react/prefer-stateless-function declare class ToastContainer extends React.Component {} export default ToastContainer; diff --git a/src/Toast/index.d.ts b/src/Toast/index.d.ts index 77fd7218ed..2acc9132c1 100644 --- a/src/Toast/index.d.ts +++ b/src/Toast/index.d.ts @@ -1,24 +1,16 @@ -import * as React from 'react'; +import { ToastProps as BaseToastProps } from 'react-bootstrap/Toast'; -export interface ToastActionProps { - label: string; - href?: string; - onClick?: () => void; -} - -export interface ToastProps extends React.HTMLAttributes { +export interface ToastProps extends BaseToastProps { children: string; - onClose: () => void; - show: boolean; - action?: ToastActionProps; + action?: { + label: string; + href?: string; + onClick?: () => void; + }; closeLabel?: string; - delay?: number; className?: string; } -// export const TOAST_CLOSE_LABEL_TEXT: string; -// export const TOAST_DELAY: number; - declare function Toast(props: ToastProps): JSX.Element; export default Toast; diff --git a/src/Tooltip/index.d.ts b/src/Tooltip/index.d.ts index c408f5cca3..827fd40a08 100644 --- a/src/Tooltip/index.d.ts +++ b/src/Tooltip/index.d.ts @@ -1,38 +1,14 @@ -import * as React from 'react'; +import React from 'react'; import { TooltipProps as BaseTooltipProps } from 'react-bootstrap/Tooltip'; -export type PlacementVariant = -| 'auto-start' -| 'auto' -| 'auto-end' -| 'top-start' -| 'top' -| 'top-end' -| 'right-start' -| 'right' -| 'right-end' -| 'bottom-end' -| 'bottom' -| 'bottom-start' -| 'left-end' -| 'left' -| 'left-start'; - export interface TooltipProps extends BaseTooltipProps { - id: string; - placement?: PlacementVariant; - arrowProps?: { - ref?: ((element: HTMLElement | null) => void) | React.RefObject; - style?: React.CSSProperties; - }; - show?: boolean; - popper?: Object; + popper?: {}; children?: React.ReactNode; className?: string; variant?: string; bsPrefix?: string; } -declare const Tooltip: React.ForwardRefExoticComponent>; +declare const Tooltip: React.FC; export default Tooltip; diff --git a/src/TransitionReplace/index.d.ts b/src/TransitionReplace/index.d.ts index e719678c06..12d224980a 100644 --- a/src/TransitionReplace/index.d.ts +++ b/src/TransitionReplace/index.d.ts @@ -1,6 +1,4 @@ -/* eslint-disable react/require-default-props */ -/* eslint-disable react/no-unused-prop-types */ -import * as React from 'react'; +import React from 'react'; export interface TransitionReplaceProps { children?: React.ReactElement; @@ -22,7 +20,6 @@ export interface TransitionReplaceProps { }; } -// eslint-disable-next-line react/prefer-stateless-function declare class TransitionReplace extends React.Component {} export default TransitionReplace; diff --git a/src/Truncate/index.d.ts b/src/Truncate/index.d.ts index c4944a8db2..91c5f34842 100644 --- a/src/Truncate/index.d.ts +++ b/src/Truncate/index.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface TruncateProps { children: string; From 2c91f4c209e3fa07be4ae35d8a8f73c5ad874796 Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Mon, 10 Apr 2023 22:41:58 +0300 Subject: [PATCH 05/16] feat: added Form types --- src/Form/FormAutosuggest.d.ts | 24 +++++++++++ src/Form/FormAutosuggestOption.d.ts | 11 +++++ src/Form/FormCheckbox.d.ts | 17 ++++++++ src/Form/FormCheckboxSet.d.ts | 17 ++++++++ src/Form/FormCheckboxSetContext.d.ts | 34 ++++++++++++++++ src/Form/FormControl.d.ts | 16 ++++++++ src/Form/FormControlDecorator.d.ts | 10 +++++ src/Form/FormControlDecoratorGroup.d.ts | 15 +++++++ src/Form/FormControlFeedback.d.ts | 16 ++++++++ src/Form/FormControlFloatingLabel.d.ts | 9 +++++ src/Form/FormControlSet.d.ts | 12 ++++++ src/Form/FormGroup.d.ts | 15 +++++++ src/Form/FormGroupContext.d.ts | 14 +++++++ src/Form/FormLabel.d.ts | 12 ++++++ src/Form/FormRadio.d.ts | 15 +++++++ src/Form/FormRadioSet.d.ts | 17 ++++++++ src/Form/FormRadioSetContext.d.ts | 15 +++++++ src/Form/FormSwitch.d.ts | 21 ++++++++++ src/Form/FormText.d.ts | 24 +++++++++++ src/Form/index.d.ts | 54 +++++++++++++++++++++++++ 20 files changed, 368 insertions(+) create mode 100644 src/Form/FormAutosuggest.d.ts create mode 100644 src/Form/FormAutosuggestOption.d.ts create mode 100644 src/Form/FormCheckbox.d.ts create mode 100644 src/Form/FormCheckboxSet.d.ts create mode 100644 src/Form/FormCheckboxSetContext.d.ts create mode 100644 src/Form/FormControl.d.ts create mode 100644 src/Form/FormControlDecorator.d.ts create mode 100644 src/Form/FormControlDecoratorGroup.d.ts create mode 100644 src/Form/FormControlFeedback.d.ts create mode 100644 src/Form/FormControlFloatingLabel.d.ts create mode 100644 src/Form/FormControlSet.d.ts create mode 100644 src/Form/FormGroup.d.ts create mode 100644 src/Form/FormGroupContext.d.ts create mode 100644 src/Form/FormLabel.d.ts create mode 100644 src/Form/FormRadio.d.ts create mode 100644 src/Form/FormRadioSet.d.ts create mode 100644 src/Form/FormRadioSetContext.d.ts create mode 100644 src/Form/FormSwitch.d.ts create mode 100644 src/Form/FormText.d.ts create mode 100644 src/Form/index.d.ts diff --git a/src/Form/FormAutosuggest.d.ts b/src/Form/FormAutosuggest.d.ts new file mode 100644 index 0000000000..d27bceff1c --- /dev/null +++ b/src/Form/FormAutosuggest.d.ts @@ -0,0 +1,24 @@ +import React from 'react'; + +export interface FormAutosuggestProps { + arrowKeyNavigationSelector?: string; + ignoredArrowKeysNames?: string[]; + isLoading?: boolean; + role?: string; + className?: string; + floatingLabel?: string; + onChange?: (value: string) => void; + helpMessage?: string; + placeholder?: string; + value?: string; + errorMessageText?: string; + name?: string; + readOnly?: boolean; + children?: React.ReactNode; + screenReaderText?: string; + onSelected?: (selectedValue: string) => void; +} + +declare const FormAutosuggest = React.FC; + +export default FormAutosuggest; diff --git a/src/Form/FormAutosuggestOption.d.ts b/src/Form/FormAutosuggestOption.d.ts new file mode 100644 index 0000000000..6cfe254fc9 --- /dev/null +++ b/src/Form/FormAutosuggestOption.d.ts @@ -0,0 +1,11 @@ +import React from 'react'; + +export interface FormAutosuggestOptionProps { + className?: string; + children?: string; + onClick?: (event: React.MouseEvent) => void; +} + +declare const FormAutosuggestOption = React.FC; + +export default FormAutosuggestOption; diff --git a/src/Form/FormCheckbox.d.ts b/src/Form/FormCheckbox.d.ts new file mode 100644 index 0000000000..9055551fc3 --- /dev/null +++ b/src/Form/FormCheckbox.d.ts @@ -0,0 +1,17 @@ +import React from 'react'; + +export interface FormCheckboxProps extends React.InputHTMLAttributes { + children: React.ReactNode; + className?: string; + controlClassName?: string; + labelClassName?: string; + description?: React.ReactNode; + isInvalid?: boolean; + isValid?: boolean; + controlAs?: keyof JSX.IntrinsicElements; + floatLabelLeft?: boolean; +} + +declare const FormCheckbox = React.FC; + +export default FormCheckbox; diff --git a/src/Form/FormCheckboxSet.d.ts b/src/Form/FormCheckboxSet.d.ts new file mode 100644 index 0000000000..139665089f --- /dev/null +++ b/src/Form/FormCheckboxSet.d.ts @@ -0,0 +1,17 @@ +import React from 'react'; + +export interface FormCheckboxSetProps { + children: React.ReactNode; + className?: string; + name: string; + value?: string[], + defaultValue?: string[]; + isInline?: boolean; + onChange?: React.ChangeEventHandler; + onFocus?: React.FocusEventHandler; + onBlur?: React.FocusEventHandler; +} + +declare const FormCheckboxSet = React.FC; + +export default FormCheckboxSet; diff --git a/src/Form/FormCheckboxSetContext.d.ts b/src/Form/FormCheckboxSetContext.d.ts new file mode 100644 index 0000000000..d3cbb4acee --- /dev/null +++ b/src/Form/FormCheckboxSetContext.d.ts @@ -0,0 +1,34 @@ +import { ReactNode } from 'react'; + +type CheckboxSetControlProps = { + onBlur?: (...args: any[]) => any; + onFocus?: (...args: any[]) => any; + onChange?: (...args: any[]) => any; + checked?: boolean; + defaultChecked?: boolean; + value?: string; +}; + +type CheckboxSetContextValue = { + name?: string; + value?: string[]; + defaultValue?: string[]; + getCheckboxControlProps: (props: CheckboxSetControlProps) => CheckboxSetControlProps; + onBlur?: (...args: any[]) => any; + onFocus?: (...args: any[]) => any; + onChange?: (...args: any[]) => any; + hasCheckboxSetProvider?: boolean; +}; + +type FormCheckboxSetContextProviderProps = { + children: ReactNode; + name?: string; + onBlur?: (...args: any[]) => any; + onFocus?: (...args: any[]) => any; + onChange?: (...args: any[]) => any; + value?: string[]; + defaultValue?: string[]; +}; + +export function useCheckboxSetContext(): CheckboxSetContextValue; +export function FormCheckboxSetContextProvider(props: FormCheckboxSetContextProviderProps): JSX.Element; diff --git a/src/Form/FormControl.d.ts b/src/Form/FormControl.d.ts new file mode 100644 index 0000000000..e252d9593f --- /dev/null +++ b/src/Form/FormControl.d.ts @@ -0,0 +1,16 @@ +import React from 'react'; +import { FormControlProps as BaseFormControlProps } from 'react-bootstrap/FormControl'; + +export interface FormControlProps extends BaseFormControlProps { + className?: string; + as?: keyof JSX.IntrinsicElements; + defaultValue?: string | number, + controlClassName?: string; + leadingElement?: React.ReactNode; + trailingElement?: React.ReactNode; + floatingLabel?: React.ReactNode; + isInvalid?: boolean; + autoResize?: boolean; +} + +declare const FormControl = React.FC; diff --git a/src/Form/FormControlDecorator.d.ts b/src/Form/FormControlDecorator.d.ts new file mode 100644 index 0000000000..6d6b30cc6c --- /dev/null +++ b/src/Form/FormControlDecorator.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface FormControlDecoratorProps { + children: React.ReactNode; + location?: 'leading' | 'trailing'; +} + +declare const FormControlDecorator = React.FC; + +export default FormControlDecorator; diff --git a/src/Form/FormControlDecoratorGroup.d.ts b/src/Form/FormControlDecoratorGroup.d.ts new file mode 100644 index 0000000000..8671fc67a9 --- /dev/null +++ b/src/Form/FormControlDecoratorGroup.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; +import { FORM_CONTROL_SIZES } from './constants'; + +export interface FormControlDecoratorGroupProps { + children: React.ReactNode; + leadingElement?: React.ReactNode; + trailingElement?: React.ReactNode; + floatingLabel?: React.ReactNode; + className?: string; + size?: FORM_CONTROL_SIZES.SMALL | FORM_CONTROL_SIZES.LARGE; +} + +declare const FormControlDecoratorGroup = React.FC; + +export default FormControlDecoratorGroup; diff --git a/src/Form/FormControlFeedback.d.ts b/src/Form/FormControlFeedback.d.ts new file mode 100644 index 0000000000..2f2b2a6125 --- /dev/null +++ b/src/Form/FormControlFeedback.d.ts @@ -0,0 +1,16 @@ +import React from 'react'; + +export type FeedbackTypes = 'default' | 'valid' | 'invalid' | 'warning' | 'criteria-empty' | 'criteria-valid' | 'criteria-invalid'; + +export interface FormControlFeedbackProps { + children: React.ReactNode; + className?: string; + hasIcon?: boolean; + type?: FeedbackTypes, + icon?: React.ReactNode; + muted?: boolean; +} + +declare const FormControlFeedback = React.FC; + +export default FormControlFeedback; diff --git a/src/Form/FormControlFloatingLabel.d.ts b/src/Form/FormControlFloatingLabel.d.ts new file mode 100644 index 0000000000..476cdf7cb8 --- /dev/null +++ b/src/Form/FormControlFloatingLabel.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface FormControlFloatingLabelProps { + children: React.ReactNode; +} + +declare const FormControlFloatingLabel = React.FC; + +export default FormControlFloatingLabel; diff --git a/src/Form/FormControlSet.d.ts b/src/Form/FormControlSet.d.ts new file mode 100644 index 0000000000..f17ad3738b --- /dev/null +++ b/src/Form/FormControlSet.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; + +export interface FormControlSetProps { + as?: keyof JSX.IntrinsicElements; + className?: string; + isInline?: boolean; + children?: React.ReactNode; +} + +declare const FormControlSet = React.FC; + +export default FormControlSet; diff --git a/src/Form/FormGroup.d.ts b/src/Form/FormGroup.d.ts new file mode 100644 index 0000000000..3cc654ea84 --- /dev/null +++ b/src/Form/FormGroup.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; + +export interface FormGroupProps { + children: React.ReactNode; + className?: string; + as?: keyof JSX.IntrinsicElements; + controlId?: string; + isInvalid?: boolean; + isValid?: boolean; + size?: 'sm' | 'lg'; +} + +declare const FormGroup = React.FC; + +export default FormGroup; diff --git a/src/Form/FormGroupContext.d.ts b/src/Form/FormGroupContext.d.ts new file mode 100644 index 0000000000..a01efe2d04 --- /dev/null +++ b/src/Form/FormGroupContext.d.ts @@ -0,0 +1,14 @@ +import React from 'react'; +import { FORM_CONTROL_SIZES } from './constants'; + +export interface FormGroupContextProviderProps { + children: React.ReactNode; + controlId?: string; + isInvalid?: boolean; + isValid?: boolean; + size?: FORM_CONTROL_SIZES.SMALL | FORM_CONTROL_SIZES.LARGE; +} + +declare const FormGroupContextProvider = React.FC; + +export default FormGroupContextProvider; diff --git a/src/Form/FormLabel.d.ts b/src/Form/FormLabel.d.ts new file mode 100644 index 0000000000..604d25412e --- /dev/null +++ b/src/Form/FormLabel.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; + +export interface FormLabelProps { + className?: string; + children: React.ReactNode; + isInline?: boolean; + size?: 'sm' | 'lg'; +} + +declare const FormLabel = React.FC; + +export default FormLabel; diff --git a/src/Form/FormRadio.d.ts b/src/Form/FormRadio.d.ts new file mode 100644 index 0000000000..7414e6a97f --- /dev/null +++ b/src/Form/FormRadio.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; + +export interface FormRadioProps extends React.InputHTMLAttributes { + children: React.ReactNode; + className?: string; + controlClassName?: string; + labelClassName?: string; + description?: React.ReactNode; + isInvalid?: boolean; + isValid?: boolean; +} + +declare const FormRadio = React.FC; + +export default FormRadio; diff --git a/src/Form/FormRadioSet.d.ts b/src/Form/FormRadioSet.d.ts new file mode 100644 index 0000000000..330ca280b6 --- /dev/null +++ b/src/Form/FormRadioSet.d.ts @@ -0,0 +1,17 @@ +import React from 'react'; + +export interface FormRadioSetProps { + children: React.ReactNode; + className?: string; + name: string; + value?: string; + defaultValue?: string; + isInline?: boolean; + onChange?: React.ChangeEventHandler; + onFocus?: React.FocusEventHandler; + onBlur?: React.FocusEventHandler; +} + +declare const FormRadioSet = React.FC; + +export default FormRadioSet; diff --git a/src/Form/FormRadioSetContext.d.ts b/src/Form/FormRadioSetContext.d.ts new file mode 100644 index 0000000000..d08fc55b5d --- /dev/null +++ b/src/Form/FormRadioSetContext.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; + +export interface FormRadioSetContextProps { + children: React.ReactNode; + name: string; + onBlur?: React.FocusEventHandler; + onFocus?: React.FocusEventHandler; + onChange?: React.ChangeEventHandler; + value?: string; + defaultValue?: string; +} + +declare const FormRadioSetContext = React.FC; + +export default FormRadioSetContext; diff --git a/src/Form/FormSwitch.d.ts b/src/Form/FormSwitch.d.ts new file mode 100644 index 0000000000..0bcc8e25cc --- /dev/null +++ b/src/Form/FormSwitch.d.ts @@ -0,0 +1,21 @@ +import React from 'react'; + +export interface FormSwitchProps { + children: React.ReactNode; + className?: string; + labelClassName?: string; + helperText?: React.ReactNode; + floatLabelLeft?: boolean; +} + +export interface FormSwitchControlProps { + isIndeterminate?: boolean; + className?: string; +} + +declare const FormSwitch = React.FC; +declare const SwitchControl = React.FC; + +export { SwitchControl }; + +export default FormSwitch; diff --git a/src/Form/FormText.d.ts b/src/Form/FormText.d.ts new file mode 100644 index 0000000000..e3d92ba918 --- /dev/null +++ b/src/Form/FormText.d.ts @@ -0,0 +1,24 @@ +import React from 'react'; + +export type FormTextTypes = 'default' | 'valid' | 'invalid' | 'warning' | 'criteria-empty' | 'criteria-valid' | 'criteria-invalid'; + +export interface FormTextIconProps { + type?: FormTextTypes; + customIcon?: React.ReactNode; +} + +export interface FormTextProps { + children: React.ReactNode; + className?: string; + hasIcon?: boolean; + type?: FormTextTypes, + icon?: React.ReactNode; + muted?: boolean; +} + +declare const FormText = React.FC; +declare const FormTextIcon = React.FC; + +export { FormTextIcon }; + +export default FormText; diff --git a/src/Form/index.d.ts b/src/Form/index.d.ts new file mode 100644 index 0000000000..073c3cc85c --- /dev/null +++ b/src/Form/index.d.ts @@ -0,0 +1,54 @@ +import React from 'react'; +import { FormControlProps } from './FormControl'; +import { FormRadioProps } from './FormRadio'; +import { FormRadioSetProps } from './FormRadioSet'; +import { FormAutosuggestProps } from './FormAutosuggest'; +import { FormAutosuggestOptionProps } from './FormAutosuggestOption'; +import { FormCheckboxProps } from './FormCheckbox'; +import { FormCheckboxSetProps } from './FormCheckboxSet'; +import { FormSwitchProps } from './FormSwitch'; +import { FormLabelProps } from './FormLabel'; +import { FormGroupProps } from './FormGroup'; +import { FormTextProps } from './FormText'; + +declare const FormControl: React.FC; +declare const FormRadio: React.FC; +declare const FormRadioSet: React.FC; +declare const FormAutosuggest: React.FC; +declare const FormAutosuggestOption: React.FC; +declare const FormCheckbox: React.FC; +declare const FormCheckboxSet: React.FC; +declare const FormSwitch: React.FC; +declare const FormLabel: React.FC; +declare const FormGroup: React.FC; +declare const FormText: React.FC + +declare const Form: { + Control: React.FC; + Radio: React.FC; + RadioSet: React.FC; + Autosuggest: React.FC; + AutosuggestOption: React.FC; + Checkbox: React.FC; + CheckboxSet: React.FC; + Switch: React.FC; + Label: React.FC; + Group: React.FC; + Text: React.FC +} + +export { + FormControl, + FormRadio, + FormRadioSet, + FormAutosuggest, + FormAutosuggestOption, + FormCheckbox, + FormCheckboxSet, + FormSwitch, + FormLabel, + FormGroup, + FormText +} + +export default Form; From cc5887b783b95615a63c28f38c0b838809da1f12 Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Wed, 12 Apr 2023 10:44:12 +0300 Subject: [PATCH 06/16] feat: created file d.ts for Form and DataTable components --- src/Carousel/index.d.ts | 20 +++ src/Collapsible/CollapsibleAdvanced.d.ts | 16 ++ src/Collapsible/CollapsibleBody.d.ts | 11 ++ src/Collapsible/CollapsibleTrigger.d.ts | 13 ++ src/Collapsible/CollapsibleVisible.d.ts | 10 ++ src/Collapsible/index.d.ts | 30 ++++ src/Container/index.d.ts | 12 ++ src/DataTable/BulkActions.d.ts | 9 ++ src/DataTable/CardView.d.ts | 31 ++++ src/DataTable/CollapsibleButtonGroup.d.ts | 15 ++ src/DataTable/DataTableLayout.d.ts | 13 ++ src/DataTable/DropdownFilters.d.ts | 3 + src/DataTable/EmptyTable.d.ts | 12 ++ src/DataTable/ExplandAll.d.ts | 12 ++ src/DataTable/ExplandRow.d.ts | 11 ++ src/DataTable/FilterStatus.d.ts | 15 ++ src/DataTable/RowStatus.d.ts | 11 ++ src/DataTable/SidebarFilter.d.ts | 10 ++ src/DataTable/SmartStatus.d.ts | 3 + src/DataTable/Table.d.ts | 8 + src/DataTable/TableActions.d.ts | 9 ++ src/DataTable/TableCell.d.ts | 14 ++ src/DataTable/TableControlBar.d.ts | 10 ++ src/DataTable/TableFilters.d.ts | 15 ++ src/DataTable/TableFooter.d.ts | 10 ++ src/DataTable/TableHeaderCell.d.ts | 13 ++ src/DataTable/TableHeaderRow.d.ts | 13 ++ src/DataTable/TablePagination.d.ts | 3 + src/DataTable/TablePaginationMinimal.d.ts | 3 + src/DataTable/TableRow.d.ts | 15 ++ src/DataTable/filters/CheckboxFilters.d.ts | 14 ++ src/DataTable/filters/DropdownFilter.d.ts | 20 +++ src/DataTable/filters/LabelledCheckbox.d.ts | 12 ++ .../filters/MultiSelectDropdownFilter.d.ts | 21 +++ src/DataTable/filters/TextFilter.d.ts | 14 ++ src/DataTable/index.d.ts | 137 ++++++++++++++++++ .../selection/BaseSelectionStatus.d.ts | 10 ++ src/DataTable/selection/ControlledSelect.d.ts | 13 ++ .../selection/ControlledSelectHeader.d.ts | 11 ++ .../selection/ControlledSelectionStatus.d.ts | 10 ++ src/DataTable/selection/SelectionStatus.d.ts | 10 ++ src/Form/FormCheckbox.d.ts | 8 + src/Form/FormControl.d.ts | 8 +- src/Form/FormGroup.d.ts | 2 +- src/Form/FormSwitch.d.ts | 4 +- src/Form/FormSwitchSet.d.ts | 8 + src/Form/index.d.ts | 114 +++++++++++---- src/Modal/BaseModalProps.d.ts | 2 +- 48 files changed, 751 insertions(+), 37 deletions(-) create mode 100644 src/Carousel/index.d.ts create mode 100644 src/Collapsible/CollapsibleAdvanced.d.ts create mode 100644 src/Collapsible/CollapsibleBody.d.ts create mode 100644 src/Collapsible/CollapsibleTrigger.d.ts create mode 100644 src/Collapsible/CollapsibleVisible.d.ts create mode 100644 src/Collapsible/index.d.ts create mode 100644 src/Container/index.d.ts create mode 100644 src/DataTable/BulkActions.d.ts create mode 100644 src/DataTable/CardView.d.ts create mode 100644 src/DataTable/CollapsibleButtonGroup.d.ts create mode 100644 src/DataTable/DataTableLayout.d.ts create mode 100644 src/DataTable/DropdownFilters.d.ts create mode 100644 src/DataTable/EmptyTable.d.ts create mode 100644 src/DataTable/ExplandAll.d.ts create mode 100644 src/DataTable/ExplandRow.d.ts create mode 100644 src/DataTable/FilterStatus.d.ts create mode 100644 src/DataTable/RowStatus.d.ts create mode 100644 src/DataTable/SidebarFilter.d.ts create mode 100644 src/DataTable/SmartStatus.d.ts create mode 100644 src/DataTable/Table.d.ts create mode 100644 src/DataTable/TableActions.d.ts create mode 100644 src/DataTable/TableCell.d.ts create mode 100644 src/DataTable/TableControlBar.d.ts create mode 100644 src/DataTable/TableFilters.d.ts create mode 100644 src/DataTable/TableFooter.d.ts create mode 100644 src/DataTable/TableHeaderCell.d.ts create mode 100644 src/DataTable/TableHeaderRow.d.ts create mode 100644 src/DataTable/TablePagination.d.ts create mode 100644 src/DataTable/TablePaginationMinimal.d.ts create mode 100644 src/DataTable/TableRow.d.ts create mode 100644 src/DataTable/filters/CheckboxFilters.d.ts create mode 100644 src/DataTable/filters/DropdownFilter.d.ts create mode 100644 src/DataTable/filters/LabelledCheckbox.d.ts create mode 100644 src/DataTable/filters/MultiSelectDropdownFilter.d.ts create mode 100644 src/DataTable/filters/TextFilter.d.ts create mode 100644 src/DataTable/index.d.ts create mode 100644 src/DataTable/selection/BaseSelectionStatus.d.ts create mode 100644 src/DataTable/selection/ControlledSelect.d.ts create mode 100644 src/DataTable/selection/ControlledSelectHeader.d.ts create mode 100644 src/DataTable/selection/ControlledSelectionStatus.d.ts create mode 100644 src/DataTable/selection/SelectionStatus.d.ts create mode 100644 src/Form/FormSwitchSet.d.ts diff --git a/src/Carousel/index.d.ts b/src/Carousel/index.d.ts new file mode 100644 index 0000000000..c74cbc012b --- /dev/null +++ b/src/Carousel/index.d.ts @@ -0,0 +1,20 @@ +import React from 'react'; +import { CarouselProps as BaseCarouselProps } from 'react-bootstrap/Carousel'; +import { CarouselItemProps as BaseCarouselItemProps } from 'react-bootstrap/CarouselItem'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; + +export const CAROUSEL_NEXT_LABEL_TEXT: string; +export const CAROUSEL_PREV_LABEL_TEXT: string; + +declare interface CarouselProps extends BaseCarouselProps {} + +declare interface CarouselItemProps extends BaseCarouselItemProps {} + +declare interface CarouselCaptionProps extends BsPrefixProps {} + +declare const Carousel: React.ForwardRefExoticComponent & { + Item: React.ForwardRefExoticComponent; + Caption: React.FC; +}; + +export default Carousel; diff --git a/src/Collapsible/CollapsibleAdvanced.d.ts b/src/Collapsible/CollapsibleAdvanced.d.ts new file mode 100644 index 0000000000..8177e0ce50 --- /dev/null +++ b/src/Collapsible/CollapsibleAdvanced.d.ts @@ -0,0 +1,16 @@ +import React from 'react'; + +export interface CollapsibleAdvancedProps { + children?: React.ReactNode; + className?: string; + defaultOpen?: boolean; + open?: boolean; + onToggle?: () => void; + onOpen?: () => void; + onClose?: () => void; + unmountOnExit?: boolean; +} + +declare class CollapsibleAdvanced extends React.Component {} + +export default CollapsibleAdvanced; diff --git a/src/Collapsible/CollapsibleBody.d.ts b/src/Collapsible/CollapsibleBody.d.ts new file mode 100644 index 0000000000..18803e359a --- /dev/null +++ b/src/Collapsible/CollapsibleBody.d.ts @@ -0,0 +1,11 @@ +import React from 'react'; + +export interface CollapsibleBodyProps { + children?: React.ReactNode; + tag?: string, + transitionWrapper?: React.ReactElement, +} + +declare const CollapsibleBody: React.FC; + +export default CollapsibleBody; diff --git a/src/Collapsible/CollapsibleTrigger.d.ts b/src/Collapsible/CollapsibleTrigger.d.ts new file mode 100644 index 0000000000..2ca502c9c6 --- /dev/null +++ b/src/Collapsible/CollapsibleTrigger.d.ts @@ -0,0 +1,13 @@ +import React from 'react'; + +export interface CollapsibleTriggerProps { + children?: React.ReactNode; + tag?: React.ElementType | string; + openOnly?: boolean; + closeOnly?: boolean; + onClick?: (e: React.MouseEvent) => void; + onKeyDown?: (e: React.KeyboardEvent) => void; +} + +declare const CollapsibleTrigger: React.FC; +export default CollapsibleTrigger; diff --git a/src/Collapsible/CollapsibleVisible.d.ts b/src/Collapsible/CollapsibleVisible.d.ts new file mode 100644 index 0000000000..005ca25d91 --- /dev/null +++ b/src/Collapsible/CollapsibleVisible.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface CollapsibleVisibleProps { + children?: React.ReactNode; + whenOpen?: boolean; + whenClosed?: boolean; +} + +declare const CollapsibleVisible: React.FC; +export default CollapsibleVisible; diff --git a/src/Collapsible/index.d.ts b/src/Collapsible/index.d.ts new file mode 100644 index 0000000000..8c2a4052d5 --- /dev/null +++ b/src/Collapsible/index.d.ts @@ -0,0 +1,30 @@ +import React from 'react'; +import { CollapsibleAdvancedProps } from './CollapsibleAdvanced'; +import { CollapsibleBodyProps } from './CollapsibleBody'; +import { CollapsibleTriggerProps } from './CollapsibleTrigger'; +import { CollapsibleVisibleProps } from './CollapsibleVisible'; + +export interface CollapsibleProps { + children: React.ReactNode; + className?: string; + defaultOpen?: boolean; + iconWhenClosed?: React.ReactElement; + iconWhenOpen?: React.ReactElement; + onClose?: () => void; + onOpen?: () => void; + onToggle?: () => void; + open?: boolean; + styling?: 'basic' | 'card' | 'card-lg'; + title: React.ReactNode; + unmountOnExit?: boolean; +} + +declare const Collapsible: React.ForwardRefExoticComponent> & { + Advanced: React.FC; + Body: React.FC; + Trigger: React.FC; + Visible: React.FC; + Context: React.FC; +}; + +export default Collapsible; diff --git a/src/Container/index.d.ts b/src/Container/index.d.ts new file mode 100644 index 0000000000..d304d143bc --- /dev/null +++ b/src/Container/index.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; +import { ContainerProps as BaseContainerProps } from 'react-bootstrap/Container'; + +export interface ContainerProps extends BaseContainerProps { + as?: keyof JSX.IntrinsicElements; + children?: React.ReactNode; + size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; +} + +declare const Container: React.FC; + +export default Container; diff --git a/src/DataTable/BulkActions.d.ts b/src/DataTable/BulkActions.d.ts new file mode 100644 index 0000000000..7ea3853903 --- /dev/null +++ b/src/DataTable/BulkActions.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface BulkActionsProps { + className?: string; +} + +declare const BulkActions: React.FC; + +export default BulkActions; diff --git a/src/DataTable/CardView.d.ts b/src/DataTable/CardView.d.ts new file mode 100644 index 0000000000..0c4f53bbd3 --- /dev/null +++ b/src/DataTable/CardView.d.ts @@ -0,0 +1,31 @@ +import React from 'react'; +import PropTypes from "prop-types"; + +// export interface CardItemProps { +// row: T, +// prepareRow: (row: T) => void; +// isSelectable: boolean; +// CardComponent: React.FC<{ row: T }>ж +// SelectionComponent?: PropTypes.func, +// selectionPlacement: 'right' | 'left', +// } + +export interface CardViewProps { + className?: string; + columnSizes?: { + xs?: number; + sm?: number; + md?: number; + lg?: number; + xl?: number; + }; + CardComponent: React.FC; + selectionPlacement?: 'left' | 'right'; + SkeletonCardComponent?: React.FC; + skeletonCardCount?: number; +} + +declare function CardView(props: CardViewProps): JSX.Element; + +export default CardView; + diff --git a/src/DataTable/CollapsibleButtonGroup.d.ts b/src/DataTable/CollapsibleButtonGroup.d.ts new file mode 100644 index 0000000000..2438e6193a --- /dev/null +++ b/src/DataTable/CollapsibleButtonGroup.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; + +export interface CollapsibleButtonGroupProps { + className?: string | null; + actions: { + component: React.ReactNode; + args?: Record; + }; +} + +declare const CollapsibleButtonGroup: React.FC; + +export default CollapsibleButtonGroup; + + diff --git a/src/DataTable/DataTableLayout.d.ts b/src/DataTable/DataTableLayout.d.ts new file mode 100644 index 0000000000..e7a2604277 --- /dev/null +++ b/src/DataTable/DataTableLayout.d.ts @@ -0,0 +1,13 @@ +import React from 'react'; + +export interface DataTableLayoutProps { + className?: string; + children: React.ReactNode; + filtersTitle?: string | React.ReactElement; +} + +declare const DataTableLayout: React.FC; + +export default DataTableLayout; + + diff --git a/src/DataTable/DropdownFilters.d.ts b/src/DataTable/DropdownFilters.d.ts new file mode 100644 index 0000000000..daf14cb43b --- /dev/null +++ b/src/DataTable/DropdownFilters.d.ts @@ -0,0 +1,3 @@ +declare function DropdownFilters(): JSX.Element; + +export default DropdownFilters; diff --git a/src/DataTable/EmptyTable.d.ts b/src/DataTable/EmptyTable.d.ts new file mode 100644 index 0000000000..c3072220bc --- /dev/null +++ b/src/DataTable/EmptyTable.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; + +export interface EmptyTableProps { + className?: string; + content: string; +} + +declare const EmptyTable: React.FC; + +export default EmptyTable; + + diff --git a/src/DataTable/ExplandAll.d.ts b/src/DataTable/ExplandAll.d.ts new file mode 100644 index 0000000000..39cdc9956f --- /dev/null +++ b/src/DataTable/ExplandAll.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; + +export interface ExpandAllProps { + getToggleAllRowsExpandedProps: () => { + onClick: React.MouseEventHandler; + }; + isAllRowsExpanded: boolean; +} + +declare const ExpandAll: React.FC; + +export default ExpandAll; diff --git a/src/DataTable/ExplandRow.d.ts b/src/DataTable/ExplandRow.d.ts new file mode 100644 index 0000000000..4be7c461ca --- /dev/null +++ b/src/DataTable/ExplandRow.d.ts @@ -0,0 +1,11 @@ +export interface ExpandRowProps { + row: { + isExpanded: boolean; + getToggleRowExpandedProps: () => any; + }; +} + +declare function ExpandRow(props: ExpandRowProps): JSX.Element; + +export default ExpandRow; + diff --git a/src/DataTable/FilterStatus.d.ts b/src/DataTable/FilterStatus.d.ts new file mode 100644 index 0000000000..780d77446d --- /dev/null +++ b/src/DataTable/FilterStatus.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; + +export interface FilterStatusProps { + className?: string; + buttonClassName?: string; + variant?: string; + size?: string; + clearFiltersText?: string | React.ReactElement; + showFilteredFields?: boolean; +} + +declare function FilterStatus(props: FilterStatusProps): JSX.Element; + +export default FilterStatus; + diff --git a/src/DataTable/RowStatus.d.ts b/src/DataTable/RowStatus.d.ts new file mode 100644 index 0000000000..3ebc396b0c --- /dev/null +++ b/src/DataTable/RowStatus.d.ts @@ -0,0 +1,11 @@ +import React from 'react'; + +export interface RowStatusProps { + className?: string; + statusText: string | React.ReactElement; +} + +declare function RowStatus(props: RowStatusProps): JSX.Element; + +export default RowStatus; + diff --git a/src/DataTable/SidebarFilter.d.ts b/src/DataTable/SidebarFilter.d.ts new file mode 100644 index 0000000000..c9f7288413 --- /dev/null +++ b/src/DataTable/SidebarFilter.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface SidebarFiltersProps { + title?: string | React.ReactElement; +} + +declare function SidebarFilters(props: SidebarFiltersProps): JSX.Element; + +export default SidebarFilters; + diff --git a/src/DataTable/SmartStatus.d.ts b/src/DataTable/SmartStatus.d.ts new file mode 100644 index 0000000000..92117647f2 --- /dev/null +++ b/src/DataTable/SmartStatus.d.ts @@ -0,0 +1,3 @@ +declare function SmartStatus(): JSX.Element; + +export default SmartStatus; diff --git a/src/DataTable/Table.d.ts b/src/DataTable/Table.d.ts new file mode 100644 index 0000000000..fe1cf9c9aa --- /dev/null +++ b/src/DataTable/Table.d.ts @@ -0,0 +1,8 @@ +export interface TableProps { + isStriped?: boolean; +} + +declare function Table(props: TableProps): JSX.Element; + +export default Table; + diff --git a/src/DataTable/TableActions.d.ts b/src/DataTable/TableActions.d.ts new file mode 100644 index 0000000000..79e81fd796 --- /dev/null +++ b/src/DataTable/TableActions.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface TableActionsProps { + className?: string +} + +declare const TableActions: React.FC; + +export default TableActions; diff --git a/src/DataTable/TableCell.d.ts b/src/DataTable/TableCell.d.ts new file mode 100644 index 0000000000..b3b80e264f --- /dev/null +++ b/src/DataTable/TableCell.d.ts @@ -0,0 +1,14 @@ +import React from 'react'; + +export interface TableCellProps { + getCellProps: () => any; + render: (type: string) => React.ReactNode; + column: { + cellClassName?: string; + }; +} + +declare function TableCell(props: TableCellProps): JSX.Element; + +export default TableCell; + diff --git a/src/DataTable/TableControlBar.d.ts b/src/DataTable/TableControlBar.d.ts new file mode 100644 index 0000000000..53beae1b12 --- /dev/null +++ b/src/DataTable/TableControlBar.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface TableControlBarProps { + className?: string; +} + +declare const TableControlBar: React.FC; + +export default TableControlBar; + diff --git a/src/DataTable/TableFilters.d.ts b/src/DataTable/TableFilters.d.ts new file mode 100644 index 0000000000..4af7ee8181 --- /dev/null +++ b/src/DataTable/TableFilters.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; + +interface TableColumn { + Header: string | React.ReactNode; + canFilter?: boolean; + render: (arg0: string) => React.ReactNode; +} + +export interface TableFiltersProps { + columns: Array; +} + +declare function TableFilters(props: TableFiltersProps): JSX.Element; + +export default TableFilters; diff --git a/src/DataTable/TableFooter.d.ts b/src/DataTable/TableFooter.d.ts new file mode 100644 index 0000000000..a2b475b25b --- /dev/null +++ b/src/DataTable/TableFooter.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface TableFooterProps { + children?: React.ReactNode | React.ReactNodeArray; + className?: string; +} + +declare function TableFooter(props: TableFooterProps): JSX.Element; + +export default TableFooter; diff --git a/src/DataTable/TableHeaderCell.d.ts b/src/DataTable/TableHeaderCell.d.ts new file mode 100644 index 0000000000..319ff32ece --- /dev/null +++ b/src/DataTable/TableHeaderCell.d.ts @@ -0,0 +1,13 @@ +export interface TableHeaderCellProps { + getHeaderProps: () => void; + isSorted?: boolean; + render: (arg0: string) => void; + isSortedDesc?: boolean; + getSortByToggleProps?: () => void; + canSort?: boolean; + headerClassName: string; +} + +declare function TableHeaderCell(props: TableHeaderCellProps): JSX.Element; + +export default TableHeaderCell; diff --git a/src/DataTable/TableHeaderRow.d.ts b/src/DataTable/TableHeaderRow.d.ts new file mode 100644 index 0000000000..b356b3cf62 --- /dev/null +++ b/src/DataTable/TableHeaderRow.d.ts @@ -0,0 +1,13 @@ +import React from 'react'; +import { TableHeaderCellProps } from './TableHeaderCell'; + +export interface TableHeaderRowProps { + headerGroups: { + headers: TableHeaderCellProps[]; + getHeaderGroupProps: () => React.HTMLAttributes; + } +} + +declare function TableHeaderRow(props: TableHeaderRowProps): JSX.Element; + +export default TableHeaderRow; diff --git a/src/DataTable/TablePagination.d.ts b/src/DataTable/TablePagination.d.ts new file mode 100644 index 0000000000..3ee1f9d438 --- /dev/null +++ b/src/DataTable/TablePagination.d.ts @@ -0,0 +1,3 @@ +declare function TablePagination(): JSX.Element; + +export default TablePagination; diff --git a/src/DataTable/TablePaginationMinimal.d.ts b/src/DataTable/TablePaginationMinimal.d.ts new file mode 100644 index 0000000000..dab8943796 --- /dev/null +++ b/src/DataTable/TablePaginationMinimal.d.ts @@ -0,0 +1,3 @@ +declare function TablePaginationMinimal(): JSX.Element; + +export default TablePaginationMinimal; diff --git a/src/DataTable/TableRow.d.ts b/src/DataTable/TableRow.d.ts new file mode 100644 index 0000000000..2bef1961b0 --- /dev/null +++ b/src/DataTable/TableRow.d.ts @@ -0,0 +1,15 @@ +interface TableRowProps { + row: { + getRowProps: (props?: any) => any; + cells: object[]; + id: string; + isSelected?: boolean; + isExpanded?: boolean; + }; +} + +declare function TableRow({ row }: TableRowProps): JSX.Element; + +export default TableRow; + + diff --git a/src/DataTable/filters/CheckboxFilters.d.ts b/src/DataTable/filters/CheckboxFilters.d.ts new file mode 100644 index 0000000000..8caf30374a --- /dev/null +++ b/src/DataTable/filters/CheckboxFilters.d.ts @@ -0,0 +1,14 @@ +import React from 'react'; + +export interface CheckboxFiltersProps { + column: { + setFilter: (value: string | undefined) => void; + Header: React.ReactNode; + filterChoices: { name: string; value?: string | number; number?: number }[]; + getHeaderProps: () => { key: string }; + filterValue?: string[]; + } +} + +declare const CheckboxFilter: React.FC; +export default CheckboxFilter; diff --git a/src/DataTable/filters/DropdownFilter.d.ts b/src/DataTable/filters/DropdownFilter.d.ts new file mode 100644 index 0000000000..966eb5d819 --- /dev/null +++ b/src/DataTable/filters/DropdownFilter.d.ts @@ -0,0 +1,20 @@ +import React from 'react'; + +export type FilterChoice = { + name: string; + number?: number; + value: string | number; +}; + +export interface DropdownFilterProps { + column: { + setFilter: (value: string | undefined) => void; + Header: React.ReactNode; + filterChoices: FilterChoice[]; + getHeaderProps: () => { key: string }; + } +} + +declare const DropdownFilter: React.FC; + +export default DropdownFilter; diff --git a/src/DataTable/filters/LabelledCheckbox.d.ts b/src/DataTable/filters/LabelledCheckbox.d.ts new file mode 100644 index 0000000000..b7553a8952 --- /dev/null +++ b/src/DataTable/filters/LabelledCheckbox.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; + +export interface LabelledCheckboxProps { + checked: boolean; + onChange: React.ChangeEventHandler; + label: React.ReactNode | ((props: LabelledCheckboxProps) => React.ReactNode); + id: string; +} + +declare const LabelledCheckbox: React.FC; + +export default LabelledCheckbox; diff --git a/src/DataTable/filters/MultiSelectDropdownFilter.d.ts b/src/DataTable/filters/MultiSelectDropdownFilter.d.ts new file mode 100644 index 0000000000..79280971b8 --- /dev/null +++ b/src/DataTable/filters/MultiSelectDropdownFilter.d.ts @@ -0,0 +1,21 @@ +import React from 'react'; + +export interface Choice { + name: string; + number?: number; + value: string | number; +} + +export interface MultiSelectDropdownFilterProps { + column: { + setFilter: (value: string[]) => void; + Header: React.ReactNode | ((props: Record) => JSX.Element); + filterChoices: Choice[]; + getHeaderProps: () => { key: string }; + filterValue?: string[]; + } +} + +declare const MultiSelectDropdownFilter: React.FC; + +export default MultiSelectDropdownFilter; diff --git a/src/DataTable/filters/TextFilter.d.ts b/src/DataTable/filters/TextFilter.d.ts new file mode 100644 index 0000000000..d0f3369c9d --- /dev/null +++ b/src/DataTable/filters/TextFilter.d.ts @@ -0,0 +1,14 @@ +import React from 'react'; + +export interface TextFilterProps { + column: { + filterValue?: string; + setFilter: (value?: string) => void; + Header: React.ReactNode | ((props?: any) => React.ReactNode); + getHeaderProps: (props?: any) => { key: string }; + } +} + +declare const TextFilter: React.FC; + +export default TextFilter; diff --git a/src/DataTable/index.d.ts b/src/DataTable/index.d.ts new file mode 100644 index 0000000000..fba54c2eb7 --- /dev/null +++ b/src/DataTable/index.d.ts @@ -0,0 +1,137 @@ +import React from 'react'; +import { BulkActionsProps } from './BulkActions'; +import { EmptyTableProps } from './EmptyTable'; +import { FilterStatusProps } from './FilterStatus'; +import DropdownFilters from './DropdownFilters'; +import { RowStatusProps } from './RowStatus'; +import { ControlledSelectionStatusProps } from './selection/SelectionStatus'; +import SmartStatus from './SmartStatus'; +import { TableProps } from './Table'; +import { TableCellProps } from './TableCell'; +import { TableControlBarProps } from './TableControlBar'; +import { TableFiltersProps } from './TableFilters'; +import { TableFooterProps } from './TableFooter'; +import { TableHeaderCellProps } from './TableHeaderCell'; +import { TableHeaderRowProps } from './TableHeaderRow'; +import TablePagination from './TablePagination'; +import TablePaginationMinimal from './TablePaginationMinimal'; +import { TableActionsProps } from './TableActions'; +import { ControlledSelectProps } from './selection/ControlledSelect'; +import { ControlledSelectHeaderProps } from './selection/ControlledSelectHeader'; +import { ExpandAllProps } from './ExplandAll'; +import { ExpandRowProps } from './ExplandRow'; + +export interface BulkAction { + buttonText: string; + handleClick: () => void; + className?: string; + variant?: string; + disabled?: boolean; +} + +export type BulkActionProp = BulkAction | (() => BulkAction) | React.ReactElement; + +export interface TableAction { + buttonText: string; + handleClick: () => void; + className?: string; + variant?: string; + disabled?: boolean; +} + +export type TableActionType = TableAction | (() => TableAction) | React.ReactElement; + +export interface DataTableProps { + columns: { + Header: string; + accessor?: string; + Cell?: (cell: any) => React.ReactNode; + Filter?: Function; + filter?: string; + filterChoices?: { + name: string; + number: number; + value: string + }[]; + }[]; + data: object; + defaultColumnValues?: { + Filter: () => React.ReactNode; + }; + additionalColumns?: { + id: string; + Header?: string; + Cell?: (cell: any) => React.ReactNode; + }[]; + isSelectable?: boolean; + isPaginated?: boolean; + manualPagination?: boolean; + pageCount?: number; // TODO: requiredWhen + itemCount?: number; + isFilterable?: boolean; + manualFilters?: boolean; + fetchData?: (data: object) => void; + initialState?: { + pageSize?: number; // TODO: requiredWhen + pageIndex?: number; // TODO: requiredWhen + filters?: { [key: string]: any }[]; // TODO: requiredWhen + sortBy?: { [key: string]: any }[]; // TODO: requiredWhen + selectedRowIds?: { [key: string]: any }; // TODO: requiredWhen + }; + isSortable?: boolean; + manualSortBy?: boolean; + isExpandable?: boolean; + renderRowSubComponent?: (row: number, index: number) => React.ReactNode; + bulkActions?: BulkActionProp[] | (() => BulkActionProp[]) | React.ReactElement; + tableActions?: TableActionType[]; + numBreakoutFilters?: 1 | 2 | 3 | 4; + initialTableOptions?: object; + EmptyTableComponent?: Function; + RowStatusComponent?: Function; + SelectionStatusComponent?: Function; + FilterStatusComponent?: Function; + manualSelectColumn?: { + id: string; + Header: () => React.ReactNode; + Cell: (cell: any) => React.ReactNode, + disableSortBy: boolean; + }; + showFiltersInSidebar?: boolean; + dataViewToggleOptions?: { + isDataViewToggleEnabled?: boolean; + onDataViewToggle?: Function; + defaultActiveStateValue?: string; + togglePlacement?: string; + }; + disableElevation?: boolean; + isLoading?: boolean; + children?: React.ReactNode; + onSelectedRowsChanged?: (selectedRowIds: Record) => void; +} + +declare const DataTable: React.FC & { + BulkActions: React.FC; + EmptyTable: React.FC; + DropdownFilters: typeof DropdownFilters; + FilterStatus: React.FC; + RowStatus: React.FC; + SelectionStatus: React.FC; + SmartStatus: typeof SmartStatus; + Table: React.FC; + TableCell: React.FC; + TableControlBar: React.FC; + TableFilters: React.FC; + TableFooter: React.FC; + TableHeaderCell: React.FC; + TableHeaderRow: React.FC; + TablePagination: typeof TablePagination; + TablePaginationMinimal: typeof TablePaginationMinimal; + TableActions: React.FC; + ControlledSelectionStatus: React.FC; + ControlledSelect: React.FC; + ControlledSelectHeader: React.FC; + ExpandAll: React.FC; + ExpandRow: React.FC; +}; + +export default DataTable; diff --git a/src/DataTable/selection/BaseSelectionStatus.d.ts b/src/DataTable/selection/BaseSelectionStatus.d.ts new file mode 100644 index 0000000000..70bbeba854 --- /dev/null +++ b/src/DataTable/selection/BaseSelectionStatus.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface SelectionStatusProps { + className?: string; + clearSelectionText: string | React.ReactElement; +} + +declare const SelectionStatus: React.FC; + +export default SelectionStatus; diff --git a/src/DataTable/selection/ControlledSelect.d.ts b/src/DataTable/selection/ControlledSelect.d.ts new file mode 100644 index 0000000000..2900504be0 --- /dev/null +++ b/src/DataTable/selection/ControlledSelect.d.ts @@ -0,0 +1,13 @@ +import React from 'react'; + +export interface ControlledSelectProps { + row: { + id: string | number; + getToggleRowSelectedProps: () => any; + isSelected: boolean; + }; +} + +declare const ControlledSelect: React.FC; + +export default ControlledSelect; diff --git a/src/DataTable/selection/ControlledSelectHeader.d.ts b/src/DataTable/selection/ControlledSelectHeader.d.ts new file mode 100644 index 0000000000..6b4ef84cdb --- /dev/null +++ b/src/DataTable/selection/ControlledSelectHeader.d.ts @@ -0,0 +1,11 @@ +import React from 'react'; + +export interface ControlledSelectHeaderProps { + rows: { + id: string | number; + }; +} + +declare const ControlledSelectHeader: React.FC; + +export default ControlledSelectHeader; diff --git a/src/DataTable/selection/ControlledSelectionStatus.d.ts b/src/DataTable/selection/ControlledSelectionStatus.d.ts new file mode 100644 index 0000000000..440dfec8a5 --- /dev/null +++ b/src/DataTable/selection/ControlledSelectionStatus.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface ControlledSelectionStatusProps { + className?: string; + clearSelectionText?: string | JSX.Element; +} + +declare const ControlledSelectionStatus: React.FC; + +export default ControlledSelectionStatus; diff --git a/src/DataTable/selection/SelectionStatus.d.ts b/src/DataTable/selection/SelectionStatus.d.ts new file mode 100644 index 0000000000..440dfec8a5 --- /dev/null +++ b/src/DataTable/selection/SelectionStatus.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface ControlledSelectionStatusProps { + className?: string; + clearSelectionText?: string | JSX.Element; +} + +declare const ControlledSelectionStatus: React.FC; + +export default ControlledSelectionStatus; diff --git a/src/Form/FormCheckbox.d.ts b/src/Form/FormCheckbox.d.ts index 9055551fc3..4bac8566fb 100644 --- a/src/Form/FormCheckbox.d.ts +++ b/src/Form/FormCheckbox.d.ts @@ -12,6 +12,14 @@ export interface FormCheckboxProps extends React.InputHTMLAttributes; +declare const CheckboxControl = React.FC; + +export { CheckboxControl }; export default FormCheckbox; diff --git a/src/Form/FormControl.d.ts b/src/Form/FormControl.d.ts index e252d9593f..f65355e4c9 100644 --- a/src/Form/FormControl.d.ts +++ b/src/Form/FormControl.d.ts @@ -1,5 +1,6 @@ import React from 'react'; import { FormControlProps as BaseFormControlProps } from 'react-bootstrap/FormControl'; +import { FormControlFeedbackProps } from './FormControlFeedback'; export interface FormControlProps extends BaseFormControlProps { className?: string; @@ -13,4 +14,9 @@ export interface FormControlProps extends BaseFormControlProps { autoResize?: boolean; } -declare const FormControl = React.FC; +declare const FormControl: React.FC & { + Feedback: React.FC; + Description: React.FC; +}; + +export default FormControl; diff --git a/src/Form/FormGroup.d.ts b/src/Form/FormGroup.d.ts index 3cc654ea84..39776c2ea0 100644 --- a/src/Form/FormGroup.d.ts +++ b/src/Form/FormGroup.d.ts @@ -1,6 +1,6 @@ import React from 'react'; -export interface FormGroupProps { +export interface FormGroupProps extends React.HTMLAttributes { children: React.ReactNode; className?: string; as?: keyof JSX.IntrinsicElements; diff --git a/src/Form/FormSwitch.d.ts b/src/Form/FormSwitch.d.ts index 0bcc8e25cc..b136bedf54 100644 --- a/src/Form/FormSwitch.d.ts +++ b/src/Form/FormSwitch.d.ts @@ -1,6 +1,6 @@ import React from 'react'; -export interface FormSwitchProps { +export interface FormSwitchProps extends React.ButtonHTMLAttributes { children: React.ReactNode; className?: string; labelClassName?: string; @@ -16,6 +16,6 @@ export interface FormSwitchControlProps { declare const FormSwitch = React.FC; declare const SwitchControl = React.FC; -export { SwitchControl }; +export { SwitchControl }; // TODO: do not working export default FormSwitch; diff --git a/src/Form/FormSwitchSet.d.ts b/src/Form/FormSwitchSet.d.ts new file mode 100644 index 0000000000..7e9ab05a47 --- /dev/null +++ b/src/Form/FormSwitchSet.d.ts @@ -0,0 +1,8 @@ +import React from 'react'; +import { FormCheckboxSetProps } from './FormCheckboxSet'; + +export interface FormSwitchSetProps extends FormCheckboxSetProps{} + +declare const FormSwitchSet = React.FC; + +export default FormSwitchSet; diff --git a/src/Form/index.d.ts b/src/Form/index.d.ts index 073c3cc85c..a13d672cfc 100644 --- a/src/Form/index.d.ts +++ b/src/Form/index.d.ts @@ -1,30 +1,29 @@ import React from 'react'; -import { FormControlProps } from './FormControl'; -import { FormRadioProps } from './FormRadio'; -import { FormRadioSetProps } from './FormRadioSet'; -import { FormAutosuggestProps } from './FormAutosuggest'; -import { FormAutosuggestOptionProps } from './FormAutosuggestOption'; -import { FormCheckboxProps } from './FormCheckbox'; -import { FormCheckboxSetProps } from './FormCheckboxSet'; -import { FormSwitchProps } from './FormSwitch'; -import { FormLabelProps } from './FormLabel'; -import { FormGroupProps } from './FormGroup'; -import { FormTextProps } from './FormText'; +import { Form, FormProps } from 'react-bootstrap/Form'; -declare const FormControl: React.FC; -declare const FormRadio: React.FC; -declare const FormRadioSet: React.FC; -declare const FormAutosuggest: React.FC; -declare const FormAutosuggestOption: React.FC; -declare const FormCheckbox: React.FC; -declare const FormCheckboxSet: React.FC; -declare const FormSwitch: React.FC; -declare const FormLabel: React.FC; -declare const FormGroup: React.FC; -declare const FormText: React.FC +import FormControl, { FormControlProps } from './FormControl'; +import FormRadio, { FormRadioProps } from './FormRadio'; +import FormRadioSet, { FormRadioSetProps } from './FormRadioSet'; +import FormControlFeedback, { FormControlFeedbackProps } from './FormControlFeedback'; +import FormRadioSetContext from './FormRadioSetContext'; +import FormAutosuggest, { FormAutosuggestProps } from './FormAutosuggest'; +import FormAutosuggestOption, { FormAutosuggestOptionProps } from './FormAutosuggestOption'; +import FormCheckbox, { FormCheckboxProps, CheckboxControl } from './FormCheckbox'; +import FormCheckboxSet, { FormCheckboxSetProps } from './FormCheckboxSet'; +import FormCheckboxSetContext from './FormCheckboxSetContext'; +import FormControlDecoratorGroup from './FormControlDecoratorGroup'; +import FormSwitch, { FormSwitchProps, SwitchControl } from './FormSwitch'; +import FormLabel, { FormLabelProps } from './FormLabel'; +import FormGroup, { FormGroupProps } from './FormGroup'; +import FormText, { FormTextProps } from './FormText'; +import FormSwitchSet from './FormSwitchSet'; +import { BsPrefixRefForwardingComponent } from "react-bootstrap/helpers"; -declare const Form: { - Control: React.FC; +declare const Form: React.FC & { + Control: React.FC & { + Feedback: React.FC; + Description: React.FC; + }; Radio: React.FC; RadioSet: React.FC; Autosuggest: React.FC; @@ -32,23 +31,74 @@ declare const Form: { Checkbox: React.FC; CheckboxSet: React.FC; Switch: React.FC; + SwitchSet: React.FC; Label: React.FC; Group: React.FC; - Text: React.FC -} + Text: React.FC; + Row: BsPrefixRefForwardingComponent<"div", unknown>; +}; + +export default Form; + +// Form.Control = FormControl; +// Form.Radio = FormRadio; +// Form.RadioSet = FormRadioSet; +// Form.Autosuggest = FormAutosuggest; +// Form.AutosuggestOption = FormAutosuggestOption; +// Form.Checkbox = FormCheckbox; +// Form.CheckboxSet = FormCheckboxSet; +// Form.Switch = FormSwitch; +// Form.SwitchSet = FormSwitchSet; +// Form.Label = FormLabel; +// Form.Group = FormGroup; +// Form.Text = FormText; + +// declare const FormControl: React.FC; +// declare const FormRadio: React.FC; +// declare const FormRadioSet: React.FC; +// declare const FormAutosuggest: React.FC; +// declare const FormAutosuggestOption: React.FC; +// declare const FormCheckbox: React.FC; +// declare const FormCheckboxSet: React.FC; +// declare const FormSwitch: React.FC; +// declare const FormLabel: React.FC; +// declare const FormGroup: React.FC; +// declare const FormText: React.FC + +// declare const Form: { +// // Control: React.FC & { +// // Feedback: React.FC; +// // Description: React.FC; +// // }; +// Radio: React.FC; +// RadioSet: React.FC; +// Autosuggest: React.FC; +// AutosuggestOption: React.FC; +// Checkbox: React.FC; +// CheckboxSet: React.FC; +// Switch: React.FC; +// Label: React.FC; +// Group: React.FC; +// Text: React.FC +// } export { FormControl, + FormLabel, FormRadio, FormRadioSet, + FormRadioSetContext, + FormCheckbox, + FormSwitch, FormAutosuggest, FormAutosuggestOption, - FormCheckbox, FormCheckboxSet, - FormSwitch, - FormLabel, + FormCheckboxSetContext, FormGroup, - FormText + FormControlDecoratorGroup, + FormControlFeedback, + FormText, + CheckboxControl, + SwitchControl, + FormSwitchSet, } - -export default Form; diff --git a/src/Modal/BaseModalProps.d.ts b/src/Modal/BaseModalProps.d.ts index c764ae4c04..8f3a1423e9 100644 --- a/src/Modal/BaseModalProps.d.ts +++ b/src/Modal/BaseModalProps.d.ts @@ -8,7 +8,7 @@ export interface BaseModalProps { title: string; isOpen?: boolean; hasCloseButton?: boolean; - onClose?: () => void; + onClose?: () => void; // TODO: requiredWhenNot size?: ModalSizes; variant?: ModalVariants; closeLabel?: string; From 418baf9c02ab35eeedcd68e93dae8f3c8836e3d9 Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Wed, 12 Apr 2023 18:21:29 +0300 Subject: [PATCH 07/16] feat: added types for Dropzone and hooks --- src/DataTable/index.d.ts | 12 ++++---- src/Dropdown/index.d.ts | 34 +++++++++++++++++++++++ src/Dropzone/DefaultContent.d.ts | 11 ++++++++ src/Dropzone/DragError.d.ts | 9 ++++++ src/Dropzone/GenericError.d.ts | 9 ++++++ src/Dropzone/UploadProgress.d.ts | 12 ++++++++ src/Dropzone/index.d.ts | 29 +++++++++++++++++++ src/Hyperlink/index.d.ts | 26 +++++++++++++++++ src/Modal/BaseModalProps.d.ts | 2 +- src/hooks/useArrowKeyNavigation.d.ts | 8 ++++++ src/hooks/useIndexOfLastVisibleChild.d.ts | 8 ++++++ src/hooks/useIsVisible.d.ts | 6 ++++ src/hooks/useToggle.d.ts | 17 ++++++++++++ src/hooks/useWindowSize.d.ts | 6 ++++ 14 files changed, 182 insertions(+), 7 deletions(-) create mode 100644 src/Dropdown/index.d.ts create mode 100644 src/Dropzone/DefaultContent.d.ts create mode 100644 src/Dropzone/DragError.d.ts create mode 100644 src/Dropzone/GenericError.d.ts create mode 100644 src/Dropzone/UploadProgress.d.ts create mode 100644 src/Dropzone/index.d.ts create mode 100644 src/Hyperlink/index.d.ts create mode 100644 src/hooks/useArrowKeyNavigation.d.ts create mode 100644 src/hooks/useIndexOfLastVisibleChild.d.ts create mode 100644 src/hooks/useIsVisible.d.ts create mode 100644 src/hooks/useToggle.d.ts create mode 100644 src/hooks/useWindowSize.d.ts diff --git a/src/DataTable/index.d.ts b/src/DataTable/index.d.ts index fba54c2eb7..16fb3e2f53 100644 --- a/src/DataTable/index.d.ts +++ b/src/DataTable/index.d.ts @@ -66,17 +66,17 @@ export interface DataTableProps { isSelectable?: boolean; isPaginated?: boolean; manualPagination?: boolean; - pageCount?: number; // TODO: requiredWhen + pageCount?: number; itemCount?: number; isFilterable?: boolean; manualFilters?: boolean; fetchData?: (data: object) => void; initialState?: { - pageSize?: number; // TODO: requiredWhen - pageIndex?: number; // TODO: requiredWhen - filters?: { [key: string]: any }[]; // TODO: requiredWhen - sortBy?: { [key: string]: any }[]; // TODO: requiredWhen - selectedRowIds?: { [key: string]: any }; // TODO: requiredWhen + pageSize?: number; + pageIndex?: number; + filters?: { [key: string]: any }[]; + sortBy?: { [key: string]: any }[]; + selectedRowIds?: { [key: string]: any }; }; isSortable?: boolean; manualSortBy?: boolean; diff --git a/src/Dropdown/index.d.ts b/src/Dropdown/index.d.ts new file mode 100644 index 0000000000..46efd58e5d --- /dev/null +++ b/src/Dropdown/index.d.ts @@ -0,0 +1,34 @@ +import React from 'react'; +import { BsPrefixProps, BsPrefixRefForwardingComponent } from 'react-bootstrap/helpers'; +import BaseDropdown, { DropdownProps as BaseDropdownProps } from 'react-bootstrap/Dropdown'; +import { DropdownToggleProps as BaseDropdownToggleProps } from 'react-bootstrap/DropdownToggle'; +import { DropdownMenuProps } from 'react-bootstrap/DropdownMenu'; + +interface DropdownProps extends BaseDropdownProps { + autoClose?: boolean | 'inside' | 'outside'; + className?: string; + variant?: 'light' | 'dark'; +} + +interface DropdownToggleProps extends BsPrefixProps, BaseDropdownToggleProps { + id: string | number; +} + +interface DropdownItemProps extends React.LinkHTMLAttributes{ + className?: string; +} + +declare const DropdownToggle: BsPrefixRefForwardingComponent<'button', DropdownToggleProps>; + +declare const DropdownItem: BsPrefixRefForwardingComponent<'button', DropdownItemProps>; + +declare const Dropdown: BsPrefixRefForwardingComponent<'div', DropdownProps> & { + Toggle: React.FC; + Item: React.FC + Menu: React.FC; + Header: typeof BaseDropdown.Header; + Divider: typeof BaseDropdown.Divider; +}; + +export default Dropdown; +export { DropdownToggle, DropdownItem }; diff --git a/src/Dropzone/DefaultContent.d.ts b/src/Dropzone/DefaultContent.d.ts new file mode 100644 index 0000000000..04bdb23e64 --- /dev/null +++ b/src/Dropzone/DefaultContent.d.ts @@ -0,0 +1,11 @@ +import React from 'react'; + +export interface DefaultContentProps { + accept?: string[], + maxSize?: number; + minSize?: number; +} + +declare const DefaultContent: React.FC; + +export default DefaultContent; diff --git a/src/Dropzone/DragError.d.ts b/src/Dropzone/DragError.d.ts new file mode 100644 index 0000000000..c79bc2d5ef --- /dev/null +++ b/src/Dropzone/DragError.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface DragErrorProps { + message: string | keyof JSX.IntrinsicElements; +} + +declare const DragError: React.FC; + +export default DragError; diff --git a/src/Dropzone/GenericError.d.ts b/src/Dropzone/GenericError.d.ts new file mode 100644 index 0000000000..a8fb20253f --- /dev/null +++ b/src/Dropzone/GenericError.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface GenericErrorProps { + errorMsgs: string[]; +} + +declare const GenericError: React.FC; + +export default GenericError; diff --git a/src/Dropzone/UploadProgress.d.ts b/src/Dropzone/UploadProgress.d.ts new file mode 100644 index 0000000000..890193bca1 --- /dev/null +++ b/src/Dropzone/UploadProgress.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; + +export interface UploadProgressProps { + variant: 'spinner' | 'bar'; + percent: number; + name: string; + onCancel: () => void; +} + +declare const UploadProgress: React.FC; + +export default UploadProgress; diff --git a/src/Dropzone/index.d.ts b/src/Dropzone/index.d.ts new file mode 100644 index 0000000000..d252aaf4cb --- /dev/null +++ b/src/Dropzone/index.d.ts @@ -0,0 +1,29 @@ +import React from 'react'; + +export interface DropzoneProps { + className?: string; + accept?: { [key: string]: string[] }; + maxSize?: number; + minSize?: number; + onUploadProgress?: (percentageUploaded: number, progressEvent: ProgressEvent) => void; + onUploadCancel?: (response: Response) => void; + onProcessUpload: (params: { + fileData: object; + requestConfig: object; + handleError: (error: Error) => void; + }) => void; + errorMessages?: { + invalidType?: string | JSX.Element; + invalidSizeLess?: string | JSX.Element; + invalidSizeMore?: string | JSX.Element; + multipleDragged?: string | JSX.Element; + uploadError?: string | JSX.Element; + }; + progressVariant?: 'spinner' | 'bar'; + validator?: (file: File) => boolean; + inputComponent?: React.ReactNode | React.FunctionComponent; +} + +declare const Dropzone: React.FC; + +export default Dropzone; diff --git a/src/Hyperlink/index.d.ts b/src/Hyperlink/index.d.ts new file mode 100644 index 0000000000..db75cd92d3 --- /dev/null +++ b/src/Hyperlink/index.d.ts @@ -0,0 +1,26 @@ +import React from 'react'; + +declare const HYPER_LINK_EXTERNAL_LINK_ALT_TEXT: string; +declare const HYPER_LINK_EXTERNAL_LINK_TITLE: string; + +export interface HyperlinkProps extends React.AnchorHTMLAttributes { + destination: string; + children: React.ReactNode; + className?: string; + target?: string; + onClick?: React.MouseEventHandler; + externalLinkAlternativeText?: string; + externalLinkTitle?: string; + variant?: 'default' | 'muted' | 'brand'; + isInline?: boolean; + showLaunchIcon?: boolean; +} + +declare const Hyperlink: React.ForwardRefExoticComponent>; + +export { + HYPER_LINK_EXTERNAL_LINK_ALT_TEXT, + HYPER_LINK_EXTERNAL_LINK_TITLE, + Hyperlink, + HyperlinkProps, +}; diff --git a/src/Modal/BaseModalProps.d.ts b/src/Modal/BaseModalProps.d.ts index 8f3a1423e9..c764ae4c04 100644 --- a/src/Modal/BaseModalProps.d.ts +++ b/src/Modal/BaseModalProps.d.ts @@ -8,7 +8,7 @@ export interface BaseModalProps { title: string; isOpen?: boolean; hasCloseButton?: boolean; - onClose?: () => void; // TODO: requiredWhenNot + onClose?: () => void; size?: ModalSizes; variant?: ModalVariants; closeLabel?: string; diff --git a/src/hooks/useArrowKeyNavigation.d.ts b/src/hooks/useArrowKeyNavigation.d.ts new file mode 100644 index 0000000000..8b8083e65b --- /dev/null +++ b/src/hooks/useArrowKeyNavigation.d.ts @@ -0,0 +1,8 @@ +import React from 'react'; + +export type UseArrowKeyNavigationProps = { + selectors?: string; + ignoredKeys?: string[]; +}; + +export default function useArrowKeyNavigation(props?: UseArrowKeyNavigationProps): React.RefObject; diff --git a/src/hooks/useIndexOfLastVisibleChild.d.ts b/src/hooks/useIndexOfLastVisibleChild.d.ts new file mode 100644 index 0000000000..09c5e6b841 --- /dev/null +++ b/src/hooks/useIndexOfLastVisibleChild.d.ts @@ -0,0 +1,8 @@ +import React from 'react'; + +declare const useIndexOfLastVisibleChild: ( + containerElementRef: React.RefObject, + overflowElementRef?: React.RefObject +) => number[]; + +export default useIndexOfLastVisibleChild; diff --git a/src/hooks/useIsVisible.d.ts b/src/hooks/useIsVisible.d.ts new file mode 100644 index 0000000000..03af638098 --- /dev/null +++ b/src/hooks/useIsVisible.d.ts @@ -0,0 +1,6 @@ +import React from 'react'; + +declare const useIsVisible: (defaultIsVisible?: boolean) => [boolean, React.RefObject]; + +export default useIsVisible; + diff --git a/src/hooks/useToggle.d.ts b/src/hooks/useToggle.d.ts new file mode 100644 index 0000000000..71cf5ea91e --- /dev/null +++ b/src/hooks/useToggle.d.ts @@ -0,0 +1,17 @@ +export type HandlersTypes = { + handleToggleOn?: () => void; + handleToggleOff?: () => void; + handleToggle?: (isOn: boolean) => void; +}; + +export type UseToggleReturnTypes = [ + isOn: boolean, + setOn: () => void, + setOff: () => void, + toggle: () => void +]; + +export default function useToggle( + defaultIsOn?: boolean, + handlers?: HandlersTypes +): UseToggleReturnTypes; diff --git a/src/hooks/useWindowSize.d.ts b/src/hooks/useWindowSize.d.ts new file mode 100644 index 0000000000..38081cdb0f --- /dev/null +++ b/src/hooks/useWindowSize.d.ts @@ -0,0 +1,6 @@ +export interface WindowSizeTypes { + width: number | undefined; + height: number | undefined; +} + +export default function useWindowSize(): WindowSizeTypes; From ac0bb5120cc442bdf442b553dd52e37003db27a3 Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Wed, 12 Apr 2023 21:37:10 +0300 Subject: [PATCH 08/16] refactor: code refactoring --- src/Carousel/index.d.ts | 9 +-- src/Collapsible/CollapsibleTrigger.d.ts | 3 +- src/Collapsible/CollapsibleVisible.d.ts | 1 + src/Collapsible/index.d.ts | 2 +- src/Container/index.d.ts | 4 +- src/DataTable/CardView.d.ts | 16 +----- src/DataTable/CollapsibleButtonGroup.d.ts | 4 +- src/DataTable/DataTableLayout.d.ts | 2 - src/DataTable/EmptyTable.d.ts | 2 - src/DataTable/ExplandRow.d.ts | 1 - src/DataTable/FilterStatus.d.ts | 1 - src/DataTable/RowStatus.d.ts | 1 - src/DataTable/Table.d.ts | 1 - src/DataTable/TableCell.d.ts | 1 - src/DataTable/TableControlBar.d.ts | 1 - src/DataTable/TableRow.d.ts | 4 +- src/DataTable/filters/CheckboxFilters.d.ts | 1 + src/DataTable/selection/SelectionStatus.d.ts | 10 ++-- src/Dropdown/index.d.ts | 15 ++--- src/Dropzone/DefaultContent.d.ts | 2 +- src/Dropzone/GenericError.d.ts | 2 +- src/Form/FormAutosuggest.d.ts | 2 +- src/Form/FormAutosuggestOption.d.ts | 2 +- src/Form/FormCheckbox.d.ts | 5 +- src/Form/FormCheckboxSet.d.ts | 2 +- src/Form/FormCheckboxSetContext.d.ts | 43 ++++++++------- src/Form/FormControl.d.ts | 4 +- src/Form/FormControlDecorator.d.ts | 2 +- src/Form/FormControlDecoratorGroup.d.ts | 2 +- src/Form/FormControlFeedback.d.ts | 6 +- src/Form/FormControlFloatingLabel.d.ts | 2 +- src/Form/FormControlSet.d.ts | 6 +- src/Form/FormGroup.d.ts | 9 +-- src/Form/FormGroupContext.d.ts | 35 +++++++++++- src/Form/FormLabel.d.ts | 5 +- src/Form/FormRadio.d.ts | 2 +- src/Form/FormRadioSet.d.ts | 2 +- src/Form/FormRadioSetContext.d.ts | 28 +++++++--- src/Form/FormSwitch.d.ts | 4 +- src/Form/FormSwitchSet.d.ts | 7 +-- src/Form/FormText.d.ts | 10 ++-- src/Form/index.d.ts | 42 -------------- src/Hyperlink/index.d.ts | 10 +--- src/Icon/index.d.ts | 1 - src/IconButton/index.d.ts | 45 ++++++++------- src/IconButtonToggle/index.d.ts | 6 +- src/Layout/index.d.ts | 18 +++--- src/MailtoLink/index.d.ts | 16 +++--- src/Menu/MenuItem.d.ts | 20 +++---- src/Menu/SelectMenu.d.ts | 8 +-- src/Menu/index.d.ts | 8 +-- src/Modal/BaseModalProps.d.ts | 24 ++++---- src/Modal/FullscreenModal.d.ts | 8 +-- src/Modal/MarketingModal.d.ts | 12 ++-- src/Modal/ModalCloseButton.d.ts | 12 ++-- src/Modal/ModalContext.d.ts | 15 ++--- src/Modal/ModalDialog.d.ts | 24 ++++---- src/Modal/ModalDialogBody.d.ts | 8 +-- src/Modal/ModalLayer.d.ts | 10 ++-- src/Modal/ModalPopup.d.ts | 18 +++--- src/Modal/PopperElement.d.ts | 16 +++--- src/Modal/Portal.d.ts | 4 +- src/Modal/StandardModal.d.ts | 6 +- src/Modal/StandartModal.d.ts | 26 ++++----- src/Modal/index.d.ts | 38 ++++++------- src/Nav/index.d.ts | 29 +++++----- src/Navbar/index.d.ts | 8 +-- src/OverflowScroll/OverflowScroll.d.ts | 18 +++--- src/OverflowScroll/OverflowScrollItems.d.ts | 2 +- src/OverflowScroll/index.d.ts | 6 ++ src/Overlay/index.d.ts | 44 +++++++-------- src/PageBanner/index.d.ts | 12 ++-- src/Pagination/index.d.ts | 40 +++++++------- src/Popover/index.d.ts | 12 ++-- src/ProductTour/Checkpoint.d.ts | 30 +++++----- src/ProductTour/CheckpointActionRow.d.ts | 18 +++--- src/ProductTour/CheckpointBody.d.ts | 2 +- src/ProductTour/CheckpointBreadcrumbs.d.ts | 6 +- src/ProductTour/CheckpointTitle.d.ts | 2 +- src/ProductTour/index.d.ts | 47 ++++++++-------- src/ProgressBar/index.d.ts | 12 ++-- src/Scrollable/index.d.ts | 4 +- src/SearchField/SearchFieldAdvanced.d.ts | 42 +++++++------- src/SearchField/SearchFieldInput.d.ts | 4 +- src/SearchField/SearchFieldLabel.d.ts | 2 +- src/SearchField/SearchFieldSubmitButton.d.ts | 6 +- src/SearchField/SearchFileClearButton.d.ts | 2 +- src/SearchField/index.d.ts | 58 ++++++++++---------- src/SelectableBox/SelectableBoxSet.d.ts | 16 +++--- src/SelectableBox/index.d.ts | 22 ++++---- src/Sheet/SheetContainer.d.ts | 2 +- src/Sheet/index.d.ts | 24 ++++---- src/Spinner/index.d.ts | 4 +- src/Stack/index.d.ts | 8 +-- src/StatefulButton/index.d.ts | 16 +++--- src/Stepper/Stepper.Step.d.ts | 14 ++--- src/Stepper/Stepper.d.ts | 14 ++--- src/Stepper/StepperActionRow.d.ts | 8 +-- src/Stepper/StepperContext.d.ts | 14 ++--- src/Stepper/StepperHeader.d.ts | 6 +- src/Stepper/StepperHeaderStep.d.ts | 12 ++-- src/Sticky/index.d.ts | 8 +-- src/Tabs/index.d.ts | 27 ++++----- src/Toast/ToastContainer.d.ts | 2 +- src/Toast/index.d.ts | 16 +++--- src/Tooltip/index.d.ts | 10 ++-- src/TransitionReplace/index.d.ts | 34 ++++++------ src/Truncate/index.d.ts | 14 ++--- src/hooks/useIsVisible.d.ts | 1 - 109 files changed, 652 insertions(+), 682 deletions(-) create mode 100644 src/OverflowScroll/index.d.ts diff --git a/src/Carousel/index.d.ts b/src/Carousel/index.d.ts index c74cbc012b..55cf976c9e 100644 --- a/src/Carousel/index.d.ts +++ b/src/Carousel/index.d.ts @@ -3,14 +3,11 @@ import { CarouselProps as BaseCarouselProps } from 'react-bootstrap/Carousel'; import { CarouselItemProps as BaseCarouselItemProps } from 'react-bootstrap/CarouselItem'; import { BsPrefixProps } from 'react-bootstrap/helpers'; -export const CAROUSEL_NEXT_LABEL_TEXT: string; -export const CAROUSEL_PREV_LABEL_TEXT: string; +export interface CarouselProps extends BaseCarouselProps {} -declare interface CarouselProps extends BaseCarouselProps {} +export interface CarouselItemProps extends BaseCarouselItemProps {} -declare interface CarouselItemProps extends BaseCarouselItemProps {} - -declare interface CarouselCaptionProps extends BsPrefixProps {} +export interface CarouselCaptionProps extends BsPrefixProps {} declare const Carousel: React.ForwardRefExoticComponent & { Item: React.ForwardRefExoticComponent; diff --git a/src/Collapsible/CollapsibleTrigger.d.ts b/src/Collapsible/CollapsibleTrigger.d.ts index 2ca502c9c6..65b4dad81b 100644 --- a/src/Collapsible/CollapsibleTrigger.d.ts +++ b/src/Collapsible/CollapsibleTrigger.d.ts @@ -2,7 +2,7 @@ import React from 'react'; export interface CollapsibleTriggerProps { children?: React.ReactNode; - tag?: React.ElementType | string; + tag?: keyof JSX.IntrinsicElements | string; openOnly?: boolean; closeOnly?: boolean; onClick?: (e: React.MouseEvent) => void; @@ -10,4 +10,5 @@ export interface CollapsibleTriggerProps { } declare const CollapsibleTrigger: React.FC; + export default CollapsibleTrigger; diff --git a/src/Collapsible/CollapsibleVisible.d.ts b/src/Collapsible/CollapsibleVisible.d.ts index 005ca25d91..269ce636e6 100644 --- a/src/Collapsible/CollapsibleVisible.d.ts +++ b/src/Collapsible/CollapsibleVisible.d.ts @@ -7,4 +7,5 @@ export interface CollapsibleVisibleProps { } declare const CollapsibleVisible: React.FC; + export default CollapsibleVisible; diff --git a/src/Collapsible/index.d.ts b/src/Collapsible/index.d.ts index 8c2a4052d5..9d0aef8a13 100644 --- a/src/Collapsible/index.d.ts +++ b/src/Collapsible/index.d.ts @@ -19,7 +19,7 @@ export interface CollapsibleProps { unmountOnExit?: boolean; } -declare const Collapsible: React.ForwardRefExoticComponent> & { +declare const Collapsible: React.ForwardRefExoticComponent & { Advanced: React.FC; Body: React.FC; Trigger: React.FC; diff --git a/src/Container/index.d.ts b/src/Container/index.d.ts index d304d143bc..102aab2384 100644 --- a/src/Container/index.d.ts +++ b/src/Container/index.d.ts @@ -1,8 +1,8 @@ import React from 'react'; import { ContainerProps as BaseContainerProps } from 'react-bootstrap/Container'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; -export interface ContainerProps extends BaseContainerProps { - as?: keyof JSX.IntrinsicElements; +export interface ContainerProps extends BsPrefixProps, BaseContainerProps { children?: React.ReactNode; size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; } diff --git a/src/DataTable/CardView.d.ts b/src/DataTable/CardView.d.ts index 0c4f53bbd3..2ec97f3f03 100644 --- a/src/DataTable/CardView.d.ts +++ b/src/DataTable/CardView.d.ts @@ -1,16 +1,6 @@ import React from 'react'; -import PropTypes from "prop-types"; -// export interface CardItemProps { -// row: T, -// prepareRow: (row: T) => void; -// isSelectable: boolean; -// CardComponent: React.FC<{ row: T }>ж -// SelectionComponent?: PropTypes.func, -// selectionPlacement: 'right' | 'left', -// } - -export interface CardViewProps { +export interface CardViewProps { className?: string; columnSizes?: { xs?: number; @@ -19,13 +9,13 @@ export interface CardViewProps { lg?: number; xl?: number; }; - CardComponent: React.FC; + CardComponent: React.FC; selectionPlacement?: 'left' | 'right'; SkeletonCardComponent?: React.FC; skeletonCardCount?: number; } -declare function CardView(props: CardViewProps): JSX.Element; +declare function CardView(props: CardViewProps): JSX.Element; export default CardView; diff --git a/src/DataTable/CollapsibleButtonGroup.d.ts b/src/DataTable/CollapsibleButtonGroup.d.ts index 2438e6193a..c0bbdc5e41 100644 --- a/src/DataTable/CollapsibleButtonGroup.d.ts +++ b/src/DataTable/CollapsibleButtonGroup.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface CollapsibleButtonGroupProps { - className?: string | null; + className?: string; actions: { component: React.ReactNode; args?: Record; @@ -11,5 +11,3 @@ export interface CollapsibleButtonGroupProps { declare const CollapsibleButtonGroup: React.FC; export default CollapsibleButtonGroup; - - diff --git a/src/DataTable/DataTableLayout.d.ts b/src/DataTable/DataTableLayout.d.ts index e7a2604277..dbb4aa70f9 100644 --- a/src/DataTable/DataTableLayout.d.ts +++ b/src/DataTable/DataTableLayout.d.ts @@ -9,5 +9,3 @@ export interface DataTableLayoutProps { declare const DataTableLayout: React.FC; export default DataTableLayout; - - diff --git a/src/DataTable/EmptyTable.d.ts b/src/DataTable/EmptyTable.d.ts index c3072220bc..1d33831120 100644 --- a/src/DataTable/EmptyTable.d.ts +++ b/src/DataTable/EmptyTable.d.ts @@ -8,5 +8,3 @@ export interface EmptyTableProps { declare const EmptyTable: React.FC; export default EmptyTable; - - diff --git a/src/DataTable/ExplandRow.d.ts b/src/DataTable/ExplandRow.d.ts index 4be7c461ca..46c049a774 100644 --- a/src/DataTable/ExplandRow.d.ts +++ b/src/DataTable/ExplandRow.d.ts @@ -8,4 +8,3 @@ export interface ExpandRowProps { declare function ExpandRow(props: ExpandRowProps): JSX.Element; export default ExpandRow; - diff --git a/src/DataTable/FilterStatus.d.ts b/src/DataTable/FilterStatus.d.ts index 780d77446d..46503e22fe 100644 --- a/src/DataTable/FilterStatus.d.ts +++ b/src/DataTable/FilterStatus.d.ts @@ -12,4 +12,3 @@ export interface FilterStatusProps { declare function FilterStatus(props: FilterStatusProps): JSX.Element; export default FilterStatus; - diff --git a/src/DataTable/RowStatus.d.ts b/src/DataTable/RowStatus.d.ts index 3ebc396b0c..ee00aa4d67 100644 --- a/src/DataTable/RowStatus.d.ts +++ b/src/DataTable/RowStatus.d.ts @@ -8,4 +8,3 @@ export interface RowStatusProps { declare function RowStatus(props: RowStatusProps): JSX.Element; export default RowStatus; - diff --git a/src/DataTable/Table.d.ts b/src/DataTable/Table.d.ts index fe1cf9c9aa..ffc1c5fc1d 100644 --- a/src/DataTable/Table.d.ts +++ b/src/DataTable/Table.d.ts @@ -5,4 +5,3 @@ export interface TableProps { declare function Table(props: TableProps): JSX.Element; export default Table; - diff --git a/src/DataTable/TableCell.d.ts b/src/DataTable/TableCell.d.ts index b3b80e264f..3e1dfc7e47 100644 --- a/src/DataTable/TableCell.d.ts +++ b/src/DataTable/TableCell.d.ts @@ -11,4 +11,3 @@ export interface TableCellProps { declare function TableCell(props: TableCellProps): JSX.Element; export default TableCell; - diff --git a/src/DataTable/TableControlBar.d.ts b/src/DataTable/TableControlBar.d.ts index 53beae1b12..be13a8252d 100644 --- a/src/DataTable/TableControlBar.d.ts +++ b/src/DataTable/TableControlBar.d.ts @@ -7,4 +7,3 @@ export interface TableControlBarProps { declare const TableControlBar: React.FC; export default TableControlBar; - diff --git a/src/DataTable/TableRow.d.ts b/src/DataTable/TableRow.d.ts index 2bef1961b0..637f050a8c 100644 --- a/src/DataTable/TableRow.d.ts +++ b/src/DataTable/TableRow.d.ts @@ -1,4 +1,4 @@ -interface TableRowProps { +export interface TableRowProps { row: { getRowProps: (props?: any) => any; cells: object[]; @@ -11,5 +11,3 @@ interface TableRowProps { declare function TableRow({ row }: TableRowProps): JSX.Element; export default TableRow; - - diff --git a/src/DataTable/filters/CheckboxFilters.d.ts b/src/DataTable/filters/CheckboxFilters.d.ts index 8caf30374a..69ca03e234 100644 --- a/src/DataTable/filters/CheckboxFilters.d.ts +++ b/src/DataTable/filters/CheckboxFilters.d.ts @@ -11,4 +11,5 @@ export interface CheckboxFiltersProps { } declare const CheckboxFilter: React.FC; + export default CheckboxFilter; diff --git a/src/DataTable/selection/SelectionStatus.d.ts b/src/DataTable/selection/SelectionStatus.d.ts index 440dfec8a5..c4e1f56667 100644 --- a/src/DataTable/selection/SelectionStatus.d.ts +++ b/src/DataTable/selection/SelectionStatus.d.ts @@ -1,10 +1,8 @@ import React from 'react'; +import { ControlledSelectionStatusProps } from './ControlledSelectionStatus'; -export interface ControlledSelectionStatusProps { - className?: string; - clearSelectionText?: string | JSX.Element; -} +export interface SelectionStatusProps extends ControlledSelectionStatusProps {} -declare const ControlledSelectionStatus: React.FC; +declare const SelectionStatus: React.FC; -export default ControlledSelectionStatus; +export default SelectionStatus; diff --git a/src/Dropdown/index.d.ts b/src/Dropdown/index.d.ts index 46efd58e5d..aa1decb12d 100644 --- a/src/Dropdown/index.d.ts +++ b/src/Dropdown/index.d.ts @@ -1,5 +1,5 @@ import React from 'react'; -import { BsPrefixProps, BsPrefixRefForwardingComponent } from 'react-bootstrap/helpers'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; import BaseDropdown, { DropdownProps as BaseDropdownProps } from 'react-bootstrap/Dropdown'; import { DropdownToggleProps as BaseDropdownToggleProps } from 'react-bootstrap/DropdownToggle'; import { DropdownMenuProps } from 'react-bootstrap/DropdownMenu'; @@ -14,15 +14,13 @@ interface DropdownToggleProps extends BsPrefixProps, BaseDropdownToggleProps { id: string | number; } -interface DropdownItemProps extends React.LinkHTMLAttributes{ - className?: string; -} +interface DropdownItemProps extends React.HTMLAttributes, React.LinkHTMLAttributes{} -declare const DropdownToggle: BsPrefixRefForwardingComponent<'button', DropdownToggleProps>; +declare const DropdownToggle: React.ForwardRefExoticComponent; -declare const DropdownItem: BsPrefixRefForwardingComponent<'button', DropdownItemProps>; +declare const DropdownItem: React.ForwardRefExoticComponent; -declare const Dropdown: BsPrefixRefForwardingComponent<'div', DropdownProps> & { +declare const Dropdown: React.ForwardRefExoticComponent & { Toggle: React.FC; Item: React.FC Menu: React.FC; @@ -32,3 +30,6 @@ declare const Dropdown: BsPrefixRefForwardingComponent<'div', DropdownProps> & { export default Dropdown; export { DropdownToggle, DropdownItem }; + +export { default as DropdownButton } from 'react-bootstrap/DropdownButton'; +export { default as SplitButton } from 'react-bootstrap/SplitButton'; diff --git a/src/Dropzone/DefaultContent.d.ts b/src/Dropzone/DefaultContent.d.ts index 04bdb23e64..f1cf9f86d6 100644 --- a/src/Dropzone/DefaultContent.d.ts +++ b/src/Dropzone/DefaultContent.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface DefaultContentProps { - accept?: string[], + accept?: { [key: string]: string[] }; maxSize?: number; minSize?: number; } diff --git a/src/Dropzone/GenericError.d.ts b/src/Dropzone/GenericError.d.ts index a8fb20253f..7dd77a4c07 100644 --- a/src/Dropzone/GenericError.d.ts +++ b/src/Dropzone/GenericError.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface GenericErrorProps { - errorMsgs: string[]; + errorMsgs: { [key: string]: string[] }; } declare const GenericError: React.FC; diff --git a/src/Form/FormAutosuggest.d.ts b/src/Form/FormAutosuggest.d.ts index d27bceff1c..8883880a1e 100644 --- a/src/Form/FormAutosuggest.d.ts +++ b/src/Form/FormAutosuggest.d.ts @@ -19,6 +19,6 @@ export interface FormAutosuggestProps { onSelected?: (selectedValue: string) => void; } -declare const FormAutosuggest = React.FC; +declare const FormAutosuggest: React.FC; export default FormAutosuggest; diff --git a/src/Form/FormAutosuggestOption.d.ts b/src/Form/FormAutosuggestOption.d.ts index 6cfe254fc9..021059787e 100644 --- a/src/Form/FormAutosuggestOption.d.ts +++ b/src/Form/FormAutosuggestOption.d.ts @@ -6,6 +6,6 @@ export interface FormAutosuggestOptionProps { onClick?: (event: React.MouseEvent) => void; } -declare const FormAutosuggestOption = React.FC; +declare const FormAutosuggestOption: React.FC; export default FormAutosuggestOption; diff --git a/src/Form/FormCheckbox.d.ts b/src/Form/FormCheckbox.d.ts index 4bac8566fb..d2f2621baa 100644 --- a/src/Form/FormCheckbox.d.ts +++ b/src/Form/FormCheckbox.d.ts @@ -17,8 +17,9 @@ export interface CheckboxControlProps { className?: string; } -declare const FormCheckbox = React.FC; -declare const CheckboxControl = React.FC; +declare const FormCheckbox: React.FC; + +declare const CheckboxControl: React.FC; export { CheckboxControl }; diff --git a/src/Form/FormCheckboxSet.d.ts b/src/Form/FormCheckboxSet.d.ts index 139665089f..9d81bf057f 100644 --- a/src/Form/FormCheckboxSet.d.ts +++ b/src/Form/FormCheckboxSet.d.ts @@ -12,6 +12,6 @@ export interface FormCheckboxSetProps { onBlur?: React.FocusEventHandler; } -declare const FormCheckboxSet = React.FC; +declare const FormCheckboxSet: React.FC; export default FormCheckboxSet; diff --git a/src/Form/FormCheckboxSetContext.d.ts b/src/Form/FormCheckboxSetContext.d.ts index d3cbb4acee..b5f6fc397d 100644 --- a/src/Form/FormCheckboxSetContext.d.ts +++ b/src/Form/FormCheckboxSetContext.d.ts @@ -1,34 +1,35 @@ -import { ReactNode } from 'react'; +import React from 'react'; -type CheckboxSetControlProps = { - onBlur?: (...args: any[]) => any; - onFocus?: (...args: any[]) => any; - onChange?: (...args: any[]) => any; - checked?: boolean; - defaultChecked?: boolean; - value?: string; +export type CheckboxProps = { + value: string; + onBlur?: React.FocusEventHandler; + onFocus?: React.FocusEventHandler; + onChange?: React.ChangeEventHandler; }; -type CheckboxSetContextValue = { +export type FormCheckboxSetContextValue = { name?: string; value?: string[]; defaultValue?: string[]; - getCheckboxControlProps: (props: CheckboxSetControlProps) => CheckboxSetControlProps; - onBlur?: (...args: any[]) => any; - onFocus?: (...args: any[]) => any; - onChange?: (...args: any[]) => any; - hasCheckboxSetProvider?: boolean; + onBlur?: React.FocusEventHandler; + onFocus?: React.FocusEventHandler; + onChange?: React.ChangeEventHandler; + getCheckboxControlProps: (checkboxProps: CheckboxProps) => CheckboxProps; + hasCheckboxSetProvider: boolean; }; -type FormCheckboxSetContextProviderProps = { - children: ReactNode; +export declare const FormCheckboxSetContext: React.Context; + +export declare const useCheckboxSetContext: () => FormCheckboxSetContextValue; + +export type FormCheckboxSetContextProviderProps = { + children: React.ReactNode; name?: string; - onBlur?: (...args: any[]) => any; - onFocus?: (...args: any[]) => any; - onChange?: (...args: any[]) => any; + onBlur?: React.FocusEventHandler; + onFocus?: React.FocusEventHandler; + onChange?: React.ChangeEventHandler; value?: string[]; defaultValue?: string[]; }; -export function useCheckboxSetContext(): CheckboxSetContextValue; -export function FormCheckboxSetContextProvider(props: FormCheckboxSetContextProviderProps): JSX.Element; +export declare const FormCheckboxSetContextProvider: React.FC; diff --git a/src/Form/FormControl.d.ts b/src/Form/FormControl.d.ts index f65355e4c9..6b40dcad05 100644 --- a/src/Form/FormControl.d.ts +++ b/src/Form/FormControl.d.ts @@ -1,10 +1,10 @@ import React from 'react'; import { FormControlProps as BaseFormControlProps } from 'react-bootstrap/FormControl'; import { FormControlFeedbackProps } from './FormControlFeedback'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; -export interface FormControlProps extends BaseFormControlProps { +export interface FormControlProps extends BsPrefixProps, BaseFormControlProps { className?: string; - as?: keyof JSX.IntrinsicElements; defaultValue?: string | number, controlClassName?: string; leadingElement?: React.ReactNode; diff --git a/src/Form/FormControlDecorator.d.ts b/src/Form/FormControlDecorator.d.ts index 6d6b30cc6c..99a85ed9a0 100644 --- a/src/Form/FormControlDecorator.d.ts +++ b/src/Form/FormControlDecorator.d.ts @@ -5,6 +5,6 @@ export interface FormControlDecoratorProps { location?: 'leading' | 'trailing'; } -declare const FormControlDecorator = React.FC; +declare const FormControlDecorator: React.FC; export default FormControlDecorator; diff --git a/src/Form/FormControlDecoratorGroup.d.ts b/src/Form/FormControlDecoratorGroup.d.ts index 8671fc67a9..9f364a52c2 100644 --- a/src/Form/FormControlDecoratorGroup.d.ts +++ b/src/Form/FormControlDecoratorGroup.d.ts @@ -10,6 +10,6 @@ export interface FormControlDecoratorGroupProps { size?: FORM_CONTROL_SIZES.SMALL | FORM_CONTROL_SIZES.LARGE; } -declare const FormControlDecoratorGroup = React.FC; +declare const FormControlDecoratorGroup: React.FC; export default FormControlDecoratorGroup; diff --git a/src/Form/FormControlFeedback.d.ts b/src/Form/FormControlFeedback.d.ts index 2f2b2a6125..84a30e9ee2 100644 --- a/src/Form/FormControlFeedback.d.ts +++ b/src/Form/FormControlFeedback.d.ts @@ -1,16 +1,16 @@ import React from 'react'; -export type FeedbackTypes = 'default' | 'valid' | 'invalid' | 'warning' | 'criteria-empty' | 'criteria-valid' | 'criteria-invalid'; +export type FeedbackVariants = 'default' | 'valid' | 'invalid' | 'warning' | 'criteria-empty' | 'criteria-valid' | 'criteria-invalid'; export interface FormControlFeedbackProps { children: React.ReactNode; className?: string; hasIcon?: boolean; - type?: FeedbackTypes, + type?: FeedbackVariants, icon?: React.ReactNode; muted?: boolean; } -declare const FormControlFeedback = React.FC; +declare const FormControlFeedback: React.FC; export default FormControlFeedback; diff --git a/src/Form/FormControlFloatingLabel.d.ts b/src/Form/FormControlFloatingLabel.d.ts index 476cdf7cb8..3f657ddd95 100644 --- a/src/Form/FormControlFloatingLabel.d.ts +++ b/src/Form/FormControlFloatingLabel.d.ts @@ -4,6 +4,6 @@ export interface FormControlFloatingLabelProps { children: React.ReactNode; } -declare const FormControlFloatingLabel = React.FC; +declare const FormControlFloatingLabel: React.FC; export default FormControlFloatingLabel; diff --git a/src/Form/FormControlSet.d.ts b/src/Form/FormControlSet.d.ts index f17ad3738b..b18f27e815 100644 --- a/src/Form/FormControlSet.d.ts +++ b/src/Form/FormControlSet.d.ts @@ -1,12 +1,12 @@ import React from 'react'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; -export interface FormControlSetProps { - as?: keyof JSX.IntrinsicElements; +export interface FormControlSetProps extends BsPrefixProps{ className?: string; isInline?: boolean; children?: React.ReactNode; } -declare const FormControlSet = React.FC; +declare const FormControlSet: React.FC; export default FormControlSet; diff --git a/src/Form/FormGroup.d.ts b/src/Form/FormGroup.d.ts index 39776c2ea0..b04cea5ebf 100644 --- a/src/Form/FormGroup.d.ts +++ b/src/Form/FormGroup.d.ts @@ -1,15 +1,16 @@ import React from 'react'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; +import { FormControlSizes } from './FormGroupContext'; -export interface FormGroupProps extends React.HTMLAttributes { +export interface FormGroupProps extends BsPrefixProps, React.HTMLAttributes { children: React.ReactNode; className?: string; - as?: keyof JSX.IntrinsicElements; controlId?: string; isInvalid?: boolean; isValid?: boolean; - size?: 'sm' | 'lg'; + size?: FormControlSizes; } -declare const FormGroup = React.FC; +declare const FormGroup: React.FC; export default FormGroup; diff --git a/src/Form/FormGroupContext.d.ts b/src/Form/FormGroupContext.d.ts index a01efe2d04..09a609c284 100644 --- a/src/Form/FormGroupContext.d.ts +++ b/src/Form/FormGroupContext.d.ts @@ -1,14 +1,43 @@ import React from 'react'; -import { FORM_CONTROL_SIZES } from './constants'; + +export type FormControlSizes = 'sm' | 'lg'; export interface FormGroupContextProviderProps { children: React.ReactNode; controlId?: string; isInvalid?: boolean; isValid?: boolean; - size?: FORM_CONTROL_SIZES.SMALL | FORM_CONTROL_SIZES.LARGE; + size?: FormControlSizes; +} + +export type DescriptorProps = { + id?: string; +}; + +export interface ControlProps extends DescriptorProps { + 'aria-describedby'?: string; + 'aria-labelledby'?: string; +} + +export interface LabelProps extends DescriptorProps { + htmlFor?: string; } -declare const FormGroupContextProvider = React.FC; +export interface FormGroupContextProps { + getControlProps: (props: ControlProps) => ControlProps; + getLabelProps: (props: LabelProps) => LabelProps; + getDescriptorProps: (props: DescriptorProps) => DescriptorProps; + useSetIsControlGroupEffect: (flag: boolean) => void; + isControlGroup: boolean; + controlId: string; + isInvalid?: boolean; + isValid?: boolean; + size?: FormControlSizes; + hasFormGroupProvider: boolean; +} + +declare const FormGroupContextProvider: React.FC; + +export declare const FormGroupContext: React.Context; export default FormGroupContextProvider; diff --git a/src/Form/FormLabel.d.ts b/src/Form/FormLabel.d.ts index 604d25412e..068e08a3aa 100644 --- a/src/Form/FormLabel.d.ts +++ b/src/Form/FormLabel.d.ts @@ -1,12 +1,13 @@ import React from 'react'; +import { FormControlSizes } from './FormGroupContext'; export interface FormLabelProps { className?: string; children: React.ReactNode; isInline?: boolean; - size?: 'sm' | 'lg'; + size?: FormControlSizes; } -declare const FormLabel = React.FC; +declare const FormLabel: React.FC; export default FormLabel; diff --git a/src/Form/FormRadio.d.ts b/src/Form/FormRadio.d.ts index 7414e6a97f..eb3b799253 100644 --- a/src/Form/FormRadio.d.ts +++ b/src/Form/FormRadio.d.ts @@ -10,6 +10,6 @@ export interface FormRadioProps extends React.InputHTMLAttributes; +declare const FormRadio: React.FC; export default FormRadio; diff --git a/src/Form/FormRadioSet.d.ts b/src/Form/FormRadioSet.d.ts index 330ca280b6..ecd7cadfd9 100644 --- a/src/Form/FormRadioSet.d.ts +++ b/src/Form/FormRadioSet.d.ts @@ -12,6 +12,6 @@ export interface FormRadioSetProps { onBlur?: React.FocusEventHandler; } -declare const FormRadioSet = React.FC; +declare const FormRadioSet: React.FC; export default FormRadioSet; diff --git a/src/Form/FormRadioSetContext.d.ts b/src/Form/FormRadioSetContext.d.ts index d08fc55b5d..5f55d355ab 100644 --- a/src/Form/FormRadioSetContext.d.ts +++ b/src/Form/FormRadioSetContext.d.ts @@ -1,15 +1,29 @@ import React from 'react'; -export interface FormRadioSetContextProps { - children: React.ReactNode; +export type HandlersTypes = { + onBlur?: (event: React.FocusEvent) => void; + onFocus?: (event: React.FocusEvent) => void; + onChange?: (event: React.ChangeEvent) => void; +}; + +export interface RadioControlProps extends HandlersTypes { + value: string; +} + +export interface FormRadioSetContextValue extends RadioControlProps { name: string; - onBlur?: React.FocusEventHandler; - onFocus?: React.FocusEventHandler; - onChange?: React.ChangeEventHandler; - value?: string; defaultValue?: string; + getRadioControlProps: (props: RadioControlProps) => RadioControlProps; } -declare const FormRadioSetContext = React.FC; +export interface FormRadioSetContextProviderProps extends Omit { + children: React.ReactNode; +} + +declare const FormRadioSetContext: React.Context; +declare function useRadioSetContext(): FormRadioSetContextValue; +declare function FormRadioSetContextProvider(props: FormRadioSetContextProviderProps): JSX.Element; + +export { useRadioSetContext, FormRadioSetContextProvider }; export default FormRadioSetContext; diff --git a/src/Form/FormSwitch.d.ts b/src/Form/FormSwitch.d.ts index b136bedf54..36baccd16b 100644 --- a/src/Form/FormSwitch.d.ts +++ b/src/Form/FormSwitch.d.ts @@ -13,8 +13,8 @@ export interface FormSwitchControlProps { className?: string; } -declare const FormSwitch = React.FC; -declare const SwitchControl = React.FC; +declare const FormSwitch: React.FC; +declare const SwitchControl: React.FC; export { SwitchControl }; // TODO: do not working diff --git a/src/Form/FormSwitchSet.d.ts b/src/Form/FormSwitchSet.d.ts index 7e9ab05a47..5db6796765 100644 --- a/src/Form/FormSwitchSet.d.ts +++ b/src/Form/FormSwitchSet.d.ts @@ -1,8 +1,3 @@ -import React from 'react'; import { FormCheckboxSetProps } from './FormCheckboxSet'; -export interface FormSwitchSetProps extends FormCheckboxSetProps{} - -declare const FormSwitchSet = React.FC; - -export default FormSwitchSet; +export default function FormSwitchSet(props: FormCheckboxSetProps): JSX.Element diff --git a/src/Form/FormText.d.ts b/src/Form/FormText.d.ts index e3d92ba918..f8f01d86f3 100644 --- a/src/Form/FormText.d.ts +++ b/src/Form/FormText.d.ts @@ -1,6 +1,5 @@ import React from 'react'; - -export type FormTextTypes = 'default' | 'valid' | 'invalid' | 'warning' | 'criteria-empty' | 'criteria-valid' | 'criteria-invalid'; +import { FeedbackVariants } from './FormControlFeedback'; export interface FormTextIconProps { type?: FormTextTypes; @@ -11,13 +10,14 @@ export interface FormTextProps { children: React.ReactNode; className?: string; hasIcon?: boolean; - type?: FormTextTypes, + type?: FeedbackVariants, icon?: React.ReactNode; muted?: boolean; } -declare const FormText = React.FC; -declare const FormTextIcon = React.FC; +declare const FormText: React.FC; + +declare const FormTextIcon: React.FC; export { FormTextIcon }; diff --git a/src/Form/index.d.ts b/src/Form/index.d.ts index a13d672cfc..6d41ce91e5 100644 --- a/src/Form/index.d.ts +++ b/src/Form/index.d.ts @@ -40,48 +40,6 @@ declare const Form: React.FC & { export default Form; -// Form.Control = FormControl; -// Form.Radio = FormRadio; -// Form.RadioSet = FormRadioSet; -// Form.Autosuggest = FormAutosuggest; -// Form.AutosuggestOption = FormAutosuggestOption; -// Form.Checkbox = FormCheckbox; -// Form.CheckboxSet = FormCheckboxSet; -// Form.Switch = FormSwitch; -// Form.SwitchSet = FormSwitchSet; -// Form.Label = FormLabel; -// Form.Group = FormGroup; -// Form.Text = FormText; - -// declare const FormControl: React.FC; -// declare const FormRadio: React.FC; -// declare const FormRadioSet: React.FC; -// declare const FormAutosuggest: React.FC; -// declare const FormAutosuggestOption: React.FC; -// declare const FormCheckbox: React.FC; -// declare const FormCheckboxSet: React.FC; -// declare const FormSwitch: React.FC; -// declare const FormLabel: React.FC; -// declare const FormGroup: React.FC; -// declare const FormText: React.FC - -// declare const Form: { -// // Control: React.FC & { -// // Feedback: React.FC; -// // Description: React.FC; -// // }; -// Radio: React.FC; -// RadioSet: React.FC; -// Autosuggest: React.FC; -// AutosuggestOption: React.FC; -// Checkbox: React.FC; -// CheckboxSet: React.FC; -// Switch: React.FC; -// Label: React.FC; -// Group: React.FC; -// Text: React.FC -// } - export { FormControl, FormLabel, diff --git a/src/Hyperlink/index.d.ts b/src/Hyperlink/index.d.ts index db75cd92d3..e41e69957d 100644 --- a/src/Hyperlink/index.d.ts +++ b/src/Hyperlink/index.d.ts @@ -1,8 +1,5 @@ import React from 'react'; -declare const HYPER_LINK_EXTERNAL_LINK_ALT_TEXT: string; -declare const HYPER_LINK_EXTERNAL_LINK_TITLE: string; - export interface HyperlinkProps extends React.AnchorHTMLAttributes { destination: string; children: React.ReactNode; @@ -18,9 +15,4 @@ export interface HyperlinkProps extends React.AnchorHTMLAttributes>; -export { - HYPER_LINK_EXTERNAL_LINK_ALT_TEXT, - HYPER_LINK_EXTERNAL_LINK_TITLE, - Hyperlink, - HyperlinkProps, -}; +export { Hyperlink }; diff --git a/src/Icon/index.d.ts b/src/Icon/index.d.ts index e688d2ce93..d3843d54f3 100644 --- a/src/Icon/index.d.ts +++ b/src/Icon/index.d.ts @@ -1,6 +1,5 @@ import React from 'react'; - export interface IconProps { src?: React.ReactElement | Function; svgAttrs?: { diff --git a/src/IconButton/index.d.ts b/src/IconButton/index.d.ts index aacf6c4c07..a720e8b5ee 100644 --- a/src/IconButton/index.d.ts +++ b/src/IconButton/index.d.ts @@ -1,35 +1,38 @@ import React from 'react'; +export type IconButtonVariants = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; + export interface IconButtonProps extends React.ButtonHTMLAttributes { - className?: string; - iconAs?: keyof JSX.IntrinsicElements; - src?: React.ReactElement; - alt: string; - invertColors?: boolean; - icon?: { - prefix: string; - iconName: string; - icon: any[]; - }; - iconClassNames?: string; - onClick?: (event: React.MouseEvent) => void; - variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; - size?: 'sm' | 'md' | 'inline'; - isActive?: boolean; + className?: string; + iconAs?: keyof JSX.IntrinsicElements; + src?: React.ReactElement; + alt: string; + invertColors?: boolean; + icon?: { + prefix: string; + iconName: string; + icon: any[]; + }; + iconClassNames?: string; + onClick?: (event: React.MouseEvent) => void; + variant?: IconButtonVariants; + size?: 'sm' | 'md' | 'inline'; + isActive?: boolean; } export interface IconButtonWithTooltipProps { - tooltipPlacement?: string; - tooltipContent: React.ReactNode; - invertColors?: boolean; - variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'black' | 'brand'; + tooltipPlacement?: string; + tooltipContent: React.ReactNode; + invertColors?: boolean; + variant?: IconButtonVariants; } declare const IconButtonWithTooltip: React.ForwardRefExoticComponent; declare const IconButton: React.ForwardRefExoticComponent & { - IconButtonWithTooltip: React.FC; + IconButtonWithTooltip: React.FC; }; -export default IconButton; export { IconButtonWithTooltip }; + +export default IconButton; diff --git a/src/IconButtonToggle/index.d.ts b/src/IconButtonToggle/index.d.ts index 4fa7811497..f3ac726e00 100644 --- a/src/IconButtonToggle/index.d.ts +++ b/src/IconButtonToggle/index.d.ts @@ -2,9 +2,9 @@ import React from 'react'; import { IconButtonProps } from '../IconButton'; export interface IconButtonToggleProps { - activeValue?: string; - onChange?: (value: string) => void; - children: React.ReactElement[]; + activeValue?: string; + onChange?: (value: string) => void; + children: React.ReactElement[]; } declare const IconButtonToggle: React.FC; diff --git a/src/Layout/index.d.ts b/src/Layout/index.d.ts index 967d56c159..0e68bcc3c7 100644 --- a/src/Layout/index.d.ts +++ b/src/Layout/index.d.ts @@ -3,21 +3,21 @@ import React from 'react'; export type ColSpanValues = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto'; export interface ColLayout { - span: ColSpanValues; - offset?: number; + span: ColSpanValues; + offset?: number; } export interface LayoutProps { - children: React.ReactNode; - xs?: ColLayout[]; - sm?: ColLayout[]; - md?: ColLayout[]; - lg?: ColLayout[]; - xl?: ColLayout[]; + children: React.ReactNode; + xs?: ColLayout[]; + sm?: ColLayout[]; + md?: ColLayout[]; + lg?: ColLayout[]; + xl?: ColLayout[]; } export interface LayoutComponent extends React.ForwardRefExoticComponent { - Element: React.FC; + Element: React.FC; } export declare const LayoutElement: React.ForwardRefExoticComponent & React.RefAttributes>; diff --git a/src/MailtoLink/index.d.ts b/src/MailtoLink/index.d.ts index af7df67ee9..ab27f0c7ee 100644 --- a/src/MailtoLink/index.d.ts +++ b/src/MailtoLink/index.d.ts @@ -2,14 +2,14 @@ import React from 'react'; import { Options } from 'mailto-link'; export interface MailtoLinkProps extends Options { - children: React.ReactNode; - className?: string; - target?: string; - onClick?: React.MouseEventHandler; - externalLink?: { - alternativeText: string; - title: string; - }; + children: React.ReactNode; + className?: string; + target?: string; + onClick?: React.MouseEventHandler; + externalLink?: { + alternativeText: string; + title: string; + }; } declare const MailtoLink: React.ForwardRefExoticComponent; diff --git a/src/Menu/MenuItem.d.ts b/src/Menu/MenuItem.d.ts index 5f1695e8a7..55bcf54db1 100644 --- a/src/Menu/MenuItem.d.ts +++ b/src/Menu/MenuItem.d.ts @@ -1,15 +1,15 @@ import React from 'react'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; -interface MenuItemProps extends React.HTMLAttributes { - defaultSelected?: boolean; - children?: React.ReactNode; - as?: keyof JSX.IntrinsicElements; - iconBefore?: React.ReactNode; - iconAfter?: React.ReactNode; - disabled?: boolean; - href?: string; - variant?: string; - size?: string; +interface MenuItemProps extends BsPrefixProps, React.HTMLAttributes { + defaultSelected?: boolean; + children?: React.ReactNode; + iconBefore?: React.ReactNode; + iconAfter?: React.ReactNode; + disabled?: boolean; + href?: string; + variant?: string; + size?: string; } declare const MenuItem: React.FC; diff --git a/src/Menu/SelectMenu.d.ts b/src/Menu/SelectMenu.d.ts index 1e6c642096..dadd8d007b 100644 --- a/src/Menu/SelectMenu.d.ts +++ b/src/Menu/SelectMenu.d.ts @@ -1,10 +1,10 @@ import React from 'react'; export interface SelectMenuProps { - defaultMessage?: string; - isLink?: boolean; - children: React.ReactNode; - className?: string; + defaultMessage?: string; + isLink?: boolean; + children: React.ReactNode; + className?: string; } declare const SelectMenu: React.FC; diff --git a/src/Menu/index.d.ts b/src/Menu/index.d.ts index e96b605555..7b1092ca6e 100644 --- a/src/Menu/index.d.ts +++ b/src/Menu/index.d.ts @@ -1,10 +1,10 @@ import React from 'react'; export interface MenuProps { - className?: string; - arrowKeyNavigationSelector?: string; - as?: keyof JSX.IntrinsicElements; - children?: React.ReactNode; + className?: string; + arrowKeyNavigationSelector?: string; + as?: keyof JSX.IntrinsicElements; + children?: React.ReactNode; } declare const Menu: React.FC; diff --git a/src/Modal/BaseModalProps.d.ts b/src/Modal/BaseModalProps.d.ts index c764ae4c04..db1f8da350 100644 --- a/src/Modal/BaseModalProps.d.ts +++ b/src/Modal/BaseModalProps.d.ts @@ -4,16 +4,16 @@ export type ModalSizes = 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; export type ModalVariants = 'default' | 'warning' | 'danger' | 'success' | 'dark'; export interface BaseModalProps { - children: React.ReactNode; - title: string; - isOpen?: boolean; - hasCloseButton?: boolean; - onClose?: () => void; - size?: ModalSizes; - variant?: ModalVariants; - closeLabel?: string; - className?: string; - isFullscreenScroll?: boolean; - footerNode?: React.ReactNode; - isBlocking?: boolean; + children: React.ReactNode; + title: string; + isOpen?: boolean; + hasCloseButton?: boolean; + onClose?: () => void; + size?: ModalSizes; + variant?: ModalVariants; + closeLabel?: string; + className?: string; + isFullscreenScroll?: boolean; + footerNode?: React.ReactNode; + isBlocking?: boolean; } diff --git a/src/Modal/FullscreenModal.d.ts b/src/Modal/FullscreenModal.d.ts index db44884857..7b751fa3e5 100644 --- a/src/Modal/FullscreenModal.d.ts +++ b/src/Modal/FullscreenModal.d.ts @@ -2,11 +2,11 @@ import React from 'react'; import { BaseModalProps } from './BaseModalProps'; export interface FullscreenModalProps extends BaseModalProps { - beforeBodyNode?: React.ReactNode; - afterBodyNode?: React.ReactNode; - modalBodyClassName?: string; + beforeBodyNode?: React.ReactNode; + afterBodyNode?: React.ReactNode; + modalBodyClassName?: string; } -export const FullscreenModal: React.FC; +declare const FullscreenModal: React.FC; export default FullscreenModal; diff --git a/src/Modal/MarketingModal.d.ts b/src/Modal/MarketingModal.d.ts index e16d13db39..55bbb05eef 100644 --- a/src/Modal/MarketingModal.d.ts +++ b/src/Modal/MarketingModal.d.ts @@ -1,13 +1,13 @@ -import * as React from 'react'; +import React from 'react'; import { BaseModalProps } from './BaseModalProps'; export interface MarketingModalProps extends BaseModalProps { - heroIsDark?: boolean; - heroNode?: React.ReactNode; - beforeBodyNode?: React.ReactNode; - afterBodyNode?: React.ReactNode; + heroIsDark?: boolean; + heroNode?: React.ReactNode; + beforeBodyNode?: React.ReactNode; + afterBodyNode?: React.ReactNode; } -declare const MarketingModal = React.FC; +declare const MarketingModal: React.FC; export default MarketingModal; diff --git a/src/Modal/ModalCloseButton.d.ts b/src/Modal/ModalCloseButton.d.ts index 42b4285ec0..7590b19df5 100644 --- a/src/Modal/ModalCloseButton.d.ts +++ b/src/Modal/ModalCloseButton.d.ts @@ -1,10 +1,10 @@ -import * as React from 'react'; +import React from 'react'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; -export interface ModalCloseButtonProps extends React.ButtonHTMLAttributes { - as?: keyof JSX.IntrinsicElements; - children?: React.ReactNode; - className?: string; - onClick?: () => void; +export interface ModalCloseButtonProps extends BsPrefixProps, React.ButtonHTMLAttributes { + children?: React.ReactNode; + className?: string; + onClick?: () => void; } declare const ModalCloseButton: React.ForwardRefExoticComponent>; diff --git a/src/Modal/ModalContext.d.ts b/src/Modal/ModalContext.d.ts index de710a4cc6..32417b18a0 100644 --- a/src/Modal/ModalContext.d.ts +++ b/src/Modal/ModalContext.d.ts @@ -1,16 +1,16 @@ import React from 'react'; export interface ModalContextValue { - onClose: () => void; - isOpen: boolean; - isBlocking: boolean; + onClose: () => void; + isOpen: boolean; + isBlocking: boolean; } export interface ModalContextProviderProps { - children?: React.ReactNode; - onClose: () => void; - isBlocking?: boolean; - isOpen: boolean; + children?: React.ReactNode; + onClose: () => void; + isBlocking?: boolean; + isOpen: boolean; } declare const ModalContext: React.FC; @@ -18,4 +18,5 @@ declare const ModalContext: React.FC; declare function ModalContextProvider(props: ModalContextProviderProps): JSX.Element; export { ModalContextProvider }; + export default ModalContext; diff --git a/src/Modal/ModalDialog.d.ts b/src/Modal/ModalDialog.d.ts index 2544390371..b52e793bdc 100644 --- a/src/Modal/ModalDialog.d.ts +++ b/src/Modal/ModalDialog.d.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { ModalDialogHeaderProps } from './ModalDialogHeader'; import { ModalDialogFooterProps } from './ModalDialogFooter'; import { ModalDialogTitleProps } from './ModalDialogTitle'; @@ -10,20 +10,20 @@ import { ModalDialogHeroBackgroundProps } from './ModalDialogHeroBackground'; import { BaseModalProps } from './BaseModalProps'; export interface ModalDialogProps extends Omit { - isFullscreenOnMobile?: boolean; - zIndex?: number; + isFullscreenOnMobile?: boolean; + zIndex?: number; } declare const ModalDialog: React.FC & { - Header: React.FC; - Title: React.FC; - Footer: React.FC; - CloseButton: React.FC; - Body: React.FC; - Hero: React.FC & { - Content: React.FC; - Background: React.FC; - } + Header: React.FC; + Title: React.FC; + Footer: React.FC; + CloseButton: React.FC; + Body: React.FC; + Hero: React.FC & { + Content: React.FC; + Background: React.FC; + } }; export default ModalDialog; diff --git a/src/Modal/ModalDialogBody.d.ts b/src/Modal/ModalDialogBody.d.ts index 2db4e1fb58..ceea8134bb 100644 --- a/src/Modal/ModalDialogBody.d.ts +++ b/src/Modal/ModalDialogBody.d.ts @@ -1,11 +1,11 @@ import React from 'react'; export interface ModalDialogBodyProps { - as?: keyof JSX.IntrinsicElements; - children: React.ReactNode; - className?: string; + as?: keyof JSX.IntrinsicElements; + children: React.ReactNode; + className?: string; } -declare const ModalDialogBody = React.FC; +declare const ModalDialogBody: React.FC; export default ModalDialogBody; diff --git a/src/Modal/ModalLayer.d.ts b/src/Modal/ModalLayer.d.ts index 9dedba6d3b..4c781f0117 100644 --- a/src/Modal/ModalLayer.d.ts +++ b/src/Modal/ModalLayer.d.ts @@ -1,11 +1,11 @@ import React from 'react'; export interface ModalLayerProps { - children: React.ReactNode; - onClose: () => void; - isOpen: boolean; - isBlocking?: boolean; - zIndex?: number; + children: React.ReactNode; + onClose: () => void; + isOpen: boolean; + isBlocking?: boolean; + zIndex?: number; } export function ModalBackdrop({ onClick }: { onClick?: () => void }): JSX.Element; diff --git a/src/Modal/ModalPopup.d.ts b/src/Modal/ModalPopup.d.ts index 9cf46e07bf..62b7933c66 100644 --- a/src/Modal/ModalPopup.d.ts +++ b/src/Modal/ModalPopup.d.ts @@ -2,16 +2,16 @@ import React from 'react'; import { PopoverPlacements } from './PopperElement'; export interface ModalPopupProps { - children: React.ReactNode; - onClose: () => void; - isOpen: boolean; - isBlocking?: boolean; - withPortal?: boolean; - positionRef?: ((instance: HTMLElement | null) => void) | React.RefObject; - placement?: PopoverPlacements; - hasArrow?: boolean; + children: React.ReactNode; + onClose: () => void; + isOpen: boolean; + isBlocking?: boolean; + withPortal?: boolean; + positionRef?: ((instance: HTMLElement | null) => void) | React.RefObject; + placement?: PopoverPlacements; + hasArrow?: boolean; } -declare const ModalPopup = React.FC; +declare const ModalPopup: React.FC; export default ModalPopup; diff --git a/src/Modal/PopperElement.d.ts b/src/Modal/PopperElement.d.ts index e472513dea..264718143c 100644 --- a/src/Modal/PopperElement.d.ts +++ b/src/Modal/PopperElement.d.ts @@ -1,16 +1,16 @@ import React from 'react'; export type PopperElementPlacements = 'auto' | 'auto-start' | 'auto-end' | 'top' | 'top-start' | 'top-end' | 'bottom' -| 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end'; + | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end'; export interface PopperElementProps { - children?: React.ReactNode; - target: { - current: React.ReactNode; - }; - strategy?: 'absolute' | 'fixed'; - placement?: PopperElementPlacements; - modifiers?: {}; + children?: React.ReactNode; + target: { + current: React.ReactNode; + }; + strategy?: 'absolute' | 'fixed'; + placement?: PopperElementPlacements; + modifiers?: {}; } declare const PopperElement: React.FC; diff --git a/src/Modal/Portal.d.ts b/src/Modal/Portal.d.ts index f94a87f8b2..1919a1716d 100644 --- a/src/Modal/Portal.d.ts +++ b/src/Modal/Portal.d.ts @@ -1,7 +1,7 @@ import React from 'react'; -interface PortalProps { - children: React.ReactNode; +export interface PortalProps { + children: React.ReactNode; } declare class Portal extends React.Component {} diff --git a/src/Modal/StandardModal.d.ts b/src/Modal/StandardModal.d.ts index f0fcaecd5b..892c55204a 100644 --- a/src/Modal/StandardModal.d.ts +++ b/src/Modal/StandardModal.d.ts @@ -2,9 +2,9 @@ import React from 'react'; import { BaseModalProps } from './BaseModalProps'; export interface StandardModalProps extends Omit { - title: string, - beforeBodyNode?: React.ReactNode; - afterBodyNode?: React.ReactNode; + title: string, + beforeBodyNode?: React.ReactNode; + afterBodyNode?: React.ReactNode; } declare const StandardModal: React.FC; diff --git a/src/Modal/StandartModal.d.ts b/src/Modal/StandartModal.d.ts index a998b9483e..ddae748165 100644 --- a/src/Modal/StandartModal.d.ts +++ b/src/Modal/StandartModal.d.ts @@ -1,19 +1,19 @@ import React from 'react'; export interface StandardModalProps { - children: React.ReactNode; - title: string; - onClose: () => void; - isOpen?: boolean; - hasCloseButton?: boolean; - size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; - variant?: 'default' | 'warning' | 'danger' | 'success' | 'dark'; - closeLabel?: string; - className?: string; - isFullscreenScroll?: boolean; - footerNode?: React.ReactNode; - beforeBodyNode?: React.ReactNode; - afterBodyNode?: React.ReactNode; + children: React.ReactNode; + title: string; + onClose: () => void; + isOpen?: boolean; + hasCloseButton?: boolean; + size?: 'sm' | 'md' | 'lg' | 'xl' | 'fullscreen'; + variant?: 'default' | 'warning' | 'danger' | 'success' | 'dark'; + closeLabel?: string; + className?: string; + isFullscreenScroll?: boolean; + footerNode?: React.ReactNode; + beforeBodyNode?: React.ReactNode; + afterBodyNode?: React.ReactNode; } declare const StandardModal: React.FC; diff --git a/src/Modal/index.d.ts b/src/Modal/index.d.ts index 5f03b27c88..951351b899 100644 --- a/src/Modal/index.d.ts +++ b/src/Modal/index.d.ts @@ -1,28 +1,28 @@ import React from 'react'; export interface ButtonProps { - children?: React.ReactNode; - disabled?: boolean; - onClick?: () => void; - className?: string; - variant?: string; - type?: string; + children?: React.ReactNode; + disabled?: boolean; + onClick?: () => void; + className?: string; + variant?: string; + type?: string; } export interface ModalProps { - open?: boolean; - parentSelector?: string; - title: string | React.ReactNode; - body: string | React.ReactNode; - buttons?: (React.ReactNode | ButtonProps)[]; - closeText?: string | React.ReactNode; - onClose: () => void; - variant?: { - status?: string; - }; - renderDefaultCloseButton?: boolean; - renderHeaderCloseButton?: boolean; - dialogClassName?: string; + open?: boolean; + parentSelector?: string; + title: string | React.ReactNode; + body: string | React.ReactNode; + buttons?: (React.ReactNode | ButtonProps)[]; + closeText?: string | React.ReactNode; + onClose: () => void; + variant?: { + status?: string; + }; + renderDefaultCloseButton?: boolean; + renderHeaderCloseButton?: boolean; + dialogClassName?: string; } export default class Modal extends React.Component {} diff --git a/src/Nav/index.d.ts b/src/Nav/index.d.ts index d869c820fc..c561580e1a 100644 --- a/src/Nav/index.d.ts +++ b/src/Nav/index.d.ts @@ -11,37 +11,38 @@ export interface NavProps extends BsPrefixProps, BaseNavProps {} export interface NavItemProps extends BsPrefixProps, BaseNavItemProps {} export interface NavLinkProps extends BsPrefixProps, Omit { - title?: string; + title?: string; } export interface NavDropdownProps extends BsPrefixProps, BaseNavDropdownProps { - menuVariant?: 'dark'; - onClick?: (event: React.SyntheticEvent) => void; + menuVariant?: 'dark'; + onClick?: (event: React.SyntheticEvent) => void; } export interface NavDropdownItemProps extends BsPrefixProps, BaseDropdownItemProps {} -export interface NavDropdownDividerProps extends BsPrefixProps, BsPrefixRefForwardingComponent<'div', unknown> {} +export interface NavDropdownDividerProps extends BsPrefixProps {} declare const NavDropdownItem: React.ForwardRefExoticComponent; declare const NavDropdownDivider: React.ForwardRefExoticComponent; declare const NavItem: React.ForwardRefExoticComponent; declare const NavLink: React.ForwardRefExoticComponent; declare const NavDropdown: React.ForwardRefExoticComponent & { - Item: React.ForwardRefExoticComponent; - Divider: React.ForwardRefExoticComponent; + Item: React.ForwardRefExoticComponent; + Divider: React.ForwardRefExoticComponent; }; declare const Nav: React.ForwardRefExoticComponent & { - Item: React.ForwardRefExoticComponent; - Link: React.ForwardRefExoticComponent; - Dropdown: React.ForwardRefExoticComponent & { - Item: React.ForwardRefExoticComponent; - Divider: React.ForwardRefExoticComponent; - }; + Item: React.ForwardRefExoticComponent; + Link: React.ForwardRefExoticComponent; + Dropdown: React.ForwardRefExoticComponent & { + Item: React.ForwardRefExoticComponent; + Divider: React.ForwardRefExoticComponent; + }; }; -export default Nav; export { - NavDropdownItem, NavDropdownDivider, NavItem, NavLink, NavDropdown, + NavDropdownItem, NavDropdownDivider, NavItem, NavLink, NavDropdown, }; + +export default Nav; diff --git a/src/Navbar/index.d.ts b/src/Navbar/index.d.ts index d55db48fc2..cc18920845 100644 --- a/src/Navbar/index.d.ts +++ b/src/Navbar/index.d.ts @@ -10,15 +10,15 @@ export interface NavbarProps extends BsPrefixProps, BaseNavbarProps {} export interface NavbarBrandProps extends BsPrefixProps, BaseNavbarBrandProps {} export interface NavbarToggleProps extends BsPrefixProps, BaseNavbarToggleProps { - children?: React.ReactNode; + children?: React.ReactNode; } export interface NavbarCollapseProps extends BsPrefixProps, BaseNavbarCollapseProps, React.HTMLAttributes {} declare const Navbar: React.FC & { - Brand: React.FC; - Toggle: React.FC; - Collapse: React.FC; + Brand: React.FC; + Toggle: React.FC; + Collapse: React.FC; }; export default Navbar; diff --git a/src/OverflowScroll/OverflowScroll.d.ts b/src/OverflowScroll/OverflowScroll.d.ts index 3bb6474039..49989fc875 100644 --- a/src/OverflowScroll/OverflowScroll.d.ts +++ b/src/OverflowScroll/OverflowScroll.d.ts @@ -2,18 +2,18 @@ import React from 'react'; import { OverflowScrollItems } from './OverflowScrollItems'; export interface OverflowScrollProps { - ariaLabel: string; - children: React.ReactNode; - childQuerySelector?: string; - hasInteractiveChildren?: boolean; - disableScroll?: boolean; - disableOpacityMasks?: boolean; - onScrollPrevious?: () => void; - onScrollNext?: () => void; + ariaLabel: string; + children: React.ReactNode; + childQuerySelector?: string; + hasInteractiveChildren?: boolean; + disableScroll?: boolean; + disableOpacityMasks?: boolean; + onScrollPrevious?: () => void; + onScrollNext?: () => void; } declare const OverflowScroll: React.FC & { - Items: React.FC; + Items: React.FC; }; export default OverflowScroll; diff --git a/src/OverflowScroll/OverflowScrollItems.d.ts b/src/OverflowScroll/OverflowScrollItems.d.ts index c2dba4177c..630902f6d4 100644 --- a/src/OverflowScroll/OverflowScrollItems.d.ts +++ b/src/OverflowScroll/OverflowScrollItems.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface OverflowScrollItemsProps { - children: React.ReactNode; + children: React.ReactNode; } declare function OverflowScrollItems(props: OverflowScrollItemsProps): JSX.Element; diff --git a/src/OverflowScroll/index.d.ts b/src/OverflowScroll/index.d.ts new file mode 100644 index 0000000000..4af067db08 --- /dev/null +++ b/src/OverflowScroll/index.d.ts @@ -0,0 +1,6 @@ +export { default as OverflowScroll } from './OverflowScroll'; +export { default as OverflowScrollContext } from './OverflowScrollContext'; +export { + useOverflowScroll, + useOverflowScrollItems, +} from './data'; diff --git a/src/Overlay/index.d.ts b/src/Overlay/index.d.ts index 358162e4c1..47dfbb60be 100644 --- a/src/Overlay/index.d.ts +++ b/src/Overlay/index.d.ts @@ -4,35 +4,35 @@ import { TransitionProps } from 'react-transition-group/Transition'; import { FadeProps } from 'react-bootstrap/Fade'; export interface OverlayProps extends React.HTMLAttributes { - show: boolean; - onHide: () => void; - placement?: Placement; - container?: Element | (() => Element | null) | null; - flip?: boolean; - popperConfig?: Object; - rootClose?: boolean; - rootCloseEvent?: 'click' | 'mousedown'; - transition?: FadeProps | TransitionProps; - onEnter?: () => void; - onEntered?: () => void; - onEntering?: () => void; - onExit?: () => void; - onExited?: () => void; - onExiting?: () => void; - target: Element | (() => Element | null) | null; + show: boolean; + onHide: () => void; + placement?: Placement; + container?: Element | (() => Element | null) | null; + flip?: boolean; + popperConfig?: Object; + rootClose?: boolean; + rootCloseEvent?: 'click' | 'mousedown'; + transition?: FadeProps | TransitionProps; + onEnter?: () => void; + onEntered?: () => void; + onEntering?: () => void; + onExit?: () => void; + onExited?: () => void; + onExiting?: () => void; + target: Element | (() => Element | null) | null; } export interface OverlayTriggerProps extends OverlayProps { - trigger: 'click' | 'hover' | 'focus'; - delay?: number | { show: number; hide: number }; - defaultShow?: boolean; - onToggle?: (show: boolean) => void; - overlay: React.ReactNode | ((props: any) => React.ReactNode); + trigger: 'click' | 'hover' | 'focus'; + delay?: number | { show: number; hide: number }; + defaultShow?: boolean; + onToggle?: (show: boolean) => void; + overlay: React.ReactNode | ((props: any) => React.ReactNode); } declare const Overlay: React.FC; declare const OverlayTrigger: React.FC; export { OverlayTrigger }; -export default Overlay; +export default Overlay; diff --git a/src/PageBanner/index.d.ts b/src/PageBanner/index.d.ts index 57f7ac6c20..2aa2dbc14a 100644 --- a/src/PageBanner/index.d.ts +++ b/src/PageBanner/index.d.ts @@ -1,12 +1,12 @@ import React from 'react'; export interface PageBannerTypes { - children?: React.ReactNode; - dismissible?: boolean; - dismissAltText?: React.ReactNode; - onDismiss?: () => void; - show?: boolean; - variant?: 'light' | 'dark' | 'warning' | 'accentA' | 'accentB'; + children?: React.ReactNode; + dismissible?: boolean; + dismissAltText?: React.ReactNode; + onDismiss?: () => void; + show?: boolean; + variant?: 'light' | 'dark' | 'warning' | 'accentA' | 'accentB'; } declare const PageBanner: React.FC; diff --git a/src/Pagination/index.d.ts b/src/Pagination/index.d.ts index 58649a4797..63eba20b20 100644 --- a/src/Pagination/index.d.ts +++ b/src/Pagination/index.d.ts @@ -1,26 +1,26 @@ import React from 'react'; export interface PaginationProps { - onPageSelect: (pageNumber: number) => void; - pageCount: number; - paginationLabel: string; - buttonLabels?: { - previous?: string; - next?: string; - page?: string; - currentPage?: string; - pageOfCount?: string; - }; - className?: string; - currentPage?: number; - maxPagesDisplayed?: number; - icons?: { - leftIcon?: React.ReactNode; - rightIcon?: React.ReactNode; - }; - variant?: 'default' | 'secondary' | 'reduced' | 'minimal'; - invertColors?: boolean; - size?: 'default' | 'small'; + onPageSelect: (pageNumber: number) => void; + pageCount: number; + paginationLabel: string; + buttonLabels?: { + previous?: string; + next?: string; + page?: string; + currentPage?: string; + pageOfCount?: string; + }; + className?: string; + currentPage?: number; + maxPagesDisplayed?: number; + icons?: { + leftIcon?: React.ReactNode; + rightIcon?: React.ReactNode; + }; + variant?: 'default' | 'secondary' | 'reduced' | 'minimal'; + invertColors?: boolean; + size?: 'default' | 'small'; } declare class Pagination extends React.Component {} diff --git a/src/Popover/index.d.ts b/src/Popover/index.d.ts index 64245d5b5c..fb084ae270 100644 --- a/src/Popover/index.d.ts +++ b/src/Popover/index.d.ts @@ -3,10 +3,10 @@ import { BsPrefixProps } from 'react-bootstrap/helpers'; import { PopoverProps } from 'react-bootstrap/Popover'; export interface WrapperPopoverProps extends Omit { - placement?: 'auto' | 'top' | 'bottom' | 'left' | 'right'; - popper?: {}; - className?: string; - variant?: string; + placement?: 'auto' | 'top' | 'bottom' | 'left' | 'right'; + popper?: {}; + className?: string; + variant?: string; } export interface PopoverTitleProps extends BsPrefixProps {} @@ -14,8 +14,8 @@ export interface PopoverTitleProps extends BsPrefixProps {} export interface PopoverContentProps extends BsPrefixProps {} declare const WrapperPopover: React.ForwardRefExoticComponent & { - Title: React.FC; - Content: React.FC; + Title: React.FC; + Content: React.FC; }; export default WrapperPopover; diff --git a/src/ProductTour/Checkpoint.d.ts b/src/ProductTour/Checkpoint.d.ts index a003e24798..506519f506 100644 --- a/src/ProductTour/Checkpoint.d.ts +++ b/src/ProductTour/Checkpoint.d.ts @@ -1,22 +1,22 @@ import React from 'react'; -export type CheckpointPlacements = 'top' | 'top-start' | 'top-end' | 'right-start' | 'right' | 'right-end' -| 'left-start' | 'left' | 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end'; +export type CheckpointPlacements = 'top' | 'top-start' | 'top-end' | 'right-start' | 'right' | 'right-end' + | 'left-start' | 'left' | 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end'; export interface CheckpointProps { - advanceButtonText?: React.ReactNode; - body?: React.ReactNode; - dismissButtonText?: React.ReactNode; - endButtonText?: React.ReactNode; - index: number; - onAdvance: () => void; - onDismiss: () => void; - onEnd: () => void; - placement?: CheckpointPlacements; - showDismissButton?: boolean; - target: string; - title?: React.ReactNode; - totalCheckpoints: number; + advanceButtonText?: React.ReactNode; + body?: React.ReactNode; + dismissButtonText?: React.ReactNode; + endButtonText?: React.ReactNode; + index: number; + onAdvance: () => void; + onDismiss: () => void; + onEnd: () => void; + placement?: CheckpointPlacements; + showDismissButton?: boolean; + target: string; + title?: React.ReactNode; + totalCheckpoints: number; } declare const Checkpoint: React.ForwardRefExoticComponent; diff --git a/src/ProductTour/CheckpointActionRow.d.ts b/src/ProductTour/CheckpointActionRow.d.ts index df77e3b281..ae447349eb 100644 --- a/src/ProductTour/CheckpointActionRow.d.ts +++ b/src/ProductTour/CheckpointActionRow.d.ts @@ -1,15 +1,15 @@ import React from 'react'; export interface CheckpointActionRowProps { - advanceButtonText?: React.ReactNode; - dismissButtonText?: React.ReactNode; - endButtonText?: React.ReactNode; - isLastCheckpoint?: boolean; - onAdvance?: (index: number) => void; - onDismiss?: () => void; - onEnd?: (index: number) => void; - showDismissButton?: boolean; - index?: number; + advanceButtonText?: React.ReactNode; + dismissButtonText?: React.ReactNode; + endButtonText?: React.ReactNode; + isLastCheckpoint?: boolean; + onAdvance?: (index: number) => void; + onDismiss?: () => void; + onEnd?: (index: number) => void; + showDismissButton?: boolean; + index?: number; } declare const CheckpointActionRow: React.ForwardRefExoticComponent; diff --git a/src/ProductTour/CheckpointBody.d.ts b/src/ProductTour/CheckpointBody.d.ts index 7c35c5b96d..669751370c 100644 --- a/src/ProductTour/CheckpointBody.d.ts +++ b/src/ProductTour/CheckpointBody.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface CheckpointBodyProps { - children?: React.ReactNode; + children?: React.ReactNode; } declare const CheckpointBody: React.ForwardRefExoticComponent; diff --git a/src/ProductTour/CheckpointBreadcrumbs.d.ts b/src/ProductTour/CheckpointBreadcrumbs.d.ts index 2d96e732a7..490a57ef2f 100644 --- a/src/ProductTour/CheckpointBreadcrumbs.d.ts +++ b/src/ProductTour/CheckpointBreadcrumbs.d.ts @@ -1,10 +1,10 @@ import React from 'react'; export type CheckpointBreadcrumbsProps = { - currentIndex?: number; - totalCheckpoints?: number; + currentIndex?: number; + totalCheckpoints?: number; }; -const CheckpointBreadcrumbs: React.ForwardRefExoticComponent; +declare const CheckpointBreadcrumbs: React.ForwardRefExoticComponent; export default CheckpointBreadcrumbs; diff --git a/src/ProductTour/CheckpointTitle.d.ts b/src/ProductTour/CheckpointTitle.d.ts index 09eb1c63ab..a4ff6a7127 100644 --- a/src/ProductTour/CheckpointTitle.d.ts +++ b/src/ProductTour/CheckpointTitle.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface CheckpointTitleProps { - children?: React.ReactNode; + children?: React.ReactNode; } declare const CheckpointTitle: React.ForwardRefExoticComponent; diff --git a/src/ProductTour/index.d.ts b/src/ProductTour/index.d.ts index 4823e7066b..e238af245f 100644 --- a/src/ProductTour/index.d.ts +++ b/src/ProductTour/index.d.ts @@ -1,37 +1,34 @@ import React from 'react'; -export type PlacementType = | 'top' | 'top-start' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'left-start' -| 'left' | 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end'; - export interface CheckpointData { - advanceButtonText?: React.ReactNode; - body?: React.ReactNode; - dismissButtonText?: React.ReactNode; - endButtonText?: React.ReactNode; - onAdvance?: () => void; - onDismiss?: () => void; - onEnd?: () => void; - placement?: string; // TODO: Type 'string' is not assignable to type "top" - target?: string; - title?: React.ReactNode; - showDismissButton?: boolean; + advanceButtonText?: React.ReactNode; + body?: React.ReactNode; + dismissButtonText?: React.ReactNode; + endButtonText?: React.ReactNode; + onAdvance?: () => void; + onDismiss?: () => void; + onEnd?: () => void; + placement?: string; + target?: string; + title?: React.ReactNode; + showDismissButton?: boolean; } export interface TourData { - advanceButtonText?: React.ReactNode; - checkpoints?: CheckpointData[]; - dismissButtonText?: React.ReactNode; - endButtonText?: React.ReactNode; - enabled?: boolean; - onDismiss?: () => void; - onEnd?: (lastCheckpoint: CheckpointData) => void; - onEscape?: () => void; - startingIndex?: number; - tourId: string; + advanceButtonText?: React.ReactNode; + checkpoints?: CheckpointData[]; + dismissButtonText?: React.ReactNode; + endButtonText?: React.ReactNode; + enabled?: boolean; + onDismiss?: () => void; + onEnd?: (lastCheckpoint: CheckpointData) => void; + onEscape?: () => void; + startingIndex?: number; + tourId: string; } export interface ProductTourProps { - tours: TourData[]; + tours: TourData[]; } declare const ProductTour: React.ForwardRefExoticComponent; diff --git a/src/ProgressBar/index.d.ts b/src/ProgressBar/index.d.ts index fb7ac86208..87ee83b00d 100644 --- a/src/ProgressBar/index.d.ts +++ b/src/ProgressBar/index.d.ts @@ -4,15 +4,15 @@ import { ProgressBarProps as BaseProgressBarProps } from 'react-bootstrap/Progre export interface ProgressBarProps extends BaseProgressBarProps {} export interface ProgressBarAnnotatedProps extends ProgressBarProps { - threshold?: number; - thresholdLabel?: React.ReactNode; - thresholdVariant?: 'dark' | 'warning' | 'success' | 'error'; - progressHint?: React.ReactNode; - thresholdHint?: React.ReactNode; + threshold?: number; + thresholdLabel?: React.ReactNode; + thresholdVariant?: 'dark' | 'warning' | 'success' | 'error'; + progressHint?: React.ReactNode; + thresholdHint?: React.ReactNode; } declare const ProgressBar: React.FC & { - Annotated: React.FC; + Annotated: React.FC; }; export default ProgressBar; diff --git a/src/Scrollable/index.d.ts b/src/Scrollable/index.d.ts index 01a020bf40..481895d8de 100644 --- a/src/Scrollable/index.d.ts +++ b/src/Scrollable/index.d.ts @@ -1,8 +1,8 @@ import React from 'react'; export interface ScrollableProps extends React.HTMLAttributes { - children: React.ReactNode; - className?: string; + children: React.ReactNode; + className?: string; } declare function Scrollable(props: ScrollableProps): JSX.Element; diff --git a/src/SearchField/SearchFieldAdvanced.d.ts b/src/SearchField/SearchFieldAdvanced.d.ts index 625910de51..63a0f02c54 100644 --- a/src/SearchField/SearchFieldAdvanced.d.ts +++ b/src/SearchField/SearchFieldAdvanced.d.ts @@ -1,28 +1,28 @@ import React from 'react'; export interface SearchFieldAdvancedProps { - children: React.ReactNode; - onSubmit: (value: string) => void; - className?: string; - onBlur?: (event: React.FocusEvent) => void; - onChange?: (value: string) => void; - onClear?: () => void; - onFocus?: (event: React.FocusEvent) => void; - screenReaderText?: { - label: string | React.ReactElement; - submitButton: string | React.ReactElement; - clearButton?: string | React.ReactElement; - }; - value?: string; - icons?: { - submit: React.ReactElement; - clear?: React.ReactElement; - }; - formAriaLabel?: string; - disabled?: boolean; - submitButtonLocation?: 'internal' | 'external'; + children: React.ReactNode; + onSubmit: (value: string) => void; + className?: string; + onBlur?: (event: React.FocusEvent) => void; + onChange?: (value: string) => void; + onClear?: () => void; + onFocus?: (event: React.FocusEvent) => void; + screenReaderText?: { + label: string | React.ReactElement; + submitButton: string | React.ReactElement; + clearButton?: string | React.ReactElement; + }; + value?: string; + icons?: { + submit: React.ReactElement; + clear?: React.ReactElement; + }; + formAriaLabel?: string; + disabled?: boolean; + submitButtonLocation?: 'internal' | 'external'; } -declare const SearchFieldAdvanced = React.FC; +declare const SearchFieldAdvanced: React.FC; export default SearchFieldAdvanced; diff --git a/src/SearchField/SearchFieldInput.d.ts b/src/SearchField/SearchFieldInput.d.ts index 1f0072605f..b5047d4291 100644 --- a/src/SearchField/SearchFieldInput.d.ts +++ b/src/SearchField/SearchFieldInput.d.ts @@ -1,8 +1,8 @@ import React from 'react'; export interface SearchFieldInputProps extends React.InputHTMLAttributes { - className?: string; - placeholder?: string; + className?: string; + placeholder?: string; } declare function SearchFieldInput(props: SearchFieldInputProps): JSX.Element; diff --git a/src/SearchField/SearchFieldLabel.d.ts b/src/SearchField/SearchFieldLabel.d.ts index ffb3a427fc..adc1e92cb3 100644 --- a/src/SearchField/SearchFieldLabel.d.ts +++ b/src/SearchField/SearchFieldLabel.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface SearchFieldLabelProps { - children?: React.ReactNode; + children?: React.ReactNode; } declare function SearchFieldLabel(props: SearchFieldLabelProps): JSX.Element; diff --git a/src/SearchField/SearchFieldSubmitButton.d.ts b/src/SearchField/SearchFieldSubmitButton.d.ts index 8e7a861f83..9d215eb51a 100644 --- a/src/SearchField/SearchFieldSubmitButton.d.ts +++ b/src/SearchField/SearchFieldSubmitButton.d.ts @@ -1,9 +1,9 @@ import React from 'react'; export interface SearchFieldSubmitButtonProps { - variant?: 'light' | 'dark'; - submitButtonLocation?: 'internal' | 'external'; - buttonText?: string; + variant?: 'light' | 'dark'; + submitButtonLocation?: 'internal' | 'external'; + buttonText?: string; } declare const SearchFieldSubmitButton: React.FC; diff --git a/src/SearchField/SearchFileClearButton.d.ts b/src/SearchField/SearchFileClearButton.d.ts index a9847aef45..d47e7f3936 100644 --- a/src/SearchField/SearchFileClearButton.d.ts +++ b/src/SearchField/SearchFileClearButton.d.ts @@ -2,6 +2,6 @@ import React from 'react'; export interface SearchFieldClearButtonProps extends React.ButtonHTMLAttributes {} -declare const SearchFieldClearButton = React.FC; +declare const SearchFieldClearButton: React.FC; export default SearchFieldClearButton; diff --git a/src/SearchField/index.d.ts b/src/SearchField/index.d.ts index 745482b984..a870305979 100644 --- a/src/SearchField/index.d.ts +++ b/src/SearchField/index.d.ts @@ -6,38 +6,38 @@ import { SearchFieldLabelProps } from './SearchFieldLabel'; import { SearchFieldSubmitButtonProps } from './SearchFieldSubmitButton'; export interface SearchFieldProps { - onSubmit: (value: string) => void; - label?: string | React.ReactNode; - className?: string; - onBlur?: (event: React.FocusEvent) => void; - onChange?: (value: string) => void; - onClear?: () => void; - onFocus?: (event: React.FocusEvent) => void; - placeholder?: string; - screenReaderText?: { - label: string | React.ReactNode; - submitButton: string | React.ReactNode; - clearButton?: string | React.ReactNode; - }; - value?: string; - icons?: { - submit: React.ReactNode; - clear?: React.ReactNode; - }; - formAriaLabel?: string; - inputProps?: Record; - variant?: 'light' | 'dark'; - disabled?: boolean; - submitButtonLocation?: 'internal' | 'external'; - buttonText?: string | React.ReactNode; + onSubmit: (value: string) => void; + label?: string | React.ReactNode; + className?: string; + onBlur?: (event: React.FocusEvent) => void; + onChange?: (value: string) => void; + onClear?: () => void; + onFocus?: (event: React.FocusEvent) => void; + placeholder?: string; + screenReaderText?: { + label: string | React.ReactNode; + submitButton: string | React.ReactNode; + clearButton?: string | React.ReactNode; + }; + value?: string; + icons?: { + submit: React.ReactNode; + clear?: React.ReactNode; + }; + formAriaLabel?: string; + inputProps?: Record; + variant?: 'light' | 'dark'; + disabled?: boolean; + submitButtonLocation?: 'internal' | 'external'; + buttonText?: string | React.ReactNode; } declare const SearchField: React.FC & { - Advanced: React.FC; - Label: React.FC; - Input: React.FC; - ClearButton: React.FC; - SubmitButton: React.FC; + Advanced: React.FC; + Label: React.FC; + Input: React.FC; + ClearButton: React.FC; + SubmitButton: React.FC; }; export default SearchField; diff --git a/src/SelectableBox/SelectableBoxSet.d.ts b/src/SelectableBox/SelectableBoxSet.d.ts index 57711d828c..f88ce37f0f 100644 --- a/src/SelectableBox/SelectableBoxSet.d.ts +++ b/src/SelectableBox/SelectableBoxSet.d.ts @@ -1,14 +1,14 @@ import React from 'react'; export interface SelectableBoxSetProps { - name: string; - children?: React.ReactNode; - onChange?: React.ChangeEventHandler; - value?: string | number | Array; - defaultValue?: string | number; - type?: 'radio' | 'checkbox'; - columns?: number; - className?: string; + name: string; + children?: React.ReactNode; + onChange?: React.ChangeEventHandler; + value?: string | number | Array; + defaultValue?: string | number; + type?: 'radio' | 'checkbox'; + columns?: number; + className?: string; } declare const SelectableBoxSet: React.ForwardRefExoticComponent; diff --git a/src/SelectableBox/index.d.ts b/src/SelectableBox/index.d.ts index 848039269c..2d9e665d76 100644 --- a/src/SelectableBox/index.d.ts +++ b/src/SelectableBox/index.d.ts @@ -2,23 +2,23 @@ import React from 'react'; import { SelectableBoxSetProps } from './SelectableBoxSet'; export interface SelectableBoxProps extends React.HTMLAttributes { - value?: string | number; - checked?: boolean; - type?: 'radio' | 'checkbox'; - onClick?: (inputRef: React.HTMLInputElement) => void; - onFocus?: () => void; - inputHidden?: boolean; - isIndeterminate?: boolean; - isInvalid?: boolean; - className?: string; + value?: string | number; + checked?: boolean; + type?: 'radio' | 'checkbox'; + onClick?: (inputRef: React.HTMLInputElement) => void; + onFocus?: () => void; + inputHidden?: boolean; + isIndeterminate?: boolean; + isInvalid?: boolean; + className?: string; } export type SelectableBoxRef = React.HTMLDivElement & { - inputRef?: React.HTMLInputElement; + inputRef?: React.HTMLInputElement; }; declare const SelectableBox: React.ForwardRefExoticComponent> & { - Set: React.FC; + Set: React.FC; }; export default SelectableBox; diff --git a/src/Sheet/SheetContainer.d.ts b/src/Sheet/SheetContainer.d.ts index 11f97d4a2a..978992c9b3 100644 --- a/src/Sheet/SheetContainer.d.ts +++ b/src/Sheet/SheetContainer.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface SheetContainerProps { - children: React.ReactNode; + children: React.ReactNode; } declare class SheetContainer extends React.Component {} diff --git a/src/Sheet/index.d.ts b/src/Sheet/index.d.ts index d0b34d31d9..18a86a81a0 100644 --- a/src/Sheet/index.d.ts +++ b/src/Sheet/index.d.ts @@ -1,24 +1,24 @@ import React from 'react'; export declare const POSITIONS: { - left: string; - right: string; - top: string; - bottom: string; + left: string; + right: string; + top: string; + bottom: string; }; export declare const VARIANTS: { - light: string; - dark: string; + light: string; + dark: string; }; export interface SheetProps { - blocking?: boolean; - children?: React.ReactNode; - position?: keyof typeof POSITIONS; - show?: boolean; - onClose?: () => void; - variant?: keyof typeof VARIANTS; + blocking?: boolean; + children?: React.ReactNode; + position?: keyof typeof POSITIONS; + show?: boolean; + onClose?: () => void; + variant?: keyof typeof VARIANTS; } declare class Sheet extends React.Component {} diff --git a/src/Spinner/index.d.ts b/src/Spinner/index.d.ts index fcc6fc3d29..79ebad0f4c 100644 --- a/src/Spinner/index.d.ts +++ b/src/Spinner/index.d.ts @@ -2,8 +2,8 @@ import React from 'react'; import { SpinnerProps as BaseSpinnerProps } from 'react-bootstrap/Spinner'; export interface SpinnerProps extends BaseSpinnerProps { - className?: string; - screenReaderText?: React.ReactNode; + className?: string; + screenReaderText?: React.ReactNode; } declare const Spinner: React.ForwardRefExoticComponent; diff --git a/src/Stack/index.d.ts b/src/Stack/index.d.ts index b0c1e2f965..ee0c6a0c6b 100644 --- a/src/Stack/index.d.ts +++ b/src/Stack/index.d.ts @@ -1,10 +1,10 @@ import React from 'react'; export interface StackProps extends React.HTMLAttributes { - children: React.ReactNode; - direction?: 'horizontal' | 'vertical'; - gap?: number; - className?: string; + children: React.ReactNode; + direction?: 'horizontal' | 'vertical'; + gap?: number; + className?: string; } declare const Stack: React.ForwardRefExoticComponent; diff --git a/src/StatefulButton/index.d.ts b/src/StatefulButton/index.d.ts index 763958c1e4..58b4d86676 100644 --- a/src/StatefulButton/index.d.ts +++ b/src/StatefulButton/index.d.ts @@ -3,17 +3,17 @@ import React from 'react'; export type StatefulButtonState = 'default' | 'pending' | 'complete' | 'error'; export type DefaultValuesForLabelsAndIcons = { - default: React.ReactNode; - [key: string]: React.ReactNode; + default: React.ReactNode; + [key: string]: React.ReactNode; }; export interface StatefulButtonProps extends React.ButtonHTMLAttributes { - className?: string; - state?: StatefulButtonState; - labels: DefaultValuesForLabelsAndIcons; - icons?: DefaultValuesForLabelsAndIcons; - disabledStates?: StatefulButtonState[]; - onClick?: (e: React.MouseEvent) => void; + className?: string; + state?: StatefulButtonState; + labels: DefaultValuesForLabelsAndIcons; + icons?: DefaultValuesForLabelsAndIcons; + disabledStates?: StatefulButtonState[]; + onClick?: (e: React.MouseEvent) => void; } declare const StatefulButton: React.FC; diff --git a/src/Stepper/Stepper.Step.d.ts b/src/Stepper/Stepper.Step.d.ts index 10c3c563ef..9f461953a5 100644 --- a/src/Stepper/Stepper.Step.d.ts +++ b/src/Stepper/Stepper.Step.d.ts @@ -1,13 +1,13 @@ import React from 'react'; export interface StepperStepProps { - children: React.ReactNode; - className?: string; - eventKey: string; - title: string; - description?: string; - hasError?: boolean; - index?: number; + children: React.ReactNode; + className?: string; + eventKey: string; + title: string; + description?: string; + hasError?: boolean; + index?: number; } export default function StepperStep(props: StepperStepProps): JSX.Element; diff --git a/src/Stepper/Stepper.d.ts b/src/Stepper/Stepper.d.ts index fff831dd8e..4a5653d204 100644 --- a/src/Stepper/Stepper.d.ts +++ b/src/Stepper/Stepper.d.ts @@ -5,16 +5,16 @@ import { StepperActionRowProps } from './StepperActionRow'; import ActionRow from '../ActionRow'; export interface StepperTypes { - children: React.ReactNode; - activeKey: string; + children: React.ReactNode; + activeKey: string; } declare const Stepper: React.FC & { - Step: React.FC; - Header: React.FC; - ActionRow: React.FC & { - Spacer: typeof ActionRow.Spacer; - }; + Step: React.FC; + Header: React.FC; + ActionRow: React.FC & { + Spacer: typeof ActionRow.Spacer; + }; }; export default Stepper; diff --git a/src/Stepper/StepperActionRow.d.ts b/src/Stepper/StepperActionRow.d.ts index 9ac5db51c3..a5ffc3b71a 100644 --- a/src/Stepper/StepperActionRow.d.ts +++ b/src/Stepper/StepperActionRow.d.ts @@ -1,9 +1,9 @@ import React from 'react'; +import { BsPrefixProps } from 'react-bootstrap/helpers'; -export interface StepperActionRowProps { - children: React.ReactNode; - eventKey: string; - as?: keyof JSX.IntrinsicElements; +export interface StepperActionRowProps extends BsPrefixProps { + children: React.ReactNode; + eventKey: string; } declare const StepperActionRow: React.FC; diff --git a/src/Stepper/StepperContext.d.ts b/src/Stepper/StepperContext.d.ts index 509b619756..21f72f9a31 100644 --- a/src/Stepper/StepperContext.d.ts +++ b/src/Stepper/StepperContext.d.ts @@ -1,13 +1,13 @@ import React from 'react'; export interface StepperStepProps { - children: React.ReactNode; - eventKey: string; - index?: number; - onClick?: (eventKey: string) => void; - active?: boolean; - complete?: boolean; - disabled?: boolean; + children: React.ReactNode; + eventKey: string; + index?: number; + onClick?: (eventKey: string) => void; + active?: boolean; + complete?: boolean; + disabled?: boolean; } declare const StepperStep: React.FC; diff --git a/src/Stepper/StepperHeader.d.ts b/src/Stepper/StepperHeader.d.ts index 74927f2758..4d02d10d8f 100644 --- a/src/Stepper/StepperHeader.d.ts +++ b/src/Stepper/StepperHeader.d.ts @@ -2,12 +2,12 @@ import React from 'react'; import { StepperHeaderStepProps } from './StepperHeaderStep'; export interface StepperHeaderProps { - className?: string; - PageCountComponent?: keyof JSX.IntrinsicElements; + className?: string; + PageCountComponent?: keyof JSX.IntrinsicElements; } declare const StepperHeader: React.FC & { - Step: React.FC; + Step: React.FC; }; export default StepperHeader; diff --git a/src/Stepper/StepperHeaderStep.d.ts b/src/Stepper/StepperHeaderStep.d.ts index 6b7055ee10..4a9d5bb845 100644 --- a/src/Stepper/StepperHeaderStep.d.ts +++ b/src/Stepper/StepperHeaderStep.d.ts @@ -1,13 +1,13 @@ import React from 'react'; export interface StepperHeaderStepProps { - eventKey: string; - title: string; - isActive?: boolean; - description?: string; - index?: number; + eventKey: string; + title: string; + isActive?: boolean; + description?: string; + index?: number; } -declare const StepperHeaderStep = React.FC; +declare const StepperHeaderStep: React.FC; export default StepperHeaderStep; diff --git a/src/Sticky/index.d.ts b/src/Sticky/index.d.ts index 2fb6b43273..75ba7891cf 100644 --- a/src/Sticky/index.d.ts +++ b/src/Sticky/index.d.ts @@ -1,10 +1,10 @@ import React from 'react'; export interface StickyProps { - children: React.ReactNode; - position?: 'top' | 'bottom'; - offset?: number | string; - className?: string; + children: React.ReactNode; + position?: 'top' | 'bottom'; + offset?: number | string; + className?: string; } declare const Sticky: React.ForwardRefExoticComponent; diff --git a/src/Tabs/index.d.ts b/src/Tabs/index.d.ts index 7b967b45e6..01c0fa9417 100644 --- a/src/Tabs/index.d.ts +++ b/src/Tabs/index.d.ts @@ -1,24 +1,21 @@ import React from 'react'; export interface TabsProps extends React.ButtonHTMLAttributes { - children: React.ReactNode; - className?: string; - moreTabText?: string; - defaultActiveKey?: string; - activeKey?: string; + children: React.ReactNode; + className?: string; + moreTabText?: string; + defaultActiveKey?: string; + activeKey?: string; } export interface TabProps extends React.ButtonHTMLAttributes { - title: React.ReactNode; - notification?: React.ReactNode; - disabled?: boolean; - eventKey?: string | number; - tabClassName?: string; + title: React.ReactNode; + notification?: React.ReactNode; + disabled?: boolean; + eventKey?: string | number; + tabClassName?: string; } -declare const Tabs: React.FC; -declare const Tab: React.FC; +export default function Tabs(props: TabsProps): JSX.Element; - -export { Tab }; -export default Tabs; +export declare function Tab(props: TabProps): JSX.Element; diff --git a/src/Toast/ToastContainer.d.ts b/src/Toast/ToastContainer.d.ts index 94a0da726e..0ec335128c 100644 --- a/src/Toast/ToastContainer.d.ts +++ b/src/Toast/ToastContainer.d.ts @@ -1,7 +1,7 @@ import React from 'react'; export interface ToastContainerProps { - children: React.ReactNode; + children: React.ReactNode; } declare class ToastContainer extends React.Component {} diff --git a/src/Toast/index.d.ts b/src/Toast/index.d.ts index 2acc9132c1..b9d97a293d 100644 --- a/src/Toast/index.d.ts +++ b/src/Toast/index.d.ts @@ -1,14 +1,14 @@ import { ToastProps as BaseToastProps } from 'react-bootstrap/Toast'; export interface ToastProps extends BaseToastProps { - children: string; - action?: { - label: string; - href?: string; - onClick?: () => void; - }; - closeLabel?: string; - className?: string; + children: string; + action?: { + label: string; + href?: string; + onClick?: () => void; + }; + closeLabel?: string; + className?: string; } declare function Toast(props: ToastProps): JSX.Element; diff --git a/src/Tooltip/index.d.ts b/src/Tooltip/index.d.ts index 827fd40a08..fc99e59fec 100644 --- a/src/Tooltip/index.d.ts +++ b/src/Tooltip/index.d.ts @@ -2,11 +2,11 @@ import React from 'react'; import { TooltipProps as BaseTooltipProps } from 'react-bootstrap/Tooltip'; export interface TooltipProps extends BaseTooltipProps { - popper?: {}; - children?: React.ReactNode; - className?: string; - variant?: string; - bsPrefix?: string; + popper?: object; + children?: React.ReactNode; + className?: string; + variant?: string; + bsPrefix?: string; } declare const Tooltip: React.FC; diff --git a/src/TransitionReplace/index.d.ts b/src/TransitionReplace/index.d.ts index 12d224980a..001bc4df06 100644 --- a/src/TransitionReplace/index.d.ts +++ b/src/TransitionReplace/index.d.ts @@ -1,23 +1,23 @@ import React from 'react'; export interface TransitionReplaceProps { - children?: React.ReactElement; - enterDuration?: number; - exitDuration?: number; - className?: string; - onChildEnter?: (node: HTMLElement) => void; - onChildEntering?: (node: HTMLElement) => void; - onChildEntered?: (node: HTMLElement) => void; - onChildExit?: (node: HTMLElement) => void; - onChildExiting?: (node: HTMLElement) => void; - onChildExited?: (node: HTMLElement) => void; - transitionClassNames?: string; - transitionStyles?: { - entering?: React.CSSProperties; - entered?: React.CSSProperties; - exiting?: React.CSSProperties; - exited?: React.CSSProperties; - }; + children?: React.ReactElement; + enterDuration?: number; + exitDuration?: number; + className?: string; + onChildEnter?: (node: HTMLElement) => void; + onChildEntering?: (node: HTMLElement) => void; + onChildEntered?: (node: HTMLElement) => void; + onChildExit?: (node: HTMLElement) => void; + onChildExiting?: (node: HTMLElement) => void; + onChildExited?: (node: HTMLElement) => void; + transitionClassNames?: string; + transitionStyles?: { + entering?: React.CSSProperties; + entered?: React.CSSProperties; + exiting?: React.CSSProperties; + exited?: React.CSSProperties; + }; } declare class TransitionReplace extends React.Component {} diff --git a/src/Truncate/index.d.ts b/src/Truncate/index.d.ts index 91c5f34842..add29cf162 100644 --- a/src/Truncate/index.d.ts +++ b/src/Truncate/index.d.ts @@ -1,13 +1,13 @@ import React from 'react'; export interface TruncateProps { - children: string; - lines?: string | number; - ellipsis?: string | number | React.ReactNode; - whiteSpace?: boolean; - elementType?: string; - className?: string; - onTruncate?: (truncated: HTMLElement[]) => void; + children: string; + lines?: string | number; + ellipsis?: string | number | React.ReactNode; + whiteSpace?: boolean; + elementType?: string; + className?: string; + onTruncate?: (truncated: HTMLElement[]) => void; } declare const Truncate: React.FC; diff --git a/src/hooks/useIsVisible.d.ts b/src/hooks/useIsVisible.d.ts index 03af638098..604f9e69da 100644 --- a/src/hooks/useIsVisible.d.ts +++ b/src/hooks/useIsVisible.d.ts @@ -3,4 +3,3 @@ import React from 'react'; declare const useIsVisible: (defaultIsVisible?: boolean) => [boolean, React.RefObject]; export default useIsVisible; - From c033eaae063285c9cba596631aa2c509f046f07a Mon Sep 17 00:00:00 2001 From: monteri Date: Tue, 18 Apr 2023 12:11:20 +0300 Subject: [PATCH 09/16] feat: more declaration file for components --- src/ActionRow/{index.jsx => index.tsx} | 16 +++++-- src/Alert/index.d.ts | 18 ++++++++ src/Annotation/index.d.ts | 10 ++++ src/Avatar/index.d.ts | 9 ++++ src/AvatarButton/index.d.ts | 9 ++++ src/Badge/index.d.ts | 5 ++ src/Breadcrumb/index.d.ts | 16 +++++++ src/Button/index.d.ts | 19 ++++++++ src/Card/CardBody.d.ts | 8 ++++ src/Card/CardCarousel/CardCarousel.d.ts | 23 ++++++++++ .../CardCarousel/CardCarouselControls.d.ts | 4 ++ src/Card/CardCarousel/CardCarouselHeader.d.ts | 8 ++++ src/Card/CardCarousel/CardCarouselItems.d.ts | 7 +++ .../CardCarousel/CardCarouselProvider.d.ts | 19 ++++++++ .../CardCarousel/CardCarouselSubtitle.d.ts | 9 ++++ src/Card/CardCarousel/CardCarouselTitle.d.ts | 9 ++++ src/Card/CardCarousel/index.d.ts | 3 ++ src/Card/CardContext.d.ts | 12 +++++ src/Card/CardDeck.d.ts | 19 ++++++++ src/Card/CardDivider.d.ts | 7 +++ src/Card/CardFooter.d.ts | 13 ++++++ src/Card/CardGrid.d.ts | 15 ++++++ src/Card/CardHeader.d.ts | 13 ++++++ src/Card/CardImageCap.d.ts | 19 ++++++++ src/Card/CardSection.d.ts | 13 ++++++ src/Card/CardStatus.d.ts | 11 +++++ src/Card/CardStatus.jsx | 4 +- src/Card/index.d.ts | 46 +++++++++++++++++++ 28 files changed, 358 insertions(+), 6 deletions(-) rename src/ActionRow/{index.jsx => index.tsx} (77%) create mode 100644 src/Alert/index.d.ts create mode 100644 src/Annotation/index.d.ts create mode 100644 src/Avatar/index.d.ts create mode 100644 src/AvatarButton/index.d.ts create mode 100644 src/Badge/index.d.ts create mode 100644 src/Breadcrumb/index.d.ts create mode 100644 src/Button/index.d.ts create mode 100644 src/Card/CardBody.d.ts create mode 100644 src/Card/CardCarousel/CardCarousel.d.ts create mode 100644 src/Card/CardCarousel/CardCarouselControls.d.ts create mode 100644 src/Card/CardCarousel/CardCarouselHeader.d.ts create mode 100644 src/Card/CardCarousel/CardCarouselItems.d.ts create mode 100644 src/Card/CardCarousel/CardCarouselProvider.d.ts create mode 100644 src/Card/CardCarousel/CardCarouselSubtitle.d.ts create mode 100644 src/Card/CardCarousel/CardCarouselTitle.d.ts create mode 100644 src/Card/CardCarousel/index.d.ts create mode 100644 src/Card/CardContext.d.ts create mode 100644 src/Card/CardDeck.d.ts create mode 100644 src/Card/CardDivider.d.ts create mode 100644 src/Card/CardFooter.d.ts create mode 100644 src/Card/CardGrid.d.ts create mode 100644 src/Card/CardHeader.d.ts create mode 100644 src/Card/CardImageCap.d.ts create mode 100644 src/Card/CardSection.d.ts create mode 100644 src/Card/CardStatus.d.ts create mode 100644 src/Card/index.d.ts diff --git a/src/ActionRow/index.jsx b/src/ActionRow/index.tsx similarity index 77% rename from src/ActionRow/index.jsx rename to src/ActionRow/index.tsx index e4808ce4d3..dc76a47d98 100644 --- a/src/ActionRow/index.jsx +++ b/src/ActionRow/index.tsx @@ -2,17 +2,25 @@ import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; +export interface ActionRowProps { + as?: React.ElementType; + isStacked?: boolean; + children?: React.ReactNode; + className?: string; +} + function ActionRow({ - as, + as = 'div', isStacked, children, + className, ...props -}) { +}: ActionRowProps) { return React.createElement( as, { ...props, - className: classNames(props.className, { + className: classNames(className, { 'pgn__action-row': !isStacked, 'pgn__action-row-stacked': isStacked, }), @@ -39,7 +47,7 @@ ActionRow.defaultProps = { isStacked: false, }; -function ActionRowSpacer() { +function ActionRowSpacer(): React.ReactElement { return ; } diff --git a/src/Alert/index.d.ts b/src/Alert/index.d.ts new file mode 100644 index 0000000000..04ac93af98 --- /dev/null +++ b/src/Alert/index.d.ts @@ -0,0 +1,18 @@ +import React from 'react'; +import BaseAlert, { AlertProps } from 'react-bootstrap/Alert'; + +declare const ALERT_CLOSE_LABEL_TEXT: string; +export interface BaseAlertProps extends AlertProps { + icon?: React.ReactElement, + actions?: Array, + dismissible?: boolean, + onClose?: () => void, + closeLabel?: React.ReactElement, + stacked?: boolean, +} +declare const Alert: React.ForwardRefExoticComponent & { + Link: typeof BaseAlert.Link; + Heading: typeof BaseAlert.Heading; +}; +export { ALERT_CLOSE_LABEL_TEXT }; +export default Alert; diff --git a/src/Annotation/index.d.ts b/src/Annotation/index.d.ts new file mode 100644 index 0000000000..fd727aedd7 --- /dev/null +++ b/src/Annotation/index.d.ts @@ -0,0 +1,10 @@ +import React from 'react'; + +export interface AnnotationProps { + className?: string, + variant?: 'error' | 'success' | 'warning' | 'light' | 'dark', + children?: React.ReactNode, + arrowPlacement?: 'top' | 'right' | 'bottom' | 'left', +} +declare const Annotation: React.ForwardRefExoticComponent; +export default Annotation; diff --git a/src/Avatar/index.d.ts b/src/Avatar/index.d.ts new file mode 100644 index 0000000000..876fcd5b91 --- /dev/null +++ b/src/Avatar/index.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface AvatarProps { + alt?: string, + size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'huge', + src?: string, +} +declare const Avatar: React.FC; +export default Avatar; diff --git a/src/AvatarButton/index.d.ts b/src/AvatarButton/index.d.ts new file mode 100644 index 0000000000..5da6b86004 --- /dev/null +++ b/src/AvatarButton/index.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface AvatarButtonProps { + alt?: string, + size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'huge', + src?: string, +} +declare const AvatarButton: React.FC; +export default AvatarButton; diff --git a/src/Badge/index.d.ts b/src/Badge/index.d.ts new file mode 100644 index 0000000000..91c6e95eae --- /dev/null +++ b/src/Badge/index.d.ts @@ -0,0 +1,5 @@ +import React from 'react'; +import { BadgeProps } from 'react-bootstrap/Badge'; + +declare const Badge: React.ForwardRefExoticComponent; +export default Badge; diff --git a/src/Breadcrumb/index.d.ts b/src/Breadcrumb/index.d.ts new file mode 100644 index 0000000000..d60f8b487a --- /dev/null +++ b/src/Breadcrumb/index.d.ts @@ -0,0 +1,16 @@ +import React from 'react'; + +export interface BreadcrumbProps { + links: Array<{ + label: string, + }>, + activeLabel?: string, + spacer?: React.ReactElement, + clickHandler?: Function, + variant?: 'light' | 'dark', + isMobile?: boolean, + ariaLabel?: string, + linkAs?: React.ElementType, +} +declare const Breadcrumb: React.FC; +export default Breadcrumb; diff --git a/src/Button/index.d.ts b/src/Button/index.d.ts new file mode 100644 index 0000000000..08246e8b28 --- /dev/null +++ b/src/Button/index.d.ts @@ -0,0 +1,19 @@ +import React from 'react'; +import { ButtonProps } from 'react-bootstrap/Button'; +import { ButtonGroupProps, ButtonToolbarProps } from "react-bootstrap"; +import { BsPrefixRefForwardingComponent } from "react-bootstrap/helpers"; + +export interface BaseButtonProps extends ButtonProps { + iconBefore?: React.ReactElement, + iconAfter?: React.ReactElement, +} + +declare type Button = BsPrefixRefForwardingComponent<'button', BaseButtonProps>; +declare type ButtonGroup = BsPrefixRefForwardingComponent<'div', ButtonGroupProps>; +declare type ButtonToolbar = BsPrefixRefForwardingComponent<'div', ButtonToolbarProps>; + +declare const Button: Button; +declare const ButtonGroup: ButtonGroup; +declare const ButtonToolbar: ButtonToolbar; +export { ButtonGroup, ButtonToolbar }; +export default Button; diff --git a/src/Card/CardBody.d.ts b/src/Card/CardBody.d.ts new file mode 100644 index 0000000000..edd5dca682 --- /dev/null +++ b/src/Card/CardBody.d.ts @@ -0,0 +1,8 @@ +import React from 'react'; + +export interface CardBodyProps { + className?: string, + children?: React.ReactNode, +} +declare const CardBody: React.ForwardRefExoticComponent; +export default CardBody; diff --git a/src/Card/CardCarousel/CardCarousel.d.ts b/src/Card/CardCarousel/CardCarousel.d.ts new file mode 100644 index 0000000000..9f44a0d9bd --- /dev/null +++ b/src/Card/CardCarousel/CardCarousel.d.ts @@ -0,0 +1,23 @@ +import React from 'react'; + +export interface CardCarouselProps { + ariaLabel: string, + children: React.ReactNode, + title?: React.ReactNode, + subtitle?: React.ReactNode, + columnSizes?: { + xs?: number, + sm?: number, + md?: number, + lg?: number, + xl?: number, + }, + hasInteractiveChildren?: boolean, + canScrollHorizontal?: boolean, + disableOpacityMasks?: boolean, + onScrollPrevious?: Function, + onScrollNext?: Function, + CardCarouselControls?: React.ElementType, +} +declare const CardCarousel: React.ForwardRefExoticComponent; +export default CardCarousel; diff --git a/src/Card/CardCarousel/CardCarouselControls.d.ts b/src/Card/CardCarousel/CardCarouselControls.d.ts new file mode 100644 index 0000000000..f0d26924a5 --- /dev/null +++ b/src/Card/CardCarousel/CardCarouselControls.d.ts @@ -0,0 +1,4 @@ +import React from 'react'; + +declare const CardCarouselControls: React.FC; +export default CardCarouselControls; diff --git a/src/Card/CardCarousel/CardCarouselHeader.d.ts b/src/Card/CardCarousel/CardCarouselHeader.d.ts new file mode 100644 index 0000000000..a7ebcb0fe6 --- /dev/null +++ b/src/Card/CardCarousel/CardCarouselHeader.d.ts @@ -0,0 +1,8 @@ +import React from 'react'; + +export interface CardCarouselHeaderProps { + title?: React.ReactNode, + subtitle?: React.ReactNode, +} +declare const CardCarouselHeader: React.FC; +export default CardCarouselHeader; diff --git a/src/Card/CardCarousel/CardCarouselItems.d.ts b/src/Card/CardCarousel/CardCarouselItems.d.ts new file mode 100644 index 0000000000..a7d5cd493f --- /dev/null +++ b/src/Card/CardCarousel/CardCarouselItems.d.ts @@ -0,0 +1,7 @@ +import React from 'react'; + +export interface CardCarouselItemsProps { + children: React.ReactNode, +} +declare const CardCarouselItems: React.FC; +export default CardCarouselItems; diff --git a/src/Card/CardCarousel/CardCarouselProvider.d.ts b/src/Card/CardCarousel/CardCarouselProvider.d.ts new file mode 100644 index 0000000000..394d34cdcd --- /dev/null +++ b/src/Card/CardCarousel/CardCarouselProvider.d.ts @@ -0,0 +1,19 @@ +import React from 'react'; + +export interface CardCarouselProviderProps { + columnSizes?: { + xs?: number, + sm?: number, + md?: number, + lg?: number, + xl?: number, + }, + hasInteractiveChildren?: boolean, + canScrollHorizontal?: boolean, + CardCarouselControls?: React.ElementType, + children: React.ReactNode, +} +declare const CardCarouselProvider: React.FC; +declare const CardCarouselContext: React.Context<{}>; +export { CardCarouselContext }; +export default CardCarouselProvider; diff --git a/src/Card/CardCarousel/CardCarouselSubtitle.d.ts b/src/Card/CardCarousel/CardCarouselSubtitle.d.ts new file mode 100644 index 0000000000..314f7ecf98 --- /dev/null +++ b/src/Card/CardCarousel/CardCarouselSubtitle.d.ts @@ -0,0 +1,9 @@ +import React from "react"; + +export interface CardCarouselSubtitleProps { + as?: React.ElementType | string + className?: string, + children: React.ReactNode, +} +declare const CardCarouselSubtitle: React.FC; +export default CardCarouselSubtitle; diff --git a/src/Card/CardCarousel/CardCarouselTitle.d.ts b/src/Card/CardCarousel/CardCarouselTitle.d.ts new file mode 100644 index 0000000000..c262a91379 --- /dev/null +++ b/src/Card/CardCarousel/CardCarouselTitle.d.ts @@ -0,0 +1,9 @@ +import React from 'react'; + +export interface CardCarouselTitleProps { + as?: React.ElementType | string + className?: string, + children: React.ReactNode, +} +declare const CardCarouselTitle: React.FC; +export default CardCarouselTitle; diff --git a/src/Card/CardCarousel/index.d.ts b/src/Card/CardCarousel/index.d.ts new file mode 100644 index 0000000000..96bb4f7b1b --- /dev/null +++ b/src/Card/CardCarousel/index.d.ts @@ -0,0 +1,3 @@ +import CardCarousel from "./CardCarousel"; + +export default CardCarousel; diff --git a/src/Card/CardContext.d.ts b/src/Card/CardContext.d.ts new file mode 100644 index 0000000000..7c102fb37e --- /dev/null +++ b/src/Card/CardContext.d.ts @@ -0,0 +1,12 @@ +import React from 'react'; + +export interface CardContextProviderProps { + orientation?: 'horizontal' | 'vertical', + isLoading?: boolean, + variant?: 'light' | 'dark' | 'muted', + children?: React.ReactNode, +} +declare const CardContextProvider: React.FC; +declare const CardContext: React.Context<{}>; +export { CardContextProvider }; +export default CardContext; diff --git a/src/Card/CardDeck.d.ts b/src/Card/CardDeck.d.ts new file mode 100644 index 0000000000..b0e2e3c817 --- /dev/null +++ b/src/Card/CardDeck.d.ts @@ -0,0 +1,19 @@ +import React from 'react'; + +export declare const CARD_DECK_ITEM_CLASS_NAME = 'pgn__card-deck-card-item'; +export interface CardDeckProps { + columnSizes?: { + xs?: number, + sm?: number, + md?: number, + lg?: number, + xl?: number, + }, + hasInteractiveChildren?: boolean, + canScrollHorizontal?: boolean, + hasOverflowScrollItems?: boolean, + className?: string, + children: React.ReactNode, +} +declare const CardDeck: React.ForwardRefExoticComponent; +export default CardDeck; diff --git a/src/Card/CardDivider.d.ts b/src/Card/CardDivider.d.ts new file mode 100644 index 0000000000..1c6e7485de --- /dev/null +++ b/src/Card/CardDivider.d.ts @@ -0,0 +1,7 @@ +import React from 'react'; + +export interface CardDividerProps { + className?: string, +} +declare const CardDivider: React.ForwardRefExoticComponent; +export default CardDivider; diff --git a/src/Card/CardFooter.d.ts b/src/Card/CardFooter.d.ts new file mode 100644 index 0000000000..55afc36f51 --- /dev/null +++ b/src/Card/CardFooter.d.ts @@ -0,0 +1,13 @@ +import React from 'react'; + +export interface CardFooterProps { + isStacked?: boolean, + textElement?: React.ReactNode, + skeletonHeight?: number, + skeletonWidth?: number, + orientation?: 'horizontal' | 'vertical', + className?: string, + children?: React.ReactNode, +} +declare const CardFooter: React.ForwardRefExoticComponent; +export default CardFooter; diff --git a/src/Card/CardGrid.d.ts b/src/Card/CardGrid.d.ts new file mode 100644 index 0000000000..76e06b518a --- /dev/null +++ b/src/Card/CardGrid.d.ts @@ -0,0 +1,15 @@ +import React from 'react'; + +export interface CardGridProps { + className?: string, + children?: React.ReactNode, + columnSizes?: { + xs?: number, + sm?: number, + md?: number, + lg?: number, + xl?: number, + }, +} +declare const CardGrid: React.FC; +export default CardGrid; diff --git a/src/Card/CardHeader.d.ts b/src/Card/CardHeader.d.ts new file mode 100644 index 0000000000..58ecd6e54f --- /dev/null +++ b/src/Card/CardHeader.d.ts @@ -0,0 +1,13 @@ +import React from 'react'; + +export interface CardHeaderProps { + actions?: React.ReactNode, + size?: 'sm' | 'md', + subtitle?: React.ReactNode, + title?: React.ReactNode, + skeletonHeight?: number, + skeletonWidth?: number, + className?: string, +} +declare const CardHeader: React.ForwardRefExoticComponent; +export default CardHeader; diff --git a/src/Card/CardImageCap.d.ts b/src/Card/CardImageCap.d.ts new file mode 100644 index 0000000000..f14c1f2592 --- /dev/null +++ b/src/Card/CardImageCap.d.ts @@ -0,0 +1,19 @@ +import React from 'react'; + +export interface CardImageCapProps { + src?: string, + fallbackSrc?: string, + srcAlt?: string, + logoSrc?: string, + fallbackLogoSrc?: string, + logoAlt?: string, + skeletonHeight?: number, + skeletonWidth?: number, + logoSkeleton?: boolean, + logoSkeletonHeight?: number, + logoSkeletonWidth?: number, + className?: string, + children?: React.ReactNode, +} +declare const CardImageCap: React.ForwardRefExoticComponent; +export default CardImageCap; diff --git a/src/Card/CardSection.d.ts b/src/Card/CardSection.d.ts new file mode 100644 index 0000000000..37b9ed1851 --- /dev/null +++ b/src/Card/CardSection.d.ts @@ -0,0 +1,13 @@ +import React from 'react'; + +export interface CardSectionProps { + title?: React.ReactNode, + actions?: React.ReactNode, + muted?: boolean, + skeletonHeight?: number, + skeletonWidth?: number, + className?: string, + children?: React.ReactNode, +} +declare const CardSection: React.ForwardRefExoticComponent; +export default CardSection; diff --git a/src/Card/CardStatus.d.ts b/src/Card/CardStatus.d.ts new file mode 100644 index 0000000000..739ba77f9f --- /dev/null +++ b/src/Card/CardStatus.d.ts @@ -0,0 +1,11 @@ +import React from 'react'; + +export interface CardStatusProps { + variant?: 'success' | 'primary' | 'warning' | 'danger', + icon?: React.ReactElement, + title?: React.ReactNode, + className?: string, + children?: React.ReactNode, +} +declare const CardStatus: React.ForwardRefExoticComponent; +export default CardStatus; diff --git a/src/Card/CardStatus.jsx b/src/Card/CardStatus.jsx index be355ebf5a..2309e96fe6 100644 --- a/src/Card/CardStatus.jsx +++ b/src/Card/CardStatus.jsx @@ -61,7 +61,7 @@ CardStatus.propTypes = { /** The class to append to the base element. */ className: PropTypes.string, /** Icon that will be shown in the top-left corner. */ - icon: PropTypes.func, + icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]), /** Specifies variant to use. */ variant: PropTypes.oneOf([ 'primary', @@ -70,7 +70,7 @@ CardStatus.propTypes = { 'warning', ]), /** Specifies title for the `Card.Status`. */ - title: PropTypes.oneOfType([PropTypes.element, PropTypes.string]), + title: PropTypes.node, /** Specifies any optional actions, e.g. button(s). */ actions: PropTypes.node, }; diff --git a/src/Card/index.d.ts b/src/Card/index.d.ts new file mode 100644 index 0000000000..4a934c3331 --- /dev/null +++ b/src/Card/index.d.ts @@ -0,0 +1,46 @@ +import React from 'react'; +import Card, { CardProps } from "react-bootstrap/Card"; +import { BsPrefixRefForwardingComponent } from "react-bootstrap/helpers"; +import CardDivider from "./CardDivider"; +import CardContext from "./CardContext"; +import CardBody from "./CardBody"; +import CardHeader from "./CardHeader"; +import CardFooter from "./CardFooter"; +import CardSection from "./CardSection"; +import CardStatus from "./CardStatus"; +import CardImageCap from "./CardImageCap"; + +export interface BaseCardProps extends CardProps { + orientation?: 'horizontal' | 'vertical', + isLoading?: boolean, + isClickable?: boolean, + muted?: boolean, + variant?: 'light' | 'dark' | 'muted', + className?: string, + children?: React.ReactNode, +} +declare type Card = BsPrefixRefForwardingComponent<'div', BaseCardProps> & { + Img: typeof Card.Img; + Title: typeof Card.Title; + Subtitle: typeof Card.Subtitle; + Body: typeof CardBody; + Link: typeof Card.Link; + Text: typeof Card.Text; + Header: typeof CardHeader; + Footer: typeof CardFooter; + ImgOverlay: typeof Card.ImgOverlay; + Context: typeof CardContext; + Divider: typeof CardDivider; + Section: typeof CardSection; + Status: typeof CardStatus; + ImageCap: typeof CardImageCap; +}; + +declare const Card: Card; +export default Card; +export { default as CardColumns } from 'react-bootstrap/CardColumns'; +export { default as CardDeck } from './CardDeck'; +export { default as CardCarousel } from './CardCarousel/CardCarousel'; +export { default as CardImg } from 'react-bootstrap/CardImg'; +export { default as CardGroup } from 'react-bootstrap/CardGroup'; +export { default as CardGrid } from './CardGrid'; From b3d7d057247ec0cbd3cdf05af2a12fa21e8965ce Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Thu, 20 Apr 2023 16:39:14 +0300 Subject: [PATCH 10/16] refactor: refactoring --- src/Carousel/index.d.ts | 12 +++--------- src/Form/FormSwitch.d.ts | 2 +- src/hooks/useWindowSize.d.ts | 4 +++- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/Carousel/index.d.ts b/src/Carousel/index.d.ts index 55cf976c9e..22952d0f36 100644 --- a/src/Carousel/index.d.ts +++ b/src/Carousel/index.d.ts @@ -1,17 +1,11 @@ import React from 'react'; -import { CarouselProps as BaseCarouselProps } from 'react-bootstrap/Carousel'; -import { CarouselItemProps as BaseCarouselItemProps } from 'react-bootstrap/CarouselItem'; +import { CarouselProps } from 'react-bootstrap/Carousel'; +import { CarouselItemProps } from 'react-bootstrap/CarouselItem'; import { BsPrefixProps } from 'react-bootstrap/helpers'; -export interface CarouselProps extends BaseCarouselProps {} - -export interface CarouselItemProps extends BaseCarouselItemProps {} - -export interface CarouselCaptionProps extends BsPrefixProps {} - declare const Carousel: React.ForwardRefExoticComponent & { Item: React.ForwardRefExoticComponent; - Caption: React.FC; + Caption: React.FC; }; export default Carousel; diff --git a/src/Form/FormSwitch.d.ts b/src/Form/FormSwitch.d.ts index 36baccd16b..10d89ce6eb 100644 --- a/src/Form/FormSwitch.d.ts +++ b/src/Form/FormSwitch.d.ts @@ -16,6 +16,6 @@ export interface FormSwitchControlProps { declare const FormSwitch: React.FC; declare const SwitchControl: React.FC; -export { SwitchControl }; // TODO: do not working +export { SwitchControl }; export default FormSwitch; diff --git a/src/hooks/useWindowSize.d.ts b/src/hooks/useWindowSize.d.ts index 38081cdb0f..052fd81fdf 100644 --- a/src/hooks/useWindowSize.d.ts +++ b/src/hooks/useWindowSize.d.ts @@ -3,4 +3,6 @@ export interface WindowSizeTypes { height: number | undefined; } -export default function useWindowSize(): WindowSizeTypes; +declare function useWindowSize(): WindowSizeTypes; + +export default useWindowSize; From 91cd820240f2b5b4afb5757d834b3fc90d64c625 Mon Sep 17 00:00:00 2001 From: monteri Date: Fri, 28 Apr 2023 12:44:45 +0300 Subject: [PATCH 11/16] fix: PR comment update --- src/AvatarButton/index.d.ts | 2 +- src/Badge/index.d.ts | 6 +++++- src/Breadcrumb/index.d.ts | 2 ++ src/Breadcrumb/index.jsx | 4 +++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/AvatarButton/index.d.ts b/src/AvatarButton/index.d.ts index 5da6b86004..6f4fd4214c 100644 --- a/src/AvatarButton/index.d.ts +++ b/src/AvatarButton/index.d.ts @@ -2,7 +2,7 @@ import React from 'react'; export interface AvatarButtonProps { alt?: string, - size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'huge', + size?: 'xs' | 'sm' | 'md', src?: string, } declare const AvatarButton: React.FC; diff --git a/src/Badge/index.d.ts b/src/Badge/index.d.ts index 91c6e95eae..76b6a26f42 100644 --- a/src/Badge/index.d.ts +++ b/src/Badge/index.d.ts @@ -1,5 +1,9 @@ import React from 'react'; import { BadgeProps } from 'react-bootstrap/Badge'; -declare const Badge: React.ForwardRefExoticComponent; +interface IBadge extends BadgeProps { + children?: React.ReactNode, +} + +declare const Badge: React.ForwardRefExoticComponent; export default Badge; diff --git a/src/Breadcrumb/index.d.ts b/src/Breadcrumb/index.d.ts index d60f8b487a..e167c42a72 100644 --- a/src/Breadcrumb/index.d.ts +++ b/src/Breadcrumb/index.d.ts @@ -3,6 +3,8 @@ import React from 'react'; export interface BreadcrumbProps { links: Array<{ label: string, + href?: string, + className?: string, }>, activeLabel?: string, spacer?: React.ReactElement, diff --git a/src/Breadcrumb/index.jsx b/src/Breadcrumb/index.jsx index 41cc7fd23d..3ecbb3d2bc 100644 --- a/src/Breadcrumb/index.jsx +++ b/src/Breadcrumb/index.jsx @@ -40,7 +40,9 @@ Breadcrumb.propTypes = { * prop as these objects will get passed down as props to the underlying component defined by `linkAs` prop. */ links: PropTypes.arrayOf(PropTypes.shape({ - label: PropTypes.string, + label: PropTypes.string.isRequired, + href: PropTypes.string, + className: PropTypes.string, })).isRequired, /** allows to add a label that is not a link to the end of the breadcrumb. */ activeLabel: PropTypes.string, From ba2a10a748d8a37cb2855e8cf085f40a022a51cd Mon Sep 17 00:00:00 2001 From: PKulkoRaccoonGang Date: Tue, 2 May 2023 18:41:32 +0300 Subject: [PATCH 12/16] refactor: after review --- src/DataTable/CardView.d.ts | 2 +- src/DataTable/TableRow.d.ts | 2 +- src/DataTable/index.d.ts | 2 +- src/Dropzone/index.d.ts | 4 ++-- src/Form/FormRadioSetContext.d.ts | 2 +- src/Icon/index.d.ts | 2 +- src/IconButtonToggle/index.d.ts | 2 +- src/Modal/ModalLayer.d.ts | 4 ++-- src/Overlay/index.d.ts | 2 +- src/hooks/useIndexOfLastVisibleChild.d.ts | 2 +- src/hooks/useWindowSize.d.ts | 4 ++-- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/DataTable/CardView.d.ts b/src/DataTable/CardView.d.ts index 2ec97f3f03..f3f7bb5424 100644 --- a/src/DataTable/CardView.d.ts +++ b/src/DataTable/CardView.d.ts @@ -15,7 +15,7 @@ export interface CardViewProps { skeletonCardCount?: number; } -declare function CardView(props: CardViewProps): JSX.Element; +declare function CardView(props: CardViewProps): JSX.Element; export default CardView; diff --git a/src/DataTable/TableRow.d.ts b/src/DataTable/TableRow.d.ts index 637f050a8c..6c922c42c1 100644 --- a/src/DataTable/TableRow.d.ts +++ b/src/DataTable/TableRow.d.ts @@ -8,6 +8,6 @@ export interface TableRowProps { }; } -declare function TableRow({ row }: TableRowProps): JSX.Element; +declare function TableRow(props: TableRowProps): JSX.Element; export default TableRow; diff --git a/src/DataTable/index.d.ts b/src/DataTable/index.d.ts index 16fb3e2f53..4d3b0e2200 100644 --- a/src/DataTable/index.d.ts +++ b/src/DataTable/index.d.ts @@ -82,7 +82,7 @@ export interface DataTableProps { manualSortBy?: boolean; isExpandable?: boolean; renderRowSubComponent?: (row: number, index: number) => React.ReactNode; - bulkActions?: BulkActionProp[] | (() => BulkActionProp[]) | React.ReactElement; + bulkActions?: BulkActionProp[]; tableActions?: TableActionType[]; numBreakoutFilters?: 1 | 2 | 3 | 4; initialTableOptions?: object; diff --git a/src/Dropzone/index.d.ts b/src/Dropzone/index.d.ts index d252aaf4cb..8d13629b8c 100644 --- a/src/Dropzone/index.d.ts +++ b/src/Dropzone/index.d.ts @@ -5,8 +5,8 @@ export interface DropzoneProps { accept?: { [key: string]: string[] }; maxSize?: number; minSize?: number; - onUploadProgress?: (percentageUploaded: number, progressEvent: ProgressEvent) => void; - onUploadCancel?: (response: Response) => void; + onUploadProgress?: (percentageUploaded: number, progressEvent: AbortSignal) => void; + onUploadCancel?: () => void; onProcessUpload: (params: { fileData: object; requestConfig: object; diff --git a/src/Form/FormRadioSetContext.d.ts b/src/Form/FormRadioSetContext.d.ts index 5f55d355ab..9ab26cdaa3 100644 --- a/src/Form/FormRadioSetContext.d.ts +++ b/src/Form/FormRadioSetContext.d.ts @@ -16,7 +16,7 @@ export interface FormRadioSetContextValue extends RadioControlProps { getRadioControlProps: (props: RadioControlProps) => RadioControlProps; } -export interface FormRadioSetContextProviderProps extends Omit { +export interface FormRadioSetContextProviderProps extends FormRadioSetContextValue { children: React.ReactNode; } diff --git a/src/Icon/index.d.ts b/src/Icon/index.d.ts index d3843d54f3..eb8c52ce6f 100644 --- a/src/Icon/index.d.ts +++ b/src/Icon/index.d.ts @@ -10,7 +10,7 @@ export interface IconProps { size?: 'xs' | 'sm' | 'md' | 'lg'; className?: string; hidden?: boolean; - screenReaderText?: string | React.ReactNode; + screenReaderText?: React.ReactNode; } declare const Icon: React.FC; diff --git a/src/IconButtonToggle/index.d.ts b/src/IconButtonToggle/index.d.ts index f3ac726e00..d279ef6445 100644 --- a/src/IconButtonToggle/index.d.ts +++ b/src/IconButtonToggle/index.d.ts @@ -4,7 +4,7 @@ import { IconButtonProps } from '../IconButton'; export interface IconButtonToggleProps { activeValue?: string; onChange?: (value: string) => void; - children: React.ReactElement[]; + children: React.ReactElement; } declare const IconButtonToggle: React.FC; diff --git a/src/Modal/ModalLayer.d.ts b/src/Modal/ModalLayer.d.ts index 4c781f0117..dc8218cbc4 100644 --- a/src/Modal/ModalLayer.d.ts +++ b/src/Modal/ModalLayer.d.ts @@ -8,8 +8,8 @@ export interface ModalLayerProps { zIndex?: number; } -export function ModalBackdrop({ onClick }: { onClick?: () => void }): JSX.Element; +export function ModalBackdrop(props: { onClick?: () => void }): JSX.Element; -export function ModalContentContainer({ children }: { children?: React.ReactNode }): JSX.Element; +export function ModalContentContainer(props: { children?: React.ReactNode }): JSX.Element; export default function ModalLayer(props: ModalLayerProps): JSX.Element; diff --git a/src/Overlay/index.d.ts b/src/Overlay/index.d.ts index 47dfbb60be..1f8c60d353 100644 --- a/src/Overlay/index.d.ts +++ b/src/Overlay/index.d.ts @@ -7,7 +7,7 @@ export interface OverlayProps extends React.HTMLAttributes { show: boolean; onHide: () => void; placement?: Placement; - container?: Element | (() => Element | null) | null; + container?: React.ReactElement | (() => React.ReactElement | null) | null; flip?: boolean; popperConfig?: Object; rootClose?: boolean; diff --git a/src/hooks/useIndexOfLastVisibleChild.d.ts b/src/hooks/useIndexOfLastVisibleChild.d.ts index 09c5e6b841..0d2da8795c 100644 --- a/src/hooks/useIndexOfLastVisibleChild.d.ts +++ b/src/hooks/useIndexOfLastVisibleChild.d.ts @@ -3,6 +3,6 @@ import React from 'react'; declare const useIndexOfLastVisibleChild: ( containerElementRef: React.RefObject, overflowElementRef?: React.RefObject -) => number[]; +) => number; export default useIndexOfLastVisibleChild; diff --git a/src/hooks/useWindowSize.d.ts b/src/hooks/useWindowSize.d.ts index 052fd81fdf..21d926e8fa 100644 --- a/src/hooks/useWindowSize.d.ts +++ b/src/hooks/useWindowSize.d.ts @@ -1,6 +1,6 @@ export interface WindowSizeTypes { - width: number | undefined; - height: number | undefined; + width?: number; + height?: number; } declare function useWindowSize(): WindowSizeTypes; From b0102a6a8b386e27fbaaac55c51016edf00b3a1b Mon Sep 17 00:00:00 2001 From: monteri Date: Fri, 11 Aug 2023 15:32:08 +0300 Subject: [PATCH 13/16] fix: remove .d.ts where .tsx file is present --- src/ActionRow/index.d.ts | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 src/ActionRow/index.d.ts diff --git a/src/ActionRow/index.d.ts b/src/ActionRow/index.d.ts deleted file mode 100644 index 0d91e576ef..0000000000 --- a/src/ActionRow/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import * as React from 'react'; - -export interface ActionRowProps { - as?: keyof JSX.IntrinsicElements; - className?: string; - children?: React.ReactNode; - isStacked?: boolean; -} - -declare function ActionRowSpacer(): JSX.Element; - -declare const ActionRow: React.FC & { - Spacer: typeof ActionRowSpacer; -}; - -export { ActionRowSpacer }; -export default ActionRow; From 15d08f6f10503d45c542a26413cdb75996c7320b Mon Sep 17 00:00:00 2001 From: monteri Date: Fri, 18 Aug 2023 13:49:15 +0300 Subject: [PATCH 14/16] fix: fix lint and types --- src/ChipCarousel/index.tsx | 3 --- src/IconButton/index.d.ts | 2 +- src/Modal/ModalDialogFooter.d.ts | 2 +- src/Modal/ModalDialogHeader.d.ts | 2 +- src/Modal/ModalDialogHeroContent.d.ts | 2 +- src/Modal/ModalDialogTitle.d.ts | 2 +- src/OverflowScroll/OverflowScroll.d.ts | 2 ++ 7 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/ChipCarousel/index.tsx b/src/ChipCarousel/index.tsx index 9b8d458ce5..14e898f266 100644 --- a/src/ChipCarousel/index.tsx +++ b/src/ChipCarousel/index.tsx @@ -2,11 +2,8 @@ import React, { ForwardedRef } from 'react'; import PropTypes from 'prop-types'; import { useIntl } from 'react-intl'; import classNames from 'classnames'; -// @ts-ignore import { OverflowScroll, OverflowScrollContext } from '../OverflowScroll'; -// @ts-ignore import IconButton from '../IconButton'; -// @ts-ignore import Icon from '../Icon'; // @ts-ignore import { ArrowForward, ArrowBack } from '../../icons'; diff --git a/src/IconButton/index.d.ts b/src/IconButton/index.d.ts index a720e8b5ee..b99f0ed950 100644 --- a/src/IconButton/index.d.ts +++ b/src/IconButton/index.d.ts @@ -4,7 +4,7 @@ export type IconButtonVariants = 'primary' | 'secondary' | 'success' | 'warning' export interface IconButtonProps extends React.ButtonHTMLAttributes { className?: string; - iconAs?: keyof JSX.IntrinsicElements; + iconAs?: React.ReactNode; src?: React.ReactElement; alt: string; invertColors?: boolean; diff --git a/src/Modal/ModalDialogFooter.d.ts b/src/Modal/ModalDialogFooter.d.ts index ecb06847cc..1fe5048f32 100644 --- a/src/Modal/ModalDialogFooter.d.ts +++ b/src/Modal/ModalDialogFooter.d.ts @@ -3,6 +3,6 @@ import { ModalDialogBodyProps } from './ModalDialogBody'; export interface ModalDialogFooterProps extends ModalDialogBodyProps {} -export const ModalDialogFooter = React.FC; +export const ModalDialogFooter: React.FC; export default ModalDialogFooter; diff --git a/src/Modal/ModalDialogHeader.d.ts b/src/Modal/ModalDialogHeader.d.ts index ce333ff2f7..cc718c397f 100644 --- a/src/Modal/ModalDialogHeader.d.ts +++ b/src/Modal/ModalDialogHeader.d.ts @@ -3,6 +3,6 @@ import { ModalDialogBodyProps } from './ModalDialogBody'; export interface ModalDialogHeaderProps extends ModalDialogBodyProps {} -export const ModalDialogHeader = React.FC; +export const ModalDialogHeader: React.FC; export default ModalDialogHeader; diff --git a/src/Modal/ModalDialogHeroContent.d.ts b/src/Modal/ModalDialogHeroContent.d.ts index ce333ff2f7..cc718c397f 100644 --- a/src/Modal/ModalDialogHeroContent.d.ts +++ b/src/Modal/ModalDialogHeroContent.d.ts @@ -3,6 +3,6 @@ import { ModalDialogBodyProps } from './ModalDialogBody'; export interface ModalDialogHeaderProps extends ModalDialogBodyProps {} -export const ModalDialogHeader = React.FC; +export const ModalDialogHeader: React.FC; export default ModalDialogHeader; diff --git a/src/Modal/ModalDialogTitle.d.ts b/src/Modal/ModalDialogTitle.d.ts index 09b25a2854..19c94d690b 100644 --- a/src/Modal/ModalDialogTitle.d.ts +++ b/src/Modal/ModalDialogTitle.d.ts @@ -3,6 +3,6 @@ import { ModalDialogBodyProps } from './ModalDialogBody'; export interface ModalDialogTitleProps extends ModalDialogBodyProps {} -export const ModalDialogTitle = React.FC; +export const ModalDialogTitle: React.FC; export default ModalDialogTitle; diff --git a/src/OverflowScroll/OverflowScroll.d.ts b/src/OverflowScroll/OverflowScroll.d.ts index 49989fc875..3e5ce80fcd 100644 --- a/src/OverflowScroll/OverflowScroll.d.ts +++ b/src/OverflowScroll/OverflowScroll.d.ts @@ -10,6 +10,8 @@ export interface OverflowScrollProps { disableOpacityMasks?: boolean; onScrollPrevious?: () => void; onScrollNext?: () => void; + offset?: number | string; + offsetType?: 'percentage' | 'fixed'; } declare const OverflowScroll: React.FC & { From 72069f02be3e9cc02e1b3f81fd9d2db69f1aac39 Mon Sep 17 00:00:00 2001 From: monteri Date: Fri, 18 Aug 2023 13:58:11 +0300 Subject: [PATCH 15/16] fix: change to ComponentType --- src/IconButton/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/IconButton/index.d.ts b/src/IconButton/index.d.ts index b99f0ed950..309ce257c7 100644 --- a/src/IconButton/index.d.ts +++ b/src/IconButton/index.d.ts @@ -4,7 +4,7 @@ export type IconButtonVariants = 'primary' | 'secondary' | 'success' | 'warning' export interface IconButtonProps extends React.ButtonHTMLAttributes { className?: string; - iconAs?: React.ReactNode; + iconAs?: React.ComponentType; src?: React.ReactElement; alt: string; invertColors?: boolean; From 97974037547230250f2d1f15bd111f0a2fc6fbd1 Mon Sep 17 00:00:00 2001 From: monteri Date: Fri, 18 Aug 2023 14:08:26 +0300 Subject: [PATCH 16/16] fix: update package-lock.json --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 57ad6fe07c..089b8dc176 100644 --- a/package-lock.json +++ b/package-lock.json @@ -104,7 +104,7 @@ "peerDependencies": { "react": "^16.8.6 || ^17.0.0", "react-dom": "^16.8.6 || ^17.0.0", - "react-intl": "^5.25.1 || ^6.4" + "react-intl": "^5.25.1 || ^6.4.0" } }, "component-generator": {