@foxpixel/react 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +457 -1
- package/dist/index.d.ts +457 -1
- package/dist/index.js +725 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +705 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -405,4 +405,460 @@ interface UseContactCaptureReturn {
|
|
|
405
405
|
*/
|
|
406
406
|
declare function useContactCapture(): UseContactCaptureReturn;
|
|
407
407
|
|
|
408
|
-
|
|
408
|
+
/**
|
|
409
|
+
* Blog module types for FoxPixel SDK
|
|
410
|
+
* Aligned with backend BlogPostResponse, BlogCategoryResponse, BlogTagResponse
|
|
411
|
+
*/
|
|
412
|
+
interface BlogAuthor {
|
|
413
|
+
id: string;
|
|
414
|
+
name: string;
|
|
415
|
+
email?: string;
|
|
416
|
+
}
|
|
417
|
+
interface BlogCategory {
|
|
418
|
+
id: string;
|
|
419
|
+
name: string;
|
|
420
|
+
slug: string;
|
|
421
|
+
description?: string;
|
|
422
|
+
color?: string;
|
|
423
|
+
sortOrder?: number;
|
|
424
|
+
}
|
|
425
|
+
interface BlogTag {
|
|
426
|
+
id: string;
|
|
427
|
+
name: string;
|
|
428
|
+
slug: string;
|
|
429
|
+
}
|
|
430
|
+
type BlogPostStatus = 'DRAFT' | 'SCHEDULED' | 'PUBLISHED' | 'ARCHIVED';
|
|
431
|
+
interface BlogPost {
|
|
432
|
+
id: string;
|
|
433
|
+
title: string;
|
|
434
|
+
slug: string;
|
|
435
|
+
excerpt: string | null;
|
|
436
|
+
content: string;
|
|
437
|
+
coverImageUrl: string | null;
|
|
438
|
+
metaTitle: string | null;
|
|
439
|
+
metaDescription: string | null;
|
|
440
|
+
canonicalUrl: string | null;
|
|
441
|
+
ogTitle: string | null;
|
|
442
|
+
ogDescription: string | null;
|
|
443
|
+
ogImageUrl: string | null;
|
|
444
|
+
status: BlogPostStatus;
|
|
445
|
+
publishedAt: string | null;
|
|
446
|
+
scheduledAt: string | null;
|
|
447
|
+
readingTimeMinutes: number | null;
|
|
448
|
+
isFeatured: boolean;
|
|
449
|
+
allowComments: boolean;
|
|
450
|
+
authorId: string | null;
|
|
451
|
+
author?: BlogAuthor | null;
|
|
452
|
+
version: number;
|
|
453
|
+
isAiGenerated: boolean;
|
|
454
|
+
categories: BlogCategory[];
|
|
455
|
+
tags: BlogTag[];
|
|
456
|
+
createdAt: string;
|
|
457
|
+
updatedAt: string;
|
|
458
|
+
}
|
|
459
|
+
/** Spring Data Page response shape */
|
|
460
|
+
interface BlogPostPage {
|
|
461
|
+
content: BlogPost[];
|
|
462
|
+
totalElements: number;
|
|
463
|
+
totalPages: number;
|
|
464
|
+
size: number;
|
|
465
|
+
number: number;
|
|
466
|
+
first: boolean;
|
|
467
|
+
last: boolean;
|
|
468
|
+
numberOfElements: number;
|
|
469
|
+
empty: boolean;
|
|
470
|
+
}
|
|
471
|
+
/** Blog comment (approved, for display) */
|
|
472
|
+
interface BlogComment {
|
|
473
|
+
id: string;
|
|
474
|
+
postId: string;
|
|
475
|
+
postTitle?: string | null;
|
|
476
|
+
postSlug?: string | null;
|
|
477
|
+
parentId?: string | null;
|
|
478
|
+
authorName?: string | null;
|
|
479
|
+
content: string;
|
|
480
|
+
status: string;
|
|
481
|
+
createdAt: string;
|
|
482
|
+
replies?: BlogComment[];
|
|
483
|
+
}
|
|
484
|
+
/** Payload to create a comment (guest) */
|
|
485
|
+
interface CreateBlogCommentPayload {
|
|
486
|
+
guestName?: string;
|
|
487
|
+
guestEmail?: string;
|
|
488
|
+
content: string;
|
|
489
|
+
parentId?: string;
|
|
490
|
+
}
|
|
491
|
+
type NewsletterFrequency = 'instant' | 'daily' | 'weekly' | 'monthly';
|
|
492
|
+
type NewsletterStatus = 'ACTIVE' | 'UNSUBSCRIBED' | 'BOUNCED';
|
|
493
|
+
interface NewsletterSubscriber {
|
|
494
|
+
id: string;
|
|
495
|
+
email: string;
|
|
496
|
+
name?: string | null;
|
|
497
|
+
frequency: NewsletterFrequency;
|
|
498
|
+
categories?: string[] | null;
|
|
499
|
+
status: NewsletterStatus;
|
|
500
|
+
source?: string | null;
|
|
501
|
+
confirmedAt?: string | null;
|
|
502
|
+
unsubscribedAt?: string | null;
|
|
503
|
+
createdAt: string;
|
|
504
|
+
}
|
|
505
|
+
interface SubscribeNewsletterPayload {
|
|
506
|
+
email: string;
|
|
507
|
+
name?: string;
|
|
508
|
+
frequency?: NewsletterFrequency;
|
|
509
|
+
categories?: string[];
|
|
510
|
+
source?: string;
|
|
511
|
+
}
|
|
512
|
+
interface NewsletterSubscriberPage {
|
|
513
|
+
content: NewsletterSubscriber[];
|
|
514
|
+
totalElements: number;
|
|
515
|
+
totalPages: number;
|
|
516
|
+
size: number;
|
|
517
|
+
number: number;
|
|
518
|
+
first: boolean;
|
|
519
|
+
last: boolean;
|
|
520
|
+
numberOfElements: number;
|
|
521
|
+
empty: boolean;
|
|
522
|
+
}
|
|
523
|
+
interface NewsletterStats {
|
|
524
|
+
activeSubscribers: number;
|
|
525
|
+
}
|
|
526
|
+
interface BlogSettings {
|
|
527
|
+
businessContext?: string | null;
|
|
528
|
+
defaultLanguage?: string | null;
|
|
529
|
+
automationEnabled?: boolean | null;
|
|
530
|
+
autoPublishAsDraft?: boolean | null;
|
|
531
|
+
siteUrl?: string | null;
|
|
532
|
+
organizationName?: string | null;
|
|
533
|
+
blogName?: string | null;
|
|
534
|
+
}
|
|
535
|
+
interface BlogAnalyticsSummary {
|
|
536
|
+
totalViews: number;
|
|
537
|
+
totalUniqueVisitors: number;
|
|
538
|
+
totalPosts: number;
|
|
539
|
+
publishedPosts: number;
|
|
540
|
+
draftPosts: number;
|
|
541
|
+
scheduledPosts: number;
|
|
542
|
+
topPosts?: Array<{
|
|
543
|
+
postId: string;
|
|
544
|
+
postTitle: string;
|
|
545
|
+
postSlug: string;
|
|
546
|
+
views: number;
|
|
547
|
+
}>;
|
|
548
|
+
}
|
|
549
|
+
interface PostAnalyticsRow {
|
|
550
|
+
postId: string;
|
|
551
|
+
postTitle: string;
|
|
552
|
+
postSlug: string;
|
|
553
|
+
date: string;
|
|
554
|
+
views: number;
|
|
555
|
+
uniqueVisitors: number;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Hooks for Blog module (public API - SDK / headless)
|
|
560
|
+
*/
|
|
561
|
+
|
|
562
|
+
interface UseBlogPostsOptions {
|
|
563
|
+
page?: number;
|
|
564
|
+
limit?: number;
|
|
565
|
+
}
|
|
566
|
+
interface UseBlogPostsReturn {
|
|
567
|
+
data: BlogPostPage | null;
|
|
568
|
+
isLoading: boolean;
|
|
569
|
+
error: ApiError$1 | null;
|
|
570
|
+
refetch: () => Promise<void>;
|
|
571
|
+
}
|
|
572
|
+
/**
|
|
573
|
+
* Fetch published blog posts (paginated)
|
|
574
|
+
*
|
|
575
|
+
* @example
|
|
576
|
+
* ```tsx
|
|
577
|
+
* const { data, isLoading, error } = useBlogPosts({ page: 0, limit: 10 });
|
|
578
|
+
* data?.content.map(post => <PostCard key={post.id} post={post} />)
|
|
579
|
+
* ```
|
|
580
|
+
*/
|
|
581
|
+
declare function useBlogPosts(options?: UseBlogPostsOptions): UseBlogPostsReturn;
|
|
582
|
+
interface UseBlogPostReturn {
|
|
583
|
+
data: BlogPost | null;
|
|
584
|
+
isLoading: boolean;
|
|
585
|
+
error: ApiError$1 | null;
|
|
586
|
+
refetch: () => Promise<void>;
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Fetch a single published blog post by slug
|
|
590
|
+
*
|
|
591
|
+
* @example
|
|
592
|
+
* ```tsx
|
|
593
|
+
* const { data: post, isLoading } = useBlogPost('my-post-slug');
|
|
594
|
+
* ```
|
|
595
|
+
*/
|
|
596
|
+
declare function useBlogPost(slug: string | undefined | null): UseBlogPostReturn;
|
|
597
|
+
interface UseBlogCategoriesReturn {
|
|
598
|
+
data: BlogCategory[] | null;
|
|
599
|
+
isLoading: boolean;
|
|
600
|
+
error: ApiError$1 | null;
|
|
601
|
+
refetch: () => Promise<void>;
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Fetch blog categories (for filters / navigation)
|
|
605
|
+
*/
|
|
606
|
+
declare function useBlogCategories(): UseBlogCategoriesReturn;
|
|
607
|
+
interface UseBlogTagsReturn {
|
|
608
|
+
data: BlogTag[] | null;
|
|
609
|
+
isLoading: boolean;
|
|
610
|
+
error: ApiError$1 | null;
|
|
611
|
+
refetch: () => Promise<void>;
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* Fetch blog tags (for filters / display)
|
|
615
|
+
*/
|
|
616
|
+
declare function useBlogTags(): UseBlogTagsReturn;
|
|
617
|
+
interface UseBlogCommentsReturn {
|
|
618
|
+
data: BlogComment[] | null;
|
|
619
|
+
isLoading: boolean;
|
|
620
|
+
error: ApiError$1 | null;
|
|
621
|
+
refetch: () => Promise<void>;
|
|
622
|
+
}
|
|
623
|
+
/**
|
|
624
|
+
* Fetch approved comments for a published blog post (public API)
|
|
625
|
+
*
|
|
626
|
+
* @example
|
|
627
|
+
* ```tsx
|
|
628
|
+
* const { data: comments, refetch } = useBlogComments(post?.slug);
|
|
629
|
+
* ```
|
|
630
|
+
*/
|
|
631
|
+
declare function useBlogComments(slug: string | undefined | null): UseBlogCommentsReturn;
|
|
632
|
+
interface UseBlogCommentSubmitReturn {
|
|
633
|
+
submit: (payload: CreateBlogCommentPayload) => Promise<BlogComment | null>;
|
|
634
|
+
isSubmitting: boolean;
|
|
635
|
+
error: ApiError$1 | null;
|
|
636
|
+
resetError: () => void;
|
|
637
|
+
}
|
|
638
|
+
/**
|
|
639
|
+
* Submit a comment on a published blog post (public API). Call refetch on comments after success.
|
|
640
|
+
*
|
|
641
|
+
* @example
|
|
642
|
+
* ```tsx
|
|
643
|
+
* const { submit, isSubmitting, error } = useBlogCommentSubmit(post?.slug);
|
|
644
|
+
* await submit({ guestName: 'João', guestEmail: 'j@x.com', content: 'Texto' });
|
|
645
|
+
* refetch(); // from useBlogComments
|
|
646
|
+
* ```
|
|
647
|
+
*/
|
|
648
|
+
declare function useBlogCommentSubmit(slug: string | undefined | null): UseBlogCommentSubmitReturn;
|
|
649
|
+
interface UseBlogFeaturedPostsReturn {
|
|
650
|
+
data: BlogPostPage | null;
|
|
651
|
+
isLoading: boolean;
|
|
652
|
+
error: ApiError$1 | null;
|
|
653
|
+
refetch: () => Promise<void>;
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* Fetch featured blog posts
|
|
657
|
+
*/
|
|
658
|
+
declare function useBlogFeaturedPosts(limit?: number): UseBlogFeaturedPostsReturn;
|
|
659
|
+
interface UseNewsletterSubscribeReturn {
|
|
660
|
+
subscribe: (payload: SubscribeNewsletterPayload) => Promise<NewsletterSubscriber | null>;
|
|
661
|
+
isSubmitting: boolean;
|
|
662
|
+
error: ApiError$1 | null;
|
|
663
|
+
success: boolean;
|
|
664
|
+
reset: () => void;
|
|
665
|
+
}
|
|
666
|
+
/**
|
|
667
|
+
* Subscribe to newsletter (public API)
|
|
668
|
+
*
|
|
669
|
+
* @example
|
|
670
|
+
* ```tsx
|
|
671
|
+
* const { subscribe, isSubmitting, success, error } = useNewsletterSubscribe();
|
|
672
|
+
* await subscribe({ email: 'user@example.com', name: 'John' });
|
|
673
|
+
* ```
|
|
674
|
+
*/
|
|
675
|
+
declare function useNewsletterSubscribe(): UseNewsletterSubscribeReturn;
|
|
676
|
+
interface UseNewsletterUnsubscribeReturn {
|
|
677
|
+
unsubscribe: (email: string) => Promise<boolean>;
|
|
678
|
+
isSubmitting: boolean;
|
|
679
|
+
error: ApiError$1 | null;
|
|
680
|
+
success: boolean;
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Unsubscribe from newsletter (public API)
|
|
684
|
+
*/
|
|
685
|
+
declare function useNewsletterUnsubscribe(): UseNewsletterUnsubscribeReturn;
|
|
686
|
+
|
|
687
|
+
/**
|
|
688
|
+
* Admin hooks for Blog module (tenant-admin dashboard)
|
|
689
|
+
* These hooks use the authenticated admin API endpoints
|
|
690
|
+
*/
|
|
691
|
+
|
|
692
|
+
interface CreateBlogPostPayload {
|
|
693
|
+
title: string;
|
|
694
|
+
slug?: string;
|
|
695
|
+
excerpt?: string;
|
|
696
|
+
content: string;
|
|
697
|
+
coverImageUrl?: string;
|
|
698
|
+
metaTitle?: string;
|
|
699
|
+
metaDescription?: string;
|
|
700
|
+
canonicalUrl?: string;
|
|
701
|
+
ogTitle?: string;
|
|
702
|
+
ogDescription?: string;
|
|
703
|
+
ogImageUrl?: string;
|
|
704
|
+
status?: 'DRAFT' | 'SCHEDULED' | 'PUBLISHED';
|
|
705
|
+
scheduledAt?: string;
|
|
706
|
+
isFeatured?: boolean;
|
|
707
|
+
allowComments?: boolean;
|
|
708
|
+
categoryIds?: string[];
|
|
709
|
+
tagIds?: string[];
|
|
710
|
+
isAiGenerated?: boolean;
|
|
711
|
+
aiGenerationMetadata?: Record<string, unknown>;
|
|
712
|
+
businessContextSnapshot?: string;
|
|
713
|
+
}
|
|
714
|
+
interface UpdateBlogPostPayload extends Partial<CreateBlogPostPayload> {
|
|
715
|
+
changeReason?: string;
|
|
716
|
+
}
|
|
717
|
+
interface UseAdminBlogPostsOptions {
|
|
718
|
+
page?: number;
|
|
719
|
+
size?: number;
|
|
720
|
+
}
|
|
721
|
+
interface UseAdminBlogPostsReturn {
|
|
722
|
+
data: BlogPostPage | null;
|
|
723
|
+
isLoading: boolean;
|
|
724
|
+
error: ApiError$1 | null;
|
|
725
|
+
refetch: () => Promise<void>;
|
|
726
|
+
}
|
|
727
|
+
declare function useAdminBlogPosts(options?: UseAdminBlogPostsOptions): UseAdminBlogPostsReturn;
|
|
728
|
+
interface UseAdminBlogPostReturn {
|
|
729
|
+
data: BlogPost | null;
|
|
730
|
+
isLoading: boolean;
|
|
731
|
+
error: ApiError$1 | null;
|
|
732
|
+
refetch: () => Promise<void>;
|
|
733
|
+
}
|
|
734
|
+
declare function useAdminBlogPost(id: string | undefined | null): UseAdminBlogPostReturn;
|
|
735
|
+
interface UseAdminBlogPostMutationsReturn {
|
|
736
|
+
create: (payload: CreateBlogPostPayload) => Promise<BlogPost | null>;
|
|
737
|
+
update: (id: string, payload: UpdateBlogPostPayload) => Promise<BlogPost | null>;
|
|
738
|
+
remove: (id: string) => Promise<boolean>;
|
|
739
|
+
isLoading: boolean;
|
|
740
|
+
error: ApiError$1 | null;
|
|
741
|
+
}
|
|
742
|
+
declare function useAdminBlogPostMutations(): UseAdminBlogPostMutationsReturn;
|
|
743
|
+
interface CreateCategoryPayload {
|
|
744
|
+
name: string;
|
|
745
|
+
slug?: string;
|
|
746
|
+
description?: string;
|
|
747
|
+
color?: string;
|
|
748
|
+
parentId?: string;
|
|
749
|
+
sortOrder?: number;
|
|
750
|
+
}
|
|
751
|
+
interface UseAdminBlogCategoriesReturn {
|
|
752
|
+
data: BlogCategory[] | null;
|
|
753
|
+
isLoading: boolean;
|
|
754
|
+
error: ApiError$1 | null;
|
|
755
|
+
refetch: () => Promise<void>;
|
|
756
|
+
create: (payload: CreateCategoryPayload) => Promise<BlogCategory | null>;
|
|
757
|
+
update: (id: string, payload: Partial<CreateCategoryPayload>) => Promise<BlogCategory | null>;
|
|
758
|
+
remove: (id: string) => Promise<boolean>;
|
|
759
|
+
}
|
|
760
|
+
declare function useAdminBlogCategories(): UseAdminBlogCategoriesReturn;
|
|
761
|
+
interface CreateTagPayload {
|
|
762
|
+
name: string;
|
|
763
|
+
slug?: string;
|
|
764
|
+
}
|
|
765
|
+
interface UseAdminBlogTagsReturn {
|
|
766
|
+
data: BlogTag[] | null;
|
|
767
|
+
isLoading: boolean;
|
|
768
|
+
error: ApiError$1 | null;
|
|
769
|
+
refetch: () => Promise<void>;
|
|
770
|
+
create: (payload: CreateTagPayload) => Promise<BlogTag | null>;
|
|
771
|
+
update: (id: string, payload: Partial<CreateTagPayload>) => Promise<BlogTag | null>;
|
|
772
|
+
remove: (id: string) => Promise<boolean>;
|
|
773
|
+
}
|
|
774
|
+
declare function useAdminBlogTags(): UseAdminBlogTagsReturn;
|
|
775
|
+
interface UseAdminBlogCommentsOptions {
|
|
776
|
+
status?: string;
|
|
777
|
+
postId?: string;
|
|
778
|
+
page?: number;
|
|
779
|
+
size?: number;
|
|
780
|
+
}
|
|
781
|
+
interface BlogCommentAdmin extends BlogComment {
|
|
782
|
+
postTitle?: string;
|
|
783
|
+
postSlug?: string;
|
|
784
|
+
authorEmail?: string;
|
|
785
|
+
}
|
|
786
|
+
interface BlogCommentPage {
|
|
787
|
+
content: BlogCommentAdmin[];
|
|
788
|
+
totalElements: number;
|
|
789
|
+
totalPages: number;
|
|
790
|
+
size: number;
|
|
791
|
+
number: number;
|
|
792
|
+
first: boolean;
|
|
793
|
+
last: boolean;
|
|
794
|
+
empty: boolean;
|
|
795
|
+
}
|
|
796
|
+
interface UseAdminBlogCommentsReturn {
|
|
797
|
+
data: BlogCommentPage | null;
|
|
798
|
+
isLoading: boolean;
|
|
799
|
+
error: ApiError$1 | null;
|
|
800
|
+
refetch: () => Promise<void>;
|
|
801
|
+
updateStatus: (id: string, status: 'APPROVED' | 'REJECTED' | 'SPAM') => Promise<boolean>;
|
|
802
|
+
remove: (id: string) => Promise<boolean>;
|
|
803
|
+
}
|
|
804
|
+
declare function useAdminBlogComments(options?: UseAdminBlogCommentsOptions): UseAdminBlogCommentsReturn;
|
|
805
|
+
interface UseAdminNewsletterSubscribersOptions {
|
|
806
|
+
status?: string;
|
|
807
|
+
page?: number;
|
|
808
|
+
size?: number;
|
|
809
|
+
}
|
|
810
|
+
interface UseAdminNewsletterSubscribersReturn {
|
|
811
|
+
data: NewsletterSubscriberPage | null;
|
|
812
|
+
isLoading: boolean;
|
|
813
|
+
error: ApiError$1 | null;
|
|
814
|
+
refetch: () => Promise<void>;
|
|
815
|
+
remove: (id: string) => Promise<boolean>;
|
|
816
|
+
}
|
|
817
|
+
declare function useAdminNewsletterSubscribers(options?: UseAdminNewsletterSubscribersOptions): UseAdminNewsletterSubscribersReturn;
|
|
818
|
+
interface UseAdminNewsletterStatsReturn {
|
|
819
|
+
data: NewsletterStats | null;
|
|
820
|
+
isLoading: boolean;
|
|
821
|
+
error: ApiError$1 | null;
|
|
822
|
+
refetch: () => Promise<void>;
|
|
823
|
+
}
|
|
824
|
+
declare function useAdminNewsletterStats(): UseAdminNewsletterStatsReturn;
|
|
825
|
+
interface UseAdminBlogSettingsReturn {
|
|
826
|
+
data: BlogSettings | null;
|
|
827
|
+
isLoading: boolean;
|
|
828
|
+
error: ApiError$1 | null;
|
|
829
|
+
refetch: () => Promise<void>;
|
|
830
|
+
update: (settings: Partial<BlogSettings>) => Promise<BlogSettings | null>;
|
|
831
|
+
}
|
|
832
|
+
declare function useAdminBlogSettings(): UseAdminBlogSettingsReturn;
|
|
833
|
+
interface UseAdminBlogAnalyticsReturn {
|
|
834
|
+
data: BlogAnalyticsSummary | null;
|
|
835
|
+
isLoading: boolean;
|
|
836
|
+
error: ApiError$1 | null;
|
|
837
|
+
refetch: () => Promise<void>;
|
|
838
|
+
}
|
|
839
|
+
declare function useAdminBlogAnalytics(): UseAdminBlogAnalyticsReturn;
|
|
840
|
+
|
|
841
|
+
/**
|
|
842
|
+
* Blog utilities - Schema.org JSON-LD for SEO
|
|
843
|
+
*/
|
|
844
|
+
|
|
845
|
+
interface BlogPostSchemaLdOptions {
|
|
846
|
+
/** Full URL of the site (e.g. https://example.com) */
|
|
847
|
+
siteUrl: string;
|
|
848
|
+
/** Organization name for publisher */
|
|
849
|
+
publisherName?: string;
|
|
850
|
+
/** Logo URL for publisher */
|
|
851
|
+
publisherLogoUrl?: string;
|
|
852
|
+
}
|
|
853
|
+
/**
|
|
854
|
+
* Build Schema.org BlogPosting JSON-LD for a blog post
|
|
855
|
+
*
|
|
856
|
+
* @example
|
|
857
|
+
* ```tsx
|
|
858
|
+
* const schemaLd = getBlogPostSchemaLd(post, { siteUrl: 'https://example.com', publisherName: 'My Site' });
|
|
859
|
+
* <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schemaLd) }} />
|
|
860
|
+
* ```
|
|
861
|
+
*/
|
|
862
|
+
declare function getBlogPostSchemaLd(post: BlogPost, options: BlogPostSchemaLdOptions): Record<string, unknown>;
|
|
863
|
+
|
|
864
|
+
export { type ApiError$1 as ApiError, AuthProvider, type BlogAnalyticsSummary, type BlogAuthor, type BlogCategory, type BlogComment, type BlogCommentAdmin, type BlogCommentPage, type BlogPost, type BlogPostPage, type BlogPostSchemaLdOptions, type BlogPostStatus, type BlogSettings, type BlogTag, type CreateBlogCommentPayload, type CreateBlogPostPayload, type CreateCategoryPayload, type CreateLeadRequest, type CreateTagPayload, type EndUser, type EndUserLoginRequest, type FoxPixelConfig, FoxPixelHttpClient, FoxPixelProvider, GuestOnlyRoute, type Lead, type NewsletterFrequency, type NewsletterStats, type NewsletterStatus, type NewsletterSubscriber, type NewsletterSubscriberPage, type PostAnalyticsRow, ProtectedRoute, type Service, type ServiceCatalogResponse, type SubscribeNewsletterPayload, type UpdateBlogPostPayload, type UseAdminBlogAnalyticsReturn, type UseAdminBlogCategoriesReturn, type UseAdminBlogCommentsOptions, type UseAdminBlogCommentsReturn, type UseAdminBlogPostMutationsReturn, type UseAdminBlogPostReturn, type UseAdminBlogPostsOptions, type UseAdminBlogPostsReturn, type UseAdminBlogSettingsReturn, type UseAdminBlogTagsReturn, type UseAdminNewsletterStatsReturn, type UseAdminNewsletterSubscribersOptions, type UseAdminNewsletterSubscribersReturn, type UseBlogCategoriesReturn, type UseBlogCommentSubmitReturn, type UseBlogCommentsReturn, type UseBlogFeaturedPostsReturn, type UseBlogPostReturn, type UseBlogPostsOptions, type UseBlogPostsReturn, type UseBlogTagsReturn, type UseNewsletterSubscribeReturn, type UseNewsletterUnsubscribeReturn, getBlogPostSchemaLd, useAdminBlogAnalytics, useAdminBlogCategories, useAdminBlogComments, useAdminBlogPost, useAdminBlogPostMutations, useAdminBlogPosts, useAdminBlogSettings, useAdminBlogTags, useAdminNewsletterStats, useAdminNewsletterSubscribers, useAuth, useBlogCategories, useBlogCommentSubmit, useBlogComments, useBlogFeaturedPosts, useBlogPost, useBlogPosts, useBlogTags, useContactCapture, useFoxPixelContext, useLeadCapture, useNewsletterSubscribe, useNewsletterUnsubscribe, useServices, withAuth };
|