@toptal/picasso 17.3.3 → 17.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,7 +13,7 @@ export interface Props extends BaseProps {
13
13
  initialExpanded?: boolean;
14
14
  /** Define whether action link should be displayed or not */
15
15
  disableToggle?: boolean;
16
- /** Callback tiggered when show more/less is clicked */
16
+ /** Callback triggered when show more/less is clicked */
17
17
  onToggle?: () => void;
18
18
  }
19
19
  export declare const ShowMore: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLSpanElement>>;
@@ -9,7 +9,7 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React, { forwardRef, useState } from 'react';
12
+ import React, { forwardRef, useMemo, useState } from 'react';
13
13
  import cx from 'classnames';
14
14
  import { makeStyles } from '@material-ui/core/styles';
15
15
  import Truncate from 'react-truncate';
@@ -17,14 +17,16 @@ import ChevronRightIcon16 from '../Icon/ChevronRight16';
17
17
  import Typography from '../Typography';
18
18
  import styles from './styles';
19
19
  import Button from '../Button';
20
+ import { replaceLineBreaksWithTags } from './utils';
20
21
  const useStyles = makeStyles(styles, { name: 'PicassoShowMore' });
21
22
  export const ShowMore = forwardRef(function ShowMore(props, ref) {
22
23
  const { children, rows = 4, initialExpanded = false, disableToggle = false, moreText = 'Show more', lessText = 'Show less', onToggle = () => { }, className, style } = props, rest = __rest(props, ["children", "rows", "initialExpanded", "disableToggle", "moreText", "lessText", "onToggle", "className", "style"]);
23
24
  const classes = useStyles();
24
25
  const [shownMore, setShownMore] = useState(initialExpanded);
26
+ const text = useMemo(() => replaceLineBreaksWithTags(children), [children]);
25
27
  return (React.createElement(React.Fragment, null,
26
28
  React.createElement(Typography, Object.assign({}, rest, { ref: ref, size: 'medium', color: 'dark-grey', className: className, style: style }),
27
- React.createElement(Truncate, { lines: !shownMore && rows }, children)),
29
+ React.createElement(Truncate, { lines: !shownMore && rows }, text)),
28
30
  !disableToggle && (React.createElement(Button.Action, { onClick: () => {
29
31
  setShownMore(!shownMore);
30
32
  onToggle();
@@ -1 +1 @@
1
- {"version":3,"file":"ShowMore.js","sourceRoot":"","sources":["../../src/ShowMore/ShowMore.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAGrC,OAAO,kBAAkB,MAAM,wBAAwB,CAAA;AACvD,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,MAAM,MAAM,WAAW,CAAA;AAmB9B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAyB,SAAS,QAAQ,CAC1E,KAAK,EACL,GAAG;IAEH,MAAM,EACJ,QAAQ,EACR,IAAI,GAAG,CAAC,EACR,eAAe,GAAG,KAAK,EACvB,aAAa,GAAG,KAAK,EACrB,QAAQ,GAAG,WAAW,EACtB,QAAQ,GAAG,WAAW,EACtB,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,EACnB,SAAS,EACT,KAAK,KAEH,KAAK,EADJ,IAAI,UACL,KAAK,EAXH,kHAWL,CAAQ,CAAA;IACT,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;IAE3D,OAAO,CACL;QACE,oBAAC,UAAU,oBACL,IAAI,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,WAAW,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK;YAEZ,oBAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,SAAS,IAAI,IAAI,IAAG,QAAQ,CAAY,CAC/C;QACZ,CAAC,aAAa,IAAI,CACjB,oBAAC,MAAM,CAAC,MAAM,IACZ,OAAO,EAAE,GAAG,EAAE;gBACZ,YAAY,CAAC,CAAC,SAAS,CAAC,CAAA;gBACxB,QAAQ,EAAE,CAAA;YACZ,CAAC,EACD,SAAS,EAAE,OAAO,CAAC,UAAU,EAC7B,IAAI,EACF,6BAAK,SAAS,EAAE,OAAO,CAAC,WAAW;gBACjC,oBAAC,kBAAkB,IACjB,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;wBAC1B,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS;qBAClC,CAAC,GACF,CACE,EAER,YAAY,EAAC,OAAO,IAEnB,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAClB,CACjB,CACA,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"ShowMore.js","sourceRoot":"","sources":["../../src/ShowMore/ShowMore.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAGrC,OAAO,kBAAkB,MAAM,wBAAwB,CAAA;AACvD,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAmBnD,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAyB,SAAS,QAAQ,CAC1E,KAAK,EACL,GAAG;IAEH,MAAM,EACJ,QAAQ,EACR,IAAI,GAAG,CAAC,EACR,eAAe,GAAG,KAAK,EACvB,aAAa,GAAG,KAAK,EACrB,QAAQ,GAAG,WAAW,EACtB,QAAQ,GAAG,WAAW,EACtB,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,EACnB,SAAS,EACT,KAAK,KAEH,KAAK,EADJ,IAAI,UACL,KAAK,EAXH,kHAWL,CAAQ,CAAA;IACT,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE3E,OAAO,CACL;QACE,oBAAC,UAAU,oBACL,IAAI,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,WAAW,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK;YAEZ,oBAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,SAAS,IAAI,IAAI,IAAG,IAAI,CAAY,CAC3C;QACZ,CAAC,aAAa,IAAI,CACjB,oBAAC,MAAM,CAAC,MAAM,IACZ,OAAO,EAAE,GAAG,EAAE;gBACZ,YAAY,CAAC,CAAC,SAAS,CAAC,CAAA;gBACxB,QAAQ,EAAE,CAAA;YACZ,CAAC,EACD,SAAS,EAAE,OAAO,CAAC,UAAU,EAC7B,IAAI,EACF,6BAAK,SAAS,EAAE,OAAO,CAAC,WAAW;gBACjC,oBAAC,kBAAkB,IACjB,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;wBAC1B,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS;qBAClC,CAAC,GACF,CACE,EAER,YAAY,EAAC,OAAO,IAEnB,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAClB,CACjB,CACA,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;AAEjC,eAAe,QAAQ,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const replaceLineBreaksWithTags: (children: string) => string | (JSX.Element | JSX.Element[])[];
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ export const replaceLineBreaksWithTags = (children) => {
3
+ const textChunks = children.split('\n');
4
+ if (textChunks.length <= 1) {
5
+ return children;
6
+ }
7
+ return textChunks.map((line, index, { length }) => {
8
+ // eslint-disable-next-line react/no-array-index-key
9
+ const newLine = React.createElement("span", { key: index + 'span' }, line);
10
+ if (index === length - 1) {
11
+ return newLine;
12
+ }
13
+ // eslint-disable-next-line react/no-array-index-key
14
+ return [newLine, React.createElement("br", { key: index + 'br' })];
15
+ });
16
+ };
17
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ShowMore/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,QAAgB,EAC0B,EAAE;IAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEvC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;QAC1B,OAAO,QAAQ,CAAA;KAChB;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAChD,oDAAoD;QACpD,MAAM,OAAO,GAAG,8BAAM,GAAG,EAAE,KAAK,GAAG,MAAM,IAAG,IAAI,CAAQ,CAAA;QAExD,IAAI,KAAK,KAAK,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO,OAAO,CAAA;SACf;QAED,oDAAoD;QACpD,OAAO,CAAC,OAAO,EAAE,4BAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAI,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso",
3
- "version": "17.3.3",
3
+ "version": "17.4.0",
4
4
  "description": "Toptal UI components library",
5
5
  "publishConfig": {
6
6
  "access": "public",