File size: 3,033 Bytes
5ca475a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
// This file is intentionally left blank as the types from the previous version are no longer needed.
// New types will be defined locally within components where they are used.
export interface MixedStyle {
name: string;
percentage: number;
}
export interface RegionalityData {
country: string;
city: string;
neighborhood: string;
weight: number;
}
export interface BrandData {
name: string;
slogan: string;
weight: number; // Percentage of influence
}
export type TextPosition = 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top-right';
export type SubtitleOutlineStyle = 'auto' | 'white' | 'black' | 'soft_shadow' | 'transparent_box';
// Renamed and enhanced for new styling capabilities
export interface CompositionPreset {
id: string;
name: string;
icon: React.FC<React.SVGProps<SVGSVGElement>>;
config: {
style: {
name: 'fill' | 'stroke' | 'fill-stroke' | 'gradient-on-block' | 'vertical';
palette: 'light' | 'dark' | 'complementary' | 'analogous';
background?: {
color: string; // e.g., 'rgba(0,0,0,0.5)'
padding: number; // as a factor of font size
};
forcedStroke?: string;
};
rotation: boolean;
subtitle: boolean;
};
}
// --- Price Tag Types ---
export type PriceTagPosition = 'none' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
export type PriceTagStyleId = 'circle' | 'tag' | 'burst';
export type PriceTagColor = 'red' | 'yellow' | 'blue' | 'black';
export interface PriceData {
text: string;
modelText: string;
style: PriceTagStyleId;
position: PriceTagPosition;
color: PriceTagColor;
}
// --- Marketing Suite Types ---
export interface GoogleAd {
headlines: string[];
descriptions: string[];
}
export interface FacebookAd {
primaryText: string;
headline: string;
description: string;
}
export interface AdCopy {
google: GoogleAd;
facebook: FacebookAd;
strategyTip: string;
}
export interface AdIdea {
conceptName: string;
headline: string;
primaryText: string;
replicabilityTip: string;
}
export interface AdTrendAnalysis {
trendOverview: string;
adIdeas: AdIdea[];
hashtags: string[];
}
export interface BrandConcept {
name: string;
philosophy: string;
visualStyle: string;
keywords: string[];
}
export interface FeatureDetails {
title: string;
description: string;
}
// Interface to consolidate all generation parameters into a single object
export interface GenerateOptions {
basePrompt: string;
imagePrompt: string;
textOverlay: string;
compositionId: string;
textPosition: TextPosition;
subtitleOutline: SubtitleOutlineStyle;
artStyles: string[];
theme: string;
brandData: BrandData;
priceData: PriceData;
negativeImagePrompt?: string;
numberOfImages: number;
scenario?: 'product' | 'couple' | 'family' | 'isometric_details' | 'poster' | 'carousel_cta' | 'carousel_educational' | 'carousel_trend' | 'executive_project';
concept?: BrandConcept;
} |