@elastic/eui 62.2.0 → 63.0.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 (222) hide show
  1. package/dist/eui_theme_dark.css +3 -270
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +3 -270
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/bottom_bar/bottom_bar.js +20 -3
  6. package/es/components/header/header.js +2 -0
  7. package/es/components/header/header_links/header_links.js +2 -1
  8. package/es/components/index.js +1 -0
  9. package/es/components/page/_bottom_border.js +1 -0
  10. package/es/components/page/_restrict_width.js +34 -7
  11. package/es/components/page/index.js +5 -3
  12. package/es/components/page/page.js +19 -30
  13. package/es/components/page/page.styles.js +43 -0
  14. package/es/components/page/page_body/page_body.js +18 -26
  15. package/es/components/page/page_body/page_body.styles.js +16 -0
  16. package/es/components/page/page_content/index.js +4 -4
  17. package/es/components/page/page_content/page_content.js +7 -2
  18. package/es/components/page/page_content/page_content_body.js +12 -7
  19. package/es/components/page/page_content/page_content_header.js +7 -2
  20. package/es/components/page/page_content/page_content_header_section.js +7 -2
  21. package/es/components/page/page_header/page_header.js +29 -172
  22. package/es/components/page/page_header/page_header.styles.js +16 -0
  23. package/es/components/page/page_header/page_header_content.js +84 -16
  24. package/es/components/page/page_header/page_header_content.styles.js +84 -0
  25. package/es/components/page/page_section/index.js +8 -0
  26. package/es/components/page/page_section/page_section.js +102 -0
  27. package/es/components/page/page_section/page_section.styles.js +43 -0
  28. package/es/components/page/page_side_bar/index.js +1 -1
  29. package/es/components/page/page_side_bar/page_side_bar.js +8 -3
  30. package/es/components/page/page_sidebar/index.js +8 -0
  31. package/es/components/page/page_sidebar/page_sidebar.js +110 -0
  32. package/es/components/page/page_sidebar/page_sidebar.styles.js +29 -0
  33. package/es/components/page/page_template.js +54 -154
  34. package/es/components/page_template/bottom_bar/page_bottom_bar.js +102 -0
  35. package/es/components/page_template/empty_prompt/page_empty_prompt.js +107 -0
  36. package/es/components/page_template/index.js +8 -0
  37. package/es/components/page_template/inner/index.js +8 -0
  38. package/es/components/page_template/inner/page_inner.js +51 -0
  39. package/es/components/page_template/inner/page_inner.styles.js +22 -0
  40. package/es/components/page_template/outer/index.js +8 -0
  41. package/es/components/page_template/outer/page_outer.js +59 -0
  42. package/es/components/page_template/outer/page_outer.styles.js +49 -0
  43. package/es/components/page_template/page_template.js +376 -0
  44. package/es/global_styling/functions/logicals.js +1 -1
  45. package/es/global_styling/mixins/_helpers.js +27 -9
  46. package/eui.d.ts +423 -49
  47. package/lib/components/bottom_bar/bottom_bar.js +20 -3
  48. package/lib/components/header/header.js +2 -0
  49. package/lib/components/header/header_links/header_links.js +2 -1
  50. package/lib/components/index.js +13 -0
  51. package/lib/components/page/_bottom_border.js +5 -0
  52. package/lib/components/page/_restrict_width.js +38 -7
  53. package/lib/components/page/index.js +28 -12
  54. package/lib/components/page/page.js +22 -34
  55. package/lib/components/page/page.styles.js +46 -0
  56. package/lib/components/page/page_body/page_body.js +20 -29
  57. package/lib/components/page/page_body/page_body.styles.js +27 -0
  58. package/lib/components/page/page_content/index.js +8 -8
  59. package/lib/components/page/page_content/page_content.js +8 -4
  60. package/lib/components/page/page_content/page_content_body.js +13 -9
  61. package/lib/components/page/page_content/page_content_header.js +8 -4
  62. package/lib/components/page/page_content/page_content_header_section.js +8 -4
  63. package/lib/components/page/page_header/page_header.js +31 -175
  64. package/lib/components/page/page_header/page_header.styles.js +27 -0
  65. package/lib/components/page/page_header/page_header_content.js +108 -16
  66. package/lib/components/page/page_header/page_header_content.styles.js +87 -0
  67. package/lib/components/page/page_section/index.js +13 -0
  68. package/lib/components/page/page_section/page_section.js +113 -0
  69. package/lib/components/page/page_section/page_section.styles.js +51 -0
  70. package/lib/components/page/page_side_bar/index.js +2 -2
  71. package/lib/components/page/page_side_bar/page_side_bar.js +9 -5
  72. package/lib/components/page/page_sidebar/index.js +13 -0
  73. package/lib/components/page/page_sidebar/page_sidebar.js +124 -0
  74. package/lib/components/page/page_sidebar/page_sidebar.styles.js +32 -0
  75. package/lib/components/page/page_template.js +76 -177
  76. package/lib/components/page_template/bottom_bar/page_bottom_bar.js +114 -0
  77. package/lib/components/page_template/empty_prompt/page_empty_prompt.js +116 -0
  78. package/lib/components/page_template/index.js +13 -0
  79. package/lib/components/page_template/inner/index.js +13 -0
  80. package/lib/components/page_template/inner/page_inner.js +60 -0
  81. package/lib/components/page_template/inner/page_inner.styles.js +35 -0
  82. package/lib/components/page_template/outer/index.js +13 -0
  83. package/lib/components/page_template/outer/page_outer.js +68 -0
  84. package/lib/components/page_template/outer/page_outer.styles.js +51 -0
  85. package/lib/components/page_template/page_template.js +399 -0
  86. package/lib/global_styling/functions/logicals.js +1 -1
  87. package/lib/global_styling/mixins/_helpers.js +27 -9
  88. package/optimize/es/components/bottom_bar/bottom_bar.js +1 -1
  89. package/optimize/es/components/header/header.js +2 -0
  90. package/optimize/es/components/header/header_links/header_links.js +2 -1
  91. package/optimize/es/components/index.js +1 -0
  92. package/optimize/es/components/page/_bottom_border.js +1 -0
  93. package/optimize/es/components/page/_restrict_width.js +34 -7
  94. package/optimize/es/components/page/index.js +5 -3
  95. package/optimize/es/components/page/page.js +18 -28
  96. package/optimize/es/components/page/page.styles.js +43 -0
  97. package/optimize/es/components/page/page_body/page_body.js +18 -25
  98. package/optimize/es/components/page/page_body/page_body.styles.js +16 -0
  99. package/optimize/es/components/page/page_content/index.js +4 -4
  100. package/optimize/es/components/page/page_content/page_content.js +6 -1
  101. package/optimize/es/components/page/page_content/page_content_body.js +10 -5
  102. package/optimize/es/components/page/page_content/page_content_header.js +6 -1
  103. package/optimize/es/components/page/page_content/page_content_header_section.js +6 -1
  104. package/optimize/es/components/page/page_header/page_header.js +20 -32
  105. package/optimize/es/components/page/page_header/page_header.styles.js +16 -0
  106. package/optimize/es/components/page/page_header/page_header_content.js +62 -14
  107. package/optimize/es/components/page/page_header/page_header_content.styles.js +84 -0
  108. package/optimize/es/components/page/page_section/index.js +8 -0
  109. package/optimize/es/components/page/page_section/page_section.js +51 -0
  110. package/optimize/es/components/page/page_section/page_section.styles.js +43 -0
  111. package/optimize/es/components/page/page_side_bar/index.js +1 -1
  112. package/optimize/es/components/page/page_side_bar/page_side_bar.js +6 -1
  113. package/optimize/es/components/page/page_sidebar/index.js +8 -0
  114. package/optimize/es/components/page/page_sidebar/page_sidebar.js +60 -0
  115. package/optimize/es/components/page/page_sidebar/page_sidebar.styles.js +29 -0
  116. package/optimize/es/components/page/page_template.js +29 -9
  117. package/optimize/es/components/page_template/bottom_bar/page_bottom_bar.js +70 -0
  118. package/optimize/es/components/page_template/empty_prompt/page_empty_prompt.js +61 -0
  119. package/optimize/es/components/page_template/index.js +8 -0
  120. package/optimize/es/components/page_template/inner/index.js +8 -0
  121. package/optimize/es/components/page_template/inner/page_inner.js +47 -0
  122. package/optimize/es/components/page_template/inner/page_inner.styles.js +22 -0
  123. package/optimize/es/components/page_template/outer/index.js +8 -0
  124. package/optimize/es/components/page_template/outer/page_outer.js +33 -0
  125. package/optimize/es/components/page_template/outer/page_outer.styles.js +49 -0
  126. package/optimize/es/components/page_template/page_template.js +202 -0
  127. package/optimize/es/global_styling/functions/logicals.js +1 -1
  128. package/optimize/es/global_styling/mixins/_helpers.js +27 -9
  129. package/optimize/lib/components/bottom_bar/bottom_bar.js +1 -1
  130. package/optimize/lib/components/header/header.js +2 -0
  131. package/optimize/lib/components/header/header_links/header_links.js +2 -1
  132. package/optimize/lib/components/index.js +13 -0
  133. package/optimize/lib/components/page/_bottom_border.js +5 -0
  134. package/optimize/lib/components/page/_restrict_width.js +38 -7
  135. package/optimize/lib/components/page/index.js +28 -12
  136. package/optimize/lib/components/page/page.js +21 -33
  137. package/optimize/lib/components/page/page.styles.js +46 -0
  138. package/optimize/lib/components/page/page_body/page_body.js +20 -29
  139. package/optimize/lib/components/page/page_body/page_body.styles.js +27 -0
  140. package/optimize/lib/components/page/page_content/index.js +8 -8
  141. package/optimize/lib/components/page/page_content/page_content.js +7 -3
  142. package/optimize/lib/components/page/page_content/page_content_body.js +11 -7
  143. package/optimize/lib/components/page/page_content/page_content_header.js +7 -3
  144. package/optimize/lib/components/page/page_content/page_content_header_section.js +7 -3
  145. package/optimize/lib/components/page/page_header/page_header.js +22 -36
  146. package/optimize/lib/components/page/page_header/page_header.styles.js +27 -0
  147. package/optimize/lib/components/page/page_header/page_header_content.js +66 -13
  148. package/optimize/lib/components/page/page_header/page_header_content.styles.js +87 -0
  149. package/optimize/lib/components/page/page_section/index.js +13 -0
  150. package/optimize/lib/components/page/page_section/page_section.js +62 -0
  151. package/optimize/lib/components/page/page_section/page_section.styles.js +51 -0
  152. package/optimize/lib/components/page/page_side_bar/index.js +2 -2
  153. package/optimize/lib/components/page/page_side_bar/page_side_bar.js +7 -3
  154. package/optimize/lib/components/page/page_sidebar/index.js +13 -0
  155. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +79 -0
  156. package/optimize/lib/components/page/page_sidebar/page_sidebar.styles.js +32 -0
  157. package/optimize/lib/components/page/page_template.js +51 -33
  158. package/optimize/lib/components/page_template/bottom_bar/page_bottom_bar.js +85 -0
  159. package/optimize/lib/components/page_template/empty_prompt/page_empty_prompt.js +71 -0
  160. package/optimize/lib/components/page_template/index.js +13 -0
  161. package/optimize/lib/components/page_template/inner/index.js +13 -0
  162. package/optimize/lib/components/page_template/inner/page_inner.js +57 -0
  163. package/optimize/lib/components/page_template/inner/page_inner.styles.js +35 -0
  164. package/optimize/lib/components/page_template/outer/index.js +13 -0
  165. package/optimize/lib/components/page_template/outer/page_outer.js +42 -0
  166. package/optimize/lib/components/page_template/outer/page_outer.styles.js +51 -0
  167. package/optimize/lib/components/page_template/page_template.js +228 -0
  168. package/optimize/lib/global_styling/functions/logicals.js +1 -1
  169. package/optimize/lib/global_styling/mixins/_helpers.js +27 -9
  170. package/package.json +1 -1
  171. package/src/components/page/_index.scss +0 -5
  172. package/src/components/page/page_content/_page_content_body.scss +10 -1
  173. package/src/components/tabs/_tabs.scss +2 -0
  174. package/test-env/components/bottom_bar/bottom_bar.js +20 -3
  175. package/test-env/components/header/header.js +2 -0
  176. package/test-env/components/header/header_links/header_links.js +2 -1
  177. package/test-env/components/index.js +13 -0
  178. package/test-env/components/page/_bottom_border.js +5 -0
  179. package/test-env/components/page/_restrict_width.js +38 -7
  180. package/test-env/components/page/index.js +28 -12
  181. package/test-env/components/page/page.js +22 -34
  182. package/test-env/components/page/page.styles.js +46 -0
  183. package/test-env/components/page/page_body/page_body.js +20 -29
  184. package/test-env/components/page/page_body/page_body.styles.js +27 -0
  185. package/test-env/components/page/page_content/index.js +8 -8
  186. package/test-env/components/page/page_content/page_content.js +8 -4
  187. package/test-env/components/page/page_content/page_content_body.js +13 -9
  188. package/test-env/components/page/page_content/page_content_header.js +8 -4
  189. package/test-env/components/page/page_content/page_content_header_section.js +8 -4
  190. package/test-env/components/page/page_header/page_header.js +31 -175
  191. package/test-env/components/page/page_header/page_header.styles.js +27 -0
  192. package/test-env/components/page/page_header/page_header_content.js +109 -16
  193. package/test-env/components/page/page_header/page_header_content.styles.js +87 -0
  194. package/test-env/components/page/page_section/index.js +13 -0
  195. package/test-env/components/page/page_section/page_section.js +110 -0
  196. package/test-env/components/page/page_section/page_section.styles.js +51 -0
  197. package/test-env/components/page/page_side_bar/index.js +2 -2
  198. package/test-env/components/page/page_side_bar/page_side_bar.js +9 -5
  199. package/test-env/components/page/page_sidebar/index.js +13 -0
  200. package/test-env/components/page/page_sidebar/page_sidebar.js +113 -0
  201. package/test-env/components/page/page_sidebar/page_sidebar.styles.js +32 -0
  202. package/test-env/components/page/page_template.js +76 -178
  203. package/test-env/components/page_template/bottom_bar/page_bottom_bar.js +102 -0
  204. package/test-env/components/page_template/empty_prompt/page_empty_prompt.js +114 -0
  205. package/test-env/components/page_template/index.js +13 -0
  206. package/test-env/components/page_template/inner/index.js +13 -0
  207. package/test-env/components/page_template/inner/page_inner.js +57 -0
  208. package/test-env/components/page_template/inner/page_inner.styles.js +35 -0
  209. package/test-env/components/page_template/outer/index.js +13 -0
  210. package/test-env/components/page_template/outer/page_outer.js +65 -0
  211. package/test-env/components/page_template/outer/page_outer.styles.js +51 -0
  212. package/test-env/components/page_template/page_template.js +387 -0
  213. package/test-env/global_styling/functions/logicals.js +1 -1
  214. package/test-env/global_styling/mixins/_helpers.js +27 -9
  215. package/src/components/page/_mixins.scss +0 -12
  216. package/src/components/page/_page.scss +0 -41
  217. package/src/components/page/page_body/_index.scss +0 -1
  218. package/src/components/page/page_body/_page_body.scss +0 -45
  219. package/src/components/page/page_header/_index.scss +0 -3
  220. package/src/components/page/page_header/_page_header.scss +0 -78
  221. package/src/components/page/page_header/_page_header_content.scss +0 -15
  222. package/src/components/page/page_header/_page_header_section.scss +0 -26
