@elastic/eui 88.0.0 → 88.2.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 (148) hide show
  1. package/dist/eui_charts_theme.js +9 -8
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +11 -41
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +11 -41
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/accordion/accordion.js +34 -9
  8. package/es/components/accordion/accordion.styles.js +29 -9
  9. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  10. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +10 -26
  11. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  12. package/es/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  13. package/es/components/description_list/description_list.js +40 -3
  14. package/es/components/flyout/flyout.styles.js +1 -1
  15. package/es/components/header/header.js +120 -25
  16. package/es/components/header/header.styles.js +1 -1
  17. package/es/components/index.js +1 -0
  18. package/es/components/markdown_editor/markdown_format.styles.js +3 -6
  19. package/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  20. package/es/components/page/page_sidebar/page_sidebar.js +2 -4
  21. package/es/components/page_template/page_template.js +4 -31
  22. package/es/components/text/text.styles.js +3 -6
  23. package/es/components/text_truncate/index.js +10 -0
  24. package/es/components/text_truncate/text_truncate.js +232 -0
  25. package/es/components/text_truncate/text_truncate.styles.js +49 -0
  26. package/es/components/text_truncate/utils.js +348 -0
  27. package/es/global_styling/functions/typography.js +8 -8
  28. package/es/global_styling/variables/typography.js +1 -1
  29. package/es/services/theme/context.js +3 -1
  30. package/es/services/theme/hooks.js +19 -1
  31. package/es/services/theme/index.js +1 -1
  32. package/es/services/theme/provider.js +37 -8
  33. package/es/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  34. package/eui.d.ts +282 -24
  35. package/i18ntokens.json +112 -112
  36. package/lib/components/accordion/accordion.js +33 -8
  37. package/lib/components/accordion/accordion.styles.js +31 -10
  38. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  39. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +10 -26
  40. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  41. package/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  42. package/lib/components/description_list/description_list.js +39 -3
  43. package/lib/components/flyout/flyout.styles.js +1 -1
  44. package/lib/components/header/header.js +120 -23
  45. package/lib/components/header/header.styles.js +1 -1
  46. package/lib/components/index.js +11 -0
  47. package/lib/components/markdown_editor/markdown_format.styles.js +3 -6
  48. package/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  49. package/lib/components/page/page_sidebar/page_sidebar.js +2 -4
  50. package/lib/components/page_template/page_template.js +2 -29
  51. package/lib/components/text/text.styles.js +3 -6
  52. package/lib/components/text_truncate/index.js +25 -0
  53. package/lib/components/text_truncate/text_truncate.js +242 -0
  54. package/lib/components/text_truncate/text_truncate.styles.js +54 -0
  55. package/lib/components/text_truncate/utils.js +352 -0
  56. package/lib/global_styling/functions/typography.js +8 -8
  57. package/lib/global_styling/variables/typography.js +3 -3
  58. package/lib/services/theme/context.js +3 -1
  59. package/lib/services/theme/hooks.js +21 -2
  60. package/lib/services/theme/index.js +6 -0
  61. package/lib/services/theme/provider.js +62 -35
  62. package/lib/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  63. package/optimize/es/components/accordion/accordion.js +19 -7
  64. package/optimize/es/components/accordion/accordion.styles.js +29 -9
  65. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +5 -26
  66. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  67. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  68. package/optimize/es/components/description_list/description_list.js +22 -2
  69. package/optimize/es/components/flyout/flyout.styles.js +1 -1
  70. package/optimize/es/components/header/header.js +75 -25
  71. package/optimize/es/components/header/header.styles.js +1 -1
  72. package/optimize/es/components/index.js +1 -0
  73. package/optimize/es/components/markdown_editor/markdown_format.styles.js +3 -6
  74. package/optimize/es/components/overlay_mask/overlay_mask.styles.js +1 -1
  75. package/optimize/es/components/page/page_sidebar/page_sidebar.js +2 -4
  76. package/optimize/es/components/page_template/page_template.js +4 -26
  77. package/optimize/es/components/text/text.styles.js +3 -6
  78. package/optimize/es/components/text_truncate/index.js +10 -0
  79. package/optimize/es/components/text_truncate/text_truncate.js +148 -0
  80. package/optimize/es/components/text_truncate/text_truncate.styles.js +49 -0
  81. package/optimize/es/components/text_truncate/utils.js +337 -0
  82. package/optimize/es/global_styling/functions/typography.js +8 -8
  83. package/optimize/es/global_styling/variables/typography.js +1 -1
  84. package/optimize/es/services/theme/context.js +3 -1
  85. package/optimize/es/services/theme/hooks.js +19 -1
  86. package/optimize/es/services/theme/index.js +1 -1
  87. package/optimize/es/services/theme/provider.js +37 -8
  88. package/optimize/es/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  89. package/optimize/lib/components/accordion/accordion.js +18 -6
  90. package/optimize/lib/components/accordion/accordion.styles.js +31 -10
  91. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +5 -26
  92. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  93. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  94. package/optimize/lib/components/description_list/description_list.js +22 -2
  95. package/optimize/lib/components/flyout/flyout.styles.js +1 -1
  96. package/optimize/lib/components/header/header.js +77 -24
  97. package/optimize/lib/components/header/header.styles.js +1 -1
  98. package/optimize/lib/components/index.js +11 -0
  99. package/optimize/lib/components/markdown_editor/markdown_format.styles.js +3 -6
  100. package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +1 -1
  101. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +2 -4
  102. package/optimize/lib/components/page_template/page_template.js +2 -24
  103. package/optimize/lib/components/text/text.styles.js +3 -6
  104. package/optimize/lib/components/text_truncate/index.js +25 -0
  105. package/optimize/lib/components/text_truncate/text_truncate.js +158 -0
  106. package/optimize/lib/components/text_truncate/text_truncate.styles.js +54 -0
  107. package/optimize/lib/components/text_truncate/utils.js +342 -0
  108. package/optimize/lib/global_styling/functions/typography.js +8 -8
  109. package/optimize/lib/global_styling/variables/typography.js +3 -3
  110. package/optimize/lib/services/theme/context.js +3 -1
  111. package/optimize/lib/services/theme/hooks.js +21 -2
  112. package/optimize/lib/services/theme/index.js +6 -0
  113. package/optimize/lib/services/theme/provider.js +62 -35
  114. package/optimize/lib/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  115. package/package.json +1 -1
  116. package/src/components/datagrid/_data_grid.scss +13 -2
  117. package/src/components/datagrid/controls/_data_grid_keyboard_shortcuts.scss +1 -7
  118. package/src/components/index.scss +0 -1
  119. package/src/global_styling/mixins/_header.scss +2 -0
  120. package/test-env/components/accordion/accordion.js +28 -8
  121. package/test-env/components/accordion/accordion.styles.js +31 -10
  122. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +10 -2
  123. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +10 -26
  124. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +10 -1
  125. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +1 -0
  126. package/test-env/components/description_list/description_list.js +37 -3
  127. package/test-env/components/flyout/flyout.styles.js +1 -1
  128. package/test-env/components/header/header.js +113 -23
  129. package/test-env/components/header/header.styles.js +1 -1
  130. package/test-env/components/index.js +11 -0
  131. package/test-env/components/markdown_editor/markdown_format.styles.js +3 -6
  132. package/test-env/components/overlay_mask/overlay_mask.styles.js +1 -1
  133. package/test-env/components/page/page_sidebar/page_sidebar.js +2 -4
  134. package/test-env/components/page_template/page_template.js +2 -24
  135. package/test-env/components/text/text.styles.js +3 -6
  136. package/test-env/components/text_truncate/index.js +25 -0
  137. package/test-env/components/text_truncate/text_truncate.js +236 -0
  138. package/test-env/components/text_truncate/text_truncate.styles.js +54 -0
  139. package/test-env/components/text_truncate/utils.js +342 -0
  140. package/test-env/global_styling/functions/typography.js +8 -8
  141. package/test-env/global_styling/variables/typography.js +3 -3
  142. package/test-env/services/theme/context.js +3 -1
  143. package/test-env/services/theme/hooks.js +21 -2
  144. package/test-env/services/theme/index.js +6 -0
  145. package/test-env/services/theme/provider.js +62 -35
  146. package/test-env/themes/amsterdam/global_styling/variables/_typography.js +1 -0
  147. package/src/components/accordion/_accordion_form.scss +0 -40
  148. package/src/components/accordion/_index.scss +0 -1
