// Synthetic, framework-neutral slot content shared by BOTH harnesses so a
// slot-drop shows up as a missing visible-text token on one side. Plain text
// tokens = the most representation-stable content. Slot NAMES verified against
// the canonical components (plan Task 3 Step 1):
//   TopBar   src/canonical/TopBar.vue  → logo / left / search / menu / right-content
//            (menu gated by showMenu — all 4 manifest entries have showMenu:true;
//             right-content ungated). We inject logo / menu / right-content.
//   FormItem src/canonical/FormItem.vue → <slot name="label"> (rendered when a
//            label slot is present via useHasSlot) + default slot.
//   PillStatus src/canonical/PillStatus.vue → default <slot>{{ status }}</slot>.
export type SlotFixture = { slots: Record<string, string>; expectTokens: string[] }

export const SLOT_FIXTURES: Record<string, SlotFixture> = {
  TopBar: {
    slots: { logo: 'PARITY_LOGO', menu: 'PARITY_MENU', 'right-content': 'PARITY_RIGHT' },
    expectTokens: ['PARITY_LOGO', 'PARITY_MENU', 'PARITY_RIGHT'],
  },
  FormItem: {
    slots: { label: 'PARITY_LABEL' },
    expectTokens: ['PARITY_LABEL'],
  },
  PillStatus: {
    slots: { default: 'PARITY_PILL' },
    expectTokens: ['PARITY_PILL'],
  },
}