@@ -0,0 +1,387 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports._EuiPageTemplate = exports.TemplateContext = exports.EuiPageTemplate = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _propTypes = _interopRequireDefault(require("prop-types"));
23
+
24
+ var _classnames = _interopRequireDefault(require("classnames"));
25
+
26
+ var _outer = require("./outer");
27
+
28
+ var _inner = require("./inner");
29
+
30
+ var _page_bottom_bar = require("./bottom_bar/page_bottom_bar");
31
+
32
+ var _page_empty_prompt = require("./empty_prompt/page_empty_prompt");
33
+
34
+ var _page = require("../page");
35
+
36
+ var _services = require("../../services");
37
+
38
+ var _global_styling = require("../../global_styling");
39
+
40
+ var _react2 = require("@emotion/react");
41
+
42
+ var _excluded = ["children", "restrictWidth", "paddingSize", "grow", "bottomBorder", "offset", "panelled", "contentBorder", "mainProps", "className", "minHeight", "responsive"];
43
+
44
+ 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); }
45
+
46
+ 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; }
47
+
48
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
49
+
50
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
51
+
52
+ var TemplateContext = /*#__PURE__*/(0, _react.createContext)({
53
+ section: {},
54
+ header: {},
55
+ emptyPrompt: {},
56
+ bottomBar: {}
57
+ });
58
+ exports.TemplateContext = TemplateContext;
59
+
60
+ /**
61
+ * Consumed via `EuiPageTemplate`,
62
+ * it controls and propogates most of the shared props per direct child
63
+ */
64
+ var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
65
+ var children = _ref.children,
66
+ _ref$restrictWidth = _ref.restrictWidth,
67
+ restrictWidth = _ref$restrictWidth === void 0 ? true : _ref$restrictWidth,
68
+ _ref$paddingSize = _ref.paddingSize,
69
+ paddingSize = _ref$paddingSize === void 0 ? 'l' : _ref$paddingSize,
70
+ _ref$grow = _ref.grow,
71
+ grow = _ref$grow === void 0 ? true : _ref$grow,
72
+ bottomBorder = _ref.bottomBorder,
73
+ _offset = _ref.offset,
74
+ panelled = _ref.panelled,
75
+ contentBorder = _ref.contentBorder,
76
+ mainProps = _ref.mainProps,
77
+ className = _ref.className,
78
+ _ref$minHeight = _ref.minHeight,
79
+ minHeight = _ref$minHeight === void 0 ? '460px' : _ref$minHeight,
80
+ _ref$responsive = _ref.responsive,
81
+ responsive = _ref$responsive === void 0 ? ['xs', 's'] : _ref$responsive,
82
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
83
+
84
+ var _useEuiTheme = (0, _services.useEuiTheme)(),
85
+ euiTheme = _useEuiTheme.euiTheme;
86
+
87
+ var _useState = (0, _react.useState)(_offset),
88
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
89
+ offset = _useState2[0],
90
+ setOffset = _useState2[1];
91
+
92
+ var templateContext = (0, _react.useContext)(TemplateContext); // Used as a target to insert the bottom bar component
93
+
94
+ var pageInnerId = (0, _services.useGeneratedHtmlId)({
95
+ prefix: 'EuiPageTemplateInner',
96
+ conditionalId: mainProps === null || mainProps === void 0 ? void 0 : mainProps.id
97
+ });
98
+ (0, _react.useEffect)(function () {
99
+ if (_offset === undefined) {
100
+ var euiHeaderFixedCounter = Number(document.body.dataset.fixedHeaders);
101
+ setOffset(euiTheme.base * 3 * euiHeaderFixedCounter);
102
+ }
103
+ }, [_offset, euiTheme.base]); // Sections include page header
104
+
105
+ var sections = [];
106
+ var sidebar = [];
107
+
108
+ var getBottomBorder = function getBottomBorder() {
109
+ if (bottomBorder !== undefined) {
110
+ return bottomBorder;
111
+ } else {
112
+ return sidebar.length ? true : 'extended';
113
+ }
114
+ };
115
+
116
+ var getHeaderProps = function getHeaderProps() {
117
+ return {
118
+ restrictWidth: restrictWidth,
119
+ paddingSize: paddingSize,
120
+ bottomBorder: getBottomBorder()
121
+ };
122
+ };
123
+
124
+ var getSectionProps = function getSectionProps() {
125
+ return {
126
+ restrictWidth: restrictWidth,
127
+ paddingSize: paddingSize,
128
+ color: panelled === false ? 'transparent' : 'plain'
129
+ };
130
+ };
131
+
132
+ var getSideBarProps = function getSideBarProps() {
133
+ return {
134
+ paddingSize: paddingSize,
135
+ responsive: responsive
136
+ };
137
+ };
138
+
139
+ var getBottomBarProps = function getBottomBarProps() {
140
+ return {
141
+ restrictWidth: restrictWidth,
142
+ paddingSize: paddingSize,
143
+ parent: "#".concat(pageInnerId)
144
+ };
145
+ };
146
+
147
+ var innerPanelled = function innerPanelled() {
148
+ return panelled === false ? false : Boolean(sidebar.length > 0);
149
+ };
150
+
151
+ var innerBordered = function innerBordered() {
152
+ return contentBorder !== undefined ? contentBorder : Boolean(sidebar.length > 0);
153
+ };
154
+
155
+ _react.default.Children.toArray(children).forEach(function (child, index) {
156
+ if (! /*#__PURE__*/_react.default.isValidElement(child)) return; // Skip non-components
157
+
158
+ switch (child.type) {
159
+ case _page.EuiPageSidebar:
160
+ sidebar.push( /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({
161
+ key: "sidebar".concat(index)
162
+ }, getSideBarProps()), child.props)));
163
+ break;
164
+
165
+ default:
166
+ sections.push(child);
167
+ }
168
+ });
169
+
170
+ var _minHeight = grow ? "max(".concat(minHeight, ", 100vh)") : minHeight;
171
+
172
+ var classes = (0, _classnames.default)('euiPageTemplate', className);
173
+
174
+ var pageStyle = _objectSpread(_objectSpread(_objectSpread({}, (0, _global_styling.logicalStyle)('min-height', _minHeight)), (0, _global_styling.logicalStyle)('padding-top', offset)), rest.style);
175
+
176
+ templateContext.header = getHeaderProps();
177
+ templateContext.section = getSectionProps();
178
+ templateContext.emptyPrompt = {
179
+ panelled: innerPanelled() ? true : panelled,
180
+ grow: true
181
+ };
182
+ templateContext.bottomBar = getBottomBarProps();
183
+ return (0, _react2.jsx)(TemplateContext.Provider, {
184
+ value: templateContext
185
+ }, (0, _react2.jsx)(_outer._EuiPageOuter, (0, _extends2.default)({}, rest, {
186
+ responsive: responsive,
187
+ style: pageStyle,
188
+ className: classes
189
+ }), sidebar, (0, _react2.jsx)(_inner._EuiPageInner, (0, _extends2.default)({}, mainProps, {
190
+ id: pageInnerId,
191
+ border: innerBordered(),
192
+ panelled: innerPanelled(),
193
+ responsive: responsive
194
+ }), sections)));
195
+ };
196
+
197
+ exports._EuiPageTemplate = _EuiPageTemplate;
198
+ _EuiPageTemplate.propTypes = {
199
+ /**
200
+ * Adds `flex-grow: 1` to the whole page for stretching to fit vertically.
201
+ * Must be wrapped inside a flexbox, preferrably with `min-height: 100vh`
202
+ */
203
+ grow: _propTypes.default.bool,
204
+
205
+ /**
206
+ * Changes the `flex-direction` property.
207
+ * Flip to `column` when not including a sidebar.
208
+ */
209
+ direction: _propTypes.default.oneOf(["row", "column"]),
210
+
211
+ /**
212
+ * When direction is `row`, it will flip to `column` when within these breakpoints
213
+ */
214
+ responsive: _propTypes.default.arrayOf(_propTypes.default.any.isRequired),
215
+ className: _propTypes.default.string,
216
+ "aria-label": _propTypes.default.string,
217
+ "data-test-subj": _propTypes.default.string,
218
+
219
+ /**
220
+ * Sets the max-width of the page,
221
+ * set to `true` to use the default size of `1200px`,
222
+ * set to `false` to not restrict the width,
223
+ * set to a number for a custom width in px,
224
+ * set to a string for a custom width in custom measurement.
225
+ */
226
+ restrictWidth: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired]),
227
+
228
+ /**
229
+ * Adds a bottom border to separate it from the content after;
230
+ * Passing `extended` will ensure the border touches the sides of the parent container.
231
+ */
232
+ bottomBorder: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.oneOf(["extended"])]),
233
+
234
+ /**
235
+ * Applies a top or left border to the inner contents
236
+ * to add separation between content and sidebar when a sidebar exists.
237
+ */
238
+ contentBorder: _propTypes.default.bool,
239
+
240
+ /**
241
+ * Minimum height in which to enforce scrolling
242
+ */
243
+ minHeight: _propTypes.default.any,
244
+
245
+ /**
246
+ * To account for any fixed elements like headers,
247
+ * pass in the value of the total height of those fixed elements.
248
+ * Otherwise they will be calculated based on the data attributes on the body element.
249
+ */
250
+ offset: _propTypes.default.number,
251
+
252
+ /**
253
+ * Passes through some common HTML attributes to the `main` content wrapper
254
+ */
255
+ mainProps: _propTypes.default.shape({
256
+ className: _propTypes.default.string,
257
+ "aria-label": _propTypes.default.string,
258
+ "data-test-subj": _propTypes.default.string
259
+ })
260
+ };
261
+
262
+ var _EuiPageSection = function _EuiPageSection(props) {
263
+ var templateContext = (0, _react.useContext)(TemplateContext);
264
+ return (0, _react2.jsx)(_page.EuiPageSection, (0, _extends2.default)({}, templateContext.section, {
265
+ grow: true
266
+ }, props));
267
+ };
268
+
269
+ _EuiPageSection.propTypes = {
270
+ className: _propTypes.default.string,
271
+ "aria-label": _propTypes.default.string,
272
+ "data-test-subj": _propTypes.default.string,
273
+
274
+ /**
275
+ * Sets the max-width of the page,
276
+ * set to `true` to use the default size of `1200px`,
277
+ * set to `false` to not restrict the width,
278
+ * set to a number for a custom width in px,
279
+ * set to a string for a custom width in custom measurement.
280
+ */
281
+ restrictWidth: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired]),
282
+
283
+ /**
284
+ * Background color of the section;
285
+ * Usually a lightened form of the brand colors
286
+ */
287
+ color: _propTypes.default.any,
288
+
289
+ /**
290
+ * Padding for all four sides
291
+ */
292
+ paddingSize: _propTypes.default.any,
293
+
294
+ /**
295
+ * Horizontal and/or vertical alignment of the section contents
296
+ */
297
+ alignment: _propTypes.default.any,
298
+
299
+ /**
300
+ * When true the panel will grow in height to fill container if parent is a flex group
301
+ */
302
+ grow: _propTypes.default.bool,
303
+
304
+ /**
305
+ * Passed down to the div wrapper of the section contents
306
+ */
307
+ contentProps: _propTypes.default.any
308
+ };
309
+
310
+ var _EuiPageHeader = function _EuiPageHeader(props) {
311
+ var templateContext = (0, _react.useContext)(TemplateContext);
312
+ return (0, _react2.jsx)(_page.EuiPageHeader, (0, _extends2.default)({}, templateContext.header, props));
313
+ };
314
+
315
+ _EuiPageHeader.propTypes = {
316
+ /**
317
+ * Adjust the overall padding.
318
+ */
319
+ paddingSize: _propTypes.default.any,
320
+ className: _propTypes.default.string,
321
+ "aria-label": _propTypes.default.string,
322
+ "data-test-subj": _propTypes.default.string,
323
+
324
+ /**
325
+ * Sets the max-width of the page,
326
+ * set to `true` to use the default size of `1200px`,
327
+ * set to `false` to not restrict the width,
328
+ * set to a number for a custom width in px,
329
+ * set to a string for a custom width in custom measurement.
330
+ */
331
+ restrictWidth: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired]),
332
+
333
+ /**
334
+ * Adds a bottom border to separate it from the content after;
335
+ * Passing `extended` will ensure the border touches the sides of the parent container.
336
+ */
337
+ bottomBorder: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.oneOf(["extended"])])
338
+ };
339
+
340
+ var _EuiPageEmptyPrompt = function _EuiPageEmptyPrompt(props) {
341
+ var templateContext = (0, _react.useContext)(TemplateContext);
342
+ return (0, _react2.jsx)(_page_empty_prompt._EuiPageEmptyPrompt, (0, _extends2.default)({}, templateContext.emptyPrompt, props));
343
+ };
344
+
345
+ _EuiPageEmptyPrompt.propTypes = {
346
+ className: _propTypes.default.string,
347
+ "aria-label": _propTypes.default.string,
348
+ "data-test-subj": _propTypes.default.string,
349
+ restrictWidth: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired]),
350
+ color: _propTypes.default.any,
351
+ paddingSize: _propTypes.default.any,
352
+ alignment: _propTypes.default.any,
353
+ grow: _propTypes.default.bool,
354
+ contentProps: _propTypes.default.any,
355
+ panelled: _propTypes.default.bool
356
+ };
357
+
358
+ var _EuiPageBottomBar = function _EuiPageBottomBar(props) {
359
+ var _useContext = (0, _react.useContext)(TemplateContext),
360
+ bottomBar = _useContext.bottomBar;
361
+
362
+ return (0, _react2.jsx)(_page_bottom_bar._EuiPageBottomBar, (0, _extends2.default)({}, bottomBar, props));
363
+ };
364
+
365
+ _EuiPageBottomBar.propTypes = {
366
+ /**
367
+ * The reference id of the element to insert into
368
+ */
369
+ parent: _propTypes.default.string,
370
+
371
+ /**
372
+ * Sets the max-width of the page,
373
+ * set to `true` to use the default size of `1200px`,
374
+ * set to `false` to not restrict the width,
375
+ * set to a number for a custom width in px,
376
+ * set to a string for a custom width in custom measurement.
377
+ */
378
+ restrictWidth: _propTypes.default.oneOfType([_propTypes.default.bool.isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired])
379
+ };
380
+ var EuiPageTemplate = Object.assign(_EuiPageTemplate, {
381
+ Sidebar: _page.EuiPageSidebar,
382
+ Header: _EuiPageHeader,
383
+ Section: _EuiPageSection,
384
+ BottomBar: _EuiPageBottomBar,
385
+ EmptyPrompt: _EuiPageEmptyPrompt
386
+ });
387
+ exports.EuiPageTemplate = EuiPageTemplate;
@@ -130,7 +130,7 @@ var logicalStyle = function logicalStyle(property, value) {
130
130
  var camelCasedProperty = logicals[property].replace(/-\w/g, function (str) {
131
131
  return str.charAt(1).toUpperCase();
132
132
  });
133
- return (0, _defineProperty2.default)({}, camelCasedProperty, "".concat(value));
133
+ return (0, _defineProperty2.default)({}, camelCasedProperty, value);
134
134
  };
