@prismicio/vue 5.3.0 → 6.0.0-canary.331d154

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 (344) hide show
  1. package/README.md +10 -24
  2. package/dist/PrismicImage.cjs +8 -0
  3. package/dist/PrismicImage.cjs.map +1 -0
  4. package/dist/PrismicImage.js +8 -0
  5. package/dist/PrismicImage.js.map +1 -0
  6. package/dist/PrismicImage.vue.d.cts +267 -0
  7. package/dist/PrismicImage.vue.d.cts.map +1 -0
  8. package/dist/PrismicImage.vue.d.ts +258 -285
  9. package/dist/PrismicImage.vue.d.ts.map +1 -0
  10. package/dist/PrismicImage.vue_vue_type_script_setup_true_lang.cjs +115 -0
  11. package/dist/PrismicImage.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  12. package/dist/PrismicImage.vue_vue_type_script_setup_true_lang.js +115 -0
  13. package/dist/PrismicImage.vue_vue_type_script_setup_true_lang.js.map +1 -0
  14. package/dist/PrismicLink.cjs +8 -0
  15. package/dist/PrismicLink.cjs.map +1 -0
  16. package/dist/PrismicLink.js +8 -0
  17. package/dist/PrismicLink.js.map +1 -0
  18. package/dist/PrismicLink.vue.d.cts +207 -0
  19. package/dist/PrismicLink.vue.d.cts.map +1 -0
  20. package/dist/PrismicLink.vue.d.ts +196 -268
  21. package/dist/PrismicLink.vue.d.ts.map +1 -0
  22. package/dist/PrismicLink.vue_vue_type_script_setup_true_lang.cjs +79 -0
  23. package/dist/PrismicLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  24. package/dist/PrismicLink.vue_vue_type_script_setup_true_lang.js +79 -0
  25. package/dist/PrismicLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  26. package/dist/PrismicRichText/PrismicRichText.cjs +8 -0
  27. package/dist/PrismicRichText/PrismicRichText.cjs.map +1 -0
  28. package/dist/PrismicRichText/PrismicRichText.js +8 -0
  29. package/dist/PrismicRichText/PrismicRichText.js.map +1 -0
  30. package/dist/PrismicRichText/PrismicRichText.vue.d.cts +73 -0
  31. package/dist/PrismicRichText/PrismicRichText.vue.d.cts.map +1 -0
  32. package/dist/PrismicRichText/PrismicRichText.vue.d.ts +72 -95
  33. package/dist/PrismicRichText/PrismicRichText.vue.d.ts.map +1 -0
  34. package/dist/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs +78 -0
  35. package/dist/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  36. package/dist/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js +78 -0
  37. package/dist/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js.map +1 -0
  38. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.cjs +8 -0
  39. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.cjs.map +1 -0
  40. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.js +8 -0
  41. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.js.map +1 -0
  42. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs +123 -0
  43. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  44. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js +123 -0
  45. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  46. package/dist/PrismicRichText/PrismicRichTextSerialize.cjs +8 -0
  47. package/dist/PrismicRichText/PrismicRichTextSerialize.cjs.map +1 -0
  48. package/dist/PrismicRichText/PrismicRichTextSerialize.js +8 -0
  49. package/dist/PrismicRichText/PrismicRichTextSerialize.js.map +1 -0
  50. package/dist/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs +46 -0
  51. package/dist/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  52. package/dist/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js +46 -0
  53. package/dist/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js.map +1 -0
  54. package/dist/PrismicRichText/getRichTextComponentProps.cjs +39 -9
  55. package/dist/PrismicRichText/getRichTextComponentProps.cjs.map +1 -1
  56. package/dist/PrismicRichText/getRichTextComponentProps.d.cts +54 -0
  57. package/dist/PrismicRichText/getRichTextComponentProps.d.cts.map +1 -0
  58. package/dist/PrismicRichText/getRichTextComponentProps.d.ts +15 -10
  59. package/dist/PrismicRichText/getRichTextComponentProps.d.ts.map +1 -0
  60. package/dist/PrismicRichText/getRichTextComponentProps.js +39 -10
  61. package/dist/PrismicRichText/getRichTextComponentProps.js.map +1 -1
  62. package/dist/PrismicRichText/index.d.ts +2 -2
  63. package/dist/PrismicRichText/types.d.cts +45 -0
  64. package/dist/PrismicRichText/types.d.cts.map +1 -0
  65. package/dist/PrismicRichText/types.d.ts +33 -10
  66. package/dist/PrismicRichText/types.d.ts.map +1 -0
  67. package/dist/PrismicTable/PrismicTable.cjs +8 -0
  68. package/dist/PrismicTable/PrismicTable.cjs.map +1 -0
  69. package/dist/PrismicTable/PrismicTable.js +8 -0
  70. package/dist/PrismicTable/PrismicTable.js.map +1 -0
  71. package/dist/PrismicTable/PrismicTable.vue.d.cts +37 -0
  72. package/dist/PrismicTable/PrismicTable.vue.d.cts.map +1 -0
  73. package/dist/PrismicTable/PrismicTable.vue.d.ts +37 -31
  74. package/dist/PrismicTable/PrismicTable.vue.d.ts.map +1 -0
  75. package/dist/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs +101 -0
  76. package/dist/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  77. package/dist/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js +101 -0
  78. package/dist/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  79. package/dist/PrismicTable/PrismicTableDefaultComponents.cjs +43 -41
  80. package/dist/PrismicTable/PrismicTableDefaultComponents.cjs.map +1 -1
  81. package/dist/PrismicTable/PrismicTableDefaultComponents.js +43 -41
  82. package/dist/PrismicTable/PrismicTableDefaultComponents.js.map +1 -1
  83. package/dist/PrismicTable/PrismicTableRow.cjs +8 -0
  84. package/dist/PrismicTable/PrismicTableRow.cjs.map +1 -0
  85. package/dist/PrismicTable/PrismicTableRow.js +8 -0
  86. package/dist/PrismicTable/PrismicTableRow.js.map +1 -0
  87. package/dist/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.cjs +54 -0
  88. package/dist/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  89. package/dist/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.js +54 -0
  90. package/dist/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
  91. package/dist/PrismicTable/getTableComponentProps.cjs +131 -21
  92. package/dist/PrismicTable/getTableComponentProps.cjs.map +1 -1
  93. package/dist/PrismicTable/getTableComponentProps.d.cts +136 -0
  94. package/dist/PrismicTable/getTableComponentProps.d.cts.map +1 -0
  95. package/dist/PrismicTable/getTableComponentProps.d.ts +40 -32
  96. package/dist/PrismicTable/getTableComponentProps.d.ts.map +1 -0
  97. package/dist/PrismicTable/getTableComponentProps.js +128 -29
  98. package/dist/PrismicTable/getTableComponentProps.js.map +1 -1
  99. package/dist/PrismicTable/index.d.ts +2 -1
  100. package/dist/PrismicTable/types.d.cts +34 -0
  101. package/dist/PrismicTable/types.d.cts.map +1 -0
  102. package/dist/PrismicTable/types.d.ts +27 -23
  103. package/dist/PrismicTable/types.d.ts.map +1 -0
  104. package/dist/PrismicText.cjs +8 -0
  105. package/dist/PrismicText.cjs.map +1 -0
  106. package/dist/PrismicText.js +8 -0
  107. package/dist/PrismicText.js.map +1 -0
  108. package/dist/PrismicText.vue.d.cts +25 -0
  109. package/dist/PrismicText.vue.d.cts.map +1 -0
  110. package/dist/PrismicText.vue.d.ts +24 -30
  111. package/dist/PrismicText.vue.d.ts.map +1 -0
  112. package/dist/PrismicText.vue_vue_type_script_setup_true_lang.cjs +37 -0
  113. package/dist/PrismicText.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  114. package/dist/PrismicText.vue_vue_type_script_setup_true_lang.js +37 -0
  115. package/dist/PrismicText.vue_vue_type_script_setup_true_lang.js.map +1 -0
  116. package/dist/SliceSimulator.cjs +8 -0
  117. package/dist/SliceSimulator.cjs.map +1 -0
  118. package/dist/SliceSimulator.js +8 -0
  119. package/dist/SliceSimulator.js.map +1 -0
  120. package/dist/SliceSimulator.vue.d.cts +57 -0
  121. package/dist/SliceSimulator.vue.d.cts.map +1 -0
  122. package/dist/SliceSimulator.vue.d.ts +57 -0
  123. package/dist/SliceSimulator.vue.d.ts.map +1 -0
  124. package/dist/SliceSimulator.vue_vue_type_script_setup_true_lang.cjs +66 -0
  125. package/dist/SliceSimulator.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  126. package/dist/SliceSimulator.vue_vue_type_script_setup_true_lang.js +66 -0
  127. package/dist/SliceSimulator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  128. package/dist/SliceZone/SliceZone.cjs +8 -0
  129. package/dist/SliceZone/SliceZone.cjs.map +1 -0
  130. package/dist/SliceZone/SliceZone.js +8 -0
  131. package/dist/SliceZone/SliceZone.js.map +1 -0
  132. package/dist/SliceZone/SliceZone.vue.d.cts +29 -0
  133. package/dist/SliceZone/SliceZone.vue.d.cts.map +1 -0
  134. package/dist/SliceZone/SliceZone.vue.d.ts +22 -34
  135. package/dist/SliceZone/SliceZone.vue.d.ts.map +1 -0
  136. package/dist/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs +70 -0
  137. package/dist/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  138. package/dist/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js +70 -0
  139. package/dist/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js.map +1 -0
  140. package/dist/SliceZone/TODOSliceComponent.cjs +35 -28
  141. package/dist/SliceZone/TODOSliceComponent.cjs.map +1 -1
  142. package/dist/SliceZone/TODOSliceComponent.d.cts +15 -0
  143. package/dist/SliceZone/TODOSliceComponent.d.cts.map +1 -0
  144. package/dist/SliceZone/TODOSliceComponent.d.ts +8 -2
  145. package/dist/SliceZone/TODOSliceComponent.d.ts.map +1 -0
  146. package/dist/SliceZone/TODOSliceComponent.js +34 -27
  147. package/dist/SliceZone/TODOSliceComponent.js.map +1 -1
  148. package/dist/SliceZone/defineSliceZoneComponents.cjs +47 -11
  149. package/dist/SliceZone/defineSliceZoneComponents.cjs.map +1 -1
  150. package/dist/SliceZone/defineSliceZoneComponents.d.cts +42 -0
  151. package/dist/SliceZone/defineSliceZoneComponents.d.cts.map +1 -0
  152. package/dist/SliceZone/defineSliceZoneComponents.d.ts +8 -2
  153. package/dist/SliceZone/defineSliceZoneComponents.d.ts.map +1 -0
  154. package/dist/SliceZone/defineSliceZoneComponents.js +47 -11
  155. package/dist/SliceZone/defineSliceZoneComponents.js.map +1 -1
  156. package/dist/SliceZone/getSliceComponentProps.cjs +57 -19
  157. package/dist/SliceZone/getSliceComponentProps.cjs.map +1 -1
  158. package/dist/SliceZone/getSliceComponentProps.d.cts +71 -0
  159. package/dist/SliceZone/getSliceComponentProps.d.cts.map +1 -0
  160. package/dist/SliceZone/getSliceComponentProps.d.ts +25 -20
  161. package/dist/SliceZone/getSliceComponentProps.d.ts.map +1 -0
  162. package/dist/SliceZone/getSliceComponentProps.js +57 -20
  163. package/dist/SliceZone/getSliceComponentProps.js.map +1 -1
  164. package/dist/SliceZone/index.d.ts +4 -4
  165. package/dist/SliceZone/types.d.cts +94 -0
  166. package/dist/SliceZone/types.d.cts.map +1 -0
  167. package/dist/SliceZone/types.d.ts +34 -37
  168. package/dist/SliceZone/types.d.ts.map +1 -0
  169. package/dist/_virtual/rolldown_runtime.cjs +19 -0
  170. package/dist/_virtual/rolldown_runtime.js +18 -0
  171. package/dist/createPrismic.cjs +32 -79
  172. package/dist/createPrismic.cjs.map +1 -1
  173. package/dist/createPrismic.d.cts +76 -0
  174. package/dist/createPrismic.d.cts.map +1 -0
  175. package/dist/createPrismic.d.ts +72 -16
  176. package/dist/createPrismic.d.ts.map +1 -0
  177. package/dist/createPrismic.js +31 -79
  178. package/dist/createPrismic.js.map +1 -1
  179. package/dist/index.cjs +33 -32
  180. package/dist/index.d.cts +17 -0
  181. package/dist/index.d.ts +20 -23
  182. package/dist/index.js +12 -29
  183. package/dist/lib/devMsg.cjs +22 -5
  184. package/dist/lib/devMsg.cjs.map +1 -1
  185. package/dist/lib/devMsg.js +23 -6
  186. package/dist/lib/devMsg.js.map +1 -1
  187. package/dist/lib/isInternalURL.cjs +17 -6
  188. package/dist/lib/isInternalURL.cjs.map +1 -1
  189. package/dist/lib/isInternalURL.js +17 -7
  190. package/dist/lib/isInternalURL.js.map +1 -1
  191. package/dist/package.cjs +12 -0
  192. package/dist/package.cjs.map +1 -0
  193. package/dist/package.js +6 -0
  194. package/dist/package.js.map +1 -0
  195. package/dist/types.cjs +9 -0
  196. package/dist/types.cjs.map +1 -0
  197. package/dist/types.d.cts +18 -0
  198. package/dist/types.d.cts.map +1 -0
  199. package/dist/types.d.ts +18 -369
  200. package/dist/types.d.ts.map +1 -0
  201. package/dist/types.js +8 -0
  202. package/dist/types.js.map +1 -0
  203. package/package.json +33 -57
  204. package/src/PrismicImage.vue +7 -27
  205. package/src/PrismicLink.vue +24 -49
  206. package/src/PrismicRichText/PrismicRichText.vue +77 -118
  207. package/src/PrismicRichText/PrismicRichTextDefaultComponent.vue +65 -19
  208. package/src/PrismicRichText/PrismicRichTextSerialize.vue +6 -30
  209. package/src/PrismicRichText/index.ts +1 -1
  210. package/src/PrismicRichText/types.ts +62 -19
  211. package/src/PrismicTable/PrismicTable.vue +63 -28
  212. package/src/PrismicTable/PrismicTableDefaultComponents.ts +14 -14
  213. package/src/PrismicTable/PrismicTableRow.vue +18 -25
  214. package/src/PrismicTable/index.ts +2 -0
  215. package/src/PrismicTable/types.ts +47 -16
  216. package/src/PrismicText.vue +4 -21
  217. package/src/SliceSimulator.vue +78 -0
  218. package/src/SliceZone/SliceZone.vue +18 -40
  219. package/src/SliceZone/TODOSliceComponent.ts +2 -1
  220. package/src/SliceZone/types.ts +6 -22
  221. package/src/createPrismic.ts +84 -133
  222. package/src/index.ts +18 -32
  223. package/src/lib/isInternalURL.ts +2 -6
  224. package/src/types.ts +24 -435
  225. package/dist/PrismicEmbed.vue.cjs +0 -25
  226. package/dist/PrismicEmbed.vue.cjs.map +0 -1
  227. package/dist/PrismicEmbed.vue.d.ts +0 -19
  228. package/dist/PrismicEmbed.vue.js +0 -26
  229. package/dist/PrismicEmbed.vue.js.map +0 -1
  230. package/dist/PrismicEmbed.vue2.cjs +0 -4
  231. package/dist/PrismicEmbed.vue2.cjs.map +0 -1
  232. package/dist/PrismicEmbed.vue2.js +0 -5
  233. package/dist/PrismicEmbed.vue2.js.map +0 -1
  234. package/dist/PrismicImage.vue.cjs +0 -112
  235. package/dist/PrismicImage.vue.cjs.map +0 -1
  236. package/dist/PrismicImage.vue.js +0 -113
  237. package/dist/PrismicImage.vue.js.map +0 -1
  238. package/dist/PrismicImage.vue2.cjs +0 -4
  239. package/dist/PrismicImage.vue2.cjs.map +0 -1
  240. package/dist/PrismicImage.vue2.js +0 -5
  241. package/dist/PrismicImage.vue2.js.map +0 -1
  242. package/dist/PrismicLink.vue.cjs +0 -64
  243. package/dist/PrismicLink.vue.cjs.map +0 -1
  244. package/dist/PrismicLink.vue.js +0 -65
  245. package/dist/PrismicLink.vue.js.map +0 -1
  246. package/dist/PrismicLink.vue2.cjs +0 -4
  247. package/dist/PrismicLink.vue2.cjs.map +0 -1
  248. package/dist/PrismicLink.vue2.js +0 -5
  249. package/dist/PrismicLink.vue2.js.map +0 -1
  250. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs +0 -100
  251. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs.map +0 -1
  252. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.d.ts +0 -38
  253. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js +0 -101
  254. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js.map +0 -1
  255. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs +0 -4
  256. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs.map +0 -1
  257. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js +0 -5
  258. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js.map +0 -1
  259. package/dist/PrismicRichText/PrismicRichText.vue.cjs +0 -97
  260. package/dist/PrismicRichText/PrismicRichText.vue.cjs.map +0 -1
  261. package/dist/PrismicRichText/PrismicRichText.vue.js +0 -98
  262. package/dist/PrismicRichText/PrismicRichText.vue.js.map +0 -1
  263. package/dist/PrismicRichText/PrismicRichText.vue2.cjs +0 -4
  264. package/dist/PrismicRichText/PrismicRichText.vue2.cjs.map +0 -1
  265. package/dist/PrismicRichText/PrismicRichText.vue2.js +0 -5
  266. package/dist/PrismicRichText/PrismicRichText.vue2.js.map +0 -1
  267. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs +0 -133
  268. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs.map +0 -1
  269. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.d.ts +0 -37
  270. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js +0 -134
  271. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js.map +0 -1
  272. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs +0 -4
  273. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs.map +0 -1
  274. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js +0 -5
  275. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js.map +0 -1
  276. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs +0 -47
  277. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs.map +0 -1
  278. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.d.ts +0 -10
  279. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js +0 -48
  280. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js.map +0 -1
  281. package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs +0 -4
  282. package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs.map +0 -1
  283. package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js +0 -5
  284. package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js.map +0 -1
  285. package/dist/PrismicTable/PrismicTable.vue.cjs +0 -62
  286. package/dist/PrismicTable/PrismicTable.vue.cjs.map +0 -1
  287. package/dist/PrismicTable/PrismicTable.vue.js +0 -63
  288. package/dist/PrismicTable/PrismicTable.vue.js.map +0 -1
  289. package/dist/PrismicTable/PrismicTable.vue2.cjs +0 -4
  290. package/dist/PrismicTable/PrismicTable.vue2.cjs.map +0 -1
  291. package/dist/PrismicTable/PrismicTable.vue2.js +0 -5
  292. package/dist/PrismicTable/PrismicTable.vue2.js.map +0 -1
  293. package/dist/PrismicTable/PrismicTableDefaultComponents.d.ts +0 -2
  294. package/dist/PrismicTable/PrismicTableRow.vue.cjs +0 -52
  295. package/dist/PrismicTable/PrismicTableRow.vue.cjs.map +0 -1
  296. package/dist/PrismicTable/PrismicTableRow.vue.d.ts +0 -26
  297. package/dist/PrismicTable/PrismicTableRow.vue.js +0 -53
  298. package/dist/PrismicTable/PrismicTableRow.vue.js.map +0 -1
  299. package/dist/PrismicTable/PrismicTableRow.vue2.cjs +0 -4
  300. package/dist/PrismicTable/PrismicTableRow.vue2.cjs.map +0 -1
  301. package/dist/PrismicTable/PrismicTableRow.vue2.js +0 -5
  302. package/dist/PrismicTable/PrismicTableRow.vue2.js.map +0 -1
  303. package/dist/PrismicText.vue.cjs +0 -43
  304. package/dist/PrismicText.vue.cjs.map +0 -1
  305. package/dist/PrismicText.vue.js +0 -44
  306. package/dist/PrismicText.vue.js.map +0 -1
  307. package/dist/PrismicText.vue2.cjs +0 -4
  308. package/dist/PrismicText.vue2.cjs.map +0 -1
  309. package/dist/PrismicText.vue2.js +0 -5
  310. package/dist/PrismicText.vue2.js.map +0 -1
  311. package/dist/SliceZone/SliceZone.vue.cjs +0 -63
  312. package/dist/SliceZone/SliceZone.vue.cjs.map +0 -1
  313. package/dist/SliceZone/SliceZone.vue.js +0 -64
  314. package/dist/SliceZone/SliceZone.vue.js.map +0 -1
  315. package/dist/SliceZone/SliceZone.vue2.cjs +0 -4
  316. package/dist/SliceZone/SliceZone.vue2.cjs.map +0 -1
  317. package/dist/SliceZone/SliceZone.vue2.js +0 -5
  318. package/dist/SliceZone/SliceZone.vue2.js.map +0 -1
  319. package/dist/index.cjs.map +0 -1
  320. package/dist/index.js.map +0 -1
  321. package/dist/lib/Wrapper.vue.cjs +0 -20
  322. package/dist/lib/Wrapper.vue.cjs.map +0 -1
  323. package/dist/lib/Wrapper.vue.d.ts +0 -28
  324. package/dist/lib/Wrapper.vue.js +0 -21
  325. package/dist/lib/Wrapper.vue.js.map +0 -1
  326. package/dist/lib/Wrapper.vue2.cjs +0 -4
  327. package/dist/lib/Wrapper.vue2.cjs.map +0 -1
  328. package/dist/lib/Wrapper.vue2.js +0 -5
  329. package/dist/lib/Wrapper.vue2.js.map +0 -1
  330. package/dist/lib/devMsg.d.ts +0 -16
  331. package/dist/lib/isInternalURL.d.ts +0 -8
  332. package/dist/package.json.cjs +0 -5
  333. package/dist/package.json.cjs.map +0 -1
  334. package/dist/package.json.js +0 -5
  335. package/dist/package.json.js.map +0 -1
  336. package/dist/usePrismic.cjs +0 -10
  337. package/dist/usePrismic.cjs.map +0 -1
  338. package/dist/usePrismic.d.ts +0 -30
  339. package/dist/usePrismic.js +0 -10
  340. package/dist/usePrismic.js.map +0 -1
  341. package/src/PrismicEmbed.vue +0 -42
  342. package/src/PrismicRichText/DeprecatedPrismicRichText.vue +0 -146
  343. package/src/lib/Wrapper.vue +0 -22
  344. package/src/usePrismic.ts +0 -36
