@elastic/eui 116.3.0 → 116.3.1-snapshot.1782148316870

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 (199) hide show
  1. package/es/components/avatar/avatar.js +4 -0
  2. package/es/components/avatar/avatar.styles.js +16 -16
  3. package/es/components/banner/banner.js +1 -2
  4. package/es/components/banner/banner.styles.js +1 -1
  5. package/es/components/basic_table/basic_table.js +35 -5
  6. package/es/components/basic_table/basic_table.styles.js +19 -1
  7. package/es/components/basic_table/in_memory_table.js +17 -0
  8. package/es/components/basic_table/index.js +2 -1
  9. package/es/components/basic_table/pagination_bar.js +19 -4
  10. package/es/components/basic_table/pagination_bar.styles.js +21 -0
  11. package/es/components/basic_table/panel.styles.js +14 -0
  12. package/es/components/basic_table/use_panel_props.js +28 -0
  13. package/es/components/date_picker/auto_refresh/refresh_interval.js +176 -229
  14. package/es/components/date_picker/date_picker.js +1 -1
  15. package/es/components/flyout/flyout.component.js +10 -6
  16. package/es/components/flyout/flyout_menu.js +122 -19
  17. package/es/components/flyout/flyout_menu.styles.js +2 -1
  18. package/es/components/flyout/manager/actions.js +20 -0
  19. package/es/components/flyout/manager/flyout_child.js +23 -1
  20. package/es/components/flyout/manager/flyout_managed.js +65 -19
  21. package/es/components/flyout/manager/hooks.js +1 -1
  22. package/es/components/flyout/manager/index.js +2 -2
  23. package/es/components/flyout/manager/reducer.js +32 -8
  24. package/es/components/flyout/manager/selectors.js +8 -2
  25. package/es/components/flyout/manager/store.js +35 -2
  26. package/es/components/flyout/use_flyout_menu.js +2 -2
  27. package/es/components/form/field_password/field_password.styles.js +1 -1
  28. package/es/components/form/field_search/field_search.styles.js +1 -1
  29. package/es/components/form/form.styles.js +1 -1
  30. package/es/components/form/form_control_layout/form_control_layout_icons.js +95 -143
  31. package/es/components/form/select/select.styles.js +1 -1
  32. package/es/components/form/text_area/text_area.styles.js +1 -1
  33. package/es/components/form/validatable_control/validatable_control.js +8 -55
  34. package/es/components/table/mobile/table_sort_mobile.js +64 -103
  35. package/es/components/table/store/use_unique_column_id.js +25 -0
  36. package/es/components/table/table_header_cell.js +7 -8
  37. package/es/components/table/table_header_cell_checkbox.js +5 -6
  38. package/es/components/tool_tip/tool_tip.js +61 -30
  39. package/es/components/tool_tip/tool_tip_anchor.js +5 -5
  40. package/es/components/tool_tip/tool_tip_manager.js +27 -2
  41. package/eui.d.ts +679 -530
  42. package/i18ntokens.json +810 -738
  43. package/lib/components/avatar/avatar.js +4 -0
  44. package/lib/components/avatar/avatar.styles.js +16 -16
  45. package/lib/components/banner/banner.js +1 -2
  46. package/lib/components/banner/banner.styles.js +1 -1
  47. package/lib/components/basic_table/basic_table.js +34 -4
  48. package/lib/components/basic_table/basic_table.styles.js +19 -1
  49. package/lib/components/basic_table/in_memory_table.js +17 -0
  50. package/lib/components/basic_table/index.js +8 -1
  51. package/lib/components/basic_table/pagination_bar.js +19 -4
  52. package/lib/components/basic_table/pagination_bar.styles.js +26 -0
  53. package/lib/components/basic_table/panel.styles.js +20 -0
  54. package/lib/components/basic_table/use_panel_props.js +33 -0
  55. package/lib/components/date_picker/auto_refresh/refresh_interval.js +175 -229
  56. package/lib/components/date_picker/date_picker.js +1 -1
  57. package/lib/components/flyout/flyout.component.js +10 -6
  58. package/lib/components/flyout/flyout_menu.js +120 -19
  59. package/lib/components/flyout/flyout_menu.styles.js +2 -1
  60. package/lib/components/flyout/manager/actions.js +21 -1
  61. package/lib/components/flyout/manager/flyout_child.js +23 -1
  62. package/lib/components/flyout/manager/flyout_managed.js +41 -17
  63. package/lib/components/flyout/manager/hooks.js +6 -0
  64. package/lib/components/flyout/manager/index.js +12 -0
  65. package/lib/components/flyout/manager/reducer.js +31 -7
  66. package/lib/components/flyout/manager/selectors.js +9 -3
  67. package/lib/components/flyout/manager/store.js +34 -1
  68. package/lib/components/flyout/use_flyout_menu.js +2 -2
  69. package/lib/components/form/field_password/field_password.styles.js +1 -1
  70. package/lib/components/form/field_search/field_search.styles.js +1 -1
  71. package/lib/components/form/form.styles.js +1 -1
  72. package/lib/components/form/form_control_layout/form_control_layout_icons.js +95 -145
  73. package/lib/components/form/select/select.styles.js +1 -1
  74. package/lib/components/form/text_area/text_area.styles.js +1 -1
  75. package/lib/components/form/validatable_control/validatable_control.js +7 -52
  76. package/lib/components/table/mobile/table_sort_mobile.js +71 -108
  77. package/lib/components/table/store/use_unique_column_id.js +34 -0
  78. package/lib/components/table/table_header_cell.js +7 -8
  79. package/lib/components/table/table_header_cell_checkbox.js +5 -6
  80. package/lib/components/tool_tip/tool_tip.js +59 -29
  81. package/lib/components/tool_tip/tool_tip_anchor.js +5 -5
  82. package/lib/components/tool_tip/tool_tip_manager.js +27 -2
  83. package/optimize/es/components/avatar/avatar.js +4 -0
  84. package/optimize/es/components/avatar/avatar.styles.js +16 -16
  85. package/optimize/es/components/banner/banner.js +1 -2
  86. package/optimize/es/components/banner/banner.styles.js +1 -1
  87. package/optimize/es/components/basic_table/basic_table.js +18 -5
  88. package/optimize/es/components/basic_table/basic_table.styles.js +19 -1
  89. package/optimize/es/components/basic_table/index.js +2 -1
  90. package/optimize/es/components/basic_table/pagination_bar.js +19 -4
  91. package/optimize/es/components/basic_table/pagination_bar.styles.js +21 -0
  92. package/optimize/es/components/basic_table/panel.styles.js +14 -0
  93. package/optimize/es/components/basic_table/use_panel_props.js +28 -0
  94. package/optimize/es/components/date_picker/auto_refresh/refresh_interval.js +172 -196
  95. package/optimize/es/components/date_picker/date_picker.js +1 -1
  96. package/optimize/es/components/flyout/flyout.component.js +10 -6
  97. package/optimize/es/components/flyout/flyout_menu.js +99 -18
  98. package/optimize/es/components/flyout/flyout_menu.styles.js +2 -1
  99. package/optimize/es/components/flyout/manager/actions.js +20 -0
  100. package/optimize/es/components/flyout/manager/flyout_managed.js +42 -18
  101. package/optimize/es/components/flyout/manager/hooks.js +1 -1
  102. package/optimize/es/components/flyout/manager/index.js +2 -2
  103. package/optimize/es/components/flyout/manager/reducer.js +32 -8
  104. package/optimize/es/components/flyout/manager/selectors.js +8 -2
  105. package/optimize/es/components/flyout/manager/store.js +35 -2
  106. package/optimize/es/components/flyout/use_flyout_menu.js +2 -2
  107. package/optimize/es/components/form/field_password/field_password.styles.js +1 -1
  108. package/optimize/es/components/form/field_search/field_search.styles.js +1 -1
  109. package/optimize/es/components/form/form.styles.js +1 -1
  110. package/optimize/es/components/form/form_control_layout/form_control_layout_icons.js +96 -115
  111. package/optimize/es/components/form/select/select.styles.js +1 -1
  112. package/optimize/es/components/form/text_area/text_area.styles.js +1 -1
  113. package/optimize/es/components/form/validatable_control/validatable_control.js +7 -48
  114. package/optimize/es/components/table/mobile/table_sort_mobile.js +59 -82
  115. package/optimize/es/components/table/store/use_unique_column_id.js +25 -0
  116. package/optimize/es/components/table/table_header_cell.js +7 -8
  117. package/optimize/es/components/table/table_header_cell_checkbox.js +5 -6
  118. package/optimize/es/components/tool_tip/tool_tip.js +58 -30
  119. package/optimize/es/components/tool_tip/tool_tip_anchor.js +5 -5
  120. package/optimize/es/components/tool_tip/tool_tip_manager.js +27 -2
  121. package/optimize/lib/components/avatar/avatar.js +4 -0
  122. package/optimize/lib/components/avatar/avatar.styles.js +16 -16
  123. package/optimize/lib/components/banner/banner.js +1 -2
  124. package/optimize/lib/components/banner/banner.styles.js +1 -1
  125. package/optimize/lib/components/basic_table/basic_table.js +17 -4
  126. package/optimize/lib/components/basic_table/basic_table.styles.js +19 -1
  127. package/optimize/lib/components/basic_table/index.js +8 -1
  128. package/optimize/lib/components/basic_table/pagination_bar.js +19 -4
  129. package/optimize/lib/components/basic_table/pagination_bar.styles.js +26 -0
  130. package/optimize/lib/components/basic_table/panel.styles.js +20 -0
  131. package/optimize/lib/components/basic_table/use_panel_props.js +33 -0
  132. package/optimize/lib/components/date_picker/auto_refresh/refresh_interval.js +170 -194
  133. package/optimize/lib/components/date_picker/date_picker.js +1 -1
  134. package/optimize/lib/components/flyout/flyout.component.js +10 -6
  135. package/optimize/lib/components/flyout/flyout_menu.js +98 -18
  136. package/optimize/lib/components/flyout/flyout_menu.styles.js +2 -1
  137. package/optimize/lib/components/flyout/manager/actions.js +21 -1
  138. package/optimize/lib/components/flyout/manager/flyout_managed.js +41 -17
  139. package/optimize/lib/components/flyout/manager/hooks.js +6 -0
  140. package/optimize/lib/components/flyout/manager/index.js +12 -0
  141. package/optimize/lib/components/flyout/manager/reducer.js +31 -7
  142. package/optimize/lib/components/flyout/manager/selectors.js +9 -3
  143. package/optimize/lib/components/flyout/manager/store.js +34 -1
  144. package/optimize/lib/components/flyout/use_flyout_menu.js +2 -2
  145. package/optimize/lib/components/form/field_password/field_password.styles.js +1 -1
  146. package/optimize/lib/components/form/field_search/field_search.styles.js +1 -1
  147. package/optimize/lib/components/form/form.styles.js +1 -1
  148. package/optimize/lib/components/form/form_control_layout/form_control_layout_icons.js +96 -117
  149. package/optimize/lib/components/form/select/select.styles.js +1 -1
  150. package/optimize/lib/components/form/text_area/text_area.styles.js +1 -1
  151. package/optimize/lib/components/form/validatable_control/validatable_control.js +6 -49
  152. package/optimize/lib/components/table/mobile/table_sort_mobile.js +61 -83
  153. package/optimize/lib/components/table/store/use_unique_column_id.js +34 -0
  154. package/optimize/lib/components/table/table_header_cell.js +7 -8
  155. package/optimize/lib/components/table/table_header_cell_checkbox.js +5 -6
  156. package/optimize/lib/components/tool_tip/tool_tip.js +57 -29
  157. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +5 -5
  158. package/optimize/lib/components/tool_tip/tool_tip_manager.js +27 -2
  159. package/package.json +8 -5
  160. package/test-env/components/avatar/avatar.js +4 -0
  161. package/test-env/components/avatar/avatar.styles.js +16 -16
  162. package/test-env/components/banner/banner.js +1 -2
  163. package/test-env/components/banner/banner.styles.js +1 -1
  164. package/test-env/components/basic_table/basic_table.js +34 -4
  165. package/test-env/components/basic_table/basic_table.styles.js +19 -1
  166. package/test-env/components/basic_table/in_memory_table.js +17 -0
  167. package/test-env/components/basic_table/index.js +8 -1
  168. package/test-env/components/basic_table/pagination_bar.js +19 -4
  169. package/test-env/components/basic_table/pagination_bar.styles.js +26 -0
  170. package/test-env/components/basic_table/panel.styles.js +20 -0
  171. package/test-env/components/basic_table/use_panel_props.js +33 -0
  172. package/test-env/components/date_picker/auto_refresh/refresh_interval.js +170 -220
  173. package/test-env/components/date_picker/date_picker.js +1 -1
  174. package/test-env/components/flyout/flyout.component.js +10 -6
  175. package/test-env/components/flyout/flyout_menu.js +121 -19
  176. package/test-env/components/flyout/flyout_menu.styles.js +2 -1
  177. package/test-env/components/flyout/manager/actions.js +21 -1
  178. package/test-env/components/flyout/manager/flyout_child.js +23 -1
  179. package/test-env/components/flyout/manager/flyout_managed.js +41 -17
  180. package/test-env/components/flyout/manager/hooks.js +6 -0
  181. package/test-env/components/flyout/manager/index.js +12 -0
  182. package/test-env/components/flyout/manager/reducer.js +31 -7
  183. package/test-env/components/flyout/manager/selectors.js +9 -3
  184. package/test-env/components/flyout/manager/store.js +34 -1
  185. package/test-env/components/flyout/use_flyout_menu.js +2 -2
  186. package/test-env/components/form/field_password/field_password.styles.js +1 -1
  187. package/test-env/components/form/field_search/field_search.styles.js +1 -1
  188. package/test-env/components/form/form.styles.js +1 -1
  189. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +95 -139
  190. package/test-env/components/form/select/select.styles.js +1 -1
  191. package/test-env/components/form/text_area/text_area.styles.js +1 -1
  192. package/test-env/components/form/validatable_control/validatable_control.js +6 -48
  193. package/test-env/components/table/mobile/table_sort_mobile.js +61 -98
  194. package/test-env/components/table/store/use_unique_column_id.js +34 -0
  195. package/test-env/components/table/table_header_cell.js +7 -8
  196. package/test-env/components/table/table_header_cell_checkbox.js +5 -6
  197. package/test-env/components/tool_tip/tool_tip.js +57 -29
  198. package/test-env/components/tool_tip/tool_tip_anchor.js +5 -5
  199. package/test-env/components/tool_tip/tool_tip_manager.js +27 -2
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setReferenceWidth = exports.setPushPadding = exports.setLayoutMode = exports.setFlyoutWidth = exports.setContainerElement = exports.setActivityStage = exports.setActiveFlyout = exports.goToFlyout = exports.goBack = exports.closeUnmanagedFlyout = exports.closeFlyout = exports.closeAllFlyouts = exports.addUnmanagedFlyout = exports.addFlyout = exports.ACTION_SET_WIDTH = exports.ACTION_SET_REFERENCE_WIDTH = exports.ACTION_SET_PUSH_PADDING = exports.ACTION_SET_LAYOUT_MODE = exports.ACTION_SET_CONTAINER_ELEMENT = exports.ACTION_SET_ACTIVITY_STAGE = exports.ACTION_SET_ACTIVE = exports.ACTION_GO_TO_FLYOUT = exports.ACTION_GO_BACK = exports.ACTION_CLOSE_UNMANAGED_FLYOUT = exports.ACTION_CLOSE_ALL = exports.ACTION_CLOSE = exports.ACTION_ADD_UNMANAGED_FLYOUT = exports.ACTION_ADD = void 0;
6
+ exports.setReferenceWidth = exports.setPushPadding = exports.setPagination = exports.setLayoutMode = exports.setFlyoutWidth = exports.setContainerElement = exports.setActivityStage = exports.setActiveFlyout = exports.goToFlyout = exports.goBack = exports.closeUnmanagedFlyout = exports.closeFlyout = exports.closeAllFlyouts = exports.addUnmanagedFlyout = exports.addFlyout = exports.ACTION_SET_WIDTH = exports.ACTION_SET_REFERENCE_WIDTH = exports.ACTION_SET_PUSH_PADDING = exports.ACTION_SET_PAGINATION = exports.ACTION_SET_LAYOUT_MODE = exports.ACTION_SET_CONTAINER_ELEMENT = exports.ACTION_SET_ACTIVITY_STAGE = exports.ACTION_SET_ACTIVE = exports.ACTION_GO_TO_FLYOUT = exports.ACTION_GO_BACK = exports.ACTION_CLOSE_UNMANAGED_FLYOUT = exports.ACTION_CLOSE_ALL = exports.ACTION_CLOSE = exports.ACTION_ADD_UNMANAGED_FLYOUT = exports.ACTION_ADD = void 0;
7
7
  var _const = require("./const");
