Summary
DataView.List renders its rows, cells, and group headers internally, and exposes classNames hooks for them (root, header, headerCell, row, cell, groupHeader, plus per-column cell/header and Filters.classNames.filterChips/addFilter). Two rendered parts still have no hook, so theming them means targeting hashed CSS-module classes ([class*="data-view-module_…"]), which are internal and can change between releases.
What has no hook
-
Filter-chip internals. Filters.classNames.filterChips lands on the chip root only. The inner parts can't be reached: chip-label, operationText, operationValue, selectValue, removeIcon, removeIconContainer, leadingIcon.
-
Loader / skeleton rows. When isLoading renders placeholder rows, there's no hook on the loader container or its rows — DataViewListClassNames covers real rows, not the loading state.
Proposed change
- Add a
classNames object to FilterChip (surfaced through Filters) covering its inner parts.
- Add a
loader (and/or loader-row) key to DataViewListClassNames.
Both follow the pattern the existing hooks already use: read an optional string from props, apply it to the element DataView already renders.
Willing to contribute
Happy to open a PR if the approach looks right.
Summary
DataView.Listrenders its rows, cells, and group headers internally, and exposesclassNameshooks for them (root,header,headerCell,row,cell,groupHeader, plus per-columncell/headerandFilters.classNames.filterChips/addFilter). Two rendered parts still have no hook, so theming them means targeting hashed CSS-module classes ([class*="data-view-module_…"]), which are internal and can change between releases.What has no hook
Filter-chip internals.
Filters.classNames.filterChipslands on the chip root only. The inner parts can't be reached:chip-label,operationText,operationValue,selectValue,removeIcon,removeIconContainer,leadingIcon.Loader / skeleton rows. When
isLoadingrenders placeholder rows, there's no hook on the loader container or its rows —DataViewListClassNamescovers real rows, not the loading state.Proposed change
classNamesobject toFilterChip(surfaced throughFilters) covering its inner parts.loader(and/or loader-row) key toDataViewListClassNames.Both follow the pattern the existing hooks already use: read an optional string from props, apply it to the element
DataViewalready renders.Willing to contribute
Happy to open a PR if the approach looks right.