@prismicio/vue 4.2.3 → 5.0.0-alpha.0
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/README.md +4 -4
- package/dist/PrismicEmbed.vue.cjs +25 -0
- package/dist/PrismicEmbed.vue.cjs.map +1 -0
- package/dist/PrismicEmbed.vue.d.ts +19 -0
- package/dist/PrismicEmbed.vue.js +26 -0
- package/dist/PrismicEmbed.vue.js.map +1 -0
- package/dist/PrismicEmbed.vue2.cjs +4 -0
- package/dist/PrismicEmbed.vue2.cjs.map +1 -0
- package/dist/PrismicEmbed.vue2.js +5 -0
- package/dist/PrismicEmbed.vue2.js.map +1 -0
- package/dist/PrismicImage.vue.cjs +84 -0
- package/dist/PrismicImage.vue.cjs.map +1 -0
- package/dist/PrismicImage.vue.d.ts +224 -0
- package/dist/PrismicImage.vue.js +85 -0
- package/dist/PrismicImage.vue.js.map +1 -0
- package/dist/PrismicImage.vue2.cjs +4 -0
- package/dist/PrismicImage.vue2.cjs.map +1 -0
- package/dist/PrismicImage.vue2.js +5 -0
- package/dist/PrismicImage.vue2.js.map +1 -0
- package/dist/PrismicLink.vue.cjs +100 -0
- package/dist/PrismicLink.vue.cjs.map +1 -0
- package/dist/PrismicLink.vue.d.ts +278 -0
- package/dist/PrismicLink.vue.js +101 -0
- package/dist/PrismicLink.vue.js.map +1 -0
- package/dist/PrismicLink.vue2.cjs +4 -0
- package/dist/PrismicLink.vue2.cjs.map +1 -0
- package/dist/PrismicLink.vue2.js +5 -0
- package/dist/PrismicLink.vue2.js.map +1 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs +90 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs.map +1 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.d.ts +7 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js +91 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js.map +1 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs +4 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs.map +1 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js +5 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue.cjs +85 -0
- package/dist/PrismicRichText/PrismicRichText.vue.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue.d.ts +57 -0
- package/dist/PrismicRichText/PrismicRichText.vue.js +86 -0
- package/dist/PrismicRichText/PrismicRichText.vue.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue2.cjs +4 -0
- package/dist/PrismicRichText/PrismicRichText.vue2.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue2.js +5 -0
- package/dist/PrismicRichText/PrismicRichText.vue2.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs +133 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.d.ts +37 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js +134 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs +4 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js +5 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs +47 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.d.ts +10 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js +48 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs +4 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js +5 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js.map +1 -0
- package/dist/PrismicRichText/getRichTextComponentProps.cjs +10 -0
- package/dist/PrismicRichText/getRichTextComponentProps.cjs.map +1 -0
- package/dist/PrismicRichText/getRichTextComponentProps.d.ts +49 -0
- package/dist/PrismicRichText/getRichTextComponentProps.js +10 -0
- package/dist/PrismicRichText/getRichTextComponentProps.js.map +1 -0
- package/dist/PrismicRichText/index.d.ts +2 -0
- package/dist/PrismicRichText/types.d.ts +22 -0
- package/dist/PrismicText.vue.cjs +43 -0
- package/dist/PrismicText.vue.cjs.map +1 -0
- package/dist/PrismicText.vue.d.ts +31 -0
- package/dist/PrismicText.vue.js +44 -0
- package/dist/PrismicText.vue.js.map +1 -0
- package/dist/PrismicText.vue2.cjs +4 -0
- package/dist/PrismicText.vue2.cjs.map +1 -0
- package/dist/PrismicText.vue2.js +5 -0
- package/dist/PrismicText.vue2.js.map +1 -0
- package/dist/SliceZone/SliceZone.vue.cjs +63 -0
- package/dist/SliceZone/SliceZone.vue.cjs.map +1 -0
- package/dist/SliceZone/SliceZone.vue.d.ts +40 -0
- package/dist/SliceZone/SliceZone.vue.js +64 -0
- package/dist/SliceZone/SliceZone.vue.js.map +1 -0
- package/dist/SliceZone/SliceZone.vue2.cjs +4 -0
- package/dist/SliceZone/SliceZone.vue2.cjs.map +1 -0
- package/dist/SliceZone/SliceZone.vue2.js +5 -0
- package/dist/SliceZone/SliceZone.vue2.js.map +1 -0
- package/dist/SliceZone/TODOSliceComponent.cjs +29 -0
- package/dist/SliceZone/TODOSliceComponent.cjs.map +1 -0
- package/dist/SliceZone/TODOSliceComponent.d.ts +9 -0
- package/dist/SliceZone/TODOSliceComponent.js +29 -0
- package/dist/SliceZone/TODOSliceComponent.js.map +1 -0
- package/dist/SliceZone/defineSliceZoneComponents.cjs +14 -0
- package/dist/SliceZone/defineSliceZoneComponents.cjs.map +1 -0
- package/dist/SliceZone/defineSliceZoneComponents.d.ts +36 -0
- package/dist/SliceZone/defineSliceZoneComponents.js +14 -0
- package/dist/SliceZone/defineSliceZoneComponents.js.map +1 -0
- package/dist/SliceZone/getSliceComponentProps.cjs +22 -0
- package/dist/SliceZone/getSliceComponentProps.cjs.map +1 -0
- package/dist/SliceZone/getSliceComponentProps.d.ts +66 -0
- package/dist/SliceZone/getSliceComponentProps.js +22 -0
- package/dist/SliceZone/getSliceComponentProps.js.map +1 -0
- package/dist/SliceZone/index.d.ts +4 -0
- package/dist/SliceZone/types.d.ts +97 -0
- package/dist/createPrismic.cjs +17 -50
- package/dist/createPrismic.cjs.map +1 -1
- package/dist/createPrismic.d.ts +10 -0
- package/dist/createPrismic.js +16 -27
- package/dist/createPrismic.js.map +1 -1
- package/dist/index.cjs +21 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +19 -9
- package/dist/index.js +19 -38
- package/dist/index.js.map +1 -1
- package/dist/lib/Wrapper.vue.cjs +20 -0
- package/dist/lib/Wrapper.vue.cjs.map +1 -0
- package/dist/lib/Wrapper.vue.d.ts +34 -0
- package/dist/lib/Wrapper.vue.js +21 -0
- package/dist/lib/Wrapper.vue.js.map +1 -0
- package/dist/lib/Wrapper.vue2.cjs +4 -0
- package/dist/lib/Wrapper.vue2.cjs.map +1 -0
- package/dist/lib/Wrapper.vue2.js +5 -0
- package/dist/lib/Wrapper.vue2.js.map +1 -0
- package/dist/lib/devMsg.cjs +8 -0
- package/dist/lib/devMsg.cjs.map +1 -0
- package/dist/lib/devMsg.d.ts +16 -0
- package/dist/lib/devMsg.js +8 -0
- package/dist/lib/devMsg.js.map +1 -0
- package/dist/lib/isInternalURL.cjs.map +1 -1
- package/dist/lib/isInternalURL.js.map +1 -1
- package/dist/package.json.cjs +5 -0
- package/dist/package.json.cjs.map +1 -0
- package/dist/package.json.js +5 -0
- package/dist/package.json.js.map +1 -0
- package/dist/types.d.ts +42 -58
- package/dist/usePrismic.cjs +3 -2
- package/dist/usePrismic.cjs.map +1 -1
- package/dist/usePrismic.d.ts +13 -5
- package/dist/usePrismic.js +2 -1
- package/dist/usePrismic.js.map +1 -1
- package/package.json +33 -36
- package/src/PrismicEmbed.vue +42 -0
- package/src/PrismicImage.vue +160 -0
- package/src/PrismicLink.vue +191 -0
- package/src/PrismicRichText/DeprecatedPrismicRichText.vue +130 -0
- package/src/PrismicRichText/PrismicRichText.vue +157 -0
- package/src/PrismicRichText/PrismicRichTextDefaultComponent.vue +63 -0
- package/src/PrismicRichText/PrismicRichTextSerialize.vue +52 -0
- package/src/PrismicRichText/getRichTextComponentProps.ts +63 -0
- package/src/PrismicRichText/index.ts +3 -0
- package/src/PrismicRichText/types.ts +37 -0
- package/src/PrismicText.vue +63 -0
- package/src/SliceZone/SliceZone.vue +113 -0
- package/src/SliceZone/TODOSliceComponent.ts +49 -0
- package/src/SliceZone/defineSliceZoneComponents.ts +67 -0
- package/src/SliceZone/getSliceComponentProps.ts +98 -0
- package/src/SliceZone/index.ts +13 -0
- package/src/SliceZone/types.ts +163 -0
- package/src/createPrismic.ts +54 -53
- package/src/index.ts +33 -58
- package/src/lib/Wrapper.vue +22 -0
- package/src/lib/devMsg.ts +20 -0
- package/src/lib/isInternalURL.ts +4 -4
- package/src/types.ts +91 -109
- package/src/usePrismic.ts +16 -9
- package/dist/components/PrismicEmbed.cjs +0 -36
- package/dist/components/PrismicEmbed.cjs.map +0 -1
- package/dist/components/PrismicEmbed.d.ts +0 -59
- package/dist/components/PrismicEmbed.js +0 -36
- package/dist/components/PrismicEmbed.js.map +0 -1
- package/dist/components/PrismicImage.cjs +0 -122
- package/dist/components/PrismicImage.cjs.map +0 -1
- package/dist/components/PrismicImage.d.ts +0 -163
- package/dist/components/PrismicImage.js +0 -122
- package/dist/components/PrismicImage.js.map +0 -1
- package/dist/components/PrismicLink.cjs +0 -115
- package/dist/components/PrismicLink.cjs.map +0 -1
- package/dist/components/PrismicLink.d.ts +0 -192
- package/dist/components/PrismicLink.js +0 -115
- package/dist/components/PrismicLink.js.map +0 -1
- package/dist/components/PrismicRichText.cjs +0 -108
- package/dist/components/PrismicRichText.cjs.map +0 -1
- package/dist/components/PrismicRichText.d.ts +0 -161
- package/dist/components/PrismicRichText.js +0 -108
- package/dist/components/PrismicRichText.js.map +0 -1
- package/dist/components/PrismicText.cjs +0 -57
- package/dist/components/PrismicText.cjs.map +0 -1
- package/dist/components/PrismicText.d.ts +0 -119
- package/dist/components/PrismicText.js +0 -57
- package/dist/components/PrismicText.js.map +0 -1
- package/dist/components/SliceZone.cjs +0 -156
- package/dist/components/SliceZone.cjs.map +0 -1
- package/dist/components/SliceZone.d.ts +0 -375
- package/dist/components/SliceZone.js +0 -156
- package/dist/components/SliceZone.js.map +0 -1
- package/dist/components/index.d.ts +0 -12
- package/dist/composables.cjs +0 -40
- package/dist/composables.cjs.map +0 -1
- package/dist/composables.d.ts +0 -384
- package/dist/composables.js +0 -40
- package/dist/composables.js.map +0 -1
- package/dist/globalExtensions.d.ts +0 -11
- package/dist/injectionSymbols.cjs +0 -5
- package/dist/injectionSymbols.cjs.map +0 -1
- package/dist/injectionSymbols.d.ts +0 -9
- package/dist/injectionSymbols.js +0 -5
- package/dist/injectionSymbols.js.map +0 -1
- package/dist/lib/__PRODUCTION__.cjs +0 -8
- package/dist/lib/__PRODUCTION__.cjs.map +0 -1
- package/dist/lib/__PRODUCTION__.d.ts +0 -7
- package/dist/lib/__PRODUCTION__.js +0 -8
- package/dist/lib/__PRODUCTION__.js.map +0 -1
- package/dist/lib/getSlots.cjs +0 -19
- package/dist/lib/getSlots.cjs.map +0 -1
- package/dist/lib/getSlots.d.ts +0 -14
- package/dist/lib/getSlots.js +0 -19
- package/dist/lib/getSlots.js.map +0 -1
- package/dist/lib/simplyResolveComponent.cjs +0 -8
- package/dist/lib/simplyResolveComponent.cjs.map +0 -1
- package/dist/lib/simplyResolveComponent.d.ts +0 -12
- package/dist/lib/simplyResolveComponent.js +0 -8
- package/dist/lib/simplyResolveComponent.js.map +0 -1
- package/dist/useStatefulPrismicClientMethod.cjs +0 -39
- package/dist/useStatefulPrismicClientMethod.cjs.map +0 -1
- package/dist/useStatefulPrismicClientMethod.d.ts +0 -64
- package/dist/useStatefulPrismicClientMethod.js +0 -39
- package/dist/useStatefulPrismicClientMethod.js.map +0 -1
- package/src/components/PrismicEmbed.ts +0 -91
- package/src/components/PrismicImage.ts +0 -309
- package/src/components/PrismicLink.ts +0 -313
- package/src/components/PrismicRichText.ts +0 -282
- package/src/components/PrismicText.ts +0 -167
- package/src/components/SliceZone.ts +0 -619
- package/src/components/index.ts +0 -46
- package/src/composables.ts +0 -474
- package/src/globalExtensions.ts +0 -12
- package/src/injectionSymbols.ts +0 -17
- package/src/lib/__PRODUCTION__.ts +0 -12
- package/src/lib/getSlots.ts +0 -34
- package/src/lib/simplyResolveComponent.ts +0 -23
- package/src/useStatefulPrismicClientMethod.ts +0 -156
- package/vetur/attributes.json +0 -113
- package/vetur/tags.json +0 -60
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import type { ClientConfig, CreateClient, HTMLRichTextFunctionSerializer, HTMLRichTextMapSerializer, LinkResolverFunction, asDate, asHTML, asImagePixelDensitySrcSet, asImageSrc, asImageWidthSrcSet, asLink, asLinkAttrs, asText, cookie, documentToLinkField, filter, isFilled } from "@prismicio/client";
|
|
1
|
+
import type { AsLinkAttrsConfig, ClientConfig, CreateClient, HTMLRichTextFunctionSerializer, HTMLRichTextMapSerializer, LinkResolverFunction, asDate, asHTML, asImagePixelDensitySrcSet, asImageSrc, asImageWidthSrcSet, asLink, asLinkAttrs, asText, cookie, documentToLinkField, filter, isFilled } from "@prismicio/client";
|
|
2
2
|
import type { App, ConcreteComponent, DefineComponent, Raw, Ref } from "vue";
|
|
3
|
-
import type {
|
|
3
|
+
import type { VueRichTextSerializer } from "./PrismicRichText/types";
|
|
4
|
+
import type { SliceComponentType } from "./SliceZone";
|
|
4
5
|
/**
|
|
5
6
|
* Options used by `@prismicio/vue` components.
|
|
6
7
|
*/
|
|
7
8
|
type PrismicPluginComponentsOptions = {
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* The `rel` attribute for the link. By default, `"noreferrer"` is provided if
|
|
11
|
+
* the link's URL is external. This prop can be provided a function to use the
|
|
12
|
+
* link's metadata to determine the `rel` value.
|
|
11
13
|
*
|
|
12
|
-
* @defaultValue `"
|
|
14
|
+
* @defaultValue `"noreferrer"`
|
|
13
15
|
*/
|
|
14
|
-
|
|
16
|
+
linkRel?: AsLinkAttrsConfig["rel"];
|
|
15
17
|
/**
|
|
16
|
-
* An HTML tag name
|
|
17
|
-
* internal links.
|
|
18
|
+
* An HTML tag name or a component used to render internal links.
|
|
18
19
|
*
|
|
19
20
|
* @remarks
|
|
20
21
|
* HTML tag names will be rendered using the anchor tag interface (`href`,
|
|
@@ -22,12 +23,12 @@ type PrismicPluginComponentsOptions = {
|
|
|
22
23
|
* @remarks
|
|
23
24
|
* Components will be rendered using Vue Router {@link RouterLink} interface
|
|
24
25
|
* (`to` props).
|
|
26
|
+
*
|
|
25
27
|
* @defaultValue {@link RouterLink}
|
|
26
28
|
*/
|
|
27
|
-
linkInternalComponent?:
|
|
29
|
+
linkInternalComponent?: ComponentOrTagName;
|
|
28
30
|
/**
|
|
29
|
-
* An HTML tag name
|
|
30
|
-
* external links.
|
|
31
|
+
* An HTML tag name or a component used to render external links.
|
|
31
32
|
*
|
|
32
33
|
* @remarks
|
|
33
34
|
* HTML tag names will be rendered using the anchor tag interface (`href`,
|
|
@@ -35,20 +36,10 @@ type PrismicPluginComponentsOptions = {
|
|
|
35
36
|
* @remarks
|
|
36
37
|
* Components will be rendered using Vue Router {@link RouterLink} interface
|
|
37
38
|
* (`to` props).
|
|
38
|
-
* @defaultValue `"a"`
|
|
39
|
-
*/
|
|
40
|
-
linkExternalComponent?: string | ConcreteComponent | Raw<DefineComponent>;
|
|
41
|
-
/**
|
|
42
|
-
* An HTML tag name, a component, or a functional component used to render
|
|
43
|
-
* images.
|
|
44
39
|
*
|
|
45
|
-
* @
|
|
46
|
-
* HTML tag names and components will be rendered using the `img` tag
|
|
47
|
-
* interface (`src` and `alt` attribute). Components will also receive an
|
|
48
|
-
* additional `copyright` props.
|
|
49
|
-
* @defaultValue `"img"`
|
|
40
|
+
* @defaultValue `"a"`
|
|
50
41
|
*/
|
|
51
|
-
|
|
42
|
+
linkExternalComponent?: ComponentOrTagName;
|
|
52
43
|
/**
|
|
53
44
|
* Default widths to use when rendering an image with `widths="defaults"`
|
|
54
45
|
*
|
|
@@ -56,6 +47,7 @@ type PrismicPluginComponentsOptions = {
|
|
|
56
47
|
* Consider configuring image widths within your content type definition and
|
|
57
48
|
* using `widths="auto"` instead to give content writers the ability to crop
|
|
58
49
|
* images in the editor.
|
|
50
|
+
*
|
|
59
51
|
* @defaultValue `@prismicio/client` defaults
|
|
60
52
|
*/
|
|
61
53
|
imageWidthSrcSetDefaults?: number[];
|
|
@@ -66,6 +58,13 @@ type PrismicPluginComponentsOptions = {
|
|
|
66
58
|
* @defaultValue `@prismicio/client` defaults
|
|
67
59
|
*/
|
|
68
60
|
imagePixelDensitySrcSetDefaults?: number[];
|
|
61
|
+
/**
|
|
62
|
+
* An optional map of Rich Text block types to Vue Components. It is used to
|
|
63
|
+
* render Rich Text or title fields.
|
|
64
|
+
*
|
|
65
|
+
* @see Templating Rich Text and title fields from Prismic {@link https://prismic.io/docs/rich-text}
|
|
66
|
+
*/
|
|
67
|
+
richTextComponents?: VueRichTextSerializer;
|
|
69
68
|
/**
|
|
70
69
|
* A component or a functional component rendered if a component mapping from
|
|
71
70
|
* the `components` prop cannot be found.
|
|
@@ -93,18 +92,13 @@ type PrismicPluginOptionsBase = {
|
|
|
93
92
|
* An optional HTML serializer to customize the way rich text fields are
|
|
94
93
|
* rendered.
|
|
95
94
|
*
|
|
96
|
-
* @
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* An optional HTML serializer to customize the way rich text fields are
|
|
101
|
-
* rendered.
|
|
102
|
-
*
|
|
103
|
-
* @deprecated Use `richTextSerializer` instead.
|
|
95
|
+
* @remarks
|
|
96
|
+
* To provide global components for the `<PrismicRichText />` component, use
|
|
97
|
+
* the `components.richTextComponents` option instead.
|
|
104
98
|
*
|
|
105
99
|
* @see HTML serializer documentation {@link https://prismic.io/docs/core-concepts/html-serializer}
|
|
106
100
|
*/
|
|
107
|
-
|
|
101
|
+
richTextSerializer?: HTMLRichTextFunctionSerializer | HTMLRichTextMapSerializer;
|
|
108
102
|
/**
|
|
109
103
|
* Whether or not to inject components globally.
|
|
110
104
|
*
|
|
@@ -132,6 +126,7 @@ type PrismicPluginOptionsWithClient = PrismicPluginOptionsBase & {
|
|
|
132
126
|
* The client will be used by `@prismicio/vue` composables, such as
|
|
133
127
|
* {@link usePrismicDocuments} and exposed through `this.$prismic.client` and
|
|
134
128
|
* `usePrismic().client`.
|
|
129
|
+
*
|
|
135
130
|
* @see Prismic client documentation {@link https://prismic.io/docs/technologies/javascript}
|
|
136
131
|
*/
|
|
137
132
|
client: ReturnType<CreateClient>;
|
|
@@ -162,14 +157,15 @@ type PrismicPluginOptionsWithEndpoint = PrismicPluginOptionsBase & {
|
|
|
162
157
|
* Said client will be used by `@prismicio/vue` composables, such as
|
|
163
158
|
* {@link usePrismicDocuments} and exposed through `this.$prismic.client` and
|
|
164
159
|
* `usePrismic().client`.
|
|
160
|
+
*
|
|
165
161
|
* @example
|
|
166
162
|
*
|
|
167
163
|
* ```javascript
|
|
168
164
|
* // A repository ID
|
|
169
|
-
* "my-repo"
|
|
165
|
+
* "my-repo"
|
|
170
166
|
*
|
|
171
167
|
* //A full repository endpoint
|
|
172
|
-
* "https://my-repo.cdn.prismic.io/api/v2"
|
|
168
|
+
* "https://my-repo.cdn.prismic.io/api/v2"
|
|
173
169
|
* ```
|
|
174
170
|
*
|
|
175
171
|
* @see Prismic client documentation {@link https://prismic.io/docs/technologies/javascript}
|
|
@@ -266,6 +262,7 @@ export type PrismicPluginHelpers = {
|
|
|
266
262
|
* @remarks
|
|
267
263
|
* If no `htmlSerializer` is provided the function will use the one provided
|
|
268
264
|
* to the plugin at {@link PrismicPluginOptions.htmlSerializer} if available.
|
|
265
|
+
*
|
|
269
266
|
* @see Templating rich text and title fields {@link https://prismic.io/docs/technologies/vue-template-content#rich-text-and-titles}
|
|
270
267
|
*/
|
|
271
268
|
asHTML: typeof asHTML;
|
|
@@ -276,6 +273,7 @@ export type PrismicPluginHelpers = {
|
|
|
276
273
|
* @remarks
|
|
277
274
|
* If no `linkResolver` is provided the function will use the one provided to
|
|
278
275
|
* the plugin at {@link PrismicPluginOptions.linkResolver} if available.
|
|
276
|
+
*
|
|
279
277
|
* @see Templating link fields {@link https://prismic.io/docs/technologies/vue-template-content#links-and-content-relationships}
|
|
280
278
|
*/
|
|
281
279
|
asLink: typeof asLink;
|
|
@@ -286,6 +284,7 @@ export type PrismicPluginHelpers = {
|
|
|
286
284
|
* @remarks
|
|
287
285
|
* If no `linkResolver` is provided the function will use the one provided to
|
|
288
286
|
* the plugin at {@link PrismicPluginOptions.linkResolver} if available.
|
|
287
|
+
*
|
|
289
288
|
* @see Templating link fields {@link https://prismic.io/docs/technologies/vue-template-content#links-and-content-relationships}
|
|
290
289
|
*/
|
|
291
290
|
asLinkAttrs: typeof asLinkAttrs;
|
|
@@ -295,19 +294,19 @@ export type PrismicPluginHelpers = {
|
|
|
295
294
|
*/
|
|
296
295
|
asDate: typeof asDate;
|
|
297
296
|
/**
|
|
298
|
-
* Returns the URL of an
|
|
297
|
+
* Returns the URL of an image field with optional image transformations (via
|
|
299
298
|
* Imgix URL parameters). This is `@prismicio/client` {@link asImageSrc}
|
|
300
299
|
* function.
|
|
301
300
|
*/
|
|
302
301
|
asImageSrc: typeof asImageSrc;
|
|
303
302
|
/**
|
|
304
|
-
* Creates a width-based `srcset` from an
|
|
303
|
+
* Creates a width-based `srcset` from an image field with optional image
|
|
305
304
|
* transformations (via Imgix URL parameters). This is `@prismicio/client`
|
|
306
305
|
* {@link asImageWidthSrcSet} function.
|
|
307
306
|
*/
|
|
308
307
|
asImageWidthSrcSet: typeof asImageWidthSrcSet;
|
|
309
308
|
/**
|
|
310
|
-
* Creates a pixel-density-based `srcset` from an
|
|
309
|
+
* Creates a pixel-density-based `srcset` from an image field with optional
|
|
311
310
|
* image transformations (via Imgix URL parameters). This is
|
|
312
311
|
* `@prismicio/client` {@link asImagePixelDensitySrcSet} function.
|
|
313
312
|
*/
|
|
@@ -343,27 +342,6 @@ export type PrismicPlugin = {
|
|
|
343
342
|
*/
|
|
344
343
|
install: (app: App) => void;
|
|
345
344
|
} & PrismicPluginClient & PrismicPluginHelpers;
|
|
346
|
-
/**
|
|
347
|
-
* States of a `@prismicio/client` composable.
|
|
348
|
-
*/
|
|
349
|
-
export declare const enum PrismicClientComposableState {
|
|
350
|
-
/**
|
|
351
|
-
* The composable has not started fetching.
|
|
352
|
-
*/
|
|
353
|
-
Idle = "idle",
|
|
354
|
-
/**
|
|
355
|
-
* The composable is fetching data.
|
|
356
|
-
*/
|
|
357
|
-
Pending = "pending",
|
|
358
|
-
/**
|
|
359
|
-
* The composable sucessfully fetched data.
|
|
360
|
-
*/
|
|
361
|
-
Success = "success",
|
|
362
|
-
/**
|
|
363
|
-
* The composable failed to fetch data.
|
|
364
|
-
*/
|
|
365
|
-
Error = "error"
|
|
366
|
-
}
|
|
367
345
|
/**
|
|
368
346
|
* Type to transform a static object into one that allows passing Refs as
|
|
369
347
|
* values.
|
|
@@ -381,4 +359,10 @@ export type VueUseOptions<T> = {
|
|
|
381
359
|
export type VueUseParameters<T> = {
|
|
382
360
|
[K in keyof T]: T extends number ? Ref<T[K]> | T[K] : T[K];
|
|
383
361
|
};
|
|
362
|
+
/**
|
|
363
|
+
* A component or a tag name to be used as props.
|
|
364
|
+
*
|
|
365
|
+
* @internal
|
|
366
|
+
*/
|
|
367
|
+
export type ComponentOrTagName = string | ConcreteComponent | Raw<DefineComponent>;
|
|
384
368
|
export {};
|
package/dist/usePrismic.cjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const
|
|
4
|
+
const prismicKey = Symbol("prismic");
|
|
5
5
|
const usePrismic = () => {
|
|
6
|
-
return vue.inject(
|
|
6
|
+
return vue.inject(prismicKey, { options: { endpoint: "" } });
|
|
7
7
|
};
|
|
8
|
+
exports.prismicKey = prismicKey;
|
|
8
9
|
exports.usePrismic = usePrismic;
|
|
9
10
|
//# sourceMappingURL=usePrismic.cjs.map
|
package/dist/usePrismic.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePrismic.cjs","sources":["../../src/usePrismic.ts"],"sourcesContent":["import { inject } from \"vue\"
|
|
1
|
+
{"version":3,"file":"usePrismic.cjs","sources":["../../src/usePrismic.ts"],"sourcesContent":["import type { InjectionKey } from \"vue\"\nimport { inject } from \"vue\"\n\nimport type { PrismicPlugin } from \"./types\"\n\n/**\n * `@prismicio/vue` plugin interface interface location used for\n * {@link usePrismic}.\n *\n * @internal\n */\nexport const prismicKey = Symbol(\"prismic\") as InjectionKey<PrismicPlugin>\n\n/**\n * Accesses `@prismicio/vue` plugin interface.\n *\n * @example\n *\n * ```javascript\n * // With the composition API\n * import { usePrismic } from \"@prismicio/vue\"\n *\n * export default {\n * \tsetup() {\n * \t\tconst prismic = usePrismic()\n *\n * \t\treturn {}\n * \t},\n * }\n * ```\n *\n * @returns The interface {@link PrismicPlugin}\n */\nexport const usePrismic = (): PrismicPlugin => {\n\treturn inject(prismicKey, { options: { endpoint: \"\" } } as PrismicPlugin)\n}\n"],"names":["inject"],"mappings":";;;AAWa,MAAA,aAAa,OAAO,SAAS;AAsBnC,MAAM,aAAa,MAAoB;AACtC,SAAAA,IAAAA,OAAO,YAAY,EAAE,SAAS,EAAE,UAAU,GAAA,GAAuB;AACzE;;;"}
|
package/dist/usePrismic.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { InjectionKey } from "vue";
|
|
2
|
+
import type { PrismicPlugin } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* `@prismicio/vue` plugin interface interface location used for
|
|
5
|
+
* {@link usePrismic}.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare const prismicKey: InjectionKey<PrismicPlugin>;
|
|
2
10
|
/**
|
|
3
11
|
* Accesses `@prismicio/vue` plugin interface.
|
|
4
12
|
*
|
|
@@ -6,15 +14,15 @@ import { PrismicPlugin } from "./types";
|
|
|
6
14
|
*
|
|
7
15
|
* ```javascript
|
|
8
16
|
* // With the composition API
|
|
9
|
-
* import { usePrismic } from "@prismicio/vue"
|
|
17
|
+
* import { usePrismic } from "@prismicio/vue"
|
|
10
18
|
*
|
|
11
19
|
* export default {
|
|
12
20
|
* setup() {
|
|
13
|
-
* const prismic = usePrismic()
|
|
21
|
+
* const prismic = usePrismic()
|
|
14
22
|
*
|
|
15
|
-
* return {}
|
|
23
|
+
* return {}
|
|
16
24
|
* },
|
|
17
|
-
* }
|
|
25
|
+
* }
|
|
18
26
|
* ```
|
|
19
27
|
*
|
|
20
28
|
* @returns The interface {@link PrismicPlugin}
|
package/dist/usePrismic.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { inject } from "vue";
|
|
2
|
-
|
|
2
|
+
const prismicKey = Symbol("prismic");
|
|
3
3
|
const usePrismic = () => {
|
|
4
4
|
return inject(prismicKey, { options: { endpoint: "" } });
|
|
5
5
|
};
|
|
6
6
|
export {
|
|
7
|
+
prismicKey,
|
|
7
8
|
usePrismic
|
|
8
9
|
};
|
|
9
10
|
//# sourceMappingURL=usePrismic.js.map
|
package/dist/usePrismic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePrismic.js","sources":["../../src/usePrismic.ts"],"sourcesContent":["import { inject } from \"vue\"
|
|
1
|
+
{"version":3,"file":"usePrismic.js","sources":["../../src/usePrismic.ts"],"sourcesContent":["import type { InjectionKey } from \"vue\"\nimport { inject } from \"vue\"\n\nimport type { PrismicPlugin } from \"./types\"\n\n/**\n * `@prismicio/vue` plugin interface interface location used for\n * {@link usePrismic}.\n *\n * @internal\n */\nexport const prismicKey = Symbol(\"prismic\") as InjectionKey<PrismicPlugin>\n\n/**\n * Accesses `@prismicio/vue` plugin interface.\n *\n * @example\n *\n * ```javascript\n * // With the composition API\n * import { usePrismic } from \"@prismicio/vue\"\n *\n * export default {\n * \tsetup() {\n * \t\tconst prismic = usePrismic()\n *\n * \t\treturn {}\n * \t},\n * }\n * ```\n *\n * @returns The interface {@link PrismicPlugin}\n */\nexport const usePrismic = (): PrismicPlugin => {\n\treturn inject(prismicKey, { options: { endpoint: \"\" } } as PrismicPlugin)\n}\n"],"names":[],"mappings":";AAWa,MAAA,aAAa,OAAO,SAAS;AAsBnC,MAAM,aAAa,MAAoB;AACtC,SAAA,OAAO,YAAY,EAAE,SAAS,EAAE,UAAU,GAAA,GAAuB;AACzE;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prismicio/vue",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0-alpha.0",
|
|
4
4
|
"description": "Vue plugin, components, and composables to fetch and present Prismic content",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -46,49 +46,50 @@
|
|
|
46
46
|
"prepare": "npm run build",
|
|
47
47
|
"release": "npm run test && standard-version && git push --follow-tags && npm run build && npm publish",
|
|
48
48
|
"release:dry": "standard-version --dry-run",
|
|
49
|
-
"release:
|
|
50
|
-
"release:
|
|
51
|
-
"lint": "eslint
|
|
52
|
-
"types": "vitest typecheck --run && tsc --noEmit",
|
|
53
|
-
"types:watch": "vitest typecheck",
|
|
49
|
+
"release:alpha": "npm run test && standard-version --release-as major --prerelease alpha && git push --follow-tags && npm run build && npm publish --tag alpha",
|
|
50
|
+
"release:alpha:dry": "standard-version --release-as major --prerelease alpha --dry-run",
|
|
51
|
+
"lint": "eslint",
|
|
52
|
+
"types": "vitest --typecheck.only --run && vue-tsc --noEmit",
|
|
53
|
+
"types:watch": "vitest --typecheck.only",
|
|
54
54
|
"unit": "vitest run --coverage",
|
|
55
55
|
"unit:watch": "vitest watch",
|
|
56
56
|
"size": "size-limit",
|
|
57
57
|
"test": "npm run lint && npm run types && npm run unit && npm run build && npm run size"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@prismicio/client": "^7.
|
|
61
|
-
"
|
|
62
|
-
"vue-router": "^4.
|
|
60
|
+
"@prismicio/client": "^7.12.0",
|
|
61
|
+
"esm-env": "^1.2.1",
|
|
62
|
+
"vue-router": "^4.5.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@
|
|
66
|
-
"@
|
|
65
|
+
"@eslint/js": "^9.16.0",
|
|
66
|
+
"@prismicio/mock": "^0.4.0",
|
|
67
|
+
"@size-limit/preset-small-lib": "^11.1.6",
|
|
67
68
|
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
68
69
|
"@types/jsdom-global": "^3.0.7",
|
|
69
|
-
"@
|
|
70
|
-
"@
|
|
71
|
-
"@
|
|
72
|
-
"@
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"eslint": "^
|
|
77
|
-
"eslint-
|
|
78
|
-
"
|
|
79
|
-
"eslint-plugin-tsdoc": "^0.2.17",
|
|
80
|
-
"eslint-plugin-vue": "^9.24.0",
|
|
81
|
-
"jsdom": "^24.0.0",
|
|
70
|
+
"@vitejs/plugin-vue": "^5.2.1",
|
|
71
|
+
"@vitest/coverage-v8": "^2.1.8",
|
|
72
|
+
"@vue/eslint-config-typescript": "^14.1.4",
|
|
73
|
+
"@vue/test-utils": "^2.4.6",
|
|
74
|
+
"eslint": "^9.16.0",
|
|
75
|
+
"eslint-config-prettier": "^9.1.0",
|
|
76
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
77
|
+
"eslint-plugin-tsdoc": "^0.4.0",
|
|
78
|
+
"eslint-plugin-vue": "^9.32.0",
|
|
79
|
+
"jsdom": "^25.0.1",
|
|
82
80
|
"jsdom-global": "^3.0.2",
|
|
83
|
-
"prettier": "^
|
|
84
|
-
"prettier-plugin-jsdoc": "^
|
|
85
|
-
"size-limit": "^
|
|
81
|
+
"prettier": "^3.4.2",
|
|
82
|
+
"prettier-plugin-jsdoc": "^1.3.0",
|
|
83
|
+
"size-limit": "^11.1.6",
|
|
86
84
|
"standard-version": "^9.5.0",
|
|
87
|
-
"typescript": "
|
|
88
|
-
"
|
|
89
|
-
"vite
|
|
90
|
-
"
|
|
91
|
-
"
|
|
85
|
+
"typescript": "~5.6.3",
|
|
86
|
+
"typescript-eslint": "^8.17.0",
|
|
87
|
+
"vite": "^6.0.2",
|
|
88
|
+
"vite-plugin-dts": "^4.3.0",
|
|
89
|
+
"vite-plugin-sdk": "^0.1.3",
|
|
90
|
+
"vitest": "^2.1.8",
|
|
91
|
+
"vue": "^3.5.13",
|
|
92
|
+
"vue-tsc": "^2.1.10"
|
|
92
93
|
},
|
|
93
94
|
"peerDependencies": {
|
|
94
95
|
"vue": "^3.0.0"
|
|
@@ -98,9 +99,5 @@
|
|
|
98
99
|
},
|
|
99
100
|
"publishConfig": {
|
|
100
101
|
"access": "public"
|
|
101
|
-
},
|
|
102
|
-
"vetur": {
|
|
103
|
-
"tags": "vetur/tags.json",
|
|
104
|
-
"attributes": "vetur/attributes.json"
|
|
105
102
|
}
|
|
106
103
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import type { EmbedField } from "@prismicio/client"
|
|
3
|
+
import { isFilled } from "@prismicio/client"
|
|
4
|
+
|
|
5
|
+
import type { ComponentOrTagName } from "./types"
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The default component rendered to wrap the embed.
|
|
9
|
+
*/
|
|
10
|
+
const defaultWrapper = "div"
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Props for `<PrismicEmbed />`.
|
|
14
|
+
*/
|
|
15
|
+
export type PrismicEmbedProps = {
|
|
16
|
+
/**
|
|
17
|
+
* The Prismic EMbed field to render.
|
|
18
|
+
*/
|
|
19
|
+
field: EmbedField
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* An HTML tag name or a component used to wrap the output.
|
|
23
|
+
*
|
|
24
|
+
* @defaultValue `"div"`
|
|
25
|
+
*/
|
|
26
|
+
wrapper?: ComponentOrTagName
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
defineProps<PrismicEmbedProps>()
|
|
30
|
+
defineOptions({ name: "PrismicEmbed" })
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<template>
|
|
34
|
+
<component
|
|
35
|
+
v-if="isFilled.embed(field)"
|
|
36
|
+
:is="wrapper || defaultWrapper"
|
|
37
|
+
:data-oembed="field.embed_url"
|
|
38
|
+
:data-oembed-type="field.type"
|
|
39
|
+
:data-oembed-provider="field.provider_name"
|
|
40
|
+
v-html="field.html"
|
|
41
|
+
/>
|
|
42
|
+
</template>
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import type { ImageField, asImageSrc } from "@prismicio/client"
|
|
3
|
+
import {
|
|
4
|
+
asImagePixelDensitySrcSet,
|
|
5
|
+
asImageWidthSrcSet,
|
|
6
|
+
isFilled,
|
|
7
|
+
} from "@prismicio/client"
|
|
8
|
+
import { DEV } from "esm-env"
|
|
9
|
+
import { computed, watchEffect } from "vue"
|
|
10
|
+
|
|
11
|
+
import { devMsg } from "./lib/devMsg"
|
|
12
|
+
|
|
13
|
+
import { usePrismic } from "./usePrismic"
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Props for `<PrismicImage />`.
|
|
17
|
+
*/
|
|
18
|
+
export type PrismicImageProps = {
|
|
19
|
+
/**
|
|
20
|
+
* The Prismic image field or thumbnail to render.
|
|
21
|
+
*/
|
|
22
|
+
field: ImageField | ImageField<string>
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* An object of Imgix URL API parameters to transform the image.
|
|
26
|
+
*
|
|
27
|
+
* See: https://docs.imgix.com/apis/rendering
|
|
28
|
+
*/
|
|
29
|
+
imgixParams?: Parameters<typeof asImageSrc>[1]
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Declare an image as decorative by providing `alt=""`.
|
|
33
|
+
*
|
|
34
|
+
* See:
|
|
35
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/alt#decorative_images
|
|
36
|
+
*/
|
|
37
|
+
alt?: ""
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Declare an image as decorative only if the image field does not have
|
|
41
|
+
* alternative text by providing `fallbackAlt=""`.
|
|
42
|
+
*
|
|
43
|
+
* See:
|
|
44
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/alt#decorative_images
|
|
45
|
+
*/
|
|
46
|
+
fallbackAlt?: ""
|
|
47
|
+
} & (
|
|
48
|
+
| {
|
|
49
|
+
/**
|
|
50
|
+
* Widths used to build a `srcset` value for the image field.
|
|
51
|
+
*
|
|
52
|
+
* If a `widths` prop is not given or `"defaults"` is passed, the
|
|
53
|
+
* following widths will be used: 640, 750, 828, 1080, 1200, 1920, 2048,
|
|
54
|
+
* 3840.
|
|
55
|
+
*
|
|
56
|
+
* If the image field contains responsive views, each responsive view can
|
|
57
|
+
* be used as a width in the resulting `srcset` by passing `"thumbnails"`
|
|
58
|
+
* as the `widths` prop.
|
|
59
|
+
*/
|
|
60
|
+
widths?:
|
|
61
|
+
| NonNullable<Parameters<typeof asImageWidthSrcSet>[1]>["widths"]
|
|
62
|
+
| "thumbnails"
|
|
63
|
+
| "defaults"
|
|
64
|
+
/**
|
|
65
|
+
* Not used when the `widths` prop is used.
|
|
66
|
+
*/
|
|
67
|
+
pixelDensities?: never
|
|
68
|
+
}
|
|
69
|
+
| {
|
|
70
|
+
/**
|
|
71
|
+
* Not used when the `widths` prop is used.
|
|
72
|
+
*/
|
|
73
|
+
widths?: never
|
|
74
|
+
/**
|
|
75
|
+
* Pixel densities used to build a `srcset` value for the image field.
|
|
76
|
+
*
|
|
77
|
+
* If a `pixelDensities` prop is passed `"defaults"`, the following pixel
|
|
78
|
+
* densities will be used: 1, 2, 3.
|
|
79
|
+
*/
|
|
80
|
+
pixelDensities:
|
|
81
|
+
| NonNullable<
|
|
82
|
+
Parameters<typeof asImagePixelDensitySrcSet>[1]
|
|
83
|
+
>["pixelDensities"]
|
|
84
|
+
| "defaults"
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
const props = defineProps<PrismicImageProps>()
|
|
89
|
+
defineOptions({ name: "PrismicImage" })
|
|
90
|
+
|
|
91
|
+
const { options } = usePrismic()
|
|
92
|
+
|
|
93
|
+
if (DEV) {
|
|
94
|
+
watchEffect(() => {
|
|
95
|
+
if (typeof props.alt === "string" && props.alt !== "") {
|
|
96
|
+
console.warn(
|
|
97
|
+
`[PrismicImage] The "alt" prop can only be used to declare an image as decorative by passing an empty string (alt="") but was provided a non-empty string. You can resolve this warning by removing the "alt" prop or changing it to alt="". For more details, see ${devMsg(
|
|
98
|
+
"alt-must-be-an-empty-string",
|
|
99
|
+
)}`,
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (typeof props.fallbackAlt === "string" && props.fallbackAlt !== "") {
|
|
104
|
+
console.warn(
|
|
105
|
+
`[PrismicImage] The "fallbackAlt" prop can only be used to declare an image as decorative by passing an empty string (fallbackAlt="") but was provided a non-empty string. You can resolve this warning by removing the "fallbackAlt" prop or changing it to fallbackAlt="". For more details, see ${devMsg(
|
|
106
|
+
"alt-must-be-an-empty-string",
|
|
107
|
+
)}`,
|
|
108
|
+
)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (props.widths && props.pixelDensities) {
|
|
112
|
+
console.warn(
|
|
113
|
+
`[PrismicImage] Only one of "widths" or "pixelDensities" props can be provided. You can resolve this warning by removing either the "widths" or "pixelDensities" prop. "widths" will be used in this case.`,
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const image = computed(() => {
|
|
120
|
+
if (!isFilled.imageThumbnail(props.field)) {
|
|
121
|
+
return
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
let src: string | undefined
|
|
125
|
+
let srcSet: string | undefined
|
|
126
|
+
if (props.widths || !props.pixelDensities) {
|
|
127
|
+
const res = asImageWidthSrcSet(props.field, {
|
|
128
|
+
...props.imgixParams,
|
|
129
|
+
widths:
|
|
130
|
+
props.widths === "defaults"
|
|
131
|
+
? options.components?.imageWidthSrcSetDefaults
|
|
132
|
+
: props.widths,
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
src = res.src
|
|
136
|
+
srcSet = res.srcset
|
|
137
|
+
} else if (props.pixelDensities) {
|
|
138
|
+
const res = asImagePixelDensitySrcSet(props.field, {
|
|
139
|
+
...props.imgixParams,
|
|
140
|
+
pixelDensities:
|
|
141
|
+
props.pixelDensities === "defaults"
|
|
142
|
+
? options.components?.imagePixelDensitySrcSetDefaults
|
|
143
|
+
: props.pixelDensities,
|
|
144
|
+
})
|
|
145
|
+
|
|
146
|
+
src = res.src
|
|
147
|
+
srcSet = res.srcset
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return {
|
|
151
|
+
src,
|
|
152
|
+
srcSet,
|
|
153
|
+
alt: props.alt ?? (props.field.alt || props.fallbackAlt),
|
|
154
|
+
}
|
|
155
|
+
})
|
|
156
|
+
</script>
|
|
157
|
+
|
|
158
|
+
<template>
|
|
159
|
+
<img v-if="image" :src="image.src" :srcset="image.srcSet" :alt="image.alt" />
|
|
160
|
+
</template>
|