8
8
  /*
9
9
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -24,6 +24,8 @@ var ACTION_CLOSE_ALL = exports.ACTION_CLOSE_ALL = "".concat(PREFIX, "/closeAll")
24
24
  var ACTION_SET_ACTIVE = exports.ACTION_SET_ACTIVE = "".concat(PREFIX, "/setActive");
25
25
  /** Dispatched when an active flyout's pixel width changes (for responsive layout). */
26
26
  var ACTION_SET_WIDTH = exports.ACTION_SET_WIDTH = "".concat(PREFIX, "/setWidth");
27
+ /** Dispatched to set a flyout's menu pagination. */
28
+ var ACTION_SET_PAGINATION = exports.ACTION_SET_PAGINATION = "".concat(PREFIX, "/setPagination");
27
29
  /** Dispatched to switch layout mode between `side-by-side` and `stacked`. */
28
30
  var ACTION_SET_LAYOUT_MODE = exports.ACTION_SET_LAYOUT_MODE = "".concat(PREFIX, "/setLayoutMode");
29
31
  /** Dispatched to update a flyout's activity stage (e.g., opening -> active). */
@@ -54,6 +56,8 @@ var ACTION_CLOSE_UNMANAGED_FLYOUT = exports.ACTION_CLOSE_UNMANAGED_FLYOUT = "".c
54
56
 
