jamespot-react-components 1.0.78 → 1.0.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/build/jamespot-react-components.js +399 -320
  2. package/build/jamespot-react-components.js.map +1 -1
  3. package/build/src/components/Common/BorderRadius.d.ts +4 -0
  4. package/build/src/components/Common/DashedFocusBorder.d.ts +5 -3
  5. package/build/src/components/Common/FastCss.d.ts +6 -0
  6. package/build/src/components/Form/Common/ClickAwayListener.d.ts +4 -3
  7. package/build/src/components/Form/Input/JRCSelect/JRCInputSelect.style.d.ts +2 -2
  8. package/build/src/components/Form/Input/JRCSelect/JRCInputSelect.types.d.ts +1 -0
  9. package/build/src/components/JRCButton/JRCButton.d.ts +9 -2
  10. package/build/src/components/JRCButtonDropdown/JRCButtonDropdown.d.ts +2 -37
  11. package/build/src/components/JRCButtonDropdown/JRCButtonDropdown.stories.d.ts +3 -6
  12. package/build/src/components/JRCButtonDropdown/JRCButtonDropdown.styles.d.ts +16 -0
  13. package/build/src/components/JRCButtonDropdown/JRCButtonDropdown.types.d.ts +37 -0
  14. package/build/src/components/JRCFlex/JRCFlexBox.d.ts +13 -0
  15. package/build/src/components/JRCModal/JRCModal.d.ts +2 -1
  16. package/build/src/components/JRCModal/JRCModal.styles.d.ts +9 -2
  17. package/build/src/components/Templates/template.styles.d.ts +1 -1
  18. package/build/src/index.d.ts +1 -0
  19. package/build/src/styles/theme.d.ts +3 -0
  20. package/build/src/types.d.ts +2 -1
  21. package/build/src/utils/index.d.ts +3 -1
  22. package/build/src/utils/utils.array.d.ts +3 -0
  23. package/build/src/utils/utils.misc.d.ts +1 -0
  24. package/package.json +2 -2
  25. package/storybook-static/587.e875d59e.iframe.bundle.js +2 -0
  26. package/storybook-static/{344.cdfbe1f1.iframe.bundle.js.LICENSE.txt → 587.e875d59e.iframe.bundle.js.LICENSE.txt} +0 -0
  27. package/storybook-static/{869.7ff62134.iframe.bundle.js → 869.d81caf8c.iframe.bundle.js} +1 -1
  28. package/storybook-static/iframe.html +1 -1
  29. package/storybook-static/main.08c3c60d.iframe.bundle.js +1 -0
  30. package/storybook-static/{runtime~main.ba5a9588.iframe.bundle.js → runtime~main.03b36f08.iframe.bundle.js} +1 -1
  31. package/storybook-static/344.cdfbe1f1.iframe.bundle.js +0 -2
  32. package/storybook-static/main.0cb31935.iframe.bundle.js +0 -1
@@ -0,0 +1,4 @@
1
+ export declare const BorderRadiusRight: import("styled-components").FlattenSimpleInterpolation;
2
+ export declare const BorderRadiusLeft: import("styled-components").FlattenSimpleInterpolation;
3
+ export declare const BorderRadiusTop: import("styled-components").FlattenSimpleInterpolation;
4
+ export declare const BorderRadiusBottom: import("styled-components").FlattenSimpleInterpolation;
@@ -1,7 +1,9 @@
1
+ export declare type DashedFocusBorderProps = {
2
+ offset?: string;
3
+ focusColor?: string;
4
+ };
1
5
  /**
2
6
  * The HTML element this styled is applied to should be selectable
3
7
  * @props offset offset of the dashed focus border, default to 2px
4
8
  */
