Skip to content

[content-list] 1. Provider Foundation#251344

Merged
clintandrewhall merged 6 commits intoelastic:mainfrom
clintandrewhall:content-list/provider-foundation
Feb 4, 2026
Merged

[content-list] 1. Provider Foundation#251344
clintandrewhall merged 6 commits intoelastic:mainfrom
clintandrewhall:content-list/provider-foundation

Conversation

@clintandrewhall
Copy link
Copy Markdown
Contributor

@clintandrewhall clintandrewhall commented Feb 2, 2026

Summary

Introduces the foundational provider packages for the Content List system - the first PR in a planned series that will incrementally replace TableListView across Kibana.

This PR establishes the core architecture for the ContentListProvider:

  • @kbn/content-list-provider - Core state management, React Query integration, and feature configuration
  • @kbn/content-list-provider-client - Adapter for existing TableListView-style findItems functions, enabling seamless migration

Commits

# Commit Focus Review priority
1 245b54c - Add package scaffolding Config files, package.json, tsconfig.json Low - boilerplate
2 989c22c - Implement provider foundation Core logic, types, hooks, adapters High - main logic
3 279658a - Write unit tests Jest tests for hooks, reducers, adapters Medium
4 2b608d1 - Write Storybook story Interactive demo with sorting controls Low
5 29fce0d - Addressing feedback Code review fixes, docs, API cleanup Medium

What's included

Core Provider (@kbn/content-list-provider)

  • ContentListProvider - Main context provider with React Query for data fetching/caching
  • useContentListConfig - Access configuration (labels, features, supports flags)
  • useContentListItems - Access items, loading state, errors, and refetch
  • useContentListSort - Sorting state and controls
  • Configurable features system (features.sorting)
  • Type-safe datasource interface (FindItemsParams, FindItemsResult)

Client Provider (@kbn/content-list-provider-client)

  • ContentListClientProvider - Wraps existing TableListView findItems functions
  • createFindItemsFn - Adapts { hits, total }{ items, total } with client-side sorting/pagination

Tests & Stories

  • Unit tests for all hooks, reducers, and adapters (69 tests)
  • Storybook story with interactive controls for sorting and configuration

Test plan

  • Unit tests pass: yarn jest src/platform/packages/shared/content-management/content_list
  • Storybook story renders: yarn storybook content_management → Content List / Provider
  • Sort controls update table order
  • Configuration changes trigger provider remount

Next steps

PR 2: UI Foundation (@kbn/content-list-table, @kbn/content-list-toolbar)

@clintandrewhall clintandrewhall added review release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// v9.4.0 labels Feb 2, 2026
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/appex-sharedux (Team:SharedUX)

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR establishes the foundational provider packages for a new Content List system intended to incrementally replace TableListView across Kibana. It introduces core state management with React Query integration and a client adapter for backward compatibility with existing TableListView implementations.

Changes:

  • Introduces @kbn/content-list-provider with core context providers, hooks, and feature configuration
  • Adds @kbn/content-list-provider-client adapter for seamless migration from TableListView-style APIs
  • Includes comprehensive unit tests and Storybook examples

Reviewed changes

