From 62b6fed0e68d33469e8f09681614ab67e8d19ab8 Mon Sep 17 00:00:00 2001 From: babayaga Date: Tue, 20 Jan 2026 10:34:09 +0100 Subject: [PATCH] latest --- packages/ui/package.json | 3 - .../ui/src/components/AIPageGenerator.tsx | 440 ++++ .../ui/src/components/AITextGenerator.tsx | 614 ++++++ .../src/components/AddToCollectionModal.tsx | 350 +++ .../ui/src/components/BackgroundImage.tsx | 136 ++ .../ui/src/components/CollapsibleSection.tsx | 156 ++ .../ui/src/components/CollectionButton.tsx | 49 + packages/ui/src/components/Comments.tsx | 736 +++++++ .../ui/src/components/CreationWizardPopup.tsx | 688 ++++++ packages/ui/src/components/EditImageModal.tsx | 576 +++++ packages/ui/src/components/EditVideoModal.tsx | 422 ++++ packages/ui/src/components/EditorActions.tsx | 190 ++ packages/ui/src/components/GalleryLarge.tsx | 203 ++ packages/ui/src/components/GlobalDragDrop.tsx | 213 ++ packages/ui/src/components/HashtagText.tsx | 52 + packages/ui/src/components/Header.tsx | 110 + packages/ui/src/components/HeroSection.tsx | 117 + packages/ui/src/components/ImageEditor.tsx | 505 +++++ packages/ui/src/components/ImageGallery.tsx | 559 +++++ packages/ui/src/components/ImageLightbox.tsx | 872 ++++++++ packages/ui/src/components/ImageWizard.tsx | 1877 +++++++++++++++++ .../ui/src/components/ImageWizard/README.md | 115 + .../components/ImageActionButtons.tsx | 146 ++ .../components/ImageGalleryPanel.tsx | 293 +++ .../ImageWizard/components/ModelSelector.tsx | 100 + .../ImageWizard/components/PostComposer.tsx | 426 ++++ .../ImageWizard/components/Prompt.tsx | 313 +++ .../components/QuickActionsToolbar.tsx | 210 ++ .../ImageWizard/components/WizardSidebar.tsx | 456 ++++ .../ImageWizard/components/index.ts | 14 + .../ImageWizard/context/WizardContext.tsx | 129 ++ packages/ui/src/components/ImageWizard/db.ts | 408 ++++ .../components/ImageWizard/handlers/README.md | 351 +++ .../ImageWizard/handlers/agentHandlers.ts | 192 ++ .../ImageWizard/handlers/dataHandlers.ts | 193 ++ .../ImageWizard/handlers/dropHandlers.ts | 171 ++ .../handlers/generationHandlers.ts | 88 + .../ImageWizard/handlers/imageHandlers.ts | 448 ++++ .../components/ImageWizard/handlers/index.ts | 10 + .../ImageWizard/handlers/promptHandlers.ts | 227 ++ .../ImageWizard/handlers/publishHandlers.ts | 532 +++++ .../ImageWizard/handlers/settingsHandlers.ts | 550 +++++ .../ImageWizard/handlers/voiceHandlers.ts | 295 +++ .../ImageWizard/hooks/useImageWizardState.ts | 320 +++ .../ui/src/components/ImageWizard/types.ts | 39 + .../components/ImageWizard/utils/logger.ts | 93 + packages/ui/src/components/InlineDropZone.tsx | 77 + packages/ui/src/components/ListLayout.tsx | 258 +++ packages/ui/src/components/LogViewer.tsx | 261 +++ .../ui/src/components/MagicWizardButton.tsx | 117 + packages/ui/src/components/MarkdownEditor.tsx | 153 ++ .../ui/src/components/MarkdownEditorEx.tsx | 228 ++ .../ui/src/components/MarkdownRenderer.tsx | 129 ++ packages/ui/src/components/MediaCard.tsx | 158 ++ .../ui/src/components/OrganizationsList.tsx | 73 + packages/ui/src/components/PageCard.tsx | 259 +++ packages/ui/src/components/PageManager.tsx | 312 +++ packages/ui/src/components/PhotoCard.tsx | 695 ++++++ packages/ui/src/components/PhotoGrid.tsx | 518 +++++ packages/ui/src/components/PostPicker.tsx | 137 ++ packages/ui/src/components/PresetManager.tsx | 405 ++++ packages/ui/src/components/PromptForm.tsx | 533 +++++ packages/ui/src/components/PublishDialog.tsx | 282 +++ .../ui/src/components/ResponsiveImage.tsx | 162 ++ .../ui/src/components/SimpleLogViewer.tsx | 70 + .../ui/src/components/StylePresetSelector.tsx | 53 + .../ui/src/components/TemplateManager.tsx | 93 + packages/ui/src/components/ThemeProvider.tsx | 73 + packages/ui/src/components/ThemeToggle.tsx | 20 + packages/ui/src/components/TopNavigation.tsx | 255 +++ packages/ui/src/components/UploadModal.tsx | 226 ++ .../ui/src/components/UserAvatarBlock.tsx | 86 + packages/ui/src/components/UserPictures.tsx | 315 +++ .../ui/src/components/VersionSelector.tsx | 363 ++++ packages/ui/src/components/VideoCard.tsx | 712 +++++++ .../ui/src/components/VoiceRecordingPopup.tsx | 359 ++++ .../ui/src/components/WorkflowManager.tsx | 569 +++++ .../ui/src/components/admin/AdminSidebar.tsx | 56 + .../src/components/admin/CreateUserDialog.tsx | 103 + .../src/components/admin/DeleteUserDialog.tsx | 43 + .../src/components/admin/EditUserDialog.tsx | 143 ++ .../ui/src/components/admin/UserManager.tsx | 162 ++ .../containers/ContainerSettingsManager.tsx | 171 ++ packages/ui/src/components/feed/FeedCard.tsx | 120 ++ .../ui/src/components/feed/FeedCarousel.tsx | 109 + .../ui/src/components/feed/MobileFeed.tsx | 176 ++ .../components/filters/ContextSelector.tsx | 155 ++ .../ui/src/components/filters/FilterPanel.tsx | 505 +++++ .../src/components/filters/FilterSelector.tsx | 303 +++ .../components/filters/ProviderManagement.tsx | 971 +++++++++ .../components/filters/ProviderSelector.tsx | 293 +++ .../components/filters/TemplateSelector.tsx | 303 +++ packages/ui/src/components/filters/index.ts | 10 + .../ui/src/components/hmi/GenericCanvas.tsx | 394 ++++ .../ui/src/components/hmi/LayoutContainer.tsx | 593 ++++++ .../ui/src/components/hmi/WidgetPalette.tsx | 162 ++ .../lazy-editors/MDXEditorInternal.tsx | 155 ++ .../lazy-editors/MilkdownEditorInternal.tsx | 149 ++ .../src/components/logging/LogViewerPage.tsx | 20 + .../ui/src/components/logging/LogsPage.tsx | 75 + packages/ui/src/components/ui/accordion.tsx | 52 + .../ui/src/components/ui/alert-dialog.tsx | 104 + packages/ui/src/components/ui/alert.tsx | 43 + .../ui/src/components/ui/aspect-ratio.tsx | 5 + packages/ui/src/components/ui/avatar.tsx | 38 + packages/ui/src/components/ui/badge.tsx | 29 + packages/ui/src/components/ui/breadcrumb.tsx | 90 + packages/ui/src/components/ui/button.tsx | 47 + packages/ui/src/components/ui/calendar.tsx | 54 + packages/ui/src/components/ui/card.tsx | 43 + packages/ui/src/components/ui/carousel.tsx | 224 ++ packages/ui/src/components/ui/chart.tsx | 303 +++ packages/ui/src/components/ui/checkbox.tsx | 26 + .../src/components/ui/collapsible-section.tsx | 164 ++ packages/ui/src/components/ui/collapsible.tsx | 9 + packages/ui/src/components/ui/command.tsx | 132 ++ .../ui/src/components/ui/context-menu.tsx | 178 ++ packages/ui/src/components/ui/dialog.tsx | 95 + packages/ui/src/components/ui/drawer.tsx | 87 + .../ui/src/components/ui/dropdown-menu.tsx | 179 ++ packages/ui/src/components/ui/form.tsx | 129 ++ packages/ui/src/components/ui/hover-card.tsx | 27 + packages/ui/src/components/ui/input-otp.tsx | 61 + packages/ui/src/components/ui/input.tsx | 22 + packages/ui/src/components/ui/label.tsx | 17 + packages/ui/src/components/ui/menubar.tsx | 207 ++ .../ui/src/components/ui/navigation-menu.tsx | 120 ++ packages/ui/src/components/ui/pagination.tsx | 81 + packages/ui/src/components/ui/popover.tsx | 29 + packages/ui/src/components/ui/progress.tsx | 23 + packages/ui/src/components/ui/radio-group.tsx | 36 + packages/ui/src/components/ui/resizable.tsx | 37 + packages/ui/src/components/ui/scroll-area.tsx | 38 + packages/ui/src/components/ui/select.tsx | 143 ++ packages/ui/src/components/ui/separator.tsx | 20 + packages/ui/src/components/ui/sheet.tsx | 107 + packages/ui/src/components/ui/sidebar.tsx | 637 ++++++ packages/ui/src/components/ui/skeleton.tsx | 7 + packages/ui/src/components/ui/slider.tsx | 23 + packages/ui/src/components/ui/sonner.tsx | 27 + packages/ui/src/components/ui/switch.tsx | 27 + packages/ui/src/components/ui/table.tsx | 72 + packages/ui/src/components/ui/tabs.tsx | 53 + packages/ui/src/components/ui/textarea.tsx | 21 + packages/ui/src/components/ui/toast.tsx | 111 + packages/ui/src/components/ui/toaster.tsx | 24 + .../ui/src/components/ui/toggle-group.tsx | 49 + packages/ui/src/components/ui/toggle.tsx | 37 + packages/ui/src/components/ui/tooltip.tsx | 28 + packages/ui/src/components/ui/use-toast.ts | 3 + .../video/VideoSettingsControls.tsx | 179 ++ .../components/widgets/ImagePickerDialog.tsx | 407 ++++ .../widgets/LayoutContainerWidget.tsx | 55 + .../components/widgets/LogViewerWidget.tsx | 44 + .../components/widgets/MarkdownTextWidget.tsx | 1051 +++++++++ .../components/widgets/PhotoCardWidget.tsx | 212 ++ .../components/widgets/PhotoGridWidget.tsx | 192 ++ .../widgets/WidgetMovementControls.tsx | 96 + .../widgets/WidgetSettingsManager.tsx | 276 +++ packages/ui/src/contexts/FeedCacheContext.tsx | 67 + packages/ui/src/contexts/LayoutContext.tsx | 409 ++++ packages/ui/src/contexts/LogContext.tsx | 59 + .../ui/src/contexts/MediaRefreshContext.tsx | 31 + .../ui/src/contexts/OrganizationContext.tsx | 36 + .../ui/src/contexts/PostNavigationContext.tsx | 55 + packages/ui/src/contexts/ProfilesContext.tsx | 83 + packages/ui/src/hooks/use-media-query.ts | 21 + packages/ui/src/hooks/use-mobile.tsx | 21 + packages/ui/src/hooks/use-toast.ts | 186 ++ packages/ui/src/hooks/useAuth.tsx | 199 ++ packages/ui/src/hooks/useDropZone.ts | 86 + packages/ui/src/hooks/useFeedData.ts | 268 +++ packages/ui/src/hooks/useImageWizard.ts | 9 + packages/ui/src/hooks/usePageGenerator.ts | 177 ++ packages/ui/src/hooks/usePostNavigation.ts | 26 + packages/ui/src/hooks/usePromptHistory.ts | 108 + packages/ui/src/hooks/useProviderSettings.ts | 93 + packages/ui/src/hooks/useResponsiveImage.ts | 146 ++ packages/ui/src/hooks/useServerLogs.ts | 95 + packages/ui/src/hooks/useVoiceInput.ts | 70 + packages/ui/src/hooks/useWizardContext.ts | 32 + packages/ui/src/lib/aimlapi.ts | 300 +++ packages/ui/src/lib/bria.ts | 320 +++ packages/ui/src/lib/db.ts | 728 +++++++ packages/ui/src/lib/image-router.ts | 414 ++++ packages/ui/src/lib/image-tools-example.ts | 409 ++++ packages/ui/src/lib/layoutStorage.ts | 162 ++ packages/ui/src/lib/log.ts | 79 + packages/ui/src/lib/markdownImageTools.ts | 237 +++ packages/ui/src/lib/mediaRegistry.ts | 148 ++ packages/ui/src/lib/openai.ts | 1282 +++++++++++ packages/ui/src/lib/pageTools.ts | 179 ++ packages/ui/src/lib/polyfills.ts | 65 + packages/ui/src/lib/registerWidgets.ts | 227 ++ packages/ui/src/lib/replicate.ts | 213 ++ packages/ui/src/lib/tauriApi.ts | 79 + packages/ui/src/lib/unifiedLayoutManager.ts | 658 ++++++ packages/ui/src/lib/uploadUtils.ts | 55 + packages/ui/src/lib/utils.ts | 6 + packages/ui/src/lib/video-router.ts | 206 ++ packages/ui/src/lib/widgetRegistry.ts | 66 + packages/ui/src/llm/filters/base-filters.ts | 245 +++ packages/ui/src/llm/filters/contexts.ts | 130 ++ packages/ui/src/llm/filters/index.ts | 258 +++ packages/ui/src/llm/filters/instructions.ts | 113 + packages/ui/src/llm/filters/providers.ts | 333 +++ .../ui/src/llm/filters/providers/openai.ts | 283 +++ .../src/llm/filters/providers/openrouter.ts | 262 +++ packages/ui/src/llm/filters/templates.ts | 310 +++ packages/ui/src/llm/filters/types.ts | 152 ++ packages/ui/src/utils/collectionUtils.ts | 54 + packages/ui/src/utils/downloadUtils.ts | 79 + packages/ui/src/utils/formatDetection.ts | 38 + packages/ui/src/utils/mediaUtils.ts | 183 ++ packages/ui/src/utils/tagUtils.ts | 73 + packages/ui/src/utils/textUtils.ts | 48 + packages/ui/src/utils/uploadUtils.ts | 48 + packages/ui/src/utils/zipGenerator.ts | 129 ++ 218 files changed, 45584 insertions(+), 3 deletions(-) create mode 100644 packages/ui/src/components/AIPageGenerator.tsx create mode 100644 packages/ui/src/components/AITextGenerator.tsx create mode 100644 packages/ui/src/components/AddToCollectionModal.tsx create mode 100644 packages/ui/src/components/BackgroundImage.tsx create mode 100644 packages/ui/src/components/CollapsibleSection.tsx create mode 100644 packages/ui/src/components/CollectionButton.tsx create mode 100644 packages/ui/src/components/Comments.tsx create mode 100644 packages/ui/src/components/CreationWizardPopup.tsx create mode 100644 packages/ui/src/components/EditImageModal.tsx create mode 100644 packages/ui/src/components/EditVideoModal.tsx create mode 100644 packages/ui/src/components/EditorActions.tsx create mode 100644 packages/ui/src/components/GalleryLarge.tsx create mode 100644 packages/ui/src/components/GlobalDragDrop.tsx create mode 100644 packages/ui/src/components/HashtagText.tsx create mode 100644 packages/ui/src/components/Header.tsx create mode 100644 packages/ui/src/components/HeroSection.tsx create mode 100644 packages/ui/src/components/ImageEditor.tsx create mode 100644 packages/ui/src/components/ImageGallery.tsx create mode 100644 packages/ui/src/components/ImageLightbox.tsx create mode 100644 packages/ui/src/components/ImageWizard.tsx create mode 100644 packages/ui/src/components/ImageWizard/README.md create mode 100644 packages/ui/src/components/ImageWizard/components/ImageActionButtons.tsx create mode 100644 packages/ui/src/components/ImageWizard/components/ImageGalleryPanel.tsx create mode 100644 packages/ui/src/components/ImageWizard/components/ModelSelector.tsx create mode 100644 packages/ui/src/components/ImageWizard/components/PostComposer.tsx create mode 100644 packages/ui/src/components/ImageWizard/components/Prompt.tsx create mode 100644 packages/ui/src/components/ImageWizard/components/QuickActionsToolbar.tsx create mode 100644 packages/ui/src/components/ImageWizard/components/WizardSidebar.tsx create mode 100644 packages/ui/src/components/ImageWizard/components/index.ts create mode 100644 packages/ui/src/components/ImageWizard/context/WizardContext.tsx create mode 100644 packages/ui/src/components/ImageWizard/db.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/README.md create mode 100644 packages/ui/src/components/ImageWizard/handlers/agentHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/dataHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/dropHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/generationHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/imageHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/index.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/promptHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/publishHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/settingsHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/handlers/voiceHandlers.ts create mode 100644 packages/ui/src/components/ImageWizard/hooks/useImageWizardState.ts create mode 100644 packages/ui/src/components/ImageWizard/types.ts create mode 100644 packages/ui/src/components/ImageWizard/utils/logger.ts create mode 100644 packages/ui/src/components/InlineDropZone.tsx create mode 100644 packages/ui/src/components/ListLayout.tsx create mode 100644 packages/ui/src/components/LogViewer.tsx create mode 100644 packages/ui/src/components/MagicWizardButton.tsx create mode 100644 packages/ui/src/components/MarkdownEditor.tsx create mode 100644 packages/ui/src/components/MarkdownEditorEx.tsx create mode 100644 packages/ui/src/components/MarkdownRenderer.tsx create mode 100644 packages/ui/src/components/MediaCard.tsx create mode 100644 packages/ui/src/components/OrganizationsList.tsx create mode 100644 packages/ui/src/components/PageCard.tsx create mode 100644 packages/ui/src/components/PageManager.tsx create mode 100644 packages/ui/src/components/PhotoCard.tsx create mode 100644 packages/ui/src/components/PhotoGrid.tsx create mode 100644 packages/ui/src/components/PostPicker.tsx create mode 100644 packages/ui/src/components/PresetManager.tsx create mode 100644 packages/ui/src/components/PromptForm.tsx create mode 100644 packages/ui/src/components/PublishDialog.tsx create mode 100644 packages/ui/src/components/ResponsiveImage.tsx create mode 100644 packages/ui/src/components/SimpleLogViewer.tsx create mode 100644 packages/ui/src/components/StylePresetSelector.tsx create mode 100644 packages/ui/src/components/TemplateManager.tsx create mode 100644 packages/ui/src/components/ThemeProvider.tsx create mode 100644 packages/ui/src/components/ThemeToggle.tsx create mode 100644 packages/ui/src/components/TopNavigation.tsx create mode 100644 packages/ui/src/components/UploadModal.tsx create mode 100644 packages/ui/src/components/UserAvatarBlock.tsx create mode 100644 packages/ui/src/components/UserPictures.tsx create mode 100644 packages/ui/src/components/VersionSelector.tsx create mode 100644 packages/ui/src/components/VideoCard.tsx create mode 100644 packages/ui/src/components/VoiceRecordingPopup.tsx create mode 100644 packages/ui/src/components/WorkflowManager.tsx create mode 100644 packages/ui/src/components/admin/AdminSidebar.tsx create mode 100644 packages/ui/src/components/admin/CreateUserDialog.tsx create mode 100644 packages/ui/src/components/admin/DeleteUserDialog.tsx create mode 100644 packages/ui/src/components/admin/EditUserDialog.tsx create mode 100644 packages/ui/src/components/admin/UserManager.tsx create mode 100644 packages/ui/src/components/containers/ContainerSettingsManager.tsx create mode 100644 packages/ui/src/components/feed/FeedCard.tsx create mode 100644 packages/ui/src/components/feed/FeedCarousel.tsx create mode 100644 packages/ui/src/components/feed/MobileFeed.tsx create mode 100644 packages/ui/src/components/filters/ContextSelector.tsx create mode 100644 packages/ui/src/components/filters/FilterPanel.tsx create mode 100644 packages/ui/src/components/filters/FilterSelector.tsx create mode 100644 packages/ui/src/components/filters/ProviderManagement.tsx create mode 100644 packages/ui/src/components/filters/ProviderSelector.tsx create mode 100644 packages/ui/src/components/filters/TemplateSelector.tsx create mode 100644 packages/ui/src/components/filters/index.ts create mode 100644 packages/ui/src/components/hmi/GenericCanvas.tsx create mode 100644 packages/ui/src/components/hmi/LayoutContainer.tsx create mode 100644 packages/ui/src/components/hmi/WidgetPalette.tsx create mode 100644 packages/ui/src/components/lazy-editors/MDXEditorInternal.tsx create mode 100644 packages/ui/src/components/lazy-editors/MilkdownEditorInternal.tsx create mode 100644 packages/ui/src/components/logging/LogViewerPage.tsx create mode 100644 packages/ui/src/components/logging/LogsPage.tsx create mode 100644 packages/ui/src/components/ui/accordion.tsx create mode 100644 packages/ui/src/components/ui/alert-dialog.tsx create mode 100644 packages/ui/src/components/ui/alert.tsx create mode 100644 packages/ui/src/components/ui/aspect-ratio.tsx create mode 100644 packages/ui/src/components/ui/avatar.tsx create mode 100644 packages/ui/src/components/ui/badge.tsx create mode 100644 packages/ui/src/components/ui/breadcrumb.tsx create mode 100644 packages/ui/src/components/ui/button.tsx create mode 100644 packages/ui/src/components/ui/calendar.tsx create mode 100644 packages/ui/src/components/ui/card.tsx create mode 100644 packages/ui/src/components/ui/carousel.tsx create mode 100644 packages/ui/src/components/ui/chart.tsx create mode 100644 packages/ui/src/components/ui/checkbox.tsx create mode 100644 packages/ui/src/components/ui/collapsible-section.tsx create mode 100644 packages/ui/src/components/ui/collapsible.tsx create mode 100644 packages/ui/src/components/ui/command.tsx create mode 100644 packages/ui/src/components/ui/context-menu.tsx create mode 100644 packages/ui/src/components/ui/dialog.tsx create mode 100644 packages/ui/src/components/ui/drawer.tsx create mode 100644 packages/ui/src/components/ui/dropdown-menu.tsx create mode 100644 packages/ui/src/components/ui/form.tsx create mode 100644 packages/ui/src/components/ui/hover-card.tsx create mode 100644 packages/ui/src/components/ui/input-otp.tsx create mode 100644 packages/ui/src/components/ui/input.tsx create mode 100644 packages/ui/src/components/ui/label.tsx create mode 100644 packages/ui/src/components/ui/menubar.tsx create mode 100644 packages/ui/src/components/ui/navigation-menu.tsx create mode 100644 packages/ui/src/components/ui/pagination.tsx create mode 100644 packages/ui/src/components/ui/popover.tsx create mode 100644 packages/ui/src/components/ui/progress.tsx create mode 100644 packages/ui/src/components/ui/radio-group.tsx create mode 100644 packages/ui/src/components/ui/resizable.tsx create mode 100644 packages/ui/src/components/ui/scroll-area.tsx create mode 100644 packages/ui/src/components/ui/select.tsx create mode 100644 packages/ui/src/components/ui/separator.tsx create mode 100644 packages/ui/src/components/ui/sheet.tsx create mode 100644 packages/ui/src/components/ui/sidebar.tsx create mode 100644 packages/ui/src/components/ui/skeleton.tsx create mode 100644 packages/ui/src/components/ui/slider.tsx create mode 100644 packages/ui/src/components/ui/sonner.tsx create mode 100644 packages/ui/src/components/ui/switch.tsx create mode 100644 packages/ui/src/components/ui/table.tsx create mode 100644 packages/ui/src/components/ui/tabs.tsx create mode 100644 packages/ui/src/components/ui/textarea.tsx create mode 100644 packages/ui/src/components/ui/toast.tsx create mode 100644 packages/ui/src/components/ui/toaster.tsx create mode 100644 packages/ui/src/components/ui/toggle-group.tsx create mode 100644 packages/ui/src/components/ui/toggle.tsx create mode 100644 packages/ui/src/components/ui/tooltip.tsx create mode 100644 packages/ui/src/components/ui/use-toast.ts create mode 100644 packages/ui/src/components/video/VideoSettingsControls.tsx create mode 100644 packages/ui/src/components/widgets/ImagePickerDialog.tsx create mode 100644 packages/ui/src/components/widgets/LayoutContainerWidget.tsx create mode 100644 packages/ui/src/components/widgets/LogViewerWidget.tsx create mode 100644 packages/ui/src/components/widgets/MarkdownTextWidget.tsx create mode 100644 packages/ui/src/components/widgets/PhotoCardWidget.tsx create mode 100644 packages/ui/src/components/widgets/PhotoGridWidget.tsx create mode 100644 packages/ui/src/components/widgets/WidgetMovementControls.tsx create mode 100644 packages/ui/src/components/widgets/WidgetSettingsManager.tsx create mode 100644 packages/ui/src/contexts/FeedCacheContext.tsx create mode 100644 packages/ui/src/contexts/LayoutContext.tsx create mode 100644 packages/ui/src/contexts/LogContext.tsx create mode 100644 packages/ui/src/contexts/MediaRefreshContext.tsx create mode 100644 packages/ui/src/contexts/OrganizationContext.tsx create mode 100644 packages/ui/src/contexts/PostNavigationContext.tsx create mode 100644 packages/ui/src/contexts/ProfilesContext.tsx create mode 100644 packages/ui/src/hooks/use-media-query.ts create mode 100644 packages/ui/src/hooks/use-mobile.tsx create mode 100644 packages/ui/src/hooks/use-toast.ts create mode 100644 packages/ui/src/hooks/useAuth.tsx create mode 100644 packages/ui/src/hooks/useDropZone.ts create mode 100644 packages/ui/src/hooks/useFeedData.ts create mode 100644 packages/ui/src/hooks/useImageWizard.ts create mode 100644 packages/ui/src/hooks/usePageGenerator.ts create mode 100644 packages/ui/src/hooks/usePostNavigation.ts create mode 100644 packages/ui/src/hooks/usePromptHistory.ts create mode 100644 packages/ui/src/hooks/useProviderSettings.ts create mode 100644 packages/ui/src/hooks/useResponsiveImage.ts create mode 100644 packages/ui/src/hooks/useServerLogs.ts create mode 100644 packages/ui/src/hooks/useVoiceInput.ts create mode 100644 packages/ui/src/hooks/useWizardContext.ts create mode 100644 packages/ui/src/lib/aimlapi.ts create mode 100644 packages/ui/src/lib/bria.ts create mode 100644 packages/ui/src/lib/db.ts create mode 100644 packages/ui/src/lib/image-router.ts create mode 100644 packages/ui/src/lib/image-tools-example.ts create mode 100644 packages/ui/src/lib/layoutStorage.ts create mode 100644 packages/ui/src/lib/log.ts create mode 100644 packages/ui/src/lib/markdownImageTools.ts create mode 100644 packages/ui/src/lib/mediaRegistry.ts create mode 100644 packages/ui/src/lib/openai.ts create mode 100644 packages/ui/src/lib/pageTools.ts create mode 100644 packages/ui/src/lib/polyfills.ts create mode 100644 packages/ui/src/lib/registerWidgets.ts create mode 100644 packages/ui/src/lib/replicate.ts create mode 100644 packages/ui/src/lib/tauriApi.ts create mode 100644 packages/ui/src/lib/unifiedLayoutManager.ts create mode 100644 packages/ui/src/lib/uploadUtils.ts create mode 100644 packages/ui/src/lib/utils.ts create mode 100644 packages/ui/src/lib/video-router.ts create mode 100644 packages/ui/src/lib/widgetRegistry.ts create mode 100644 packages/ui/src/llm/filters/base-filters.ts create mode 100644 packages/ui/src/llm/filters/contexts.ts create mode 100644 packages/ui/src/llm/filters/index.ts create mode 100644 packages/ui/src/llm/filters/instructions.ts create mode 100644 packages/ui/src/llm/filters/providers.ts create mode 100644 packages/ui/src/llm/filters/providers/openai.ts create mode 100644 packages/ui/src/llm/filters/providers/openrouter.ts create mode 100644 packages/ui/src/llm/filters/templates.ts create mode 100644 packages/ui/src/llm/filters/types.ts create mode 100644 packages/ui/src/utils/collectionUtils.ts create mode 100644 packages/ui/src/utils/downloadUtils.ts create mode 100644 packages/ui/src/utils/formatDetection.ts create mode 100644 packages/ui/src/utils/mediaUtils.ts create mode 100644 packages/ui/src/utils/tagUtils.ts create mode 100644 packages/ui/src/utils/textUtils.ts create mode 100644 packages/ui/src/utils/uploadUtils.ts create mode 100644 packages/ui/src/utils/zipGenerator.ts diff --git a/packages/ui/package.json b/packages/ui/package.json index 986cfd86..854f7625 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -27,14 +27,11 @@ "test:all": "playwright test", "test:home": "playwright test tests/home.spec.ts --project=chromium", "test:post": "playwright test tests/post.spec.ts --project=chromium", - "test:wizard": "playwright test tests/wizard.spec.ts --project=chromium --ui", - "test:responsive": "playwright test tests/responsive.spec.ts --project=chromium", "test:ui": "playwright test --ui", "test:headed": "playwright test --headed --project=chromium", "test:debug": "playwright test --debug", "test:report": "playwright show-report", "test:verify-env": "node tests/verify-env.js", - "supabase:types": "npx supabase gen types typescript --linked > src/integrations/supabase/types.ts", "screenshots": "playwright test tests/example.spec.ts" }, "dependencies": { diff --git a/packages/ui/src/components/AIPageGenerator.tsx b/packages/ui/src/components/AIPageGenerator.tsx new file mode 100644 index 00000000..2562f265 --- /dev/null +++ b/packages/ui/src/components/AIPageGenerator.tsx @@ -0,0 +1,440 @@ +/** + * AI Page Generator Component + * A specialized version of AITextGenerator for creating new pages from scratch. + * It removes application-specific logic like 'Apply', 'Replace', 'Append'. + */ + +import React from 'react'; +import { T } from '@/i18n'; +import { + Sparkles, + Mic, + MicOff, + Loader2, + FileTextIcon, + Plus, + Trash2, + ArrowUp, +} from 'lucide-react'; +import { Button } from '@/components/ui/button'; +import { Textarea } from '@/components/ui/textarea'; +import { Badge } from '@/components/ui/badge'; +import { Switch } from '@/components/ui/switch'; +import { Label } from '@/components/ui/label'; +import { Card } from '@/components/ui/card'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu'; +import { ProviderSelector } from '@/components/filters/ProviderSelector'; +import { ModelSelector } from '@/components/ImageWizard/components/ModelSelector'; +import { useVoiceInput } from '@/hooks/useVoiceInput'; +import { useProviderSettings } from '@/hooks/useProviderSettings'; +import { ImagePickerDialog } from '@/components/widgets/ImagePickerDialog'; +import { Image as ImageIcon, X } from 'lucide-react'; +import { useLog } from '@/contexts/LogContext'; + +interface AIPageGeneratorProps { + // Prompt state + prompt: string; + onPromptChange: (prompt: string) => void; + + // Actions + onGenerate: (options: { useImageTools: boolean; model?: string; imageModel?: string; referenceImages?: string[] }) => void; + onCancel?: () => void; + + // State flags + isGenerating: boolean; + generationStatus?: 'idle' | 'transcribing' | 'generating' | 'creating' | 'success' | 'error'; + disabled?: boolean; + promptHistory?: string[]; + historyIndex?: number; + onNavigateHistory?: (direction: 'up' | 'down') => void; + initialReferenceImages?: string[]; +} + +export const AIPageGenerator: React.FC = ({ + prompt, + onPromptChange, + onGenerate, + onCancel, + isGenerating, + generationStatus, + disabled = false, + promptHistory = [], + historyIndex = -1, + onNavigateHistory, + initialReferenceImages = [] +}) => { + const { + loading: loadingSettings, + selectedProvider, + selectedModel, + onProviderChange, + onModelChange, + } = useProviderSettings(); + + const [imageToolsEnabled, setImageToolsEnabled] = React.useState(true); + const [referenceImages, setReferenceImages] = React.useState([]); // Using any[] for now to avoid extensive type imports, will refine + const [showImagePicker, setShowImagePicker] = React.useState(false); + + // Initialize reference images from prop + React.useEffect(() => { + if (initialReferenceImages.length > 0) { + const initialPics = initialReferenceImages.map((url, index) => ({ + id: `preload-${index}`, + url: url, + title: 'Selected Image', + image_url: url, + width: 0, + height: 0, + created_at: new Date().toISOString(), + user_id: 'current-user' + })); + setReferenceImages(initialPics); + } + }, [initialReferenceImages]); + + // Image model state with persistence + const [imageModel, setImageModel] = React.useState(() => { + return localStorage.getItem('aipagegenerator-image-model') || 'google/gemini-3-pro-image-preview'; + }); + + // Save image model to localStorage when it changes + React.useEffect(() => { + if (imageModel) { + localStorage.setItem('aipagegenerator-image-model', imageModel); + } + }, [imageModel]); + + // Templates and optimization state removed as they are not fully implemented + // const [templates, setTemplates] = React.useState<{ name: string; template: string }[]>([]); + const [isOptimizing, setIsOptimizing] = React.useState(false); + + const { isRecording, isTranscribing, handleMicrophoneToggle } = useVoiceInput(onPromptChange); + const { logs } = useLog(); + const logsEndRef = React.useRef(null); + + // Auto-scroll logs + React.useEffect(() => { + if (isGenerating && logsEndRef.current) { + logsEndRef.current.scrollIntoView({ behavior: 'smooth' }); + } + }, [logs, isGenerating]); + + const getStatusMessage = () => { + switch (generationStatus) { + case 'transcribing': return 'Transcribing audio...'; + case 'generating': return 'Generating content...'; + case 'creating': return 'Creating page...'; + case 'success': return 'Success!'; + default: return onCancel ? 'Cancel Generation' : 'Generating...'; + } + }; + + const handleKeyDown = (e: React.KeyboardEvent) => { + if ((e.key === 'Enter' && e.ctrlKey) && prompt.trim() && !isGenerating) { + e.preventDefault(); + onGenerate({ + useImageTools: imageToolsEnabled, + model: selectedModel, + imageModel, + referenceImages: referenceImages.map(img => img.image_url || img.src) + }); + } else if (e.key === 'ArrowUp' && e.ctrlKey && onNavigateHistory) { + e.preventDefault(); + onNavigateHistory('up'); + } else if (e.key === 'ArrowDown' && e.ctrlKey && onNavigateHistory) { + e.preventDefault(); + onNavigateHistory('down'); + } + }; + + return ( +
+
+ {/* Left Column: Settings */} + +

+ Settings +

+ + + +
+
+ + +
+ + {imageToolsEnabled ? 'Enabled' : 'Text Only'} + +
+ + {imageToolsEnabled && ( +
+ +
+ )} + + {imageToolsEnabled && ( +
+
+ + + {referenceImages.length} selected + +
+ + {referenceImages.length === 0 ? ( + + ) : ( +
+ {referenceImages.map((img) => ( +
+ {img.title} +
+ +
+ ))} + +
+ )} +

+ Images to help guide the AI generation +

+
+ )} + + setShowImagePicker(false)} + multiple={true} + currentValues={referenceImages.map(img => img.id)} + onMultiSelectPictures={(pictures) => { + setReferenceImages(pictures); + setShowImagePicker(false); + }} + /> + +
+ + + + + + {/* Templates logic would go here */} +
+ No templates saved yet +
+ + + + Save current as template + +
+
+ + +
+ + + {/* Right Column: Prompt Input */} +
+ {promptHistory.length > 0 && onNavigateHistory && ( +
+ + History: {historyIndex >= 0 ? `${historyIndex + 1}/${promptHistory.length}` : 'Current'} + +
+ + +
+
+ )} +
+