58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
// AUTO-GENERATED by contracts/typegen/generator.ts, do not edit.
|
|
// Run `bun run typegen <project>` to update this file.
|
|
|
|
import type { Minify } from "./minify.ts";
|
|
|
|
export interface ViewProps {
|
|
"modules/app/views/feature": {
|
|
title: string;
|
|
nav: { id: string; label: string; href: string; active?: boolean }[];
|
|
albums: {
|
|
id: string;
|
|
name: string;
|
|
cover: string;
|
|
tracks: { title: string; duration: string }[];
|
|
}[];
|
|
ribbonStyle?: string;
|
|
label: string;
|
|
prose: string | null;
|
|
features: { label: string; href: string }[];
|
|
current?: string;
|
|
};
|
|
"modules/app/views/index": {
|
|
title: string;
|
|
nav: { id: string; label: string; href: string; active?: boolean }[];
|
|
albums: {
|
|
id: string;
|
|
name: string;
|
|
cover: string;
|
|
tracks: { title: string; duration: string }[];
|
|
}[];
|
|
ribbonStyle?: string;
|
|
intro: { id: string; label: string; note: string; tint: string }[];
|
|
features: { label: string; href: string }[];
|
|
};
|
|
"modules/app/views/layout": Record<string, never>;
|
|
"modules/app/views/navbar": {
|
|
nav: {
|
|
id: string;
|
|
label: string;
|
|
href: string;
|
|
active?: boolean;
|
|
detail: string;
|
|
}[];
|
|
albums: {
|
|
id: string;
|
|
name: string;
|
|
date: string;
|
|
cover: string;
|
|
tracks: { title: string; duration: string }[];
|
|
}[];
|
|
};
|
|
}
|
|
|
|
/** Path of a view of the project. */
|
|
export type ViewPath = keyof ViewProps;
|
|
|
|
/** Props of a single view. */
|
|
export type ViewPropsOf<P extends ViewPath> = Minify<ViewProps[P]>;
|