import type { Meta, StoryObj } from '@storybook/react';
import { FeatureCreateDrawer } from './feature-create-drawer.js';
/**
 * **FeatureCreateDrawer** is a right-side sliding drawer containing a form to
 * create a new feature in the Control Center.
 *
 * ### Form sections
 * - **Description** (required) — multi-line textarea, submit is disabled when empty
 * - **Auto Approve** — Tri-state parent checkbox with 3 child checkboxes (PRD, Plan, Merge).
 *   Parent shows indeterminate when some children are selected, checks/unchecks all on click.
 * - **Attachments** (optional) — native OS file picker with extension-based icon system:
 *   image → blue, PDF → red, code/text → emerald, generic → gray.
 *   Each attachment card shows the **full absolute file path**.
 *
 * ### Props
 * | Prop | Type | Description |
 * |------|------|-------------|
 * | `open` | `boolean` | Controls drawer visibility |
 * | `onClose` | `() => void` | Called on dismiss (close button, cancel, or backdrop) |
 * | `onSubmit` | `(data: FeatureCreatePayload) => void` | Called with `{ description, attachments, repositoryPath, approvalGates }` |
 * | `repositoryPath` | `string` | Repository path (mandatory) included in the submitted data |
 *
 * ### Behavior
 * - Form resets (description, attachments, checkboxes) when the drawer closes
 * - Submit button is disabled when description is empty
 * - `approvalGates` always included: `{ allowPrd, allowPlan, allowMerge }` (all false by default)
 * - Non-modal (`modal={false}`) — canvas stays interactive behind the drawer
 * - Fixed width: 448px (`w-xl`) — matches review drawers (PRD, Plan, Merge)
 * - Attachments use native OS file picker via `pickFiles()` — returns `FileAttachment[]`
 *   with full absolute paths, filenames, and sizes
 */
declare const meta: Meta<typeof FeatureCreateDrawer>;
export default meta;
type Story = StoryObj<typeof FeatureCreateDrawer>;
/** Default empty form — click the trigger button to open the create feature drawer. */
export declare const Default: Story;
/**
 * Pre-filled form — click to open, then description is typed in.
 * Demonstrates the form in a "ready to submit" state.
 */
export declare const PreFilled: Story;
/**
 * Validation state — open the drawer with an empty description field.
 * The "+ Create Feature" button is disabled because description validation fails.
 */
export declare const ValidationDisabled: Story;
/** Click to open the drawer for quick visual inspection. */
export declare const PreOpened: Story;
/**
 * All checkboxes unchecked (default) — drawer opens with no auto-approve gates enabled.
 * This is the safest default: every phase requires manual review.
 */
export declare const AllUnchecked: Story;
/**
 * All checkboxes checked via parent "Auto Approve" — fully autonomous mode.
 * Clicking the parent checkbox selects all children at once.
 */
export declare const AllChecked: Story;
/**
 * Only PRD checkbox checked — parent shows **indeterminate** (dash) state,
 * indicating partial selection at a glance.
 */
export declare const PrdOnly: Story;
/**
 * Only Merge checkbox checked — parent shows **indeterminate** (dash) state.
 * Manual review for requirements and planning, auto-approve merge to Done.
 */
export declare const MergeOnly: Story;
/**
 * Push checkbox checked — the "Push" option is enabled so the branch will be
 * pushed to remote after implementation. "Create PR" remains unchecked.
 */
export declare const PushOnly: Story;
/**
 * Create PR checked — checking "Create PR" auto-checks and disables "Push"
 * because a PR cannot be created without pushing. Both checkboxes appear
 * checked, but "Push" is non-interactive (disabled).
 */
export declare const PrChecked: Story;
/**
 * Fast mode — the "Fast" segment is selected (default). When submitted,
 * `fast: true` is included in the payload, skipping SDLC phases and
 * implementing directly from the user's prompt.
 */
export declare const FastMode: Story;
/**
 * Spec mode — the "Spec" segment is selected. Maps to `fast: false` on submit
 * with explicit PRD/Plan steps.
 */