5
- export declare const DashedFocusBorder: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<{
6
- offset?: string | undefined;
7
- }, any>>;
9
+ export declare const DashedFocusBorder: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<DashedFocusBorderProps, any>>;
@@ -0,0 +1,6 @@
1
+ export declare type FastCssProps = {
2
+ position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
3
+ display?: 'inline' | 'block' | 'flex' | 'grid' | 'inline-block' | 'inline-flex' | 'inline-grid';
4
+ margin?: string;
5
+ };
6
+ export declare const FastCss: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<FastCssProps, any>>;
@@ -1,15 +1,16 @@
1
1
  import * as React from 'react';
2
+ import { FastCssProps } from '../../Common/FastCss';
2
3
  export declare type MouseEvents = 'click' | 'mousedown' | 'mouseup';
3
4
  export declare type TouchEvents = 'touchstart' | 'touchend';
4
- export interface ClickAwayListenerProps extends React.HTMLAttributes<HTMLElement> {
5
+ export declare type ClickAwayListenerProps = React.HTMLAttributes<HTMLElement> & FastCssProps & {
5
6
  onClickAway: (event: MouseEvent | TouchEvent) => void;
6
7
  mouseEvent?: MouseEvents;
7
8
  touchEvent?: TouchEvents;
8
9
  as?: React.ElementType;
9
10
  className?: string;
10
- }
11
+ };
11
12
  /**
12
13
  * Wrap a component with a <div/> (or another component provided as the 'as' props).
13
14
  * Listen to outer mouse & touch events and call the onClickAway callback
14
15
  */