55
57
  /** Update a flyout's measured width in pixels. */
56
58
 
59
+ /** Set the manager pagination value for a flyout. */
60
+
57
61
  /** Change how flyouts are arranged: `side-by-side` or `stacked`. */
58
62
 
59
63
  /** Set a specific flyout's activity stage. */
@@ -128,6 +132,22 @@ var setFlyoutWidth = exports.setFlyoutWidth = function setFlyoutWidth(flyoutId,
128
132
  };
129
133
  };
130
134
 
135
+ /**
136
+ * Set (or clear) the menu pagination config for a flyout. When set, this
137
+ * overrides any pagination passed via `flyoutMenuProps.pagination` on the
138
+ * flyout itself, allowing reactive updates from a different React root.
139
+ *
140
+ * Only works for managed flyouts. Unmanaged flyouts (session={false}) must use
141
+ * the `flyoutMenuProps.pagination` prop instead.
142
+ */
143
+ var setPagination = exports.setPagination = function setPagination(flyoutId, pagination) {
144
+ return {
145
+ type: ACTION_SET_PAGINATION,
146
+ flyoutId: flyoutId,
147
+ pagination: pagination
148
+ };
149
+ };
150
+
131
151
  /** Switch layout mode between `side-by-side` and `stacked`. */
132
152
  var setLayoutMode = exports.setLayoutMode = function setLayoutMode(layoutMode) {
133
153
  return {
@@ -149,10 +149,10 @@ var EuiManagedFlyout = exports.EuiManagedFlyout = /*#__PURE__*/(0, _react.forwar
149
149
 
150
150
  // Stabilize the onClose callback
151
151
  var onCloseCallbackRef = (0, _react.useRef)();
152
- onCloseCallbackRef.current = function (e) {
152
+ onCloseCallbackRef.current = function (e, meta) {
153
153
  if (onCloseProp) {
154
154
  var event = e || new MouseEvent('click');
155
- onCloseProp(event);
155
+ onCloseProp(event, meta);
156
156
  }
157
157
  };
158
158
 
@@ -177,17 +177,20 @@ var EuiManagedFlyout = exports.EuiManagedFlyout = /*#__PURE__*/(0, _react.forwar
177
177
  (0, _react.useLayoutEffect)(function () {
178
178
  addFlyout(flyoutId, title, level, size, level === _const.LEVEL_MAIN ? historyKey : undefined, _flyoutMenuProps === null || _flyoutMenuProps === void 0 ? void 0 : _flyoutMenuProps.iconType, typeof minWidth === 'number' ? minWidth : undefined);
179
179
  return function () {
180
- var currentStoreState = (0, _store.getFlyoutManagerStore)().getState();
181
- var stillInStore = currentStoreState.flyouts.some(function (f) {
180
+ var store = (0, _store.getFlyoutManagerStore)();
181
+ var stillInStore = store.getState().flyouts.some(function (f) {
182
182
  return f.flyoutId === flyoutId;
183
183
  });
184
184
  if (stillInStore) {
185
185
  // Normal cleanup (deps changed or explicit close via isOpen=false)
186
186
  level === _const.LEVEL_MAIN ? closeAllFlyouts() : closeFlyout(flyoutId);
187
187
  } else if (wasRegisteredRef.current) {
188
- var _onCloseCallbackRef$c;
189
- // Cascade close: was registered but removed externally (e.g. main closed)
190
- (_onCloseCallbackRef$c = onCloseCallbackRef.current) === null || _onCloseCallbackRef$c === void 0 || _onCloseCallbackRef$c.call(onCloseCallbackRef, new MouseEvent('navigation'));
188
+ var _onCloseCallbackRef$c, _store$consumeCloseMe;
189
+ // Removed externally while mounted: forward the store-stamped reason
190
+ // (e.g. `navigation-back` from goBack), defaulting to cascade.
191
+ (_onCloseCallbackRef$c = onCloseCallbackRef.current) === null || _onCloseCallbackRef$c === void 0 || _onCloseCallbackRef$c.call(onCloseCallbackRef, new MouseEvent('navigation'), (_store$consumeCloseMe = store.consumeCloseMeta(flyoutId)) !== null && _store$consumeCloseMe !== void 0 ? _store$consumeCloseMe : {
192
+ reason: 'navigation-cascade'
193
+ });
191
194
  }
192
195
  wasRegisteredRef.current = false;
193
196
  };
@@ -200,11 +203,16 @@ var EuiManagedFlyout = exports.EuiManagedFlyout = /*#__PURE__*/(0, _react.forwar
200
203
  wasRegisteredRef.current = true;
201
204
  }
202
205
 
203
- // If flyout was previously registered, is marked as open, but no longer exists in manager state,
204
- // it was removed via navigation (Back button) - trigger close callback
206
+ // If flyout was previously registered, is marked as open, but no longer
207
+ // exists in manager state, it was removed externally while still mounted.
208
+ // Forward the store-stamped reason (e.g. `navigation-back` from goBack);
209
+ // any other removal (e.g. a closeAllFlyouts cascade reaching a backgrounded
210
+ // flyout) defaults to `navigation-cascade`.
205
211
  if (wasRegisteredRef.current && !flyoutExistsInManager) {
206
- var _onCloseCallbackRef$c2;
207
- (_onCloseCallbackRef$c2 = onCloseCallbackRef.current) === null || _onCloseCallbackRef$c2 === void 0 || _onCloseCallbackRef$c2.call(onCloseCallbackRef, new MouseEvent('navigation'));
212
+ var _onCloseCallbackRef$c2, _getFlyoutManagerStor;
213
+ (_onCloseCallbackRef$c2 = onCloseCallbackRef.current) === null || _onCloseCallbackRef$c2 === void 0 || _onCloseCallbackRef$c2.call(onCloseCallbackRef, new MouseEvent('navigation'), (_getFlyoutManagerStor = (0, _store.getFlyoutManagerStore)().consumeCloseMeta(flyoutId)) !== null && _getFlyoutManagerStor !== void 0 ? _getFlyoutManagerStor : {
214
+ reason: 'navigation-cascade'
215
+ });
208
216
  wasRegisteredRef.current = false; // Reset to avoid repeated calls
209
217
  }
210
218
  }, [flyoutExistsInManager, flyoutId]);
@@ -228,7 +236,12 @@ var EuiManagedFlyout = exports.EuiManagedFlyout = /*#__PURE__*/(0, _react.forwar
228
236
  width = _useResizeObserver.width;
229
237
 
230
238
  // Pass the stabilized onClose callback to the flyout menu context
231
- var onClose = function onClose(e) {
239
+ var onClose = function onClose(e, meta) {
240
+ // Clear before flushSync so that effects flushed synchronously inside it
241
+ // (the navigation-back detector) see wasRegisteredRef = false and do not
242
+ // misidentify this user-initiated close as a Back-button navigation.
243
+ wasRegisteredRef.current = false;
244
+
232
245
  // CRITICAL: Update manager state FIRST before allowing React to unmount
233
246
  // This prevents race conditions during portal → inline DOM transitions
234
247
  // and ensures cascade close logic runs before DOM cleanup begins
@@ -236,10 +249,9 @@ var EuiManagedFlyout = exports.EuiManagedFlyout = /*#__PURE__*/(0, _react.forwar
236
249
  (0, _reactDom.flushSync)(function () {
237
250
  level === _const.LEVEL_MAIN ? closeAllFlyouts() : closeFlyout(flyoutId);
238
251
  });
239
- wasRegisteredRef.current = false; // Prevent cleanup from double-firing onClose
240
252
  if (onCloseCallbackRef.current) {
241
253
  var event = e || new MouseEvent('click');
242
- onCloseCallbackRef.current(event);
254
+ onCloseCallbackRef.current(event, meta);
243
255
  }
244
256
  };
245
257
 
@@ -268,11 +280,23 @@ var EuiManagedFlyout = exports.EuiManagedFlyout = /*#__PURE__*/(0, _react.forwar
268
280
  } : undefined;
269
281
  }, [level, goBack]);
270
282
  var showBackButton = historyItems ? historyItems.length > 0 : false;
283
+
284
+ // When the store has a defined pagination value it takes precedence; the
285
+ // prop acts as a fallback for callers that don't use the cross-root store.
286
+ // Using both simultaneously is not supported and will log a warning in dev.
287
+ var storePagination = (0, _hooks.useFlyoutPagination)(flyoutId);
288
+ var propPagination = _flyoutMenuProps === null || _flyoutMenuProps === void 0 ? void 0 : _flyoutMenuProps.pagination;
289
+ if (process.env.NODE_ENV === 'development' && storePagination != null && propPagination != null) {
290
+ console.warn("flyout-pagination-dual-source-".concat(flyoutId), "[EuiFlyoutManager] flyout \"".concat(flyoutId, "\" has pagination set both via the store (setPagination) ") + 'and via flyoutMenuProps.pagination. The store value will be used. Remove one source to avoid confusion.');
291
+ }
292
+ var pagination = storePagination !== null && storePagination !== void 0 ? storePagination : propPagination;
293
+ var showPaginationControls = pagination != null && pagination.total > 1;
271
294
  var flyoutMenuProps = _objectSpread(_objectSpread({}, _flyoutMenuProps), {}, {
272
- historyItems: historyItems,
273
- showBackButton: showBackButton,
295
+ historyItems: showPaginationControls ? [] : historyItems,
296
+ showBackButton: showPaginationControls ? false : showBackButton,
274
297
  backButtonProps: backButtonProps,
275
- title: title
298
+ title: title,
299
+ pagination: pagination
276
300
  });
277
301
  return (0, _react2.jsx)(_context.EuiFlyoutIsManagedProvider, {
278
302
  isManaged: true
@@ -29,6 +29,12 @@ Object.defineProperty(exports, "useFlyoutLayoutMode", {
29
29
  }
30
30
  });
31
31
  exports.useFlyoutManager = void 0;
32
+ Object.defineProperty(exports, "useFlyoutPagination", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _selectors.useFlyoutPagination;
36
+ }
37
+ });
32
38
  Object.defineProperty(exports, "useFlyoutWidth", {
33
39
  enumerable: true,
34
40
  get: function get() {
@@ -81,6 +81,12 @@ Object.defineProperty(exports, "setFlyoutWidthAction", {
81
81
  return _actions.setFlyoutWidth;
82
82
  }
83
83
  });
84
+ Object.defineProperty(exports, "setPaginationAction", {
85
+ enumerable: true,
86
+ get: function get() {
87
+ return _actions.setPagination;
88
+ }
89
+ });
84
90
  Object.defineProperty(exports, "setPushPaddingAction", {
85
91
  enumerable: true,
86
92
  get: function get() {
@@ -123,6 +129,12 @@ Object.defineProperty(exports, "useFlyoutManager", {
123
129
  return _hooks.useFlyoutManager;
124
130
  }
125
131
  });
132
+ Object.defineProperty(exports, "useFlyoutPagination", {
133
+ enumerable: true,
134
+ get: function get() {
135
+ return _hooks.useFlyoutPagination;
136
+ }
137
+ });
126
138
  Object.defineProperty(exports, "useFlyoutWidth", {
127
139
  enumerable: true,
128
140
  get: function get() {
@@ -357,6 +357,30 @@ function flyoutManagerReducer() {
357
357
  });
358
358
  }
359
359
 
360
+ // Update a flyout's menu pagination. No-op if unchanged or missing.
361
+ case _actions.ACTION_SET_PAGINATION:
362
+ {
363
+ var _flyoutId2 = action.flyoutId,
364
+ pagination = action.pagination;
365
+ var target = state.flyouts.find(function (f) {
366
+ return f.flyoutId === _flyoutId2;
367
+ });
368
+ if (!target) {
369
+ return state;
370
+ }
371
+ if (target.pagination === pagination) {
372
+ return state;
373
+ }
374
+ var _updatedFlyouts = state.flyouts.map(function (flyout) {
375
+ return flyout.flyoutId === _flyoutId2 ? _objectSpread(_objectSpread({}, flyout), {}, {
376
+ pagination: pagination
377
+ }) : flyout;
378
+ });
379
+ return _objectSpread(_objectSpread({}, state), {}, {
380
+ flyouts: _updatedFlyouts
381
+ });
382
+ }
383
+
360
384
  // Switch global layout mode for managed flyouts.
361
385
  case _actions.ACTION_SET_LAYOUT_MODE:
362
386
  {
@@ -368,14 +392,14 @@ function flyoutManagerReducer() {
368
392
  // Update a flyout's activity stage in state
369
393
  case _actions.ACTION_SET_ACTIVITY_STAGE:
370
394
  {
371
- var _flyoutId2 = action.flyoutId;
372
- var _updatedFlyouts = state.flyouts.map(function (flyout) {
373
- return flyout.flyoutId === _flyoutId2 ? _objectSpread(_objectSpread({}, flyout), {}, {
395
+ var _flyoutId3 = action.flyoutId;
396
+ var _updatedFlyouts2 = state.flyouts.map(function (flyout) {
397
+ return flyout.flyoutId === _flyoutId3 ? _objectSpread(_objectSpread({}, flyout), {}, {
374
398
  activityStage: action.activityStage
375
399
  }) : flyout;
376
400
  });
377
401
  return _objectSpread(_objectSpread({}, state), {}, {
378
- flyouts: _updatedFlyouts
402
+ flyouts: _updatedFlyouts2
379
403
  });
380
404
  }
381
405
 
@@ -429,7 +453,7 @@ function flyoutManagerReducer() {
429
453
  // Navigate to a specific flyout (by main session or by child in current session's history)
430
454
  case _actions.ACTION_GO_TO_FLYOUT:
431
455
  {
432
- var _flyoutId3 = action.flyoutId,
456
+ var _flyoutId4 = action.flyoutId,
433
457
  _level = action.level;
434
458
  var _currentSessionIndex4 = state.sessions.length - 1;
435
459
  if (_level === _const.LEVEL_CHILD && state.sessions.length > 0) {
@@ -437,7 +461,7 @@ function flyoutManagerReducer() {
437
461
  var _currentSession3 = state.sessions[_currentSessionIndex4];
438
462
  var _childHistory2 = (_currentSession3$chil = _currentSession3.childHistory) !== null && _currentSession3$chil !== void 0 ? _currentSession3$chil : [];
439
463
  var targetIndex = _childHistory2.findIndex(function (entry) {
440
- return entry.flyoutId === _flyoutId3;
464
+ return entry.flyoutId === _flyoutId4;
441
465
  });
442
466
  if (targetIndex === -1) {
443
467
  return state; // Target child not in history
@@ -469,7 +493,7 @@ function flyoutManagerReducer() {
469
493
 
470
494
  // Navigate by main flyout: remove all sessions after the target
471
495
  var targetSessionIndex = state.sessions.findIndex(function (session) {
472
- return session.mainFlyoutId === _flyoutId3;
496
+ return session.mainFlyoutId === _flyoutId4;
473
497
  });
474
498
  if (targetSessionIndex === -1) {
475
499
  return state; // Target flyout not found
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useSession = exports.usePushPaddingOffsets = exports.useParentFlyoutSize = exports.useIsFlyoutRegistered = exports.useIsFlyoutActive = exports.useHasPushPadding = exports.useHasChildFlyout = exports.useHasActiveSession = exports.useFlyoutWidth = exports.useFlyoutMinWidth = exports.useFlyout = exports.useCurrentSession = exports.useCurrentMainFlyout = exports.useCurrentFlyoutZIndexRef = exports.useCurrentChildFlyout = void 0;
6
+ exports.useSession = exports.usePushPaddingOffsets = exports.useParentFlyoutSize = exports.useIsFlyoutRegistered = exports.useIsFlyoutActive = exports.useHasPushPadding = exports.useHasChildFlyout = exports.useHasActiveSession = exports.useFlyoutWidth = exports.useFlyoutPagination = exports.useFlyoutMinWidth = exports.useFlyout = exports.useCurrentSession = exports.useCurrentMainFlyout = exports.useCurrentFlyoutZIndexRef = exports.useCurrentChildFlyout = void 0;
7
7
  var _provider = require("./provider");
8
8
  var _react = require("react");
9
9
  /*
@@ -80,10 +80,16 @@ var useFlyoutWidth = exports.useFlyoutWidth = function useFlyoutWidth(flyoutId)
80
80
  return (_useFlyout = useFlyout(flyoutId)) === null || _useFlyout === void 0 ? void 0 : _useFlyout.width;
81
81
  };
82
82
 
83
+ /** Returns the store pagination override for a flyout, if set. */
84
+ var useFlyoutPagination = exports.useFlyoutPagination = function useFlyoutPagination(flyoutId) {
85
+ var _useFlyout2;
86
+ return (_useFlyout2 = useFlyout(flyoutId)) === null || _useFlyout2 === void 0 ? void 0 : _useFlyout2.pagination;
87
+ };
88
+
83
89
  /** The configured minWidth (px) of the specified flyout, or `undefined` if not set. */
84
90
  var useFlyoutMinWidth = exports.useFlyoutMinWidth = function useFlyoutMinWidth(flyoutId) {
85
- var _useFlyout2;
86
- return (_useFlyout2 = useFlyout(flyoutId)) === null || _useFlyout2 === void 0 ? void 0 : _useFlyout2.minWidth;
91
+ var _useFlyout3;
92
+ return (_useFlyout3 = useFlyout(flyoutId)) === null || _useFlyout3 === void 0 ? void 0 : _useFlyout3.minWidth;
87
93
  };
88
94
 
89
95
  /** The configured size of the parent (main) flyout for a given child flyout ID. */
@@ -26,6 +26,13 @@ function createStore() {
26
26
  var currentState = initial;
27
27
  var listeners = new Set();
28
28
  var eventListeners = new Set();
29
+
30
+ // Transient, one-shot close annotations keyed by flyoutId. `goBack` stamps the
31
+ // flyouts it removes so the managed flyout can report `navigation-back`; any
32
+ // other removal (e.g. closeAllFlyouts cascade) leaves no stamp and defaults to
33
+ // `navigation-cascade`. Kept off reducer state because it is a per-close
34
+ // annotation, not persistent state.
35
+ var pendingCloseMeta = new Map();
29
36
  var getState = function getState() {
30
37
  return currentState;
31
38
  };
@@ -169,6 +176,9 @@ function createStore() {
169
176
  setFlyoutWidth: function setFlyoutWidth(flyoutId, width) {
170
177
  return dispatch((0, _actions.setFlyoutWidth)(flyoutId, width));
171
178
  },
179
+ setPagination: function setPagination(flyoutId, pagination) {
180
+ return dispatch((0, _actions.setPagination)(flyoutId, pagination));
181
+ },
172
182
  setPushPadding: function setPushPadding(side, width) {
173
183
  return dispatch((0, _actions.setPushPadding)(side, width));
174
184
  },
@@ -176,7 +186,23 @@ function createStore() {
176
186
  return dispatch((0, _actions.setContainerElement)(element));
177
187
  },
178
188
  goBack: function goBack() {
179
- return dispatch((0, _actions.goBack)());
189
+ // Stamp the flyouts goBack removes as `navigation-back` (vs. the default
190
+ // `navigation-cascade`) BEFORE dispatching. dispatch synchronously flushes
191
+ // subscribers, which can consume the meta during unmount, so peek the pure
192
+ // reducer to learn which flyouts go away and stamp them first.
193
+ var action = (0, _actions.goBack)();
194
+ var nextState = (0, _reducer.flyoutManagerReducer)(currentState, action);
195
+ var remaining = new Set(nextState.flyouts.map(function (f) {
196
+ return f.flyoutId;
197
+ }));
198
+ currentState.flyouts.forEach(function (f) {
199
+ if (!remaining.has(f.flyoutId)) {
200
+ pendingCloseMeta.set(f.flyoutId, {
201
+ reason: 'navigation-back'
202
+ });
203
+ }
204
+ });
205
+ dispatch(action);
180
206
  },
181
207
  goToFlyout: function goToFlyout(flyoutId, level) {
182
208
  return dispatch((0, _actions.goToFlyout)(flyoutId, level));
@@ -187,6 +213,13 @@ function createStore() {
187
213
  closeUnmanagedFlyout: function closeUnmanagedFlyout(flyoutId) {
188
214
  return dispatch((0, _actions.closeUnmanagedFlyout)(flyoutId));
189
215
  },
216
+ consumeCloseMeta: function consumeCloseMeta(flyoutId) {
217
+ var meta = pendingCloseMeta.get(flyoutId);
218
+ if (meta) {
219
+ pendingCloseMeta.delete(flyoutId);
220
+ }
221
+ return meta;
222
+ },
190
223
  historyItems: computeHistoryItems(dispatch) // Initialize with current state
191
224
  };
192
225
  return store;
@@ -45,10 +45,10 @@ var useEuiFlyoutMenu = exports.useEuiFlyoutMenu = function useEuiFlyoutMenu(_ref
45
45
  }, [hasMenu, _titleId, generatedMenuId]);
46
46
 
47
47
  // Determine if the menu has any content
48
- // hasBackButton or hasHistory or hasCustomActions or hasVisibleTitle
48
+ // hasBackButton or hasHistory or hasCustomActions or hasVisibleTitle or hasPagination
49
49
  var menuHasContent = hasMenu && (!!flyoutMenuProps.showBackButton || ((_flyoutMenuProps$hist = (_flyoutMenuProps$hist2 = flyoutMenuProps.historyItems) === null || _flyoutMenuProps$hist2 === void 0 ? void 0 : _flyoutMenuProps$hist2.length) !== null && _flyoutMenuProps$hist !== void 0 ? _flyoutMenuProps$hist : 0) > 0 || ((_flyoutMenuProps$cust = (_flyoutMenuProps$cust2 = flyoutMenuProps.customActions) === null || _flyoutMenuProps$cust2 === void 0 ? void 0 : _flyoutMenuProps$cust2.length) !== null && _flyoutMenuProps$cust !== void 0 ? _flyoutMenuProps$cust : 0) > 0 ||
50
50
  // Component defaults to hiding the title, so only explicit false means the title will be visible
51
- !!(flyoutMenuProps.title && flyoutMenuProps.hideTitle === false));
51
+ !!(flyoutMenuProps.title && flyoutMenuProps.hideTitle === false) || !!(flyoutMenuProps.pagination && flyoutMenuProps.pagination.total > 1));
52
52
 
53
53
  // Determine if the menu should be rendered based on the display mode and menu content
54
54
  var shouldRenderMenu = (0, _react.useMemo)(function () {
@@ -24,7 +24,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
24
24
  var euiFieldPasswordStyles = exports.euiFieldPasswordStyles = function euiFieldPasswordStyles(euiThemeContext) {
25
25
  var formStyles = (0, _form.euiFormControlStyles)(euiThemeContext);
26
26
  return {
27
- euiFieldPassword: /*#__PURE__*/(0, _react.css)(formStyles.shared, " &:invalid{", formStyles.invalid, ";}&:focus{", formStyles.focus, ";}&:disabled{", formStyles.disabled, ";}&[readOnly]{", formStyles.readOnly, ";}&:autofill{", formStyles.autoFill, ";};label:euiFieldPassword;"),
27
+ euiFieldPassword: /*#__PURE__*/(0, _react.css)(formStyles.shared, " &:is(:invalid, [aria-invalid='true']){", formStyles.invalid, ";}&:focus{", formStyles.focus, ";}&:disabled{", formStyles.disabled, ";}&[readOnly]{", formStyles.readOnly, ";}&:autofill{", formStyles.autoFill, ";};label:euiFieldPassword;"),
28
28
  // Only remove Edge's internal reveal button if we're providing a custom one
29
29
  // This pseudo-element is still supported in Chromium-based Edge.
30
30
  withToggle: _ref,
@@ -17,7 +17,7 @@ var _form = require("../form.styles");
17
17
  var euiFieldSearchStyles = exports.euiFieldSearchStyles = function euiFieldSearchStyles(euiThemeContext) {
18
18
  var formStyles = (0, _form.euiFormControlStyles)(euiThemeContext);
19
19
  return {
20
- euiFieldSearch: /*#__PURE__*/(0, _react.css)("-webkit-appearance:textfield;&::-webkit-search-decoration,&::-webkit-search-cancel-button{-webkit-appearance:none;}", formStyles.shared, " &:invalid{", formStyles.invalid, ";}&:focus{", formStyles.focus, ";}&:disabled{", formStyles.disabled, ";}&[readOnly]{", formStyles.readOnly, ";}&:autofill{", formStyles.autoFill, ";};label:euiFieldSearch;"),
20
+ euiFieldSearch: /*#__PURE__*/(0, _react.css)("-webkit-appearance:textfield;&::-webkit-search-decoration,&::-webkit-search-cancel-button{-webkit-appearance:none;}", formStyles.shared, " &:is(:invalid, [aria-invalid='true']){", formStyles.invalid, ";}&:focus{", formStyles.focus, ";}&:disabled{", formStyles.disabled, ";}&[readOnly]{", formStyles.readOnly, ";}&:autofill{", formStyles.autoFill, ";};label:euiFieldSearch;"),
21
21
  // Skip the css() on the default height to avoid generating a className
22
22
  uncompressed: formStyles.uncompressed,
23
23
  compressed: /*#__PURE__*/(0, _react.css)(formStyles.compressed, ";label:compressed;"),
@@ -209,7 +209,7 @@ var euiFormControlAutoFillStyles = exports.euiFormControlAutoFillStyles = functi
209
209
  var borderShadow = "inset 0 0 0 var(--euiFormControlStateAutofillWidth) var(--euiFormControlStateAutofillColor), ".concat(backgroundShadow);
210
210
 
211
211
  // These styles only apply/override Chrome/webkit browsers - Firefox does not set autofill styles
212
- return "\n &:where(:-webkit-autofill) {\n --euiFormControlStateAutofillWidth: ".concat(euiTheme.border.width.thin, ";\n --euiFormControlStateAutofillColor: ").concat(borderColor, ";\n \n -webkit-text-fill-color: ").concat(textColor, ";\n -webkit-box-shadow: ").concat(borderShadow, ";\n \n\n &:hover {\n --euiFormControlStateAutofillColor: ").concat(borderHovered, ";\n }\n\n &:focus {\n --euiFormControlStateAutofillWidth: ").concat(euiTheme.border.width.thick, ";\n }\n\n &:invalid {\n --euiFormControlStateAutofillColor: ").concat(borderInvalid, ";\n\n &:hover {\n --euiFormControlStateAutofillColor: ").concat(borderInvalidHovered, ";\n }\n }\n }\n ");
212
+ return "\n &:where(:-webkit-autofill) {\n --euiFormControlStateAutofillWidth: ".concat(euiTheme.border.width.thin, ";\n --euiFormControlStateAutofillColor: ").concat(borderColor, ";\n \n -webkit-text-fill-color: ").concat(textColor, ";\n -webkit-box-shadow: ").concat(borderShadow, ";\n \n\n &:hover {\n --euiFormControlStateAutofillColor: ").concat(borderHovered, ";\n }\n\n &:focus {\n --euiFormControlStateAutofillWidth: ").concat(euiTheme.border.width.thick, ";\n }\n\n &:is(:invalid, [aria-invalid='true']) {\n --euiFormControlStateAutofillColor: ").concat(borderInvalid, ";\n\n &:hover {\n --euiFormControlStateAutofillColor: ").concat(borderInvalidHovered, ";\n }\n }\n }\n ");
213
213
  };
214
214
  var euiFormControlAutofillUnsetStyles = exports.euiFormControlAutofillUnsetStyles = "\n\n";
215
215
  var euiFormControlShowBackgroundLine = exports.euiFormControlShowBackgroundLine = function euiFormControlShowBackgroundLine(euiThemeContext, color) {