@contentful/experience-design-system-cli 2.37.1-dev-build-12711902.0 → 2.37.1-dev-build-aa3ffe6f.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +2 -6
- package/dist/app.js +8553 -449
- package/dist/index.js +8968 -477
- package/dist/package.json +1 -1
- package/dist/src/commands/import-options.d.ts +0 -1
- package/dist/src/tui/import/steps/07-scope-gate/graph/cycle-detection.d.ts +5 -0
- package/dist/src/tui/import/steps/09-review/components/ComponentRationalePanel.d.ts +10 -0
- package/dist/src/tui/import/steps/09-review/components/FieldEditor.d.ts +67 -0
- package/dist/src/tui/import/steps/09-review/components/FinalizeDialog.d.ts +22 -0
- package/dist/src/tui/import/steps/09-review/components/HighlightedLine.d.ts +9 -0
- package/dist/src/tui/import/steps/09-review/components/JsonPanel.d.ts +11 -0
- package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/09-review}/components/LivePreviewSummary.d.ts +2 -2
- package/dist/src/tui/import/steps/09-review/components/QuitDialog.d.ts +8 -0
- package/dist/src/tui/import/steps/09-review/components/RationaleLine.d.ts +21 -0
- package/dist/src/tui/import/steps/09-review/components/RationalePanel.d.ts +15 -0
- package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/09-review}/components/ReviewComponentPanel.d.ts +3 -3
- package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/09-review}/components/ReviewDetailsEditor.d.ts +3 -3
- package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/09-review}/components/ReviewDialogs.d.ts +2 -2
- package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/09-review}/components/ReviewStatus.d.ts +1 -1
- package/dist/src/tui/import/steps/09-review/components/ScrollablePanel.d.ts +14 -0
- package/dist/src/tui/import/steps/09-review/components/TokenReviewPanel.d.ts +30 -0
- package/dist/src/tui/import/steps/09-review/components/removed-components-text.d.ts +7 -0
- package/dist/src/tui/import/steps/09-review/components/wrap-text.d.ts +1 -0
- package/{legacy/dist/src/import/tui/steps/GenerateReviewStep.d.ts → dist/src/tui/import/steps/09-review/generate-review-step.d.ts} +1 -1
- package/{legacy/dist/src/import → dist/src/tui/import/steps/09-review/graph}/cycle-auto-reject.d.ts +1 -1
- package/{legacy/dist/src/analyze → dist/src/tui/import/steps/09-review/graph}/cycle-view.d.ts +2 -2
- package/dist/src/tui/import/steps/09-review/graph/issue-inheritance.d.ts +8 -0
- package/dist/src/tui/import/steps/09-review/graph/selection-cascade.d.ts +3 -0
- package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/09-review/helpers}/enumerate-cycle-breaks.d.ts +1 -1
- package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/09-review}/history.d.ts +1 -1
- package/dist/src/tui/import/steps/09-review/preview-annotations.d.ts +26 -0
- package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/09-review}/review-details-panel.d.ts +2 -2
- package/{legacy/dist/src/import/tui/hooks → dist/src/tui/import/steps/09-review}/review-input.d.ts +2 -2
- package/dist/src/tui/import/steps/09-review/scroll-offset.d.ts +30 -0
- package/dist/src/tui/import/steps/09-review/session.d.ts +26 -0
- package/dist/src/tui/import/steps/09-review/theme.d.ts +9 -0
- package/dist/src/tui/import/steps/09-review/token-suggestions.d.ts +8 -0
- package/dist/src/tui/import/steps/09-review/types.d.ts +19 -0
- package/{legacy/dist/src/import/tui/hooks/useReviewEditor.d.ts → dist/src/tui/import/steps/09-review/use-review-editor.d.ts} +1 -3
- package/{legacy/dist/src/import/tui/hooks/useReviewPreview.d.ts → dist/src/tui/import/steps/09-review/use-review-preview.d.ts} +2 -2
- package/{legacy/dist/src/import/tui/hooks/useReviewSession.d.ts → dist/src/tui/import/steps/09-review/use-review-session.d.ts} +5 -35
- package/dist/src/tui/import/steps/10-flow/flow/build-flow-start.d.ts +21 -0
- package/dist/src/tui/import/steps/10-flow/flow/controller.d.ts +65 -0
- package/dist/src/tui/import/steps/10-flow/flow/preview.d.ts +56 -0
- package/dist/src/tui/import/steps/10-flow/flow/push.d.ts +43 -0
- package/dist/src/tui/import/steps/10-flow/flow/save.d.ts +50 -0
- package/dist/src/tui/import/steps/10-flow/flow/screen.d.ts +17 -0
- package/dist/src/tui/import/steps/10-flow/flow/types.d.ts +71 -0
- package/dist/src/tui/import/steps/10-flow/flow/use-flow.d.ts +9 -0
- package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/10-flow/screens}/PushingStep.d.ts +1 -1
- package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/10-flow/screens}/WizardPreviewStep.d.ts +0 -1
- package/dist/src/tui/import/steps/10-flow/support/contentful-urls.d.ts +15 -0
- package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/10-flow/support}/wizard-state-transitions.d.ts +0 -13
- package/dist/src/tui/import/steps/10-flow/theme.d.ts +13 -0
- package/dist/src/tui/import/steps/preview-validation-error/logic.d.ts +12 -0
- package/dist/src/tui/import/steps/preview-validation-error/screen.d.ts +11 -0
- package/legacy/dist/src/index.js +8572 -18583
- package/legacy/package.json +1 -1
- package/package.json +4 -4
- package/dist/src/tui/import/spawn-v1-import.d.ts +0 -36
- package/dist/src/tui/import/terminal-input.d.ts +0 -2
- package/legacy/dist/src/import/agent-model-resolve.d.ts +0 -27
- package/legacy/dist/src/import/command.d.ts +0 -2
- package/legacy/dist/src/import/composition-options.d.ts +0 -7
- package/legacy/dist/src/import/tui/WizardApp.d.ts +0 -24
- package/legacy/dist/src/import/tui/autocomplete.d.ts +0 -5
- package/legacy/dist/src/import/tui/components/CompactControlBar.d.ts +0 -4
- package/legacy/dist/src/import/tui/components/LegendEntry.d.ts +0 -2
- package/legacy/dist/src/import/tui/components/SearchMatchSummary.d.ts +0 -11
- package/legacy/dist/src/import/tui/group-collapse.d.ts +0 -2
- package/legacy/dist/src/import/tui/handoff.d.ts +0 -36
- package/legacy/dist/src/import/tui/hooks/sidebar-search-state.d.ts +0 -17
- package/legacy/dist/src/import/tui/hooks/useOverlayPanel.d.ts +0 -13
- package/legacy/dist/src/import/tui/lineage-layout.d.ts +0 -68
- package/legacy/dist/src/import/tui/sidebar-help.d.ts +0 -2
- package/legacy/dist/src/import/tui/sidebar-input.d.ts +0 -13
- package/legacy/dist/src/import/tui/sidebar-navigation.d.ts +0 -18
- package/legacy/dist/src/import/tui/step-filters.d.ts +0 -19
- package/legacy/dist/src/import/tui/steps/ErrorStep.d.ts +0 -10
- package/legacy/dist/src/import/tui/steps/GateStep.d.ts +0 -15
- package/legacy/dist/src/import/tui/steps/PreviewValidationErrorStep.d.ts +0 -11
- package/legacy/dist/src/import/tui/steps/RunningStep.d.ts +0 -32
- package/legacy/dist/src/import/tui/wizard-422-helpers.d.ts +0 -48
- /package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/09-review/helpers}/auto-reject-decision.d.ts +0 -0
- /package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/09-review/helpers}/breaking-change-format.d.ts +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/09-review/helpers}/cycle-panel-scroll.d.ts +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/09-review/helpers}/sidebar-width.d.ts +0 -0
- /package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/09-review}/review-json-panel.d.ts +0 -0
- /package/{legacy/dist/src/import/tui/runLivePreview.d.ts → dist/src/tui/import/steps/09-review/run-live-preview.d.ts} +0 -0
- /package/{legacy/dist/src/import/tui/useFinalizePreview.d.ts → dist/src/tui/import/steps/09-review/use-finalize-preview.d.ts} +0 -0
- /package/{legacy/dist/src/import/tui/useLivePreview.d.ts → dist/src/tui/import/steps/09-review/use-live-preview.d.ts} +0 -0
- /package/{legacy/dist/src/import/tui/hooks/useReviewSurfaceState.d.ts → dist/src/tui/import/steps/09-review/use-review-surface-state.d.ts} +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/10-flow/components}/CustomPromptBanner.d.ts +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/10-flow}/components/SpaceEnvironment.d.ts +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/10-flow}/components/StepHeader.d.ts +0 -0
- /package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/10-flow/screens}/DoneStep.d.ts +0 -0
- /package/{legacy/dist/src/runs/path-prompt.d.ts → dist/src/tui/import/steps/10-flow/screens/PathPrompt.d.ts} +0 -0
- /package/{legacy/dist/src/import → dist/src/tui/import/steps/10-flow/support}/path-utils.d.ts +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/10-flow/support}/preview-confirmation-input.d.ts +0 -0
- /package/{legacy/dist/src/import/tui/steps → dist/src/tui/import/steps/10-flow/support}/preview-diff.d.ts +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/10-flow/support}/push-progress.d.ts +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/10-flow/support}/run-print-files-helpers.d.ts +0 -0
- /package/{legacy/dist/src/import/tui → dist/src/tui/import/steps/10-flow/support}/run-teaser.d.ts +0 -0
- /package/{legacy/dist/src/tui → dist/src/tui/import/steps/10-flow/support}/use-blinking-cursor.d.ts +0 -0
- /package/{legacy/dist/src/tui → dist/src/tui/import/steps/10-flow/support}/use-timed-spinner.d.ts +0 -0
package/dist/package.json
CHANGED
|
@@ -20,3 +20,8 @@ export interface ComponentSlotInfo {
|
|
|
20
20
|
export declare function findSlotCycles(components: ComponentSlotInfo[]): SlotCycle[];
|
|
21
21
|
export declare function suggestCycleBreakEdge(cycle: SlotCycle, allCycles: SlotCycle[]): SlotEdge;
|
|
22
22
|
export declare function formatCyclePath(cycle: SlotCycle, maxHops?: number): string;
|
|
23
|
+
export interface CyclePathSegment {
|
|
24
|
+
kind: 'component' | 'slot' | 'arrow';
|
|
25
|
+
text: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function formatCyclePathSegments(cycle: SlotCycle, maxHops?: number): CyclePathSegment[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ComponentRationale } from '@contentful/experience-design-system-backend-pipeline';
|
|
3
|
+
export type ComponentRationalePanelProps = {
|
|
4
|
+
data: ComponentRationale;
|
|
5
|
+
scrollOffset: number;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
active: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function ComponentRationalePanel({ data, scrollOffset, width, height, active, }: ComponentRationalePanelProps): React.ReactElement;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { findSlotCycles, type ComponentSlotInfo } from '../../07-scope-gate/graph/cycle-detection.js';
|
|
3
|
+
type PropMetadata = {
|
|
4
|
+
rationale?: string | null;
|
|
5
|
+
sourceStartLine?: number | null;
|
|
6
|
+
sourceEndLine?: number | null;
|
|
7
|
+
};
|
|
8
|
+
export type FieldEditorMetadata = {
|
|
9
|
+
/** Absolute path to the component's source file. Null/undefined = unknown. */
|
|
10
|
+
sourcePath?: string | null;
|
|
11
|
+
/** Full source text of the component (used by the source-view panel). */
|
|
12
|
+
componentSource?: string | null;
|
|
13
|
+
/** Per-prop metadata keyed by prop name. */
|
|
14
|
+
props?: Record<string, PropMetadata>;
|
|
15
|
+
};
|
|
16
|
+
export type FieldEditorProps = {
|
|
17
|
+
value: string;
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
fixedHeight?: boolean;
|
|
21
|
+
active?: boolean;
|
|
22
|
+
onChange: (value: string) => void;
|
|
23
|
+
onSave: () => void;
|
|
24
|
+
onDiscard: () => void;
|
|
25
|
+
onExit?: () => void;
|
|
26
|
+
metadata?: FieldEditorMetadata;
|
|
27
|
+
onTogglePropRationale?: () => void;
|
|
28
|
+
propRationaleKey?: string;
|
|
29
|
+
onToggleComponentRationale?: () => void;
|
|
30
|
+
componentRationaleKey?: string;
|
|
31
|
+
onToggleSourceExternal?: () => void;
|
|
32
|
+
onTextEntryActiveChange?: (active: boolean) => void;
|
|
33
|
+
projectSlotGraph?: ComponentSlotInfo[];
|
|
34
|
+
currentComponentName?: string;
|
|
35
|
+
onDirtyChange?: (isDirty: boolean) => void;
|
|
36
|
+
discardTrigger?: number;
|
|
37
|
+
initialFocusTarget?: {
|
|
38
|
+
kind: 'description';
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'prop' | 'slot';
|
|
41
|
+
name: string;
|
|
42
|
+
};
|
|
43
|
+
showHiddenProps?: boolean;
|
|
44
|
+
showInlineRationales?: boolean;
|
|
45
|
+
/** Pinned inside the box above the rows, in row and field-edit modes. Counts as `headerHeight` rows. */
|
|
46
|
+
header?: React.ReactNode;
|
|
47
|
+
headerHeight?: number;
|
|
48
|
+
};
|
|
49
|
+
export declare function simulateGraphWithCandidate(projectSlotGraph: ComponentSlotInfo[], selfName: string, currentSlots: {
|
|
50
|
+
name: string;
|
|
51
|
+
allowedComponents: string[];
|
|
52
|
+
}[], targetSlotName: string, candidate: string): ComponentSlotInfo[];
|
|
53
|
+
export declare function introducesNewCycle(before: ReturnType<typeof findSlotCycles>, next: ReturnType<typeof findSlotCycles>): boolean;
|
|
54
|
+
export declare function computeAllowedComponentCandidates(projectSlotGraph: ComponentSlotInfo[], selfName: string, currentSlots: {
|
|
55
|
+
name: string;
|
|
56
|
+
allowedComponents: string[];
|
|
57
|
+
}[], targetSlotName: string): string[];
|
|
58
|
+
export declare function simulateGraphWithReplacement(projectSlotGraph: ComponentSlotInfo[], selfName: string, currentSlots: {
|
|
59
|
+
name: string;
|
|
60
|
+
allowedComponents: string[];
|
|
61
|
+
}[], targetSlotName: string, replaceIndex: number, candidate: string): ComponentSlotInfo[];
|
|
62
|
+
export declare function computeAllowedComponentReplacementCandidates(projectSlotGraph: ComponentSlotInfo[], selfName: string, currentSlots: {
|
|
63
|
+
name: string;
|
|
64
|
+
allowedComponents: string[];
|
|
65
|
+
}[], targetSlotName: string, replaceIndex: number): string[];
|
|
66
|
+
export declare function FieldEditor({ value, width, height, fixedHeight, active, onChange, onSave, onDiscard, onExit, metadata, onTogglePropRationale, propRationaleKey, onToggleComponentRationale, componentRationaleKey, onToggleSourceExternal, onTextEntryActiveChange, projectSlotGraph, currentComponentName, onDirtyChange, discardTrigger, initialFocusTarget, showHiddenProps, showInlineRationales, header, headerHeight, }: FieldEditorProps): React.ReactElement;
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ComponentTypeSummary } from '@contentful/experience-design-system-types';
|
|
3
|
+
/** Max removed-component lines shown at once; the rest scroll with arrow keys.
|
|
4
|
+
* Exported so the parent's scroll-offset clamping stays in sync. */
|
|
5
|
+
export declare const FINALIZE_REMOVED_WINDOW = 6;
|
|
6
|
+
type FinalizeDialogProps = {
|
|
7
|
+
accepted: number;
|
|
8
|
+
rejected: number;
|
|
9
|
+
needsReview: number;
|
|
10
|
+
onConfirm: () => void;
|
|
11
|
+
onCancel: () => void;
|
|
12
|
+
/** Components that will be DELETED from the target space on push, from a
|
|
13
|
+
* preview scoped to the accepted set. */
|
|
14
|
+
removed?: ComponentTypeSummary[];
|
|
15
|
+
/** Status of the accepted-set preview fired when the dialog opened. While
|
|
16
|
+
* 'running', the deletion section shows a spinner instead of a (stale) list. */
|
|
17
|
+
previewStatus?: 'idle' | 'running' | 'done' | 'error';
|
|
18
|
+
/** Scroll offset into the removed list (owned by the parent; arrow keys adjust it). */
|
|
19
|
+
removedScrollOffset?: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function FinalizeDialog({ accepted, rejected, needsReview, onConfirm, onCancel, removed, previewStatus, removedScrollOffset, }: FinalizeDialogProps): React.ReactElement;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type JsonPanelProps = {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
scrollOffset: number;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
active: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function JsonPanel({ label, value, scrollOffset, width, height, active }: JsonPanelProps): React.ReactElement;
|
|
11
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { PreviewAnnotation } from '
|
|
3
|
-
import type { UseLivePreviewReturn } from '../
|
|
2
|
+
import type { PreviewAnnotation } from '../types.js';
|
|
3
|
+
import type { UseLivePreviewReturn } from '../use-live-preview.js';
|
|
4
4
|
type LivePreviewSummaryProps = {
|
|
5
5
|
enabled: boolean;
|
|
6
6
|
previewAnnotations: ReadonlyMap<string, PreviewAnnotation>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type QuitDialogProps = {
|
|
3
|
+
hasUnsavedDrafts: boolean;
|
|
4
|
+
onConfirm: () => void;
|
|
5
|
+
onCancel: () => void;
|
|
6
|
+
};
|
|
7
|
+
export declare function QuitDialog({ hasUnsavedDrafts, onConfirm, onCancel }: QuitDialogProps): React.ReactElement;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type RationaleLineData = {
|
|
3
|
+
kind: 'heading';
|
|
4
|
+
text: string;
|
|
5
|
+
} | {
|
|
6
|
+
kind: 'text';
|
|
7
|
+
text: string;
|
|
8
|
+
dim?: boolean;
|
|
9
|
+
} | {
|
|
10
|
+
kind: 'label';
|
|
11
|
+
text: string;
|
|
12
|
+
prefix?: string;
|
|
13
|
+
suffix?: string;
|
|
14
|
+
color?: string;
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'blank';
|
|
17
|
+
};
|
|
18
|
+
export declare function RationaleLine({ line, active }: {
|
|
19
|
+
line: RationaleLineData;
|
|
20
|
+
active: boolean;
|
|
21
|
+
}): React.ReactElement;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type RationaleRow = {
|
|
3
|
+
name: string;
|
|
4
|
+
kind: 'prop' | 'slot';
|
|
5
|
+
rationale: string;
|
|
6
|
+
};
|
|
7
|
+
export type RationalePanelProps = {
|
|
8
|
+
componentName: string;
|
|
9
|
+
rows: RationaleRow[];
|
|
10
|
+
scrollOffset: number;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
active: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare function RationalePanel({ componentName, rows, scrollOffset, width, height, active, }: RationalePanelProps): React.ReactElement;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CDFComponentEntry } from '@contentful/experience-design-system-types';
|
|
3
|
-
import type { CdfReviewEntry } from '../
|
|
4
|
-
import type { UseReviewEditorResult } from '../
|
|
5
|
-
import type { UseLivePreviewReturn } from '../
|
|
3
|
+
import type { CdfReviewEntry } from '../types.js';
|
|
4
|
+
import type { UseReviewEditorResult } from '../use-review-editor.js';
|
|
5
|
+
import type { UseLivePreviewReturn } from '../use-live-preview.js';
|
|
6
6
|
import { type ReviewDetailsEditorProps } from './ReviewDetailsEditor.js';
|
|
7
7
|
type ReviewDetailsEditorConfig = Pick<ReviewDetailsEditorProps, 'componentRationale' | 'reviewMetadata' | 'reviewEditor' | 'width' | 'height' | 'sourceBorderColor' | 'jsonValue' | 'sidebarFocused' | 'fieldEditor'>;
|
|
8
8
|
export type ReviewComponentPanelProps = ReviewDetailsEditorConfig & {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type FieldEditorProps } from '
|
|
3
|
-
import { type ReviewDetailsPanelProps } from '../
|
|
4
|
-
import type { UseReviewEditorResult } from '../
|
|
2
|
+
import { type FieldEditorProps } from './FieldEditor.js';
|
|
3
|
+
import { type ReviewDetailsPanelProps } from '../review-details-panel.js';
|
|
4
|
+
import type { UseReviewEditorResult } from '../use-review-editor.js';
|
|
5
5
|
type ReviewEditorPanelState = Pick<UseReviewEditorResult, 'panelOpen' | 'panelScrollOffset' | 'tokenReviewRow' | 'tokenReviewEditing' | 'tokenReviewEditCursor' | 'tokenReviewEditSelection' | 'showJson' | 'jsonScrollOffset' | 'currentTokenSuggestions'>;
|
|
6
6
|
export type ReviewDetailsEditorProps = Omit<ReviewDetailsPanelProps, 'editor' | 'panelOpen' | 'panelScrollOffset' | 'tokenSuggestions' | 'tokenReviewRow' | 'tokenReviewEditing' | 'tokenReviewEditCursor' | 'tokenReviewEditSelection' | 'showJson' | 'jsonScrollOffset'> & {
|
|
7
7
|
reviewEditor: ReviewEditorPanelState;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ComponentTypeSummary } from '@contentful/experience-design-system-types';
|
|
3
|
-
import type { UseFinalizePreviewReturn } from '../
|
|
4
|
-
import type { UseReviewSurfaceStateResult } from '../
|
|
3
|
+
import type { UseFinalizePreviewReturn } from '../use-finalize-preview.js';
|
|
4
|
+
import type { UseReviewSurfaceStateResult } from '../use-review-surface-state.js';
|
|
5
5
|
import { type ReviewStatusEntry } from './ReviewStatus.js';
|
|
6
6
|
export type ReviewFinalizeDialogsProps = {
|
|
7
7
|
showFinalize: boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type ScrollablePanelProps = {
|
|
3
|
+
title: string;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
active: boolean;
|
|
7
|
+
totalLines: number;
|
|
8
|
+
visibleStart: number;
|
|
9
|
+
visibleEnd: number;
|
|
10
|
+
borderColor?: string;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export declare function ScrollablePanel({ title, width, height, active, totalLines, visibleStart, visibleEnd, borderColor, children, }: ScrollablePanelProps): React.ReactElement;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CDFComponentEntry } from '@contentful/experience-design-system-types';
|
|
3
|
+
export type TokenPropSuggestion = {
|
|
4
|
+
propName: string;
|
|
5
|
+
paths: string[];
|
|
6
|
+
suggested: string[];
|
|
7
|
+
allowed: string[];
|
|
8
|
+
};
|
|
9
|
+
export type TokenReviewToken = {
|
|
10
|
+
path: string;
|
|
11
|
+
kind: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Design-token props on `entry` with a declared token kind. `paths` is the
|
|
15
|
+
* full compatible token universe when a token catalog is available; `allowed`
|
|
16
|
+
* remains the current subset.
|
|
17
|
+
*/
|
|
18
|
+
export declare function collectTokenSuggestions(entry: CDFComponentEntry, availableTokens?: TokenReviewToken[]): TokenPropSuggestion[];
|
|
19
|
+
export type TokenReviewPanelProps = {
|
|
20
|
+
componentName: string;
|
|
21
|
+
suggestions: TokenPropSuggestion[];
|
|
22
|
+
selectedRow: number;
|
|
23
|
+
editing: boolean;
|
|
24
|
+
editCursor: number;
|
|
25
|
+
editSelection: Set<string>;
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
active: boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare function TokenReviewPanel({ componentName, suggestions, selectedRow, editing, editCursor, editSelection, width, height, active, }: TokenReviewPanelProps): React.ReactElement;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentTypeSummary } from '@contentful/experience-design-system-types';
|
|
2
|
+
/** Header line for the removed-components surfaces (deletion panel + finalize
|
|
3
|
+
* dialog). Kept in one place so both read identically. `withExpandHint` adds
|
|
4
|
+
* the panel's "[d] to expand/collapse" affordance, which the dialog omits. */
|
|
5
|
+
export declare function removedComponentsHeader(count: number, withExpandHint: boolean): string;
|
|
6
|
+
/** One bullet line per removed component, matching the deletion panel. */
|
|
7
|
+
export declare function removedComponentLine(rc: ComponentTypeSummary): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function wrapText(text: string, innerWidth: number): string[];
|
|
@@ -17,7 +17,7 @@ export declare function sortComponentsForSidebar<T extends {
|
|
|
17
17
|
key: string;
|
|
18
18
|
entry: CDFComponentEntry;
|
|
19
19
|
}>(components: T[], cycleParticipants?: Set<string>): T[];
|
|
20
|
-
export { computeCycleAutoRejectTargets } from '
|
|
20
|
+
export { computeCycleAutoRejectTargets } from './graph/cycle-auto-reject.js';
|
|
21
21
|
export interface BreakingComponent {
|
|
22
22
|
componentName: string;
|
|
23
23
|
changes: BreakingChange[];
|
package/{legacy/dist/src/import → dist/src/tui/import/steps/09-review/graph}/cycle-auto-reject.d.ts
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ComponentGraphNode } from '
|
|
1
|
+
import type { ComponentGraphNode } from '../../07-scope-gate/graph/composite-closure.js';
|
|
2
2
|
export declare function computeCycleAutoRejectTargets(slotCycles: Array<{
|
|
3
3
|
path: string[];
|
|
4
4
|
}>, graph: ComponentGraphNode[]): Set<string>;
|
package/{legacy/dist/src/analyze → dist/src/tui/import/steps/09-review/graph}/cycle-view.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { SlotCycle } from '
|
|
2
|
-
import { type SlotGraphInput } from '
|
|
1
|
+
import type { SlotCycle } from '../../07-scope-gate/graph/cycle-detection.js';
|
|
2
|
+
import { type SlotGraphInput } from '../../07-scope-gate/graph/slot-graph.js';
|
|
3
3
|
export interface CycleView {
|
|
4
4
|
pushBlocking: SlotCycle[];
|
|
5
5
|
structural: Set<string>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Closure, NodeStatus } from '../../07-scope-gate/graph/composite-closure.js';
|
|
2
|
+
export interface RenderStatus {
|
|
3
|
+
status: NodeStatus;
|
|
4
|
+
isOwn: boolean;
|
|
5
|
+
sourceComponents: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function computeRenderStatuses(closure: Closure, directIssues: Map<string, NodeStatus>): Map<string, RenderStatus>;
|
|
8
|
+
export declare function pickDrillTarget(ancestor: string, closure: Closure, directIssues: Map<string, NodeStatus>): string | null;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ComponentGraphNode } from '../../07-scope-gate/graph/composite-closure.js';
|
|
2
|
+
export declare function computeRejectCascade(target: string, components: ComponentGraphNode[]): Set<string>;
|
|
3
|
+
export declare function computeAcceptCascade(target: string, components: ComponentGraphNode[]): Set<string>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CDFComponentEntry } from '@contentful/experience-design-system-types';
|
|
2
|
-
import type { SlotCycle, SlotEdge } from '
|
|
2
|
+
import type { SlotCycle, SlotEdge } from '../../07-scope-gate/graph/cycle-detection.js';
|
|
3
3
|
export type BreakEdge = SlotEdge;
|
|
4
4
|
/** Row shape accepted by {@link enumerateCycleBreaks}. */
|
|
5
5
|
export interface BreakEnumComponent {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CDFComponentEntry } from '@contentful/experience-design-system-types';
|
|
2
|
-
import type { ReviewComponentStatus } from '
|
|
2
|
+
import type { ReviewComponentStatus } from './types.js';
|
|
3
3
|
export interface HistorySnapshot {
|
|
4
4
|
components: CdfReviewEntrySnapshot[];
|
|
5
5
|
autoRejected: string[];
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ServerPreviewResponse } from '@contentful/experience-design-system-types';
|
|
2
|
+
import type { PreviewAnnotation } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Pure mapper from a `ServerPreviewResponse` to a per-component-name
|
|
5
|
+
* `PreviewAnnotation` map. Consumed by the wizard's final-review sidebar
|
|
6
|
+
* (and any other surface that wants to render diff badges next to a
|
|
7
|
+
* component row).
|
|
8
|
+
*
|
|
9
|
+
* The `new` bucket of `ServerPreviewResponse.components` is `CDFComponentEntry[]`
|
|
10
|
+
* — those entries do NOT carry a `name` field on the wire (the name is the
|
|
11
|
+
* KEY in the parent CDF document). So instead of trying to read names off
|
|
12
|
+
* entries, we derive the "new" set as:
|
|
13
|
+
*
|
|
14
|
+
* new = localNames \ (unchangedNames ∪ changedNames ∪ removedNames)
|
|
15
|
+
*
|
|
16
|
+
* Callers must pass the local CDF document's component keys as `localNames`
|
|
17
|
+
* so we can perform the set difference. Removed components from the server
|
|
18
|
+
* that aren't in the local document are still annotated as `'removed'` (so
|
|
19
|
+
* the detail panel can list them).
|
|
20
|
+
*
|
|
21
|
+
* Precedence: `breaking` > `changed` > `removed` > `new`.
|
|
22
|
+
*
|
|
23
|
+
* Unchanged entries are omitted from the map — callers should treat
|
|
24
|
+
* `map.get(name) === undefined` as "no annotation".
|
|
25
|
+
*/
|
|
26
|
+
export declare function applyPreviewAnnotations(preview: ServerPreviewResponse, localNames: readonly string[]): Map<string, PreviewAnnotation>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type TokenPropSuggestion } from '
|
|
3
|
-
import type { ComponentRationale, ComponentReviewMetadata } from '
|
|
2
|
+
import { type TokenPropSuggestion } from './components/TokenReviewPanel.js';
|
|
3
|
+
import type { ComponentRationale, ComponentReviewMetadata } from '@contentful/experience-design-system-backend-pipeline';
|
|
4
4
|
type ReviewPanel = 'none' | 'prop-rationale' | 'component-rationale' | 'source' | 'token-review';
|
|
5
5
|
export type ReviewDetailsPanelProps = {
|
|
6
6
|
selectedKey: string;
|
package/{legacy/dist/src/import/tui/hooks → dist/src/tui/import/steps/09-review}/review-input.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ImmediateInputKey } from '
|
|
2
|
-
import type { UseReviewEditorResult } from './
|
|
1
|
+
import type { ImmediateInputKey } from '../07-scope-gate/sidebar/hooks/useImmediateInput.js';
|
|
2
|
+
import type { UseReviewEditorResult } from './use-review-editor.js';
|
|
3
3
|
type ReviewOverlayInputState = {
|
|
4
4
|
loading: boolean;
|
|
5
5
|
loadError: string | null;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helper for computing the next scroll offset when the operator presses
|
|
3
|
+
* a navigation key inside a scrollable TUI panel (JSON view, rationale view,
|
|
4
|
+
* etc.). Extracted as a shared module so multiple panels can reuse the same
|
|
5
|
+
* scroll bindings without duplicating logic.
|
|
6
|
+
*
|
|
7
|
+
* Returns the new offset, or `null` if the input doesn't match any scroll
|
|
8
|
+
* binding (caller should NOT update state in that case).
|
|
9
|
+
*
|
|
10
|
+
* Supported bindings:
|
|
11
|
+
* - downArrow → +1 line
|
|
12
|
+
* - upArrow → -1 line
|
|
13
|
+
* - Ctrl+d → +half-page (floor(panelHeight / 2))
|
|
14
|
+
* - Ctrl+u → -half-page
|
|
15
|
+
* - PageDown → +panelHeight
|
|
16
|
+
* - PageUp → -panelHeight
|
|
17
|
+
* - G → jump to maxOffset
|
|
18
|
+
*
|
|
19
|
+
* `j`/`k` are intentionally not handled here because they are field-navigation
|
|
20
|
+
* keys in the editor. `g` (single-tap) and `gg` (double-tap → jump to 0) are handled separately
|
|
21
|
+
* by the caller via a pending-flag ref, since they need transient state.
|
|
22
|
+
*/
|
|
23
|
+
export type ScrollKeyState = {
|
|
24
|
+
upArrow?: boolean;
|
|
25
|
+
downArrow?: boolean;
|
|
26
|
+
pageUp?: boolean;
|
|
27
|
+
pageDown?: boolean;
|
|
28
|
+
ctrl?: boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare function computeNextScrollOffset(current: number, input: string, key: ScrollKeyState, totalLines: number, panelHeight: number): number | null;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
import type { HistorySnapshot } from './history.js';
|
|
3
|
+
import type { CdfReviewEntry, ReviewComponentStatus, TokenReviewToken } from './types.js';
|
|
4
|
+
export type ReviewSessionLoadResult<TExtra = undefined> = {
|
|
5
|
+
entries: CdfReviewEntry[];
|
|
6
|
+
tokens: TokenReviewToken[];
|
|
7
|
+
error: string | null;
|
|
8
|
+
extra?: TExtra;
|
|
9
|
+
};
|
|
10
|
+
export type ReviewSessionLoaderOptions<TExtra = undefined> = {
|
|
11
|
+
extractSessionId: string;
|
|
12
|
+
tokenSessionId?: string | null;
|
|
13
|
+
loadExtra?: (db: DatabaseSync, sessionId: string) => TExtra;
|
|
14
|
+
sortEntries: (entries: CdfReviewEntry[], extra: TExtra | undefined) => CdfReviewEntry[];
|
|
15
|
+
};
|
|
16
|
+
export declare function loadReviewSessionState<TExtra = undefined>({ extractSessionId, tokenSessionId, loadExtra, sortEntries, }: ReviewSessionLoaderOptions<TExtra>): ReviewSessionLoadResult<TExtra>;
|
|
17
|
+
export declare function createReviewHistorySnapshot(components: CdfReviewEntry[], options?: {
|
|
18
|
+
autoRejected?: readonly string[];
|
|
19
|
+
undoSnapshot?: ReadonlyMap<string, ReviewComponentStatus> | null;
|
|
20
|
+
}): HistorySnapshot;
|
|
21
|
+
export type ReviewFinalizeCounts = {
|
|
22
|
+
accepted: number;
|
|
23
|
+
rejected: number;
|
|
24
|
+
unresolved: number;
|
|
25
|
+
};
|
|
26
|
+
export declare function finalizeReviewSession(extractSessionId: string, components: CdfReviewEntry[]): ReviewFinalizeCounts;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CDFComponentEntry } from '@contentful/experience-design-system-types';
|
|
2
|
+
import type { TokenPropSuggestion, TokenReviewToken } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Design-token props on `entry` with a declared token kind. `paths` is the
|
|
5
|
+
* full compatible token universe when a token catalog is available; `allowed`
|
|
6
|
+
* remains the current subset.
|
|
7
|
+
*/
|
|
8
|
+
export declare function collectTokenSuggestions(entry: CDFComponentEntry, availableTokens?: TokenReviewToken[]): TokenPropSuggestion[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CDFComponentEntry } from '@contentful/experience-design-system-types';
|
|
2
|
+
export type ReviewComponentStatus = 'needs-review' | 'reviewed' | 'accepted' | 'rejected';
|
|
3
|
+
export type CdfReviewEntry = {
|
|
4
|
+
key: string;
|
|
5
|
+
entry: CDFComponentEntry;
|
|
6
|
+
status: ReviewComponentStatus;
|
|
7
|
+
};
|
|
8
|
+
export type ReviewPanel = 'none' | 'prop-rationale' | 'component-rationale' | 'source' | 'token-review';
|
|
9
|
+
export type TokenReviewToken = {
|
|
10
|
+
path: string;
|
|
11
|
+
kind: string;
|
|
12
|
+
};
|
|
13
|
+
export type TokenPropSuggestion = {
|
|
14
|
+
propName: string;
|
|
15
|
+
paths: string[];
|
|
16
|
+
suggested: string[];
|
|
17
|
+
allowed: string[];
|
|
18
|
+
};
|
|
19
|
+
export type PreviewAnnotation = 'new' | 'changed' | 'removed' | 'breaking';
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import type { CdfReviewEntry } from './useReviewSession.js';
|
|
4
|
-
export type ReviewPanel = 'none' | 'prop-rationale' | 'component-rationale' | 'source' | 'token-review';
|
|
2
|
+
import type { CdfReviewEntry, ReviewPanel, TokenPropSuggestion, TokenReviewToken } from './types.js';
|
|
5
3
|
type UseReviewEditorOptions = {
|
|
6
4
|
components: CdfReviewEntry[];
|
|
7
5
|
selectedIdx: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComponentTypeSummary, ServerPreviewResponse } from '@contentful/experience-design-system-types';
|
|
2
|
-
import type { PreviewAnnotation } from '
|
|
3
|
-
import { type UseLivePreviewReturn } from '
|
|
2
|
+
import type { PreviewAnnotation } from './types.js';
|
|
3
|
+
import { type UseLivePreviewReturn } from './use-live-preview.js';
|
|
4
4
|
export type UseReviewPreviewOptions = {
|
|
5
5
|
components: ReadonlyArray<{
|
|
6
6
|
key: string;
|
|
@@ -1,28 +1,8 @@
|
|
|
1
|
-
import type { DatabaseSync } from 'node:sqlite';
|
|
2
1
|
import { type Dispatch, type SetStateAction } from 'react';
|
|
3
|
-
import type
|
|
4
|
-
import { type
|
|
5
|
-
import { type
|
|
6
|
-
import type {
|
|
7
|
-
import { type HistorySnapshot } from '../history.js';
|
|
8
|
-
export type CdfReviewEntry = {
|
|
9
|
-
key: string;
|
|
10
|
-
entry: CDFComponentEntry;
|
|
11
|
-
status: ReviewComponentStatus;
|
|
12
|
-
};
|
|
13
|
-
export type ReviewSessionLoadResult<TExtra = undefined> = {
|
|
14
|
-
entries: CdfReviewEntry[];
|
|
15
|
-
tokens: TokenReviewToken[];
|
|
16
|
-
error: string | null;
|
|
17
|
-
extra?: TExtra;
|
|
18
|
-
};
|
|
19
|
-
export type ReviewSessionLoaderOptions<TExtra = undefined> = {
|
|
20
|
-
extractSessionId: string;
|
|
21
|
-
tokenSessionId?: string | null;
|
|
22
|
-
loadExtra?: (db: DatabaseSync, sessionId: string) => TExtra;
|
|
23
|
-
sortEntries: (entries: CdfReviewEntry[], extra: TExtra | undefined) => CdfReviewEntry[];
|
|
24
|
-
};
|
|
25
|
-
export declare function loadReviewSessionState<TExtra = undefined>({ extractSessionId, tokenSessionId, loadExtra, sortEntries, }: ReviewSessionLoaderOptions<TExtra>): ReviewSessionLoadResult<TExtra>;
|
|
2
|
+
import { type ComponentRationale, type ComponentReviewMetadata } from '@contentful/experience-design-system-backend-pipeline';
|
|
3
|
+
import { type HistorySnapshot } from './history.js';
|
|
4
|
+
import { type ReviewSessionLoadResult } from './session.js';
|
|
5
|
+
import type { CdfReviewEntry, TokenReviewToken } from './types.js';
|
|
26
6
|
type UseReviewSessionOptions<TExtra> = {
|
|
27
7
|
loadSession: () => ReviewSessionLoadResult<TExtra>;
|
|
28
8
|
tokensPath?: string;
|
|
@@ -46,10 +26,6 @@ export declare function useReviewMetadata({ components, selectedIdx, extractSess
|
|
|
46
26
|
reviewMetadata: ComponentReviewMetadata | null;
|
|
47
27
|
componentRationale: ComponentRationale | null;
|
|
48
28
|
};
|
|
49
|
-
export declare function createReviewHistorySnapshot(components: CdfReviewEntry[], options?: {
|
|
50
|
-
autoRejected?: readonly string[];
|
|
51
|
-
undoSnapshot?: ReadonlyMap<string, ReviewComponentStatus> | null;
|
|
52
|
-
}): HistorySnapshot;
|
|
53
29
|
type UseReviewHistoryOptions = {
|
|
54
30
|
loading: boolean;
|
|
55
31
|
components: CdfReviewEntry[];
|
|
@@ -65,12 +41,6 @@ export declare function useReviewHistory({ loading, components, createSnapshot,
|
|
|
65
41
|
handleRedo: () => void;
|
|
66
42
|
resetHistory: (snapshot: HistorySnapshot) => void;
|
|
67
43
|
};
|
|
68
|
-
export type ReviewFinalizeCounts = {
|
|
69
|
-
accepted: number;
|
|
70
|
-
rejected: number;
|
|
71
|
-
unresolved: number;
|
|
72
|
-
};
|
|
73
|
-
export declare function finalizeReviewSession(extractSessionId: string, components: CdfReviewEntry[]): ReviewFinalizeCounts;
|
|
74
44
|
export type UseReviewFinalizeOptions = {
|
|
75
45
|
showFinalize: boolean;
|
|
76
46
|
extractSessionId: string;
|
|
@@ -89,7 +59,7 @@ export type UseReviewFinalizeOptions = {
|
|
|
89
59
|
* final counts back to the wizard.
|
|
90
60
|
*/
|
|
91
61
|
export declare function useReviewFinalize({ showFinalize, extractSessionId, tokensPath, spaceId, environmentId, cmaToken, host, components, onFinalize, }: UseReviewFinalizeOptions): {
|
|
92
|
-
finalizePreview: import("
|
|
62
|
+
finalizePreview: import("./use-finalize-preview.js").UseFinalizePreviewReturn;
|
|
93
63
|
handleFinalizeConfirm: () => void;
|
|
94
64
|
};
|
|
95
65
|
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ImportHandoff } from '@contentful/experience-design-system-types/handoff';
|
|
2
|
+
import type { ExtractionInput } from '../../06-extraction/types.js';
|
|
3
|
+
import type { FlowStart } from './controller.js';
|
|
4
|
+
interface SavedCredentials {
|
|
5
|
+
spaceId?: string;
|
|
6
|
+
environmentId?: string;
|
|
7
|
+
cmaToken?: string;
|
|
8
|
+
host?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* What the flow starts from. The credentials are the ones the user confirmed. When they skipped validation there are none
|
|
12
|
+
* to use, so the saved ones stand in, which is what the wizard did: it always read them from the store. The review's
|
|
13
|
+
* live preview and the push use them.
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildFlowStart(input: {
|
|
16
|
+
extraction: ExtractionInput;
|
|
17
|
+
handoff: ImportHandoff;
|
|
18
|
+
saved?: SavedCredentials;
|
|
19
|
+
generatePromptPath?: string;
|
|
20
|
+
}): FlowStart;
|
|
21
|
+
export {};
|