@jetbrains/ring-ui 7.0.105 → 7.0.106

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.
@@ -1,6 +1,6 @@
1
- import { Component, type ReactNode } from 'react';
2
- export interface ColProps {
3
- children?: ReactNode;
1
+ import { Component, type HTMLAttributes } from 'react';
2
+ export interface ColProps extends HTMLAttributes<HTMLDivElement> {
3
+ 'data-test'?: string | null | undefined;
4
4
  xs?: boolean | number | null | undefined;
5
5
  sm?: boolean | number | null | undefined;
6
6
  md?: boolean | number | null | undefined;
@@ -10,7 +10,6 @@ export interface ColProps {
10
10
  mdOffset?: number | null | undefined;
11
11
  lgOffset?: number | null | undefined;
12
12
  reverse?: boolean | null | undefined;
13
- className?: string | null | undefined;
14
13
  }
15
14
  export default class Col extends Component<ColProps> {
16
15
  render(): import("react").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { Component } from 'react';
2
2
  import classNames from 'classnames';
3
+ import dataTests from '../global/data-tests';
3
4
  import styles from './grid.css';
4
5
  const classMap = {
5
6
  xs: 'col-xs',
@@ -18,16 +19,16 @@ const classMap = {
18
19
  */
19
20
  function getClassNames(props) {
20
21
  return Object.entries(props)
21
- .filter(([key]) => classMap[key])
22
+ .filter(([key, value]) => classMap[key] && value != null)
22
23
  .map(([key, value]) => styles[Number.isInteger(value) ? `${classMap[key]}-${value}` : classMap[key]]);
23
24
  }
24
25
  export default class Col extends Component {
25
26
  render() {
26
- const { children, className, reverse, ...restProps } = this.props;
27
- const classes = classNames(styles.col, className, getClassNames(restProps), {
27
+ const { children, className, 'data-test': dataTest, reverse, xs, sm, md, lg, xsOffset, smOffset, mdOffset, lgOffset, ...restProps } = this.props;
28
+ const classes = classNames(styles.col, className, getClassNames({ xs, sm, md, lg, xsOffset, smOffset, mdOffset, lgOffset }), {
28
29
  [styles.reverse]: reverse,
29
30
  });
30
- return (<div className={classes} data-test='ring-grid-column'>
31
+ return (<div {...restProps} className={classes} data-test={dataTests('ring-grid-column', dataTest)}>
31
32
  {children}
32
33
  </div>);
33
34
  }
@@ -1,9 +1,12 @@
1
1
  import { Component, type HTMLAttributes } from 'react';
2
+ export interface GridProps extends HTMLAttributes<HTMLDivElement> {
3
+ 'data-test'?: string | null | undefined;
4
+ }
2
5
  /**
3
6
  * @name Grid
4
7
  * @deprecated Will be removed in Ring UI 8.0. Use flexbox or another layout library instead.
5
8
  */
6
- export declare class Grid extends Component<HTMLAttributes<HTMLDivElement>> {
9
+ export declare class Grid extends Component<GridProps> {
7
10
  render(): import("react").JSX.Element;
8
11
  }
9
12
  export { default as Row } from './row';
@@ -1,5 +1,6 @@
1
1
  import { Component } from 'react';
2
2
  import classNames from 'classnames';
3
+ import dataTests from '../global/data-tests';
3
4
  import styles from './grid.css';
4
5
  /**
5
6
  * @name Grid
@@ -7,9 +8,9 @@ import styles from './grid.css';
7
8
  */
8
9
  export class Grid extends Component {
9
10
  render() {
10
- const { children, className, ...restProps } = this.props;
11
+ const { children, className, 'data-test': dataTest, ...restProps } = this.props;
11
12
  const classes = classNames(styles['container-fluid'], className);
12
- return (<div data-test='ring-grid' {...restProps} className={classes}>
13
+ return (<div data-test={dataTests('ring-grid', dataTest)} {...restProps} className={classes}>
13
14
  {children}
14
15
  </div>);
15
16
  }
@@ -1,7 +1,7 @@
1
- import { Component, type ReactNode } from 'react';
1
+ import { Component, type HTMLAttributes } from 'react';
2
2
  type ModifierType = 'xs' | 'sm' | 'md' | 'lg';
3
- export interface RowProps {
4
- children?: ReactNode;
3
+ export interface RowProps extends HTMLAttributes<HTMLDivElement> {
4
+ 'data-test'?: string | null | undefined;
5
5
  reverse?: boolean | null | undefined;
6
6
  start?: ModifierType | null | undefined;
7
7
  center?: ModifierType | null | undefined;
@@ -14,7 +14,6 @@ export interface RowProps {
14
14
  between?: ModifierType | null | undefined;
15
15
  first?: ModifierType | null | undefined;
16
16
  last?: ModifierType | null | undefined;
17
- className?: string | null | undefined;
18
17
  }
19
18
  export default class Row extends Component<RowProps> {
20
19
  render(): import("react").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { Component } from 'react';
2
2
  import classNames from 'classnames';
3
+ import dataTests from '../global/data-tests';
3
4
  import styles from './grid.css';
4
5
  const modifierKeys = [
5
6
  'start',
@@ -29,11 +30,11 @@ function getModifierClassNames(props) {
29
30
  }
30
31
  export default class Row extends Component {
31
32
  render() {
32
- const { children, className, reverse, ...restProps } = this.props;
33
- const classes = classNames(className, styles.row, getModifierClassNames(restProps), {
33
+ const { children, className, 'data-test': dataTest, reverse, start, center, end, top, middle, baseline, bottom, around, between, first, last, ...restProps } = this.props;
34
+ const classes = classNames(className, styles.row, getModifierClassNames({ start, center, end, top, middle, baseline, bottom, around, between, first, last }), {
34
35
  [styles.reverse]: reverse,
35
36
  });
36
- return (<div className={classes} data-test='ring-grid-row'>
37
+ return (<div {...restProps} className={classes} data-test={dataTests('ring-grid-row', dataTest)}>
37
38
  {children}
38
39
  </div>);
39
40
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetbrains/ring-ui",
3
- "version": "7.0.105",
3
+ "version": "7.0.106",
4
4
  "description": "JetBrains UI library",
5
5
  "author": {
6
6
  "name": "JetBrains"