15
- export declare const ClickAwayListener: ({ as, onClickAway, mouseEvent, touchEvent, ...props }: ClickAwayListenerProps) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
16
+ export declare const ClickAwayListener: ({ as, onClickAway, mouseEvent, touchEvent, ...props }: ClickAwayListenerProps) => JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- export declare const RelativeClickAwayListener: import("styled-components").StyledComponent<({ as, onClickAway, mouseEvent, touchEvent, ...props }: import("../../Common/ClickAwayListener").ClickAwayListenerProps) => React.ReactElement<any, string | React.JSXElementConstructor<any>>, any, {}, never>;
2
+ export declare const RelativeClickAwayListener: import("styled-components").StyledComponent<({ as, onClickAway, mouseEvent, touchEvent, ...props }: import("../../Common/ClickAwayListener").ClickAwayListenerProps) => JSX.Element, any, {}, never>;
3
3
  export declare const OptionWrapper: import("styled-components").StyledComponent<"div", any, {
4
4
  isSelected?: boolean | undefined;
5
5
  isFocused?: boolean | undefined;
@@ -19,7 +19,7 @@ export declare const OptionMenu: import("styled-components").StyledComponent<"di
19
19
  suppressContentEditableWarning?: boolean | undefined;
20
20
  suppressHydrationWarning?: boolean | undefined;
21
21
  accessKey?: string | undefined;
22
- contentEditable?: (boolean | "true" | "false") | "inherit" | undefined;
22
+ contentEditable?: "inherit" | (boolean | "true" | "false") | undefined;
23
23
  contextMenu?: string | undefined;
24
24
  dir?: string | undefined;
25
25
  draggable?: (boolean | "true" | "false") | undefined;
@@ -22,6 +22,7 @@ export declare type SelectProps = DataCy & {
22
22
  getGroup?: ((option: any) => any) | string;
23
23
  views?: Array<'folder' | 'user' | 'group' | 'community'>;
24
24
  onConfirm?: (values: any) => void;
25
+ hideSelectedOption?: boolean;
25
26
  components?: {
26
27
  Option?: React.ComponentType<{
27
28
  option: any;
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { JRCIconProps } from '../JRCIcon/JRCIcon';
3
3
  import { ButtonType } from './JRCButtonConfig';
4
4
  import { DataCy } from '../../types/dataAttributes';
5
+ import { DashedFocusBorderProps } from '../Common/DashedFocusBorder';
5
6
  export declare type JRCButtonProps = React.ComponentPropsWithoutRef<'button'> & DataCy & {
6
7
  /** Color of the background of the button */
7
8
  color?: 'primary' | 'valid' | 'danger' | 'secondary';
@@ -13,6 +14,8 @@ export declare type JRCButtonProps = React.ComponentPropsWithoutRef<'button'> &
13
14
  value?: string;
14
15
  /** Enhance your button with an icon */
15
16
  icon?: string;
17
+ /** set the icon at the right of the button */
18
+ iconRight?: boolean;
16
19
  /** The variant is used to define what type of action the button will take */
17
20
  variant?: 'contained' | 'outlined';
18
21
  /** CSS float attribute */
@@ -26,7 +29,7 @@ export declare const transformColor: (color?: string | undefined) => JRCIconProp
26
29
  */
27
30
  export declare const Button: import("styled-components").StyledComponent<"button", any, {
28
31
  themeButton: ButtonType;
29
- hasChildren: boolean;
32
+ hasLabel: boolean;
30
33
  } & Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>> & DataCy & {
31
34
  /** Color of the background of the button */
32
35
  color?: "primary" | "secondary" | "valid" | "danger" | undefined;
@@ -38,13 +41,15 @@ export declare const Button: import("styled-components").StyledComponent<"button
38
41
  value?: string | undefined;
39
42
  /** Enhance your button with an icon */
40
43
  icon?: string | undefined;
44
+ /** set the icon at the right of the button */
45
+ iconRight?: boolean | undefined;
41
46
  /** The variant is used to define what type of action the button will take */
42
47
  variant?: "contained" | "outlined" | undefined;
43
48
  /** CSS float attribute */
44
49
  float?: "left" | "right" | undefined;
45
50
  /** CSS min-width attribute */
46
51
  minWidth?: string | undefined;
47
- }, never>;
52
+ } & DashedFocusBorderProps, never>;
48
53
  export declare const JRCButton: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>> & DataCy & {
49
54
  /** Color of the background of the button */
50
55
  color?: "primary" | "secondary" | "valid" | "danger" | undefined;
@@ -56,6 +61,8 @@ export declare const JRCButton: React.ForwardRefExoticComponent<Pick<React.Detai
56
61
  value?: string | undefined;
57
62
  /** Enhance your button with an icon */
58
63
  icon?: string | undefined;
64
+ /** set the icon at the right of the button */
65
+ iconRight?: boolean | undefined;
59
66
  /** The variant is used to define what type of action the button will take */
60
67
  variant?: "contained" | "outlined" | undefined;
61
68
  /** CSS float attribute */
@@ -1,37 +1,2 @@
1
- import React from 'react';
2
- /**
3
- * Interface to provide JRCMenu props
4
- * @member open open menu
5
- * @member handleOpening method to open/close menu
6
- */
7
- export interface JRCMenuProps {
8
- open?: boolean;
9
- handleOpening?: (event?: React.MouseEvent) => void;
10
- align?: 'right';
11
- }
12
- /**
13
- * Interface to provide JRCMenu props
14
- * @member color Color of the background of the button
15
- * @member variant The variant is used to define what type of action the button will take
16
- * @member value Defines the value associated with the button’s name when it’s submitted with the form data
17
- * @member label name button
18
- * @member action button action handler
19
- * @member iconName name icon on button
20
- */
21
- export interface JRCButtonDropdownProps extends React.ComponentPropsWithoutRef<'button'> {
22
- color?: 'primary' | 'valid' | 'danger' | 'secondary';
23
- variant?: 'contained' | 'outlined';
24
- value?: string;
25
- label: string;
26
- action?: (event?: React.MouseEvent) => void;
27
- iconName?: string;
28
- iconLabel?: string;
29
- align?: 'right';
30
- }
31
- /**
32
- *
33
- * @param iconName icon name
34
- * @param {label, action?, color?, variant?} props, @see JRCButtonDropdownProps
35
- * @returns JSX.Element
36
- */
37
- export declare const JRCButtonDropdown: ({ iconName, variant, ...props }: JRCButtonDropdownProps) => JSX.Element;
1
+ import type { JRCButtonDropdownProps } from './JRCButtonDropdown.types';
2
+ export declare const JRCButtonDropdown: (props: JRCButtonDropdownProps) => JSX.Element;
@@ -1,8 +1,5 @@
1
- /// <reference types="react" />
2
- import { Meta } from '@storybook/react';
1
+ import { Meta, Story } from '@storybook/react';
2
+ import type { JRCButtonDropdownProps } from './JRCButtonDropdown.types';
3
3
  declare const _default: Meta<import("@storybook/react").Args>;
4
4
  export default _default;
5
- export declare const simple: () => JSX.Element;
6
- export declare const simpleWithAction: () => JSX.Element;
7
- export declare const AllButtonDropdown: () => JSX.Element;
8
- export declare const AllWithAction: () => JSX.Element;
5
+ export declare const ButtonDropdown: Story<JRCButtonDropdownProps>;
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { ButtonProps, MenuWithTitleProps } from './JRCButtonDropdown.types';
3
+ export declare const MarginLessJRCButton: import("styled-components").StyledComponent<React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>> & import("../../types/dataAttributes").DataCy & {
4
+ color?: "primary" | "secondary" | "valid" | "danger" | undefined;
5
+ loader?: boolean | undefined;
6
+ autofocus?: boolean | undefined;
7
+ value?: string | undefined;
8
+ icon?: string | undefined;
9
+ iconRight?: boolean | undefined;
10
+ variant?: "contained" | "outlined" | undefined;
11
+ float?: "left" | "right" | undefined;
12
+ minWidth?: string | undefined;
13
+ } & React.RefAttributes<HTMLButtonElement>>, any, ButtonProps, never>;
14
+ export declare const MenuWithoutTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
15
+ export declare const MenuWithTitle: ({ direction, label, themeButton, children }: MenuWithTitleProps) => JSX.Element;
16
+ export declare const DropdownOption: import("styled-components").StyledComponent<"button", any, {}, never>;
@@ -0,0 +1,37 @@
1
+ import { JRCButtonProps } from '../JRCButton/JRCButton';
2
+ import React from 'react';
3
+ import { JRCIconProps } from '../JRCIcon/JRCIcon';
4
+ import { ButtonType } from '../JRCButton/JRCButtonConfig';
5
+ export declare type JRCButtonDropdownOptionProps = {
6
+ icon?: Pick<JRCIconProps, 'name' | 'color' | 'variant'>;
7
+ label: string;
8
+ onClick?: () => void;
9
+ href?: string;
10
+ target?: '_blank';
11
+ };
12
+ export declare type JRCButtonDropdownProps = {
13
+ color?: JRCButtonProps['color'];
14
+ icon?: string;
15
+ iconOpen?: string;
16
+ label: string;
17
+ small?: boolean;
18
+ smallOpenDirection?: 'right' | 'left';
19
+ onClick?: (event?: React.MouseEvent) => void;
20
+ variant?: JRCButtonProps['variant'];
21
+ options: Array<JRCButtonDropdownOptionProps>;
22
+ };
23
+ export declare type ButtonProps = {
24
+ borderLeft?: boolean;
25
+ borderRight?: boolean;
26
+ themeButton: ButtonType;
27
+ open?: boolean;
28
+ darker?: boolean;
29
+ };
30
+ export declare type OpenDirection = {
31
+ direction: JRCButtonDropdownProps['smallOpenDirection'];
32
+ };
33
+ export declare type MenuWithTitleProps = OpenDirection & {
34
+ label: string;
35
+ themeButton: ButtonProps['themeButton'];
36
+ children: React.ReactNode;
37
+ };
@@ -0,0 +1,13 @@
1
+ declare type FlexBoxProps = {
2
+ direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
3
+ inline?: boolean;
4
+ flex?: boolean;
5
+ gap?: number;
6
+ x?: 'flex-start' | 'center' | 'flex-end';
7
+ y?: 'flex-start' | 'center' | 'flex-end';
8
+ };
9
+ export declare const JRCFlexBox: import("styled-components").StyledComponent<"div", any, FlexBoxProps, never>;
10
+ export declare type JRCFlexBoxProps = FlexBoxProps & {
11
+ as?: string;
12
+ };
13
+ export {};
@@ -36,7 +36,8 @@ export interface JRCModalProps {
36
36
  showIconClose?: boolean;
37
37
  enableClickAwayCloseModal?: boolean;
38
38
  isFull?: boolean;
39
- headerButtons?: ReactNode;
39
+ isFullHeight?: boolean;
40
+ modalOptions?: ReactNode;
40
41
  portalId?: string;
41
42
  inPlace?: boolean;
42
43
  className?: string;
@@ -1,7 +1,14 @@
1
- export declare const JRCModalBox: import("styled-components").StyledComponent<"div", any, {}, never>;
1
+ export declare const JRCModalBox: import("styled-components").StyledComponent<"div", any, {
2
+ isFullHeight?: boolean | undefined;
3
+ }, never>;
2
4
  export declare const JRCModalContainerFull: import("styled-components").StyledComponent<"div", any, {}, never>;
3
- export declare const JRCModalContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const JRCModalContainer: import("styled-components").StyledComponent<"div", any, {
6
+ isFullHeight?: boolean | undefined;
7
+ }, never>;
8
+ export declare const JRCModalTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
9
+ export declare const JRCModalOptions: import("styled-components").StyledComponent<"div", any, {}, never>;
4
10
  export declare const JRCModalContent: import("styled-components").StyledComponent<"div", any, {}, never>;
11
+ export declare const JRCModalContentFull: import("styled-components").StyledComponent<"div", any, {}, never>;
5
12
  export declare const JRCModalContentScrollbox: import("styled-components").StyledComponent<"div", any, {}, never>;
6
13
  export declare const JRCModalHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
7
14
  export declare const JRCModalFooter: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -31,7 +31,7 @@ export declare const OpenCloseButton: import("styled-components").StyledComponen
31
31
  suppressHydrationWarning?: boolean | undefined;
32
32
  accessKey?: string | undefined;
33
33
  className?: string | undefined;
34
- contentEditable?: (boolean | "true" | "false") | "inherit" | undefined;
34
+ contentEditable?: "inherit" | (boolean | "true" | "false") | undefined;
35
35
  contextMenu?: string | undefined;
36
36
  dir?: string | undefined;
37
37
  draggable?: (boolean | "true" | "false") | undefined;
@@ -50,6 +50,7 @@ export { JRCDraggingPlaceholder } from './components/Common/JRCDraggingPlacehold
50
50
  export { JRCDropDown } from './components/JRCDropDown/JRCDropDown';
51
51
  export { JRCEllipsis } from './components/JRCEllipsis/JRCEllipsis';
52
52
  export { JRCFileOpen } from './components/JRCFileOpen/JRCFileOpen';
53
+ export { JRCFlexBox } from './components/JRCFlex/JRCFlexBox';
53
54
  export { JRCFolders } from './components/JRCFolders/JRCFolders';
54
55
  export { JRCFormCheckbox } from './components/Form/Input/JRCFormCheckbox/JRCFormCheckbox';
55
56
  export { JRCFormColorField } from './components/Form/Input/JRCFormColor/JRCFormColor';
@@ -25,6 +25,8 @@ export declare type Shades = 'primaryL15' | 'primaryL80' | 'primaryL90' | 'prima
25
25
  declare type ThemeConfigShadeType = {
26
26
  [color in Shades]: string;
27
27
  };
28
+ export declare const NATIVE_COLORS: readonly ["currentColor", "inherit", "transparent"];
29
+ export declare type NativeColor = typeof NATIVE_COLORS[number];
28
30
  export declare type FontWeight = {
29
31
  light: number;
30
32
  normal: number;
@@ -47,5 +49,6 @@ export declare type ThemeType = {
47
49
  };
48
50
  color: ThemeConfigColorType & ThemeConfigShadeType;
49
51
  };
52
+ export declare function getColor(theme: ThemeType, color: string): string;
50
53
  declare const Theme: ITheme;
51
54
  export default Theme;
@@ -9,7 +9,7 @@ export { JRCAutocompleteProps } from './components/Form/Input/JRCSelect/JRCInput
9
9
  export { JRCAutocompleteTaxonomyProps } from './components/Form/Input/JRCFormAutocomplete/JRCFormAutocompleteTaxonomy';
10
10
  export { JRCAvatarProps } from './components/JRCAvatar/JRCAvatar';
11
11
  export { JRCButtonDownloadProps } from './components/JRCButtonDownload/JRCButtonDownload';
12
- export { JRCButtonDropdownProps } from './components/JRCButtonDropdown/JRCButtonDropdown';
12
+ export { JRCButtonDropdownProps, JRCButtonDropdownOptionProps, } from './components/JRCButtonDropdown/JRCButtonDropdown.types';
13
13
  export { JRCButtonFileProps } from './components/JRCButtonFile/JRCButtonFile';
14
14
  export { JRCButtonProps } from './components/JRCButton/JRCButton';
15
15
  export { JRCCardProps } from './components/JRCCard/JRCCard';
@@ -21,6 +21,7 @@ export { JRCDateProps } from './components/JRCDate/JRCDate';
21
21
  export { JRCDropDownProps } from './components/JRCDropDown/JRCDropDown';
22
22
  export { JRCEllipsisProps } from './components/JRCEllipsis/JRCEllipsis';
23
23
  export { JRCFileOpenProps } from './components/JRCFileOpen/JRCFileOpen';
24
+ export { JRCFlexBoxProps } from './components/JRCFlex/JRCFlexBox';
24
25
  export { JRCFormCheckboxProps } from './components/Form/Input/JRCFormCheckbox/JRCFormCheckbox.types';
25
26
  export { JRCFormDateProps } from './components/Form/Input/JRCFormDateTime/JRCFormDateTime';
26
27
  export { JRCFormInputFileProps, JRCFormInputFileFieldProps } from './components/Form/Input/JRCFormFile/JRCFormFile';
@@ -1,6 +1,8 @@
1
+ import * as array from './utils.array';
1
2
  import * as date from './utils.date';
2
3
  import * as document from './utils.document';
4
+ import * as misc from './utils.misc';
3
5
  import * as object from './utils.object';
4
6
  import * as regexp from './utils.regexp';
5
7
  import * as string from './utils.string';
6
- export { date, document, object, regexp, string };
8
+ export { array, date, document, misc, object, regexp, string };
@@ -3,4 +3,7 @@ declare type Uri = {
3
3
  };
4
4
  export declare const inArray: <T extends Uri>(arr: T[], value: T) => boolean;
5
5
  export declare const updateArray: <T extends Uri>(arr: T[], value: T) => T[];
6
+ export declare const arrayUniqueByUri: <T extends {
7
+ uri: string;
8
+ }>(arr1: T[], arr2: T[]) => T[];
6
9
  export {};
@@ -1 +1,2 @@
1
1
  export declare function uniqid(size?: number, prefix?: string): string;
2
+ export declare function downloadFile(idFile: number): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jamespot-react-components",
3
- "version": "1.0.78",
3
+ "version": "1.0.86",
4
4
  "description": "",
5
5
  "main": "./build/jamespot-react-components.js",
6
6
  "types": "./build/src/index.d.ts",
@@ -98,7 +98,7 @@
98
98
  "@types/redux-logger": "^3.0.8",
99
99
  "chroma-js": "^2.1.1",
100
100
  "classnames": "^2.3.1",
101
- "jamespot-user-api": "^1.0.47",
101
+ "jamespot-user-api": "^1.0.50",
102
102
  "moment": "^2.29.1",
103
103
  "react": "^17.x",
104
104
  "react-dnd": "^14.0.4",