@contentful/experience-design-system-cli 2.37.1-dev-build-ef8b693f.0 → 2.37.1-dev-build-7314a760.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/index.js +68 -142
- package/dist/package.json +1 -1
- 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/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/tui/theme.d.ts +0 -18
- 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,4 +0,0 @@
|
|
|
1
|
-
import { type CommandFailure } from '@contentful/experience-design-system-backend-pipeline';
|
|
2
|
-
import type { ApiError } from '../apply/api-client.js';
|
|
3
|
-
export declare function exitWithAnalytics(code: number, fields?: CommandFailure): Promise<never>;
|
|
4
|
-
export declare function failureFromApiError(error: ApiError): CommandFailure;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { bindAnalyticsSessionId, completeActiveCommand, emitSessionStarted, enrichCommandResult, failActiveCommand, flushAnalytics, isPipelineAnalyticsChild, noteCommandStart, recordApplyOutcome, recordContentfulContext, setCliVersion, setPersistedAnalyticsDisabled, } from '@contentful/experience-design-system-backend-pipeline';
|
|
2
|
-
export type { CommandFailure } from '@contentful/experience-design-system-backend-pipeline';
|
|
3
|
-
export { exitWithAnalytics, failureFromApiError } from './exit.js';
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export interface ComponentGraphNode {
|
|
2
|
-
name: string;
|
|
3
|
-
slots: Array<{
|
|
4
|
-
name: string;
|
|
5
|
-
allowedComponents?: string[];
|
|
6
|
-
}>;
|
|
7
|
-
}
|
|
8
|
-
interface ClosureNode {
|
|
9
|
-
name: string;
|
|
10
|
-
depth: number;
|
|
11
|
-
path: string[];
|
|
12
|
-
parents: string[];
|
|
13
|
-
}
|
|
14
|
-
export interface Closure {
|
|
15
|
-
root: string;
|
|
16
|
-
nodes: ClosureNode[];
|
|
17
|
-
containsCycle: boolean;
|
|
18
|
-
cyclePath?: string[];
|
|
19
|
-
}
|
|
20
|
-
export type NodeStatus = 'ok' | 'warning' | 'error';
|
|
21
|
-
export declare function findRoots(components: ComponentGraphNode[], selected?: Set<string>): string[];
|
|
22
|
-
export declare function computeClosure(root: string, components: ComponentGraphNode[]): Closure;
|
|
23
|
-
export declare function computeAllClosures(components: ComponentGraphNode[], selected?: Set<string>): Map<string, Closure>;
|
|
24
|
-
export declare function aggregateStatus(closure: Closure, perNodeStatus: Map<string, NodeStatus>): NodeStatus;
|
|
25
|
-
export declare function findSharedDeps(closures: Map<string, Closure>): Map<string, string[]>;
|
|
26
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { RawComponentDefinition } from '../../types.js';
|
|
2
|
-
import type { CompositionEdge } from './interchange-schema.js';
|
|
3
|
-
export type ApplyMappingResult = {
|
|
4
|
-
components: RawComponentDefinition[];
|
|
5
|
-
warnings: string[];
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Enrichment pass (spec T7): merge a resolved composition edge list into the
|
|
9
|
-
* extracted components' `allowedComponents`. Runs AFTER extraction; it is the
|
|
10
|
-
* mapping resolver's entire job — populating the one field every downstream
|
|
11
|
-
* graph consumer reads.
|
|
12
|
-
*
|
|
13
|
-
* Slot targeting:
|
|
14
|
-
* - edge.slot present + slot exists → write there.
|
|
15
|
-
* - edge.slot present + slot missing → synthesize for high-trust
|
|
16
|
-
* (typed-slot / adapter) edges; drop-and-warn for `agent` edges.
|
|
17
|
-
* - edge.slot absent → default slot (isDefault), synthesized if none exists.
|
|
18
|
-
*
|
|
19
|
-
* Edges naming unknown parents/children are dropped-and-warned (§1.3). Inputs
|
|
20
|
-
* are not mutated; a deep-enough clone of touched slots is returned.
|
|
21
|
-
*/
|
|
22
|
-
export declare function applyMapping(components: RawComponentDefinition[], edges: CompositionEdge[]): ApplyMappingResult;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
export declare const CANDIDATE_NAME_PATTERNS: RegExp[];
|
|
2
|
-
export declare const CANDIDATE_CONTENT_MARKERS: string[];
|
|
3
|
-
export declare const CANDIDATE_TOKEN_BUDGET = 6000;
|
|
4
|
-
/**
|
|
5
|
-
* Token ceiling for the candidate set INLINED into a single agent prompt.
|
|
6
|
-
* Sized to stay under a 200k-context model once the agent's own system prompt
|
|
7
|
-
* + tool definitions (~105k observed) are added, so a large design system
|
|
8
|
-
* (hundreds of components → many matched files) can't overflow the request and
|
|
9
|
-
* fail resolution. Files beyond the budget are dropped (with a warning), not
|
|
10
|
-
* silently truncated. Distinct from `CANDIDATE_TOKEN_BUDGET`, which sizes the
|
|
11
|
-
* unused per-batch chunking.
|
|
12
|
-
*/
|
|
13
|
-
export declare const PROMPT_CANDIDATE_TOKEN_BUDGET = 80000;
|
|
14
|
-
export type CandidateFile = {
|
|
15
|
-
path: string;
|
|
16
|
-
content: string;
|
|
17
|
-
};
|
|
18
|
-
export type SelectedCandidate = CandidateFile & {
|
|
19
|
-
reason: string;
|
|
20
|
-
};
|
|
21
|
-
export declare function selectCandidateFiles(files: CandidateFile[]): SelectedCandidate[];
|
|
22
|
-
/**
|
|
23
|
-
* Cap a candidate set to what fits in a single agent prompt (see
|
|
24
|
-
* `PROMPT_CANDIDATE_TOKEN_BUDGET`). Files are kept smallest-first so the budget
|
|
25
|
-
* admits the most declarations; deterministic tie-break by path. Returns the
|
|
26
|
-
* kept files plus the paths dropped so the caller can warn (silent truncation
|
|
27
|
-
* would read as "resolved everything" when it didn't).
|
|
28
|
-
*/
|
|
29
|
-
export declare function capCandidatesToPromptBudget<T extends CandidateFile>(files: T[], budget?: number): {
|
|
30
|
-
kept: T[];
|
|
31
|
-
dropped: T[];
|
|
32
|
-
};
|
|
33
|
-
export declare function sliceDeclarationRegions(content: string, markers?: string[], window?: number): string[];
|
|
34
|
-
export declare function batchCandidates(files: CandidateFile[], budget?: number): CandidateFile[][];
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Derive the `input_hash` for a composition-cache entry (stored in the pipeline
|
|
3
|
-
* DB's `composition_cache` table). Content-addresses the candidate file set
|
|
4
|
-
* (order-independent) plus the producing agent, so a re-run over unchanged
|
|
5
|
-
* files reuses the (token-costly) agent output.
|
|
6
|
-
*
|
|
7
|
-
* Content-hashing — not mtime — means a no-op `git checkout` that only bumps
|
|
8
|
-
* mtime is still a hit. Prompt/skill changes are handled by the `cli_version`
|
|
9
|
-
* column on the row (see `getCliCacheVersion`), so no separate resolver-version
|
|
10
|
-
* constant is needed here.
|
|
11
|
-
*/
|
|
12
|
-
export declare function buildCompositionInputHash(input: {
|
|
13
|
-
files: Array<{
|
|
14
|
-
path: string;
|
|
15
|
-
content: string;
|
|
16
|
-
}>;
|
|
17
|
-
agent: string;
|
|
18
|
-
}): string;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The CLI-owned composition interchange format (spec T1).
|
|
3
|
-
*
|
|
4
|
-
* `CompositionEdge[]` is the flat internal runtime view, one edge per
|
|
5
|
-
* parent→child relationship, carrying optional `slot` (T7), `confidence`,
|
|
6
|
-
* and `provenance`. It is easier to merge and dedupe across sources (T2).
|
|
7
|
-
*/
|
|
8
|
-
export type EdgeProvenance = 'typed-slot' | 'structural' | 'manifest' | 'doc' | `adapter:${string}` | 'agent';
|
|
9
|
-
export type CompositionEdge = {
|
|
10
|
-
parent: string;
|
|
11
|
-
child: string;
|
|
12
|
-
/** Optional named slot (T7). Default slot when omitted. */
|
|
13
|
-
slot?: string;
|
|
14
|
-
/** 1–5 scale, same as select/reject agent tools. */
|
|
15
|
-
confidence?: number;
|
|
16
|
-
provenance: EdgeProvenance;
|
|
17
|
-
};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { CompositionEdge } from './interchange-schema.js';
|
|
2
|
-
type CandidateFile = {
|
|
3
|
-
path: string;
|
|
4
|
-
content: string;
|
|
5
|
-
};
|
|
6
|
-
type ComponentRef = {
|
|
7
|
-
name: string;
|
|
8
|
-
sourcePath?: string;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Prompt-injection safeguard for this signal: both parsers below are plain
|
|
12
|
-
* deterministic code, never an LLM prompt. `manifest.json`/`AGENTS.md`
|
|
13
|
-
* content is attacker-adjacent (Figma-authored / free-form prose respectively)
|
|
14
|
-
* but it only ever flows through JSON field access and a fixed regex, then is
|
|
15
|
-
* validated against the real `componentNames` allowlist before an edge is
|
|
16
|
-
* emitted — there is no path from this file's content to model instructions.
|
|
17
|
-
*/
|
|
18
|
-
/** Figma/manifest names are kebab-case (`blue-accordion-item`); React exports are PascalCase. */
|
|
19
|
-
export declare function kebabToPascal(name: string): string;
|
|
20
|
-
/**
|
|
21
|
-
* Deterministic parse of a Figma-exported `manifest.json` — no LLM involved.
|
|
22
|
-
* Schema (confirmed against a real design-system manifest):
|
|
23
|
-
* { component: { name: "blue-accordion" },
|
|
24
|
-
* variantsMeta: { componentPropertyDefinitions: {
|
|
25
|
-
* "Slot#1533:33": { type: "SLOT", preferredValues: [{ name: "blue-accordion-item" }] }
|
|
26
|
-
* } } }
|
|
27
|
-
* The manifest's own `component.name` identifies its owning/parent component
|
|
28
|
-
* (more robust than inferring from directory proximity, since manifest.json
|
|
29
|
-
* typically lives one level below the component's source file, e.g. in a
|
|
30
|
-
* sibling `design/` directory).
|
|
31
|
-
*/
|
|
32
|
-
export declare function collectManifestEdges(files: CandidateFile[], componentNames: ReadonlySet<string>): CompositionEdge[];
|
|
33
|
-
/**
|
|
34
|
-
* Deterministic parse of a component-level `AGENTS.md` — no LLM involved.
|
|
35
|
-
* Only a bold-backtick component mention (`` **`ComponentName`** ``) on a
|
|
36
|
-
* line that ALSO carries a composition keyword is accepted, e.g. "Direct
|
|
37
|
-
* **`AccordionItem`** children only." A bare cross-reference mention (no
|
|
38
|
-
* composition keyword on the same line, e.g. "see `other-component`") is
|
|
39
|
-
* rejected — it isn't asserting a parent-child relationship.
|
|
40
|
-
*
|
|
41
|
-
* The doc's owning component is resolved by directory colocation: the
|
|
42
|
-
* component whose `sourcePath` sits in the same directory as the doc file
|
|
43
|
-
* (the real-world convention — `<component>/AGENTS.md` next to
|
|
44
|
-
* `<component>/Component.tsx`).
|
|
45
|
-
*/
|
|
46
|
-
export declare function collectAgentsDocEdges(files: CandidateFile[], components: ComponentRef[], componentNames: ReadonlySet<string>): CompositionEdge[];
|
|
47
|
-
/** Both deterministic sources, combined for the `extraEdges` wiring in command.ts. */
|
|
48
|
-
export declare function collectManifestDocEdges(files: CandidateFile[], components: ComponentRef[], componentNames: ReadonlySet<string>): CompositionEdge[];
|
|
49
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { CompositionEdge, EdgeProvenance } from './interchange-schema.js';
|
|
2
|
-
export type EdgeConflict = {
|
|
3
|
-
parent: string;
|
|
4
|
-
child: string;
|
|
5
|
-
winner: EdgeProvenance;
|
|
6
|
-
loser: EdgeProvenance;
|
|
7
|
-
};
|
|
8
|
-
export type MergeResult = {
|
|
9
|
-
edges: CompositionEdge[];
|
|
10
|
-
conflicts: EdgeConflict[];
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Union all edges, resolving conflicts by provenance rank. A conflict is two
|
|
14
|
-
* edges that share `parent::child` but disagree on existence-detail (here:
|
|
15
|
-
* slot placement). The higher-ranked edge wins; the loser is recorded (never
|
|
16
|
-
* silently dropped) so the review UI can surface it. Identical edges (same
|
|
17
|
-
* parent/child/slot) collapse to the highest-ranked copy with no conflict.
|
|
18
|
-
*/
|
|
19
|
-
export declare function mergeEdges(all: CompositionEdge[]): MergeResult;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { CompositionEdge } from './interchange-schema.js';
|
|
2
|
-
/**
|
|
3
|
-
* Lenient JSONL parser for the composition-mapping agent's tool-call output
|
|
4
|
-
* (spec T4). Mirrors `parseSelectToolCallLines` / `parseToolCallLines` in
|
|
5
|
-
* `@contentful/experience-design-system-generation`'s `agent-runner.ts`: one JSON object per line, each with a `tool`
|
|
6
|
-
* field from a fixed allowlist. A line that fails JSON.parse or validation is
|
|
7
|
-
* DROPPED into `warnings[]` (with a reason) and parsing CONTINUES — no retry,
|
|
8
|
-
* no throw. Non-`{` prose and blank lines are skipped silently.
|
|
9
|
-
*/
|
|
10
|
-
export type ParseMapEdgesResult = {
|
|
11
|
-
edges: CompositionEdge[];
|
|
12
|
-
warnings: string[];
|
|
13
|
-
};
|
|
14
|
-
export declare function parseMapEdges(raw: string, opts: {
|
|
15
|
-
componentNames: Set<string>;
|
|
16
|
-
}): ParseMapEdgesResult;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export type CompositionCliOptions = {
|
|
2
|
-
/** `--composition-refresh` — force edge emission to run even over resolved residue. */
|
|
3
|
-
compositionRefresh?: boolean;
|
|
4
|
-
/** `--no-cache` — force the composition agent to rerun with the rest of the pipeline. */
|
|
5
|
-
noCache?: boolean;
|
|
6
|
-
};
|
|
7
|
-
export type ResolvedCompositionSources = {
|
|
8
|
-
forceAgent: boolean;
|
|
9
|
-
};
|
|
10
|
-
export declare function resolveCompositionSources(opts: CompositionCliOptions): ResolvedCompositionSources;
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import type { RawComponentDefinition } from '../../types.js';
|
|
2
|
-
import type { CompositionEdge } from './interchange-schema.js';
|
|
3
|
-
import { type EdgeConflict } from './merge-edges.js';
|
|
4
|
-
export type ResolveMappingResult = {
|
|
5
|
-
components: RawComponentDefinition[];
|
|
6
|
-
edges: CompositionEdge[];
|
|
7
|
-
conflicts: EdgeConflict[];
|
|
8
|
-
warnings: string[];
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Orchestrate composition-edge acquisition and enrichment.
|
|
12
|
-
*
|
|
13
|
-
* Sources by rank: typed-slot / "code slots" (2) > structural usage evidence
|
|
14
|
-
* (3) > manifest (4) > doc (5) > adapter-resolved / extraEdges (6) >
|
|
15
|
-
* edge-emitting agent (7). Manifest/doc edges are computed deterministically outside
|
|
16
|
-
* this function (see manifest-doc-evidence.ts) and joined via `extraEdges`.
|
|
17
|
-
* ALL sources — including the code slots already on the incoming components —
|
|
18
|
-
* are fed into one ranked merge and unioned; non-conflicting edges from every
|
|
19
|
-
* source survive, and on a conflict (same parent+child, different slot) the
|
|
20
|
-
* higher-rank source wins and the loser is recorded. The edge-emitting agent runs only when
|
|
21
|
-
* `forceAgent` is set OR there is residue a higher-rank source
|
|
22
|
-
* didn't cover (routing/cost optimization) — `forceAgent` bypasses that
|
|
23
|
-
* suppression but never changes rank.
|
|
24
|
-
*
|
|
25
|
-
* `runAgentFn` is injected (returns the agent's raw stdout) so this is
|
|
26
|
-
* testable without spawning a subprocess.
|
|
27
|
-
*/
|
|
28
|
-
export declare function resolveMapping(input: {
|
|
29
|
-
components: RawComponentDefinition[];
|
|
30
|
-
forceAgent?: boolean;
|
|
31
|
-
files: Array<{
|
|
32
|
-
path: string;
|
|
33
|
-
content: string;
|
|
34
|
-
}>;
|
|
35
|
-
runAgentFn: (opts: {
|
|
36
|
-
prompt: string;
|
|
37
|
-
files: Array<{
|
|
38
|
-
path: string;
|
|
39
|
-
content: string;
|
|
40
|
-
}>;
|
|
41
|
-
}) => Promise<string>;
|
|
42
|
-
buildPrompt?: (files: Array<{
|
|
43
|
-
path: string;
|
|
44
|
-
content: string;
|
|
45
|
-
}>, componentNames: string[]) => string;
|
|
46
|
-
/**
|
|
47
|
-
* Custom instruction preamble (from `--prompt composition=...`). Replaces the
|
|
48
|
-
* default guidance line ONLY; the machine-readable output contract + the
|
|
49
|
-
* component-name allowlist + candidate files are always appended so the
|
|
50
|
-
* JSONL parser keeps working regardless of the override.
|
|
51
|
-
*/
|
|
52
|
-
promptOverride?: string;
|
|
53
|
-
/**
|
|
54
|
-
* Pre-resolved edges from an external source (e.g. manifest or documentation)
|
|
55
|
-
* path). They join the ranked merge at their own provenance rank alongside
|
|
56
|
-
* code slots and other automatic mapping sources.
|
|
57
|
-
*/
|
|
58
|
-
extraEdges?: CompositionEdge[];
|
|
59
|
-
}): Promise<ResolveMappingResult>;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/** A directed edge in the slot-dependency graph. */
|
|
2
|
-
export interface SlotEdge {
|
|
3
|
-
fromComponent: string;
|
|
4
|
-
slotName: string;
|
|
5
|
-
toComponent: string;
|
|
6
|
-
}
|
|
7
|
-
/** A single elementary cycle, with `path[0] === path[path.length - 1]`. */
|
|
8
|
-
export interface SlotCycle {
|
|
9
|
-
path: string[];
|
|
10
|
-
edges: SlotEdge[];
|
|
11
|
-
}
|
|
12
|
-
/** Input shape mirroring the slot definition on CDFComponentEntry. */
|
|
13
|
-
export interface ComponentSlotInfo {
|
|
14
|
-
name: string;
|
|
15
|
-
slots: Array<{
|
|
16
|
-
name: string;
|
|
17
|
-
allowedComponents?: string[];
|
|
18
|
-
}>;
|
|
19
|
-
}
|
|
20
|
-
export declare function findSlotCycles(components: ComponentSlotInfo[]): SlotCycle[];
|
|
21
|
-
export declare function suggestCycleBreakEdge(cycle: SlotCycle, allCycles: SlotCycle[]): SlotEdge;
|
|
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[];
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { Command } from 'commander';
|
|
2
|
-
export declare function resolveExtractNoCache(opts: {
|
|
3
|
-
cache?: boolean;
|
|
4
|
-
noCache?: boolean;
|
|
5
|
-
}): boolean;
|
|
6
|
-
export declare function collectSourceFiles(directory: string, onProgress?: (scannedCount: number) => void): Promise<string[]>;
|
|
7
|
-
export declare function registerInternalExtractCommand(program: Command): void;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Closure, NodeStatus } from './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;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { ComponentGraphNode } from './composite-closure.js';
|
|
2
|
-
export interface LineageParentEdge {
|
|
3
|
-
parent: string;
|
|
4
|
-
slotName: string;
|
|
5
|
-
}
|
|
6
|
-
export interface LineageEdge {
|
|
7
|
-
from: string;
|
|
8
|
-
slotName: string;
|
|
9
|
-
to: string;
|
|
10
|
-
}
|
|
11
|
-
export type LineageChain = LineageEdge[];
|
|
12
|
-
export declare function findDirectParents(target: string, components: ComponentGraphNode[]): LineageParentEdge[];
|
|
13
|
-
export declare function findAllAncestors(target: string, components: ComponentGraphNode[]): Set<string>;
|
|
14
|
-
export declare function findAllAncestorChains(target: string, components: ComponentGraphNode[]): LineageChain[];
|
|
15
|
-
export interface AncestorTreeNode {
|
|
16
|
-
name: string;
|
|
17
|
-
incomingSlotName?: string;
|
|
18
|
-
depth: number;
|
|
19
|
-
shared: boolean;
|
|
20
|
-
cycle: boolean;
|
|
21
|
-
parents: AncestorTreeNode[];
|
|
22
|
-
}
|
|
23
|
-
export declare function buildAncestorTree(target: string, components: ComponentGraphNode[]): AncestorTreeNode;
|
|
24
|
-
export interface AncestorTreeLine {
|
|
25
|
-
text: string;
|
|
26
|
-
jumpTarget?: string;
|
|
27
|
-
depth: number;
|
|
28
|
-
}
|
|
29
|
-
export declare function renderAncestorTree(node: AncestorTreeNode): AncestorTreeLine[];
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { ComponentGraphNode } from './composite-closure.js';
|
|
2
|
-
export declare function computeDirectNeighborhood(matches: Iterable<string>, graph: ComponentGraphNode[]): Set<string>;
|
|
3
|
-
export declare function findAllAncestors(target: string, graph: ComponentGraphNode[]): Set<string>;
|
|
@@ -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;
|