Add image picker to site builder components and fix media gallery bugs

- Add ImagePickerField to all site builder components with image URLs:
  - Marketing: Hero, SplitContent, LogoCloud, GalleryGrid, Testimonials,
    ContentBlocks, Header, Footer
  - Email: EmailImage, EmailHeader
- Fix media gallery issues:
  - Change API endpoint from /media/ to /media-files/ to avoid URL conflict
  - Fix album file_count annotation conflict with model property
  - Fix image URLs to use absolute paths for cross-domain access
  - Add clipboard fallback for non-HTTPS copy URL
- Show permission slugs in plan feature editor
- Fix branding settings access for tenants with custom_branding feature
- Fix EntitlementService method call in StorageQuotaService

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-22 18:21:52 -05:00
parent f1b1f18bc5
commit 2bfa01e0d4
21 changed files with 120 additions and 64 deletions

View File

@@ -5,6 +5,7 @@ import {
applyDesignControls,
type DesignControlsProps,
} from '../../theme';
import { imagePickerField } from '../../fields/ImagePickerField';
export interface HeroCtaButton {
text: string;
@@ -208,7 +209,7 @@ export const Hero: ComponentConfig<HeroProps> = {
{ label: 'Image', value: 'image' },
],
},
src: { type: 'text', label: 'Image URL' },
src: { ...imagePickerField, label: 'Image' },
alt: { type: 'text', label: 'Alt Text' },
},
},