@prismicio/react 2.0.0-beta.5 → 2.0.0-beta.9

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.ts CHANGED
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import * as prismicH from '@prismicio/helpers';
4
4
  import * as prismicT from '@prismicio/types';
5
5
  import * as prismicR from '@prismicio/richtext';
6
+ export { Element } from '@prismicio/richtext';
6
7
 
7
8
  declare type ComponentProps<T> = T extends React.ComponentType<infer U> ? U : T extends keyof JSX.IntrinsicElements ? React.ComponentProps<T> : unknown;
8
9
  /**
@@ -99,7 +100,7 @@ declare type PrismicLinkProps<InternalComponent extends string | React.Component
99
100
  * @returns The internal or external link component depending on whether the
100
101
  * link is internal or external.
101
102
  */
102
- declare const PrismicLink: <InternalComponent extends string | React.ComponentType<LinkProps>, ExternalComponent extends string | React.ComponentType<LinkProps>, LinkResolverFunction extends prismicH.LinkResolverFunction<string>>(props: PrismicLinkProps<InternalComponent, ExternalComponent, LinkResolverFunction>) => JSX.Element | null;
103
+ declare const PrismicLink: <InternalComponent extends string | React.ComponentType<LinkProps> = "a", ExternalComponent extends string | React.ComponentType<LinkProps> = "a", LinkResolverFunction extends prismicH.LinkResolverFunction<string> = prismicH.LinkResolverFunction<string>>(props: PrismicLinkProps<InternalComponent, ExternalComponent, LinkResolverFunction>) => JSX.Element | null;
103
104
 
104
105
  /**
105
106
  * A function mapping Rich Text block types to React Components. It is used to
@@ -233,12 +234,13 @@ declare type PrismicTextProps = {
233
234
  * @example Rendering a Rich Text field as plain text.
234
235
  *
235
236
  * ```jsx
236
- * <PrismicText field={document.data.content} />
237
+ * <PrismicText field={document.data.content} />;
237
238
  * ```
238
239
  *
239
240
  * @param props - Props for the component.
240
241
  *
241
242
  * @returns The Rich Text field's content as plain text.
243
+ *
242
244
  * @see Learn about Rich Text fields {@link https://prismic.io/docs/core-concepts/rich-text-title}
243
245
  */
244
246
  declare const PrismicText: (props: PrismicTextProps) => JSX.Element | null;
