carbon-react 119.12.2 → 120.1.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.
Files changed (120) hide show
  1. package/esm/__internal__/input/input-presentation.style.d.ts +1 -1
  2. package/esm/__spec_helper__/test-utils.d.ts +3 -2
  3. package/esm/__spec_helper__/test-utils.js +15 -1
  4. package/esm/components/box/box.component.d.ts +23 -6
  5. package/esm/components/box/box.component.js +3570 -103
  6. package/esm/components/box/box.style.d.ts +3 -0
  7. package/esm/components/box/box.style.js +112 -0
  8. package/esm/components/dismissible-box/dismissible-box.style.d.ts +2 -1
  9. package/esm/components/drawer/drawer.style.d.ts +2 -1
  10. package/esm/components/duelling-picklist/picklist/picklist.style.js +4 -2
  11. package/esm/components/flat-table/__internal__/build-position-map.d.ts +2 -0
  12. package/esm/components/flat-table/__internal__/build-position-map.js +14 -0
  13. package/esm/components/flat-table/__internal__/index.d.ts +2 -0
  14. package/esm/components/flat-table/__internal__/index.js +2 -0
  15. package/esm/components/flat-table/__internal__/use-calculate-sticky-cells.d.ts +12 -0
  16. package/esm/components/flat-table/__internal__/use-calculate-sticky-cells.js +28 -0
  17. package/esm/components/flat-table/flat-table-cell/flat-table-cell.component.d.ts +2 -41
  18. package/esm/components/flat-table/flat-table-cell/flat-table-cell.component.js +26 -25
  19. package/esm/components/flat-table/flat-table-cell/flat-table-cell.style.d.ts +7 -2
  20. package/esm/components/flat-table/flat-table-checkbox/flat-table-checkbox.component.d.ts +3 -25
  21. package/esm/components/flat-table/flat-table-checkbox/flat-table-checkbox.component.js +21 -14
  22. package/esm/components/flat-table/flat-table-checkbox/flat-table-checkbox.style.d.ts +3 -1
  23. package/esm/components/flat-table/flat-table-head/flat-table-head.component.d.ts +4 -0
  24. package/esm/components/flat-table/flat-table-head/flat-table-head.component.js +21 -24
  25. package/esm/components/flat-table/flat-table-header/flat-table-header.component.d.ts +2 -26
  26. package/esm/components/flat-table/flat-table-header/flat-table-header.component.js +15 -13
  27. package/esm/components/flat-table/flat-table-header/flat-table-header.style.d.ts +3 -1
  28. package/esm/components/flat-table/flat-table-row/__internal__/flat-table-row-context.d.ts +12 -0
  29. package/esm/components/flat-table/flat-table-row/__internal__/flat-table-row-context.js +6 -0
  30. package/esm/components/flat-table/flat-table-row/__internal__/flat-table-row-draggable.component.d.ts +3 -1
  31. package/esm/components/flat-table/flat-table-row/__internal__/flat-table-row-draggable.component.js +17 -3
  32. package/esm/components/flat-table/flat-table-row/__internal__/sub-row-provider.d.ts +15 -0
  33. package/esm/components/flat-table/flat-table-row/__internal__/sub-row-provider.js +28 -0
  34. package/esm/components/flat-table/flat-table-row/flat-table-row.component.d.ts +1 -15
  35. package/esm/components/flat-table/flat-table-row/flat-table-row.component.js +85 -74
  36. package/esm/components/flat-table/flat-table-row/flat-table-row.style.d.ts +4 -1
  37. package/esm/components/flat-table/flat-table-row/flat-table-row.style.js +1 -9
  38. package/esm/components/flat-table/flat-table-row-header/flat-table-row-header.component.d.ts +4 -42
  39. package/esm/components/flat-table/flat-table-row-header/flat-table-row-header.component.js +33 -20
  40. package/esm/components/flat-table/flat-table-row-header/flat-table-row-header.style.d.ts +7 -1
  41. package/esm/components/flat-table/flat-table-row-header/flat-table-row-header.style.js +5 -1
  42. package/esm/components/flat-table/flat-table.component.js +24 -7
  43. package/esm/components/flat-table/flat-table.style.js +2 -2
  44. package/esm/components/heading/heading.style.d.ts +4 -9
  45. package/esm/components/menu/menu-full-screen/menu-full-screen.style.js +2 -2
  46. package/esm/components/menu/scrollable-block/scrollable-block.style.js +2 -2
  47. package/esm/components/typography/typography.component.d.ts +25 -15
  48. package/esm/components/typography/typography.component.js +37 -184
  49. package/esm/components/typography/typography.style.d.ts +12 -0
  50. package/esm/components/typography/typography.style.js +190 -0
  51. package/esm/components/vertical-menu/vertical-menu.style.js +3 -3
  52. package/esm/style/utils/filter-styled-system-flexbox-props.d.ts +3 -0
  53. package/esm/style/utils/filter-styled-system-flexbox-props.js +5 -0
  54. package/esm/style/utils/filter-styled-system-grid-props.d.ts +3 -0
  55. package/esm/style/utils/filter-styled-system-grid-props.js +5 -0
  56. package/esm/style/utils/filter-styled-system-layout-props.d.ts +3 -0
  57. package/esm/style/utils/filter-styled-system-layout-props.js +5 -0
  58. package/esm/style/utils/index.d.ts +4 -1
  59. package/esm/style/utils/index.js +4 -1
  60. package/lib/__internal__/input/input-presentation.style.d.ts +1 -1
  61. package/lib/__spec_helper__/test-utils.d.ts +3 -2
  62. package/lib/__spec_helper__/test-utils.js +16 -1
  63. package/lib/components/box/box.component.d.ts +23 -6
  64. package/lib/components/box/box.component.js +3569 -105
  65. package/lib/components/box/box.style.d.ts +3 -0
  66. package/lib/components/box/box.style.js +122 -0
  67. package/lib/components/dismissible-box/dismissible-box.style.d.ts +2 -1
  68. package/lib/components/drawer/drawer.style.d.ts +2 -1
  69. package/lib/components/duelling-picklist/picklist/picklist.style.js +2 -1
  70. package/lib/components/flat-table/__internal__/build-position-map.d.ts +2 -0
  71. package/lib/components/flat-table/__internal__/build-position-map.js +21 -0
  72. package/lib/components/flat-table/__internal__/index.d.ts +2 -0
  73. package/lib/components/flat-table/__internal__/index.js +20 -0
  74. package/lib/components/flat-table/__internal__/package.json +6 -0
  75. package/lib/components/flat-table/__internal__/use-calculate-sticky-cells.d.ts +12 -0
  76. package/lib/components/flat-table/__internal__/use-calculate-sticky-cells.js +36 -0
  77. package/lib/components/flat-table/flat-table-cell/flat-table-cell.component.d.ts +2 -41
  78. package/lib/components/flat-table/flat-table-cell/flat-table-cell.component.js +25 -24
  79. package/lib/components/flat-table/flat-table-cell/flat-table-cell.style.d.ts +7 -2
  80. package/lib/components/flat-table/flat-table-checkbox/flat-table-checkbox.component.d.ts +3 -25
  81. package/lib/components/flat-table/flat-table-checkbox/flat-table-checkbox.component.js +20 -13
  82. package/lib/components/flat-table/flat-table-checkbox/flat-table-checkbox.style.d.ts +3 -1
  83. package/lib/components/flat-table/flat-table-head/flat-table-head.component.d.ts +4 -0
  84. package/lib/components/flat-table/flat-table-head/flat-table-head.component.js +23 -25
  85. package/lib/components/flat-table/flat-table-header/flat-table-header.component.d.ts +2 -26
  86. package/lib/components/flat-table/flat-table-header/flat-table-header.component.js +14 -12
  87. package/lib/components/flat-table/flat-table-header/flat-table-header.style.d.ts +3 -1
  88. package/lib/components/flat-table/flat-table-row/__internal__/flat-table-row-context.d.ts +12 -0
  89. package/lib/components/flat-table/flat-table-row/__internal__/flat-table-row-context.js +13 -0
  90. package/lib/components/flat-table/flat-table-row/__internal__/flat-table-row-draggable.component.d.ts +3 -1
  91. package/lib/components/flat-table/flat-table-row/__internal__/flat-table-row-draggable.component.js +17 -3
  92. package/lib/components/flat-table/flat-table-row/__internal__/sub-row-provider.d.ts +15 -0
  93. package/lib/components/flat-table/flat-table-row/__internal__/sub-row-provider.js +38 -0
  94. package/lib/components/flat-table/flat-table-row/flat-table-row.component.d.ts +1 -15
  95. package/lib/components/flat-table/flat-table-row/flat-table-row.component.js +84 -73
  96. package/lib/components/flat-table/flat-table-row/flat-table-row.style.d.ts +4 -1
  97. package/lib/components/flat-table/flat-table-row/flat-table-row.style.js +1 -9
  98. package/lib/components/flat-table/flat-table-row-header/flat-table-row-header.component.d.ts +4 -42
  99. package/lib/components/flat-table/flat-table-row-header/flat-table-row-header.component.js +32 -19
  100. package/lib/components/flat-table/flat-table-row-header/flat-table-row-header.style.d.ts +7 -1
  101. package/lib/components/flat-table/flat-table-row-header/flat-table-row-header.style.js +5 -1
  102. package/lib/components/flat-table/flat-table.component.js +24 -7
  103. package/lib/components/flat-table/flat-table.style.js +1 -1
  104. package/lib/components/heading/heading.style.d.ts +4 -9
  105. package/lib/components/menu/menu-full-screen/menu-full-screen.style.js +1 -1
  106. package/lib/components/menu/scrollable-block/scrollable-block.style.js +1 -1
  107. package/lib/components/typography/typography.component.d.ts +25 -15
  108. package/lib/components/typography/typography.component.js +39 -187
  109. package/lib/components/typography/typography.style.d.ts +12 -0
  110. package/lib/components/typography/typography.style.js +200 -0
  111. package/lib/components/vertical-menu/vertical-menu.style.js +1 -1
  112. package/lib/style/utils/filter-styled-system-flexbox-props.d.ts +3 -0
  113. package/lib/style/utils/filter-styled-system-flexbox-props.js +14 -0
  114. package/lib/style/utils/filter-styled-system-grid-props.d.ts +3 -0
  115. package/lib/style/utils/filter-styled-system-grid-props.js +14 -0
  116. package/lib/style/utils/filter-styled-system-layout-props.d.ts +3 -0
  117. package/lib/style/utils/filter-styled-system-layout-props.js +14 -0
  118. package/lib/style/utils/index.d.ts +4 -1
  119. package/lib/style/utils/index.js +21 -0
  120. package/package.json +1 -1
