@lumx/react 3.0.7 → 3.0.8

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.
package/package.json CHANGED
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "dependencies": {
9
9
  "@juggle/resize-observer": "^3.2.0",
10
- "@lumx/core": "^3.0.7",
11
- "@lumx/icons": "^3.0.7",
10
+ "@lumx/core": "^3.0.8",
11
+ "@lumx/icons": "^3.0.8",
12
12
  "@popperjs/core": "^2.5.4",
13
13
  "body-scroll-lock": "^3.1.5",
14
14
  "classnames": "^2.2.6",
@@ -107,13 +107,11 @@
107
107
  "scripts": {
108
108
  "build": "rollup -c",
109
109
  "prepare": "install-peers || exit 0",
110
- "prepublishOnly": "yarn build",
111
110
  "test": "jest --config jest/index.js --coverage --notify --passWithNoTests --detectOpenHandles --runInBand",
112
111
  "storybook": "yarn start:storybook",
113
112
  "start:storybook": "cd storybook && ./start",
114
113
  "build:storybook": "cd storybook && ./build"
115
114
  },
116
115
  "sideEffects": false,
117
- "version": "3.0.7",
118
- "gitHead": "4fec43ef3290a9f250767d3bdecf60cfcf02ee75"
116
+ "version": "3.0.8"
119
117
  }
@@ -1,4 +1,4 @@
1
- import { Color, ColorPalette } from '@lumx/react';
1
+ import { ColorPalette } from '@lumx/react';
2
2
  import { Comp, GenericProps } from '@lumx/react/utils/type';
