@elastic/eui 93.2.0 → 93.3.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.
- package/dist/eui_theme_dark.css +3 -0
- package/dist/eui_theme_dark.min.css +1 -1
- package/dist/eui_theme_light.css +3 -0
- package/dist/eui_theme_light.min.css +1 -1
- package/es/components/breadcrumbs/breadcrumb.js +9 -6
- package/es/components/breadcrumbs/breadcrumbs.js +4 -2
- package/es/components/button/button_display/_button_display.js +2 -3
- package/es/components/button/button_empty/button_empty.js +2 -3
- package/es/components/button/button_group/button_group.js +3 -5
- package/es/components/button/button_group/button_group.styles.js +10 -13
- package/es/components/button/button_icon/button_icon.js +4 -5
- package/es/components/button/button_icon/button_icon.styles.js +11 -3
- package/es/components/datagrid/body/cell/data_grid_cell.js +7 -3
- package/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
- package/es/components/datagrid/body/data_grid_body.js +1 -0
- package/es/components/datagrid/body/data_grid_body_custom.js +3 -0
- package/es/components/datagrid/body/data_grid_body_virtualized.js +3 -0
- package/es/components/datagrid/body/data_grid_row_manager.js +1 -1
- package/es/components/datagrid/data_grid.js +3 -1
- package/es/components/facet/facet_button.styles.js +1 -2
- package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +4 -2
- package/es/components/icon/icon.js +13 -16
- package/es/components/icon/icon.styles.js +6 -9
- package/es/components/link/external_link_icon.js +11 -8
- package/es/components/link/link.js +2 -3
- package/es/components/link/link.styles.js +4 -10
- package/es/components/page/page_header/page_header_content.js +4 -2
- package/es/components/progress/progress.styles.js +2 -2
- package/es/components/skeleton/skeleton_circle.js +2 -3
- package/es/components/skeleton/skeleton_rectangle.js +2 -3
- package/es/components/skeleton/skeleton_text.js +16 -12
- package/es/components/skeleton/skeleton_title.js +2 -3
- package/es/components/text/text.js +2 -3
- package/es/components/text/text_align.js +1 -2
- package/es/components/text/text_align.styles.js +5 -7
- package/es/components/text/text_color.js +2 -3
- package/es/components/title/title.js +2 -3
- package/es/components/title/title.styles.js +0 -7
- package/es/global_styling/mixins/_typography.js +17 -6
- package/es/services/theme/index.js +1 -1
- package/es/services/theme/style_memoization.js +47 -14
- package/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
- package/eui.d.ts +46 -37
- package/i18ntokens.json +36 -36
- package/lib/components/breadcrumbs/breadcrumb.js +9 -6
- package/lib/components/breadcrumbs/breadcrumbs.js +4 -2
- package/lib/components/button/button_display/_button_display.js +1 -2
- package/lib/components/button/button_empty/button_empty.js +1 -2
- package/lib/components/button/button_group/button_group.js +2 -4
- package/lib/components/button/button_group/button_group.styles.js +10 -13
- package/lib/components/button/button_icon/button_icon.js +3 -4
- package/lib/components/button/button_icon/button_icon.styles.js +10 -2
- package/lib/components/datagrid/body/cell/data_grid_cell.js +7 -3
- package/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
- package/lib/components/datagrid/body/data_grid_body.js +1 -0
- package/lib/components/datagrid/body/data_grid_body_custom.js +3 -0
- package/lib/components/datagrid/body/data_grid_body_virtualized.js +3 -0
- package/lib/components/datagrid/body/data_grid_row_manager.js +1 -1
- package/lib/components/datagrid/data_grid.js +3 -1
- package/lib/components/facet/facet_button.styles.js +1 -2
- package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +4 -2
- package/lib/components/icon/icon.js +12 -15
- package/lib/components/icon/icon.styles.js +5 -8
- package/lib/components/link/external_link_icon.js +10 -7
- package/lib/components/link/link.js +1 -2
- package/lib/components/link/link.styles.js +6 -14
- package/lib/components/page/page_header/page_header_content.js +4 -2
- package/lib/components/progress/progress.styles.js +1 -1
- package/lib/components/skeleton/skeleton_circle.js +1 -2
- package/lib/components/skeleton/skeleton_rectangle.js +1 -2
- package/lib/components/skeleton/skeleton_text.js +18 -11
- package/lib/components/skeleton/skeleton_title.js +1 -2
- package/lib/components/text/text.js +1 -2
- package/lib/components/text/text_align.js +1 -2
- package/lib/components/text/text_align.styles.js +5 -7
- package/lib/components/text/text_color.js +1 -2
- package/lib/components/title/title.js +1 -2
- package/lib/components/title/title.styles.js +2 -10
- package/lib/global_styling/mixins/_typography.js +27 -19
- package/lib/services/theme/index.js +6 -0
- package/lib/services/theme/style_memoization.js +49 -16
- package/lib/themes/amsterdam/global_styling/mixins/button.js +49 -25
- package/optimize/es/components/breadcrumbs/breadcrumb.js +5 -4
- package/optimize/es/components/button/button_display/_button_display.js +2 -3
- package/optimize/es/components/button/button_empty/button_empty.js +2 -3
- package/optimize/es/components/button/button_group/button_group.js +3 -5
- package/optimize/es/components/button/button_group/button_group.styles.js +10 -13
- package/optimize/es/components/button/button_icon/button_icon.js +4 -5
- package/optimize/es/components/button/button_icon/button_icon.styles.js +8 -3
- package/optimize/es/components/datagrid/body/cell/data_grid_cell.js +5 -3
- package/optimize/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
- package/optimize/es/components/datagrid/body/data_grid_body_custom.js +2 -0
- package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +2 -0
- package/optimize/es/components/datagrid/body/data_grid_row_manager.js +1 -1
- package/optimize/es/components/datagrid/data_grid.js +3 -1
- package/optimize/es/components/facet/facet_button.styles.js +1 -2
- package/optimize/es/components/icon/icon.js +13 -16
- package/optimize/es/components/icon/icon.styles.js +6 -9
- package/optimize/es/components/link/external_link_icon.js +11 -8
- package/optimize/es/components/link/link.js +2 -3
- package/optimize/es/components/link/link.styles.js +4 -10
- package/optimize/es/components/progress/progress.styles.js +2 -2
- package/optimize/es/components/skeleton/skeleton_circle.js +2 -3
- package/optimize/es/components/skeleton/skeleton_rectangle.js +2 -3
- package/optimize/es/components/skeleton/skeleton_text.js +16 -12
- package/optimize/es/components/skeleton/skeleton_title.js +2 -3
- package/optimize/es/components/text/text.js +2 -3
- package/optimize/es/components/text/text_align.js +1 -2
- package/optimize/es/components/text/text_align.styles.js +5 -7
- package/optimize/es/components/text/text_color.js +2 -3
- package/optimize/es/components/title/title.js +2 -3
- package/optimize/es/components/title/title.styles.js +0 -7
- package/optimize/es/global_styling/mixins/_typography.js +14 -6
- package/optimize/es/services/theme/index.js +1 -1
- package/optimize/es/services/theme/style_memoization.js +47 -14
- package/optimize/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
- package/optimize/lib/components/breadcrumbs/breadcrumb.js +5 -4
- package/optimize/lib/components/button/button_display/_button_display.js +1 -2
- package/optimize/lib/components/button/button_empty/button_empty.js +1 -2
- package/optimize/lib/components/button/button_group/button_group.js +2 -4
- package/optimize/lib/components/button/button_group/button_group.styles.js +10 -13
- package/optimize/lib/components/button/button_icon/button_icon.js +3 -4
- package/optimize/lib/components/button/button_icon/button_icon.styles.js +8 -2
- package/optimize/lib/components/datagrid/body/cell/data_grid_cell.js +5 -3
- package/optimize/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
- package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +2 -0
- package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +2 -0
- package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +1 -1
- package/optimize/lib/components/datagrid/data_grid.js +3 -1
- package/optimize/lib/components/facet/facet_button.styles.js +1 -2
- package/optimize/lib/components/icon/icon.js +12 -15
- package/optimize/lib/components/icon/icon.styles.js +5 -8
- package/optimize/lib/components/link/external_link_icon.js +10 -7
- package/optimize/lib/components/link/link.js +1 -2
- package/optimize/lib/components/link/link.styles.js +6 -14
- package/optimize/lib/components/progress/progress.styles.js +1 -1
- package/optimize/lib/components/skeleton/skeleton_circle.js +1 -2
- package/optimize/lib/components/skeleton/skeleton_rectangle.js +1 -2
- package/optimize/lib/components/skeleton/skeleton_text.js +18 -11
- package/optimize/lib/components/skeleton/skeleton_title.js +1 -2
- package/optimize/lib/components/text/text.js +1 -2
- package/optimize/lib/components/text/text_align.js +1 -2
- package/optimize/lib/components/text/text_align.styles.js +5 -7
- package/optimize/lib/components/text/text_color.js +1 -2
- package/optimize/lib/components/title/title.js +1 -2
- package/optimize/lib/components/title/title.styles.js +2 -10
- package/optimize/lib/global_styling/mixins/_typography.js +25 -19
- package/optimize/lib/services/theme/index.js +6 -0
- package/optimize/lib/services/theme/style_memoization.js +49 -16
- package/optimize/lib/themes/amsterdam/global_styling/mixins/button.js +49 -26
- package/package.json +3 -3
- package/src/components/datagrid/_data_grid_data_row.scss +4 -0
- package/test-env/components/breadcrumbs/breadcrumb.js +9 -6
- package/test-env/components/breadcrumbs/breadcrumbs.js +4 -2
- package/test-env/components/button/button_display/_button_display.js +1 -2
- package/test-env/components/button/button_empty/button_empty.js +1 -2
- package/test-env/components/button/button_group/button_group.js +2 -4
- package/test-env/components/button/button_group/button_group.styles.js +10 -13
- package/test-env/components/button/button_icon/button_icon.js +3 -4
- package/test-env/components/button/button_icon/button_icon.styles.js +8 -2
- package/test-env/components/datagrid/body/cell/data_grid_cell.js +7 -3
- package/test-env/components/datagrid/body/cell/data_grid_cell_wrapper.js +4 -2
- package/test-env/components/datagrid/body/data_grid_body.js +1 -0
- package/test-env/components/datagrid/body/data_grid_body_custom.js +3 -0
- package/test-env/components/datagrid/body/data_grid_body_virtualized.js +3 -0
- package/test-env/components/datagrid/body/data_grid_row_manager.js +1 -1
- package/test-env/components/datagrid/data_grid.js +3 -1
- package/test-env/components/facet/facet_button.styles.js +1 -2
- package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +4 -2
- package/test-env/components/icon/icon.styles.js +5 -8
- package/test-env/components/link/external_link_icon.js +10 -7
- package/test-env/components/link/link.js +1 -2
- package/test-env/components/link/link.styles.js +6 -14
- package/test-env/components/page/page_header/page_header_content.js +4 -2
- package/test-env/components/progress/progress.styles.js +1 -1
- package/test-env/components/skeleton/skeleton_circle.js +1 -2
- package/test-env/components/skeleton/skeleton_rectangle.js +1 -2
- package/test-env/components/skeleton/skeleton_text.js +18 -11
- package/test-env/components/skeleton/skeleton_title.js +1 -2
- package/test-env/components/text/text.js +1 -2
- package/test-env/components/text/text_align.js +1 -2
- package/test-env/components/text/text_align.styles.js +5 -7
- package/test-env/components/text/text_color.js +1 -2
- package/test-env/components/title/title.js +1 -2
- package/test-env/components/title/title.styles.js +2 -10
- package/test-env/global_styling/mixins/_typography.js +25 -19
- package/test-env/services/theme/index.js +6 -0
- package/test-env/services/theme/style_memoization.js +49 -16
- package/test-env/themes/amsterdam/global_styling/mixins/button.js +49 -26
|
@@ -32,8 +32,7 @@ var EuiTitle = function EuiTitle(_ref) {
|
|
|
32
32
|
className = _ref.className,
|
|
33
33
|
textTransform = _ref.textTransform,
|
|
34
34
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
35
|
-
var
|
|
36
|
-
var styles = (0, _title.euiTitleStyles)(euiTheme);
|
|
35
|
+
var styles = (0, _services.useEuiMemoizedStyles)(_title.euiTitleStyles);
|
|
37
36
|
var cssStyles = [styles.euiTitle, textTransform ? styles[textTransform] : undefined, styles[size]];
|
|
38
37
|
var classes = (0, _classnames.default)('euiTitle', className, children.props.className);
|
|
39
38
|
var props = _objectSpread({
|
|
@@ -4,10 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.euiTitleStyles = exports.euiTitle = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _react = require("@emotion/react");
|
|
10
|
-
var _services = require("../../services");
|
|
11
10
|
var _global_styling = require("../../global_styling");
|
|
12
11
|
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; }
|
|
13
12
|
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; }
|
|
@@ -40,17 +39,10 @@ var euiTitle = function euiTitle(euiThemeContext) {
|
|
|
40
39
|
});
|
|
41
40
|
};
|
|
42
41
|
|
|
43
|
-
// Hook version
|
|
44
|
-
exports.euiTitle = euiTitle;
|
|
45
|
-
var useEuiTitle = function useEuiTitle(scale, options) {
|
|
46
|
-
var euiTheme = (0, _services.useEuiTheme)();
|
|
47
|
-
return euiTitle(euiTheme, scale, options);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
42
|
/**
|
|
51
43
|
* Styles
|
|
52
44
|
*/
|
|
53
|
-
exports.
|
|
45
|
+
exports.euiTitle = euiTitle;
|
|
54
46
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
55
47
|
name: "1x2qsb1-uppercase",
|
|
56
48
|
styles: "text-transform:uppercase;label:uppercase;"
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.
|
|
7
|
+
exports.useEuiFontSize = exports.euiTextTruncate = exports.euiTextBreakWord = exports.euiNumberFormat = exports.euiFontSize = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
9
|
var _typography = require("../functions/typography");
|
|
8
|
-
var
|
|
10
|
+
var _theme = require("../../services/theme");
|
|
11
|
+
var _typography2 = require("../variables/typography");
|
|
9
12
|
var _functions = require("../functions");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
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; }
|
|
14
|
+
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; } /*
|
|
15
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
16
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
17
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
18
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
19
|
+
* Side Public License, v 1.
|
|
20
|
+
*/
|
|
18
21
|
/**
|
|
19
22
|
* Returns font-size and line-height
|
|
20
23
|
*/
|
|
@@ -27,15 +30,23 @@ var euiFontSize = function euiFontSize(_ref, scale, options) {
|
|
|
27
30
|
};
|
|
28
31
|
exports.euiFontSize = euiFontSize;
|
|
29
32
|
var useEuiFontSize = function useEuiFontSize(scale, options) {
|
|
30
|
-
var euiTheme = (0,
|
|
31
|
-
|
|
33
|
+
var euiTheme = (0, _theme.useEuiTheme)();
|
|
34
|
+
var memoizedFontSizes = (0, _theme.useEuiMemoizedStyles)(euiFontSizes);
|
|
35
|
+
return !options ? memoizedFontSizes[scale] : euiFontSize(euiTheme, scale, options);
|
|
36
|
+
};
|
|
37
|
+
// Memomize a basic set of font sizes. We unfortunately can't
|
|
38
|
+
// memoize all possible options, there's too many permutations
|
|
39
|
+
exports.useEuiFontSize = useEuiFontSize;
|
|
40
|
+
var euiFontSizes = function euiFontSizes(euiThemeContext) {
|
|
41
|
+
return _typography2.EuiThemeFontScales.reduce(function (map, scale) {
|
|
42
|
+
return _objectSpread(_objectSpread({}, map), {}, (0, _defineProperty2.default)({}, scale, euiFontSize(euiThemeContext, scale)));
|
|
43
|
+
}, {});
|
|
32
44
|
};
|
|
33
45
|
|
|
34
46
|
/**
|
|
35
47
|
* Force text to wrap on natural word breaks (e.g. spaces & hyphens)
|
|
36
48
|
* https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/
|
|
37
49
|
*/
|
|
38
|
-
exports.useEuiFontSize = useEuiFontSize;
|
|
39
50
|
var euiTextBreakWord = function euiTextBreakWord() {
|
|
40
51
|
return "\n overflow-wrap: break-word !important; // makes sure the long string will wrap and not bust out of the container\n word-break: break-word;\n";
|
|
41
52
|
};
|
|
@@ -58,9 +69,4 @@ var euiNumberFormat = function euiNumberFormat(_ref2) {
|
|
|
58
69
|
var euiTheme = _ref2.euiTheme;
|
|
59
70
|
return "\n font-feature-settings: ".concat(euiTheme.font.featureSettings, ", 'tnum' 1;\n");
|
|
60
71
|
};
|
|
61
|
-
exports.euiNumberFormat = euiNumberFormat;
|
|
62
|
-
var useEuiNumberFormat = function useEuiNumberFormat() {
|
|
63
|
-
var euiTheme = (0, _hooks.useEuiTheme)();
|
|
64
|
-
return euiNumberFormat(euiTheme);
|
|
65
|
-
};
|
|
66
|
-
exports.useEuiNumberFormat = useEuiNumberFormat;
|
|
72
|
+
exports.euiNumberFormat = euiNumberFormat;
|
|
@@ -135,6 +135,12 @@ Object.defineProperty(exports, "useEuiThemeCSSVariables", {
|
|
|
135
135
|
return _hooks.useEuiThemeCSSVariables;
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
|
+
Object.defineProperty(exports, "withEuiStylesMemoizer", {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
get: function get() {
|
|
141
|
+
return _style_memoization.withEuiStylesMemoizer;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
138
144
|
Object.defineProperty(exports, "withEuiTheme", {
|
|
139
145
|
enumerable: true,
|
|
140
146
|
get: function get() {
|
|
@@ -5,7 +5,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.useEuiMemoizedStyles = exports.EuiThemeMemoizedStylesProvider = exports.EuiThemeMemoizedStylesContext = void 0;
|
|
8
|
+
exports.withEuiStylesMemoizer = exports.useEuiMemoizedStyles = exports.EuiThemeMemoizedStylesProvider = exports.EuiThemeMemoizedStylesContext = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _hooks = require("../hooks");
|
|
@@ -47,27 +48,59 @@ var EuiThemeMemoizedStylesProvider = function EuiThemeMemoizedStylesProvider(_re
|
|
|
47
48
|
}, children);
|
|
48
49
|
};
|
|
49
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Internal util primarily responsible for getting the memoized styles (if they exist)
|
|
53
|
+
* and if not, generating and setting the styles. DRYed out to facilitate usage
|
|
54
|
+
* between both hook/function components and HOC/class components
|
|
55
|
+
*/
|
|
56
|
+
exports.EuiThemeMemoizedStylesProvider = EuiThemeMemoizedStylesProvider;
|
|
57
|
+
var getMemoizedStyles = function getMemoizedStyles(stylesGenerator, stylesMap, euiThemeContext) {
|
|
58
|
+
if (!stylesGenerator.name) {
|
|
59
|
+
throw new Error('Styles are memoized per function. Your style functions must be statically defined in order to not create a new map entry every rerender.');
|
|
60
|
+
}
|
|
61
|
+
var existingStyles = stylesMap.get(stylesGenerator);
|
|
62
|
+
if (existingStyles) {
|
|
63
|
+
return existingStyles;
|
|
64
|
+
} else {
|
|
65
|
+
var generatedStyles = stylesGenerator(euiThemeContext);
|
|
66
|
+
stylesMap.set(stylesGenerator, generatedStyles);
|
|
67
|
+
return generatedStyles;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
50
71
|
/**
|
|
51
72
|
* Hook that memoizes the returned values of components style fns/generators
|
|
52
73
|
* per-theme
|
|
53
74
|
*/
|
|
54
|
-
|
|
55
|
-
var useEuiMemoizedStyles = function useEuiMemoizedStyles(styleGenerator) {
|
|
75
|
+
var useEuiMemoizedStyles = function useEuiMemoizedStyles(stylesGenerator) {
|
|
56
76
|
var memoizedStyles = (0, _react.useContext)(EuiThemeMemoizedStylesContext);
|
|
57
77
|
var euiThemeContext = (0, _hooks2.useEuiTheme)();
|
|
58
78
|
var memoizedComponentStyles = (0, _react.useMemo)(function () {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
var existingStyles = memoizedStyles.get(styleGenerator);
|
|
63
|
-
if (existingStyles) {
|
|
64
|
-
return existingStyles;
|
|
65
|
-
} else {
|
|
66
|
-
var generatedStyles = styleGenerator(euiThemeContext);
|
|
67
|
-
memoizedStyles.set(styleGenerator, generatedStyles);
|
|
68
|
-
return generatedStyles;
|
|
69
|
-
}
|
|
70
|
-
}, [styleGenerator, memoizedStyles, euiThemeContext]);
|
|
79
|
+
return getMemoizedStyles(stylesGenerator, memoizedStyles, euiThemeContext);
|
|
80
|
+
}, [stylesGenerator, memoizedStyles, euiThemeContext]);
|
|
71
81
|
return memoizedComponentStyles;
|
|
72
82
|
};
|
|
73
|
-
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* HOC for class components
|
|
86
|
+
* Syntax is mostly copied from withEuiTheme HOC
|
|
87
|
+
*/
|
|
88
|
+
exports.useEuiMemoizedStyles = useEuiMemoizedStyles;
|
|
89
|
+
var withEuiStylesMemoizer = function withEuiStylesMemoizer(Component) {
|
|
90
|
+
var componentName = Component.displayName || Component.name || 'ComponentWithStylesMemoizer';
|
|
91
|
+
var Render = function Render(props, ref) {
|
|
92
|
+
var memoizedStyles = (0, _react.useContext)(EuiThemeMemoizedStylesContext);
|
|
93
|
+
var euiThemeContext = (0, _hooks2.useEuiTheme)();
|
|
94
|
+
var stylesMemoizer = (0, _react.useCallback)(function (stylesGenerator) {
|
|
95
|
+
return getMemoizedStyles(stylesGenerator, memoizedStyles, euiThemeContext);
|
|
96
|
+
}, [memoizedStyles, euiThemeContext]);
|
|
97
|
+
return (0, _react2.jsx)(Component, (0, _extends2.default)({
|
|
98
|
+
stylesMemoizer: stylesMemoizer,
|
|
99
|
+
ref: ref
|
|
100
|
+
}, props));
|
|
101
|
+
};
|
|
102
|
+
var WithEuiStylesMemoizer = /*#__PURE__*/(0, _react.forwardRef)(Render);
|
|
103
|
+
WithEuiStylesMemoizer.displayName = componentName;
|
|
104
|
+
return WithEuiStylesMemoizer;
|
|
105
|
+
};
|
|
106
|
+
exports.withEuiStylesMemoizer = withEuiStylesMemoizer;
|
|
@@ -4,11 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useEuiButtonFocusCSS = exports.useEuiButtonColorCSS = exports.euiButtonSizeMap = exports.euiButtonFillColor = exports.euiButtonEmptyColor = exports.euiButtonColor = exports.BUTTON_COLORS = void 0;
|
|
7
|
+
exports.useEuiButtonFocusCSS = exports.useEuiButtonColorCSS = exports.euiButtonSizeMap = exports.euiButtonFillColor = exports.euiButtonEmptyColor = exports.euiButtonColor = exports.BUTTON_DISPLAYS = exports.BUTTON_COLORS = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
8
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
10
|
var _react = require("@emotion/react");
|
|
10
11
|
var _global_styling = require("../../../../global_styling");
|
|
11
12
|
var _services = require("../../../../services");
|
|
13
|
+
var _templateObject;
|
|
12
14
|
/*
|
|
13
15
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
14
16
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
@@ -16,9 +18,10 @@ var _services = require("../../../../services");
|
|
|
16
18
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
17
19
|
* Side Public License, v 1.
|
|
18
20
|
*/
|
|
19
|
-
|
|
20
21
|
var BUTTON_COLORS = ['text', 'accent', 'primary', 'success', 'warning', 'danger'];
|
|
21
22
|
exports.BUTTON_COLORS = BUTTON_COLORS;
|
|
23
|
+
var BUTTON_DISPLAYS = ['base', 'fill', 'empty'];
|
|
24
|
+
exports.BUTTON_DISPLAYS = BUTTON_DISPLAYS;
|
|
22
25
|
/**
|
|
23
26
|
* Creates the `base` version of button styles with proper text contrast.
|
|
24
27
|
* @param euiThemeContext
|
|
@@ -139,43 +142,63 @@ var euiButtonEmptyColor = function euiButtonEmptyColor(euiThemeContext, color) {
|
|
|
139
142
|
exports.euiButtonEmptyColor = euiButtonEmptyColor;
|
|
140
143
|
var useEuiButtonColorCSS = function useEuiButtonColorCSS() {
|
|
141
144
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
142
|
-
var
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
145
|
+
var _options$display = options.display,
|
|
146
|
+
display = _options$display === void 0 ? 'base' : _options$display;
|
|
147
|
+
var colorsDisplaysMap = (0, _services.useEuiMemoizedStyles)(euiButtonDisplaysColors);
|
|
148
|
+
return colorsDisplaysMap[display];
|
|
149
|
+
};
|
|
150
|
+
exports.useEuiButtonColorCSS = useEuiButtonColorCSS;
|
|
151
|
+
var euiButtonDisplaysColors = function euiButtonDisplaysColors(euiThemeContext) {
|
|
152
|
+
var COLORS = [].concat(BUTTON_COLORS, ['disabled']);
|
|
153
|
+
var displaysColorsMap = {};
|
|
154
|
+
BUTTON_DISPLAYS.forEach(function (display) {
|
|
155
|
+
displaysColorsMap[display] = {};
|
|
156
|
+
COLORS.forEach(function (color) {
|
|
157
|
+
switch (display) {
|
|
158
|
+
case 'base':
|
|
159
|
+
displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)(euiButtonColor(euiThemeContext, color), ";;label:displaysColorsMap-display-color;");
|
|
160
|
+
break;
|
|
161
|
+
case 'fill':
|
|
162
|
+
displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)(euiButtonFillColor(euiThemeContext, color), "outline-color:", euiThemeContext.colorMode === 'DARK' && color === 'text' ? 'currentColor' : euiThemeContext.euiTheme.colors.fullShade, ";;label:displaysColorsMap-display-color;");
|
|
163
|
+
break;
|
|
164
|
+
case 'empty':
|
|
165
|
+
displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)("color:", euiButtonEmptyColor(euiThemeContext, color).color, ";&:focus,&:active{background-color:", euiButtonEmptyColor(euiThemeContext, color).backgroundColor, ";};label:displaysColorsMap-display-color;");
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Tweak auto-generated Emotion label/className output
|
|
170
|
+
var emotionOutput = displaysColorsMap[display][color];
|
|
171
|
+
emotionOutput.styles = emotionOutput.styles.replace('label:displaysColorsMap-display-color;', "label:".concat(display, "-").concat(color, ";"));
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
return displaysColorsMap;
|
|
159
175
|
};
|
|
160
176
|
|
|
161
177
|
/**
|
|
162
178
|
* Creates the translate animation when button is in focus.
|
|
163
179
|
* @returns string
|
|
164
180
|
*/
|
|
165
|
-
exports.useEuiButtonColorCSS = useEuiButtonColorCSS;
|
|
166
181
|
var useEuiButtonFocusCSS = function useEuiButtonFocusCSS() {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
182
|
+
return (0, _services.useEuiMemoizedStyles)(euiButtonFocusCSS);
|
|
183
|
+
};
|
|
184
|
+
exports.useEuiButtonFocusCSS = useEuiButtonFocusCSS;
|
|
185
|
+
var euiButtonFocusAnimation = (0, _react.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n 50% {\n transform: translateY(1px);\n }\n"])));
|
|
186
|
+
var euiButtonFocusCSS = function euiButtonFocusCSS(_ref) {
|
|
187
|
+
var euiTheme = _ref.euiTheme;
|
|
188
|
+
var focusCSS = /*#__PURE__*/(0, _react.css)(_global_styling.euiCanAnimate, "{transition:transform ", euiTheme.animation.normal, " ease-in-out,background-color ", euiTheme.animation.normal, " ease-in-out;&:hover:not(:disabled){transform:translateY(-1px);}&:focus{animation:", euiButtonFocusAnimation, " ", euiTheme.animation.normal, " ", euiTheme.animation.bounce, ";}&:active:not(:disabled){transform:translateY(1px);}};label:focusCSS;");
|
|
189
|
+
// Remove the auto-generated label.
|
|
190
|
+
// We could typically avoid a label by using a plain string `` instead of css``,
|
|
191
|
+
// but we need css`` for keyframes`` to work for the focus animation
|
|
192
|
+
focusCSS.styles = focusCSS.styles.replace('label:focusCSS;', '');
|
|
193
|
+
return focusCSS;
|
|
170
194
|
};
|
|
171
195
|
|
|
172
196
|
/**
|
|
173
197
|
* Map of `size` props to various sizings/scales
|
|
174
198
|
* that should remain consistent across all buttons
|
|
175
199
|
*/
|
|
176
|
-
|
|
177
|
-
var
|
|
178
|
-
var euiTheme = _ref.euiTheme;
|
|
200
|
+
var euiButtonSizeMap = function euiButtonSizeMap(_ref2) {
|
|
201
|
+
var euiTheme = _ref2.euiTheme;
|
|
179
202
|
return {
|
|
180
203
|
xs: {
|
|
181
204
|
height: euiTheme.size.l,
|