@prismicio/vue 5.3.0-canary.5d9ea4c → 5.3.0-canary.aa89de6

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.
Files changed (157) hide show
  1. package/dist/PrismicImage.vue.d.cts.map +1 -1
  2. package/dist/PrismicLink.vue.d.cts +24 -104
  3. package/dist/PrismicLink.vue.d.cts.map +1 -1
  4. package/dist/PrismicRichText/PrismicRichText.vue.d.cts +31 -36
  5. package/dist/PrismicRichText/PrismicRichText.vue.d.cts.map +1 -1
  6. package/dist/PrismicRichText/types.d.cts +15 -2
  7. package/dist/PrismicRichText/types.d.cts.map +1 -1
  8. package/dist/PrismicTable/PrismicTable.vue.d.cts +8 -8
  9. package/dist/PrismicTable/PrismicTable.vue.d.cts.map +1 -1
  10. package/dist/PrismicTable/types.d.cts +7 -6
  11. package/dist/PrismicTable/types.d.cts.map +1 -1
  12. package/dist/PrismicText.vue.d.cts +2 -10
  13. package/dist/PrismicText.vue.d.cts.map +1 -1
  14. package/dist/SliceZone/SliceZone.vue.d.cts +2 -10
  15. package/dist/SliceZone/SliceZone.vue.d.cts.map +1 -1
  16. package/dist/index.cjs +3 -10
  17. package/dist/index.d.cts +9 -13
  18. package/dist/index.d.ts +11 -15
  19. package/dist/index.js +3 -6
  20. package/dist/package.cjs +1 -1
  21. package/dist/package.cjs.map +1 -1
  22. package/dist/package.js +1 -1
  23. package/dist/package.js.map +1 -1
  24. package/dist/src/PrismicImage.cjs.map +1 -1
  25. package/dist/src/PrismicImage.js.map +1 -1
  26. package/dist/src/PrismicImage.vue.d.ts +4 -4
  27. package/dist/src/PrismicImage.vue.d.ts.map +1 -1
  28. package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.cjs +2 -4
  29. package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
  30. package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.js +2 -4
  31. package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  32. package/dist/src/PrismicLink.cjs.map +1 -1
  33. package/dist/src/PrismicLink.js.map +1 -1
  34. package/dist/src/PrismicLink.vue.d.ts +24 -104
  35. package/dist/src/PrismicLink.vue.d.ts.map +1 -1
  36. package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.cjs +3 -6
  37. package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
  38. package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.js +3 -6
  39. package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/src/PrismicRichText/PrismicRichText.cjs.map +1 -1
  41. package/dist/src/PrismicRichText/PrismicRichText.js.map +1 -1
  42. package/dist/src/PrismicRichText/PrismicRichText.vue.d.ts +31 -36
  43. package/dist/src/PrismicRichText/PrismicRichText.vue.d.ts.map +1 -1
  44. package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs +19 -52
  45. package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
  46. package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js +20 -53
  47. package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js.map +1 -1
  48. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.cjs.map +1 -1
  49. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.js.map +1 -1
  50. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs +75 -35
  51. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
  52. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js +76 -36
  53. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  54. package/dist/src/PrismicRichText/PrismicRichTextSerialize.cjs.map +1 -1
  55. package/dist/src/PrismicRichText/PrismicRichTextSerialize.js.map +1 -1
  56. package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs +29 -8
  57. package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
  58. package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js +30 -9
  59. package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js.map +1 -1
  60. package/dist/src/PrismicRichText/types.d.ts +15 -2
  61. package/dist/src/PrismicRichText/types.d.ts.map +1 -1
  62. package/dist/src/PrismicTable/PrismicTable.cjs.map +1 -1
  63. package/dist/src/PrismicTable/PrismicTable.js.map +1 -1
  64. package/dist/src/PrismicTable/PrismicTable.vue.d.ts +7 -7
  65. package/dist/src/PrismicTable/PrismicTable.vue.d.ts.map +1 -1
  66. package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs +5 -5
  67. package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
  68. package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js +5 -5
  69. package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  70. package/dist/src/PrismicTable/PrismicTableDefaultComponents.cjs +36 -18
  71. package/dist/src/PrismicTable/PrismicTableDefaultComponents.cjs.map +1 -1
  72. package/dist/src/PrismicTable/PrismicTableDefaultComponents.js +36 -18
  73. package/dist/src/PrismicTable/PrismicTableDefaultComponents.js.map +1 -1
  74. package/dist/src/PrismicTable/types.d.ts +7 -6
  75. package/dist/src/PrismicTable/types.d.ts.map +1 -1
  76. package/dist/src/PrismicText.cjs.map +1 -1
  77. package/dist/src/PrismicText.js.map +1 -1
  78. package/dist/src/PrismicText.vue.d.ts +2 -10
  79. package/dist/src/PrismicText.vue.d.ts.map +1 -1
  80. package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.cjs +1 -12
  81. package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
  82. package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.js +3 -14
  83. package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.js.map +1 -1
  84. package/dist/src/SliceZone/SliceZone.cjs.map +1 -1
  85. package/dist/src/SliceZone/SliceZone.js.map +1 -1
  86. package/dist/src/SliceZone/SliceZone.vue.d.ts +2 -10
  87. package/dist/src/SliceZone/SliceZone.vue.d.ts.map +1 -1
  88. package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs +5 -17
  89. package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
  90. package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js +6 -18
  91. package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js.map +1 -1
  92. package/dist/src/types.d.ts +2 -352
  93. package/dist/src/types.d.ts.map +1 -1
  94. package/dist/types.d.cts +2 -352
  95. package/dist/types.d.cts.map +1 -1
  96. package/package.json +6 -5
  97. package/src/PrismicImage.vue +2 -11
  98. package/src/PrismicLink.vue +9 -34
  99. package/src/PrismicRichText/PrismicRichText.vue +31 -101
  100. package/src/PrismicRichText/PrismicRichTextDefaultComponent.vue +46 -20
  101. package/src/PrismicRichText/PrismicRichTextSerialize.vue +31 -10
  102. package/src/PrismicRichText/types.ts +16 -1
  103. package/src/PrismicTable/PrismicTable.vue +7 -7
  104. package/src/PrismicTable/PrismicTableDefaultComponents.ts +39 -20
  105. package/src/PrismicTable/types.ts +16 -6
  106. package/src/PrismicText.vue +2 -15
  107. package/src/SliceZone/SliceZone.vue +9 -27
  108. package/src/index.ts +13 -21
  109. package/src/types.ts +1 -439
  110. package/dist/PrismicEmbed.vue.d.cts +0 -25
  111. package/dist/PrismicEmbed.vue.d.cts.map +0 -1
  112. package/dist/createPrismic.d.cts +0 -29
  113. package/dist/createPrismic.d.cts.map +0 -1
  114. package/dist/src/PrismicEmbed.cjs +0 -8
  115. package/dist/src/PrismicEmbed.cjs.map +0 -1
  116. package/dist/src/PrismicEmbed.js +0 -8
  117. package/dist/src/PrismicEmbed.js.map +0 -1
  118. package/dist/src/PrismicEmbed.vue.d.ts +0 -25
  119. package/dist/src/PrismicEmbed.vue.d.ts.map +0 -1
  120. package/dist/src/PrismicEmbed.vue_vue_type_script_setup_true_lang.cjs +0 -42
  121. package/dist/src/PrismicEmbed.vue_vue_type_script_setup_true_lang.cjs.map +0 -1
  122. package/dist/src/PrismicEmbed.vue_vue_type_script_setup_true_lang.js +0 -42
  123. package/dist/src/PrismicEmbed.vue_vue_type_script_setup_true_lang.js.map +0 -1
  124. package/dist/src/PrismicRichText/DeprecatedPrismicRichText.cjs +0 -8
  125. package/dist/src/PrismicRichText/DeprecatedPrismicRichText.cjs.map +0 -1
  126. package/dist/src/PrismicRichText/DeprecatedPrismicRichText.js +0 -8
  127. package/dist/src/PrismicRichText/DeprecatedPrismicRichText.js.map +0 -1
  128. package/dist/src/PrismicRichText/DeprecatedPrismicRichText.vue_vue_type_script_setup_true_lang.cjs +0 -92
  129. package/dist/src/PrismicRichText/DeprecatedPrismicRichText.vue_vue_type_script_setup_true_lang.cjs.map +0 -1
  130. package/dist/src/PrismicRichText/DeprecatedPrismicRichText.vue_vue_type_script_setup_true_lang.js +0 -92
  131. package/dist/src/PrismicRichText/DeprecatedPrismicRichText.vue_vue_type_script_setup_true_lang.js.map +0 -1
  132. package/dist/src/createPrismic.cjs +0 -85
  133. package/dist/src/createPrismic.cjs.map +0 -1
  134. package/dist/src/createPrismic.d.ts +0 -29
  135. package/dist/src/createPrismic.d.ts.map +0 -1
  136. package/dist/src/createPrismic.js +0 -85
  137. package/dist/src/createPrismic.js.map +0 -1
  138. package/dist/src/lib/Wrapper.cjs +0 -8
  139. package/dist/src/lib/Wrapper.cjs.map +0 -1
  140. package/dist/src/lib/Wrapper.js +0 -8
  141. package/dist/src/lib/Wrapper.js.map +0 -1
  142. package/dist/src/lib/Wrapper.vue_vue_type_script_setup_true_lang.cjs +0 -22
  143. package/dist/src/lib/Wrapper.vue_vue_type_script_setup_true_lang.cjs.map +0 -1
  144. package/dist/src/lib/Wrapper.vue_vue_type_script_setup_true_lang.js +0 -22
  145. package/dist/src/lib/Wrapper.vue_vue_type_script_setup_true_lang.js.map +0 -1
  146. package/dist/src/usePrismic.cjs +0 -38
  147. package/dist/src/usePrismic.cjs.map +0 -1
  148. package/dist/src/usePrismic.d.ts +0 -36
  149. package/dist/src/usePrismic.d.ts.map +0 -1
  150. package/dist/src/usePrismic.js +0 -37
  151. package/dist/src/usePrismic.js.map +0 -1
  152. package/dist/usePrismic.d.cts +0 -36
  153. package/dist/usePrismic.d.cts.map +0 -1
  154. package/src/PrismicEmbed.vue +0 -42
  155. package/src/PrismicRichText/DeprecatedPrismicRichText.vue +0 -146
  156. package/src/createPrismic.ts +0 -154
  157. package/src/usePrismic.ts +0 -36
