'use client';
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
/**
 * LaneChooser — spec 097, FR-37 / task-44.
 *
 * Dropdown over the five values of the ContributorLane TypeSpec enum. Pure
 * presentation: emits `onLaneChange` and never holds its own state. Options
 * are derived from `Object.values(ContributorLane)` so adding a new lane to
 * the enum surfaces here automatically.
 */
import { ContributorLane } from '../../../../../packages/core/src/domain/generated/output.js';
const LANE_LABEL = {
    [ContributorLane.Docs]: 'Docs',
    [ContributorLane.Agents]: 'Agents',
    [ContributorLane.Ui]: 'UI',
    [ContributorLane.Cli]: 'CLI',
    [ContributorLane.Infra]: 'Infra',
};
const LANE_DESCRIPTION = {
    [ContributorLane.Docs]: 'Guides, references, READMEs',
    [ContributorLane.Agents]: 'Prompts, graphs, custom agents',
    [ContributorLane.Ui]: 'Web dashboard & components',
    [ContributorLane.Cli]: 'CLI commands & TUI',
    [ContributorLane.Infra]: 'Build, CI, deps, releases',
};
const LANE_OPTIONS = Object.values(ContributorLane);
export function LaneChooser({ value, onLaneChange, label = 'Pick a lane', id = 'lane-chooser', }) {
    return (_jsxs("div", { className: "flex flex-col gap-1.5", "data-testid": "lane-chooser", children: [_jsx("label", { htmlFor: id, className: "text-sm font-medium", children: label }), _jsxs("select", { id: id, value: value ?? '', onChange: (e) => onLaneChange(e.target.value), className: "border-input bg-background ring-offset-background focus:ring-ring h-9 rounded-md border px-3 py-2 text-sm shadow-sm focus:ring-1 focus:outline-none", "data-testid": "lane-chooser-select", children: [_jsx("option", { value: "", disabled: true, children: "Choose a lane\u2026" }), LANE_OPTIONS.map((lane) => (_jsxs("option", { value: lane, "data-testid": `lane-chooser-option-${lane}`, children: [LANE_LABEL[lane], " \u2014 ", LANE_DESCRIPTION[lane]] }, lane)))] })] }));
}
