@elastic/eui 106.1.0 → 106.2.0-snapshot.1757009122780
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/es/components/accessibility/index.js +2 -1
- package/es/components/{flyout/sessions → accessibility/live_announcer}/index.js +1 -2
- package/es/components/accessibility/live_announcer/live_announcer.js +84 -0
- package/es/components/accessibility/screen_reader_live/screen_reader_live.js +7 -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/basic_table/basic_table.js +4 -4
- package/es/components/basic_table/in_memory_table.js +4 -4
- package/es/components/button/button.js +1 -1
- package/es/components/button/button_display/_button_display.js +1 -1
- 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_group/button_group.js +1 -1
- package/es/components/button/button_group/button_group_button.js +1 -1
- package/es/components/button/button_icon/button_icon.js +1 -1
- package/es/components/call_out/call_out.js +16 -5
- package/es/components/card/card.js +2 -2
- package/es/components/card/card_select/card_select.js +1 -1
- package/es/components/card/checkable_card/checkable_card.js +30 -5
- package/es/components/code/code_block.js +5 -2
- package/es/components/code/code_block_virtualized.js +5 -3
- package/es/components/collapsible_nav/collapsible_nav.js +4 -106
- package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/es/components/combo_box/combo_box.a11y.js +97 -81
- package/es/components/combo_box/combo_box.js +3 -2
- package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +50 -25
- package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +6 -2
- 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 +12 -12
- package/es/components/datagrid/body/data_grid_body.js +7 -7
- package/es/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/es/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/es/components/datagrid/controls/column_sorting.js +7 -7
- 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/data_grid.styles.js +1 -1
- package/es/components/datagrid/utils/in_memory.js +6 -6
- 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/facet/facet_button.js +1 -1
- package/es/components/filter_group/filter_select_item.js +16 -3
- package/es/components/flyout/const.js +42 -0
- package/es/components/flyout/flyout.component.js +378 -0
- package/es/components/flyout/flyout.js +43 -362
- package/es/components/flyout/flyout.styles.js +98 -3
- package/es/components/flyout/flyout_menu.js +86 -0
- package/es/components/flyout/flyout_menu.styles.js +16 -0
- package/{optimize/es/components/flyout/flyout_context.js → es/components/flyout/flyout_menu_context.js} +1 -7
- package/es/components/flyout/flyout_resizable.js +3 -2
- package/es/components/flyout/hooks.js +25 -0
- package/es/components/flyout/index.js +4 -2
- package/es/components/flyout/manager/actions.js +97 -0
- package/es/components/flyout/manager/activity_stage.js +71 -0
- package/es/components/flyout/manager/const.js +50 -0
- package/es/components/flyout/manager/context.js +33 -0
- package/es/components/flyout/manager/flyout_child.js +80 -0
- package/es/components/flyout/manager/flyout_child.styles.js +26 -0
- package/es/components/flyout/manager/flyout_main.js +65 -0
- package/es/components/flyout/manager/flyout_main.styles.js +25 -0
- package/es/components/flyout/manager/flyout_managed.js +129 -0
- package/es/components/flyout/manager/flyout_managed.styles.js +66 -0
- package/es/components/flyout/manager/hooks.js +98 -0
- package/es/components/flyout/manager/index.js +31 -0
- package/es/components/flyout/manager/layout_mode.js +164 -0
- package/es/components/flyout/manager/provider.js +37 -0
- package/es/components/flyout/manager/reducer.js +200 -0
- package/es/components/flyout/manager/selectors.js +87 -0
- package/es/components/flyout/manager/validation.js +112 -0
- package/es/components/form/field_number/field_number.js +2 -2
- package/es/components/form/field_password/field_password.styles.js +1 -0
- package/es/components/form/field_text/field_text.js +2 -2
- package/es/components/form/form.styles.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.styles.js +1 -1
- package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/es/components/form/range/range.styles.js +2 -2
- 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_logo/header_logo.js +1 -1
- package/es/components/header/header_section/header_section_item_button.js +1 -1
- package/es/components/icon/assets/thumbDown.js +37 -0
- package/es/components/icon/assets/thumbUp.js +37 -0
- package/es/components/icon/icon.js +1 -1
- package/es/components/icon/icon_map.js +2 -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/index.js +1 -0
- package/es/components/markdown_editor/markdown_editor.js +16 -5
- package/es/components/markdown_editor/markdown_editor_drop_zone.js +6 -4
- package/es/components/markdown_editor/markdown_editor_footer.js +13 -121
- package/es/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
- package/es/components/markdown_editor/markdown_editor_help_button.js +144 -0
- package/es/components/markdown_editor/markdown_editor_help_button.styles.js +16 -0
- package/es/components/markdown_editor/markdown_editor_toolbar.js +29 -24
- package/es/components/overlay_mask/overlay_mask.js +8 -3
- package/es/components/overlay_mask/overlay_mask.styles.js +11 -2
- package/es/components/page/page_header/page_header_content.js +1 -1
- package/es/components/pagination/pagination_button.js +1 -1
- package/es/components/popover/popover.js +2 -1
- package/es/components/provider/provider.js +2 -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/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 +1 -1
- package/es/components/toast/toast.js +1 -1
- package/es/components/tool_tip/icon_tip.js +1 -1
- package/es/global_styling/mixins/_button.js +1 -1
- package/es/services/emotion/prefixer.js +116 -22
- package/eui.d.ts +780 -426
- package/i18ntokens.json +624 -624
- package/lib/components/accessibility/index.js +8 -1
- package/lib/components/accessibility/live_announcer/index.js +16 -0
- package/lib/components/accessibility/live_announcer/live_announcer.js +93 -0
- package/lib/components/accessibility/screen_reader_live/screen_reader_live.js +7 -0
- 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/basic_table/basic_table.js +4 -4
- package/lib/components/basic_table/in_memory_table.js +4 -4
- package/lib/components/button/button.js +1 -1
- package/lib/components/button/button_display/_button_display.js +1 -1
- 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_group/button_group.js +1 -1
- package/lib/components/button/button_group/button_group_button.js +1 -1
- package/lib/components/button/button_icon/button_icon.js +1 -1
- package/lib/components/call_out/call_out.js +17 -6
- package/lib/components/card/card.js +2 -2
- package/lib/components/card/card_select/card_select.js +1 -1
- package/lib/components/card/checkable_card/checkable_card.js +29 -4
- package/lib/components/code/code_block.js +5 -2
- package/lib/components/code/code_block_virtualized.js +5 -3
- package/lib/components/collapsible_nav/collapsible_nav.js +4 -106
- package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/lib/components/combo_box/combo_box.a11y.js +97 -81
- package/lib/components/combo_box/combo_box.js +3 -2
- package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +50 -25
- package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -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 +12 -12
- package/lib/components/datagrid/body/data_grid_body.js +7 -7
- package/lib/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/lib/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/lib/components/datagrid/controls/column_sorting.js +7 -7
- 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/data_grid.styles.js +1 -1
- package/lib/components/datagrid/utils/in_memory.js +6 -6
- 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/facet/facet_button.js +1 -1
- package/lib/components/filter_group/filter_select_item.js +16 -3
- package/lib/components/flyout/const.js +49 -0
- package/lib/components/flyout/flyout.component.js +385 -0
- package/lib/components/flyout/flyout.js +68 -362
- package/lib/components/flyout/flyout.styles.js +98 -3
- package/lib/components/flyout/flyout_menu.js +95 -0
- package/lib/components/flyout/flyout_menu.styles.js +22 -0
- package/{optimize/lib/components/flyout/flyout_context.js → lib/components/flyout/flyout_menu_context.js} +2 -7
- package/lib/components/flyout/flyout_resizable.js +3 -2
- package/lib/components/flyout/hooks.js +30 -0
- package/lib/components/flyout/index.js +14 -14
- package/lib/components/flyout/manager/actions.js +103 -0
- package/lib/components/flyout/manager/activity_stage.js +77 -0
- package/lib/components/flyout/manager/const.js +56 -0
- package/lib/components/flyout/manager/context.js +41 -0
- package/lib/components/flyout/manager/flyout_child.js +85 -0
- package/lib/components/flyout/manager/flyout_child.styles.js +32 -0
- package/lib/components/flyout/manager/flyout_main.js +70 -0
- package/lib/components/flyout/manager/flyout_main.styles.js +31 -0
- package/lib/components/flyout/manager/flyout_managed.js +136 -0
- package/lib/components/flyout/manager/flyout_managed.styles.js +70 -0
- package/lib/components/flyout/manager/hooks.js +161 -0
- package/lib/components/flyout/manager/index.js +150 -0
- package/lib/components/flyout/manager/layout_mode.js +171 -0
- package/lib/components/flyout/manager/provider.js +46 -0
- package/lib/components/flyout/manager/reducer.js +205 -0
- package/lib/components/flyout/manager/selectors.js +93 -0
- package/lib/components/flyout/manager/validation.js +121 -0
- package/lib/components/form/field_number/field_number.js +2 -2
- package/lib/components/form/field_password/field_password.styles.js +1 -0
- package/lib/components/form/field_text/field_text.js +2 -2
- package/lib/components/form/form.styles.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.styles.js +1 -1
- package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/lib/components/form/range/range.styles.js +2 -2
- 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_logo/header_logo.js +1 -1
- package/lib/components/header/header_section/header_section_item_button.js +1 -1
- package/lib/components/icon/assets/thumbDown.js +44 -0
- package/lib/components/icon/assets/thumbUp.js +44 -0
- package/lib/components/icon/icon.js +1 -1
- package/lib/components/icon/icon_map.js +2 -0
- package/lib/components/icon/svgs/thumbDown.svg +4 -0
- package/lib/components/icon/svgs/thumbUp.svg +4 -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/index.js +7 -0
- package/lib/components/markdown_editor/markdown_editor.js +16 -5
- package/lib/components/markdown_editor/markdown_editor_drop_zone.js +6 -4
- package/lib/components/markdown_editor/markdown_editor_footer.js +11 -118
- package/lib/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
- package/lib/components/markdown_editor/markdown_editor_help_button.js +151 -0
- package/lib/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
- package/lib/components/markdown_editor/markdown_editor_toolbar.js +29 -24
- package/lib/components/overlay_mask/overlay_mask.js +7 -2
- package/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
- package/lib/components/page/page_header/page_header_content.js +1 -1
- package/lib/components/pagination/pagination_button.js +1 -1
- package/lib/components/popover/popover.js +2 -1
- package/lib/components/provider/provider.js +2 -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/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 +1 -1
- package/lib/components/toast/toast.js +1 -1
- package/lib/components/tool_tip/icon_tip.js +1 -1
- package/lib/global_styling/mixins/_button.js +1 -1
- package/lib/services/emotion/prefixer.js +116 -22
- package/optimize/es/components/accessibility/index.js +2 -1
- package/optimize/es/components/{flyout/sessions → accessibility/live_announcer}/index.js +1 -2
- package/optimize/es/components/accessibility/live_announcer/live_announcer.js +68 -0
- package/optimize/es/components/accessibility/screen_reader_live/screen_reader_live.js +1 -0
- package/optimize/es/components/call_out/call_out.js +6 -2
- package/optimize/es/components/card/checkable_card/checkable_card.js +25 -5
- package/optimize/es/components/code/code_block.js +5 -2
- package/optimize/es/components/code/code_block_virtualized.js +5 -3
- package/optimize/es/components/combo_box/combo_box.a11y.js +97 -81
- package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +49 -24
- package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +6 -2
- package/optimize/es/components/datagrid/data_grid.styles.js +1 -1
- package/optimize/es/components/filter_group/filter_select_item.js +15 -3
- package/optimize/es/components/flyout/const.js +42 -0
- package/optimize/es/components/flyout/flyout.component.js +346 -0
- package/optimize/es/components/flyout/flyout.js +39 -332
- package/optimize/es/components/flyout/flyout.styles.js +95 -3
- package/optimize/es/components/flyout/flyout_menu.js +74 -0
- package/optimize/es/components/flyout/flyout_menu.styles.js +16 -0
- package/{es/components/flyout/flyout_context.js → optimize/es/components/flyout/flyout_menu_context.js} +1 -7
- package/optimize/es/components/flyout/flyout_resizable.js +3 -2
- package/optimize/es/components/flyout/hooks.js +25 -0
- package/optimize/es/components/flyout/index.js +4 -2
- package/optimize/es/components/flyout/manager/actions.js +97 -0
- package/optimize/es/components/flyout/manager/activity_stage.js +71 -0
- package/optimize/es/components/flyout/manager/const.js +50 -0
- package/optimize/es/components/flyout/manager/context.js +33 -0
- package/optimize/es/components/flyout/manager/flyout_child.js +76 -0
- package/optimize/es/components/flyout/manager/flyout_child.styles.js +26 -0
- package/optimize/es/components/flyout/manager/flyout_main.js +61 -0
- package/optimize/es/components/flyout/manager/flyout_main.styles.js +25 -0
- package/optimize/es/components/flyout/manager/flyout_managed.js +125 -0
- package/optimize/es/components/flyout/manager/flyout_managed.styles.js +66 -0
- package/optimize/es/components/flyout/manager/hooks.js +93 -0
- package/optimize/es/components/flyout/manager/index.js +31 -0
- package/optimize/es/components/flyout/manager/layout_mode.js +159 -0
- package/optimize/es/components/flyout/manager/provider.js +37 -0
- package/optimize/es/components/flyout/manager/reducer.js +192 -0
- package/optimize/es/components/flyout/manager/selectors.js +87 -0
- package/optimize/es/components/flyout/manager/validation.js +112 -0
- package/optimize/es/components/form/field_password/field_password.styles.js +1 -0
- package/optimize/es/components/form/form.styles.js +2 -2
- package/optimize/es/components/form/form_control_layout/form_control_layout.styles.js +1 -1
- package/optimize/es/components/form/range/range.styles.js +2 -2
- package/optimize/es/components/icon/assets/thumbDown.js +36 -0
- package/optimize/es/components/icon/assets/thumbUp.js +36 -0
- package/optimize/es/components/icon/icon_map.js +2 -0
- package/optimize/es/components/markdown_editor/index.js +1 -0
- package/optimize/es/components/markdown_editor/markdown_editor.js +7 -3
- package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +3 -2
- package/optimize/es/components/markdown_editor/markdown_editor_footer.js +12 -120
- package/optimize/es/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
- package/optimize/es/components/markdown_editor/markdown_editor_help_button.js +139 -0
- package/optimize/es/components/markdown_editor/markdown_editor_help_button.styles.js +16 -0
- package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +20 -16
- package/optimize/es/components/overlay_mask/overlay_mask.js +8 -3
- package/optimize/es/components/overlay_mask/overlay_mask.styles.js +11 -2
- package/optimize/es/components/popover/popover.js +2 -1
- package/optimize/es/components/provider/provider.js +2 -1
- package/optimize/es/global_styling/mixins/_button.js +1 -1
- package/optimize/es/services/emotion/prefixer.js +116 -22
- package/optimize/lib/components/accessibility/index.js +8 -1
- package/optimize/lib/components/accessibility/live_announcer/index.js +16 -0
- package/optimize/lib/components/accessibility/live_announcer/live_announcer.js +77 -0
- package/optimize/lib/components/accessibility/screen_reader_live/screen_reader_live.js +1 -0
- package/optimize/lib/components/call_out/call_out.js +7 -3
- package/optimize/lib/components/card/checkable_card/checkable_card.js +24 -4
- package/optimize/lib/components/code/code_block.js +5 -2
- package/optimize/lib/components/code/code_block_virtualized.js +5 -3
- package/optimize/lib/components/combo_box/combo_box.a11y.js +97 -81
- package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +49 -24
- package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -1
- package/optimize/lib/components/datagrid/data_grid.styles.js +1 -1
- package/optimize/lib/components/filter_group/filter_select_item.js +15 -3
- package/optimize/lib/components/flyout/const.js +49 -0
- package/optimize/lib/components/flyout/flyout.component.js +354 -0
- package/optimize/lib/components/flyout/flyout.js +63 -332
- package/optimize/lib/components/flyout/flyout.styles.js +95 -3
- package/optimize/lib/components/flyout/flyout_menu.js +83 -0
- package/optimize/lib/components/flyout/flyout_menu.styles.js +22 -0
- package/{lib/components/flyout/flyout_context.js → optimize/lib/components/flyout/flyout_menu_context.js} +2 -7
- package/optimize/lib/components/flyout/flyout_resizable.js +3 -2
- package/optimize/lib/components/flyout/hooks.js +30 -0
- package/optimize/lib/components/flyout/index.js +14 -14
- package/optimize/lib/components/flyout/manager/actions.js +103 -0
- package/optimize/lib/components/flyout/manager/activity_stage.js +77 -0
- package/optimize/lib/components/flyout/manager/const.js +56 -0
- package/optimize/lib/components/flyout/manager/context.js +41 -0
- package/optimize/lib/components/flyout/manager/flyout_child.js +81 -0
- package/optimize/lib/components/flyout/manager/flyout_child.styles.js +32 -0
- package/optimize/lib/components/flyout/manager/flyout_main.js +66 -0
- package/optimize/lib/components/flyout/manager/flyout_main.styles.js +31 -0
- package/optimize/lib/components/flyout/manager/flyout_managed.js +134 -0
- package/optimize/lib/components/flyout/manager/flyout_managed.styles.js +71 -0
- package/optimize/lib/components/flyout/manager/hooks.js +159 -0
- package/optimize/lib/components/flyout/manager/index.js +150 -0
- package/optimize/lib/components/flyout/manager/layout_mode.js +169 -0
- package/optimize/lib/components/flyout/manager/provider.js +46 -0
- package/optimize/lib/components/flyout/manager/reducer.js +198 -0
- package/optimize/lib/components/flyout/manager/selectors.js +93 -0
- package/optimize/lib/components/flyout/manager/validation.js +121 -0
- package/optimize/lib/components/form/field_password/field_password.styles.js +1 -0
- package/optimize/lib/components/form/form.styles.js +2 -2
- package/optimize/lib/components/form/form_control_layout/form_control_layout.styles.js +1 -1
- package/optimize/lib/components/form/range/range.styles.js +2 -2
- package/optimize/lib/components/icon/assets/thumbDown.js +44 -0
- package/optimize/lib/components/icon/assets/thumbUp.js +44 -0
- package/optimize/lib/components/icon/icon_map.js +2 -0
- package/optimize/lib/components/icon/svgs/thumbDown.svg +4 -0
- package/optimize/lib/components/icon/svgs/thumbUp.svg +4 -0
- package/optimize/lib/components/markdown_editor/index.js +7 -0
- package/optimize/lib/components/markdown_editor/markdown_editor.js +7 -3
- package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +3 -2
- package/optimize/lib/components/markdown_editor/markdown_editor_footer.js +9 -118
- package/optimize/lib/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
- package/optimize/lib/components/markdown_editor/markdown_editor_help_button.js +150 -0
- package/optimize/lib/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
- package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +20 -16
- package/optimize/lib/components/overlay_mask/overlay_mask.js +7 -2
- package/optimize/lib/components/overlay_mask/overlay_mask.styles.js +11 -4
- package/optimize/lib/components/popover/popover.js +2 -1
- package/optimize/lib/components/provider/provider.js +2 -1
- package/optimize/lib/global_styling/mixins/_button.js +1 -1
- package/optimize/lib/services/emotion/prefixer.js +116 -22
- package/package.json +3 -2
- package/src/components/date_picker/react-datepicker/src/stylesheets/datepicker.scss +6 -7
- package/src/global_styling/mixins/_typography.scss +0 -1
- package/src/themes/amsterdam/global_styling/mixins/_typography.scss +0 -1
- package/test-env/components/accessibility/index.js +8 -1
- package/test-env/components/accessibility/live_announcer/index.js +16 -0
- package/test-env/components/accessibility/live_announcer/live_announcer.js +87 -0
- package/test-env/components/accessibility/screen_reader_live/screen_reader_live.js +7 -0
- 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/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.js +1 -1
- package/test-env/components/button/button_display/_button_display.js +1 -1
- 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_group/button_group.js +1 -1
- package/test-env/components/button/button_group/button_group_button.js +1 -1
- package/test-env/components/button/button_icon/button_icon.js +1 -1
- package/test-env/components/call_out/call_out.js +17 -6
- package/test-env/components/card/card.js +2 -2
- package/test-env/components/card/card_select/card_select.js +1 -1
- package/test-env/components/card/checkable_card/checkable_card.js +24 -4
- package/test-env/components/code/code_block_virtualized.js +5 -3
- package/test-env/components/collapsible_nav/collapsible_nav.js +4 -106
- package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
- package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -1
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
- package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
- package/test-env/components/combo_box/combo_box.a11y.js +97 -81
- package/test-env/components/combo_box/combo_box.js +3 -2
- package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +50 -25
- package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +5 -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 +12 -12
- package/test-env/components/datagrid/body/data_grid_body.js +7 -7
- package/test-env/components/datagrid/body/data_grid_body_custom.js +7 -7
- package/test-env/components/datagrid/body/data_grid_body_virtualized.js +7 -7
- package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -6
- package/test-env/components/datagrid/controls/column_sorting.js +7 -7
- 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/data_grid.styles.js +1 -1
- package/test-env/components/datagrid/utils/in_memory.js +6 -6
- 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/facet/facet_button.js +1 -1
- package/test-env/components/filter_group/filter_select_item.js +16 -3
- package/test-env/components/flyout/const.js +49 -0
- package/test-env/components/flyout/flyout.component.js +374 -0
- package/test-env/components/flyout/flyout.styles.js +95 -3
- package/test-env/components/flyout/flyout_menu.js +94 -0
- package/test-env/components/flyout/flyout_menu.styles.js +22 -0
- package/test-env/components/flyout/{flyout_context.js → flyout_menu_context.js} +2 -7
- package/test-env/components/flyout/flyout_resizable.js +3 -2
- package/test-env/components/flyout/hooks.js +30 -0
- package/test-env/components/flyout/index.js +14 -14
- package/test-env/components/flyout/manager/actions.js +103 -0
- package/test-env/components/flyout/manager/activity_stage.js +77 -0
- package/test-env/components/flyout/manager/const.js +56 -0
- package/test-env/components/flyout/manager/context.js +41 -0
- package/test-env/components/flyout/manager/flyout_child.js +81 -0
- package/test-env/components/flyout/manager/flyout_child.styles.js +32 -0
- package/test-env/components/flyout/manager/flyout_main.js +66 -0
- package/test-env/components/flyout/manager/flyout_main.styles.js +31 -0
- package/test-env/components/flyout/manager/flyout_managed.js +134 -0
- package/test-env/components/flyout/manager/flyout_managed.styles.js +71 -0
- package/test-env/components/flyout/manager/hooks.js +159 -0
- package/test-env/components/flyout/manager/index.js +150 -0
- package/test-env/components/flyout/manager/layout_mode.js +169 -0
- package/test-env/components/flyout/manager/provider.js +46 -0
- package/test-env/components/flyout/manager/reducer.js +198 -0
- package/test-env/components/flyout/manager/selectors.js +93 -0
- package/test-env/components/flyout/manager/validation.js +121 -0
- package/test-env/components/form/field_number/field_number.js +2 -2
- package/test-env/components/form/field_password/field_password.styles.js +1 -0
- package/test-env/components/form/field_text/field_text.js +2 -2
- package/test-env/components/form/form.styles.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.styles.js +1 -1
- package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
- package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
- package/test-env/components/form/range/range.styles.js +2 -2
- 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_logo/header_logo.js +1 -1
- package/test-env/components/header/header_section/header_section_item_button.js +1 -1
- package/test-env/components/icon/assets/thumbDown.js +44 -0
- package/test-env/components/icon/assets/thumbUp.js +44 -0
- package/test-env/components/icon/icon_map.js +2 -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/index.js +7 -0
- package/test-env/components/markdown_editor/markdown_editor.js +16 -5
- package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +6 -4
- package/test-env/components/markdown_editor/markdown_editor_footer.js +10 -119
- package/test-env/components/markdown_editor/markdown_editor_footer.styles.js +0 -2
- package/test-env/components/markdown_editor/markdown_editor_help_button.js +150 -0
- package/test-env/components/markdown_editor/markdown_editor_help_button.styles.js +22 -0
- package/test-env/components/markdown_editor/markdown_editor_toolbar.js +29 -24
- package/test-env/components/overlay_mask/overlay_mask.js +7 -2
- package/test-env/components/overlay_mask/overlay_mask.styles.js +11 -4
- 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/popover/popover.js +2 -1
- package/test-env/components/provider/provider.js +2 -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/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 +1 -1
- package/test-env/components/toast/toast.js +1 -1
- package/test-env/components/tool_tip/icon_tip.js +1 -1
- package/test-env/global_styling/mixins/_button.js +1 -1
- package/test-env/services/emotion/prefixer.js +116 -22
- package/es/components/flyout/flyout_child.js +0 -223
- package/es/components/flyout/flyout_child.styles.js +0 -32
- package/es/components/flyout/flyout_child_manager.js +0 -114
- package/es/components/flyout/sessions/flyout_provider.js +0 -95
- package/es/components/flyout/sessions/flyout_reducer.js +0 -195
- package/es/components/flyout/sessions/use_eui_flyout.js +0 -82
- package/lib/components/flyout/flyout_child.js +0 -231
- package/lib/components/flyout/flyout_child.styles.js +0 -38
- package/lib/components/flyout/flyout_child_manager.js +0 -122
- package/lib/components/flyout/sessions/flyout_provider.js +0 -102
- package/lib/components/flyout/sessions/flyout_reducer.js +0 -202
- package/lib/components/flyout/sessions/index.js +0 -25
- package/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
- package/optimize/es/components/flyout/flyout_child.js +0 -178
- package/optimize/es/components/flyout/flyout_child.styles.js +0 -32
- package/optimize/es/components/flyout/flyout_child_manager.js +0 -100
- package/optimize/es/components/flyout/sessions/flyout_provider.js +0 -90
- package/optimize/es/components/flyout/sessions/flyout_reducer.js +0 -187
- package/optimize/es/components/flyout/sessions/use_eui_flyout.js +0 -82
- package/optimize/lib/components/flyout/flyout_child.js +0 -186
- package/optimize/lib/components/flyout/flyout_child.styles.js +0 -38
- package/optimize/lib/components/flyout/flyout_child_manager.js +0 -110
- package/optimize/lib/components/flyout/sessions/flyout_provider.js +0 -100
- package/optimize/lib/components/flyout/sessions/flyout_reducer.js +0 -195
- package/optimize/lib/components/flyout/sessions/index.js +0 -25
- package/optimize/lib/components/flyout/sessions/use_eui_flyout.js +0 -88
- package/test-env/components/flyout/flyout_child.js +0 -230
- package/test-env/components/flyout/flyout_child.styles.js +0 -38
- package/test-env/components/flyout/flyout_child_manager.js +0 -119
- package/test-env/components/flyout/sessions/flyout_provider.js +0 -100
- package/test-env/components/flyout/sessions/flyout_reducer.js +0 -195
- package/test-env/components/flyout/sessions/index.js +0 -25
- package/test-env/components/flyout/sessions/use_eui_flyout.js +0 -88
- /package/es/components/flyout/{sessions → manager}/types.js +0 -0
- /package/lib/components/flyout/{sessions → manager}/types.js +0 -0
- /package/optimize/es/components/flyout/{sessions → manager}/types.js +0 -0
- /package/optimize/lib/components/flyout/{sessions → manager}/types.js +0 -0
- /package/test-env/components/flyout/{sessions → manager}/types.js +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
var _excluded = ["id", "onClose", "level", "size", "css"];
|
|
3
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
7
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
8
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
10
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
|
11
|
+
/*
|
|
12
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
13
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
14
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
15
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
16
|
+
* Side Public License, v 1.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useEffect, useRef } from 'react';
|
|
19
|
+
import { EuiFlyoutComponent } from '../flyout.component';
|
|
20
|
+
import { useFlyoutManager as _useFlyoutManager, useIsFlyoutActive, useParentFlyoutSize, useFlyoutLayoutMode, useFlyoutId } from './hooks';
|
|
21
|
+
import { useEuiMemoizedStyles } from '../../../services';
|
|
22
|
+
import { useResizeObserver } from '../../observer/resize_observer';
|
|
23
|
+
import { euiManagedFlyoutStyles } from './flyout_managed.styles';
|
|
24
|
+
import { EuiFlyoutMenuContext } from '../flyout_menu_context';
|
|
25
|
+
import { validateManagedFlyoutSize, validateSizeCombination, createValidationErrorMessage, isNamedSize } from './validation';
|
|
26
|
+
import { LEVEL_CHILD, PROPERTY_FLYOUT, PROPERTY_LAYOUT_MODE, PROPERTY_LEVEL } from './const';
|
|
27
|
+
import { EuiFlyoutIsManagedProvider } from './context';
|
|
28
|
+
import { useFlyoutActivityStage } from './activity_stage';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Props for `EuiManagedFlyout`, the internal persistent flyout used by
|
|
32
|
+
* the manager. Extends base flyout props and requires a `level` to
|
|
33
|
+
* distinguish `main` vs `child` behavior.
|
|
34
|
+
*/
|
|
35
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
36
|
+
var useFlyoutManager = function useFlyoutManager() {
|
|
37
|
+
var context = _useFlyoutManager();
|
|
38
|
+
if (!context) {
|
|
39
|
+
throw new Error('EuiManagedFlyout must be used within an EuiFlyoutManager');
|
|
40
|
+
}
|
|
41
|
+
return context;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Persistent managed flyout rendered inside the provider. Handles:
|
|
46
|
+
* - registration/unregistration with the manager
|
|
47
|
+
* - size validation and parent/child size compatibility
|
|
48
|
+
* - width tracking for responsive layouts
|
|
49
|
+
* - lifecycle stage transitions and data attributes for styling
|
|
50
|
+
*/
|
|
51
|
+
export var EuiManagedFlyout = function EuiManagedFlyout(_ref) {
|
|
52
|
+
var id = _ref.id,
|
|
53
|
+
onCloseProp = _ref.onClose,
|
|
54
|
+
level = _ref.level,
|
|
55
|
+
size = _ref.size,
|
|
56
|
+
customCss = _ref.css,
|
|
57
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
58
|
+
var flyoutId = useFlyoutId(id);
|
|
59
|
+
var flyoutRef = useRef(null);
|
|
60
|
+
var _useFlyoutManager2 = useFlyoutManager(),
|
|
61
|
+
addFlyout = _useFlyoutManager2.addFlyout,
|
|
62
|
+
closeFlyout = _useFlyoutManager2.closeFlyout,
|
|
63
|
+
setFlyoutWidth = _useFlyoutManager2.setFlyoutWidth;
|
|
64
|
+
var isActive = useIsFlyoutActive(flyoutId);
|
|
65
|
+
var parentSize = useParentFlyoutSize(flyoutId);
|
|
66
|
+
|
|
67
|
+
// Get layout mode for responsive behavior
|
|
68
|
+
var layoutMode = useFlyoutLayoutMode();
|
|
69
|
+
var styles = useEuiMemoizedStyles(euiManagedFlyoutStyles);
|
|
70
|
+
|
|
71
|
+
// Validate size and add flyout
|
|
72
|
+
useEffect(function () {
|
|
73
|
+
// Validate that managed flyouts use named sizes (s, m, l)
|
|
74
|
+
var sizeTypeError = validateManagedFlyoutSize(size, flyoutId, level);
|
|
75
|
+
if (sizeTypeError) {
|
|
76
|
+
throw new Error(createValidationErrorMessage(sizeTypeError));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// For child flyouts, validate parent-child combinations
|
|
80
|
+
if (level === LEVEL_CHILD && parentSize && isNamedSize(size) && isNamedSize(parentSize)) {
|
|
81
|
+
var combinationError = validateSizeCombination(parentSize, size);
|
|
82
|
+
if (combinationError) {
|
|
83
|
+
combinationError.flyoutId = flyoutId;
|
|
84
|
+
combinationError.level = level;
|
|
85
|
+
throw new Error(createValidationErrorMessage(combinationError));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
addFlyout(flyoutId, level, size);
|
|
89
|
+
return function () {
|
|
90
|
+
closeFlyout(flyoutId);
|
|
91
|
+
};
|
|
92
|
+
}, [size, flyoutId, level, parentSize, addFlyout, closeFlyout]);
|
|
93
|
+
|
|
94
|
+
// Track width changes for flyouts
|
|
95
|
+
var _useResizeObserver = useResizeObserver(isActive ? flyoutRef.current : null, 'width'),
|
|
96
|
+
width = _useResizeObserver.width;
|
|
97
|
+
var onClose = function onClose(event) {
|
|
98
|
+
onCloseProp(event);
|
|
99
|
+
closeFlyout(flyoutId);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// Update width in manager state when it changes
|
|
103
|
+
useEffect(function () {
|
|
104
|
+
if (isActive && width) {
|
|
105
|
+
setFlyoutWidth(flyoutId, width);
|
|
106
|
+
}
|
|
107
|
+
}, [flyoutId, level, isActive, width, setFlyoutWidth]);
|
|
108
|
+
var _useFlyoutActivitySta = useFlyoutActivityStage({
|
|
109
|
+
flyoutId: flyoutId,
|
|
110
|
+
level: level
|
|
111
|
+
}),
|
|
112
|
+
activityStage = _useFlyoutActivitySta.activityStage,
|
|
113
|
+
onAnimationEnd = _useFlyoutActivitySta.onAnimationEnd;
|
|
114
|
+
return ___EmotionJSX(EuiFlyoutIsManagedProvider, {
|
|
115
|
+
isManaged: true
|
|
116
|
+
}, ___EmotionJSX(EuiFlyoutMenuContext.Provider, {
|
|
117
|
+
value: {
|
|
118
|
+
onClose: onClose
|
|
119
|
+
}
|
|
120
|
+
}, ___EmotionJSX(EuiFlyoutComponent, _extends({
|
|
121
|
+
id: flyoutId,
|
|
122
|
+
ref: flyoutRef,
|
|
123
|
+
css: [styles.managedFlyout, customCss, styles.stage(activityStage, props.side), ";label:EuiManagedFlyout;"]
|
|
124
|
+
}, _objectSpread(_objectSpread({}, props), {}, _defineProperty(_defineProperty(_defineProperty({
|
|
125
|
+
onClose: onClose,
|
|
126
|
+
size: size,
|
|
127
|
+
onAnimationEnd: onAnimationEnd
|
|
128
|
+
}, PROPERTY_FLYOUT, true), PROPERTY_LAYOUT_MODE, layoutMode), PROPERTY_LEVEL, level))))));
|
|
129
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var _templateObject, _templateObject2;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
3
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
4
|
+
/*
|
|
5
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
6
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
7
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
8
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
9
|
+
* Side Public License, v 1.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { css, keyframes } from '@emotion/react';
|
|
13
|
+
import { euiCanAnimate, logicalCSS } from '../../../global_styling';
|
|
14
|
+
import { STAGE_ACTIVE, STAGE_BACKGROUNDED, STAGE_BACKGROUNDING, STAGE_CLOSING, STAGE_INACTIVE, STAGE_OPENING, STAGE_RETURNING } from './const';
|
|
15
|
+
import { euiFlyoutSlideInLeft, euiFlyoutSlideInRight } from '../flyout.styles';
|
|
16
|
+
import { DEFAULT_SIDE } from '../const';
|
|
17
|
+
var _ref = process.env.NODE_ENV === "production" ? {
|
|
18
|
+
name: "hklg7q-managedFlyout",
|
|
19
|
+
styles: "perspective:1000px;transform-style:preserve-3d;label:managedFlyout;"
|
|
20
|
+
} : {
|
|
21
|
+
name: "hklg7q-managedFlyout",
|
|
22
|
+
styles: "perspective:1000px;transform-style:preserve-3d;label:managedFlyout;",
|
|
23
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Emotion styles for managed flyouts.
|
|
27
|
+
* Provides base 3D context and animations tied to managed flyout stages
|
|
28
|
+
* via data attributes.
|
|
29
|
+
*/
|
|
30
|
+
export var euiManagedFlyoutStyles = function euiManagedFlyoutStyles(euiThemeContext) {
|
|
31
|
+
var euiTheme = euiThemeContext.euiTheme;
|
|
32
|
+
return {
|
|
33
|
+
stage: function stage(activeStage) {
|
|
34
|
+
var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_SIDE;
|
|
35
|
+
// Animation for moving flyout backwards in 3D space (z-axis) when inactive
|
|
36
|
+
var euiFlyoutSlideBack3D = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from {\n transform: translateZ(0) translateX(0) scale(1);\n filter: blur(0px);\n opacity: 1;\n }\n to {\n transform: translateZ(-1500px) translateX(", ") scale(0.5);\n filter: blur(3px);\n opacity: 0.6;\n }\n "])), side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)');
|
|
37
|
+
|
|
38
|
+
// Animation for bringing flyout forward from 3D space when transitioning to active
|
|
39
|
+
var euiFlyoutSlideForward3D = keyframes(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n from {\n transform: translateZ(-500px) translateX(", ") scale(0.85);\n filter: blur(3px);\n opacity: 0.6;\n }\n to {\n transform: translateZ(0) translateX(0) scale(1);\n filter: blur(0px);\n opacity: 1;\n }\n "])), side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)');
|
|
40
|
+
// When flyout is becoming inactive, animate backwards in 3D space
|
|
41
|
+
var inactiveTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:", euiFlyoutSlideBack3D, " ", euiTheme.animation.extraSlow, " ", euiTheme.animation.resistance, " forwards;pointer-events:none;};label:inactiveTransition;");
|
|
42
|
+
|
|
43
|
+
// When flyout is becoming active from a backgrounded state, animate forward in 3D space
|
|
44
|
+
var returningTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:", euiFlyoutSlideForward3D, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, " forwards;};label:returningTransition;");
|
|
45
|
+
var openingTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:", side === 'left' ? euiFlyoutSlideInLeft : euiFlyoutSlideInRight, " ", euiTheme.animation.normal, " ", euiTheme.animation.resistance, " forwards;};label:openingTransition;");
|
|
46
|
+
var noTransition = /*#__PURE__*/css(euiCanAnimate, "{animation:none;opacity:1;};label:noTransition;");
|
|
47
|
+
var activeFlyout = /*#__PURE__*/css("z-index:", parseInt(euiTheme.levels.flyout) + 1, ";pointer-events:auto;;label:activeFlyout;");
|
|
48
|
+
var inactiveFlyout = /*#__PURE__*/css(side === 'left' ? logicalCSS('right', '100vw') : logicalCSS('left', '100vw'), " transform:translateX(", side === 'left' ? 'calc(-100vw - 100%)' : 'calc(100vw + 100%)', ");;label:inactiveFlyout;");
|
|
49
|
+
switch (activeStage) {
|
|
50
|
+
case STAGE_OPENING:
|
|
51
|
+
return [activeFlyout, openingTransition];
|
|
52
|
+
case STAGE_ACTIVE:
|
|
53
|
+
return [activeFlyout, noTransition];
|
|
54
|
+
case STAGE_CLOSING:
|
|
55
|
+
case STAGE_BACKGROUNDING:
|
|
56
|
+
return [inactiveTransition];
|
|
57
|
+
case STAGE_INACTIVE:
|
|
58
|
+
case STAGE_BACKGROUNDED:
|
|
59
|
+
return [inactiveFlyout, noTransition];
|
|
60
|
+
case STAGE_RETURNING:
|
|
61
|
+
return [activeFlyout, returningTransition];
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
managedFlyout: _ref
|
|
65
|
+
};
|
|
66
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
/*
|
|
8
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
9
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
10
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
11
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
12
|
+
* Side Public License, v 1.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { useCallback, useContext, useReducer, useRef } from 'react';
|
|
16
|
+
import { warnOnce, useGeneratedHtmlId } from '../../../services';
|
|
17
|
+
import { flyoutManagerReducer, initialState } from './reducer';
|
|
18
|
+
import { addFlyout as addFlyoutAction, closeFlyout as closeFlyoutAction, setActiveFlyout as setActiveFlyoutAction, setFlyoutWidth as setFlyoutWidthAction } from './actions';
|
|
19
|
+
import { EuiFlyoutManagerContext } from './provider';
|
|
20
|
+
import { LEVEL_MAIN } from './const';
|
|
21
|
+
import { useIsFlyoutRegistered } from './selectors';
|
|
22
|
+
|
|
23
|
+
// Ensure uniqueness across multiple hook instances, including in test envs
|
|
24
|
+
var autoGeneratedFlyoutIdCounter = 0;
|
|
25
|
+
export { useIsFlyoutActive, useHasActiveSession, useCurrentSession, useCurrentMainFlyout, useCurrentChildFlyout, useFlyoutWidth, useParentFlyoutSize, useHasChildFlyout } from './selectors';
|
|
26
|
+
export { useFlyoutLayoutMode } from './layout_mode';
|
|
27
|
+
export { useIsInManagedFlyout } from './context';
|
|
28
|
+
|
|
29
|
+
// Convenience selector for a flyout's activity stage
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Hook that provides the flyout manager reducer and bound action creators.
|
|
33
|
+
* Accepts an optional initial state (mainly for tests or custom setups).
|
|
34
|
+
*/
|
|
35
|
+
export function useFlyoutManagerReducer() {
|
|
36
|
+
var initial = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
37
|
+
var _useReducer = useReducer(flyoutManagerReducer, initial),
|
|
38
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
39
|
+
state = _useReducer2[0],
|
|
40
|
+
dispatch = _useReducer2[1];
|
|
41
|
+
var addFlyout = useCallback(function (flyoutId) {
|
|
42
|
+
var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LEVEL_MAIN;
|
|
43
|
+
var size = arguments.length > 2 ? arguments[2] : undefined;
|
|
44
|
+
return dispatch(addFlyoutAction(flyoutId, level, size));
|
|
45
|
+
}, []);
|
|
46
|
+
var closeFlyout = useCallback(function (flyoutId) {
|
|
47
|
+
return dispatch(closeFlyoutAction(flyoutId));
|
|
48
|
+
}, []);
|
|
49
|
+
var setActiveFlyout = useCallback(function (flyoutId) {
|
|
50
|
+
return dispatch(setActiveFlyoutAction(flyoutId));
|
|
51
|
+
}, []);
|
|
52
|
+
var setFlyoutWidth = useCallback(function (flyoutId, width) {
|
|
53
|
+
return dispatch(setFlyoutWidthAction(flyoutId, width));
|
|
54
|
+
}, []);
|
|
55
|
+
return {
|
|
56
|
+
state: state,
|
|
57
|
+
dispatch: dispatch,
|
|
58
|
+
addFlyout: addFlyout,
|
|
59
|
+
closeFlyout: closeFlyout,
|
|
60
|
+
setActiveFlyout: setActiveFlyout,
|
|
61
|
+
setFlyoutWidth: setFlyoutWidth
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** Access the flyout manager context (state and actions). */
|
|
66
|
+
export var useFlyoutManager = function useFlyoutManager() {
|
|
67
|
+
return useContext(EuiFlyoutManagerContext);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Stable flyout ID utility. Uses the passed `id` if provided and not already registered,
|
|
72
|
+
* otherwise generates a deterministic ID for the component's lifetime.
|
|
73
|
+
* The ID remains stable across re-renders to maintain consistency in effects and other hooks.
|
|
74
|
+
*/
|
|
75
|
+
export var useFlyoutId = function useFlyoutId(flyoutId) {
|
|
76
|
+
var defaultId = useGeneratedHtmlId({
|
|
77
|
+
prefix: 'flyout-'
|
|
78
|
+
});
|
|
79
|
+
var isRegistered = useIsFlyoutRegistered(flyoutId);
|
|
80
|
+
|
|
81
|
+
// Use ref to maintain ID stability across re-renders
|
|
82
|
+
var componentIdRef = useRef(undefined);
|
|
83
|
+
if (!componentIdRef.current) {
|
|
84
|
+
// Determine the ID to use
|
|
85
|
+
if (!flyoutId) {
|
|
86
|
+
// No ID provided, generate a new one
|
|
87
|
+
componentIdRef.current = "".concat(defaultId, "-").concat(++autoGeneratedFlyoutIdCounter);
|
|
88
|
+
} else if (isRegistered) {
|
|
89
|
+
// ID is provided but already registered, generate a new one
|
|
90
|
+
warnOnce("flyout-id-".concat(flyoutId), "Flyout with ID ".concat(flyoutId, " already registered; using new ID ").concat(defaultId));
|
|
91
|
+
componentIdRef.current = "".concat(defaultId, "-").concat(++autoGeneratedFlyoutIdCounter);
|
|
92
|
+
} else {
|
|
93
|
+
// ID is provided and not registered, use it
|
|
94
|
+
componentIdRef.current = flyoutId;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return componentIdRef.current;
|
|
98
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Convenience re-exports of bound action creators for external usage.
|
|
11
|
+
*/
|
|
12
|
+
export { addFlyout as addFlyoutAction, closeFlyout as closeFlyoutAction, setActiveFlyout as setActiveFlyoutAction, setFlyoutWidth as setFlyoutWidthAction, setActivityStage as setActivityStageAction } from './actions';
|
|
13
|
+
|
|
14
|
+
/** Reducer and default state for the flyout manager. */
|
|
15
|
+
export { flyoutManagerReducer, initialState } from './reducer';
|
|
16
|
+
|
|
17
|
+
/** Provider component exposing the Flyout Manager API via context. */
|
|
18
|
+
export { EuiFlyoutManager } from './provider';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Hooks for reading manager state and derived information.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Selectors and derived state hooks for managed flyouts.
|
|
25
|
+
*/
|
|
26
|
+
export { useCurrentChildFlyout, useCurrentMainFlyout, useCurrentSession, useFlyoutId, useFlyoutLayoutMode, useFlyoutManager, useFlyoutWidth, useHasChildFlyout, useIsFlyoutActive, useIsInManagedFlyout, useHasActiveSession, useParentFlyoutSize } from './hooks';
|
|
27
|
+
export { EuiFlyoutChild } from './flyout_child';
|
|
28
|
+
export { EuiFlyoutMain } from './flyout_main';
|
|
29
|
+
|
|
30
|
+
/** Utility functions for flyout sizing and layout. */
|
|
31
|
+
export { getWidthFromSize } from './layout_mode';
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
|
+
/*
|
|
8
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
9
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
10
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
11
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
12
|
+
* Side Public License, v 1.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import React, { useEffect, useState } from 'react';
|
|
16
|
+
import { useEuiTheme } from '../../../services';
|
|
17
|
+
import { setLayoutMode } from './actions';
|
|
18
|
+
import { useCurrentChildFlyout, useCurrentMainFlyout, useCurrentSession, useFlyoutWidth } from './selectors';
|
|
19
|
+
import { useFlyoutManager } from './hooks';
|
|
20
|
+
import { LAYOUT_MODE_SIDE_BY_SIDE, LAYOUT_MODE_STACKED } from './const';
|
|
21
|
+
/**
|
|
22
|
+
* Hook to handle responsive layout mode for managed flyouts.
|
|
23
|
+
* Decides whether to place flyouts side-by-side or stacked based on
|
|
24
|
+
* viewport width and flyout widths/sizes.
|
|
25
|
+
*/
|
|
26
|
+
export var useApplyFlyoutLayoutMode = function useApplyFlyoutLayoutMode() {
|
|
27
|
+
var _useEuiTheme = useEuiTheme(),
|
|
28
|
+
euiTheme = _useEuiTheme.euiTheme;
|
|
29
|
+
var context = useFlyoutManager();
|
|
30
|
+
var currentSession = useCurrentSession();
|
|
31
|
+
var parentFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.main;
|
|
32
|
+
var childFlyoutId = currentSession === null || currentSession === void 0 ? void 0 : currentSession.child;
|
|
33
|
+
var parentFlyout = useCurrentMainFlyout();
|
|
34
|
+
var childFlyout = useCurrentChildFlyout();
|
|
35
|
+
var parentWidth = useFlyoutWidth(parentFlyoutId);
|
|
36
|
+
var childWidth = useFlyoutWidth(childFlyoutId);
|
|
37
|
+
var _useState = useState(typeof window !== 'undefined' ? window.innerWidth : Infinity),
|
|
38
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
39
|
+
windowWidth = _useState2[0],
|
|
40
|
+
setWindowWidth = _useState2[1];
|
|
41
|
+
var setMode = React.useCallback(function (layoutMode) {
|
|
42
|
+
if (context !== null && context !== void 0 && context.dispatch && layoutMode !== context.state.layoutMode) {
|
|
43
|
+
context.dispatch(setLayoutMode(layoutMode));
|
|
44
|
+
}
|
|
45
|
+
}, [context]);
|
|
46
|
+
useEffect(function () {
|
|
47
|
+
if (typeof window === 'undefined') {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
var rafId = 0;
|
|
51
|
+
var handleResize = function handleResize() {
|
|
52
|
+
if (rafId) {
|
|
53
|
+
cancelAnimationFrame(rafId);
|
|
54
|
+
}
|
|
55
|
+
rafId = requestAnimationFrame(function () {
|
|
56
|
+
return setWindowWidth(window.innerWidth);
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
window.addEventListener('resize', handleResize);
|
|
60
|
+
return function () {
|
|
61
|
+
if (rafId) {
|
|
62
|
+
cancelAnimationFrame(rafId);
|
|
63
|
+
}
|
|
64
|
+
window.removeEventListener('resize', handleResize);
|
|
65
|
+
};
|
|
66
|
+
}, []);
|
|
67
|
+
useEffect(function () {
|
|
68
|
+
if (!context) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
var currentLayoutMode = context.state.layoutMode;
|
|
72
|
+
|
|
73
|
+
// Thresholds to prevent thrashing near the breakpoint.
|
|
74
|
+
var THRESHOLD_TO_SIDE_BY_SIDE = 85;
|
|
75
|
+
var THRESHOLD_TO_STACKED = 95;
|
|
76
|
+
|
|
77
|
+
// If the window is too small, set the mode to stacked.
|
|
78
|
+
//
|
|
79
|
+
// The value is based on the maximum width of a flyout in
|
|
80
|
+
// `composeFlyoutSizing` in `flyout.styles.ts` multiplied
|
|
81
|
+
// by 2 (open flyouts side-by-side).
|
|
82
|
+
if (windowWidth < Math.round(euiTheme.breakpoint.s * 1.4)) {
|
|
83
|
+
if (currentLayoutMode !== LAYOUT_MODE_STACKED) {
|
|
84
|
+
setMode(LAYOUT_MODE_STACKED);
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!childFlyoutId) {
|
|
89
|
+
if (currentLayoutMode !== LAYOUT_MODE_SIDE_BY_SIDE) setMode(LAYOUT_MODE_SIDE_BY_SIDE);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
var parentWidthValue = parentWidth;
|
|
93
|
+
var childWidthValue = childWidth;
|
|
94
|
+
if (!parentWidthValue && parentFlyout !== null && parentFlyout !== void 0 && parentFlyout.size) {
|
|
95
|
+
parentWidthValue = getWidthFromSize(parentFlyout.size);
|
|
96
|
+
}
|
|
97
|
+
if (!childWidthValue && childFlyout !== null && childFlyout !== void 0 && childFlyout.size) {
|
|
98
|
+
childWidthValue = getWidthFromSize(childFlyout.size);
|
|
99
|
+
}
|
|
100
|
+
if (!parentWidthValue || !childWidthValue) {
|
|
101
|
+
if (currentLayoutMode !== LAYOUT_MODE_SIDE_BY_SIDE) setMode(LAYOUT_MODE_SIDE_BY_SIDE);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
var combinedWidth = parentWidthValue + childWidthValue;
|
|
105
|
+
var combinedWidthPercentage = combinedWidth / windowWidth * 100;
|
|
106
|
+
var newLayoutMode;
|
|
107
|
+
|
|
108
|
+
// Handle fill size flyouts: keep layout as side-by-side when fill flyout is present
|
|
109
|
+
// This allows fill flyouts to dynamically calculate their width based on sibling
|
|
110
|
+
if ((parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size) === 'fill' || (childFlyout === null || childFlyout === void 0 ? void 0 : childFlyout.size) === 'fill') {
|
|
111
|
+
// For fill flyouts, we want to maintain side-by-side layout to enable dynamic width calculation
|
|
112
|
+
// Only stack if the viewport is too small (below the small breakpoint)
|
|
113
|
+
if (windowWidth >= Math.round(euiTheme.breakpoint.s * 1.4)) {
|
|
114
|
+
if (currentLayoutMode !== LAYOUT_MODE_SIDE_BY_SIDE) {
|
|
115
|
+
setMode(LAYOUT_MODE_SIDE_BY_SIDE);
|
|
116
|
+
}
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (currentLayoutMode === LAYOUT_MODE_STACKED) {
|
|
121
|
+
newLayoutMode = combinedWidthPercentage <= THRESHOLD_TO_SIDE_BY_SIDE ? LAYOUT_MODE_SIDE_BY_SIDE : LAYOUT_MODE_STACKED;
|
|
122
|
+
} else {
|
|
123
|
+
newLayoutMode = combinedWidthPercentage >= THRESHOLD_TO_STACKED ? LAYOUT_MODE_STACKED : LAYOUT_MODE_SIDE_BY_SIDE;
|
|
124
|
+
}
|
|
125
|
+
if (currentLayoutMode !== newLayoutMode) {
|
|
126
|
+
setMode(newLayoutMode);
|
|
127
|
+
}
|
|
128
|
+
}, [windowWidth, context, parentWidth, setMode, childWidth, childFlyoutId, parentFlyout === null || parentFlyout === void 0 ? void 0 : parentFlyout.size, childFlyout === null || childFlyout === void 0 ? void 0 : childFlyout.size, euiTheme]);
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
/** Convert a flyout `size` value to a pixel width using theme breakpoints. */
|
|
132
|
+
export var getWidthFromSize = function getWidthFromSize(size) {
|
|
133
|
+
if (typeof size === 'number') {
|
|
134
|
+
return size;
|
|
135
|
+
}
|
|
136
|
+
if (typeof size === 'string') {
|
|
137
|
+
var parsed = parseInt(size, 10);
|
|
138
|
+
if (!Number.isNaN(parsed)) {
|
|
139
|
+
return parsed;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Size is a function of a percentage of `vw`, defined in `composeFlyoutSizing` in `flyout.styles.ts`
|
|
143
|
+
switch (size) {
|
|
144
|
+
case 's':
|
|
145
|
+
return Math.round(window.innerWidth * 0.25);
|
|
146
|
+
case 'm':
|
|
147
|
+
return Math.round(window.innerWidth * 0.5);
|
|
148
|
+
case 'l':
|
|
149
|
+
return Math.round(window.innerWidth * 0.75);
|
|
150
|
+
case 'fill':
|
|
151
|
+
return Math.round(window.innerWidth * 0.9);
|
|
152
|
+
default:
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return 0;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/** Current layout mode for managed flyouts (`side-by-side` or `stacked`). */
|
|
160
|
+
export var useFlyoutLayoutMode = function useFlyoutLayoutMode() {
|
|
161
|
+
var _context$state;
|
|
162
|
+
var context = useFlyoutManager();
|
|
163
|
+
return (context === null || context === void 0 || (_context$state = context.state) === null || _context$state === void 0 ? void 0 : _context$state.layoutMode) || LAYOUT_MODE_SIDE_BY_SIDE;
|
|
164
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
3
|
+
* or more contributor license agreements. Licensed under the Elastic License
|
|
4
|
+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
5
|
+
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
6
|
+
* Side Public License, v 1.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import React, { createContext, useContext } from 'react';
|
|
10
|
+
import { useFlyoutManagerReducer } from './hooks';
|
|
11
|
+
import { useApplyFlyoutLayoutMode } from './layout_mode';
|
|
12
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
13
|
+
/**
|
|
14
|
+
* React context that exposes the Flyout Manager API (state + actions).
|
|
15
|
+
*/
|
|
16
|
+
export var EuiFlyoutManagerContext = /*#__PURE__*/createContext(null);
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Provides the Flyout Manager API via context and runs layout-mode logic.
|
|
20
|
+
*/
|
|
21
|
+
export var EuiFlyoutManager = function EuiFlyoutManager(_ref) {
|
|
22
|
+
var children = _ref.children;
|
|
23
|
+
var api = useFlyoutManagerReducer();
|
|
24
|
+
return ___EmotionJSX(EuiFlyoutManagerContext.Provider, {
|
|
25
|
+
value: api
|
|
26
|
+
}, ___EmotionJSX(EuiFlyoutManagerContainer, null, children));
|
|
27
|
+
};
|
|
28
|
+
var EuiFlyoutManagerContainer = function EuiFlyoutManagerContainer(_ref2) {
|
|
29
|
+
var children = _ref2.children;
|
|
30
|
+
useApplyFlyoutLayoutMode();
|
|
31
|
+
return ___EmotionJSX(React.Fragment, null, children);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** Hook to access the Flyout Manager API from context. */
|
|
35
|
+
export var useFlyoutManager = function useFlyoutManager() {
|
|
36
|
+
return useContext(EuiFlyoutManagerContext);
|
|
37
|
+
};
|