package/dist/types.js ADDED
@@ -0,0 +1,8 @@
1
+ //#region src/types.ts
2
+ const isComponent = (component) => {
3
+ return !!component && (typeof component === "function" || typeof component === "object" && ("render" in component && typeof component.render === "function" || "setup" in component && typeof component.setup === "function" || "__file" in component && !!component.__file || "__name" in component && !!component.__name || "props" in component && typeof component.props === "object"));
4
+ };
5
+
6
+ //#endregion
7
+ export { isComponent };
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { Component as _Component } from \"vue\"\n\nexport type ComponentOrTagName = string | _Component\n\n// For reference within TypeScript files when `*.vue` type cannot be inferred\nexport type Component<TProps> = _Component | _Component<TProps>\n\n/**\n * A shorthand definition for `<PrismicRichText />` and `<PrismicTable />`\n * component types.\n */\nexport type ComponentShorthand = {\n\t/** The HTML element type rendered for this node type. */\n\tas?: string\n\n\t/** Other attributes to apply to the element type. */\n\t[Attribute: string]: string | boolean | null | undefined\n}\n\nexport const isComponent = <T>(\n\tcomponent: Component<T> | ComponentShorthand | undefined,\n): component is Component<T> => {\n\treturn (\n\t\t!!component &&\n\t\t(typeof component === \"function\" ||\n\t\t\t(typeof component === \"object\" &&\n\t\t\t\t((\"render\" in component && typeof component.render === \"function\") ||\n\t\t\t\t\t(\"setup\" in component && typeof component.setup === \"function\") ||\n\t\t\t\t\t(\"__file\" in component && !!component.__file) ||\n\t\t\t\t\t(\"__name\" in component && !!component.__name) ||\n\t\t\t\t\t(\"props\" in component && typeof component.props === \"object\"))))\n\t)\n}\n"],"mappings":";AAmBA,MAAa,eACZ,cAC+B;AAC/B,QACC,CAAC,CAAC,cACD,OAAO,cAAc,cACpB,OAAO,cAAc,aACnB,YAAY,aAAa,OAAO,UAAU,WAAW,cACrD,WAAW,aAAa,OAAO,UAAU,UAAU,cACnD,YAAY,aAAa,CAAC,CAAC,UAAU,UACrC,YAAY,aAAa,CAAC,CAAC,UAAU,UACrC,WAAW,aAAa,OAAO,UAAU,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prismicio/vue",
3
- "version": "5.3.0",
3
+ "version": "6.0.0-canary.331d154",
4
4
  "description": "Vue plugin, components, and composables to fetch and present Prismic content",
