@behindthemusictree/app-kit-ui 33.2.0 → 33.3.0

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.
@@ -227,6 +227,10 @@ type GenreTreeViewProps<O extends CriteriaOverview = CriteriaOverview> = {
227
227
  readOnly?: boolean;
228
228
  /** Further result groups (e.g. places) shown in the search box next to genres, artists and songs. */
229
229
  extraSearchGroups?: SearchGroup[];
230
+ /** Fires with the typed search text (empty when cleared), so a host can drive its own `extraSearchGroups`. */
231
+ onSearchQueryChange?: (text: string) => void;
232
+ /** Fires when the search box gains focus, e.g. to load data for `extraSearchGroups` lazily. */
233
+ onSearchFocus?: () => void;
230
234
  /** Root element classes; the component adds no outer margin. */
231
235
  className?: string;
232
236
  /** Shows the "Tree display options" group (e.g. Rotation). Defaults to true. */
@@ -286,7 +290,7 @@ type GenreTreeViewProps<O extends CriteriaOverview = CriteriaOverview> = {
286
290
  collapsed?: boolean;
287
291
  onCollapsedChange?: (collapsed: boolean) => void;
288
292
  };
289
- declare function GenreTreeView<O extends CriteriaOverview = CriteriaOverview>({ scope, handleGenreCreationAction, handleGenreRenameAction, onParentChanged, getBackendBaseUrl, additionalActions, viewMode: controlledViewMode, selectedNodeId: controlledSelectedNodeId, onSelectedNodeIdChange, defaultViewport, viewportRestore, onViewportChange, readOnly, className, showDisplayOptions, showAddRoot, allowWheelRotation: controlledAllowWheelRotation, criteriaOverviewSchema, renderGenreDetailExtras, floatingControlsLeading, sizeMetric: controlledSizeMetric, onSizeMetricChange, renderArtistLink, artistUuid: controlledArtistUuid, onArtistUuidChange, artistExpanded: controlledArtistExpanded, onArtistExpandedChange, getShareUrl, extraSearchGroups, artistSearch, onArtistSelect, artistSearchBaseUrl, songUuid: controlledSongUuid, onSongUuidChange, songExpanded: controlledSongExpanded, onSongExpandedChange, songSearch, onSongSelect, renderSongLink, renderSummary, renderEssentialTracks, renderSongLeading, renderSongActions, renderTracksToolbar, renderDangerZone, expanded, onExpandedChange, collapsed, onCollapsedChange, overlayPanel, placement, ...focus }: GenreTreeViewProps<O>): react.JSX.Element;
293
+ declare function GenreTreeView<O extends CriteriaOverview = CriteriaOverview>({ scope, handleGenreCreationAction, handleGenreRenameAction, onParentChanged, getBackendBaseUrl, additionalActions, viewMode: controlledViewMode, selectedNodeId: controlledSelectedNodeId, onSelectedNodeIdChange, defaultViewport, viewportRestore, onViewportChange, readOnly, className, showDisplayOptions, showAddRoot, allowWheelRotation: controlledAllowWheelRotation, criteriaOverviewSchema, renderGenreDetailExtras, floatingControlsLeading, sizeMetric: controlledSizeMetric, onSizeMetricChange, renderArtistLink, artistUuid: controlledArtistUuid, onArtistUuidChange, artistExpanded: controlledArtistExpanded, onArtistExpandedChange, getShareUrl, extraSearchGroups, onSearchQueryChange, onSearchFocus, artistSearch, onArtistSelect, artistSearchBaseUrl, songUuid: controlledSongUuid, onSongUuidChange, songExpanded: controlledSongExpanded, onSongExpandedChange, songSearch, onSongSelect, renderSongLink, renderSummary, renderEssentialTracks, renderSongLeading, renderSongActions, renderTracksToolbar, renderDangerZone, expanded, onExpandedChange, collapsed, onCollapsedChange, overlayPanel, placement, ...focus }: GenreTreeViewProps<O>): react.JSX.Element;
290
294
 
291
295
  type GenreActionBandProps = {
292
296
  node: GenreTreeNode;
@@ -21,7 +21,7 @@ import {
21
21
  useGenrePlaylistPlayback,
22
22
  useGenreRemoteSearchGroup,
23
23
  useSongSearchGroup
24
- } from "../chunk-FHGQGTCN.js";
24
+ } from "../chunk-QMELESFB.js";
25
25
  import "../chunk-DKQQLLMY.js";
26
26
  export {
27
27
  GenreDetailPanel,
package/dist/index.cjs CHANGED
@@ -2656,6 +2656,8 @@ function GenreTreeView({
2656
2656
  onArtistExpandedChange,
2657
2657
  getShareUrl,
2658
2658
  extraSearchGroups = [],
2659
+ onSearchQueryChange,
2660
+ onSearchFocus,
2659
2661
  artistSearch = true,
2660
2662
  onArtistSelect,
2661
2663
  artistSearchBaseUrl,
@@ -3085,7 +3087,11 @@ function GenreTreeView({
3085
3087
  selectedName: selectedGenrePlaylist?.name ?? (typeof builtInPanel?.title === "string" ? builtInPanel.title : null),
3086
3088
  onClear: builtInSongPanel ? () => changeSong(null) : builtInArtistPanel ? () => changeArtist(null) : handleGenreSearchClear,
3087
3089
  onPrevious: handlePrevious,
3088
- onQueryChange: artistSearch || songSearch || extraSearchGroups.length > 0 ? setSearchText : void 0,
3090
+ onQueryChange: (text) => {
3091
+ setSearchText(text);
3092
+ onSearchQueryChange?.(text);
3093
+ },
3094
+ onFocus: onSearchFocus,
3089
3095
  extraGroups
3090
3096
  }
3091
3097
  ),