kibana/examples
Davis McPhee 0bb73eec2c
[Discover] Initial tabs implementation (disabled in main) (#214861)
## Summary

This PR restructures Discover's state management to support tabs as
outlined in #215398, including the Redux store and
`RuntimeStateManager`. It also adds the initial tabs implementation to
the UI to start building on, but they're disabled by default with a
hardcoded flag. Tabs can be enabled by setting `TABS_ENABLED = true` in
`discover_main_route`, but they don't need to be thoroughly tested in
this PR since most of the functionality is incomplete.

There's also a flaw in the state management approach with `currentId`
since depending on it can cause state to leak across tabs when switching
tabs during async operations (e.g. data fetching). This shouldn't be an
issue while tabs are disabled, and there will be a followup PR #215620
to address it.


https://github.com/user-attachments/assets/ebbb9fa7-a3bc-4e82-9b5c-0d29cd0575f0

Part of #215398.

### Checklist

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
2025-03-28 15:38:53 -03:00
..
content_management_examples [Dashboard] Remove mSearch from content management (#210709) 2025-03-03 11:31:09 -05:00
controls_example [embeddable] replace Embeddable ViewMode with presentation-publishing ViewMode (#211960) 2025-03-04 09:05:23 -07:00
data_view_field_editor_example Upgrade EUI to v101.0.1 (#215698) 2025-03-28 19:29:23 +01:00
developer_examples [Discover][Tabs] New tabs package and initial implementation of components (#210674) 2025-02-21 14:00:40 +01:00
discover_customization_examples [Discover] Initial tabs implementation (disabled in main) (#214861) 2025-03-28 15:38:53 -03:00
embeddable_examples [kbn-grid-layout] Add ability to create, edit, and delete rows (#209193) 2025-02-24 18:29:00 +00:00
error_boundary Upgrade EUI to v101.0.1 (#215698) 2025-03-28 19:29:23 +01:00
eso_model_version_example [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
esql_ast_inspector Upgrade EUI to v101.0.1 (#215698) 2025-03-28 19:29:23 +01:00
esql_validation_example Sustainable Kibana Architecture: Move modules owned by @elastic/kibana-esql (#202722) 2024-12-09 11:33:55 +01:00
expressions_explorer SKA: Update broken references and URLs (#206836) 2025-01-28 03:32:48 +00:00
feature_control_examples [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
feature_flags_example [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
field_formats_example Upgrade EUI to v101.0.1 (#215698) 2025-03-28 19:29:23 +01:00
files_example Upgrade EUI to v101.0.1 (#215698) 2025-03-28 19:29:23 +01:00
grid_example [kbn-grid-layout] Allow rows to be reordered (#213166) 2025-03-19 11:12:35 -06:00
guided_onboarding_example [Search] remove app search guided onboarding (#206670) 2025-01-24 09:46:05 -06:00
hello_world Adds AGPL 3.0 license (#192025) 2024-09-06 19:02:41 -06:00
locator_examples Adds AGPL 3.0 license (#192025) 2024-09-06 19:02:41 -06:00
locator_explorer SKA: Update broken references and URLs (#206836) 2025-01-28 03:32:48 +00:00
partial_results_example Upgrade EUI to v101.0.1 (#215698) 2025-03-28 19:29:23 +01:00
portable_dashboards_example [embeddable] replace Embeddable ViewMode with presentation-publishing ViewMode (#211960) 2025-03-04 09:05:23 -07:00
preboot_example [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
resizable_layout_examples Preparation for High Contrast Mode, Analytics Experience domains (#202608) 2024-12-12 13:16:07 -06:00
response_stream [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
routing_example [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
screenshot_mode_example [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
search_examples [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
share_examples [Reporting] fix dashboard "Copy Post URL" action (#192530) 2024-10-08 01:54:21 +02:00
sse_example [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
state_containers_examples [Saved Queries] Rework saved query privileges (#202863) 2025-01-29 17:34:58 -04:00
ui_action_examples Preparation for High Contrast Mode, Core/SharedUX domains (#202606) 2024-12-05 08:26:41 -07:00
ui_actions_explorer SKA: Update broken references and URLs (#206836) 2025-01-28 03:32:48 +00:00
unified_doc_viewer Upgrade ES client to 9.0.0-alpha.3 (#208776) 2025-02-25 14:37:23 +00:00
unified_field_list_examples Sustainable Kibana Architecture: Move modules owned by @elastic/kibana-data-discovery (#203152) 2024-12-30 13:23:47 +01:00
unified_tabs_examples [Discover Session][Tabs] Tab preview (#214090) 2025-03-20 14:10:56 +02:00
user_profile_examples [Authz] Migrated routes with access tags to security config (#209756) 2025-02-11 21:36:38 +07:00
v8_profiler_examples [Authz] Mandatory Security Config (#215180) 2025-03-27 12:04:53 -07:00
README.asciidoc Adds run without basepath configured to examples readme (#173086) 2023-12-12 11:22:02 -07:00

[[example-plugins]]
== Example plugins

This folder contains example plugins.  To run the plugins in this folder, use the `--run-examples` flag (without a basepath), via

[source,bash]
----
yarn start --run-examples
----