5
5
  "keywords": [
6
6
  "typescript",
@@ -18,84 +18,60 @@
18
18
  "type": "module",
19
19
  "exports": {
20
20
  ".": {
21
- "require": {
22
- "types": "./dist/index.d.ts",
23
- "default": "./dist/index.cjs"
24
- },
25
- "import": {
26
- "types": "./dist/index.d.ts",
27
- "default": "./dist/index.js"
28
- }
21
+ "require": "./dist/index.cjs",
22
+ "import": "./dist/index.js"
29
23
  },
30
24
  "./package.json": "./package.json"
31
25
  },
32
- "main": "dist/index.cjs",
33
- "module": "dist/index.js",
34
- "types": "dist/index.d.ts",
26
+ "main": "./dist/index.cjs",
27
+ "module": "./dist/index.js",
28
+ "types": "./dist/index.d.cts",
35
29
  "files": [
36
- "dist",
37
- "src",
38
- "vetur"
30
+ "./dist",
31
+ "./src"
39
32
  ],
40
33
  "scripts": {
41
- "build": "vite build",
42
- "dev": "vite build --watch",
34
+ "build": "tsdown",
35
+ "dev": "tsdown --watch",
43
36
  "format": "prettier --write .",
44
- "playground:build": "vite build playground",
45
- "playground:dev": "vite playground",
46
37
  "prepare": "npm run build",
47
- "release": "npm run test && standard-version && git push --follow-tags && npm run build && npm publish",
48
- "release:dry": "standard-version --dry-run",
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",
38
+ "lint": "oxlint --deny-warnings",
39
+ "types": "vue-tsc --noEmit",
54
40
  "unit": "vitest run --coverage",
55
41
  "unit:watch": "vitest watch",
56
- "size": "size-limit",
57
- "test": "npm run lint && npm run types && npm run unit && npm run build && npm run size"
42
+ "test": "npm run lint && npm run types && npm run unit && npm run build"
58
43
  },
59
44
  "dependencies": {
60
- "@prismicio/client": "^7.17.1",
61
- "esm-env": "^1.2.2",
62
- "vue-router": "^4.5.0"
45
+ "@prismicio/simulator": "^0.2.0",
46
+ "esm-env": "^1.2.2"
63
47
  },
64
48
  "devDependencies": {
65
- "@eslint/js": "^9.23.0",
49
+ "@prismicio/client": "^7.21.3",
66
50
  "@prismicio/mock": "^0.7.1",
67
- "@size-limit/preset-small-lib": "^11.2.0",
68
- "@trivago/prettier-plugin-sort-imports": "^5.2.2",
51
+ "@trivago/prettier-plugin-sort-imports": "^6.0.2",
69
52
  "@types/jsdom-global": "^3.0.7",
70
- "@vitejs/plugin-vue": "^5.2.3",
71
- "@vitest/coverage-v8": "^3.0.9",
72
- "@vue/eslint-config-typescript": "^14.5.0",
53
+ "@vitejs/plugin-vue": "^6.0.3",
54
+ "@vitest/coverage-v8": "^4.0.17",
73
55
  "@vue/test-utils": "^2.4.6",
74
- "eslint": "^9.23.0",
75
- "eslint-config-prettier": "^10.1.1",
76
- "eslint-plugin-prettier": "^5.2.5",
77
- "eslint-plugin-tsdoc": "^0.4.0",
78
- "eslint-plugin-vue": "^10.0.0",
79
- "jsdom": "^26.0.0",
56
+ "jsdom": "^27.4.0",
80
57
  "jsdom-global": "^3.0.2",
81
- "prettier": "^3.5.3",
82
- "prettier-plugin-jsdoc": "^1.3.2",
83
- "size-limit": "^11.2.0",
84
- "standard-version": "^9.5.0",
85
- "typescript": "^5.8.2",
86
- "typescript-eslint": "^8.28.0",
87
- "vite": "^6.2.3",
88
- "vite-plugin-dts": "^4.5.3",
89
- "vite-plugin-sdk": "^0.1.3",
90
- "vitest": "^3.0.9",
91
- "vue": "^3.5.13",
92
- "vue-tsc": "^2.2.8"
58
+ "oxlint": "1.39.0",
59
+ "prettier": "^3.7.4",
60
+ "prettier-plugin-jsdoc": "^1.8.0",
61
+ "tsdown": "^0.19.0",
62
+ "typescript": "^5.9.3",
63
+ "vite": "^7.3.1",
64
+ "vitest": "^4.0.17",
65
+ "vue": "^3.5.26",
66
+ "vue-router": "^4.6.4",
67
+ "vue-tsc": "^3.2.2"
93
68
  },
94
69
  "peerDependencies": {
95
- "vue": "^3.0.0"
70
+ "@prismicio/client": "^7",
71
+ "vue": "^3"
96
72
  },
97
73
  "engines": {
98
- "node": ">=16.10.0"
74
+ "node": ">=20"
99
75
  },
100
76
  "publishConfig": {
101
77
  "access": "public"
@@ -10,15 +10,9 @@ import { computed, watchEffect } from "vue"
10
10
 
11
11
  import { devMsg } from "./lib/devMsg"
12
12
 
13
- import { usePrismic } from "./usePrismic"
14
-
15
- /**
16
- * Props for `<PrismicImage />`.
17
- */
13
+ /** Props for `<PrismicImage />`. */
18
14
  export type PrismicImageProps = {
19
- /**
20
- * The Prismic image field or thumbnail to render.
21
- */
15
+ /** The Prismic image field or thumbnail to render. */
22
16
  field: ImageField | ImageField<string>
23
17
 
24
18
  /**
@@ -63,11 +57,10 @@ export type PrismicImageProps = {
63
57
  } & (
64
58
  | {
65
59
  /**
66
- * Widths used to build a `srcset` value for the image field.
60
+ * Widths (in pixels) used to build a `srcset` value for the image field.
67
61
  *
68
- * If a `widths` prop is not given or `"defaults"` is passed, the
69
- * following widths will be used: 640, 750, 828, 1080, 1200, 1920, 2048,
70
- * 3840.
62
+ * If omitted or set to `"defaults"`, the following widths will be used:
63
+ * 640, 750, 828, 1080, 1200, 1920, 2048, 3840.
71
64
  *
72
65
  * If the image field contains responsive views, each responsive view can
73
66
  * be used as a width in the resulting `srcset` by passing `"thumbnails"`
@@ -77,15 +70,9 @@ export type PrismicImageProps = {
77
70
  | NonNullable<Parameters<typeof asImageWidthSrcSet>[1]>["widths"]
78
71
  | "thumbnails"
79
72
  | "defaults"
80
- /**
81
- * Not used when the `widths` prop is used.
82
- */
83
73
  pixelDensities?: never
84
74
  }
85
75
  | {
86
- /**
87
- * Not used when the `widths` prop is used.
88
- */
89
76
  widths?: never
90
77
  /**
91
78
  * Pixel densities used to build a `srcset` value for the image field.
@@ -104,8 +91,6 @@ export type PrismicImageProps = {
104
91
  const props = defineProps<PrismicImageProps>()
105
92
  defineOptions({ name: "PrismicImage" })
106
93
 
107
- const { options } = usePrismic()
108
-
109
94
  if (DEV) {
110
95
  watchEffect(() => {
111
96
  if (typeof props.alt === "string" && props.alt !== "") {
@@ -156,10 +141,7 @@ const image = computed(() => {
156
141
  if (props.widths || !props.pixelDensities) {
157
142
  const res = asImageWidthSrcSet(props.field, {
158
143
  ...props.imgixParams,
159
- widths:
160
- props.widths === "defaults"
161
- ? options.components?.imageWidthSrcSetDefaults
162
- : props.widths,
144
+ widths: props.widths === "defaults" ? undefined : props.widths,
163
145
  })
164
146
 
165
147
  src = res.src
@@ -168,9 +150,7 @@ const image = computed(() => {
168
150
  const res = asImagePixelDensitySrcSet(props.field, {
169
151
  ...props.imgixParams,
170
152
  pixelDensities:
171
- props.pixelDensities === "defaults"
172
- ? options.components?.imagePixelDensitySrcSetDefaults
173
- : props.pixelDensities,
153
+ props.pixelDensities === "defaults" ? undefined : props.pixelDensities,
174
154
  })
175
155
 
176
156
  src = res.src
@@ -12,34 +12,27 @@ import { isInternalURL } from "./lib/isInternalURL"
12
12
 
13
13
  import type { ComponentOrTagName } from "./types"
14
14
 
15
- import { usePrismic } from "./usePrismic"
15
+ import { usePrismic } from "./createPrismic"
16
16
 
17
- /**
18
- * The default component rendered for internal URLs.
19
- */
17
+ /** The default component rendered for internal URLs. */
20
18
  const defaultInternalComponent = "router-link"
21
19
 
22
- /**
23
- * The default component rendered for external URLs.
24
- */
20
+ /** The default component rendered for external URLs. */
25
21
  const defaultExternalComponent = "a"
26
22
 
27
- /**
28
- * The default rel attribute rendered for external URLs.
29
- */
23
+ /** The default rel attribute rendered for external URLs. */
30
24
  const defaultExternalRelAttribute = "noreferrer"
31
25
 
32
- /**
33
- * Props for `<PrismicLink />`.
34
- */
26
+ /** Props for `<PrismicLink />`. */
35
27
  export type PrismicLinkProps = {
36
28
  /**
37
- * A link resolver function used to resolve links when not using the route
38
- * resolver parameter with `@prismicio/client`.
29
+ * The link resolver used to resolve links.
39
30
  *
40
- * @defaultValue The link resolver provided to `@prismicio/vue` plugin if configured.
31
+ * @remarks
32
+ * If your app uses route resolvers when querying for your Prismic
33
+ * repository's content, a link resolver does not need to be provided.
41
34
  *
42
- * @see Link resolver documentation {@link https://prismic.io/docs/core-concepts/link-resolver-route-resolver#link-resolver}
35
+ * @see {@link https://prismic.io/docs/routes}
43
36
  */
44
37
  linkResolver?: LinkResolverFunction
45
38
 
@@ -47,50 +40,33 @@ export type PrismicLinkProps = {
47
40
  * The `rel` attribute for the link. By default, `"noreferrer"` is provided if
48
41
  * the link's URL is external. This prop can be provided a function to use the
49
42
  * link's metadata to determine the `rel` value.
50
- *
51
- * @defaultValue The one provided to `@prismicio/vue` plugin if configured.
52
43
  */
53
44
  rel?: string | AsLinkAttrsConfig["rel"]
54
45
 
55
46
  /**
56
- * An HTML tag name or a component used to render internal links.
47
+ * The component rendered for internal URLs.
57
48
  *
58
- * @remarks
59
- * HTML tag names will be rendered using the anchor tag interface (`href`,
60
- * `target`, and `rel` attributes).
61
- * @remarks
62
- * Components will be rendered using Vue Router {@link RouterLink} interface
63
- * (`to` props).
49
+ * If your app uses a client-side router that requires a special Link
50
+ * component, provide the Link component to this prop.
64
51
  *
65
- * @defaultValue The one provided to `@prismicio/vue` plugin if configured, {@link RouterLink} otherwise.
52
+ * @defaultValue `<RouterLink>`
66
53
  */
67
54
  internalComponent?: ComponentOrTagName
68
55
 
69
56
  /**
70
- * An HTML tag name or a component used to render external links.
71
- *
72
- * @remarks
73
- * HTML tag names will be rendered using the anchor tag interface (`href`,
74
- * `target`, and `rel` attributes).
75
- * @remarks
76
- * Components will be rendered using Vue Router {@link RouterLink} interface
77
- * (`to` props).
57
+ * The component rendered for external URLs.
78
58
  *
79
- * @defaultValue The one provided to `@prismicio/vue` plugin if configured, `"a"` otherwise.
59
+ * @defaultValue `<a>`
80
60
  */
81
61
  externalComponent?: ComponentOrTagName
82
62
  } & (
83
63
  | {
84
- /**
85
- * The Prismic link field to render.
86
- */
64
+ /** The Prismic link field to render. */
87
65
  field: LinkField
88
66
  document?: never
89
67
  }
90
68
  | {
91
- /**
92
- * The Prismic document to render as a link.
93
- */
69
+ /** The Prismic document to render as a link. */
94
70
  document: PrismicDocument
95
71
  field?: never
96
72
  }
@@ -99,15 +75,14 @@ export type PrismicLinkProps = {
99
75
  const props = defineProps<PrismicLinkProps>()
100
76
  defineOptions({ name: "PrismicLink" })
101
77
 
102
- const { options } = usePrismic()
78
+ const { linkResolver, components } = usePrismic()
103
79
 
104
80
  const rawAttrs = computed(() => {
105
81
  return asLinkAttrs(props.field || props.document, {
106
- linkResolver: props.linkResolver || options.linkResolver,
82
+ linkResolver: props.linkResolver || linkResolver,
107
83
  rel(args) {
108
- const maybeRel = props.rel || options.components?.linkRel
109
- if (maybeRel) {
110
- return typeof maybeRel === "function" ? maybeRel(args) : maybeRel
84
+ if (props.rel) {
85
+ return typeof props.rel === "function" ? props.rel(args) : props.rel
111
86
  }
112
87
 
113
88
  return args.isExternal ? defaultExternalRelAttribute : undefined
@@ -118,10 +93,10 @@ const rawAttrs = computed(() => {
118
93
  const component = computed(() => {
119
94
  return isInternalURL(rawAttrs.value.href || "")
120
95
  ? props.internalComponent ||
121
- options.components?.linkInternalComponent ||
96
+ components?.linkInternalComponent ||
122
97
  defaultInternalComponent
123
98
  : props.externalComponent ||
124
- options.components?.linkExternalComponent ||
99
+ components?.linkExternalComponent ||
125
100
  defaultExternalComponent
126
101
  })
127
102
 
@@ -1,83 +1,63 @@
1
1
  <script lang="ts" setup>
2
- import {
3
- type HTMLRichTextFunctionSerializer,
4
- type HTMLRichTextMapSerializer,
5
- type LinkResolverFunction,
6
- type RichTextField,
7
- isFilled,
2
+ import type {
3
+ LinkResolverFunction,
4
+ RichTextField,
5
+ RichTextNodeType,
8
6
  } from "@prismicio/client"
9
7
  import { asTree } from "@prismicio/client/richtext"
10
- import { DEV } from "esm-env"
11
8
  import type { PropType } from "vue"
12
- import { computed, watchEffect } from "vue"
9
+ import { computed } from "vue"
13
10
 
14
- import Wrapper from "../lib/Wrapper.vue"
11
+ import type { ComponentOrTagName, ComponentShorthand } from "../types"
12
+ import { isComponent } from "../types"
13
+ import type {
14
+ InternalRichTextComponents,
15
+ RichTextComponent,
16
+ RichTextComponents,
17
+ } from "./types"
15
18
 
16
- import type { ComponentOrTagName } from "../types"
17
- import type { VueRichTextSerializer } from "./types"
19
+ import { usePrismic } from "../createPrismic"
18
20
 
19
- import { usePrismic } from "../usePrismic"
20
-
21
- import DeprecatedPrismicRichText from "./DeprecatedPrismicRichText.vue"
21
+ import PrismicRichTextDefaultComponent from "./PrismicRichTextDefaultComponent.vue"
22
22
  import PrismicRichTextSerialize from "./PrismicRichTextSerialize.vue"
23
23
 
24
- /**
25
- * Props for `<PrismicRichText />`.
26
- */
24
+ /** Props for `<PrismicRichText />`. */
27
25
  export type PrismicRichTextProps = {
28
- /**
29
- * The Prismic rich text or title field to render.
30
- */
26
+ /** The Prismic rich text field to render. */
31
27
  field: RichTextField | null | undefined
32
28
 
33
29
  /**
34
- * The value to be rendered when the field is empty. If a fallback is not
35
- * given, `null` (nothing) will be rendered.
30
+ * The link resolver used to resolve links.
31
+ *
32
+ * @remarks
33
+ * If your app uses route resolvers when querying for your Prismic
34
+ * repository's content, a link resolver does not need to be provided.
35
+ *
36
+ * @see Learn about link resolvers and route resolvers {@link https://prismic.io/docs/routes}
36
37
  */
37
- fallback?: ComponentOrTagName
38
+ linkResolver?: LinkResolverFunction
38
39
 
39
40
  /**
40
- * An object that maps a rich text block type to a Vue component.
41
+ * An object that maps a rich text block type to a Vue component or a
42
+ * shorthand definition.
41
43
  *
42
44
  * @example
43
45
  *
44
46
  * ```javascript
45
47
  * {
46
48
  * heading1: Heading1,
49
+ * paragraph: { class: 'prose'},
50
+ * strong: { as: 'em', class: 'font-bold' },
47
51
  * }
48
52
  * ```
49
53
  */
50
- components?: VueRichTextSerializer
54
+ components?: RichTextComponents
51
55
 
52
56
  /**
53
- * A link resolver function used to resolve link when not using the route
54
- * resolver parameter with `@prismicio/client`.
55
- *
56
- * @defaultValue The link resolver provided to `@prismicio/vue` plugin if configured.
57
- *
58
- * @see Link resolver documentation {@link https://prismic.io/docs/core-concepts/link-resolver-route-resolver#link-resolver}
59
- */
60
- linkResolver?: LinkResolverFunction
61
-
62
- /**
63
- * An HTML serializer to customize the way rich text fields are rendered.
64
- *
65
- * @deprecated Use `components` instead.
66
- *
67
- * @defaultValue The HTML serializer provided to `@prismicio/vue` plugin if configured.
68
- *
69
- * @see HTML serializer documentation {@link https://prismic.io/docs/core-concepts/html-serializer}
70
- */
71
- // TODO: Remove in v6
72
- serializer?: HTMLRichTextFunctionSerializer | HTMLRichTextMapSerializer
73
-
74
- /**
75
- * An HTML tag name or a component used to wrap the output. `<PrismicText />`
76
- * is not wrapped by default.
77
- *
78
- * @defaultValue `"template"` (no wrapper)
57
+ * The value to be rendered when the field is empty. If a fallback is not
58
+ * given, `null` will be rendered.
79
59
  */
80
- wrapper?: ComponentOrTagName
60
+ fallback?: ComponentOrTagName
81
61
  }
82
62
 
83
63
  // We're forced to declare props using the JavaScript syntax because `@vue/compiler-sfc`
@@ -86,98 +66,77 @@ const props = defineProps({
86
66
  field: {
87
67
  type: Array as unknown as PropType<PrismicRichTextProps["field"]>,
88
68
  },
89
- fallback: {
90
- type: [String, Object, Function] as PropType<
91
- PrismicRichTextProps["fallback"]
92
- >,
93
- },
94
- components: {
95
- type: Object as PropType<PrismicRichTextProps["components"]>,
96
- },
97
69
  linkResolver: {
98
70
  type: Function as PropType<PrismicRichTextProps["linkResolver"]>,
99
71
  },
100
- serializer: {
101
- type: [Object, Function] as PropType<PrismicRichTextProps["serializer"]>,
72
+ components: {
73
+ type: Object as PropType<PrismicRichTextProps["components"]>,
102
74
  },
103
- wrapper: {
75
+ fallback: {
104
76
  type: [String, Object, Function] as PropType<
105
- PrismicRichTextProps["wrapper"]
77
+ PrismicRichTextProps["fallback"]
106
78
  >,
107
79
  },
108
80
  })
109
81
  defineOptions({ name: "PrismicRichText" })
110
82
 
111
- const { options } = usePrismic()
112
-
113
- const resolvedComponents = computed(() => {
114
- return props.components || options.components?.richTextComponents
115
- })
83
+ const { components: { richTextComponents } } = usePrismic()
116
84
 
117
- const resolvedLinkResolver = computed(() => {
118
- return props.linkResolver || options.linkResolver
85
+ const resolvedComponents = computed<RichTextComponents>(() => {
86
+ return { ...richTextComponents, ...props.components }
119
87
  })
120
88
 
121
89
  const children = computed(() => {
122
90
  return asTree(props.field || []).children
123
91
  })
124
92
 
125
- const isModern = computed(() => {
126
- // Explicit components prop
127
- if (props.components) {
128
- return true
129
- }
93
+ function getInternalComponent(type: keyof typeof RichTextNodeType) {
94
+ const maybeComponentOrShorthand = resolvedComponents.value?.[type] as
95
+ | RichTextComponent
96
+ | ComponentShorthand
97
+ | undefined
130
98
 
131
- // Explicit serializer prop
132
- if (props.serializer) {
133
- return false
99
+ if (isComponent(maybeComponentOrShorthand)) {
100
+ return { is: maybeComponentOrShorthand }
134
101
  }
135
102
 
136
- // Global components option
137
- if (options.components?.richTextComponents) {
138
- return true
103
+ return {
104
+ is: PrismicRichTextDefaultComponent,
105
+ linkResolver: props.linkResolver,
106
+ shorthand: maybeComponentOrShorthand,
139
107
  }
108
+ }
140
109
 
141
- // Global serializer option
142
- if (options.richTextSerializer) {
143
- return false
110
+ const internalComponents = computed<InternalRichTextComponents>(() => {
111
+ return {
112
+ heading1: getInternalComponent("heading1"),
113
+ heading2: getInternalComponent("heading2"),
114
+ heading3: getInternalComponent("heading3"),
115
+ heading4: getInternalComponent("heading4"),
116
+ heading5: getInternalComponent("heading5"),
117
+ heading6: getInternalComponent("heading6"),
118
+ paragraph: getInternalComponent("paragraph"),
119
+ preformatted: getInternalComponent("preformatted"),
120
+ strong: getInternalComponent("strong"),
121
+ em: getInternalComponent("em"),
122
+ "list-item": getInternalComponent("listItem"),
123
+ "o-list-item": getInternalComponent("oListItem"),
124
+ "group-list-item": getInternalComponent("list"),
125
+ "group-o-list-item": getInternalComponent("oList"),
126
+ image: getInternalComponent("image"),
127
+ embed: getInternalComponent("embed"),
128
+ hyperlink: getInternalComponent("hyperlink"),
129
+ label: getInternalComponent("label"),
130
+ span: getInternalComponent("span"),
144
131
  }
145
-
146
- // Default to modern
147
- return true
148
132
  })
149
-
150
- if (DEV) {
151
- watchEffect(() => {
152
- // TODO: Remove in v6
153
- if (props.components && props.serializer) {
154
- console.warn(
155
- `[PrismicRichText] Only one of "components" or "serializer" (deprecated) props can be provided. You can resolve this warning by removing either the "components" or "serializer" prop. "components" will be used in this case.`,
156
- )
157
- }
158
- })
159
- }
160
133
  </script>
161
134
 
162
135
  <template>
163
- <Wrapper
164
- v-if="isModern && (isFilled.richText(field) || fallback)"
165
- :wrapper="wrapper"
166
- >
167
- <PrismicRichTextSerialize
168
- v-if="children.length"
169
- :children="children"
170
- :components="resolvedComponents"
171
- :link-resolver="resolvedLinkResolver"
172
- />
173
- <component v-else :is="fallback" />
174
- </Wrapper>
175
- <DeprecatedPrismicRichText
176
- v-else-if="!isModern"
177
- :field="field"
178
- :fallback="typeof fallback === 'string' ? fallback : undefined"
179
- :link-resolver="linkResolver"
180
- :serializer="serializer"
181
- :wrapper="wrapper"
136
+ <PrismicRichTextSerialize
137
+ v-if="children.length"
138
+ :children="children"
139
+ :internal-components="internalComponents"
182
140
  />
141
+ <component v-else-if="fallback" :is="fallback" />
183
142
  </template>