@behindthemusictree/app-kit-ui 39.0.0 → 40.0.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.
@@ -43,9 +43,10 @@ type GenreDetailExtrasProps<O extends CriteriaOverview> = GenreDetailSlots<O> &
43
43
  family: ReactNode;
44
44
  };
45
45
 
46
- /** An artist or song detail the host renders in the shared DetailPanel in place of a genre's. */
46
+ /** A detail panel shown in the shared DetailPanel in place of a genre's: an artist, a song or a host page. */
47
47
  interface OverlayPanel {
48
- title: ReactNode;
48
+ /** Plain text, like a genre's name: it fills the search field, whose clear button closes the panel. */
49
+ title: string;
49
50
  content: ReactNode;
50
51
  /** Second column, shown only while expanded. */
51
52
  extraContent?: ReactNode;
@@ -72,7 +73,10 @@ type PlayingGenrePlaylist = {
72
73
  };
73
74
  type GenrePlaylistPlayback = {
74
75
  playing: PlayingGenrePlaylist | null;
75
- /** Plays `genrePlaylist`; `selection` overrides the default coverage of a reference genre. */
76
+ /**
77
+ * Plays `genrePlaylist`; `selection` overrides the default coverage of a reference genre. Never rejects: connectivity
78
+ * errors reach the global popup through the backend request layer, any other failure is shown here with its real code.
79
+ */
76
80
  play: (genrePlaylist: PlayableGenrePlaylistInput, selection?: GenreMusicSelection) => Promise<void>;
77
81
  };
78
82
  type UseGenrePlaylistPlaybackOptions = {
@@ -322,7 +326,8 @@ type GenreTreeViewProps<O extends CriteriaOverview = CriteriaOverview> = {
322
326
  /** Controlled expanded state of the genre panel. Uncontrolled when omitted. */
323
327
  expanded?: boolean;
324
328
  onExpandedChange?: (expanded: boolean) => void;
325
- /** A host panel rendered in the detail panel's slot; it takes precedence over the genre, song and artist panels. */
329
+ /** A host panel rendered in the detail panel's slot; it takes precedence over the genre, song and artist panels.
330
+ * Like theirs, its title fills the search field, whose clear button closes it. */
326
331
  overlayPanel?: HostOverlayPanel;
327
332
  /** Hides the info panel behind its edge tab; uncontrolled when omitted. Only applies with `placement="regions"`. */
328
333
  collapsed?: boolean;
@@ -431,8 +436,10 @@ type GenrePlaylistTreePerRootProps<T extends TrackBase> = {
431
436
  onViewportChange?: (viewport: GenreTreeViewport) => void;
432
437
  /** What node play buttons play; defaults to each node's whole genre playlist. */
433
438
  playback?: GenrePlaylistPlayback;
439
+ /** The open artist's footprint; nodes outside it are drawn muted. */
440
+ focusUuids?: ReadonlySet<string>;
434
441
  } & HostPanelProps;
435
- declare function GenrePlaylistTreePerRoot<T extends TrackBase>({ scope, className, rootUuid, genrePlaylistTreePerRoot, handleGenreCreationAction, handleGenreRenameAction, additionalActions, onNodeClick, onNodeHover, selectedNodeId, onSelectedNodeChange, readOnly, wheelZoom, defaultViewport, viewportRestore, onViewportChange, playback, ...hostPanel }: GenrePlaylistTreePerRootProps<T>): react.JSX.Element;
442
+ declare function GenrePlaylistTreePerRoot<T extends TrackBase>({ scope, className, rootUuid, genrePlaylistTreePerRoot, handleGenreCreationAction, handleGenreRenameAction, additionalActions, onNodeClick, onNodeHover, selectedNodeId, onSelectedNodeChange, readOnly, wheelZoom, defaultViewport, viewportRestore, onViewportChange, playback, focusUuids, ...hostPanel }: GenrePlaylistTreePerRootProps<T>): react.JSX.Element;
436
443
 
437
444
  interface TrackListSidebarProps<T extends TrackBase> {
438
445
  className?: string;
@@ -23,7 +23,7 @@ import {
23
23
  useGenrePlaylistPlayback,
24
24
  useGenreRemoteSearchGroup,
25
25
  useSongSearchGroup
26
- } from "../chunk-2K2SQOUJ.js";
26
+ } from "../chunk-I2TEOHVG.js";
27
27
  import "../chunk-2GH7CSCE.js";
28
28
  export {
29
29
  EntityDetailPanel,