135
135
  /**
136
136
  *
@@ -90,24 +90,37 @@ var euiOverflowShadowStyles = function euiOverflowShadowStyles(_ref3) {
90
90
  * Browser's supporting `:focus-visible` will still show outline on keyboard focus only.
91
91
  * Others like Safari, won't show anything at all.
92
92
  */
93
- // TODO: How do we use Emotion to output the CSS class utilities instead?
94
93
 
95
94
 
95
+ // TODO: How do we use Emotion to output the CSS class utilities instead?
96
96
  var euiYScroll = function euiYScroll(euiTheme) {
97
- return "\n ".concat(euiScrollBarStyles(euiTheme), "\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n &:focus {\n outline: none; /* 1 */\n }\n");
97
+ var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
98
+ height = _ref5.height;
99
+
100
+ return "\n ".concat(euiScrollBarStyles(euiTheme), "\n height: ").concat(height || '100%', ";\n overflow-y: auto;\n overflow-x: hidden;\n &:focus {\n outline: none; /* 1 */\n }\n");
98
101
  };
99
102
 
100
103
  exports.euiYScroll = euiYScroll;
101
104
 
102
105
  var useEuiYScroll = function useEuiYScroll() {
106
+ var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
107
+ height = _ref6.height;
108
+
103
109
  var euiTheme = (0, _theme.useEuiTheme)();
104
- return euiYScroll(euiTheme);
110
+ return euiYScroll(euiTheme, {
111
+ height: height
112
+ });
105
113
  };