@@ -10,6 +10,8 @@ var _icon = _interopRequireDefault(require("../../icon"));
10
10
  var _flatTableRowHeader = require("./flat-table-row-header.style");
11
11
  var _flatTable = require("../flat-table.component");
12
12
  var _guid = _interopRequireDefault(require("../../../__internal__/utils/helpers/guid"));
13
+ var _tags = _interopRequireDefault(require("../../../__internal__/utils/helpers/tags/tags"));
14
+ var _useCalculateStickyCells = _interopRequireDefault(require("../__internal__/use-calculate-sticky-cells"));
13
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -20,55 +22,66 @@ const FlatTableRowHeader = ({
20
22
  width,
21
23
  py,
22
24
  px,
23
- expandable = false,
24
- onClick,
25
- onKeyDown,
26
- leftPosition,
27
- rightPosition,
28
25
  truncate,
29
26
  title,
30
27
  stickyAlignment = "left",
31
28
  colspan,
32
29
  rowspan,
30
+ id,
33
31
  ...rest
34
32
  }) => {
35
- const id = (0, _react.useRef)((0, _guid.default)());
33
+ const internalId = (0, _react.useRef)(id || (0, _guid.default)());
36
34
  const [tabIndex, setTabIndex] = (0, _react.useState)(-1);
37
35
  const {
38
36
  selectedId
39
37
  } = (0, _react.useContext)(_flatTable.FlatTableThemeContext);
38
+ const {
39
+ leftPosition,
40
+ rightPosition,
41
+ expandable,
42
+ onClick,
43
+ onKeyDown,
44
+ isFirstCell,
45
+ isExpandableCell
46
+ } = (0, _useCalculateStickyCells.default)(internalId.current);
47
+ (0, _react.useEffect)(() => {
48
+ setTabIndex(isExpandableCell && selectedId === internalId.current ? 0 : -1);
49
+ }, [selectedId, isExpandableCell]);
40
50
  const handleOnClick = (0, _react.useCallback)(ev => {
41
- if (expandable && onClick) onClick(ev);
42
- }, [expandable, onClick]);
51
+ if (isExpandableCell && onClick) onClick(ev);
52
+ }, [isExpandableCell, onClick]);
43
53
  const handleOnKeyDown = (0, _react.useCallback)(ev => {
44
- if (expandable && onKeyDown) onKeyDown(ev);
45
- }, [expandable, onKeyDown]);
46
- (0, _react.useEffect)(() => {
47
- setTabIndex(selectedId === id.current ? 0 : -1);
48
- }, [selectedId]);
54
+ if (isExpandableCell && onKeyDown) {
55
+ onKeyDown(ev);
56
+ }
57
+ }, [isExpandableCell, onKeyDown]);
49
58
  return /*#__PURE__*/_react.default.createElement(_flatTableRowHeader.StyledFlatTableRowHeader, _extends({
50
59
  leftPosition: stickyAlignment === "left" ? leftPosition || 0 : undefined,
51
60
  rightPosition: stickyAlignment === "right" ? rightPosition || 0 : undefined,
52
- align: align,
61
+ align: align
62
+ }, (0, _tags.default)("flat-table-row-header", {
53
63
  "data-element": "flat-table-row-header",
64
+ ...rest
65
+ }), {
54
66
  width: width,
55
67
  py: py || "10px",
56
68
  px: px || 3,
57
69
  onClick: handleOnClick,
58
- tabIndex: expandable && onClick ? tabIndex : undefined,
70
+ tabIndex: isExpandableCell ? tabIndex : undefined,
59
71
  onKeyDown: handleOnKeyDown,
60
72
  truncate: truncate,
61
73
  expandable: expandable,
62
- stickyAlignment: stickyAlignment,
63
- id: id.current
74
+ stickyAlignment: stickyAlignment
64
75
  }, colspan !== undefined && {
65
76
  colSpan: Number(colspan)
66
77
  }, rowspan !== undefined && {
67
78
  rowSpan: Number(rowspan)
68
- }, rest), /*#__PURE__*/_react.default.createElement(_flatTableRowHeader.StyledFlatTableRowHeaderContent, {
79
+ }, rest, {
80
+ id: internalId.current
81
+ }), /*#__PURE__*/_react.default.createElement(_flatTableRowHeader.StyledFlatTableRowHeaderContent, {
69
82
  title: truncate && !title && typeof children === "string" ? children : title,
70
83
  expandable: expandable
71
- }, expandable && /*#__PURE__*/_react.default.createElement(_icon.default, {
84
+ }, expandable && isFirstCell && /*#__PURE__*/_react.default.createElement(_icon.default, {
72
85
  type: "chevron_down_thick",
73
86
  bgSize: "extra-small",
74
87
  mr: "8px"
@@ -1,5 +1,11 @@
1
1
  import { FlatTableRowHeaderProps } from "./flat-table-row-header.component";
2
- declare const StyledFlatTableRowHeader: import("styled-components").StyledComponent<"th", any, FlatTableRowHeaderProps, never>;
2
+ declare const StyledFlatTableRowHeader: import("styled-components").StyledComponent<"th", any, {
3
+ "data-sticky-align": "left" | "right" | undefined;
4
+ } & FlatTableRowHeaderProps & {
5
+ expandable?: boolean | undefined;
6
+ leftPosition?: number | undefined;
7
+ rightPosition?: number | undefined;
8
+ }, "data-sticky-align">;
3
9
  declare const StyledFlatTableRowHeaderContent: import("styled-components").StyledComponent<"div", any, {
4
10
  expandable?: boolean | undefined;
5
11
  }, never>;
@@ -16,7 +16,11 @@ const verticalBorderSizes = {
16
16
  medium: "2px",
17
17
  large: "4px"
18
18
  };
19
- const StyledFlatTableRowHeader = _styledComponents.default.th`
19
+ const StyledFlatTableRowHeader = _styledComponents.default.th.attrs(({
20
+ stickyAlignment
21
+ }) => ({
22
+ "data-sticky-align": stickyAlignment
23
+ }))`
20
24
  ${({
21
25
  align,
22
26
  theme,
@@ -17,7 +17,7 @@ const FlatTableThemeContext = /*#__PURE__*/_react.default.createContext({
17
17
  setSelectedId: () => {}
18
18
  });
19
19
  exports.FlatTableThemeContext = FlatTableThemeContext;
20
- const FOCUSABLE_ROW_AND_CELL_QUERY = "tbody tr, tbody tr td, tbody tr th";
20
+ const FOCUSABLE_ROW_AND_CELL_QUERY = "tbody tr[tabindex], tbody tr td[tabindex], tbody tr th[tabindex]";
21
21
  const FlatTable = ({
22
22
  caption,
23
23
  children,
@@ -108,7 +108,7 @@ const FlatTable = ({
108
108
  if (!focusableElements) {
109
109
  return;
110
110
  }
111
- const focusableElementsArray = Array.from(focusableElements).filter(el => el.getAttribute("tabindex") !== null);
111
+ const focusableElementsArray = Array.from(focusableElements);
112
112
  const currentFocusIndex = focusableElementsArray.findIndex(el => el === document.activeElement);
113
113
  if (_events.default.isDownKey(ev)) {
114
114
  ev.preventDefault();
@@ -135,13 +135,30 @@ const FlatTable = ({
135
135
  }
136
136
  };
137
137
  (0, _react.useLayoutEffect)(() => {
138
- const focusableElements = tableRef.current?.querySelectorAll(FOCUSABLE_ROW_AND_CELL_QUERY);
138
+ const findSelectedId = () => {
139
+ const firstfocusableElement = tableRef.current?.querySelector(FOCUSABLE_ROW_AND_CELL_QUERY);
140
+
141
+ // if no other menu item is selected, we need to make the first row a tab stop
142
+ if (firstfocusableElement && !selectedId) {
143
+ const currentlySelectedId = firstfocusableElement?.getAttribute("id");
144
+
145
+ /* istanbul ignore else */
146
+ if (currentlySelectedId && selectedId !== currentlySelectedId) {
147
+ setSelectedId(currentlySelectedId);
148
+ }
149
+ }
150
+ };
151
+ const observer = new MutationObserver(findSelectedId);
139
152
 
140
- // if no other menu item is selected, we need to make the first row a tab stop
141
- if (focusableElements && !selectedId) {
142
- const focusableArray = Array.from(focusableElements).filter(el => el.getAttribute("tabindex") !== null);
143
- setSelectedId(focusableArray[0]?.getAttribute("id") || "");
153
+ /* istanbul ignore else */
154
+ if (wrapperRef.current) {
155
+ observer.observe(wrapperRef.current, {
156
+ subtree: true,
157
+ childList: true,
158
+ attributes: true
159
+ });
144
160
  }
161
+ return () => observer.disconnect();
145
162
  }, [selectedId]);
146
163
  return /*#__PURE__*/_react.default.createElement(_flatTable.StyledFlatTableWrapper, _extends({
147
164
  ref: wrapperRef,
@@ -13,7 +13,7 @@ var _flatTableCheckbox = _interopRequireDefault(require("./flat-table-checkbox/f
13
13
  var _themes = require("../../style/themes");
14
14
  var _flatTableCell = require("./flat-table-cell/flat-table-cell.style");
15
15
  var _cellSizes = _interopRequireDefault(require("./cell-sizes.style"));
16
- var _box = _interopRequireDefault(require("../box"));
16
+ var _box = _interopRequireDefault(require("../box/box.style"));
17
17
  var _pager = require("../pager/pager.style");
18
18
  var _addFocusStyling = _interopRequireDefault(require("../../style/utils/add-focus-styling"));
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -11,15 +11,10 @@ declare const StyledHeadingBackButton: import("styled-components").StyledCompone
11
11
  declare type StyledHeadingTitleProps = {
12
12
  withMargin?: boolean;
13
13
  };
14
- declare const StyledHeadingTitle: import("styled-components").StyledComponent<"span", any, {
15
- as: import("react").ElementType<any> | undefined;
16
- size: string;
17
- weight: string;
18
- textTransform: string;
19
- textDecoration: string;
20
- lineHeight: string;
21
- defaultMargin: string;
22
- } & import("../typography").TypographyProps & StyledHeadingTitleProps, "as" | "textDecoration" | "size" | "lineHeight" | "textTransform" | "weight" | "defaultMargin">;
14
+ declare const StyledHeadingTitle: import("styled-components").StyledComponent<{
15
+ ({ "data-component": dataComponent, variant, as, id, fontSize, fontWeight, textTransform, lineHeight, textDecoration, display, listStyleType, whiteSpace, wordWrap, textOverflow, truncate, color, backgroundColor, bg, opacity, children, className, ...rest }: import("../typography").TypographyProps): import("react").JSX.Element;
16
+ displayName: string;
17
+ }, any, StyledHeadingTitleProps, never>;
23
18
  declare const StyledHeadingPills: import("styled-components").StyledComponent<"span", any, {}, never>;
24
19
  declare type StyledSubHeaderProps = {
25
20
  hasBackLink?: boolean;
@@ -7,7 +7,7 @@ exports.StyledMenuFullscreenHeader = exports.StyledMenuFullscreen = void 0;
7
7
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
8
  var _themes = require("../../../style/themes");
9
9
  var _iconButton = _interopRequireDefault(require("../../icon-button/icon-button.style"));
10
- var _box = _interopRequireDefault(require("../../box"));
10
+ var _box = _interopRequireDefault(require("../../box/box.style"));
11
11
  var _search = _interopRequireDefault(require("../../search/search.style"));
12
12
  var _icon = _interopRequireDefault(require("../../icon/icon.style"));
13
13
  var _button = _interopRequireDefault(require("../../button/button.style"));
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
8
  var _menuItem = _interopRequireDefault(require("../menu-item/menu-item.style"));
9
9
  var _menu = _interopRequireDefault(require("../menu.config"));
10
- var _box = _interopRequireDefault(require("../../box/box.component"));
10
+ var _box = _interopRequireDefault(require("../../box/box.style"));
11
11
  var _menu2 = require("../menu.style");
12
12
  var _link = require("../../link/link.style");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,10 +1,15 @@
1
- /// <reference types="react" />
2
- import { ColorProps, SpaceProps } from "styled-system";
1
+ import React from "react";
2
+ import { SpaceProps } from "styled-system";
3
+ import { TagProps } from "../../__internal__/utils/helpers/tags";
3
4
  declare const VARIANT_TYPES: readonly ["h1-large", "h1", "h2", "h3", "h4", "h5", "segment-header", "segment-header-small", "segment-subheader", "segment-subheader-alt", "p", "small", "big", "sup", "sub", "strong", "b", "em", "ul", "ol"];
4
5
  export declare type VariantTypes = typeof VARIANT_TYPES[number];
5
- export interface TypographyProps extends SpaceProps, ColorProps {
6
+ export interface TypographyProps extends SpaceProps, TagProps {
6
7
  /** Override the variant component */
7
8
  as?: React.ElementType;
9
+ /** Set the ID attribute of the Typography component */
10
+ id?: string;
11
+ /** Content to be rendered inside the Typography component */
12
+ children?: React.ReactNode;
8
13
  /** The visual style to apply to the component */
9
14
  variant?: VariantTypes;
10
15
  /** Override the variant font-size */
@@ -21,22 +26,27 @@ export interface TypographyProps extends SpaceProps, ColorProps {
21
26
  display?: string;
22
27
  /** Override the list-style-type */
23
28
  listStyleType?: string;
24
- /** Override the white-space type */
29
+ /** Override the white-space */
25
30
  whiteSpace?: string;
26
- /** Override the word-wrap type */
31
+ /** Override the word-wrap */
27
32
  wordWrap?: string;
28
- /** Override the text-overflow type */
33
+ /** Override the text-overflow */
29
34
  textOverflow?: string;
30
35
  /** Apply truncation */
31
36
  truncate?: boolean;
37
+ /** Override the color style */
38
+ color?: string;
39
+ /** Override the backgroundColor style */
40
+ backgroundColor?: string;
41
+ /** Override the bg value shorthand for backgroundColor */
42
+ bg?: string;
43
+ /** Override the opacity value */
44
+ opacity?: string | number;
45
+ /** @private @ignore */
46
+ className?: string;
32
47
  }
33
- declare const Typography: import("styled-components").StyledComponent<"span", any, {
34
- as: import("react").ElementType<any> | undefined;
35
- size: string;
36
- weight: string;
37
- textTransform: string;
38
- textDecoration: string;
39
- lineHeight: string;
40
- defaultMargin: string;
41
- } & TypographyProps, "as" | "textDecoration" | "size" | "lineHeight" | "textTransform" | "weight" | "defaultMargin">;
48
+ export declare const Typography: {
49
+ ({ "data-component": dataComponent, variant, as, id, fontSize, fontWeight, textTransform, lineHeight, textDecoration, display, listStyleType, whiteSpace, wordWrap, textOverflow, truncate, color, backgroundColor, bg, opacity, children, className, ...rest }: TypographyProps): React.JSX.Element;
50
+ displayName: string;
51
+ };
42
52
  export default Typography;
@@ -3,210 +3,62 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
- var _styledSystem = require("styled-system");
9
- var _color = _interopRequireDefault(require("../../style/utils/color"));
10
- var _base = _interopRequireDefault(require("../../style/themes/base"));
11
- var _logger = _interopRequireDefault(require("../../__internal__/utils/logger"));
6
+ exports.default = exports.Typography = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags"));
10
+ var _utils = require("../../style/utils");
11
+ var _typography = _interopRequireDefault(require("./typography.style"));
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
14
  const VARIANT_TYPES = ["h1-large", "h1", "h2", "h3", "h4", "h5", "segment-header", "segment-header-small", "segment-subheader", "segment-subheader-alt", "p", "small", "big", "sup", "sub", "strong", "b", "em", "ul", "ol"];
16
- const getAs = variant => {
17
- switch (variant) {
18
- case "h1-large":
19
- return "h1";
20
- case "segment-header":
21
- case "segment-header-small":
22
- case "segment-subheader":
23
- case "segment-subheader-alt":
24
- return "h5";
25
- case "big":
26
- return "p";
27
- default:
28
- return variant;
29
- }
30
- };
31
- const getSize = variant => {
32
- switch (variant) {
33
- case "h1-large":
34
- return "32px";
35
- case "h1":
36
- return "24px";
37
- case "h2":
38
- return "22px";
39
- case "h3":
40
- case "segment-header":
41
- return "20px";
42
- case "h4":
43
- case "segment-header-small":
44
- return "18px";
45
- case "h5":
46
- case "segment-subheader":
47
- case "big":
48
- return "16px";
49
- case "small":
50
- case "sub":
51
- case "sup":
52
- return "13px";
53
- case "segment-subheader-alt":
54
- case "p":
55
- case "b":
56
- case "strong":
57
- case "em":
58
- default:
59
- return "14px";
60
- }
61
- };
62
- const getLineHeight = variant => {
63
- switch (variant) {
64
- case "h1-large":
65
- return "40px";
66
- case "h1":
67
- case "segment-subheader":
68
- return "31px";
69
- case "h2":
70
- return "29px";
71
- case "h3":
72
- case "segment-header":
73
- return "26px";
74
- case "big":
75
- return "24px";
76
- case "h4":
77
- case "segment-header-small":
78
- return "23px";
79
- case "small":
80
- case "sub":
81
- case "sup":
82
- return "20px";
83
- case "h5":
84
- case "segment-subheader-alt":
85
- case "p":
86
- case "b":
87
- case "strong":
88
- case "em":
89
- default:
90
- return "21px";
91
- }
92
- };
93
- const getWeight = variant => {
94
- switch (variant) {
95
- case "h1-large":
96
- case "h1":
97
- case "segment-header":
98
- case "segment-header-small":
99
- return "900";
100
- case "h2":
101
- case "h3":
102
- case "segment-subheader":
103
- case "segment-subheader-alt":
104
- case "b":
105
- case "em":
106
- case "strong":
107
- return "700";
108
- case "h4":
109
- case "h5":
110
- case "p":
111
- case "small":
112
- case "big":
113
- case "sub":
114
- case "sup":
115
- default:
116
- return "400";
117
- }
118
- };
119
- const getTransform = variant => {
120
- if (variant === "segment-subheader-alt") {
121
- return "uppercase";
122
- }
123
- return "none";
124
- };
125
- const getDecoration = variant => {
126
- if (variant === "em") {
127
- return "underline";
128
- }
129
- return "none";
130
- };
131
- let isDeprecationWarningTriggered = false;
132
- const Typography = _styledComponents.default.span.attrs(({
133
- variant,
15
+ const Typography = ({
16
+ "data-component": dataComponent,
17
+ variant = "p",
134
18
  as,
19
+ id,
135
20
  fontSize,
136
21
  fontWeight,
137
22
  textTransform,
138
23
  lineHeight,
139
- textDecoration
140
- }) => {
141
- return {
142
- as: as || getAs(variant),
143
- size: fontSize || getSize(variant),
144
- weight: fontWeight || getWeight(variant),
145
- textTransform: textTransform || getTransform(variant),
146
- textDecoration: textDecoration || getDecoration(variant),
147
- lineHeight: lineHeight || getLineHeight(variant),
148
- defaultMargin: variant === "p" ? "0 0 16px" : "0"
149
- };
150
- })`
151
- ${() => {
152
- if (!isDeprecationWarningTriggered) {
153
- isDeprecationWarningTriggered = true;
154
- _logger.default.deprecate("Previous props that could be spread to the `Typography` component are being removed. Only props documented in the intefaces will be supported.");
155
- }
156
- return (0, _styledComponents.css)``;
157
- }}
158
- ${({
159
- size,
160
- weight,
161
- textTransform,
162
- lineHeight,
163
- defaultMargin,
164
24
  textDecoration,
165
25
  display,
166
- variant,
167
26
  listStyleType,
168
27
  whiteSpace,
169
28
  wordWrap,
170
29
  textOverflow,
171
- truncate
172
- }) => (0, _styledComponents.css)`
173
- font-style: normal;
174
- font-size: ${size};
175
- font-weight: ${weight};
176
- text-transform: ${textTransform};
177
- text-decoration: ${textDecoration};
178
- line-height: ${lineHeight};
179
- margin: ${defaultMargin};
180
- padding: 0;
181
- white-space: ${truncate ? "nowrap" : whiteSpace};
182
- word-wrap: ${wordWrap};
183
- text-overflow: ${truncate ? "ellipsis" : textOverflow};
184
- ${truncate && (0, _styledComponents.css)`
185
- overflow: hidden;
186
- `};
187
- ${variant === "sup" && "vertical-align: super;"};
188
- ${variant === "sub" && "vertical-align: sub;"};
189
- ${display && `display: ${display};`};
190
- ${listStyleType && `list-style-type: ${listStyleType};`}; ;
191
- `}
192
- ${_styledSystem.space}
193
- ${({
194
- color,
195
- bg,
30
+ truncate,
31
+ color = "blackOpacity90",
196
32
  backgroundColor,
197
- ...rest
198
- }) => (0, _color.default)({
199
- color,
200
33
  bg,
201
- backgroundColor,
34
+ opacity,
35
+ children,
36
+ className,
202
37
  ...rest
203
- })}
204
- `;
205
- Typography.defaultProps = {
206
- color: "blackOpacity90",
207
- variant: "p",
208
- theme: _base.default
38
+ }) => {
39
+ return /*#__PURE__*/_react.default.createElement(_typography.default, _extends({
40
+ variant: variant,
41
+ as: as,
42
+ id: id,
43
+ fontSize: fontSize,
44
+ fontWeight: fontWeight,
45
+ textTransform: textTransform,
46
+ lineHeight: lineHeight,
47
+ textDecoration: textDecoration,
48
+ display: display,
49
+ listStyleType: listStyleType,
50
+ whiteSpace: whiteSpace,
51
+ wordWrap: wordWrap,
52
+ textOverflow: textOverflow,
53
+ truncate: truncate,
54
+ color: color,
55
+ backgroundColor: backgroundColor,
56
+ bg: bg,
57
+ opacity: opacity,
58
+ className: className
59
+ }, (0, _tags.default)(dataComponent, rest), (0, _utils.filterStyledSystemMarginProps)(rest), (0, _utils.filterStyledSystemPaddingProps)(rest)), children);
209
60
  };
61
+ exports.Typography = Typography;
210
62
  Typography.displayName = "Typography";
211
63
  var _default = Typography;
212
64
  exports.default = _default;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { TypographyProps } from "./typography.component";
3
+ declare const StyledTypography: import("styled-components").StyledComponent<"span", any, {
4
+ as: import("react").ElementType<any> | undefined;
5
+ size: string;
6
+ weight: string;
7
+ textTransform: string;
8
+ textDecoration: string;
9
+ lineHeight: string;
10
+ defaultMargin: string;
11
+ } & TypographyProps, "as" | "textDecoration" | "size" | "weight" | "textTransform" | "lineHeight" | "defaultMargin">;
12
+ export default StyledTypography;