export declare const SpecMode: Story;
/**
 * Fast mode combined with approval gates and git options — demonstrates
 * that the mode picker works alongside other form controls.
 */
export declare const FastModeWithOptions: Story;
/**
 * Drawer pre-populated from workflow settings — PRD and Plan approval gates
 * are checked, Push and Create PR are enabled. These values come from
 * `shep settings workflow` and are read at mount time via `getWorkflowDefaults()`.
 */
export declare const WithWorkflowDefaults: Story;
/** Feature create drawer rendered inside a full-page context — starts open. */
export declare const InDrawer: Story;
/**
 * With parent feature pre-selected — opened from a feature node's (+) button.
 * Shows the parent feature selector with a pre-selected parent.
 */
export declare const WithParentFeature: Story;
/**
 * Discard confirmation — type text, then click Cancel to trigger the
 * "Discard unsaved changes?" dialog. Demonstrates the dirty-form guard.
 */
export declare const DiscardConfirmation: Story;
/**
 * Drawer ready for drag-and-drop — open the drawer and drag a file over
 * the "DESCRIBE YOUR FEATURE" area to see the drag-over highlight.
 * In Storybook, the upload API isn't available, but the visual states render.
 */
export declare const DragDropReady: Story;
export declare const Interactive: Story;
/**
 * Sync toggle ON (default) — the "Sync" toggle in the GIT row is checked.
 * Main will be pulled from remote before the feature branch is created.
 */
export declare const SyncOnDefault: Story;
/**
 * Sync toggle OFF — user disables the "Sync" toggle to skip pulling latest main.
 * Useful when working offline or on local-only repositories.
 */
export declare const SyncOff: Story;
/**
 * Fork & PR enabled — the "Fork & PR" toggle in the GIT row is checked.
 * When enabled, Push and PR toggles are locked to `true` (disabled with
 * "Enabled — contributing to upstream" tooltip), and `commitSpecs`
 * auto-flips to `false`.
 */
export declare const ForkAndPrEnabled: Story;
/**
 * Fork & PR with Commit Specs re-enabled — after enabling contribute mode
 * (which auto-disables commitSpecs), the user overrides commitSpecs back to `true`.
 */
export declare const ForkAndPrWithCommitSpecs: Story;
/**
 * With repository selector — opened from sidebar without repo context.
 * Shows the searchable repository combobox at the top of the form.
 */
export declare const WithRepoSelector: Story;
/**
 * With empty repo selector — opened from sidebar but no repositories are tracked.
 * Shows the combobox with only the "Add new repository..." option.
 * The submit button remains disabled until a repository is added.
 */
export declare const WithRepoSelectorEmpty: Story;
/**
 * Fork & PR toggle visible — user does NOT have push access (canPushDirectly=false).
 * The Fork & PR toggle is rendered in the GIT row.
 */
export declare const ForkToggleVisible: Story;
/**
 * Fork & PR toggle hidden — user HAS push access (canPushDirectly=true).
 * The Fork & PR toggle is not rendered in the GIT row.
 */
export declare const ForkToggleHidden: Story;
/**
 * **App-scoped (SDD mode)** — drawer opened from an application context
 * (canvas app-node menu, app-page top bar, or FAB context action).
 *
 * - mode is pinned to **Spec** regardless of any conflicting `initialMode`
 * - mode segmented control is rendered as disabled with a tooltip explaining
 *   the lock
 * - repository selector is replaced by a locked read-only label of the app's
 *   repository
 * - all other fields (description, attachments, advanced toggles) remain
 *   editable
 */
export declare const AppScopedSpec: Story;
/**
 * **App-scoped (SDD mode) — locks override caller-supplied initialMode.**
 * Even when the caller passes `initialMode='fast'`, an app-scoped drawer
 * pins the mode to `'spec'` because the entry-point context wins.
 */
export declare const AppScopedOverridesInitialMode: Story;
//# sourceMappingURL=feature-create-drawer.stories.d.ts.map