106
114
 
107
115
  exports.useEuiYScroll = useEuiYScroll;
108
116
 
109
117
  var euiYScrollWithShadows = function euiYScrollWithShadows(euiTheme) {
110
- return "\n ".concat(euiYScroll(euiTheme), "\n ").concat(euiOverflowShadowStyles(euiTheme, {
118
+ var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
119
+ height = _ref7.height;
120
+
121
+ return "\n ".concat(euiYScroll(euiTheme, {
122
+ height: height
123
+ }), "\n ").concat(euiOverflowShadowStyles(euiTheme, {
111
124
  direction: 'y'
112
125
  }), "\n");
113
126
  };
@@ -115,8 +128,13 @@ var euiYScrollWithShadows = function euiYScrollWithShadows(euiTheme) {
115
128
  exports.euiYScrollWithShadows = euiYScrollWithShadows;
116
129
 
117
130
  var useEuiYScrollWithShadows = function useEuiYScrollWithShadows() {
131
+ var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
132
+ height = _ref8.height;
133
+
118
134
  var euiTheme = (0, _theme.useEuiTheme)();
119
- return euiYScrollWithShadows(euiTheme);
135
+ return euiYScrollWithShadows(euiTheme, {
136
+ height: height
137
+ });
120
138
  };
121
139
 
122
140
  exports.useEuiYScrollWithShadows = useEuiYScrollWithShadows;
@@ -150,10 +168,10 @@ var useEuiXScrollWithShadows = function useEuiXScrollWithShadows() {
150
168
  exports.useEuiXScrollWithShadows = useEuiXScrollWithShadows;
151
169
 
152
170
  var euiOverflowScroll = function euiOverflowScroll(euiTheme) {
153
- var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
154
- direction = _ref5.direction,
155
- _ref5$mask = _ref5.mask,
156
- mask = _ref5$mask === void 0 ? false : _ref5$mask;
171
+ var _ref9 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
172
+ direction = _ref9.direction,
173
+ _ref9$mask = _ref9.mask,
174
+ mask = _ref9$mask === void 0 ? false : _ref9$mask;
157
175
 
158
176
  switch (direction) {
159
177
  case 'y':
@@ -1,12 +0,0 @@
1
- @mixin euiPageRestrictWidth {
2
- &--restrictWidth-default,
3
- &--restrictWidth-custom {
4
- margin-left: auto;
5
- margin-right: auto;
6
- width: 100%;
7
- }
8
-
9
- &--restrictWidth-default {
10
- max-width: $euiPageDefaultMaxWidth;
11
- }
12
- }
@@ -1,41 +0,0 @@
1
- .euiPage {
2
- @include euiPageRestrictWidth;
3
- display: flex;
4
- background-color: $euiPageBackgroundColor;
5
- flex-shrink: 0; // Ensures Safari doesn't shrink height beyond contents
6
- max-width: 100%; // Ensures Firefox doesn't expand width beyond bounds
7
-
8
- &--grow {
9
- flex-grow: 1;
10
- }
11
-
12
- &--column {
13
- flex-direction: column;
14
- }
15
-
16
- @include euiBreakpoint('xs', 's') {
17
- flex-direction: column;
18
- }
19
- }
20
-
21
- // Uses the same values as EuiPanel
22
- @each $modifier, $amount in $euiPanelPaddingModifiers {
23
- .euiPage--#{$modifier} {
24
- padding: $amount;
25
-
26
- .euiPageSideBar {
27
- min-width: $euiPageSidebarMinWidth;
28
- margin-right: $amount;
29
-
30
- // sass-lint:disable-block mixins-before-declarations
31
- @include euiBreakpoint('xs', 's') {
32
- margin-right: 0;
33
- margin-bottom: $amount;
34
- }
35
- }
36
-
37
- .euiPageBody > .euiPageHeader {
38
- margin-bottom: $amount;
39
- }
40
- }
41
- }
@@ -1 +0,0 @@
1
- @import 'page_body';
@@ -1,45 +0,0 @@
1
- .euiPageBody {
2
- @include euiPageRestrictWidth;
3
- display: flex;
4
- flex-direction: column;
5
- align-items: stretch;
6
- flex: 1 1 100%;
7
- // Make sure that inner flex layouts don't get larger than this container
8
- max-width: 100%;
9
- min-width: 0;
10
- // Commenting out for posterity
11
- // Adding z-index disallows fullscreens like EuiDataGrid to get above the headers
12
- // z-index: 1; // Ensures any side nav emphasis gets rendered under shadow
13
-
14
- // Assumes that in the default theme, the borders are touching the edge of the EuiPage so remove them.
15
- &.euiPageBody--borderRadiusNone { // Nested for specificity
16
- border-top-width: 0;
17
- border-right-width: 0;
18
- border-bottom-width: 0;
19
- }
20
- }
21
-
22
- // Uses the same values as EuiPanel
23
- @each $modifier, $amount in $euiPanelPaddingModifiers {
24
- .euiPageBody--#{$modifier} {
25
- padding: $amount;
26
-
27
- & > .euiPageHeader:not([class*='--padding']) {
28
- // Match the body's padding for spacing if it doesn't have it's own
29
- margin-bottom: $amount;
30
- // When the page header is actually inside of a panelled page body,
31
- // We want to add some extra separation between it and the content body
32
- border-bottom: $euiBorderThin;
33
-
34
- &:not(.euiPageHeader--tabsAtBottom):not(.euiPageHeader--onlyTabs) {
35
- padding-bottom: $amount;
36
- }
37
- }
38
-
39
- // When only tabs, remove all padding
40
- & > .euiPageHeader.euiPageHeader--onlyTabs {
41
- padding-top: 0;
42
- }
43
- }
44
- }
45
-
@@ -1,3 +0,0 @@
1
- @import 'page_header';
2
- @import 'page_header_content';
3
- @import 'page_header_section';
@@ -1,78 +0,0 @@
1
- /**
2
- * Note: Bottom margin is added in _page.scss when EuiPage has `paddingSize`
3
- * Or it's added in _page_body.scss when EuiPageBody has `paddingSize`
4
- */
5
-
6
- .euiPageHeader {
7
- @include euiPageRestrictWidth;
8
- width: 100%;
9
- display: flex;
10
- flex-direction: row;
11
- justify-content: space-between;
12
- align-items: center;
13
- flex-shrink: 0; // Ensures Safari doesn't shrink beyond contents
14
- }
15
-
16
- .euiPageHeader--bottomBorder {
17
- border-bottom: $euiBorderThin;
18
-
19
- &:not(.euiPageHeader--tabsAtBottom):not(.euiPageHeader--onlyTabs) {
20
- // Default padding to separate contents (unless there's tabs)
21
- padding-bottom: map-get($euiPanelPaddingModifiers, 'paddingLarge');
22
- }
23
- }
24
-
25
- // When there's only tabs, make them and take up the "whole" vertical space
26
- .euiPageHeader--onlyTabs {
27
- padding-top: $euiSizeS;
28
-
29
- .euiTabs--xlarge .euiTab {
30
- line-height: $euiSize * 4.5;
31
- height: $euiSize * 4.5;
32
- }
33
- }
34
-
35
- // Uses the same values as EuiPanel
36
- @each $modifier, $amount in $euiPanelPaddingModifiers {
37
- .euiPageHeader--#{$modifier} {
38
- padding: $amount;
39
-
40
- // Use margin if there are tabs to keep border close to tabs
41
- &.euiPageHeader--tabsAtBottom,
42
- &.euiPageHeader--onlyTabs {
43
- padding-bottom: 0;
44
- }
45
-
46
- // When only tabs, use the same padding top for all padding sizes
47
- &.euiPageHeader--onlyTabs {
48
- padding-top: $euiSizeS;
49
- }
50
-
51
- &.euiPageHeader--tabsAtBottom.euiPageHeader--bottomBorder,
52
- &.euiPageHeader--onlyTabs.euiPageHeader--bottomBorder {
53
- margin-bottom: $amount;
54
- }
55
- }
56
- }
57
-
58
- .euiPageHeader--top {
59
- align-items: flex-start;
60
- }
61
-
62
- .euiPageHeader--bottom {
63
- align-items: flex-end;
64
- }
65
-
66
- .euiPageHeader--stretch {
67
- align-items: stretch;
68
- }
69
-
70
- @include euiBreakpoint('xs', 's') {
71
- .euiPageHeader--responsive {
72
- flex-direction: column;
73
- }
74
-
75
- .euiPageHeader--responsiveReverse {
76
- flex-direction: column-reverse;
77
- }
78
- }
@@ -1,15 +0,0 @@
1
- .euiPageHeader .euiPageHeaderContent {
2
- width: 100%;
3
- }
4
-
5
- .euiPageHeaderContent__titleIcon {
6
- top: -$euiSizeXS;
7
- position: relative;
8
- margin-right: $euiSize;
9
- }
10
-
11
- @include euiBreakpoint('m', 'l', 'xl') {
12
- .euiPageHeaderContent__rightSideItems {
13
- flex-direction: row-reverse;
14
- }
15
- }