Copilot reviewed 49 out of 50 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tsconfig.base.json Adds TypeScript path mappings for the two new packages
kbn-content-list-provider/tsconfig.json TypeScript configuration for the core provider package
kbn-content-list-provider/src/stories/content_list_provider.stories.tsx Storybook story demonstrating provider usage with sorting controls
kbn-content-list-provider/src/state/*.ts State management implementation using reducers and React Query
kbn-content-list-provider/src/query/*.ts React Query integration for data fetching and caching
kbn-content-list-provider/src/features/sorting/*.ts Sorting feature implementation and hooks
kbn-content-list-provider/src/datasource/*.ts Data source types and default transform functions
kbn-content-list-provider/src/context/*.tsx Main provider component and configuration context
kbn-content-list-provider/src/item/*.ts Item type definitions and transform functions
kbn-content-list-provider-client/src/*.ts Client-side adapter for TableListView migration
kbn-content-list-provider-client/README.md Documentation for the client adapter
package.json Adds workspace links for both new packages

@clintandrewhall clintandrewhall force-pushed the content-list/provider-foundation branch from 543d852 to e80112e Compare February 2, 2026 21:46
@clintandrewhall clintandrewhall requested review from a team and Copilot February 2, 2026 21:48
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 52 out of 53 changed files in this pull request and generated 6 comments.

@clintandrewhall clintandrewhall force-pushed the content-list/provider-foundation branch 5 times, most recently from 01e9a1a to 74abc4e Compare February 3, 2026 00:53
@clintandrewhall clintandrewhall force-pushed the content-list/provider-foundation branch 4 times, most recently from d29458a to 3dba1f8 Compare February 4, 2026 02:41
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 51 out of 52 changed files in this pull request and generated 4 comments.

Package configuration for `@kbn/content-list-provider` and
`@kbn/content-list-provider-client`.
Core implementation for content list state management:
- Context and provider components
- Data source types and default transform
- React Query integration for data fetching
- State reducer and hooks
- Sorting feature
- Client adapter for TableListView migration
@clintandrewhall clintandrewhall force-pushed the content-list/provider-foundation branch from 6b0b819 to 29fce0d Compare February 4, 2026 04:04
Copy link
Copy Markdown
Contributor

@Dosant Dosant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

I re-reviewed only the last "address-feedback" commit.

@clintandrewhall clintandrewhall force-pushed the content-list/provider-foundation branch from 16f0a61 to e8fa761 Compare February 4, 2026 20:27
@clintandrewhall clintandrewhall enabled auto-merge (squash) February 4, 2026 20:30
@clintandrewhall clintandrewhall merged commit b462eb2 into elastic:main Feb 4, 2026
18 checks passed
@clintandrewhall clintandrewhall deleted the content-list/provider-foundation branch February 4, 2026 22:40
@elasticmachine
Copy link
Copy Markdown
Contributor

💚 Build Succeeded

Metrics [docs]

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
@kbn/content-list-provider - 10 +10
@kbn/content-list-provider-client - 7 +7
total +17

Public APIs missing exports

Total count of every type that is part of your API that should be exported but is not. This will cause broken links in the API documentation system. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats exports for more detailed information.

id before after diff
@kbn/content-list-provider - 5 +5
Unknown metric groups

API count

id before after diff
@kbn/content-list-provider - 53 +53
@kbn/content-list-provider-client - 16 +16
total +69

ESLint disabled line counts

id before after diff
@kbn/content-list-provider - 2 +2

Total ESLint disabled count

id before after diff
@kbn/content-list-provider - 2 +2

History

mbondyra added a commit to mbondyra/kibana that referenced this pull request Feb 5, 2026
* commit '5c0872d56bc0268177cd3c7150a1685481fb5238': (221 commits)
  Add .cursorignore file (elastic#251709)
  [Search] Add descriptions to semantic_text field inference endpoint select (elastic#249265)
  [Agent Builder] Agent skills implementation (elastic#251209)
  [Lens] [ES|QL] Improve types for ES|QL conversion. (elastic#251042)
  Update the trace waterfall to make it easy to understand (elastic#250442)
  [ES|QL] [Lens] Adds query stats (elastic#251029)
  [Lens] Fix KQL character escaping when query is generated from Top values column (breakdown). (elastic#250925)
  fix(kbn-elastic-assistant): fix a11y issue with missing label on flyout (elastic#251656)
  Update dependency @elastic/monaco-esql to v3.1.16 (main) (elastic#251666)
  [Automatic Import V2] Add langsmith tracing (elastic#251592)
  [scout] fix duplicated test failure reports in Buildkite annotations (elastic#251455)
  chore(NA): remove us-central1-b from gcp zones on high load jobs (elastic#251748)
  skip flaky suite (elastic#250973)
  [Lens] Allow read only view for users with write permissions but having no write access to the dashboard (elastic#247746)
  [CI] Increase artifacts disk to 180gb (elastic#251774)
  [content-list] 1. Provider Foundation (elastic#251344)
  [AI Infra] Add missing ES|QL commands and functions documentation for inference tasks (elastic#249089)
  [docs-utils] 4️⃣ pre-req: Prepare for new validations (elastic#250810)
  [APM] Extend React flow service map test coverage (elastic#251624)
  [scout] discover tests with custom server configs (elastic#251297)
  ...

# Conflicts:
#	src/platform/plugins/shared/dashboard/tsconfig.json
#	x-pack/platform/plugins/shared/agent_builder_platform/server/tools/create_visualization/create_visualization.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting ci:build-storybooks release_note:skip Skip the PR/issue when compiling release notes review Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants