Ctrl K
ComunidadGuías…

lib/changelog-types.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import type { Locale } from "@/i18n/config";

export type ChangelogIllustrationName =
  | "shield" | "board" | "assistant" | "pages" | "connections" | "activity" | "desktop"
  | "smart-fill" | "smart-assign" | "microphone" | "relations" | "pull-request"
  | "tabs" | "triage" | "providers" | "performance" | "merge" | "deadline";

export type ChangelogIllustration =
  | { kind: "code"; name: ChangelogIllustrationName }
  | { kind: "icon"; name: ChangelogIllustrationName }
  | { kind: "image"; url: string; width: number; height: number };

export interface FeatureCopy {
  title: string;
  summary: string;
  details: string[];
}
export interface ChangelogFeature {
  id: string;
  illustration: ChangelogIllustration;
  copy: Record<Locale, FeatureCopy>;
}
export interface ChangelogDraft {
  version: string;
  layout: "compact" | "bento";
  copy: Record<Locale, { title: string; summary: string }>;
  features: ChangelogFeature[];
  evidence: { commits: string[]; issues: string[] };
}
export interface ChangelogRelease extends ChangelogDraft {
  publishedAt: string;
  sha: string;
  deploymentId: number;
}
export type ChangelogIndexEntry = Pick<ChangelogRelease,
  "version" | "layout" | "copy" | "publishedAt" | "sha" | "deploymentId"> & { featureIds: string[] };
export interface ChangelogFeatureSummary {
  id: string;
  title: string;
  illustration: ChangelogIllustration;
  details: string[];
}
export interface ChangelogReleaseSummary {
  version: string;
  publishedAt: string;
  layout: "compact" | "bento";
  title: string;
  summary: string;
  features: ChangelogFeatureSummary[];
}
export interface ChangelogPageContent {
  releases: ChangelogReleaseSummary[];
  next: string | null;
}
export interface ChangelogFeatureDetail extends ChangelogFeatureSummary {
  version: string;
}
export interface ChangelogLabels {
  more: string;
  loading: string;
  error: string;
  retry: string;
  details: string;
}