schema([ Section::make('Solutions Section') ->description('Manage the content for the solutions section on the homepage.') ->icon('heroicon-o-puzzle-piece') ->schema([ TextInput::make('solutions_subtitle') ->label('Subtitle') ->required() ->maxLength(100), TextInput::make('solutions_header') ->label('Header') ->required() ->maxLength(255), FileUpload::make('solutions_image') ->label('Image 1060x453') ->image() ->directory('solutions') ->required(), Grid::make()->schema([ TextInput::make('solutions_button_text') ->label('Button Text') ->required() ->maxLength(50), TextInput::make('solutions_button_url') ->label('Button URL') ->required() ->maxLength(255) ->url(), ])->columns(2), ]), Section::make('Solution Items') ->description('Manage individual solution items.') ->icon('heroicon-o-cube') ->schema([ Repeater::make('solution_items') ->label('Solution Items') ->schema([ Select::make('icon_class') ->label('Icon Class') ->searchable() ->helperText('e.g., flaticon-it-department. Refer to Flaticon for available icons.') ->required() ->options(self::getIconOptions()), TextInput::make('title') ->label('Title') ->required() ->maxLength(100), TextInput::make('link') ->label('Link') ->required() ->maxLength(255) ->url(), ]) ->columns(3) ->minItems(1) ->maxItems(6) ->defaultItems(3) ->grid(2) ->reorderable() ->collapsible(), ]), ]) ->columns(1) ->statePath('data'); } private static function getIconOptions(): array { return [ "microsoft-word" => "microsoft-word", "text-box" => "text-box", "document-1" => "document-1", "layers-1" => "layers-1", "folder-1" => "folder-1", "contract" => "contract", "layer" => "layer", "download-pdf" => "download-pdf", "pdf" => "pdf", "cloud-computing" => "cloud-computing", "downloads" => "downloads", "layers" => "layers", "document" => "document", "light-bulb-1" => "light-bulb-1", "idea-2" => "idea-2", "light-bulb" => "light-bulb", "idea-1" => "idea-1", "solution-2" => "solution-2", "lightbulb" => "lightbulb", "menus" => "menus", "support-1" => "support-1", "swipe-left" => "swipe-left", "development" => "development", "domain" => "domain", "pets" => "pets", "diagram" => "diagram", "targeting" => "targeting", "business-intelligence" => "business-intelligence", "menu-6" => "menu-6", "high-quality" => "high-quality", "campaign" => "campaign", "brain" => "brain", "software-application" => "software-application", "apps" => "apps", "wrench-1" => "wrench-1", "social-media-marketing-1" => "social-media-marketing-1", "category-1" => "category-1", "trophy-3" => "trophy-3", "email-marketing" => "email-marketing", "setting" => "setting", "more" => "more", "menu-5" => "menu-5", "menu-4" => "menu-4", "medical" => "medical", "sparkle" => "sparkle", "menu-3" => "menu-3", "technology-2" => "technology-2", "process" => "process", "hearth-1" => "hearth-1", "hearth" => "hearth", "technology-1" => "technology-1", "category" => "category", "customer-care" => "customer-care", "folder" => "folder", "portfolio-1" => "portfolio-1", "report" => "report", "thinking" => "thinking", "fingerprint" => "fingerprint", "clock-2" => "clock-2", "award" => "award", "paper-plane" => "paper-plane", "repair" => "repair", "email-5" => "email-5", "strategy" => "strategy", "portfolio" => "portfolio", "web-design" => "web-design", "email-4" => "email-4", "down-arrow-1" => "down-arrow-1", "location-2" => "location-2", "phone-call-2" => "phone-call-2", "telephone-call" => "telephone-call", "teamwork" => "teamwork", "up-arrow-1" => "up-arrow-1", "menu-2" => "menu-2", "developing" => "developing", "money-bag" => "money-bag", "thumbs-up" => "thumbs-up", "profits" => "profits", "location-1" => "location-1", "help-1" => "help-1", "online-chat" => "online-chat", "worker" => "worker", "smart-home" => "smart-home", "customer-service-1" => "customer-service-1", "internet" => "internet", "cash-flow" => "cash-flow", "monitor" => "monitor", "search-1" => "search-1", "wrench" => "wrench", "coin" => "coin", "cash" => "cash", "analyst" => "analyst", "dashboard-1" => "dashboard-1", "digital" => "digital", "searching" => "searching", "email-3" => "email-3", "star-1" => "star-1", "touch" => "touch", "medal" => "medal", "world-wide-web-1" => "world-wide-web-1", "phone" => "phone", "social-media" => "social-media", "24-7" => "24-7", "hard-work" => "hard-work", "star" => "star", "plus" => "plus", "minus-2" => "minus-2", "menu-1" => "menu-1", "cloud" => "cloud", "handshake" => "handshake", "people" => "people", "ai" => "ai", "save-money" => "save-money", "shopping-online" => "shopping-online", "profit-1" => "profit-1", "blockchain" => "blockchain", "sales" => "sales", "back-in-time" => "back-in-time", "clock-1" => "clock-1", "user-3" => "user-3", "user-2" => "user-2", "pawprint" => "pawprint", "payment-method" => "payment-method", "world-wide-web" => "world-wide-web", "minus-1" => "minus-1", "add-1" => "add-1", "management" => "management", "help" => "help", "chip" => "chip", "artificial-intelligence" => "artificial-intelligence", "group" => "group", "money-1" => "money-1", "conversation" => "conversation", "email-2" => "email-2", "rating" => "rating", "placeholder" => "placeholder", "trophy-2" => "trophy-2", "cpu" => "cpu", "home" => "home", "right-arrow-1" => "right-arrow-1", "like" => "like", "mail" => "mail", "briefcase" => "briefcase", "money" => "money", "up-arrow" => "up-arrow", "trophy-1" => "trophy-1", "user-1" => "user-1", "question" => "question", "team-1" => "team-1", "user" => "user", "email-1" => "email-1", "price-tag-1" => "price-tag-1", "tag" => "tag", "loupe" => "loupe", "right-arrow" => "right-arrow", "left-arrow-1" => "left-arrow-1", "down-arrow" => "down-arrow", "price-tag" => "price-tag", "stars" => "stars", "search" => "search", "phone-call-1" => "phone-call-1", "award-symbol" => "award-symbol", "christmas-stars" => "christmas-stars", "minus" => "minus", "add" => "add", "cancel-1" => "cancel-1", "checked" => "checked", "cyber-security" => "cyber-security", "data-protection" => "data-protection", "hosting" => "hosting", "brand-awareness" => "brand-awareness", "ux-design" => "ux-design", "influencer" => "influencer", "online-advertising" => "online-advertising", "web-management" => "web-management", "seo-1" => "seo-1", "computer" => "computer", "software-development" => "software-development", "coding-1" => "coding-1", "coding" => "coding", "app-development" => "app-development", "content-marketing" => "content-marketing", "social-media-marketing" => "social-media-marketing", "analysis-1" => "analysis-1", "twitter" => "twitter", "repairing" => "repairing", "data-visualization" => "data-visualization", "information-technology" => "information-technology", "statistics-1" => "statistics-1", "exploration" => "exploration", "project-1" => "project-1", "cross-mark" => "cross-mark", "search-analysis" => "search-analysis", "system" => "system", "hashtag-1" => "hashtag-1", "hashtag" => "hashtag", "it-department" => "it-department", "creative" => "creative", "online-analytical" => "online-analytical", "secure-data" => "secure-data", "slash" => "slash", "creative-thinking" => "creative-thinking", "right-up" => "right-up", "dashboard" => "dashboard", "profit" => "profit", "project" => "project", "phone-call" => "phone-call", "seo" => "seo", "prototype" => "prototype", "creative-process" => "creative-process", "growth" => "growth", "technical-support" => "technical-support", "technology" => "technology", "solution-1" => "solution-1", "creative-tools" => "creative-tools", "data-science" => "data-science", "costumer" => "costumer", "cooperation" => "cooperation", "next" => "next", "back" => "back", "brand" => "brand", "right-arrows" => "right-arrows", "idea" => "idea", "design-thinking" => "design-thinking", "check" => "check", "cross" => "cross", "right" => "right", "link" => "link", "server" => "server", "analysis" => "analysis", "support" => "support", "project-management" => "project-management", "networking" => "networking", "team" => "team", "check-mark" => "check-mark", "consultation" => "consultation", "solution" => "solution", "success" => "success", "customer-review" => "customer-review", "select" => "select", "statistics" => "statistics", "machine-learning" => "machine-learning", "vector" => "vector", "trophy" => "trophy", "data" => "data", "clock" => "clock", "cancel" => "cancel", "customer-service" => "customer-service", "digital-marketing" => "digital-marketing", "email" => "email", "stats" => "stats", "menu" => "menu", "location" => "location", "tick" => "tick", "left-arrow" => "left-arrow", "dots-menu" => "dots-menu", ]; } public static function getNavigationGroup(): ?string { return __('Home'); } public static function getNavigationLabel(): string { return __('Manage Solutions'); } public function getTitle(): string|Htmlable { return 'Solutions'; } public function getHeading(): string|Htmlable { return 'Edit solutions text, icons, and links from here'; } public function getSubheading(): string|Htmlable|null { return 'Manage the solutions section content, including individual solution items.'; } }