@@ -286,12 +288,12 @@ declare type PrismicRichTextProps = {
286
288
  *
287
289
  * ```jsx
288
290
  * (type, node, content, children) => {
289
- * switch (type) {
290
- * case 'heading1': {
291
- * return <Heading>{chidlren}</Heading>
292
- * }
293
- * }
294
- * }
291
+ * switch (type) {
292
+ * case "heading1": {
293
+ * return <Heading>{chidlren}</Heading>;
294
+ * }
295
+ * }
296
+ * };
295
297
  * ```
296
298
  */
297
299
  components?: JSXMapSerializer | JSXFunctionSerializer;
@@ -327,23 +329,24 @@ declare type PrismicRichTextProps = {
327
329
  * @example Rendering a Rich Text field using the default HTMl elements.
328
330
  *
329
331
  * ```jsx
330
- * <PrismicRichText field={document.data.content} />
332
+ * <PrismicRichText field={document.data.content} />;
331
333
  * ```
332
334
  *
333
335
  * @example Rendering a Rich Text field using a custom set of React components.
334
336
  *
335
337
  * ```jsx
336
338
  * <PrismicRichText
337
- * field={document.data.content}
338
- * components={{
339
- * heading1: ({ children }) => <Heading>{children}</Heading>
340
- * }}
341
- * />
339
+ * field={document.data.content}
340
+ * components={{
341
+ * heading1: ({ children }) => <Heading>{children}</Heading>,
342
+ * }}
343
+ * />;
342
344
  * ```
343
345
  *
344
346
  * @param props - Props for the component.
345
347
  *
346
348
  * @returns The Rich Text field's content as React components.
349
+ *
347
350
  * @see Learn about Rich Text fields {@link https://prismic.io/docs/core-concepts/rich-text-title}
348
351
  * @see Learn about Rich Text serializers {@link https://prismic.io/docs/core-concepts/html-serializer}
349
352
  */
@@ -418,6 +421,35 @@ declare type SliceZoneComponents<TSlice extends SliceLike = SliceLike, TContext
418
421
  * cannot be found in `<SliceZone>`.
419
422
  */
420
423
  declare const TODOSliceComponent: <TSlice extends SliceLike<string>, TContext>({ slice, }: SliceComponentProps<TSlice, TContext>) => JSX.Element | null;
424
+ /**
425
+ * Arguments for a `<SliceZone>` `resolver` function.
426
+ */
427
+ declare type SliceZoneResolverArgs<TSlice extends SliceLike = SliceLike> = {
428
+ /**
429
+ * The Slice to resolve to a React component.
430
+ */
431
+ slice: TSlice;
432
+ /**
433
+ * The name of the Slice.
434
+ */
435
+ sliceName: TSlice["slice_type"];
436
+ /**
437
+ * The index of the Slice in the Slice Zone.
438
+ */
439
+ i: number;
440
+ };
441
+ /**
442
+ * A function that determines the rendered React component for each Slice in the
443
+ * Slice Zone. If a nullish value is returned, the component will fallback to
444
+ * the `components` or `defaultComponent` props to determine the rendered component.
445
+ *
446
+ * @deprecated Use the `components` prop instead.
447
+ *
448
+ * @param args - Arguments for the resolver function.
449
+ *
450
+ * @returns The React component to render for a Slice.
451
+ */
452
+ declare type SliceZoneResolver<TSlice extends SliceLike = SliceLike, TContext = unknown> = (args: SliceZoneResolverArgs<TSlice>) => SliceComponentType<TSlice, TContext> | undefined | null;
421
453
  /**
422
454
  * React props for the `<SliceZone>` component.
423
455
  *
@@ -433,6 +465,17 @@ declare type SliceZoneProps<TSlice extends SliceLike = SliceLike, TContext = unk
433
465
  * A record mapping Slice types to React components.
434
466
  */
435
467
  components?: SliceZoneComponents<TSlice, TContext>;
468
+ /**
469
+ * A function that determines the rendered React component for each Slice in
470
+ * the Slice Zone.
471
+ *
472
+ * @deprecated Use the `components` prop instead.
473
+ *
474
+ * @param args - Arguments for the resolver function.
475
+ *
476
+ * @returns The React component to render for a Slice.
477
+ */
478
+ resolver?: SliceZoneResolver<TSlice, TContext>;
436
479
  /**
437
480
  * The React component rendered if a component mapping from the `components`
438
481
  * prop cannot be found.
@@ -453,10 +496,12 @@ declare type SliceZoneProps<TSlice extends SliceLike = SliceLike, TContext = unk
453
496
  *
454
497
  * @typeParam TSlice - The type(s) of a Slice in the Slice Zone.
455
498
  * @typeParam TContext - Arbitrary data made available to all Slice components.
499
+ *
456
500
  * @returns The Slice Zone's content as React components.
501
+ *
457
502
  * @see Learn about Prismic Slices and Slice Zones {@link https://prismic.io/docs/core-concepts/slices}
458
503
  */
459
- declare const SliceZone: <TSlice extends SliceLike<string>, TContext>({ slices, components, defaultComponent, context, }: SliceZoneProps<TSlice, TContext>) => JSX.Element;
504
+ declare const SliceZone: <TSlice extends SliceLike<string>, TContext>({ slices, components, resolver, defaultComponent, context, }: SliceZoneProps<TSlice, TContext>) => JSX.Element;
460
505
 
461
506
  /**
462
507
  * Props for `<PrismicToolbar>`.
@@ -554,10 +599,13 @@ declare const usePrismicPreviewResolver: (args?: UsePrismicPreviewResolverArgs)
554
599
  *
555
600
  * @remarks
556
601
  * An additional `@prismicio/client` instance can be provided at `params.client`.
602
+ *
557
603
  * @typeParam TDocument - Type of Prismic documents returned
604
+ *
558
605
  * @param params - Parameters to filter, sort, and paginate results
559
606
  *
560
607
  * @returns The composable payload {@link ClientHookReturnType}
608
+ *
561
609
  * @see Underlying `@prismicio/client` method {@link proto.get}
562
610
  */
563
611
  declare const usePrismicDocuments: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<prismicT.Query<TDocument>>;
@@ -567,10 +615,13 @@ declare const usePrismicDocuments: <TDocument extends prismicT.PrismicDocument<R
567
615
  *
568
616
  * @remarks
569
617
  * An additional `@prismicio/client` instance can be provided at `params.client`.
618
+ *
570
619
  * @typeParam TDocument - Type of the Prismic document returned
620
+ *
571
621
  * @param params - Parameters to filter, sort, and paginate results
572
622
  *
573
623
  * @returns The composable payload {@link ClientHookReturnType}
624
+ *
574
625
  * @see Underlying `@prismicio/client` method {@link proto.getFirst}
575
626
  */
576
627
  declare const useFirstPrismicDocument: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
@@ -580,10 +631,13 @@ declare const useFirstPrismicDocument: <TDocument extends prismicT.PrismicDocume
580
631
  *
581
632
  * @remarks
582
633
  * An additional `@prismicio/client` instance can be provided at `params.client`.
634
+ *
583
635
  * @typeParam TDocument - Type of Prismic documents returned
636
+ *
584
637
  * @param params - Parameters to filter and sort results
585
638
  *
586
639
  * @returns The composable payload {@link ClientHookReturnType}
640
+ *
587
641
  * @see Underlying `@prismicio/client` method {@link proto.getAll}
588
642
  */
589
643
  declare const useAllPrismicDocumentsDangerously: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(params?: (Partial<Omit<_prismicio_client.BuildQueryURLArgs, "page">> & {
@@ -594,11 +648,14 @@ declare const useAllPrismicDocumentsDangerously: <TDocument extends prismicT.Pri
594
648
  *
595
649
  * @remarks
596
650
  * An additional `@prismicio/client` instance can be provided at `params.client`.
651
+ *
597
652
  * @typeParam TDocument - Type of the Prismic document returned
653
+ *
598
654
  * @param id - ID of the document
599
655
  * @param params - Parameters to filter, sort, and paginate results
600
656
  *
601
657
  * @returns The composable payload {@link ClientHookReturnType}
658
+ *
602
659
  * @see Underlying `@prismicio/client` method {@link proto.getByID}
603
660
  */
604
661
  declare const usePrismicDocumentByID: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(id: string, params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
@@ -607,11 +664,14 @@ declare const usePrismicDocumentByID: <TDocument extends prismicT.PrismicDocumen
607
664
  *
608
665
  * @remarks
609
666
  * An additional `@prismicio/client` instance can be provided at `params.client`.
667
+ *
610
668
  * @typeParam TDocument - Type of Prismic documents returned
669
+ *
611
670
  * @param ids - A list of document IDs
612
671
  * @param params - Parameters to filter, sort, and paginate results
613
672
  *
614
673
  * @returns The composable payload {@link ClientHookReturnType}
674
+ *
615
675
  * @see Underlying `@prismicio/client` method {@link proto.getByIDs}
616
676
  */
617
677
  declare const usePrismicDocumentsByIDs: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(id: string[], params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<prismicT.Query<TDocument>>;
@@ -620,11 +680,14 @@ declare const usePrismicDocumentsByIDs: <TDocument extends prismicT.PrismicDocum
620
680
  *
621
681
  * @remarks
622
682
  * An additional `@prismicio/client` instance can be provided at `params.client`.
683
+ *
623
684
  * @typeParam TDocument - Type of Prismic documents returned
685
+ *
624
686
  * @param ids - A list of document IDs
625
687
  * @param params - Parameters to filter and sort results
626
688
  *
627
689
  * @returns The composable payload {@link ClientHookReturnType}
690
+ *
628
691
  * @see Underlying `@prismicio/client` method {@link proto.getAllByIDs}
629
692
  */
630
693
  declare const useAllPrismicDocumentsByIDs: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(id: string[], params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
@@ -634,12 +697,15 @@ declare const useAllPrismicDocumentsByIDs: <TDocument extends prismicT.PrismicDo
634
697
  *
635
698
  * @remarks
636
699
  * An additional `@prismicio/client` instance can be provided at `params.client`.
700
+ *
637
701
  * @typeParam TDocument - Type of the Prismic document returned
702
+ *
638
703
  * @param documentType - The API ID of the document's Custom Type
639
704
  * @param uid - UID of the document
640
705
  * @param params - Parameters to filter, sort, and paginate results
641
706
  *
642
707
  * @returns The composable payload {@link ClientHookReturnType}
708
+ *
643
709
  * @see Underlying `@prismicio/client` method {@link proto.getByUID}
644
710
  */
645
711
  declare const usePrismicDocumentByUID: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(documentType: string, uid: string, params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
@@ -649,12 +715,15 @@ declare const usePrismicDocumentByUID: <TDocument extends prismicT.PrismicDocume
649
715
  *
650
716
  * @remarks
651
717
  * An additional `@prismicio/client` instance can be provided at `params.client`.
718
+ *
652
719
  * @typeParam TDocument - Type of the Prismic document returned
720
+ *
653
721
  * @param documentType - The API ID of the document's Custom Type
654
722
  * @param uids - A list of document UIDs.
655
723
  * @param params - Parameters to filter, sort, and paginate results
656
724
  *
657
725
  * @returns The composable payload {@link ClientHookReturnType}
726
+ *
658
727
  * @see Underlying `@prismicio/client` method {@link proto.getByUID}
659
728
  */
660
729
  declare const usePrismicDocumentsByUIDs: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(documentType: string, uids: string[], params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<prismicT.Query<TDocument>>;
@@ -664,12 +733,15 @@ declare const usePrismicDocumentsByUIDs: <TDocument extends prismicT.PrismicDocu
664
733
  *
665
734
  * @remarks
666
735
  * An additional `@prismicio/client` instance can be provided at `params.client`.
736
+ *
667
737
  * @typeParam TDocument - Type of the Prismic document returned
738
+ *
668
739
  * @param documentType - The API ID of the document's Custom Type
669
740
  * @param uids - A list of document UIDs.
670
741
  * @param params - Parameters to filter, sort, and paginate results
671
742
  *
672
743
  * @returns The composable payload {@link ClientHookReturnType}
744
+ *
673
745
  * @see Underlying `@prismicio/client` method {@link proto.getByUID}
674
746
  */
675
747
  declare const useAllPrismicDocumentsByUIDs: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(documentType: string, uids: string[], params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
@@ -679,11 +751,14 @@ declare const useAllPrismicDocumentsByUIDs: <TDocument extends prismicT.PrismicD
679
751
  *
680
752
  * @remarks
681
753
  * An additional `@prismicio/client` instance can be provided at `params.client`.
754
+ *
682
755
  * @typeParam TDocument - Type of the Prismic document returned
756
+ *
683
757
  * @param documentType - The API ID of the singleton Custom Type
684
758
  * @param params - Parameters to filter, sort, and paginate results
685
759
  *
686
760
  * @returns The composable payload {@link ClientHookReturnType}
761
+ *
687
762
  * @see Underlying `@prismicio/client` method {@link proto.getSingle}
688
763
  */
689
764
  declare const useSinglePrismicDocument: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(documentType: string, params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument>;
@@ -692,11 +767,14 @@ declare const useSinglePrismicDocument: <TDocument extends prismicT.PrismicDocum
692
767
  *
693
768
  * @remarks
694
769
  * An additional `@prismicio/client` instance can be provided at `params.client`.
770
+ *
695
771
  * @typeParam TDocument - Type of Prismic documents returned
772
+ *
696
773
  * @param documentType - The API ID of the Custom Type
697
774
  * @param params - Parameters to filter, sort, and paginate results
698
775
  *
699
776
  * @returns The composable payload {@link ClientHookReturnType}
777
+ *
700
778
  * @see Underlying `@prismicio/client` method {@link proto.getByType}
701
779
  */
702
780
  declare const usePrismicDocumentsByType: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(documentType: string, params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<prismicT.Query<TDocument>>;
@@ -706,11 +784,14 @@ declare const usePrismicDocumentsByType: <TDocument extends prismicT.PrismicDocu
706
784
  *
707
785
  * @remarks
708
786
  * An additional `@prismicio/client` instance can be provided at `params.client`.
787
+ *
709
788
  * @typeParam TDocument - Type of Prismic documents returned
789
+ *
710
790
  * @param documentType - The API ID of the Custom Type
711
791
  * @param params - Parameters to filter and sort results
712
792
  *
713
793
  * @returns The composable payload {@link ClientHookReturnType}
794
+ *
714
795
  * @see Underlying `@prismicio/client` method {@link proto.getAllByType}
715
796
  */
716
797
  declare const useAllPrismicDocumentsByType: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(documentType: string, params?: (Partial<Omit<_prismicio_client.BuildQueryURLArgs, "page">> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
@@ -719,11 +800,14 @@ declare const useAllPrismicDocumentsByType: <TDocument extends prismicT.PrismicD
719
800
  *
720
801
  * @remarks
721
802
  * An additional `@prismicio/client` instance can be provided at `params.client`.
803
+ *
722
804
  * @typeParam TDocument - Type of Prismic documents returned
805
+ *
723
806
  * @param tag - The tag that must be included on a document
724
807
  * @param params - Parameters to filter, sort, and paginate results
725
808
  *
726
809
  * @returns The composable payload {@link ClientHookReturnType}
810
+ *
727
811
  * @see Underlying `@prismicio/client` method {@link proto.getByTag}
728
812
  */
729
813
  declare const usePrismicDocumentsByTag: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(tag: string, params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<prismicT.Query<TDocument>>;
@@ -732,11 +816,14 @@ declare const usePrismicDocumentsByTag: <TDocument extends prismicT.PrismicDocum
732
816
  *
733
817
  * @remarks
734
818
  * An additional `@prismicio/client` instance can be provided at `params.client`.
819
+ *
735
820
  * @typeParam TDocument - Type of Prismic documents returned
821
+ *
736
822
  * @param tag - The tag that must be included on a document
737
823
  * @param params - Parameters to filter and sort results
738
824
  *
739
825
  * @returns The composable payload {@link ClientHookReturnType}
826
+ *
740
827
  * @see Underlying `@prismicio/client` method {@link proto.getAllByTag}
741
828
  */
742
829
  declare const useAllPrismicDocumentsByTag: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(tag: string, params?: (Partial<Omit<_prismicio_client.BuildQueryURLArgs, "page">> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
@@ -746,11 +833,14 @@ declare const useAllPrismicDocumentsByTag: <TDocument extends prismicT.PrismicDo
746
833
  *
747
834
  * @remarks
748
835
  * An additional `@prismicio/client` instance can be provided at `params.client`.
836
+ *
749
837
  * @typeParam TDocument - Type of Prismic documents returned
838
+ *
750
839
  * @param tags - A list of tags that must be included on a document
751
840
  * @param params - Parameters to filter, sort, and paginate results
752
841
  *
753
842
  * @returns The composable payload {@link ClientHookReturnType}
843
+ *
754
844
  * @see Underlying `@prismicio/client` method {@link proto.getByTags}
755
845
  */
756
846
  declare const usePrismicDocumentsBySomeTags: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(tag: string[], params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<prismicT.Query<TDocument>>;
@@ -760,11 +850,14 @@ declare const usePrismicDocumentsBySomeTags: <TDocument extends prismicT.Prismic
760
850
  *
761
851
  * @remarks
762
852
  * An additional `@prismicio/client` instance can be provided at `params.client`.
853
+ *
763
854
  * @typeParam TDocument - Type of Prismic documents returned
855
+ *
764
856
  * @param tags - A list of tags that must be included on a document
765
857
  * @param params - Parameters to filter and sort results
766
858
  *
767
859
  * @returns The composable payload {@link ClientHookReturnType}
860
+ *
768
861
  * @see Underlying `@prismicio/client` method {@link proto.getAllByTags}
769
862
  */
770
863
  declare const useAllPrismicDocumentsBySomeTags: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(tag: string[], params?: (Partial<Omit<_prismicio_client.BuildQueryURLArgs, "page">> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
@@ -774,11 +867,14 @@ declare const useAllPrismicDocumentsBySomeTags: <TDocument extends prismicT.Pris
774
867
  *
775
868
  * @remarks
776
869
  * An additional `@prismicio/client` instance can be provided at `params.client`.
870
+ *
777
871
  * @typeParam TDocument - Type of Prismic documents returned
872
+ *
778
873
  * @param tags - A list of tags that must be included on a document
779
874
  * @param params - Parameters to filter, sort, and paginate results
780
875
  *
781
876
  * @returns The composable payload {@link ClientHookReturnType}
877
+ *
782
878
  * @see Underlying `@prismicio/client` method {@link proto.getByTags}
783
879
  */
784
880
  declare const usePrismicDocumentsByEveryTag: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(tag: string[], params?: (Partial<_prismicio_client.BuildQueryURLArgs> & HookOnlyParameters) | undefined) => ClientHookReturnType<prismicT.Query<TDocument>>;
@@ -788,13 +884,41 @@ declare const usePrismicDocumentsByEveryTag: <TDocument extends prismicT.Prismic
788
884
  *
789
885
  * @remarks
790
886
  * An additional `@prismicio/client` instance can be provided at `params.client`.
887
+ *
791
888
  * @typeParam TDocument - Type of Prismic documents returned
889
+ *
792
890
  * @param tags - A list of tags that must be included on a document
793
891
  * @param params - Parameters to filter and sort results
794
892
  *
795
893
  * @returns The composable payload {@link ClientHookReturnType}
894
+ *
796
895
  * @see Underlying `@prismicio/client` method {@link proto.getAllByTags}
797
896
  */
798
897
  declare const useAllPrismicDocumentsByEveryTag: <TDocument extends prismicT.PrismicDocument<Record<string, prismicT.AnyRegularField | prismicT.GroupField<Record<string, prismicT.AnyRegularField>> | prismicT.SliceZone<prismicT.Slice<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>> | prismicT.SharedSlice<string, prismicT.SharedSliceVariation<string, Record<string, prismicT.AnyRegularField>, Record<string, prismicT.AnyRegularField>>>>>, string, string>>(tag: string[], params?: (Partial<Omit<_prismicio_client.BuildQueryURLArgs, "page">> & HookOnlyParameters) | undefined) => ClientHookReturnType<TDocument[]>;
799
898
 
800
- export { JSXFunctionSerializer, JSXMapSerializer, LinkProps, PrismicClientHookState, PrismicContextValue, PrismicLink, PrismicLinkProps, PrismicProvider, PrismicProviderProps, PrismicRichText, PrismicRichTextProps, PrismicText, PrismicTextProps, PrismicToolbar, PrismicToolbarProps, SliceComponentProps, SliceComponentType, SliceLike, SliceZone, SliceZoneComponents, SliceZoneLike, SliceZoneProps, TODOSliceComponent, UsePrismicPreviewResolverArgs, useAllPrismicDocumentsByEveryTag, useAllPrismicDocumentsByIDs, useAllPrismicDocumentsBySomeTags, useAllPrismicDocumentsByTag, useAllPrismicDocumentsByType, useAllPrismicDocumentsByUIDs, useAllPrismicDocumentsDangerously, useFirstPrismicDocument, usePrismicClient, usePrismicContext, usePrismicDocumentByID, usePrismicDocumentByUID, usePrismicDocuments, usePrismicDocumentsByEveryTag, usePrismicDocumentsByIDs, usePrismicDocumentsBySomeTags, usePrismicDocumentsByTag, usePrismicDocumentsByType, usePrismicDocumentsByUIDs, usePrismicPreviewResolver, useSinglePrismicDocument };
899
+ /**
900
+ * @deprecated Renamed to `Element` (without an "s").
901
+ */
902
+ declare const Elements: {
903
+ readonly heading1: "heading1";
904
+ readonly heading2: "heading2";
905
+ readonly heading3: "heading3";
906
+ readonly heading4: "heading4";
907
+ readonly heading5: "heading5";
908
+ readonly heading6: "heading6";
909
+ readonly paragraph: "paragraph";
910
+ readonly preformatted: "preformatted";
911
+ readonly strong: "strong";
912
+ readonly em: "em";
913
+ readonly listItem: "list-item";
914
+ readonly oListItem: "o-list-item";
915
+ readonly list: "group-list-item";
916
+ readonly oList: "group-o-list-item";
917
+ readonly image: "image";
918
+ readonly embed: "embed";
919
+ readonly hyperlink: "hyperlink";
920
+ readonly label: "label";
921
+ readonly span: "span";
922
+ };
923
+
924
+ export { Elements, JSXFunctionSerializer, JSXMapSerializer, LinkProps, PrismicClientHookState, PrismicContextValue, PrismicLink, PrismicLinkProps, PrismicProvider, PrismicProviderProps, PrismicRichText, PrismicRichTextProps, PrismicText, PrismicTextProps, PrismicToolbar, PrismicToolbarProps, SliceComponentProps, SliceComponentType, SliceLike, SliceZone, SliceZoneComponents, SliceZoneLike, SliceZoneProps, SliceZoneResolver, TODOSliceComponent, UsePrismicPreviewResolverArgs, useAllPrismicDocumentsByEveryTag, useAllPrismicDocumentsByIDs, useAllPrismicDocumentsBySomeTags, useAllPrismicDocumentsByTag, useAllPrismicDocumentsByType, useAllPrismicDocumentsByUIDs, useAllPrismicDocumentsDangerously, useFirstPrismicDocument, usePrismicClient, usePrismicContext, usePrismicDocumentByID, usePrismicDocumentByUID, usePrismicDocuments, usePrismicDocumentsByEveryTag, usePrismicDocumentsByIDs, usePrismicDocumentsBySomeTags, usePrismicDocumentsByTag, usePrismicDocumentsByType, usePrismicDocumentsByUIDs, usePrismicPreviewResolver, useSinglePrismicDocument };
@@ -1,6 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import * as prismicH from '@prismicio/helpers';
3
3
  import * as prismicR from '@prismicio/richtext';
4
+ import { Element } from '@prismicio/richtext';
5
+ export { Element } from '@prismicio/richtext';
4
6
 
5
7
  const PrismicContext = React.createContext({});
6
8
  const PrismicProvider = ({
@@ -255,13 +257,24 @@ const TODOSliceComponent = __PRODUCTION__ ? () => null : ({
255
257
  const SliceZone = ({
256
258
  slices = [],
257
259
  components = {},
260
+ resolver,
258
261
  defaultComponent = TODOSliceComponent,
259
262
  context = {}
260
263
  }) => {
261
264
  const renderedSlices = React.useMemo(() => {
262
265
  return slices.map((slice, index) => {
263
- const Comp = components[slice.slice_type] || defaultComponent;
264
- const key = JSON.stringify(slice);
266
+ let Comp = components[slice.slice_type] || defaultComponent;
267
+ if (resolver) {
268
+ const resolvedComp = resolver({
269
+ slice,
270
+ sliceName: slice.slice_type,
271
+ i: index
272
+ });
273
+ if (resolvedComp) {
274
+ Comp = resolvedComp;
275
+ }
276
+ }
277
+ const key = `${index}-${JSON.stringify(slice)}`;
265
278
  return /* @__PURE__ */ React.createElement(Comp, {
266
279
  key,
267
280
  slice,
@@ -278,14 +291,18 @@ const PrismicToolbar = ({
278
291
  repositoryName,
279
292
  type = "new"
280
293
  }) => {
294
+ const src = `https://static.cdn.prismic.io/prismic.js?repo=${repositoryName}${type === "new" ? "&type=new" : ""}`;
281
295
  React.useEffect(() => {
282
- const script = document.createElement("script");
283
- script.src = `https://static.cdn.prismic.io/prismic.js?repositoryName=${repositoryName}${type === "new" ? "&type=new" : ""}`;
284
- script.defer = true;
285
- script.dataset.prismicToolbar = "";
286
- script.dataset.repositoryName = repositoryName;
287
- script.dataset.type = type;
288
- document.body.appendChild(script);
296
+ const existingScript = document.querySelector(`script[src="${src}"]`);
297
+ if (!existingScript) {
298
+ const script = document.createElement("script");
299
+ script.src = src;
300
+ script.defer = true;
301
+ script.dataset.prismicToolbar = "";
302
+ script.dataset.repositoryName = repositoryName;
303
+ script.dataset.type = type;
304
+ document.body.appendChild(script);
305
+ }
289
306
  }, [repositoryName, type]);
290
307
  return null;
291
308
  };
@@ -310,21 +327,6 @@ const reducer = (state, action) => {
310
327
  const initialState = {
311
328
  state: "idle"
312
329
  };
313
- const getParamHookDependencies = (params) => {
314
- return [
315
- params.ref,
316
- params.lang,
317
- params.page,
318
- params.after,
319
- params.fetch,
320
- params.pageSize,
321
- params.orderings,
322
- params.fetchLinks,
323
- params.graphQuery,
324
- params.predicates,
325
- params.accessToken
326
- ];
327
- };
328
330
  const isParams = (value) => {
329
331
  return typeof value === "object" && value !== null && !Array.isArray(value);
330
332
  };
@@ -339,17 +341,26 @@ const useStatefulPrismicClientMethod = (methodName, args, explicitClient) => {
339
341
  const client = usePrismicClient(explicitClient || lastArgExplicitClient);
340
342
  const [state, dispatch] = React.useReducer(reducer, initialState);
341
343
  React.useEffect(() => {
342
- if (state.state === "idle" && !skip) {
343
- dispatch(["start"]);
344
- client[methodName].call(client, ...argsWithoutParams, params).then((result) => dispatch(["succeed", result])).catch((error) => dispatch(["fail", error]));
344
+ if (!skip) {
345
+ {
346
+ dispatch(["start"]);
347
+ }
348
+ client[methodName].call(client, ...argsWithoutParams, params).then((result) => {
349
+ {
350
+ dispatch(["succeed", result]);
351
+ }
352
+ }).catch((error) => {
353
+ {
354
+ dispatch(["fail", error]);
355
+ }
356
+ });
345
357
  }
346
358
  }, [
347
359
  client,
348
- state.state,
349
- skip,
350
360
  methodName,
351
- ...args.slice(0, -1),
352
- ...getParamHookDependencies(params)
361
+ skip,
362
+ JSON.stringify(argsWithoutParams),
363
+ JSON.stringify(params)
353
364
  ]);
354
365
  return React.useMemo(() => [
355
366
  state.data,
@@ -361,9 +372,11 @@ const useStatefulPrismicClientMethod = (methodName, args, explicitClient) => {
361
372
  };
362
373
 
363
374
  const usePrismicPreviewResolver = (args = {}) => {
375
+ const context = usePrismicContext();
376
+ const linkResolver = args.linkResolver || context.linkResolver;
364
377
  const result = useStatefulPrismicClientMethod("resolvePreviewURL", [
365
378
  {
366
- linkResolver: args.linkResolver,
379
+ linkResolver,
367
380
  defaultURL: args.defaultURL || "/",
368
381
  previewToken: args.previewToken,
369
382
  documentID: args.documentID
@@ -398,5 +411,7 @@ const useAllPrismicDocumentsBySomeTags = (...args) => useStatefulPrismicClientMe
398
411
  const usePrismicDocumentsByEveryTag = (...args) => useStatefulPrismicClientMethod("getByEveryTag", args);
399
412
  const useAllPrismicDocumentsByEveryTag = (...args) => useStatefulPrismicClientMethod("getAllByEveryTag", args);
400
413
 
401
- export { PrismicLink, PrismicProvider, PrismicRichText, PrismicText, PrismicToolbar, SliceZone, TODOSliceComponent, useAllPrismicDocumentsByEveryTag, useAllPrismicDocumentsByIDs, useAllPrismicDocumentsBySomeTags, useAllPrismicDocumentsByTag, useAllPrismicDocumentsByType, useAllPrismicDocumentsByUIDs, useAllPrismicDocumentsDangerously, useFirstPrismicDocument, usePrismicClient, usePrismicContext, usePrismicDocumentByID, usePrismicDocumentByUID, usePrismicDocuments, usePrismicDocumentsByEveryTag, usePrismicDocumentsByIDs, usePrismicDocumentsBySomeTags, usePrismicDocumentsByTag, usePrismicDocumentsByType, usePrismicDocumentsByUIDs, usePrismicPreviewResolver, useSinglePrismicDocument };
402
- //# sourceMappingURL=index.mjs.map
414
+ const Elements = Element;
415
+
416
+ export { Elements, PrismicLink, PrismicProvider, PrismicRichText, PrismicText, PrismicToolbar, SliceZone, TODOSliceComponent, useAllPrismicDocumentsByEveryTag, useAllPrismicDocumentsByIDs, useAllPrismicDocumentsBySomeTags, useAllPrismicDocumentsByTag, useAllPrismicDocumentsByType, useAllPrismicDocumentsByUIDs, useAllPrismicDocumentsDangerously, useFirstPrismicDocument, usePrismicClient, usePrismicContext, usePrismicDocumentByID, usePrismicDocumentByUID, usePrismicDocuments, usePrismicDocumentsByEveryTag, usePrismicDocumentsByIDs, usePrismicDocumentsBySomeTags, usePrismicDocumentsByTag, usePrismicDocumentsByType, usePrismicDocumentsByUIDs, usePrismicPreviewResolver, useSinglePrismicDocument };
417
+ //# sourceMappingURL=index.js.map