Files
suaveplan/packages/ui/react/react-audio/tests/parity-fixture.ts
2026-05-27 23:47:53 +01:00

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"],
},
];