@@ -1,38 +0,0 @@
1
- let vue = require("vue");
2
-
3
- //#region src/usePrismic.ts
4
- /**
5
- * `@prismicio/vue` plugin interface interface location used for
6
- * {@link usePrismic}.
7
- *
8
- * @internal
9
- */
10
- const prismicKey = Symbol("prismic");
11
- /**
12
- * Accesses `@prismicio/vue` plugin interface.
13
- *
14
- * @example
15
- *
16
- * ```javascript
17
- * // With the composition API
18
- * import { usePrismic } from "@prismicio/vue"
19
- *
20
- * export default {
21
- * setup() {
22
- * const prismic = usePrismic()
23
- *
24
- * return {}
25
- * },
26
- * }
27
- * ```
28
- *
29
- * @returns The interface {@link PrismicPlugin}
30
- */
31
- const usePrismic = () => {
32
- return (0, vue.inject)(prismicKey, { options: { endpoint: "" } });
33
- };
34
-
35
- //#endregion
36
- exports.prismicKey = prismicKey;
37
- exports.usePrismic = usePrismic;
38
- //# sourceMappingURL=usePrismic.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePrismic.cjs","names":[],"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"],"mappings":";;;;;;;;;AAWA,MAAa,aAAa,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;AAsB3C,MAAa,mBAAkC;AAC9C,wBAAc,YAAY,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE,CAAkB"}
@@ -1,36 +0,0 @@
1
- import { PrismicPlugin } from "./types.js";
2
- import { InjectionKey } from "vue";
3
-
4
- //#region src/usePrismic.d.ts
5
-
6
- /**
7
- * `@prismicio/vue` plugin interface interface location used for
8
- * {@link usePrismic}.
9
- *
10
- * @internal
11
- */
12
- declare const prismicKey: InjectionKey<PrismicPlugin>;
13
- /**
14
- * Accesses `@prismicio/vue` plugin interface.
15
- *
16
- * @example
17
- *
18
- * ```javascript
19
- * // With the composition API
20
- * import { usePrismic } from "@prismicio/vue"
21
- *
22
- * export default {
23
- * setup() {
24
- * const prismic = usePrismic()
25
- *
26
- * return {}
27
- * },
28
- * }
29
- * ```
30
- *
31
- * @returns The interface {@link PrismicPlugin}
32
- */
33
- declare const usePrismic: () => PrismicPlugin;
34
- //#endregion
35
- export { prismicKey, usePrismic };
36
- //# sourceMappingURL=usePrismic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePrismic.d.ts","names":[],"sources":["../../src/usePrismic.ts"],"sourcesContent":[],"mappings":";;;;;;;AAWA;AAsBA;;;cAtBa,YAAkC,aAAa;;;;;;;;;;;;;;;;;;;;;cAsB/C,kBAAiB"}
@@ -1,37 +0,0 @@
1
- import { inject } from "vue";
2
-
3
- //#region src/usePrismic.ts
4
- /**
5
- * `@prismicio/vue` plugin interface interface location used for
6
- * {@link usePrismic}.
7
- *
8
- * @internal
9
- */
10
- const prismicKey = Symbol("prismic");
11
- /**
12
- * Accesses `@prismicio/vue` plugin interface.
13
- *
14
- * @example
15
- *
16
- * ```javascript
17
- * // With the composition API
18
- * import { usePrismic } from "@prismicio/vue"
19
- *
20
- * export default {
21
- * setup() {
22
- * const prismic = usePrismic()
23
- *
24
- * return {}
25
- * },
26
- * }
27
- * ```
28
- *
29
- * @returns The interface {@link PrismicPlugin}
30
- */
31
- const usePrismic = () => {
32
- return inject(prismicKey, { options: { endpoint: "" } });
33
- };
34
-
35
- //#endregion
36
- export { prismicKey, usePrismic };
37
- //# sourceMappingURL=usePrismic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePrismic.js","names":[],"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"],"mappings":";;;;;;;;;AAWA,MAAa,aAAa,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;AAsB3C,MAAa,mBAAkC;AAC9C,QAAO,OAAO,YAAY,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE,CAAkB"}
@@ -1,36 +0,0 @@
1
- import { PrismicPlugin } from "./types.cjs";
2
- import { InjectionKey } from "vue";
3
-
4
- //#region src/usePrismic.d.ts
5
-
6
- /**
7
- * `@prismicio/vue` plugin interface interface location used for
8
- * {@link usePrismic}.
9
- *
10
- * @internal
11
- */
12
- declare const prismicKey: InjectionKey<PrismicPlugin>;
13
- /**
14
- * Accesses `@prismicio/vue` plugin interface.
15
- *
16
- * @example
17
- *
18
- * ```javascript
19
- * // With the composition API
20
- * import { usePrismic } from "@prismicio/vue"
21
- *
22
- * export default {
23
- * setup() {
24
- * const prismic = usePrismic()
25
- *
26
- * return {}
27
- * },
28
- * }
29
- * ```
30
- *
31
- * @returns The interface {@link PrismicPlugin}
32
- */
33
- declare const usePrismic: () => PrismicPlugin;
34
- //#endregion
35
- export { prismicKey, usePrismic };
36
- //# sourceMappingURL=usePrismic.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePrismic.d.cts","names":[],"sources":["../src/usePrismic.ts"],"sourcesContent":[],"mappings":";;;;;;;AAWA;AAsBA;;;cAtBa,YAAkC,aAAa;;;;;;;;;;;;;;;;;;;;;cAsB/C,kBAAiB"}
@@ -1,42 +0,0 @@
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>
@@ -1,146 +0,0 @@
1
- <script lang="ts" setup>
2
- // TODO: Remove in v6
3
- import { asHTML, isFilled } from "@prismicio/client"
4
- import { DEV } from "esm-env"
5
- import type { Component, PropType } from "vue"
6
- import {
7
- computed,
8
- inject,
9
- nextTick,
10
- onBeforeUnmount,
11
- onMounted,
12
- ref,
13
- watch,
14
- } from "vue"
15
- import { routerKey } from "vue-router"
16
-
17
- import { devMsg } from "../lib/devMsg"
18
- import { isInternalURL } from "../lib/isInternalURL"
19
-
20
- import { usePrismic } from "../usePrismic"
21
-
22
- import type { PrismicRichTextProps } from "./PrismicRichText.vue"
23
-
24
- /**
25
- * The default component rendered to wrap the HTML output.
26
- */
27
- const defaultWrapper = "div"
28
-
29
- // We're forced to declare props using the JavaScript syntax because `@vue/compiler-sfc`
30
- // has limitations for inferring types from complex objects.
31
- const props = defineProps({
32
- field: {
33
- type: Array as unknown as PropType<PrismicRichTextProps["field"]>,
34
- },
35
- fallback: {
36
- type: String as PropType<string>,
37
- },
38
- linkResolver: {
39
- type: Function as PropType<PrismicRichTextProps["linkResolver"]>,
40
- },
41
- serializer: {
42
- type: [Object, Function] as PropType<PrismicRichTextProps["serializer"]>,
43
- },
44
- wrapper: {
45
- type: [String, Object, Function] as PropType<
46
- PrismicRichTextProps["wrapper"]
47
- >,
48
- },
49
- })
50
- defineOptions({ name: "DeprecatedPrismicRichText" })
51
-
52
- const { options } = usePrismic()
53
-
54
- if (DEV) {
55
- onMounted(() => {
56
- console.warn(
57
- `[PrismicRichText] You're using the deprecated version of \`<PrismicRichText>\` because either the \`serializer\` prop or the plugin \`richTextSerializer\` option were provided. This API will be removed in a future major. For more details, see ${devMsg(
58
- "html-serialization-is-deprecated-with-prismic-rich-text",
59
- )}`,
60
- )
61
- })
62
- }
63
-
64
- const html = computed(() => {
65
- if (!isFilled.richText(props.field)) {
66
- return props.fallback ?? ""
67
- }
68
-
69
- const linkResolver = props.linkResolver ?? options.linkResolver
70
- const serializer = props.serializer ?? options.richTextSerializer
71
-
72
- return asHTML(props.field, { linkResolver, serializer })
73
- })
74
-
75
- // Internal links handling
76
- const root = ref<HTMLElement | Comment | Component | null>(null)
77
-
78
- const maybeRouter = inject(routerKey, null)
79
-
80
- type InternalLink = {
81
- element: HTMLAnchorElement
82
- listener: EventListener
83
- }
84
-
85
- let links: InternalLink[] = []
86
-
87
- const navigate: EventListener = function (
88
- this: { href: string },
89
- event: Event,
90
- ) {
91
- event.preventDefault()
92
- maybeRouter?.push(this.href)
93
- }
94
-
95
- const addListeners = () => {
96
- const node: HTMLElement | Comment | null =
97
- root.value && "$el" in root.value ? root.value.$el : root.value
98
- if (node && "querySelectorAll" in node) {
99
- // Get all internal link tags and add listeners on them
100
- links = Array.from(node.querySelectorAll("a"))
101
- .map((element) => {
102
- const href = element.getAttribute("href")
103
-
104
- if (href && isInternalURL(href)) {
105
- const listener = navigate.bind({ href })
106
- element.addEventListener("click", listener)
107
-
108
- return { element, listener }
109
- } else {
110
- return false
111
- }
112
- })
113
- .filter((link): link is InternalLink => link as boolean)
114
- }
115
- }
116
-
117
- const removeListeners = () => {
118
- links.forEach(({ element, listener }) =>
119
- element.removeEventListener("click", listener),
120
- )
121
- links = []
122
- }
123
-
124
- onMounted(() => {
125
- removeListeners()
126
- nextTick(addListeners)
127
- })
128
-
129
- watch(html, () => {
130
- removeListeners()
131
- nextTick(addListeners)
132
- })
133
-
134
- onBeforeUnmount(() => {
135
- removeListeners()
136
- })
137
- </script>
138
-
139
- <template>
140
- <component
141
- v-if="isFilled.richText(field) || fallback"
142
- ref="root"
143
- :is="wrapper || defaultWrapper"
144
- v-html="html"
145
- />
146
- </template>
@@ -1,154 +0,0 @@
1
- import type {
2
- Client,
3
- HTMLRichTextFunctionSerializer,
4
- HTMLRichTextMapSerializer,
5
- LinkResolverFunction,
6
- } from "@prismicio/client"
7
- import {
8
- asDate,
9
- asHTML,
10
- asImagePixelDensitySrcSet,
11
- asImageSrc,
12
- asImageWidthSrcSet,
13
- asLink,
14
- asLinkAttrs,
15
- asText,
16
- cookie,
17
- createClient,
18
- documentToLinkField,
19
- filter,
20
- isFilled,
21
- } from "@prismicio/client"
22
- import type { App } from "vue"
23
-
24
- import type {
25
- PrismicPlugin,
26
- PrismicPluginClient,
27
- PrismicPluginHelpers,
28
- PrismicPluginOptions,
29
- } from "./types"
30
-
31
- import PrismicRichText from "./PrismicRichText/PrismicRichText.vue"
32
- import PrismicTable from "./PrismicTable/PrismicTable.vue"
33
- import SliceZone from "./SliceZone/SliceZone.vue"
34
-
35
- import PrismicEmbed from "./PrismicEmbed.vue"
36
- import PrismicImage from "./PrismicImage.vue"
37
- import PrismicLink from "./PrismicLink.vue"
38
- import PrismicText from "./PrismicText.vue"
39
- import { prismicKey } from "./usePrismic"
40
-
41
- /**
42
- * Creates a `@prismicio/vue` plugin instance that can be used by a Vue app.
43
- *
44
- * @param options - {@link PrismicPluginOptions}
45
- *
46
- * @returns `@prismicio/vue` plugin instance {@link PrismicPlugin}
47
- *
48
- * @see Prismic Official Vue.js documentation: {@link https://prismic.io/docs/technologies/vuejs}
49
- * @see Plugin repository: {@link https://github.com/prismicio/prismic-vue}
50
- */
51
- export const createPrismic = (options: PrismicPluginOptions): PrismicPlugin => {
52
- // Create plugin client
53
- let client: Client
54
- if (options.client) {
55
- client = options.client
56
- } else {
57
- client = createClient(options.endpoint, options.clientConfig)
58
- }
59
-
60
- const prismicClient: PrismicPluginClient = {
61
- client,
62
- filter,
63
- cookie,
64
- }
65
-
66
- // Create plugin helpers
67
- const prismicHelpers: PrismicPluginHelpers = {
68
- asText,
69
- asHTML: (richTextField, ...config) => {
70
- const [configOrLinkResolver, maybeHTMLSerializer] = config
71
-
72
- return asHTML(
73
- richTextField,
74
- typeof configOrLinkResolver === "function" ||
75
- configOrLinkResolver == null
76
- ? {
77
- linkResolver: configOrLinkResolver || options.linkResolver,
78
- serializer:
79
- (maybeHTMLSerializer as
80
- | HTMLRichTextFunctionSerializer
81
- | HTMLRichTextMapSerializer) || options.richTextSerializer,
82
- }
83
- : {
84
- linkResolver: options.linkResolver,
85
- serializer: options.richTextSerializer,
86
- ...configOrLinkResolver,
87
- },
88
- )
89
- },
90
- asLink: (linkField, config) => {
91
- return asLink(
92
- linkField,
93
- typeof config === "function"
94
- ? { linkResolver: config }
95
- : {
96
- linkResolver: options.linkResolver,
97
- // TODO: For some reasons, TypeScript narrows the type to "unknown" where it's supposed to be a union
98
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
- ...(config as any),
100
- },
101
- )
102
- },
103
- asLinkAttrs: (linkField, config) => {
104
- return asLinkAttrs(linkField, {
105
- // TODO: We can't really retrieve the generic type here, this might cause some unexpected type error in some edge-case scenario
106
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
- linkResolver: options.linkResolver as LinkResolverFunction<any>,
108
- ...config,
109
- })
110
- },
111
- asDate,
112
- asImageSrc,
113
- asImageWidthSrcSet,
114
- asImagePixelDensitySrcSet,
115
- isFilled,
116
- documentToLinkField,
117
- }
118
-
119
- // Create plugin interface
120
- const prismic: PrismicPlugin = {
121
- options,
122
-
123
- ...prismicClient,
124
- ...prismicHelpers,
125
-
126
- install(app: App): void {
127
- app.provide(prismicKey, this)
128
- app.config.globalProperties.$prismic = this
129
-
130
- if (options.injectComponents !== false) {
131
- app.component(PrismicLink.name!, PrismicLink)
132
- app.component(PrismicEmbed.name!, PrismicEmbed)
133
- app.component(PrismicImage.name!, PrismicImage)
134
- app.component(PrismicTable.name!, PrismicTable)
135
- app.component(PrismicText.name!, PrismicText)
136
- app.component(PrismicRichText.name!, PrismicRichText)
137
- app.component(SliceZone.name!, SliceZone)
138
- }
139
- },
140
- }
141
-
142
- return prismic
143
- }
144
-
145
- declare module "vue" {
146
- export interface ComponentCustomProperties {
147
- /**
148
- * `@prismicio/vue` plugin interface exposed on `this`.
149
- *
150
- * @see `@prismicio/vue` plugin interface {@link PrismicPlugin}
151
- */
152
- $prismic: PrismicPlugin
153
- }
154
- }
package/src/usePrismic.ts DELETED
@@ -1,36 +0,0 @@
1
- import type { InjectionKey } from "vue"
2
- import { inject } from "vue"
3
-
4
- import type { PrismicPlugin } from "./types"
5
-
6
- /**
7
- * `@prismicio/vue` plugin interface interface location used for
8
- * {@link usePrismic}.
9
- *
10
- * @internal
11
- */
12
- export const prismicKey = Symbol("prismic") as InjectionKey<PrismicPlugin>
13
-
14
- /**
15
- * Accesses `@prismicio/vue` plugin interface.
16
- *
17
- * @example
18
- *
19
- * ```javascript
20
- * // With the composition API
21
- * import { usePrismic } from "@prismicio/vue"
22
- *
23
- * export default {
24
- * setup() {
25
- * const prismic = usePrismic()
26
- *
27
- * return {}
28
- * },
29
- * }
30
- * ```
31
- *
32
- * @returns The interface {@link PrismicPlugin}
33
- */
34
- export const usePrismic = (): PrismicPlugin => {
35
- return inject(prismicKey, { options: { endpoint: "" } } as PrismicPlugin)
36
- }