@contentful/experience-design-system-cli 2.37.1-dev-build-ef8b693f.0 → 2.37.1-dev-build-a7704a7f.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.js +262 -261
- package/dist/index.js +394 -467
- package/dist/package.json +1 -1
- package/dist/src/tui/home/home.theme.d.ts +8 -0
- package/dist/src/tui/import/steps/07-scope-gate/sidebar/theme.d.ts +6 -6
- package/dist/src/tui/import/steps/09-review/theme.d.ts +9 -0
- package/{legacy/dist/src/analyze/select/tui → dist/src/tui/import/steps/10-flow}/theme.d.ts +2 -7
- package/package.json +3 -3
- package/dist/src/commands/forwarded.d.ts +0 -2
- package/dist/src/legacy/forwarded-import-args.d.ts +0 -1
- package/dist/src/legacy/legacy-cli-path.d.ts +0 -1
- package/dist/src/legacy/run-legacy.d.ts +0 -1
- package/dist/src/tui/theme.d.ts +0 -19
- package/legacy/bin/cli.js +0 -58
- package/legacy/dist/package.json +0 -76
- package/legacy/dist/src/analytics/exit.d.ts +0 -4
- package/legacy/dist/src/analytics/index.d.ts +0 -3
- package/legacy/dist/src/analyze/composite-closure.d.ts +0 -26
- package/legacy/dist/src/analyze/composition/apply-mapping.d.ts +0 -22
- package/legacy/dist/src/analyze/composition/candidate-files.d.ts +0 -34
- package/legacy/dist/src/analyze/composition/composition-cache-key.d.ts +0 -18
- package/legacy/dist/src/analyze/composition/interchange-schema.d.ts +0 -17
- package/legacy/dist/src/analyze/composition/manifest-doc-evidence.d.ts +0 -49
- package/legacy/dist/src/analyze/composition/merge-edges.d.ts +0 -19
- package/legacy/dist/src/analyze/composition/parse-map-edges.d.ts +0 -16
- package/legacy/dist/src/analyze/composition/prompt-loader.d.ts +0 -3
- package/legacy/dist/src/analyze/composition/resolve-mapping-cli.d.ts +0 -10
- package/legacy/dist/src/analyze/composition/resolve-mapping.d.ts +0 -59
- package/legacy/dist/src/analyze/cycle-detection.d.ts +0 -27
- package/legacy/dist/src/analyze/extract-command.d.ts +0 -7
- package/legacy/dist/src/analyze/fuzzy-search.d.ts +0 -3
- package/legacy/dist/src/analyze/issue-inheritance.d.ts +0 -8
- package/legacy/dist/src/analyze/lineage.d.ts +0 -29
- package/legacy/dist/src/analyze/search-neighborhood.d.ts +0 -3
- package/legacy/dist/src/analyze/select/command.d.ts +0 -27
- package/legacy/dist/src/analyze/select/parser.d.ts +0 -6
- package/legacy/dist/src/analyze/select/persistence.d.ts +0 -22
- package/legacy/dist/src/analyze/select/preview-annotations.d.ts +0 -26
- package/legacy/dist/src/analyze/select/tui/LegacySelectApp.d.ts +0 -8
- package/legacy/dist/src/analyze/select/tui/components/ComponentDetail.d.ts +0 -19
- package/legacy/dist/src/analyze/select/tui/components/ComponentRationalePanel.d.ts +0 -10
- package/legacy/dist/src/analyze/select/tui/components/FieldEditor.d.ts +0 -67
- package/legacy/dist/src/analyze/select/tui/components/FinalizeDialog.d.ts +0 -22
- package/legacy/dist/src/analyze/select/tui/components/GotoBanner.d.ts +0 -31
- package/legacy/dist/src/analyze/select/tui/components/GroupedSidebar.d.ts +0 -94
- package/legacy/dist/src/analyze/select/tui/components/HelpOverlay.d.ts +0 -21
- package/legacy/dist/src/analyze/select/tui/components/HighlightedLine.d.ts +0 -9
- package/legacy/dist/src/analyze/select/tui/components/JsonEditor.d.ts +0 -10
- package/legacy/dist/src/analyze/select/tui/components/JsonPanel.d.ts +0 -11
- package/legacy/dist/src/analyze/select/tui/components/PreviewSummaryBar.d.ts +0 -8
- package/legacy/dist/src/analyze/select/tui/components/QuitDialog.d.ts +0 -8
- package/legacy/dist/src/analyze/select/tui/components/RationaleLine.d.ts +0 -21
- package/legacy/dist/src/analyze/select/tui/components/RationalePanel.d.ts +0 -15
- package/legacy/dist/src/analyze/select/tui/components/ScrollablePanel.d.ts +0 -14
- package/legacy/dist/src/analyze/select/tui/components/Sidebar.d.ts +0 -29
- package/legacy/dist/src/analyze/select/tui/components/SourcePanel.d.ts +0 -11
- package/legacy/dist/src/analyze/select/tui/components/StatusBar.d.ts +0 -11
- package/legacy/dist/src/analyze/select/tui/components/TokenReviewPanel.d.ts +0 -30
- package/legacy/dist/src/analyze/select/tui/components/TopBar.d.ts +0 -10
- package/legacy/dist/src/analyze/select/tui/components/removed-components-text.d.ts +0 -7
- package/legacy/dist/src/analyze/select/tui/components/wrap-text.d.ts +0 -1
- package/legacy/dist/src/analyze/select/tui/hooks/list-scroll-input.d.ts +0 -13
- package/legacy/dist/src/analyze/select/tui/hooks/scroll-offset.d.ts +0 -30
- package/legacy/dist/src/analyze/select/tui/hooks/useImmediateInput.d.ts +0 -19
- package/legacy/dist/src/analyze/select/tui/hooks/useKeymap.d.ts +0 -24
- package/legacy/dist/src/analyze/select/tui/hooks/useSession.d.ts +0 -19
- package/legacy/dist/src/analyze/select/tui/hooks/useUndo.d.ts +0 -8
- package/legacy/dist/src/analyze/select/types.d.ts +0 -54
- package/legacy/dist/src/analyze/selection-cascade.d.ts +0 -3
- package/legacy/dist/src/analyze/slot-graph.d.ts +0 -11
- package/legacy/dist/src/apply/api-client.d.ts +0 -64
- package/legacy/dist/src/apply/command.d.ts +0 -43
- package/legacy/dist/src/apply/preview-utils.d.ts +0 -12
- package/legacy/dist/src/apply/tokens.d.ts +0 -1
- package/legacy/dist/src/apply/tui/ServerApplyView.d.ts +0 -34
- package/legacy/dist/src/apply/tui/ServerPreviewView.d.ts +0 -9
- package/legacy/dist/src/credentials-store.d.ts +0 -18
- package/legacy/dist/src/doctor/checks.d.ts +0 -5
- package/legacy/dist/src/doctor/command.d.ts +0 -2
- package/legacy/dist/src/doctor/report.d.ts +0 -7
- package/legacy/dist/src/generate/command.d.ts +0 -2
- package/legacy/dist/src/generate/tui/GenerateView.d.ts +0 -12
- package/legacy/dist/src/helpers/build-contentful-management-client.d.ts +0 -7
- package/legacy/dist/src/helpers/fetch-and-persist-existing-contentful-entities.d.ts +0 -29
- package/legacy/dist/src/helpers/fetch-existing-contentful-entities.d.ts +0 -11
- package/legacy/dist/src/helpers/find-nearly-matching-component.d.ts +0 -7
- package/legacy/dist/src/helpers/read-existing-contentful-entities-from-session.d.ts +0 -7
- package/legacy/dist/src/helpers/summarize-existing-contentful-entities.d.ts +0 -50
- package/legacy/dist/src/host-utils.d.ts +0 -3
- package/legacy/dist/src/index.d.ts +0 -1
- package/legacy/dist/src/index.js +0 -25165
- package/legacy/dist/src/lib/agent-definitions.d.ts +0 -14
- package/legacy/dist/src/lib/agent-model-options.d.ts +0 -15
- package/legacy/dist/src/lib/agent-output.d.ts +0 -5
- package/legacy/dist/src/lib/cli-errors.d.ts +0 -2
- package/legacy/dist/src/lib/cli-path.d.ts +0 -4
- package/legacy/dist/src/lib/command-options.d.ts +0 -3
- package/legacy/dist/src/lib/component-patch.d.ts +0 -12
- package/legacy/dist/src/lib/contentful-urls.d.ts +0 -15
- package/legacy/dist/src/lib/debug-logger.d.ts +0 -39
- package/legacy/dist/src/lib/debug-preamble.d.ts +0 -7
- package/legacy/dist/src/lib/error-parser.d.ts +0 -40
- package/legacy/dist/src/lib/path-exists.d.ts +0 -1
- package/legacy/dist/src/lib/prompt-overrides.d.ts +0 -38
- package/legacy/dist/src/lib/terminal-capabilities.d.ts +0 -29
- package/legacy/dist/src/lib/user-agent.d.ts +0 -7
- package/legacy/dist/src/map-tokens/apply.d.ts +0 -12
- package/legacy/dist/src/map-tokens/command.d.ts +0 -2
- package/legacy/dist/src/map-tokens/resolve-defaults.d.ts +0 -32
- package/legacy/dist/src/map-tokens/tui/MapTokensView.d.ts +0 -13
- package/legacy/dist/src/output/format.d.ts +0 -23
- package/legacy/dist/src/print/command.d.ts +0 -11
- package/legacy/dist/src/print/validate/tui/ValidateView.d.ts +0 -15
- package/legacy/dist/src/print/validate/validators/cdf-validator.d.ts +0 -2
- package/legacy/dist/src/print/validate/validators/dtcg-validator.d.ts +0 -2
- package/legacy/dist/src/print/validate/validators/format-errors.d.ts +0 -12
- package/legacy/dist/src/print/validate/validators/read-json-file.d.ts +0 -10
- package/legacy/dist/src/program.d.ts +0 -25
- package/legacy/dist/src/runs/fingerprint.d.ts +0 -36
- package/legacy/dist/src/runs/save-path-resolver.d.ts +0 -11
- package/legacy/dist/src/runs/store.d.ts +0 -65
- package/legacy/dist/src/session/cache-keys.d.ts +0 -22
- package/legacy/dist/src/session/core/cdf/cdf-mappers.d.ts +0 -3
- package/legacy/dist/src/session/core/components/derive-component-id.d.ts +0 -1
- package/legacy/dist/src/session/core/components/hash-component-shape.d.ts +0 -5
- package/legacy/dist/src/session/core/shared/index-rows-by-key.d.ts +0 -1
- package/legacy/dist/src/session/core/tokens/build-dtcg-groups.d.ts +0 -12
- package/legacy/dist/src/session/core/tokens/build-dtcg-tokens.d.ts +0 -3
- package/legacy/dist/src/session/core/tokens/hash-token-content.d.ts +0 -1
- package/legacy/dist/src/session/db.d.ts +0 -200
- package/legacy/dist/src/session/migration.d.ts +0 -2
- package/legacy/dist/src/session/repositories/sessions/read.d.ts +0 -11
- package/legacy/dist/src/session/repositories/sessions/write.d.ts +0 -3
- package/legacy/dist/src/session/repositories/shared/with-transaction.d.ts +0 -2
- package/legacy/dist/src/session/repositories/steps/read.d.ts +0 -2
- package/legacy/dist/src/session/repositories/steps/write.d.ts +0 -5
- package/legacy/dist/src/session/repositories/tokens/read.d.ts +0 -15
- package/legacy/dist/src/session/repositories/tokens/write.d.ts +0 -16
- package/legacy/dist/src/session/resolve-session-id.d.ts +0 -1
- package/legacy/dist/src/session/services/session-resolver.d.ts +0 -9
- package/legacy/dist/src/session/services/tokens/apply-tool-calls.d.ts +0 -8
- package/legacy/dist/src/session/services/tokens/replace-raw-prop-token-paths.d.ts +0 -3
- package/legacy/dist/src/session/services/tokens/replace-raw-token-name-paths.d.ts +0 -3
- package/legacy/dist/src/session/services/tokens/store-dtcg-tokens.d.ts +0 -3
- package/legacy/dist/src/session/session-id.d.ts +0 -1
- package/legacy/dist/src/session/source-excerpt.d.ts +0 -26
- package/legacy/dist/src/setup/SetupScreen.d.ts +0 -28
- package/legacy/dist/src/setup/SetupStepper.d.ts +0 -7
- package/legacy/dist/src/setup/command.d.ts +0 -3
- package/legacy/dist/src/setup/lib/checks.d.ts +0 -57
- package/legacy/dist/src/setup/lib/shell.d.ts +0 -12
- package/legacy/dist/src/setup/steps/CodingAgentScreen.d.ts +0 -20
- package/legacy/dist/src/setup/steps/ContentfulCredentialsScreen.d.ts +0 -11
- package/legacy/dist/src/setup/steps/StepLayout.d.ts +0 -20
- package/legacy/dist/src/setup/steps/preferences/AnalyticsScreen.d.ts +0 -5
- package/legacy/dist/src/setup/steps/preferences/BooleanInput.d.ts +0 -21
- package/legacy/dist/src/setup/steps/preferences/ColorPreferenceScreen.d.ts +0 -5
- package/legacy/dist/src/setup/steps/preferences/CustomPromptScreen.d.ts +0 -14
- package/legacy/dist/src/setup/steps/preferences/DebugLogsScreen.d.ts +0 -5
- package/legacy/dist/src/setup/steps/preferences/PreferencesMenu.d.ts +0 -26
- package/legacy/dist/src/setup/steps/prerequisites/PrerequisitesScreen.d.ts +0 -16
- package/legacy/dist/src/setup/steps/prerequisites/build.d.ts +0 -2
- package/legacy/dist/src/setup/steps/prerequisites/deps.d.ts +0 -33
- package/legacy/dist/src/setup/steps/prerequisites/index.d.ts +0 -4
- package/legacy/dist/src/setup/steps/prerequisites/node.d.ts +0 -2
- package/legacy/dist/src/setup/steps/prerequisites/pnpm.d.ts +0 -2
- package/legacy/dist/src/tui/CommandCompletionView.d.ts +0 -13
- package/legacy/dist/src/tui/render-with-goodbye.d.ts +0 -7
- package/legacy/dist/src/tui/use-terminal-size.d.ts +0 -6
- package/legacy/dist/src/tui/windowed-panel.d.ts +0 -37
- package/legacy/dist/src/types.d.ts +0 -2
- package/legacy/package.json +0 -85
- package/legacy/prompts/composition-edges.md +0 -11
- package/legacy/skills/generate-components.md +0 -612
- package/legacy/skills/generate-tokens.md +0 -194
- package/legacy/skills/map-tokens.md +0 -102
- package/legacy/skills/select-components.md +0 -235
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { ReviewSessionSnapshot } from './types.js';
|
|
2
|
-
import type { PreviewValidationError } from '../../apply/api-client.js';
|
|
3
|
-
/**
|
|
4
|
-
* Load components from the pipeline DB and re-run extraction validation.
|
|
5
|
-
*
|
|
6
|
-
* `validationIssues` is intentionally not persisted (the validator is pure
|
|
7
|
-
* and cheap to re-run), so any cold-start of the review state needs to
|
|
8
|
-
* recompute it before building the review snapshot.
|
|
9
|
-
*/
|
|
10
|
-
export declare function loadAndValidateForReview(sessionId: string, projectRoot: string | undefined): Promise<ReviewSessionSnapshot>;
|
|
11
|
-
/**
|
|
12
|
-
* Synthesize SERVER_VALIDATION_FAILED issues onto the review state file's
|
|
13
|
-
* matching components for the wizard's 422 recovery path.
|
|
14
|
-
*/
|
|
15
|
-
export declare function patchReviewStateWithValidationErrors(sessionId: string, errors: PreviewValidationError[], opts?: {
|
|
16
|
-
artifactsRoot?: string;
|
|
17
|
-
}): Promise<{
|
|
18
|
-
patchedNames: string[];
|
|
19
|
-
missingNames: string[];
|
|
20
|
-
}>;
|
|
21
|
-
/**
|
|
22
|
-
* Exclude components whose names appear in `names` from the next preview/push.
|
|
23
|
-
* Used by the wizard's "skip and retry" path after a 422.
|
|
24
|
-
*/
|
|
25
|
-
export declare function rejectComponentsByName(sessionId: string, names: string[], opts?: {
|
|
26
|
-
artifactsRoot?: string;
|
|
27
|
-
}): Promise<void>;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { RawComponentDefinition } from '../../types.js';
|
|
2
|
-
import type { ReviewSessionSnapshot } from './types.js';
|
|
3
|
-
export type LoadReviewInputOptions = {
|
|
4
|
-
reviewRoot?: string;
|
|
5
|
-
};
|
|
6
|
-
export declare function loadReviewInput(components: RawComponentDefinition[], options?: LoadReviewInputOptions): Promise<ReviewSessionSnapshot>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { DatabaseSync } from 'node:sqlite';
|
|
2
|
-
import type { ReviewSessionPaths, ReviewSessionSnapshot } from './types.js';
|
|
3
|
-
export declare function getRefineArtifactsRoot(): string;
|
|
4
|
-
export declare function getRefineSessionPaths(sessionId: string, artifactsRoot: string): Promise<ReviewSessionPaths>;
|
|
5
|
-
export declare function saveReviewState(statePath: string, session: ReviewSessionSnapshot): Promise<void>;
|
|
6
|
-
export declare function appendReviewEvent(eventsPath: string, event: {
|
|
7
|
-
type: string;
|
|
8
|
-
payload: Record<string, unknown>;
|
|
9
|
-
}): Promise<void>;
|
|
10
|
-
export declare function ensureRefineSession(sessionId: string, artifactsRoot: string, initialSnapshot: ReviewSessionSnapshot): Promise<ReviewSessionSnapshot>;
|
|
11
|
-
/**
|
|
12
|
-
* Persist scope-gate decisions to `current-review-state.json` so downstream
|
|
13
|
-
* consumers (notably `loadAcceptedNames` in `generate components`) can filter
|
|
14
|
-
* out rejected components. The wizard's scope-gate doesn't drive the rich
|
|
15
|
-
* `analyze select` TUI, so fields that file consumes (resolvedSourcePath,
|
|
16
|
-
* sourceCode) are populated with safe placeholders. Only `name` and `status`
|
|
17
|
-
* matter for `loadAcceptedNames`.
|
|
18
|
-
*/
|
|
19
|
-
export declare function writeScopeDecisionsSnapshot(db: DatabaseSync, sessionId: string, decisions: {
|
|
20
|
-
accepted: string[];
|
|
21
|
-
rejected: string[];
|
|
22
|
-
}): Promise<void>;
|
|
@@ -1,26 +0,0 @@
|
|
|
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,19 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { PreviewAnnotation, ReviewComponentDetail } from '../../types.js';
|
|
3
|
-
type ComponentDetailProps = {
|
|
4
|
-
component: ReviewComponentDetail;
|
|
5
|
-
sourceCode: string | null;
|
|
6
|
-
draftValue: string;
|
|
7
|
-
editMode: boolean;
|
|
8
|
-
sourceVisible: boolean;
|
|
9
|
-
jsonScrollOffset: number;
|
|
10
|
-
sourceScrollX: number;
|
|
11
|
-
sourceScrollY: number;
|
|
12
|
-
terminalWidth: number;
|
|
13
|
-
previewAnnotation?: PreviewAnnotation;
|
|
14
|
-
onSaveDraft: (value: string) => void;
|
|
15
|
-
onDiscardDraft: () => void;
|
|
16
|
-
onScrollChange: (offset: number) => void;
|
|
17
|
-
};
|
|
18
|
-
export declare function ComponentDetail({ component, sourceCode, draftValue, editMode, sourceVisible, jsonScrollOffset, sourceScrollX, sourceScrollY, terminalWidth, previewAnnotation, onSaveDraft, onDiscardDraft, }: ComponentDetailProps): React.ReactElement;
|
|
19
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { ComponentRationale } from '../../../../session/db.js';
|
|
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;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { findSlotCycles, type ComponentSlotInfo } from '../../../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 {};
|
|
@@ -1,22 +0,0 @@
|
|
|
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 {};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface GotoRow {
|
|
3
|
-
label: string;
|
|
4
|
-
jumpTarget: string;
|
|
5
|
-
kind?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface GotoBannerProps {
|
|
8
|
-
title: string;
|
|
9
|
-
rows: GotoRow[];
|
|
10
|
-
/** Index used to highlight + window. Indexes `rows` directly by default. */
|
|
11
|
-
cursor: number;
|
|
12
|
-
/**
|
|
13
|
-
* Override the row index the cursor sits on, when `cursor` indexes a subset
|
|
14
|
-
* (e.g. a jumpable projection) rather than `rows`. Windowing and the default
|
|
15
|
-
* highlight center on this instead of `cursor` when provided.
|
|
16
|
-
*/
|
|
17
|
-
cursorRowIndex?: number;
|
|
18
|
-
/** Max rows rendered at once. Larger lists window around the cursor. */
|
|
19
|
-
maxRows?: number;
|
|
20
|
-
/** Constrain the box to a fixed column width (e.g. the sidebar slot). */
|
|
21
|
-
width?: number;
|
|
22
|
-
/** Footer keybinding hint. Rendered dim below the list when given. */
|
|
23
|
-
footerHint?: string;
|
|
24
|
-
/**
|
|
25
|
-
* Escape hatch for feature-specific row rendering. Receives the row, its
|
|
26
|
-
* index into `rows`, and whether the cursor is on it. Falls back to a
|
|
27
|
-
* generic pointer row.
|
|
28
|
-
*/
|
|
29
|
-
renderRow?: (row: GotoRow, index: number, isCursor: boolean) => React.ReactElement;
|
|
30
|
-
}
|
|
31
|
-
export declare function GotoBanner({ title, rows, cursor, cursorRowIndex, maxRows, width, footerHint, renderRow, }: GotoBannerProps): React.ReactElement;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { CDFComponentEntry } from '@contentful/experience-design-system-types';
|
|
3
|
-
import { type ComponentGraphNode, type NodeStatus } from '../../../composite-closure.js';
|
|
4
|
-
import type { RenderStatus } from '../../../issue-inheritance.js';
|
|
5
|
-
import type { PreviewAnnotation } from '../../types.js';
|
|
6
|
-
export interface GroupedSidebarItem {
|
|
7
|
-
key: string;
|
|
8
|
-
entry: CDFComponentEntry;
|
|
9
|
-
status: NodeStatus;
|
|
10
|
-
}
|
|
11
|
-
export interface GroupedSidebarProps {
|
|
12
|
-
items: GroupedSidebarItem[];
|
|
13
|
-
cycleParticipants?: Set<string>;
|
|
14
|
-
selectedIdx: number;
|
|
15
|
-
selectedRowIdx?: number;
|
|
16
|
-
onSelect: (idx: number) => void;
|
|
17
|
-
expandedGroups: Set<string>;
|
|
18
|
-
onToggleExpanded: (rootName: string) => void;
|
|
19
|
-
width: number;
|
|
20
|
-
height?: number;
|
|
21
|
-
title?: string;
|
|
22
|
-
wrapLabels?: boolean;
|
|
23
|
-
focused: boolean;
|
|
24
|
-
renderStatusByKey?: Map<string, RenderStatus>;
|
|
25
|
-
previewAnnotationByKey?: Map<string, PreviewAnnotation>;
|
|
26
|
-
scrollOffset?: number;
|
|
27
|
-
visibleCount?: number;
|
|
28
|
-
alwaysExpanded?: boolean;
|
|
29
|
-
showFlatTier?: boolean;
|
|
30
|
-
selectionStateByKey?: Map<string, 'accepted' | 'rejected' | 'undecided'>;
|
|
31
|
-
aiFlaggedByKey?: Map<string, boolean>;
|
|
32
|
-
dimPredicate?: (componentKey: string) => boolean;
|
|
33
|
-
viewMode?: 'grouped' | 'flat';
|
|
34
|
-
visibleRows?: VisibleRow[];
|
|
35
|
-
graph: ComponentGraphNode[];
|
|
36
|
-
filterVisibleKeys?: Set<string>;
|
|
37
|
-
}
|
|
38
|
-
type RowKind = 'cycle' | 'empty' | 'group-root' | 'group-child' | 'standalone' | 'flat' | 'flat-header';
|
|
39
|
-
export interface VisibleRow {
|
|
40
|
-
kind: RowKind;
|
|
41
|
-
key: string;
|
|
42
|
-
label: string;
|
|
43
|
-
indent: number;
|
|
44
|
-
aggregateGlyph?: string | null;
|
|
45
|
-
sharedSuffix?: boolean;
|
|
46
|
-
cycleChild?: boolean;
|
|
47
|
-
itemIdx: number;
|
|
48
|
-
rootName?: string;
|
|
49
|
-
}
|
|
50
|
-
export declare function buildVisibleRows(props: {
|
|
51
|
-
items: GroupedSidebarItem[];
|
|
52
|
-
cycleParticipants: Set<string>;
|
|
53
|
-
expandedGroups: Set<string>;
|
|
54
|
-
alwaysExpanded?: boolean;
|
|
55
|
-
showFlatTier?: boolean;
|
|
56
|
-
viewMode?: 'grouped' | 'flat';
|
|
57
|
-
graph: ComponentGraphNode[];
|
|
58
|
-
filterVisibleKeys?: Set<string>;
|
|
59
|
-
}): VisibleRow[];
|
|
60
|
-
export declare function visibleItemOrder(props: {
|
|
61
|
-
items: GroupedSidebarItem[];
|
|
62
|
-
cycleParticipants: Set<string>;
|
|
63
|
-
expandedGroups: Set<string>;
|
|
64
|
-
alwaysExpanded?: boolean;
|
|
65
|
-
showFlatTier?: boolean;
|
|
66
|
-
graph: ComponentGraphNode[];
|
|
67
|
-
}): number[];
|
|
68
|
-
export declare function labelStyleFor(input: {
|
|
69
|
-
row: VisibleRow;
|
|
70
|
-
isCursor: boolean;
|
|
71
|
-
wouldDim: boolean;
|
|
72
|
-
}): {
|
|
73
|
-
color: string | undefined;
|
|
74
|
-
bold: boolean;
|
|
75
|
-
dim: boolean;
|
|
76
|
-
};
|
|
77
|
-
export declare function selectionGlyphStyleFor(selState: 'accepted' | 'rejected' | 'undecided' | undefined, isCycleRow: boolean): {
|
|
78
|
-
glyph: string | null;
|
|
79
|
-
color: string | undefined;
|
|
80
|
-
dim: boolean;
|
|
81
|
-
bold: boolean;
|
|
82
|
-
};
|
|
83
|
-
export declare function inheritanceGlyphStyleFor(input: {
|
|
84
|
-
status: RenderStatus['status'] | undefined;
|
|
85
|
-
isOwn: boolean;
|
|
86
|
-
isCursor: boolean;
|
|
87
|
-
}): {
|
|
88
|
-
glyph: string | null;
|
|
89
|
-
color: string | undefined;
|
|
90
|
-
dim: boolean;
|
|
91
|
-
bold: boolean;
|
|
92
|
-
};
|
|
93
|
-
export declare function GroupedSidebar(props: GroupedSidebarProps): React.ReactElement;
|
|
94
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type HelpSection = {
|
|
3
|
-
title: string;
|
|
4
|
-
entries: {
|
|
5
|
-
keys: string;
|
|
6
|
-
label: string;
|
|
7
|
-
}[];
|
|
8
|
-
};
|
|
9
|
-
type HelpOverlayProps = {
|
|
10
|
-
mode: 'analyze' | 'validate' | 'review';
|
|
11
|
-
sections?: undefined;
|
|
12
|
-
onClose: () => void;
|
|
13
|
-
handleInput?: boolean;
|
|
14
|
-
} | {
|
|
15
|
-
mode?: undefined;
|
|
16
|
-
sections: HelpSection[];
|
|
17
|
-
onClose: () => void;
|
|
18
|
-
handleInput?: boolean;
|
|
19
|
-
};
|
|
20
|
-
export declare function HelpOverlay(props: HelpOverlayProps): React.ReactElement;
|
|
21
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
type JsonEditorProps = {
|
|
3
|
-
value: string;
|
|
4
|
-
width: number;
|
|
5
|
-
height: number;
|
|
6
|
-
onSave: (value: string) => void;
|
|
7
|
-
onDiscard: () => void;
|
|
8
|
-
};
|
|
9
|
-
export declare function JsonEditor({ value, width, height, onSave, onDiscard }: JsonEditorProps): React.ReactElement;
|
|
10
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
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,8 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { ServerPreviewResponse } from '@contentful/experience-design-system-types';
|
|
3
|
-
type PreviewSummaryBarProps = {
|
|
4
|
-
preview: ServerPreviewResponse | null;
|
|
5
|
-
loading: boolean;
|
|
6
|
-
};
|
|
7
|
-
export declare function PreviewSummaryBar({ preview, loading }: PreviewSummaryBarProps): React.ReactElement;
|
|
8
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
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 {};
|
|
@@ -1,21 +0,0 @@
|
|
|
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;
|
|
@@ -1,15 +0,0 @@
|
|
|
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,14 +0,0 @@
|
|
|
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 {};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { PreviewAnnotation, ReviewComponentSummary, ReviewComponentStatus } from '../../types.js';
|
|
3
|
-
export declare function previewBadge(annotation: PreviewAnnotation | undefined): PreviewBadgeValue | null;
|
|
4
|
-
export type PreviewBadgeValue = {
|
|
5
|
-
char: string;
|
|
6
|
-
color: string;
|
|
7
|
-
bold?: boolean;
|
|
8
|
-
dim?: boolean;
|
|
9
|
-
};
|
|
10
|
-
export declare function PreviewBadge({ badge, highlighted, }: {
|
|
11
|
-
badge: PreviewBadgeValue | null;
|
|
12
|
-
highlighted?: boolean;
|
|
13
|
-
}): React.ReactElement;
|
|
14
|
-
type SidebarProps = {
|
|
15
|
-
components: ReviewComponentSummary[];
|
|
16
|
-
selectedId: string | null;
|
|
17
|
-
focused: boolean;
|
|
18
|
-
scrollOffset: number;
|
|
19
|
-
visibleCount: number;
|
|
20
|
-
onSelect: (id: string) => void;
|
|
21
|
-
onScrollChange: (offset: number) => void;
|
|
22
|
-
collapsed?: boolean;
|
|
23
|
-
width?: number;
|
|
24
|
-
};
|
|
25
|
-
export declare function statusIcon(status: ReviewComponentStatus, validationErrorCount: number, _validationWarningCount: number): string;
|
|
26
|
-
export declare function statusColor(status: ReviewComponentStatus, validationErrorCount: number, validationWarningCount: number): string;
|
|
27
|
-
export declare function sortComponentsForSidebar(components: ReviewComponentSummary[]): ReviewComponentSummary[];
|
|
28
|
-
export declare function Sidebar({ components, selectedId, focused, scrollOffset, visibleCount, collapsed, width: widthProp, }: SidebarProps): React.ReactElement;
|
|
29
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
type SourcePanelProps = {
|
|
3
|
-
sourceCode: string | null;
|
|
4
|
-
filePath: string;
|
|
5
|
-
width: number;
|
|
6
|
-
height: number;
|
|
7
|
-
scrollX: number;
|
|
8
|
-
scrollY: number;
|
|
9
|
-
};
|
|
10
|
-
export declare function SourcePanel({ sourceCode, filePath, width, height, scrollX, scrollY, }: SourcePanelProps): React.ReactElement;
|
|
11
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
type StatusBarProps = {
|
|
3
|
-
accepted: number;
|
|
4
|
-
rejected: number;
|
|
5
|
-
reviewed: number;
|
|
6
|
-
needsReview: number;
|
|
7
|
-
onApproveAll: () => void;
|
|
8
|
-
onFinalize: () => void;
|
|
9
|
-
};
|
|
10
|
-
export declare function StatusBar({ accepted, rejected, reviewed, needsReview }: StatusBarProps): React.ReactElement;
|
|
11
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
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;
|
|
@@ -1,7 +0,0 @@
|
|
|
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;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function wrapText(text: string, innerWidth: number): string[];
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
type ListScrollKey = {
|
|
2
|
-
upArrow: boolean;
|
|
3
|
-
downArrow: boolean;
|
|
4
|
-
return: boolean;
|
|
5
|
-
};
|
|
6
|
-
type ListScrollOptions = {
|
|
7
|
-
onExit: () => void;
|
|
8
|
-
onScroll: (update: number | ((current: number) => number)) => void;
|
|
9
|
-
maxOffset?: number;
|
|
10
|
-
endOffset: number;
|
|
11
|
-
};
|
|
12
|
-
export declare function handleListScrollInput(input: string, key: ListScrollKey, { onExit, onScroll, maxOffset, endOffset }: ListScrollOptions): boolean;
|
|
13
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
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;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export type ImmediateInputKey = {
|
|
2
|
-
upArrow: boolean;
|
|
3
|
-
downArrow: boolean;
|
|
4
|
-
leftArrow: boolean;
|
|
5
|
-
rightArrow: boolean;
|
|
6
|
-
pageDown: boolean;
|
|
7
|
-
pageUp: boolean;
|
|
8
|
-
return: boolean;
|
|
9
|
-
escape: boolean;
|
|
10
|
-
ctrl: boolean;
|
|
11
|
-
shift: boolean;
|
|
12
|
-
tab: boolean;
|
|
13
|
-
shiftTab: boolean;
|
|
14
|
-
backspace: boolean;
|
|
15
|
-
delete: boolean;
|
|
16
|
-
meta: boolean;
|
|
17
|
-
};
|
|
18
|
-
export type ImmediateInputHandler = (input: string, key: ImmediateInputKey) => void;
|
|
19
|
-
export declare function useImmediateInput(handler: ImmediateInputHandler, enabled?: boolean): void;
|