/** * Shipment Tracking Types */ export interface Carrier { id: string name: string url: string logo: string } export interface TrackingItem { carrier: string tracking_number: string date_shipped: string custom_url?: string added_at: string carrier_name?: string tracking_url?: string } export interface TrackedOrder { id: number number: string status: string date: string customer: string email: string total: string tracking_items: TrackingItem[] } export interface TrackingSettings { enabled: boolean default_carrier: string enabled_carriers: string[] tracking_page_id: number show_in_order_email: boolean show_in_my_account: boolean send_tracking_email: boolean auto_complete_order: boolean email_subject: string email_heading: string email_content: string // Form content form_title: string form_description: string button_text: string // Form appearance (legacy — kept for backward compat) primary_color: string text_color: string background_color: string // Appearance customization customization: TrackingFormCustomization } export interface TrackingFormCustomization { // Colors formBackground: string formBorderColor: string titleColor: string descriptionColor: string labelColor: string inputBackground: string inputBorderColor: string inputFocusBorderColor: string inputTextColor: string buttonBackground: string buttonTextColor: string buttonHoverBackground: string // Typography fontFamily: string titleFontSize: number titleFontWeight: string descriptionFontSize: number labelFontSize: number labelFontWeight: string inputFontSize: number buttonFontSize: number buttonFontWeight: string // Spacing & Dimensions formBorderRadius: number formPadding: number inputBorderRadius: number inputPadding: number buttonBorderRadius: number buttonPadding: number fieldSpacing: number // Layout formMaxWidth: number formAlignment: 'left' | 'center' | 'right' titleAlignment: 'left' | 'center' | 'right' } export interface TrackingAnalytics { total_tracked_orders: number period: string top_carriers: { id: string name: string count: number }[] carrier_counts: Record chart_data: { date: string count: number }[] } export interface TrackingResult { order_id: number order_number: string order_status: string tracking_items: TrackingItem[] } export const defaultCustomization: TrackingFormCustomization = { // Colors formBackground: '#f9fafb', formBorderColor: '#e5e7eb', titleColor: '#111827', descriptionColor: '#6b7280', labelColor: '#374151', inputBackground: '#ffffff', inputBorderColor: '#d1d5db', inputFocusBorderColor: '#2563eb', inputTextColor: '#111827', buttonBackground: '#2563eb', buttonTextColor: '#ffffff', buttonHoverBackground: '#1d4ed8', // Typography fontFamily: '', titleFontSize: 22, titleFontWeight: '600', descriptionFontSize: 14, labelFontSize: 14, labelFontWeight: '500', inputFontSize: 15, buttonFontSize: 16, buttonFontWeight: '600', // Spacing & Dimensions formBorderRadius: 12, formPadding: 32, inputBorderRadius: 8, inputPadding: 12, buttonBorderRadius: 8, buttonPadding: 14, fieldSpacing: 20, // Layout formMaxWidth: 500, formAlignment: 'center', titleAlignment: 'center', } export interface QuickStartPreset { id: string label: string color: string customization: Partial } export const quickStartPresets: QuickStartPreset[] = [ { id: 'brand', label: 'Brand', color: '#002269', customization: { buttonBackground: '#002269', buttonHoverBackground: '#153372', inputFocusBorderColor: '#002269', }, }, { id: 'dark', label: 'Dark', color: '#18181b', customization: { formBackground: '#18181b', formBorderColor: '#27272a', titleColor: '#fafafa', descriptionColor: '#a1a1aa', labelColor: '#d4d4d8', inputBackground: '#27272a', inputBorderColor: '#3f3f46', inputFocusBorderColor: '#a1a1aa', inputTextColor: '#fafafa', buttonBackground: '#fafafa', buttonTextColor: '#18181b', buttonHoverBackground: '#e4e4e7', }, }, { id: 'bold', label: 'Bold', color: '#dc2626', customization: { buttonBackground: '#dc2626', buttonHoverBackground: '#b91c1c', inputFocusBorderColor: '#dc2626', }, }, ] export const DEFAULT_SETTINGS: TrackingSettings = { enabled: true, default_carrier: 'custom', enabled_carriers: [], tracking_page_id: 0, show_in_order_email: true, show_in_my_account: true, send_tracking_email: true, auto_complete_order: false, email_subject: 'Your order has shipped!', email_heading: 'Your order is on its way', email_content: 'Good news! Your order #{order_number} has been shipped. You can track your package using the tracking information below.', form_title: 'Track Your Order', form_description: 'Enter your tracking number below to see the delivery status of your order.', button_text: 'Track Shipment', primary_color: '#2563eb', text_color: '#1f2937', background_color: '#f9fafb', customization: { ...defaultCustomization }, }