105 lines
3.8 KiB
TypeScript
105 lines
3.8 KiB
TypeScript
/**
|
|
* Main-branch component families captured at authoring time of the
|
|
* enterprise-react-audio-components-extras change. Read live via:
|
|
*
|
|
* ls /mnt/s/web/suaveplan/packages/react/react-audio/src/components/
|
|
*
|
|
* Updated 2026-05-19. Each family maps to one or more genesis surfaces.
|
|
* The parity test asserts that every entry's `genesisSubpaths` resolves
|
|
* to a real exports entry in `@suaveplan/react-audio`.
|
|
*/
|
|
|
|
export interface ParityEntry {
|
|
/** Main-branch family directory name. */
|
|
readonly mainFamily: string;
|
|
/** Genesis subpath(s) covering the family. */
|
|
readonly genesisSubpaths: ReadonlyArray<string>;
|
|
/**
|
|
* Human-readable rationale when the genesis equivalent is not a
|
|
* direct rename (e.g. plugin-controls is folded into PluginSlot).
|
|
*/
|
|
readonly notes?: string;
|
|
}
|
|
|
|
export const MAIN_BRANCH_COMPONENT_FAMILIES: ReadonlyArray<ParityEntry> = [
|
|
{
|
|
mainFamily: "audio-dashboard",
|
|
genesisSubpaths: [
|
|
"./components/mixer",
|
|
"./components/transport-controls",
|
|
],
|
|
notes: "audio-dashboard upstream is a composition over mixer + transport + visualiser; genesis composes the same surface from <Mixer>, <TransportControls>, <AudioVisualizer>.",
|
|
},
|
|
{
|
|
mainFamily: "audio-engine-controls",
|
|
genesisSubpaths: ["./components/transport-controls"],
|
|
notes: "audio-engine-controls upstream is the transport-style play/stop/seek/tempo bar.",
|
|
},
|
|
{
|
|
mainFamily: "audio-player",
|
|
genesisSubpaths: ["./components/audio-player"],
|
|
},
|
|
{
|
|
mainFamily: "audio-provider",
|
|
genesisSubpaths: ["./provider"],
|
|
notes: "audio-provider upstream is the React context provider; genesis exports <AudioProvider> from the ./provider subpath.",
|
|
},
|
|
{
|
|
mainFamily: "audio-visualizer",
|
|
genesisSubpaths: ["./components/audio-visualizer"],
|
|
},
|
|
{
|
|
mainFamily: "basic-player",
|
|
genesisSubpaths: ["./components/basic-player"],
|
|
},
|
|
{
|
|
mainFamily: "glados-controls",
|
|
genesisSubpaths: ["./components/glados-controls"],
|
|
},
|
|
{
|
|
mainFamily: "microphone-controls",
|
|
genesisSubpaths: ["./components/microphone-controls"],
|
|
},
|
|
{
|
|
mainFamily: "mixer-controls",
|
|
genesisSubpaths: ["./components/mixer"],
|
|
notes: "Renamed mixer-controls → mixer in genesis.",
|
|
},
|
|
{
|
|
mainFamily: "players",
|
|
genesisSubpaths: [
|
|
"./components/audio-player",
|
|
"./components/basic-player",
|
|
"./components/premium-player",
|
|
],
|
|
notes: "Upstream `players/` directory holds premium-player; genesis splits into three sibling player components.",
|
|
},
|
|
{
|
|
mainFamily: "plugin-chain",
|
|
genesisSubpaths: ["./components/plugin-chain-view"],
|
|
notes: "Renamed plugin-chain → plugin-chain-view in genesis.",
|
|
},
|
|
{
|
|
mainFamily: "plugin-controls",
|
|
genesisSubpaths: [
|
|
"./components/plugin-slot",
|
|
"./components/plugin-parameter-knob",
|
|
"./components/plugin-parameter-slider",
|
|
],
|
|
notes: "Upstream plugin-controls contains the EQ/Compressor/Delay/Reverb specialised slot renderers; genesis exposes the same surface via <PluginSlot> + the `slotRenderers` provider option, plus the primitive knob/slider components.",
|
|
},
|
|
{
|
|
mainFamily: "plugin-loader",
|
|
genesisSubpaths: ["./components/plugin-loader"],
|
|
},
|
|
{
|
|
mainFamily: "plugins",
|
|
genesisSubpaths: ["./components/audio-player"],
|
|
notes: "Upstream `plugins/` is the audio-player's internal subcomponents (library-panel, queue-panel, progress-bar, track-info, volume-control). Genesis folds them into <AudioPlayer>'s control surface.",
|
|
},
|
|
{
|
|
mainFamily: "preset-manager",
|
|
genesisSubpaths: ["./components/preset-manager"],
|
|
},
|
|
];
|