3
3
  import { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';
4
4
  import classNames from 'classnames';
@@ -11,7 +11,7 @@ export interface BadgeProps extends GenericProps {
11
11
  /** Badge content. */
12
12
  children?: ReactNode;
13
13
  /** Color variant. */
14
- color?: Color;
14
+ color?: ColorPalette;
15
15
  }
16
16
 
17
17
  /**
@@ -4,7 +4,7 @@ import isEmpty from 'lodash/isEmpty';
4
4
 
5
5
  import classNames from 'classnames';
6
6
 
7
- import { Color, ColorPalette, Emphasis, Size, Theme } from '@lumx/react';
7
+ import { ColorPalette, Emphasis, Size, Theme } from '@lumx/react';
8
8
  import { CSS_PREFIX } from '@lumx/react/constants';
9
9
  import { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';
10
10
  import { handleBasicClasses } from '@lumx/react/utils/className';
@@ -22,7 +22,7 @@ export interface BaseButtonProps
22
22
  Pick<AriaAttributes, 'aria-expanded' | 'aria-haspopup' | 'aria-pressed' | 'aria-label'>,
23
23
  HasTheme {
24
24
  /** Color variant. */
25
- color?: Color;
25
+ color?: ColorPalette;
26
26
  /** Emphasis variant. */
27
27
  emphasis?: Emphasis;
28
28
  /** Whether or not the button has a background color in low emphasis. */
@@ -1,4 +1,4 @@
1
- import { Color, ColorPalette, Size, Theme } from '@lumx/react';
1
+ import { ColorPalette, Size, Theme } from '@lumx/react';
2
2
  import { useStopPropagation } from '@lumx/react/hooks/useStopPropagation';
3
3
 
4
4
  import { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';
@@ -24,7 +24,7 @@ export interface ChipProps extends GenericProps, HasTheme {
24
24
  /** A component to be rendered before the content. */
25
25
  before?: ReactNode;
26
26
  /** Color variant. */
27
- color?: Color;
27
+ color?: ColorPalette;
28
28
  /** Whether the component is clickable or not. */
29
29
  isClickable?: boolean;
30
30
  /** Whether the component is disabled or not. */
@@ -0,0 +1,56 @@
1
+ import React from 'react';
2
+
3
+ import { GridColumn } from '@lumx/react/components/grid-column/GridColumn';
4
+
5
+ import range from 'lodash/range';
6
+ import { Size } from '@lumx/react';
7
+
8
+ const genericBlockStyle = { border: '1px solid red', padding: '2px 8px' };
9
+
10
+ export default {
11
+ title: 'LumX components/grid-column/GridColumn',
12
+ argTypes: {
13
+ nbItems: {
14
+ control: 'number',
15
+ defaultValue: 6,
16
+ min: 0,
17
+ },
18
+ gap: {
19
+ control: 'select',
20
+ options: [Size.tiny, Size.regular, Size.big, Size.huge],
21
+ defaultValue: Size.regular,
22
+ },
23
+ itemMinWidth: {
24
+ control: 'number',
25
+ defaultValue: 200,
26
+ },
27
+ maxColumns: {
28
+ control: 'number',
29
+ defaultValue: 4,
30
+ },
31
+ },
32
+ args: {
33
+ style: {
34
+ overflow: 'hidden',
35
+ resize: 'horizontal',
36
+ },
37
+ },
38
+ };
39
+
40
+ const getItems = (nb) =>
41
+ range(nb).map((key) => (
42
+ // eslint-disable-next-line react/jsx-key
43
+ <div style={genericBlockStyle}>
44
+ <h2>Column {key}</h2>
45
+ <p>
46
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
47
+ dolore magna aliqua. Nulla pharetra diam sit amet nisl suscipit adipiscing bibendum. Iaculis at erat
48
+ pellentesque adipiscing commodo elit at imperdiet dui. Ultricies integer quis auctor elit sed vulputate.
49
+ Mattis enim ut tellus elementum. Ipsum suspendisse ultrices gravida dictum fusce ut..
50
+ </p>
51
+ </div>
52
+ ));
53
+
54
+ const Template = ({ nbItems = 5, ...props }) => <GridColumn {...props}>{getItems(nbItems)}</GridColumn>;
55
+
56
+ export const Default = Template.bind({});
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+
3
+ import { commonTestsSuiteRTL } from '@lumx/react/testing/utils';
4
+ import { render } from '@testing-library/react';
5
+ import { getByClassName } from '@lumx/react/testing/utils/queries';
6
+
7
+ import { GridColumn } from './index';
8
+
9
+ const CLASSNAME = GridColumn.className;
10
+
11
+ /**
12
+ * Mounts the component and returns common DOM elements / data needed in multiple tests further down.
13
+ */
14
+ const setup = (propsOverride = {}) => {
15
+ const props = { ...propsOverride };
16
+ const { container } = render(
17
+ <GridColumn {...props}>
18
+ <p>Content 1</p>
19
+ <p>Content 2</p>
20
+ <p>Content 3</p>
21
+ </GridColumn>,
22
+ );
23
+
24
+ const gridColumn = getByClassName(container, CLASSNAME);
25
+
26
+ return { props, container, gridColumn };
27
+ };
28
+
29
+ describe(`<${GridColumn.displayName}>`, () => {
30
+ it('should create default component', () => {
31
+ const { gridColumn } = setup();
32
+
33
+ expect(gridColumn).toBeInTheDocument();
34
+ expect(gridColumn.children).toHaveLength(3);
35
+ });
36
+
37
+ describe('Props', () => {
38
+ it('should override CSS props', () => {
39
+ const { gridColumn } = setup({
40
+ gap: 'regular',
41
+ maxColumns: 10,
42
+ itemMinWidth: 300,
43
+ });
44
+
45
+ expect(gridColumn).toHaveAttribute(
46
+ 'style',
47
+ '--lumx-grid-column-item-min-width: 300px; --lumx-grid-column-columns: 10; --lumx-grid-column-gap: var(--lumx-spacing-unit-regular);',
48
+ );
49
+ });
50
+ });
51
+
52
+ // Common tests suite.
53
+ commonTestsSuiteRTL(setup, {
54
+ baseClassName: CLASSNAME,
55
+ forwardAttributes: 'gridColumn',
56
+ forwardClassName: 'gridColumn',
57
+ });
58
+ });
@@ -0,0 +1,90 @@
1
+ import React, { forwardRef, ReactElement, ReactNode } from 'react';
2
+
3
+ import isInteger from 'lodash/isInteger';
4
+
5
+ import classNames from 'classnames';
6
+
7
+ import { Comp, GenericProps } from '@lumx/react/utils/type';
8
+ import { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';
9
+ import { Size } from '@lumx/react';
10
+
11
+ export type GridColumnGapSize = Extract<Size, 'tiny' | 'regular' | 'big' | 'huge'>;
12
+
13
+ /**
14
+ * Defines the props of the component.
15
+ */
16
+ export interface GridColumnProps extends GenericProps {
17
+ /** Customize the root element. */
18
+ as?: React.ElementType;
19
+ /** Children elements. */
20
+ children?: ReactNode;
21
+ /** Space between columns and rows. */
22
+ gap?: GridColumnGapSize;
23
+ /** Ideal number of columns. */
24
+ maxColumns?: number;
25
+ /** Minimum width for each item, reduce the number of column if there is not enough space. */
26
+ itemMinWidth?: number;
27
+ }
28
+
29
+ /**
30
+ * Component display name.
31
+ */
32
+ const COMPONENT_NAME = 'GridColumn';
33
+
34
+ /**
35
+ * Component default class name and class prefix.
36
+ */
37
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
38
+
39
+ /**
40
+ * Component default props.
41
+ */
42
+ const DEFAULT_PROPS: Partial<GridColumnProps> = {};
43
+
44
+ /**
45
+ * The GridColumn is a layout component that can display children in a grid
46
+ * with custom display properties. It also comes with a responsive design,
47
+ * with a number of column that reduce when there is not enough space for each item.
48
+ *
49
+ * @param props Component props.
50
+ * @param ref Component ref.
51
+ * @return React element.
52
+ */
53
+ export const GridColumn: Comp<GridColumnProps> = forwardRef(
54
+ (props, ref): ReactElement => {
55
+ const {
56
+ as: Component = 'div',
57
+ gap,
58
+ maxColumns,
59
+ itemMinWidth,
60
+ children,
61
+ className,
62
+ style = {},
63
+ ...forwardedProps
64
+ } = props;
65
+
66
+ return (
67
+ <Component
68
+ {...forwardedProps}
69
+ ref={ref as React.Ref<any>}
70
+ className={classNames(
71
+ className,
72
+ handleBasicClasses({
73
+ prefix: CLASSNAME,
74
+ }),
75
+ )}
76
+ style={{
77
+ ...style,
78
+ ['--lumx-grid-column-item-min-width' as any]: isInteger(itemMinWidth) && `${itemMinWidth}px`,
79
+ ['--lumx-grid-column-columns' as any]: maxColumns,
80
+ ['--lumx-grid-column-gap' as any]: gap && `var(--lumx-spacing-unit-${gap})`,
81
+ }}
82
+ >
83
+ {children}
84
+ </Component>
85
+ );
86
+ },
87
+ );
88
+ GridColumn.displayName = COMPONENT_NAME;
89
+ GridColumn.className = CLASSNAME;
90
+ GridColumn.defaultProps = DEFAULT_PROPS;
@@ -0,0 +1 @@
1
+ export * from './GridColumn';
@@ -2,7 +2,7 @@ import React, { forwardRef } from 'react';
2
2
 
3
3
  import classNames from 'classnames';
4
4
 
5
- import { Color, ColorPalette, ColorVariant, Size, Theme } from '@lumx/react';
5
+ import { ColorPalette, ColorVariant, Size, Theme } from '@lumx/react';
6
6
  import { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';
7
7
  import { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';
8
8
  import { mdiAlertCircle } from '@lumx/icons';
@@ -14,7 +14,7 @@ export type IconSizes = Extract<Size, 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'x
14
14
  */
15
15
  export interface IconProps extends GenericProps, HasTheme {
16
16
  /** Color variant. */
17
- color?: Color;
17
+ color?: ColorPalette;
18
18
  /** Lightened or darkened variant of the selected icon color. */
19
19
  colorVariant?: ColorVariant;
20
20
  /** Whether the icon has a shape. */
@@ -4,7 +4,7 @@ import isEmpty from 'lodash/isEmpty';
4
4
 
5
5
  import classNames from 'classnames';
6
6
 
7
- import { Color, ColorVariant, Icon, Size, Typography } from '@lumx/react';
7
+ import { ColorPalette, ColorVariant, Icon, Size, Typography } from '@lumx/react';
8
8
  import { Comp, GenericProps } from '@lumx/react/utils/type';
9
9
  import { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';
10
10
  import { renderLink } from '@lumx/react/utils/renderLink';
@@ -16,7 +16,7 @@ type HTMLAnchorProps = React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAn
16
16
  */
17
17
  export interface LinkProps extends GenericProps {
18
18
  /** Color variant. */
19
- color?: Color;
19
+ color?: ColorPalette;
20
20
  /** Lightened or darkened variant of the selected icon color. */
21
21
  colorVariant?: ColorVariant;
22
22
  /** Link href. */
@@ -6,6 +6,8 @@ import { Theme } from '@lumx/react';
6
6
 
7
7
  import { Comp, GenericProps, HasTheme, ValueOf } from '@lumx/react/utils/type';
8
8
  import { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';
9
+ import { ProgressLinear } from './ProgressLinear';
10
+ import { ProgressCircular } from './ProgressCircular';
9
11
 
10
12
  /**
11
13
  * Progress variants.
@@ -38,9 +40,11 @@ const DEFAULT_PROPS: Partial<ProgressProps> = {
38
40
  theme: Theme.light,
39
41
  variant: ProgressVariant.circular,
40
42
  };
43
+
41
44
  /**
42
45
  * Progress component.
43
46
  *
47
+ * @deprecated use `ProgressLinear` and `ProgressCircular` instead.
44
48
  * @param props Component props.
45
49
  * @param ref Component ref.
46
50
  * @return React element.
@@ -54,31 +58,8 @@ export const Progress: Comp<ProgressProps, HTMLDivElement> = forwardRef((props,
54
58
  {...forwardedProps}
55
59
  className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme, variant }))}
56
60
  >
57
- <div className={classNames(`${CLASSNAME}-${variant}`)}>
58
- {variant === ProgressVariant.circular && (
59
- <>
60
- <div className="lumx-progress-circular__double-bounce1" />
61
- <div className="lumx-progress-circular__double-bounce2" />
62
-
63
- <svg className="lumx-progress-circular__svg" viewBox="25 25 50 50">
64
- <circle
65
- className="lumx-progress-circular__path"
66
- cx="50"
67
- cy="50"
68
- r="20"
69
- fill="none"
70
- strokeWidth="5"
71
- />
72
- </svg>
73
- </>
74
- )}
75
- {variant === ProgressVariant.linear && (
76
- <>
77
- <div className="lumx-progress-linear__line1" />
78
- <div className="lumx-progress-linear__line2" />
79
- </>
80
- )}
81
- </div>
61
+ {variant === ProgressVariant.circular && <ProgressCircular theme={theme} />}
62
+ {variant === ProgressVariant.linear && <ProgressLinear theme={theme} />}
82
63
  </div>
83
64
  );
84
65
  });
@@ -0,0 +1,18 @@
1
+ import { ProgressCircular } from '@lumx/react';
2
+ import React, { Fragment } from 'react';
3
+
4
+ export default {
5
+ title: 'LumX components/progress/ProgressCircular',
6
+ };
7
+
8
+ const SIZES = ['xxs', 'xs', 's', 'm', undefined] as const;
9
+
10
+ export const Default = ({ theme }: any) => <ProgressCircular theme={theme} />;
11
+
12
+ export const Sizes = ({ theme }: any) =>
13
+ SIZES.map((size) => (
14
+ <Fragment key={String(size)}>
15
+ <span>{String(size)}</span>
16
+ <ProgressCircular theme={theme} size={size} />
17
+ </Fragment>
18
+ ));
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+
3
+ import { getByClassName } from '@lumx/react/testing/utils/queries';
4
+ import { commonTestsSuiteRTL } from '@lumx/react/testing/utils';
5
+ import { render } from '@testing-library/react';
6
+ import { Theme } from '@lumx/react';
7
+
8
+ import { ProgressCircular, ProgressCircularProps } from './ProgressCircular';
9
+
10
+ const CLASSNAME = ProgressCircular.className as string;
11
+
12
+ /**
13
+ * Mounts the component and returns common DOM elements / data needed in multiple tests further down.
14
+ */
15
+ const setup = (props: Partial<ProgressCircularProps> = {}) => {
16
+ const { container } = render(<ProgressCircular {...(props as any)} />);
17
+ const element = getByClassName(container, CLASSNAME);
18
+ return { container, element, props };
19
+ };
20
+
21
+ describe(`<${ProgressCircular.displayName}>`, () => {
22
+ it('should render default', () => {
23
+ const { element } = setup();
24
+ expect(element).toBeInTheDocument();
25
+ expect(element).toHaveClass(CLASSNAME);
26
+ expect(element).toHaveClass(`${CLASSNAME}--theme-light`);
27
+ expect(element).toHaveClass(`${CLASSNAME}--size-m`);
28
+ });
29
+
30
+ it('should render dark theme', () => {
31
+ const { element } = setup({ theme: Theme.dark });
32
+ expect(element).toBeInTheDocument();
33
+ expect(element).toHaveClass(CLASSNAME);
34
+ expect(element).toHaveClass(`${CLASSNAME}--theme-dark`);
35
+ });
36
+
37
+ it('should render size xs', () => {
38
+ const { element } = setup({ size: 'xs' });
39
+ expect(element).toBeInTheDocument();
40
+ expect(element).toHaveClass(CLASSNAME);
41
+ expect(element).toHaveClass(`${CLASSNAME}--size-xs`);
42
+ });
43
+
44
+ commonTestsSuiteRTL(setup, {
45
+ baseClassName: CLASSNAME,
46
+ forwardClassName: 'element',
47
+ forwardAttributes: 'element',
48
+ });
49
+ });
@@ -0,0 +1,68 @@
1
+ import React, { forwardRef } from 'react';
2
+
3
+ import classNames from 'classnames';
4
+
5
+ import { Theme, Size } from '@lumx/react';
6
+
7
+ import { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';
8
+ import { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';
9
+
10
+ /**
11
+ * Progress sizes.
12
+ */
13
+ export type ProgressCircularSize = Extract<Size, 'xxs' | 'xs' | 's' | 'm'>;
14
+
15
+ /**
16
+ * Defines the props of the component.
17
+ */
18
+ export interface ProgressCircularProps extends GenericProps, HasTheme {
19
+ /** Progress circular size. */
20
+ size?: ProgressCircularSize;
21
+ }
22
+
23
+ /**
24
+ * Component display name.
25
+ */
26
+ const COMPONENT_NAME = 'ProgressCircular';
27
+
28
+ /**
29
+ * Component default class name and class prefix.
30
+ */
31
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
32
+
33
+ /**
34
+ * Component default props.
35
+ */
36
+ const DEFAULT_PROPS: Partial<ProgressCircularProps> = {
37
+ theme: Theme.light,
38
+ size: Size.m,
39
+ };
40
+
41
+ /**
42
+ * ProgressCircularProps component.
43
+ *
44
+ * @param props Component props.
45
+ * @param ref Component ref.
46
+ * @return React element.
47
+ */
48
+ export const ProgressCircular: Comp<ProgressCircularProps, HTMLDivElement> = forwardRef((props, ref) => {
49
+ const { className, theme, size, ...forwardedProps } = props;
50
+
51
+ return (
52
+ <div
53
+ ref={ref}
54
+ {...forwardedProps}
55
+ className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme, size }))}
56
+ >
57
+ <div className="lumx-progress-circular__double-bounce1" />
58
+ <div className="lumx-progress-circular__double-bounce2" />
59
+
60
+ <svg className="lumx-progress-circular__svg" viewBox="25 25 50 50">
61
+ <circle className="lumx-progress-circular__path" cx="50" cy="50" r="20" fill="none" strokeWidth="5" />
62
+ </svg>
63
+ </div>
64
+ );
65
+ });
66
+ ProgressCircular.displayName = COMPONENT_NAME;
67
+ ProgressCircular.className = CLASSNAME;
68
+ ProgressCircular.defaultProps = DEFAULT_PROPS;
@@ -0,0 +1,8 @@
1
+ import { ProgressLinear } from '@lumx/react';
2
+ import React from 'react';
3
+
4
+ export default {
5
+ title: 'LumX components/progress/ProgressLinear',
6
+ };
7
+
8
+ export const Default = ({ theme }: any) => <ProgressLinear theme={theme} />;
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+
3
+ import { getByClassName } from '@lumx/react/testing/utils/queries';
4
+ import { commonTestsSuiteRTL } from '@lumx/react/testing/utils';
5
+ import { render } from '@testing-library/react';
6
+ import { Theme } from '@lumx/react';
7
+
8
+ import { ProgressLinear, ProgressLinearProps } from './ProgressLinear';
9
+
10
+ const CLASSNAME = ProgressLinear.className as string;
11
+
12
+ /**
13
+ * Mounts the component and returns common DOM elements / data needed in multiple tests further down.
14
+ */
15
+ const setup = (props: Partial<ProgressLinearProps> = {}) => {
16
+ const { container } = render(<ProgressLinear {...(props as any)} />);
17
+ const element = getByClassName(container, CLASSNAME);
18
+ return { container, element, props };
19
+ };
20
+
21
+ describe(`<${ProgressLinear.displayName}>`, () => {
22
+ it('should render default', () => {
23
+ const { element } = setup();
24
+ expect(element).toBeInTheDocument();
25
+ expect(element).toHaveClass(CLASSNAME);
26
+ expect(element).toHaveClass(`${CLASSNAME}--theme-light`);
27
+ });
28
+
29
+ it('should render dark theme', () => {
30
+ const { element } = setup({ theme: Theme.dark });
31
+ expect(element).toBeInTheDocument();
32
+ expect(element).toHaveClass(CLASSNAME);
33
+ expect(element).toHaveClass(`${CLASSNAME}--theme-dark`);
34
+ });
35
+
36
+ commonTestsSuiteRTL(setup, { baseClassName: CLASSNAME, forwardClassName: 'element', forwardAttributes: 'element' });
37
+ });
@@ -0,0 +1,52 @@
1
+ import React, { forwardRef } from 'react';
2
+
3
+ import classNames from 'classnames';
4
+
5
+ import { Theme } from '@lumx/react';
6
+
7
+ import { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';
8
+ import { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';
9
+
10
+ export interface ProgressLinearProps extends GenericProps, HasTheme {}
11
+
12
+ /**
13
+ * Component display name.
14
+ */
15
+ const COMPONENT_NAME = 'ProgressLinear';
16
+
17
+ /**
18
+ * Component default class name and class prefix.
19
+ */
20
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
21
+
22
+ /**
23
+ * Component default props.
24
+ */
25
+ const DEFAULT_PROPS: Partial<ProgressLinearProps> = {
26
+ theme: Theme.light,
27
+ };
28
+
29
+ /**
30
+ * ProgressLinear component.
31
+ *
32
+ * @param props Component props.
33
+ * @param ref Component ref.
34
+ * @return React element.
35
+ */
36
+ export const ProgressLinear: Comp<ProgressLinearProps, HTMLDivElement> = forwardRef((props, ref) => {
37
+ const { className, theme, ...forwardedProps } = props;
38
+
39
+ return (
40
+ <div
41
+ ref={ref}
42
+ {...forwardedProps}
43
+ className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme }))}
44
+ >
45
+ <div className="lumx-progress-linear__line1" />
46
+ <div className="lumx-progress-linear__line2" />
47
+ </div>
48
+ );
49
+ });
50
+ ProgressLinear.displayName = COMPONENT_NAME;
51
+ ProgressLinear.className = CLASSNAME;
52
+ ProgressLinear.defaultProps = DEFAULT_PROPS;
@@ -1 +1,3 @@
1
1
  export * from './Progress';
2
+ export * from './ProgressCircular';
3
+ export * from './ProgressLinear';
package/src/index.ts CHANGED
@@ -22,6 +22,7 @@ export * from './components/flex-box';
22
22
  export * from './components/generic-block';
23
23
  export * from './components/heading';
24
24
  export * from './components/grid';
25
+ export * from './components/grid-column';
25
26
  export * from './components/icon';
26
27
  export * from './components/image-block';
27
28
  export * from './components/inline-list';
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
- import { mount, shallow } from 'enzyme';
3
- import 'jest-enzyme';
4
- import { commonTestsSuite, itShouldRenderStories } from '@lumx/react/testing/utils';
5
-
6
- import { Progress, ProgressProps } from './Progress';
7
- import * as stories from '../../stories/generated/Progress/Demos.stories';
8
-
9
- const CLASSNAME = Progress.className as string;
10
-
11
- /**
12
- * Mounts the component and returns common DOM elements / data needed in multiple tests further down.
13
- */
14
- const setup = (props: Partial<ProgressProps> = {}, shallowRendering = true) => {
15
- const renderer: any = shallowRendering ? shallow : mount;
16
- const wrapper: any = renderer(<Progress {...(props as any)} />);
17
- return { props, wrapper };
18
- };
19
-
20
- describe(`<${Progress.displayName}>`, () => {
21
- // 1. Test render via snapshot.
22
- describe('Snapshots and structure', () => {
23
- itShouldRenderStories(stories, Progress);
24
- });
25
-
26
- // Common tests suite.
27
- commonTestsSuite(setup, { className: 'wrapper', prop: 'wrapper' }, { className: CLASSNAME });
28
- });