<IsabyteLandingPage
Height="80vh"
Mode="LandingPageMode.Edit"
@bind-Value="_project"
ImageLibraryAvailable="true"
ImageLibraryItems="_sampleLibraryItems"
@bind-ContentTheme="_contentTheme"
ContentThemes="_customThemes"
OnExport="OnExport"
OnSaveIsal="OnSaveIsal"
OnBlockSelected="OnBlockSelected"
OnAiRequest="OnAiRequest"
OnLpCloneRequest="OnLpCloneRequest" />
@code {
@using Isabyte.PowerTools.Components.Tools
// Fields
private string _selectedHeight = "80vh";
private string _contentTheme = "Light";
private LandingPageProject _project = new();
// Image library items shown in the image picker
private List<ImageLibraryItem> _sampleLibraryItems = new()
{
new() { Url = "/gallery/1200/mountain-lake.jpg", Name = "Mountain Lake", Width = 1200, Height = 800 },
// ... more items
};
// Custom content themes (selectable per-section)
private List<LandingPageContentTheme> _customThemes = new()
{
new() { Id = "ocean", Name = "Ocean", Primary = "#0077b6", Background = "#caf0f8", TextColor = "#023e8a" },
// ... more themes
};
// Event handlers
private void OnExport(LandingPageExportResult result) { /* result.HtmlData */ }
private void OnSaveIsal(byte[] data) { /* save .isal bytes */ }
private void OnBlockSelected(string blockId) { /* the selected block's id */ }
private void OnAiRequest(string prompt) { /* the prompt sent from the AI Chat panel */ }
private void OnLpCloneRequest(LandingPageCloneRequest request) { /* request.Phase: analyze | generate */ }
}