@@ -5,17 +5,22 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.EuiHeader = void 0;
8
+ exports.euiFixedHeadersCount = exports.EuiHeader = exports.EuiFixedHeader = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
13
  var _react = _interopRequireWildcard(require("react"));
12
14
  var _classnames = _interopRequireDefault(require("classnames"));
13
15
  var _services = require("../../services");
16
+ var _global_styling = require("../../global_styling");
14
17
  var _header_breadcrumbs = require("./header_breadcrumbs");
15
18
  var _header_section = require("./header_section");
16
19
  var _header = require("./header.styles");
17
20
  var _react2 = require("@emotion/react");
18
- var _excluded = ["children", "className", "sections", "position", "theme"];
21
+ var _euiFixedHeadersCount, _euiFixedHeadersCount2;
22
+ var _excluded = ["children", "className", "sections", "position", "theme"],
23
+ _excluded2 = ["children", "style"];
19
24
  /*
20
25
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
26
  * or more contributor license agreements. Licensed under the Elastic License
@@ -25,6 +30,8 @@ var _excluded = ["children", "className", "sections", "position", "theme"];
25
30
  */
26
31
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
32
  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; }
33
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
28
35
  var createHeaderSection = function createHeaderSection(sections) {
29
36
  return sections.map(function (section, index) {
30
37
  return (0, _react2.jsx)(_header_section.EuiHeaderSectionItem, {
@@ -32,8 +39,6 @@ var createHeaderSection = function createHeaderSection(sections) {
32
39
  }, section);
33
40
  });
34
41
  };
35
- // Start a counter to manage the total number of fixed headers that need the body class
36
- var euiHeaderFixedCounter = 0;
37
42
  var EuiHeader = function EuiHeader(_ref) {
38
43
  var children = _ref.children,
39
44
  className = _ref.className,
@@ -47,22 +52,6 @@ var EuiHeader = function EuiHeader(_ref) {
47
52
  var euiTheme = (0, _services.useEuiTheme)();
48
53
  var styles = (0, _header.euiHeaderStyles)(euiTheme);
49
54
  var cssStyles = [styles.euiHeader, styles[position], styles[theme]];
50
- (0, _react.useEffect)(function () {
51
- if (position === 'fixed') {
52
- // Increment fixed header counter for each fixed header
53
- euiHeaderFixedCounter++;
54
- document.body.classList.add('euiBody--headerIsFixed');
55
- document.body.dataset.fixedHeaders = String(euiHeaderFixedCounter);
56
- return function () {
57
- // Both decrement the fixed counter AND then check if there are none
58
- if (--euiHeaderFixedCounter === 0) {
59
- // If there are none, THEN remove class
60
- document.body.classList.remove('euiBody--headerIsFixed');
61
- delete document.body.dataset.fixedHeaders;
62
- }
63
- };
64
- }
65
- }, [position]);
66
55
  var contents;
67
56
  if (sections) {
68
57
  if (children) {
@@ -91,10 +80,74 @@ var EuiHeader = function EuiHeader(_ref) {
91
80
  } else {
92
81
  contents = children;
93
82
  }
94
- return (0, _react2.jsx)("div", (0, _extends2.default)({
83
+ return position === 'fixed' ? (0, _react2.jsx)(EuiFixedHeader, (0, _extends2.default)({
95
84
  css: cssStyles,
96
- className: classes,
97
- "data-fixed-header": position === 'fixed' || undefined // Used by EuiFlyouts as a query selector
85
+ className: classes
86
+ }, rest), contents) : (0, _react2.jsx)("div", (0, _extends2.default)({
87
+ css: cssStyles,
88
+ className: classes
98
89
  }, rest), contents);
99
90
  };
100
- exports.EuiHeader = EuiHeader;
91
+
92
+ /**
93
+ * Fixed headers - logic around dynamically calculating the total
94
+ * page offset and setting the `top` position of subsequent headers
95
+ */
96
+
97
+ // Start a counter to manage the total number of fixed headers
98
+ // Exported for unit testing only
99
+ exports.EuiHeader = EuiHeader;
100
+ var euiFixedHeadersCount = 0;
101
+
102
+ // Exported for unit testing only
103
+ exports.euiFixedHeadersCount = euiFixedHeadersCount;
104
+ var EuiFixedHeader = function EuiFixedHeader(_ref2) {
105
+ var children = _ref2.children,
106
+ style = _ref2.style,
107
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
108
+ var _useEuiThemeCSSVariab = (0, _services.useEuiThemeCSSVariables)(),
109
+ setGlobalCSSVariables = _useEuiThemeCSSVariab.setGlobalCSSVariables;
110
+ var euiTheme = (0, _services.useEuiTheme)();
111
+ var headerHeight = (0, _header.euiHeaderVariables)(euiTheme).height;
112
+ var getHeaderOffset = (0, _react.useCallback)(function () {
113
+ return (0, _global_styling.mathWithUnits)(headerHeight, function (x) {
114
+ return x * euiFixedHeadersCount;
115
+ });
116
+ }, [headerHeight]);
117
+ var _useState = (0, _react.useState)(),
118
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
119
+ topPosition = _useState2[0],
120
+ setTopPosition = _useState2[1];
121
+ (0, _react.useEffect)(function () {
122
+ // Get the top position from the offset of previous header(s)
123
+ setTopPosition(getHeaderOffset());
124
+
125
+ // Increment fixed header counter for each fixed header
126
+ _euiFixedHeadersCount = euiFixedHeadersCount++, exports.euiFixedHeadersCount = euiFixedHeadersCount, _euiFixedHeadersCount;
127
+ setGlobalCSSVariables({
128
+ '--euiFixedHeadersOffset': getHeaderOffset()
129
+ });
130
+ document.body.classList.add('euiBody--headerIsFixed'); // TODO: Consider deleting this legacy className
131
+
132
+ return function () {
133
+ _euiFixedHeadersCount2 = euiFixedHeadersCount--, exports.euiFixedHeadersCount = euiFixedHeadersCount, _euiFixedHeadersCount2;
134
+ setGlobalCSSVariables({
135
+ '--euiFixedHeadersOffset': getHeaderOffset()
136
+ });
137
+ if (euiFixedHeadersCount === 0) {
138
+ document.body.classList.remove('euiBody--headerIsFixed'); // TODO: Consider deleting this legacy className
139
+ }
140
+ };
141
+ }, [getHeaderOffset, setGlobalCSSVariables]);
142
+ var inlineStyles = (0, _react.useMemo)(function () {
143
+ return (0, _global_styling.logicalStyles)(_objectSpread({
144
+ top: topPosition
145
+ }, style));
146
+ }, [topPosition, style]);
147
+ return (0, _react2.jsx)("div", (0, _extends2.default)({
148
+ "data-fixed-header": true // Used by EuiFlyouts as a query selector
149
+ ,
150
+ style: inlineStyles
151
+ }, rest), children);
152
+ };
153
+ exports.EuiFixedHeader = EuiFixedHeader;
@@ -40,7 +40,7 @@ var euiHeaderStyles = function euiHeaderStyles(euiThemeContext) {
40
40
  euiHeader: /*#__PURE__*/(0, _react.css)("display:flex;justify-content:space-between;", (0, _global_styling.logicalCSS)('height', height), " ", (0, _global_styling.logicalCSS)('padding-horizontal', padding), " ", (0, _mixins.euiShadowSmall)(euiThemeContext), ";;label:euiHeader;"),
41
41
  // Position
42
42
  static: /*#__PURE__*/(0, _react.css)("z-index:", Number(euiTheme.levels.header) - 1, ";position:relative;;label:static;"),
43
- fixed: /*#__PURE__*/(0, _react.css)("z-index:", euiTheme.levels.header, ";position:fixed;", (0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('horizontal', 0), " &+[data-fixed-header]{", (0, _global_styling.logicalCSS)('top', height), ";};label:fixed;"),
43
+ fixed: /*#__PURE__*/(0, _react.css)("z-index:", euiTheme.levels.header, ";position:fixed;", (0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('horizontal', 0), ";;label:fixed;"),
44
44
  // Theme
45
45
  default: /*#__PURE__*/(0, _react.css)("background-color:", euiTheme.colors.emptyShade, ";", (0, _global_styling.logicalCSS)('border-bottom', "".concat(euiTheme.border.width.thin, " solid ").concat(borderColor)), ";;label:default;"),
46
46
  dark: /*#__PURE__*/(0, _react.css)(euiHeaderDarkStyles(euiThemeContext, borderColor), ";label:dark;")
@@ -905,6 +905,17 @@ Object.keys(_text_diff).forEach(function (key) {
905
905
  }
906
906
  });
907
907
  });
908
+ var _text_truncate = require("./text_truncate");
909
+ Object.keys(_text_truncate).forEach(function (key) {
910
+ if (key === "default" || key === "__esModule") return;
911
+ if (key in exports && exports[key] === _text_truncate[key]) return;
912
+ Object.defineProperty(exports, key, {
913
+ enumerable: true,
914
+ get: function get() {
915
+ return _text_truncate[key];
916
+ }
917
+ });
918
+ });
908
919
  var _timeline = require("./timeline");
909
920
  Object.keys(_timeline).forEach(function (key) {
910
921
  if (key === "default" || key === "__esModule") return;
@@ -21,8 +21,8 @@ var euiScaleMarkdownFormatText = function euiScaleMarkdownFormatText(euiTheme, o
21
21
  var _euiFontSize = (0, _global_styling.euiFontSize)(euiTheme, 'm', options),
22
22
  fontSize = _euiFontSize.fontSize,
23
23
  lineHeight = _euiFontSize.lineHeight;
24
- var measurement = options.measurement;
25
- var lineHeightSize = measurement === 'em' ? "".concat(lineHeight, "em") : lineHeight;
24
+ var unit = options.unit;
25
+ var lineHeightSize = unit === 'em' ? "".concat(lineHeight, "em") : lineHeight;
26
26
 
27
27
  // Custom scales
28
28
  var tablePaddingVertical = (0, _global_styling.mathWithUnits)(fontSize, function (x) {
@@ -43,19 +43,16 @@ var euiMarkdownFormatStyles = function euiMarkdownFormatStyles(euiTheme) {
43
43
  euiMarkdownFormat: /*#__PURE__*/(0, _react.css)(";label:euiMarkdownFormat;"),
44
44
  // Text sizes
45
45
  m: /*#__PURE__*/(0, _react.css)(euiScaleMarkdownFormatText(euiTheme, {
46
- measurement: 'rem',
47
46
  customScale: 'm'
48
47
  }), ";;label:m;"),
49
48
  s: /*#__PURE__*/(0, _react.css)(euiScaleMarkdownFormatText(euiTheme, {
50
- measurement: 'rem',
51
49
  customScale: 's'
52
50
  }), ";;label:s;"),
53
51
  xs: /*#__PURE__*/(0, _react.css)(euiScaleMarkdownFormatText(euiTheme, {
54
- measurement: 'rem',
55
52
  customScale: 'xs'
56
53
  }), ";;label:xs;"),
57
54
  relative: /*#__PURE__*/(0, _react.css)(euiScaleMarkdownFormatText(euiTheme, {
58
- measurement: 'em'
55
+ unit: 'em'
59
56
  }), ";;label:relative;")
60
57
  };
61
58
  };
@@ -20,7 +20,7 @@ var euiOverlayMaskStyles = function euiOverlayMaskStyles(_ref) {
20
20
  return {
21
21
  euiOverlayMask: /*#__PURE__*/(0, _css.css)("position:fixed;", (0, _global_styling.logicalCSS)('top', 0), " ", (0, _global_styling.logicalCSS)('left', 0), " ", (0, _global_styling.logicalCSS)('right', 0), " ", (0, _global_styling.logicalCSS)('bottom', 0), " display:flex;align-items:center;justify-content:center;", (0, _global_styling.logicalCSS)('padding-bottom', '10vh'), " animation:", _global_styling.euiAnimFadeIn, " ", euiTheme.animation.fast, " ease-in;background:", (0, _services.transparentize)(euiTheme.colors.ink, 0.5), ";;label:euiOverlayMask;"),
22
22
  aboveHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.mask, ";;label:aboveHeader;"),
23
- belowHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.maskBelowHeader, ";", (0, _global_styling.logicalCSS)('top', "".concat(euiTheme.base * 3, "px")), ";;label:belowHeader;")
23
+ belowHeader: /*#__PURE__*/(0, _css.css)("z-index:", euiTheme.levels.maskBelowHeader, ";", (0, _global_styling.logicalCSS)('top', 'var(--euiFixedHeadersOffset, 0)'), ";;label:belowHeader;")
24
24
  };
25
25
  };
26
26
  exports.euiOverlayMaskStyles = euiOverlayMaskStyles;
@@ -54,10 +54,8 @@ var EuiPageSidebar = function EuiPageSidebar(_ref) {
54
54
  (0, _react.useLayoutEffect)(function () {
55
55
  var updatedStyles = _objectSpread(_objectSpread({}, style), (0, _global_styling.logicalStyle)('min-width', isResponding ? '100%' : minWidth));
56
56
  if (sticky) {
57
- var _document$body$datase;
58
- var euiHeaderFixedCounter = Number((_document$body$datase = document.body.dataset.fixedHeaders) !== null && _document$body$datase !== void 0 ? _document$body$datase : 0);
59
- var offset = (0, _typeof2.default)(sticky) === 'object' ? sticky === null || sticky === void 0 ? void 0 : sticky.offset : themeContext.euiTheme.base * 3 * euiHeaderFixedCounter;
60
- updatedStyles = _objectSpread(_objectSpread(_objectSpread({}, updatedStyles), (0, _global_styling.logicalStyle)('top', offset)), (0, _global_styling.logicalStyle)('max-height', "calc(100vh - ".concat(offset, "px)")));
57
+ var offset = (0, _typeof2.default)(sticky) === 'object' ? "".concat(sticky === null || sticky === void 0 ? void 0 : sticky.offset, "px") : 'var(--euiFixedHeadersOffset, 0)';
58
+ updatedStyles = _objectSpread(_objectSpread(_objectSpread({}, updatedStyles), (0, _global_styling.logicalStyle)('top', offset)), (0, _global_styling.logicalStyle)('max-height', "calc(100vh - ".concat(offset, ")")));
61
59
  }
62
60
  setInlineStyles(updatedStyles);
63
61
  }, [style, sticky, themeContext.euiTheme.base, isResponding, minWidth]);
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports._EuiPageTemplate = exports.TemplateContext = exports.EuiPageTemplate = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
12
  var _react = _interopRequireWildcard(require("react"));
14
13
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -39,14 +38,6 @@ var TemplateContext = /*#__PURE__*/(0, _react.createContext)({
39
38
  bottomBar: {}
40
39
  });
41
40
  exports.TemplateContext = TemplateContext;
42
- var calculateOffset = function calculateOffset(base) {
43
- var _document$body$datase;
44
- if (typeof document === 'undefined') return 0; // SSR catch
45
-
46
- var euiHeaderFixedCounter = Number((_document$body$datase = document.body.dataset.fixedHeaders) !== null && _document$body$datase !== void 0 ? _document$body$datase : 0);
47
- return base * 3 * euiHeaderFixedCounter;
48
- };
49
-
50
41
  /**
51
42
  * Consumed via `EuiPageTemplate`,
52
43
  * it controls and propogates most of the shared props per direct child
@@ -62,7 +53,7 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
62
53
  _ref$grow = _ref.grow,
63
54
  grow = _ref$grow === void 0 ? true : _ref$grow,
64
55
  bottomBorder = _ref.bottomBorder,
65
- _offset = _ref.offset,
56
+ offset = _ref.offset,
66
57
  panelled = _ref.panelled,
67
58
  contentBorder = _ref.contentBorder,
68
59
  component = _ref.component,
@@ -71,14 +62,6 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
71
62
  _ref$minHeight = _ref.minHeight,
72
63
  minHeight = _ref$minHeight === void 0 ? '460px' : _ref$minHeight,
73
64
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
74
- var _useEuiTheme = (0, _services.useEuiTheme)(),
75
- euiTheme = _useEuiTheme.euiTheme;
76
- var _useState = (0, _react.useState)(function () {
77
- return _offset !== null && _offset !== void 0 ? _offset : calculateOffset(euiTheme.base);
78
- }),
79
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
80
- offset = _useState2[0],
81
- setOffset = _useState2[1];
82
65
  var templateContext = (0, _react.useContext)(TemplateContext);
83
66
 
84
67
  // Used as a target to insert the bottom bar component
@@ -86,11 +69,6 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
86
69
  prefix: 'EuiPageTemplateInner',
87
70
  conditionalId: mainProps === null || mainProps === void 0 ? void 0 : mainProps.id
88
71
  });
89
- (0, _react.useEffect)(function () {
90
- if (_offset === undefined) {
91
- setOffset(calculateOffset(euiTheme.base));
92
- }
93
- }, [_offset, euiTheme.base]);
94
72
 
95
73
  // Sections include page header
96
74
  var sections = [];
@@ -149,7 +127,7 @@ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
149
127
  });
150
128
  var _minHeight = grow ? "max(".concat(minHeight, ", 100vh)") : minHeight;
151
129
  var classes = (0, _classnames.default)('euiPageTemplate', className);
152
- var pageStyle = _objectSpread(_objectSpread(_objectSpread({}, (0, _global_styling.logicalStyle)('min-height', _minHeight)), (0, _global_styling.logicalStyle)('padding-top', offset)), rest.style);
130
+ var pageStyle = _objectSpread(_objectSpread(_objectSpread({}, (0, _global_styling.logicalStyle)('min-height', _minHeight)), (0, _global_styling.logicalStyle)('padding-top', offset !== null && offset !== void 0 ? offset : 'var(--euiFixedHeadersOffset, 0)')), rest.style);
153
131
  templateContext.header = getHeaderProps();
154
132
  templateContext.section = getSectionProps();
155
133
  templateContext.emptyPrompt = {
@@ -40,9 +40,9 @@ var euiScaleText = function euiScaleText(euiThemeContext, options) {
40
40
  fontSize = _euiFontSize.fontSize,
41
41
  lineHeight = _euiFontSize.lineHeight;
42
42
  var euiTheme = euiThemeContext.euiTheme;
43
- var measurement = options.measurement,
43
+ var unit = options.unit,
44
44
  _customScale = options.customScale;
45
- var lineHeightSize = measurement === 'em' ? "".concat(lineHeight, "em") : lineHeight;
45
+ var lineHeightSize = unit === 'em' ? "".concat(lineHeight, "em") : lineHeight;
46
46
  var headings = {
47
47
  h1: (0, _title.euiTitle)(euiThemeContext, 'l', options),
48
48
  h2: (0, _title.euiTitle)(euiThemeContext, 'm', options),
@@ -78,19 +78,16 @@ var euiTextStyles = function euiTextStyles(euiThemeContext) {
78
78
  constrainedWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-width', euiTextConstrainedMaxWidth), ";;label:constrainedWidth;"),
79
79
  // Sizes
80
80
  m: /*#__PURE__*/(0, _react.css)(euiScaleText(euiThemeContext, {
81
- measurement: 'rem',
82
81
  customScale: 'm'
83
82
  }), ";;label:m;"),
84
83
  s: /*#__PURE__*/(0, _react.css)(euiScaleText(euiThemeContext, {
85
- measurement: 'rem',
86
84
  customScale: 's'
87
85
  }), ";;label:s;"),
88
86
  xs: /*#__PURE__*/(0, _react.css)(euiScaleText(euiThemeContext, {
89
- measurement: 'rem',
90
87
  customScale: 'xs'
91
88
  }), ";;label:xs;"),
92
89
  relative: /*#__PURE__*/(0, _react.css)(euiScaleText(euiThemeContext, {
93
- measurement: 'em'
90
+ unit: 'em'
94
91
  }), ";;label:relative;")
95
92
  };
96
93
  };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "EuiTextTruncate", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _text_truncate.EuiTextTruncate;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "TruncationUtilsWithCanvas", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _utils.TruncationUtilsWithCanvas;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "TruncationUtilsWithDOM", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _utils.TruncationUtilsWithDOM;
22
+ }
23
+ });
24
+ var _text_truncate = require("./text_truncate");
25
+ var _utils = require("./utils");
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EuiTextTruncate = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _services = require("../../services");
14
+ var _resize_observer = require("../observer/resize_observer");
15
+ var _utils = require("./utils");
16
+ var _text_truncate = require("./text_truncate.styles");
17
+ var _react2 = require("@emotion/react");
18
+ var _excluded = ["width"],
19
+ _excluded2 = ["width", "children", "text", "truncation", "truncationOffset", "truncationPosition", "ellipsis", "containerRef", "measurementRenderAPI"],
20
+ _excluded3 = ["onResize"];
21
+ /*
22
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
+ * or more contributor license agreements. Licensed under the Elastic License
24
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
25
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
26
+ * Side Public License, v 1.
27
+ */
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+ 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; }
30
+ var TRUNCATION_TYPES = ['end', 'start', 'startEnd', 'middle'];
31
+ var EuiTextTruncate = function EuiTextTruncate(_ref) {
32
+ var width = _ref.width,
33
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
34
+ return width != null ? (0, _react2.jsx)(EuiTextTruncateWithWidth, (0, _extends2.default)({
35
+ width: width
36
+ }, props)) : (0, _react2.jsx)(EuiTextTruncateWithResizeObserver, props);
37
+ };
38
+ exports.EuiTextTruncate = EuiTextTruncate;
39
+ var EuiTextTruncateWithWidth = function EuiTextTruncateWithWidth(_ref2) {
40
+ var width = _ref2.width,
41
+ children = _ref2.children,
42
+ text = _ref2.text,
43
+ _ref2$truncation = _ref2.truncation,
44
+ _truncation = _ref2$truncation === void 0 ? 'end' : _ref2$truncation,
45
+ _ref2$truncationOffse = _ref2.truncationOffset,
46
+ _truncationOffset = _ref2$truncationOffse === void 0 ? 0 : _ref2$truncationOffse,
47
+ truncationPosition = _ref2.truncationPosition,
48
+ _ref2$ellipsis = _ref2.ellipsis,
49
+ ellipsis = _ref2$ellipsis === void 0 ? '…' : _ref2$ellipsis,
50
+ containerRef = _ref2.containerRef,
51
+ _ref2$measurementRend = _ref2.measurementRenderAPI,
52
+ measurementRenderAPI = _ref2$measurementRend === void 0 ? 'dom' : _ref2$measurementRend,
53
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
54
+ // Note: This needs to be a state and not a ref to trigger a rerender on mount
55
+ var _useState = (0, _react.useState)(null),
56
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
57
+ containerEl = _useState2[0],
58
+ setContainerEl = _useState2[1];
59
+ var refs = (0, _services.useCombinedRefs)([setContainerEl, containerRef]);
60
+
61
+ // Handle exceptions where we need to override the passed props
62
+ var _useMemo = (0, _react.useMemo)(function () {
63
+ var truncation = _truncation;
64
+ var truncationOffset = 0;
65
+ if (_truncation === 'end' || _truncation === 'start') {
66
+ if (0 < _truncationOffset && _truncationOffset < text.length) {
67
+ truncationOffset = _truncationOffset;
68
+ }
69
+ } else if (_truncation === 'startEnd' && truncationPosition != null) {
70
+ if (truncationPosition <= 0) {
71
+ truncation = 'end';
72
+ } else if (truncationPosition >= text.length) {
73
+ truncation = 'start';
74
+ }
75
+ }
76
+ return {
77
+ truncation: truncation,
78
+ truncationOffset: truncationOffset
79
+ };
80
+ }, [_truncation, _truncationOffset, truncationPosition, text.length]),
81
+ truncation = _useMemo.truncation,
82
+ truncationOffset = _useMemo.truncationOffset;
83
+ var truncatedText = (0, _react.useMemo)(function () {
84
+ var truncatedText = '';
85
+ if (!containerEl || !width) return truncatedText;
86
+ var params = {
87
+ fullText: text,
88
+ ellipsis: ellipsis,
89
+ container: containerEl,
90
+ availableWidth: width
91
+ };
92
+ var utils = measurementRenderAPI === 'canvas' ? new _utils.TruncationUtilsWithCanvas(params) : new _utils.TruncationUtilsWithDOM(params);
93
+ if (utils.checkIfTruncationIsNeeded() === false) {
94
+ truncatedText = text;
95
+ } else if (utils.checkSufficientEllipsisWidth(truncation) === false) {
96
+ truncatedText = '';
97
+ } else {
98
+ switch (truncation) {
99
+ case 'end':
100
+ truncatedText = utils.truncateEnd(truncationOffset);
101
+ break;
102
+ case 'start':
103
+ truncatedText = utils.truncateStart(truncationOffset);
104
+ break;
105
+ case 'startEnd':
106
+ if (truncationPosition == null) {
107
+ truncatedText = utils.truncateStartEndAtMiddle();
108
+ } else {
109
+ truncatedText = utils.truncateStartEndAtPosition(truncationPosition);
110
+ }
111
+ break;
112
+ case 'middle':
113
+ truncatedText = utils.truncateMiddle();
114
+ break;
115
+ }
116
+ }
117
+ if (measurementRenderAPI === 'dom') {
118
+ utils.cleanup();
119
+ }
120
+ return truncatedText;
121
+ }, [width, text, truncation, truncationOffset, truncationPosition, ellipsis, containerEl, measurementRenderAPI]);
122
+ var isTruncating = truncatedText !== text;
123
+ return (0, _react2.jsx)("div", (0, _extends2.default)({
124
+ css: _text_truncate.euiTextTruncateStyles.euiTextTruncate,
125
+ ref: refs,
126
+ title: isTruncating ? text : undefined
127
+ }, rest), isTruncating ? (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("span", {
128
+ css: _text_truncate.euiTextTruncateStyles.truncatedText,
129
+ "aria-hidden": true,
130
+ "data-test-subj": "truncatedText"
131
+ }, children ? children(truncatedText) : truncatedText), (0, _react2.jsx)("span", {
132
+ css: _text_truncate.euiTextTruncateStyles.fullText,
133
+ "data-test-subj": "fullText"
134
+ }, text)) : (0, _react2.jsx)("span", {
135
+ "data-test-subj": "fullText"
136
+ }, text));
137
+ };
138
+ var EuiTextTruncateWithResizeObserver = function EuiTextTruncateWithResizeObserver(_ref3) {
139
+ var _onResize = _ref3.onResize,
140
+ props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
141
+ var _useState3 = (0, _react.useState)(0),
142
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
143
+ width = _useState4[0],
144
+ setWidth = _useState4[1];
145
+ var onResize = (0, _react.useCallback)(function (_ref4) {
146
+ var width = _ref4.width;
147
+ setWidth(width);
148
+ _onResize === null || _onResize === void 0 ? void 0 : _onResize(width);
149
+ }, [_onResize]);
150
+ return (0, _react2.jsx)(_resize_observer.EuiResizeObserver, {
151
+ onResize: onResize
152
+ }, function (ref) {
153
+ return (0, _react2.jsx)(EuiTextTruncateWithWidth, (0, _extends2.default)({
154
+ width: width,
155
+ containerRef: ref
156
+ }, props));
157
+ });
158
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiTextTruncateStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
9
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
10
+ * or more contributor license agreements. Licensed under the Elastic License
11
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
12
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
13
+ * Side Public License, v 1.
14
+ */
15
+ var euiTextTruncateStyles = {
16
+ euiTextTruncate: process.env.NODE_ENV === "production" ? {
17
+ name: "7o5qnz-euiTextTruncate",
18
+ styles: "position:relative;overflow:hidden;white-space:nowrap;label:euiTextTruncate;"
19
+ } : {
20
+ name: "7o5qnz-euiTextTruncate",
21
+ styles: "position:relative;overflow:hidden;white-space:nowrap;label:euiTextTruncate;",
22
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
23
+ },
24
+ /**
25
+ * The below CSS is a hack to get double clicking and selecting the *full* text
26
+ * instead of the truncated text (useful for copying/pasting, and mimics how
27
+ * `text-overflow: ellipsis` works).
28
+ *
29
+ * Real talk: I'm lowkey amazed it works and it wouldn't surprise me if we ran into
30
+ * cross-browser issues with this at some point. Hopefully CSS natively implements
31
+ * custom text truncation some day (https://github.com/w3c/csswg-drafts/issues/3937)
32
+ * and there'll be no need for the entire component at that point 🙏
33
+ */
34
+ // Makes the truncated text unselectable/un-clickable
35
+ truncatedText: process.env.NODE_ENV === "production" ? {
36
+ name: "1dore6v-truncatedText",
37
+ styles: "user-select:none;pointer-events:none;label:truncatedText;"
38
+ } : {
39
+ name: "1dore6v-truncatedText",
40
+ styles: "user-select:none;pointer-events:none;label:truncatedText;",
41
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
42
+ },
43
+ // Positions the full text on top of the truncated text (so that clicking targets it)
44
+ // and gives it a color opacity of 0 so that it's not actually visible
45
+ fullText: process.env.NODE_ENV === "production" ? {
46
+ name: "1kxt4rj-fullText",
47
+ styles: "position:absolute;inset:0;overflow:hidden;color:rgba(0, 0, 0, 0);@supports (-webkit-hyphens: none){text-overflow:ellipsis;};label:fullText;"
48
+ } : {
49
+ name: "1kxt4rj-fullText",
50
+ styles: "position:absolute;inset:0;overflow:hidden;color:rgba(0, 0, 0, 0);@supports (-webkit-hyphens: none){text-overflow:ellipsis;};label:fullText;",
51
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
52
+ }
53
+ };
54
+ exports.euiTextTruncateStyles = euiTextTruncateStyles;