@elastic/eui 123.2.0 → 123.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-icons.json +92 -91
- package/dist/svgs/add_to_chat.svg +3 -5
- package/dist/svgs/product_alert_zero.svg +5 -0
- package/es/components/avatar/avatar.js +1 -1
- package/es/components/badge/badge.js +1 -1
- package/es/components/badge/beta_badge/beta_badge.js +1 -1
- package/es/components/banner/banner.js +40 -3
- package/es/components/basic_table/basic_table.js +4 -4
- package/es/components/basic_table/in_memory_table.js +4 -4
- package/es/components/button/button_display/_button_display_content.js +1 -1
- package/es/components/button/button_empty/button_empty.js +1 -1
- package/es/components/button/button_icon/button_icon.js +1 -1
- package/es/components/call_out/call_out.js +40 -7
- package/es/components/card/card.js +1 -1
- package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/es/components/comment_list/comment.js +2 -2
- package/es/components/comment_list/comment_event.js +1 -1
- package/es/components/comment_list/comment_list.js +2 -2
- package/es/components/comment_list/comment_timeline.js +1 -1
- package/es/components/context_menu/context_menu_item.js +1 -1
- package/es/components/datagrid/body/cell/data_grid_cell.js +24 -24
- package/es/components/datagrid/body/data_grid_body.js +13 -13
- package/es/components/datagrid/body/data_grid_body_custom.js +13 -13
- package/es/components/datagrid/body/data_grid_body_virtualized.js +13 -13
- package/es/components/datagrid/body/header/data_grid_header_cell.js +12 -12
- package/es/components/datagrid/controls/column_sorting.js +13 -13
- package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/es/components/datagrid/utils/in_memory.js +12 -12
- package/es/components/date_picker/date_picker.js +2 -2
- package/es/components/date_picker/date_picker_range.js +1 -1
- package/es/components/empty_prompt/empty_prompt.js +1 -1
- package/es/components/flyout/flyout_menu/flyout_menu.js +2 -2
- package/es/components/form/field_number/field_number.js +2 -2
- package/es/components/form/field_text/field_text.js +2 -2
- package/es/components/form/form_control_button/form_control_button.js +1 -1
- package/es/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
- package/es/components/form/form_control_layout/form_control_layout.js +2 -2
- package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/es/components/form/text_area/text_area.js +2 -2
- package/es/components/header/header_links/header_link.js +1 -1
- package/es/components/header/header_links/header_links.js +1 -1
- package/es/components/header/header_section/header_section_item_button.js +1 -1
- package/es/components/icon/assets/add_to_chat.js +2 -10
- package/es/components/icon/assets/product_alert_zero.js +33 -0
- package/es/components/icon/icon.js +1 -1
- package/es/components/icon/icon_map.js +5 -0
- package/es/components/icon/svgs/add_to_chat.svg +3 -5
- package/es/components/icon/svgs/product_alert_zero.svg +5 -0
- package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/es/components/list_group/list_group.js +2 -2
- package/es/components/list_group/list_group_item.js +2 -2
- package/es/components/list_group/list_group_item_extra_action.js +1 -1
- package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/es/components/loading/loading_logo.js +1 -1
- package/es/components/markdown_editor/markdown_editor.js +1 -1
- package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/es/components/page/page_header/page_header_content.js +1 -1
- package/es/components/pagination/pagination_button.js +1 -1
- package/es/components/selectable/selectable_list/selectable_list.js +1 -1
- package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +5 -1
- package/es/components/table/table_header_cell.js +1 -1
- package/es/components/timeline/timeline_item_icon.js +1 -1
- package/es/components/toast/global_toast_list.js +2 -2
- package/es/components/toast/toast.js +2 -2
- package/es/components/token/token.styles.js +10 -4
- package/es/components/tool_tip/icon_tip.js +1 -1
- package/es/services/theme/provider.js +86 -101
- package/eui.d.ts +23 -11
- package/lib/components/avatar/avatar.js +1 -1
- package/lib/components/badge/badge.js +1 -1
- package/lib/components/badge/beta_badge/beta_badge.js +1 -1
- package/lib/components/banner/banner.js +39 -2
- package/lib/components/basic_table/basic_table.js +4 -4
- package/lib/components/basic_table/in_memory_table.js +4 -4
- package/lib/components/button/button_display/_button_display_content.js +1 -1
- package/lib/components/button/button_empty/button_empty.js +1 -1
- package/lib/components/button/button_icon/button_icon.js +1 -1
- package/lib/components/call_out/call_out.js +39 -6
- package/lib/components/card/card.js +1 -1
- package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/lib/components/comment_list/comment.js +2 -2
- package/lib/components/comment_list/comment_event.js +1 -1
- package/lib/components/comment_list/comment_list.js +2 -2
- package/lib/components/comment_list/comment_timeline.js +1 -1
- package/lib/components/context_menu/context_menu_item.js +1 -1
- package/lib/components/datagrid/body/cell/data_grid_cell.js +24 -24
- package/lib/components/datagrid/body/data_grid_body.js +13 -13
- package/lib/components/datagrid/body/data_grid_body_custom.js +13 -13
- package/lib/components/datagrid/body/data_grid_body_virtualized.js +13 -13
- package/lib/components/datagrid/body/header/data_grid_header_cell.js +12 -12
- package/lib/components/datagrid/controls/column_sorting.js +13 -13
- package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/lib/components/datagrid/utils/in_memory.js +12 -12
- package/lib/components/date_picker/date_picker.js +2 -2
- package/lib/components/date_picker/date_picker_range.js +1 -1
- package/lib/components/empty_prompt/empty_prompt.js +1 -1
- package/lib/components/flyout/flyout_menu/flyout_menu.js +2 -2
- package/lib/components/form/field_number/field_number.js +2 -2
- package/lib/components/form/field_text/field_text.js +2 -2
- package/lib/components/form/form_control_button/form_control_button.js +1 -1
- package/lib/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
- package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
- package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/lib/components/form/text_area/text_area.js +2 -2
- package/lib/components/header/header_links/header_link.js +1 -1
- package/lib/components/header/header_links/header_links.js +1 -1
- package/lib/components/header/header_section/header_section_item_button.js +1 -1
- package/lib/components/icon/assets/add_to_chat.js +2 -10
- package/lib/components/icon/assets/product_alert_zero.js +40 -0
- package/lib/components/icon/icon.js +1 -1
- package/lib/components/icon/icon_map.js +7 -0
- package/lib/components/icon/svgs/add_to_chat.svg +3 -5
- package/lib/components/icon/svgs/product_alert_zero.svg +5 -0
- package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/lib/components/list_group/list_group.js +2 -2
- package/lib/components/list_group/list_group_item.js +2 -2
- package/lib/components/list_group/list_group_item_extra_action.js +1 -1
- package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/lib/components/loading/loading_logo.js +1 -1
- package/lib/components/markdown_editor/markdown_editor.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/lib/components/page/page_header/page_header_content.js +1 -1
- package/lib/components/pagination/pagination_button.js +1 -1
- package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
- package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +5 -1
- package/lib/components/table/table_header_cell.js +1 -1
- package/lib/components/timeline/timeline_item_icon.js +1 -1
- package/lib/components/toast/global_toast_list.js +2 -2
- package/lib/components/toast/toast.js +2 -2
- package/lib/components/token/token.styles.js +10 -4
- package/lib/components/tool_tip/icon_tip.js +1 -1
- package/lib/services/theme/provider.js +85 -102
- package/optimize/es/components/banner/banner.js +35 -3
- package/optimize/es/components/call_out/call_out.js +33 -5
- package/optimize/es/components/icon/assets/add_to_chat.js +2 -10
- package/optimize/es/components/icon/assets/product_alert_zero.js +32 -0
- package/optimize/es/components/icon/icon_map.js +5 -0
- package/optimize/es/components/icon/svgs/add_to_chat.svg +3 -5
- package/optimize/es/components/icon/svgs/product_alert_zero.svg +5 -0
- package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +5 -1
- package/optimize/es/components/token/token.styles.js +10 -4
- package/optimize/es/services/theme/provider.js +82 -97
- package/optimize/lib/components/banner/banner.js +34 -2
- package/optimize/lib/components/call_out/call_out.js +32 -4
- package/optimize/lib/components/icon/assets/add_to_chat.js +2 -10
- package/optimize/lib/components/icon/assets/product_alert_zero.js +40 -0
- package/optimize/lib/components/icon/icon_map.js +7 -0
- package/optimize/lib/components/icon/svgs/add_to_chat.svg +3 -5
- package/optimize/lib/components/icon/svgs/product_alert_zero.svg +5 -0
- package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +5 -1
- package/optimize/lib/components/token/token.styles.js +10 -4
- package/optimize/lib/services/theme/provider.js +80 -97
- package/package.json +6 -6
- package/test-env/components/avatar/avatar.js +1 -1
- package/test-env/components/badge/badge.js +1 -1
- package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
- package/test-env/components/banner/banner.js +34 -2
- package/test-env/components/basic_table/basic_table.js +4 -4
- package/test-env/components/basic_table/in_memory_table.js +4 -4
- package/test-env/components/button/button_display/_button_display_content.js +1 -1
- package/test-env/components/button/button_empty/button_empty.js +1 -1
- package/test-env/components/button/button_icon/button_icon.js +1 -1
- package/test-env/components/call_out/call_out.js +34 -6
- package/test-env/components/card/card.js +1 -1
- package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/test-env/components/comment_list/comment.js +2 -2
- package/test-env/components/comment_list/comment_event.js +1 -1
- package/test-env/components/comment_list/comment_list.js +2 -2
- package/test-env/components/comment_list/comment_timeline.js +1 -1
- package/test-env/components/context_menu/context_menu_item.js +1 -1
- package/test-env/components/datagrid/body/cell/data_grid_cell.js +24 -24
- package/test-env/components/datagrid/body/data_grid_body.js +13 -13
- package/test-env/components/datagrid/body/data_grid_body_custom.js +13 -13
- package/test-env/components/datagrid/body/data_grid_body_virtualized.js +13 -13
- package/test-env/components/datagrid/body/header/data_grid_header_cell.js +12 -12
- package/test-env/components/datagrid/controls/column_sorting.js +13 -13
- package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
- package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
- package/test-env/components/datagrid/utils/in_memory.js +12 -12
- package/test-env/components/date_picker/date_picker.js +2 -2
- package/test-env/components/date_picker/date_picker_range.js +1 -1
- package/test-env/components/empty_prompt/empty_prompt.js +1 -1
- package/test-env/components/flyout/flyout_menu/flyout_menu.js +2 -2
- package/test-env/components/form/field_number/field_number.js +2 -2
- package/test-env/components/form/field_text/field_text.js +2 -2
- package/test-env/components/form/form_control_button/form_control_button.js +1 -1
- package/test-env/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
- package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
- package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/test-env/components/form/text_area/text_area.js +2 -2
- package/test-env/components/header/header_links/header_link.js +1 -1
- package/test-env/components/header/header_links/header_links.js +1 -1
- package/test-env/components/header/header_section/header_section_item_button.js +1 -1
- package/test-env/components/icon/assets/add_to_chat.js +2 -10
- package/test-env/components/icon/assets/product_alert_zero.js +40 -0
- package/test-env/components/icon/icon_map.js +7 -0
- package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
- package/test-env/components/list_group/list_group.js +2 -2
- package/test-env/components/list_group/list_group_item.js +2 -2
- package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
- package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
- package/test-env/components/loading/loading_logo.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
- package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
- package/test-env/components/page/page_header/page_header_content.js +1 -1
- package/test-env/components/pagination/pagination_button.js +1 -1
- package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
- package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
- package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
- package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +5 -1
- package/test-env/components/table/table_header_cell.js +1 -1
- package/test-env/components/timeline/timeline_item_icon.js +1 -1
- package/test-env/components/toast/global_toast_list.js +2 -2
- package/test-env/components/toast/toast.js +2 -2
- package/test-env/components/token/token.styles.js +10 -4
- package/test-env/components/tool_tip/icon_tip.js +1 -1
- package/test-env/services/theme/provider.js +80 -97
|
@@ -9,8 +9,8 @@ exports.EuiThemeProvider = void 0;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
11
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
14
|
var _react = require("@emotion/react");
|
|
15
15
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
16
16
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
@@ -34,7 +34,23 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
34
34
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
35
35
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
36
36
|
* Side Public License, v 1.
|
|
37
|
+
*/ /**
|
|
38
|
+
* Caches `value` during render, only swapping in a new one once `isSame`
|
|
39
|
+
* reports that it actually differs from the cached one.
|
|
40
|
+
*
|
|
41
|
+
* This keeps derived objects referentially stable (so that the - comparatively
|
|
42
|
+
* expensive - theme computation isn't rerun on every render) without deferring
|
|
43
|
+
* them to a `useEffect`/`setState` pair. Effect-synchronised state costs an
|
|
44
|
+
* extra commit, in which consumers would see e.g. an updated `colorMode`
|
|
45
|
+
* alongside a theme that is still computed from the previous one.
|
|
37
46
|
*/
|
|
47
|
+
var useStableValue = function useStableValue(value, isSame) {
|
|
48
|
+
var ref = (0, _react2.useRef)(value);
|
|
49
|
+
if (ref.current !== value && !isSame(ref.current, value)) {
|
|
50
|
+
ref.current = value;
|
|
51
|
+
}
|
|
52
|
+
return ref.current;
|
|
53
|
+
};
|
|
38
54
|
var EuiThemeProvider = exports.EuiThemeProvider = function EuiThemeProvider(_ref) {
|
|
39
55
|
var _system = _ref.theme,
|
|
40
56
|
_colorMode = _ref.colorMode,
|
|
@@ -63,118 +79,85 @@ var EuiThemeProvider = exports.EuiThemeProvider = function EuiThemeProvider(_ref
|
|
|
63
79
|
var EuiConditionalBreakpointProvider = (0, _react2.useMemo)(function () {
|
|
64
80
|
return isGlobalTheme || _modifications !== null && _modifications !== void 0 && _modifications.breakpoint ? _current_breakpoint.CurrentEuiBreakpointProvider : _react2.Fragment;
|
|
65
81
|
}, [isGlobalTheme, _modifications]);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
var prevColorMode = (0, _react2.useRef)(colorMode);
|
|
82
|
+
|
|
83
|
+
// Every value below is derived from props/parent context during render, so
|
|
84
|
+
// that all context values this provider exposes - most notably `colorMode`
|
|
85
|
+
// and the computed `theme` - always change within the same commit
|
|
86
|
+
var system = useStableValue(_system || parentSystem, function (previous, next) {
|
|
87
|
+
return previous.key === next.key;
|
|
88
|
+
});
|
|
89
|
+
var mergedModifications = (0, _react2.useMemo)(function () {
|
|
90
|
+
return (0, _utils.mergeDeep)(parentModifications, _modifications);
|
|
91
|
+
}, [parentModifications, _modifications]);
|
|
92
|
+
var modifications = useStableValue(mergedModifications, _isEqual.default);
|
|
93
|
+
var colorMode = (0, _react2.useMemo)(function () {
|
|
94
|
+
return (0, _utils.getColorMode)(_colorMode, parentColorMode, isForced);
|
|
95
|
+
}, [_colorMode, parentColorMode, isForced]);
|
|
81
96
|
var highContrastMode = (0, _react2.useMemo)(function () {
|
|
82
97
|
if (isForced) return 'forced'; // System forced high contrast mode will always supercede application settings
|
|
83
98
|
if (_highContrastMode === true) return 'preferred'; // Convert the boolean prop to our internal enum
|
|
84
99
|
if (_highContrastMode === false) return false; // Allow `false` prop to override user/system preference
|
|
85
100
|
return parentHighContrastMode; // Fall back to the parent/system setting
|
|
86
101
|
}, [_highContrastMode, parentHighContrastMode, isForced]);
|
|
87
|
-
var prevHighContrastMode = (0, _react2.useRef)(highContrastMode);
|
|
88
102
|
var modificationsWithHighContrast = (0, _high_contrast_overrides.useHighContrastModifications)({
|
|
89
103
|
highContrastMode: highContrastMode,
|
|
90
104
|
colorMode: colorMode,
|
|
91
105
|
system: system,
|
|
92
106
|
modifications: modifications
|
|
93
107
|
});
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
108
|
+
|
|
109
|
+
// If this provider resolves to the exact same theme as its parent, the
|
|
110
|
+
// already computed parent theme can be reused instead of recomputing it
|
|
111
|
+
var isParentTheme = (0, _react2.useMemo)(function () {
|
|
112
|
+
return isGlobalTheme ? system.key === _context.DEFAULTS.system.key && colorMode === _context.DEFAULTS.colorMode && highContrastMode === _context.DEFAULTS.highContrastMode && !_modifications : system.key === parentSystem.key && colorMode === parentColorMode && highContrastMode === parentHighContrastMode && (0, _isEqual.default)(parentModifications, modifications);
|
|
113
|
+
}, [isGlobalTheme, system, colorMode, highContrastMode, _modifications, parentSystem, parentColorMode, parentHighContrastMode, parentModifications, modifications]);
|
|
114
|
+
|
|
115
|
+
// Depending on `parentTheme` itself would recompute this provider's theme every
|
|
116
|
+
// time the parent's did, even where the parent's theme is not an input to it -
|
|
117
|
+
// `parentModifications` already reaches `getComputed` through `modifications`
|
|
118
|
+
var reusableParentTheme = isParentTheme && Object.keys(parentTheme).length ? parentTheme : null;
|
|
119
|
+
var theme = (0, _react2.useMemo)(function () {
|
|
120
|
+
if (reusableParentTheme) {
|
|
121
|
+
return _objectSpread({}, reusableParentTheme); // Intentionally create a new object to break referential equality
|
|
98
122
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
123
|
+
|
|
124
|
+
/* Enables recomputation of component colors when flags are overridden on the provider
|
|
125
|
+
by adding the respective key to modifications to trigger a recomputation. */
|
|
126
|
+
// NOTE: Keeping this as placeholder for potential future usage during Borealis changes
|
|
127
|
+
// TODO: remove once visual refresh is completed and flags are obsolete
|
|
128
|
+
var flagsToRecompute = [];
|
|
129
|
+
var keys = {};
|
|
130
|
+
var forceRecomputeComponents = flagsToRecompute.some(function (item) {
|
|
131
|
+
var _modifications$flags, _modifications$compon;
|
|
132
|
+
if (!item) return false;
|
|
133
|
+
if (Object.keys((_modifications$flags = modifications.flags) !== null && _modifications$flags !== void 0 ? _modifications$flags : {}).includes(item.flag) && !Object.keys((_modifications$compon = modifications.components) !== null && _modifications$compon !== void 0 ? _modifications$compon : {}).includes(item.componentKey)) {
|
|
134
|
+
keys[item.componentKey] = {
|
|
135
|
+
LIGHT: {},
|
|
136
|
+
DARK: {}
|
|
137
|
+
};
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
return false;
|
|
104
141
|
});
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
: getInitialTheme()),
|
|
109
|
-
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
110
|
-
theme = _useState8[0],
|
|
111
|
-
setTheme = _useState8[1];
|
|
112
|
-
(0, _react2.useEffect)(function () {
|
|
113
|
-
var newSystem = _system || parentSystem;
|
|
114
|
-
if (prevSystemKey.current !== newSystem.key) {
|
|
115
|
-
setSystem(newSystem);
|
|
116
|
-
prevSystemKey.current = newSystem.key;
|
|
117
|
-
isParentTheme.current = false;
|
|
118
|
-
}
|
|
119
|
-
}, [_system, parentSystem, theme, updateVisColorStore]);
|
|
120
|
-
(0, _react2.useEffect)(function () {
|
|
121
|
-
updateVisColorStore(theme, isGlobalTheme);
|
|
122
|
-
}, [theme, colorMode, isGlobalTheme, updateVisColorStore]);
|
|
123
|
-
(0, _react2.useEffect)(function () {
|
|
124
|
-
var newModifications = (0, _utils.mergeDeep)(parentModifications, _modifications);
|
|
125
|
-
if (!(0, _isEqual.default)(prevModifications.current, newModifications)) {
|
|
126
|
-
setModifications(newModifications);
|
|
127
|
-
prevModifications.current = newModifications;
|
|
128
|
-
isParentTheme.current = false;
|
|
129
|
-
}
|
|
130
|
-
}, [_modifications, parentModifications]);
|
|
131
|
-
(0, _react2.useEffect)(function () {
|
|
132
|
-
var newColorMode = (0, _utils.getColorMode)(_colorMode, parentColorMode, isForced);
|
|
133
|
-
if (!(0, _isEqual.default)(newColorMode, prevColorMode.current)) {
|
|
134
|
-
setColorMode(newColorMode);
|
|
135
|
-
prevColorMode.current = newColorMode;
|
|
136
|
-
isParentTheme.current = false;
|
|
137
|
-
}
|
|
138
|
-
}, [_colorMode, parentColorMode, isForced]);
|
|
139
|
-
(0, _react2.useEffect)(function () {
|
|
140
|
-
if (prevHighContrastMode.current !== highContrastMode) {
|
|
141
|
-
isParentTheme.current = false;
|
|
142
|
-
}
|
|
143
|
-
}, [highContrastMode]);
|
|
144
|
-
(0, _react2.useEffect)(function () {
|
|
145
|
-
if (!isParentTheme.current) {
|
|
146
|
-
/* Enables recomputation of component colors when flags are overridden on the provider
|
|
147
|
-
by adding the respective key to modifications to trigger a recomputation. */
|
|
148
|
-
// NOTE: Keeping this as placeholder for potential future usage during Borealis changes
|
|
149
|
-
// TODO: remove once visual refresh is completed and flags are obsolete
|
|
150
|
-
var flagsToRecompute = [];
|
|
151
|
-
var keys = {};
|
|
152
|
-
var forceRecomputeComponents = flagsToRecompute.some(function (item) {
|
|
153
|
-
var _modifications$flags, _modifications$compon;
|
|
154
|
-
if (!item) return false;
|
|
155
|
-
if (Object.keys((_modifications$flags = modifications.flags) !== null && _modifications$flags !== void 0 ? _modifications$flags : {}).includes(item.flag) && !Object.keys((_modifications$compon = modifications.components) !== null && _modifications$compon !== void 0 ? _modifications$compon : {}).includes(item.componentKey)) {
|
|
156
|
-
keys[item.componentKey] = {
|
|
157
|
-
LIGHT: {},
|
|
158
|
-
DARK: {}
|
|
159
|
-
};
|
|
160
|
-
return true;
|
|
161
|
-
}
|
|
162
|
-
return false;
|
|
163
|
-
});
|
|
164
|
-
var componentModifications = forceRecomputeComponents ? {
|
|
165
|
-
components: keys
|
|
166
|
-
} : {};
|
|
142
|
+
var componentModifications = forceRecomputeComponents ? {
|
|
143
|
+
components: keys
|
|
144
|
+
} : {};
|
|
167
145
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
146
|
+
// force recomputing of color & component tokens based on flag changes
|
|
147
|
+
var enhancedModifications = _objectSpread(_objectSpread({}, modificationsWithHighContrast), componentModifications);
|
|
148
|
+
return (0, _utils.getComputed)(system, (0, _utils.buildTheme)(enhancedModifications, "_".concat(system.key)), colorMode, highContrastMode);
|
|
149
|
+
}, [reusableParentTheme, system, colorMode, highContrastMode, modifications, modificationsWithHighContrast]);
|
|
150
|
+
|
|
151
|
+
// Genuine side effect - the vis color store is consumed outside of React
|
|
152
|
+
(0, _react2.useEffect)(function () {
|
|
153
|
+
if (isGlobalTheme) {
|
|
154
|
+
_color.EUI_VIS_COLOR_STORE.setVisColors(theme.colors.vis);
|
|
172
155
|
}
|
|
173
|
-
}, [
|
|
174
|
-
var
|
|
175
|
-
|
|
176
|
-
themeCSSVariables =
|
|
177
|
-
_setThemeCSSVariables =
|
|
156
|
+
}, [theme, isGlobalTheme]);
|
|
157
|
+
var _useState = (0, _react2.useState)(),
|
|
158
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
159
|
+
themeCSSVariables = _useState2[0],
|
|
160
|
+
_setThemeCSSVariables = _useState2[1];
|
|
178
161
|
var setThemeCSSVariables = (0, _react2.useCallback)(function (variables) {
|
|
179
162
|
return _setThemeCSSVariables(function (previous) {
|
|
180
163
|
var merged = _objectSpread(_objectSpread({}, previous), variables);
|