@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
@@ -2,19 +2,35 @@
2
2
  import type { LinkResolverFunction } from "@prismicio/client"
3
3
  import { computed } from "vue"
4
4
 
5
+ import type { ComponentShorthand } from "../types"
5
6
  import type { RichTextComponentProps } from "./types"
6
7
 
7
- import PrismicEmbed from "../PrismicEmbed.vue"
8
8
  import PrismicImage from "../PrismicImage.vue"
9
9
  import PrismicLink from "../PrismicLink.vue"
10
10
 
11
11
  const props = defineProps<
12
12
  RichTextComponentProps & {
13
13
  linkResolver?: LinkResolverFunction
14
+ shorthand?: ComponentShorthand
14
15
  }
15
16
  >()
16
17
  defineOptions({ name: "PrismicRichTextDefaultComponent" })
17
18
 
19
+ const as = computed(() => {
20
+ return props.node.type !== "image" &&
21
+ props.node.type !== "hyperlink" &&
22
+ props.node.type !== "label" &&
23
+ props.node.type !== "span"
24
+ ? props.shorthand?.as
25
+ : undefined
26
+ })
27
+
28
+ const attrs = computed(() => {
29
+ const { as, ...attrs } = props.shorthand ?? {}
30
+
31
+ return attrs
32
+ })
33
+
18
34
  const dir = computed(() => {
19
35
  return "direction" in props.node && props.node.direction === "rtl"
20
36
  ? "rtl"
@@ -23,38 +39,68 @@ const dir = computed(() => {
23
39
  </script>
24
40
 
25
41
  <template>
26
- <h1 v-if="node.type === 'heading1'" :dir="dir"><slot /></h1>
27
- <h2 v-else-if="node.type === 'heading2'" :dir="dir"><slot /></h2>
28
- <h3 v-else-if="node.type === 'heading3'" :dir="dir"><slot /></h3>
29
- <h4 v-else-if="node.type === 'heading4'" :dir="dir"><slot /></h4>
30
- <h5 v-else-if="node.type === 'heading5'" :dir="dir"><slot /></h5>
31
- <h6 v-else-if="node.type === 'heading6'" :dir="dir"><slot /></h6>
32
- <p v-else-if="node.type === 'paragraph'" :dir="dir"><slot /></p>
33
- <pre v-else-if="node.type === 'preformatted'"><slot /></pre>
34
- <strong v-else-if="node.type === 'strong'"><slot /></strong>
35
- <em v-else-if="node.type === 'em'"><slot /></em>
36
- <li v-else-if="node.type === 'list-item'" :dir="dir"><slot /></li>
37
- <li v-else-if="node.type === 'o-list-item'" :dir="dir"><slot /></li>
38
- <ul v-else-if="node.type === 'group-list-item'">
42
+ <component v-if="as" :is="as" :dir="dir" v-bind="attrs"><slot /></component>
43
+ <h1 v-else-if="node.type === 'heading1'" :dir="dir" v-bind="attrs">
44
+ <slot />
45
+ </h1>
46
+ <h2 v-else-if="node.type === 'heading2'" :dir="dir" v-bind="attrs">
47
+ <slot />
48
+ </h2>
49
+ <h3 v-else-if="node.type === 'heading3'" :dir="dir" v-bind="attrs">
50
+ <slot />
51
+ </h3>
52
+ <h4 v-else-if="node.type === 'heading4'" :dir="dir" v-bind="attrs">
53
+ <slot />
54
+ </h4>
55
+ <h5 v-else-if="node.type === 'heading5'" :dir="dir" v-bind="attrs">
56
+ <slot />
57
+ </h5>
58
+ <h6 v-else-if="node.type === 'heading6'" :dir="dir" v-bind="attrs">
59
+ <slot />
60
+ </h6>
61
+ <p v-else-if="node.type === 'paragraph'" :dir="dir" v-bind="attrs">
62
+ <slot />
63
+ </p>
64
+ <pre v-else-if="node.type === 'preformatted'" v-bind="attrs"><slot /></pre>
65
+ <strong v-else-if="node.type === 'strong'" v-bind="attrs"><slot /></strong>
66
+ <em v-else-if="node.type === 'em'" v-bind="attrs"><slot /></em>
67
+ <li v-else-if="node.type === 'list-item'" :dir="dir" v-bind="attrs">
68
+ <slot />
69
+ </li>
70
+ <li v-else-if="node.type === 'o-list-item'" :dir="dir" v-bind="attrs">
71
+ <slot />
72
+ </li>
73
+ <ul v-else-if="node.type === 'group-list-item'" v-bind="attrs">
39
74
  <slot />
40
75
  </ul>
41
- <ol v-else-if="node.type === 'group-o-list-item'">
76
+ <ol v-else-if="node.type === 'group-o-list-item'" v-bind="attrs">
42
77
  <slot />
43
78
  </ol>
44
79
  <p class="block-img" v-else-if="node.type === 'image'">
45
80
  <PrismicLink v-if="node.linkTo" :field="node.linkTo"
46
- ><PrismicImage :field="node"
81
+ ><PrismicImage :field="node" v-bind="attrs"
47
82
  /></PrismicLink>
48
- <PrismicImage v-else :field="node" />
83
+ <PrismicImage v-else :field="node" v-bind="attrs" />
49
84
  </p>
50
- <PrismicEmbed v-else-if="node.type === 'embed'" :field="node.oembed" />
85
+ <div
86
+ v-else-if="node.type === 'embed'"
87
+ :data-oembed="node.oembed.embed_url"
88
+ :data-oembed-type="node.oembed.type"
89
+ :data-oembed-provider="node.oembed.provider_name"
90
+ v-html="node.oembed.html"
91
+ v-bind="attrs"
92
+ />
51
93
  <PrismicLink
52
94
  v-else-if="node.type === 'hyperlink'"
53
95
  :field="node.data"
54
96
  :link-resolver="linkResolver"
97
+ v-bind="attrs"
55
98
  ><slot
56
99
  /></PrismicLink>
57
- <span v-else-if="node.type === 'label'" :class="node.data.label"
100
+ <span
101
+ v-else-if="node.type === 'label'"
102
+ :class="node.data.label"
103
+ v-bind="attrs"
58
104
  ><slot
59
105
  /></span>
60
106
  <template v-else v-for="(line, index) in node.text.split('\n')" :key="line"
@@ -1,52 +1,28 @@
1
1
  <script lang="ts" setup>
2
- import type { LinkResolverFunction } from "@prismicio/client"
3
2
  import type { asTree } from "@prismicio/client/richtext"
4
3
 
5
- import type { VueRichTextSerializer } from "./types"
6
-
7
- import PrismicRichTextDefaultComponent from "./PrismicRichTextDefaultComponent.vue"
8
-
9
- const CHILD_TYPE_RENAMES = {
10
- "list-item": "listItem",
11
- "o-list-item": "oListItem",
12
- "group-list-item": "list",
13
- "group-o-list-item": "oList",
14
- } as const
4
+ import type { InternalRichTextComponents } from "./types"
15
5
 
16
6
  type PrismicRichTextSerializeProps = {
17
- components?: VueRichTextSerializer
18
7
  children: ReturnType<typeof asTree>["children"]
19
- linkResolver?: LinkResolverFunction
8
+ internalComponents: InternalRichTextComponents
20
9
  }
21
10
 
22
11
  const props = defineProps<PrismicRichTextSerializeProps>()
23
12
  defineOptions({ name: "PrismicRichTextSerialize" })
24
-
25
- function getComponent(child: ReturnType<typeof asTree>["children"][number]) {
26
- return (
27
- props.components?.[
28
- CHILD_TYPE_RENAMES[child.type as keyof typeof CHILD_TYPE_RENAMES] ||
29
- (child.type as keyof typeof props.components)
30
- ] || PrismicRichTextDefaultComponent
31
- )
32
- }
33
13
  </script>
34
14
 
35
15
  <template>
36
16
  <component
37
17
  v-for="child in props.children"
38
18
  :key="JSON.stringify(child)"
39
- :is="getComponent(child)"
19
+ :is="internalComponents[child.type].is"
40
20
  :node="child.node"
41
- :link-resolver="
42
- getComponent(child) === PrismicRichTextDefaultComponent
43
- ? props.linkResolver
44
- : undefined
45
- "
21
+ :link-resolver="internalComponents[child.type].linkResolver"
22
+ :shorthand="internalComponents[child.type].shorthand"
46
23
  ><PrismicRichTextSerialize
47
24
  v-if="child.children.length"
48
25
  :children="child.children"
49
- :components="components"
50
- :link-resolver="linkResolver"
26
+ :internal-components="internalComponents"
51
27
  /></component>
52
28
  </template>
@@ -1,3 +1,3 @@
1
1
  export { getRichTextComponentProps } from "./getRichTextComponentProps"
2
2
 
3
- export type { VueRichTextSerializer, RichTextComponentProps } from "./types"
3
+ export type { RichTextComponents, RichTextComponentProps } from "./types"
@@ -1,9 +1,29 @@
1
- import type { RTAnyNode, RichTextNodeType } from "@prismicio/client"
2
1
  import type {
3
- DefineComponent,
4
- FunctionalComponent,
5
- defineAsyncComponent,
6
- } from "vue"
2
+ LinkResolverFunction,
3
+ RTAnyNode,
4
+ RTEmNode,
5
+ RTEmbedNode,
6
+ RTHeading1Node,
7
+ RTHeading2Node,
8
+ RTHeading3Node,
9
+ RTHeading4Node,
10
+ RTHeading5Node,
11
+ RTHeading6Node,
12
+ RTImageNode,
13
+ RTLabelNode,
14
+ RTLinkNode,
15
+ RTListItemNode,
16
+ RTListNode,
17
+ RTOListItemNode,
18
+ RTOListNode,
19
+ RTParagraphNode,
20
+ RTPreformattedNode,
21
+ RTSpanNode,
22
+ RTStrongNode,
23
+ RichTextNodeTypes,
24
+ } from "@prismicio/client"
25
+
26
+ import type { Component, ComponentShorthand } from "../types"
7
27
 
8
28
  /**
9
29
  * A map of Rich Text block types to Vue Components. It is used to render Rich
@@ -11,13 +31,33 @@ import type {
11
31
  *
12
32
  * @see Templating Rich Text and title fields from Prismic {@link https://prismic.io/docs/rich-text}
13
33
  */
14
- export type VueRichTextSerializer = Partial<
15
- Record<keyof typeof RichTextNodeType, VueRichTextComponent>
16
- >
34
+ export type RichTextComponents = {
35
+ heading1?: RichTextComponent<RTHeading1Node> | ComponentShorthand
36
+ heading2?: RichTextComponent<RTHeading2Node> | ComponentShorthand
37
+ heading3?: RichTextComponent<RTHeading3Node> | ComponentShorthand
38
+ heading4?: RichTextComponent<RTHeading4Node> | ComponentShorthand
39
+ heading5?: RichTextComponent<RTHeading5Node> | ComponentShorthand
40
+ heading6?: RichTextComponent<RTHeading6Node> | ComponentShorthand
41
+ paragraph?: RichTextComponent<RTParagraphNode> | ComponentShorthand
42
+ preformatted?:
43
+ | RichTextComponent<RTPreformattedNode>
44
+ | ComponentShorthand
45
+ strong?: RichTextComponent<RTStrongNode> | ComponentShorthand
46
+ em?: RichTextComponent<RTEmNode> | ComponentShorthand
47
+ listItem?: RichTextComponent<RTListItemNode> | ComponentShorthand
48
+ oListItem?: RichTextComponent<RTOListItemNode> | ComponentShorthand
49
+ list?: RichTextComponent<RTListNode> | ComponentShorthand
50
+ oList?: RichTextComponent<RTOListNode> | ComponentShorthand
51
+ image?: RichTextComponent<RTImageNode> | Omit<ComponentShorthand, "as">
52
+ embed?: RichTextComponent<RTEmbedNode> | ComponentShorthand
53
+ hyperlink?:
54
+ | RichTextComponent<RTLinkNode>
55
+ | Omit<ComponentShorthand, "as">
56
+ label?: RichTextComponent<RTLabelNode> | Omit<ComponentShorthand, "as">
57
+ span?: RichTextComponent<RTSpanNode>
58
+ }
17
59
 
18
- /**
19
- * Props for a component rendering nodes from a Prismic rich text field.
20
- */
60
+ /** Props for a component rendering nodes from a Prismic rich text field. */
21
61
  export type RichTextComponentProps<TRTNode extends RTAnyNode = RTAnyNode> = {
22
62
  node: TRTNode
23
63
  }
@@ -27,11 +67,14 @@ export type RichTextComponentProps<TRTNode extends RTAnyNode = RTAnyNode> = {
27
67
  *
28
68
  * @typeParam TRTNode - The type of rich text node(s) this component handles
29
69
  */
30
- type VueRichTextComponent<TRTNode extends RTAnyNode = RTAnyNode> =
31
- // For reference within TypeScript files when `*.vue` type cannot be inferred
32
- // eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/no-explicit-any
33
- | DefineComponent<{}, {}, any>
34
- // Likewise, for reference with TypeScript files.
35
- | ReturnType<typeof defineAsyncComponent>
36
- | DefineComponent<RichTextComponentProps<TRTNode>>
37
- | FunctionalComponent<RichTextComponentProps<TRTNode>>
70
+ export type RichTextComponent<TRTNode extends RTAnyNode = RTAnyNode> =
71
+ Component<RichTextComponentProps<TRTNode>>
72
+
73
+ export type InternalRichTextComponents = Record<
74
+ RichTextNodeTypes,
75
+ {
76
+ is: RichTextComponent
77
+ linkResolver?: LinkResolverFunction
78
+ shorthand?: ComponentShorthand
79
+ }
80
+ >
@@ -2,79 +2,114 @@
2
2
  import { type TableField, isFilled } from "@prismicio/client"
3
3
  import { computed } from "vue"
4
4
 
5
- import type { ComponentOrTagName } from "../types"
6
- import type { VueTableComponents } from "./types"
5
+ import type { ComponentOrTagName, ComponentShorthand } from "../types"
6
+ import { isComponent } from "../types"
7
+ import type { InternalTableComponents, TableComponents } from "./types"
7
8
 
8
- import type { VueRichTextSerializer } from "../PrismicRichText"
9
+ import type { RichTextComponents } from "../PrismicRichText"
10
+ import { usePrismic } from "../createPrismic"
9
11
 
10
12
  import { defaultTableComponents } from "./PrismicTableDefaultComponents"
11
13
  import PrismicTableRow from "./PrismicTableRow.vue"
12
14
 
13
- /**
14
- * Props for `<PrismicTable />`.
15
- */
15
+ /** Props for `<PrismicTable />`. */
16
16
  export type PrismicTableProps = {
17
- /**
18
- * The Prismic table field to render.
19
- */
17
+ /** The Prismic table field to render. */
20
18
  field: TableField | undefined
21
19
 
22
20
  /**
23
- * The value to be rendered when the field is empty. If a fallback is not
24
- * given, `null` (nothing) will be rendered.
25
- */
26
- fallback?: ComponentOrTagName
27
-
28
- /**
29
- * An object that maps a table block type to a Vue component.
21
+ * An object that maps a table block type to a Vue component or a shorthand
22
+ * definition.
30
23
  *
31
24
  * @example
32
25
  *
33
26
  * ```javascript
34
27
  * {
35
28
  * table: Table,
29
+ * thead: { class: 'bg-black text-white' },
30
+ * th: { as: 'td', class: 'font-bold' },
36
31
  * }
37
32
  * ```
38
33
  */
39
- components?: VueTableComponents & VueRichTextSerializer
34
+ components?: TableComponents & RichTextComponents
35
+
36
+ /**
37
+ * The value to be rendered when the field is empty. If a fallback is not
38
+ * given, `null` (nothing) will be rendered.
39
+ */
40
+ fallback?: ComponentOrTagName
40
41
  }
41
42
 
42
43
  const props = defineProps<PrismicTableProps>()
43
44
  defineOptions({ name: "PrismicTable" })
44
45
 
45
- const mergedComponents = computed(() => ({
46
- ...defaultTableComponents,
47
- ...props.components,
48
- }))
46
+ const { components: { richTextComponents } } = usePrismic()
47
+
48
+ const resolvedComponents = computed<TableComponents & RichTextComponents>(
49
+ () => {
50
+ return { ...richTextComponents, ...props.components }
51
+ },
52
+ )
53
+
54
+ function getInternalComponent(type: keyof TableComponents) {
55
+ const maybeComponentOrShorthand = resolvedComponents.value?.[type]
56
+
57
+ if (isComponent(maybeComponentOrShorthand)) {
58
+ return { is: maybeComponentOrShorthand }
59
+ }
60
+
61
+ return {
62
+ is: defaultTableComponents[type],
63
+ shorthand: maybeComponentOrShorthand as ComponentShorthand,
64
+ }
65
+ }
66
+
67
+ const internalTableComponents = computed<InternalTableComponents>(() => {
68
+ return {
69
+ table: getInternalComponent("table"),
70
+ thead: getInternalComponent("thead"),
71
+ tbody: getInternalComponent("tbody"),
72
+ tr: getInternalComponent("tr"),
73
+ th: getInternalComponent("th"),
74
+ td: getInternalComponent("td"),
75
+ }
76
+ })
49
77
  </script>
50
78
 
51
79
  <template>
52
80
  <component
53
81
  v-if="isFilled.table(field)"
54
- :is="mergedComponents.table"
82
+ :is="internalTableComponents.table.is"
55
83
  :table="field"
56
- v-bind="$attrs"
84
+ v-bind="{ ...$attrs, ...internalTableComponents.table.shorthand }"
57
85
  >
58
86
  <component
59
87
  v-if="field.head"
60
- :is="mergedComponents.thead"
88
+ :is="internalTableComponents.thead.is"
61
89
  :head="field.head"
90
+ v-bind="internalTableComponents.thead.shorthand"
62
91
  >
63
92
  <PrismicTableRow
64
93
  v-for="row in field.head.rows"
65
94
  :key="row.key"
66
95
  :row="row"
67
- :components="mergedComponents"
96
+ :internalTableComponents="internalTableComponents"
97
+ :components="components"
68
98
  />
69
99
  </component>
70
- <component :is="mergedComponents.tbody" :body="field.body">
100
+ <component
101
+ :is="internalTableComponents.tbody.is"
102
+ :body="field.body"
103
+ v-bind="internalTableComponents.tbody.shorthand"
104
+ >
71
105
  <PrismicTableRow
72
106
  v-for="row in field.body.rows"
73
107
  :key="row.key"
74
108
  :row="row"
75
- :components="mergedComponents"
109
+ :internalTableComponents="internalTableComponents"
110
+ :components="components"
76
111
  />
77
112
  </component>
78
113
  </component>
79
- <component v-else :is="fallback" />
114
+ <component v-else-if="fallback" :is="fallback" v-bind="$attrs" />
80
115
  </template>
@@ -1,44 +1,44 @@
1
1
  import { defineComponent, h } from "vue"
2
2
 
3
- import type { VueTableComponents } from "./types"
3
+ import type { TableComponents } from "./types"
4
4
 
5
5
  import * as getTableComponentProps from "./getTableComponentProps"
6
6
 
7
- export const defaultTableComponents: Required<VueTableComponents> = {
7
+ export const defaultTableComponents: Required<TableComponents> = {
8
8
  table: defineComponent({
9
9
  props: getTableComponentProps.table(),
10
- setup(props, { slots }) {
11
- return () => h("table", slots.default ? slots.default() : [])
10
+ setup(props, { attrs, slots }) {
11
+ return () => h("table", attrs, slots.default ? slots.default() : [])
12
12
  },
13
13
  }),
14
14
  thead: defineComponent({
15
15
  props: getTableComponentProps.thead(),
16
- setup(props, { slots }) {
17
- return () => h("thead", slots.default ? slots.default() : [])
16
+ setup(props, { attrs, slots }) {
17
+ return () => h("thead", attrs, slots.default ? slots.default() : [])
18
18
  },
19
19
  }),
20
20
  tbody: defineComponent({
21
21
  props: getTableComponentProps.tbody(),
22
- setup(props, { slots }) {
23
- return () => h("tbody", slots.default ? slots.default() : [])
22
+ setup(props, { attrs, slots }) {
23
+ return () => h("tbody", attrs, slots.default ? slots.default() : [])
24
24
  },
25
25
  }),
26
26
  tr: defineComponent({
27
27
  props: getTableComponentProps.tr(),
28
- setup(props, { slots }) {
29
- return () => h("tr", slots.default ? slots.default() : [])
28
+ setup(props, { attrs, slots }) {
29
+ return () => h("tr", attrs, slots.default ? slots.default() : [])
30
30
  },
31
31
  }),
32
32
  th: defineComponent({
33
33
  props: getTableComponentProps.th(),
34
- setup(props, { slots }) {
35
- return () => h("th", slots.default ? slots.default() : [])
34
+ setup(props, { attrs, slots }) {
35
+ return () => h("th", attrs, slots.default ? slots.default() : [])
36
36
  },
37
37
  }),
38
38
  td: defineComponent({
39
39
  props: getTableComponentProps.td(),
40
- setup(props, { slots }) {
41
- return () => h("td", slots.default ? slots.default() : [])
40
+ setup(props, { attrs, slots }) {
41
+ return () => h("td", attrs, slots.default ? slots.default() : [])
42
42
  },
43
43
  }),
44
44
  }
@@ -1,32 +1,15 @@
1
1
  <script lang="ts" setup>
2
2
  import type { TableFieldBodyRow, TableFieldHeadRow } from "@prismicio/client"
3
3
 
4
- import type { VueTableComponents } from "./types"
4
+ import type { InternalTableComponents } from "./types"
5
5
 
6
- import type { VueRichTextSerializer } from "../PrismicRichText"
6
+ import type { RichTextComponents } from "../PrismicRichText"
7
7
  import PrismicRichText from "../PrismicRichText/PrismicRichText.vue"
8
8
 
9
- /**
10
- * Props for `<PrismicRowTable />`.
11
- */
12
9
  export type PrismicTableRowProps = {
13
- /**
14
- * The Prismic table row to render.
15
- */
16
10
  row: TableFieldHeadRow | TableFieldBodyRow
17
-
18
- /**
19
- * An object that maps a table block type to a Vue component.
20
- *
21
- * @example
22
- *
23
- * ```javascript
24
- * {
25
- * tr: TableRow,
26
- * }
27
- * ```
28
- */
29
- components: VueTableComponents & VueRichTextSerializer
11
+ internalTableComponents: InternalTableComponents
12
+ components?: RichTextComponents
30
13
  }
31
14
 
32
15
  const props = defineProps<PrismicTableRowProps>()
@@ -34,17 +17,27 @@ defineOptions({ name: "PrismicTableRow" })
34
17
  </script>
35
18
 
36
19
  <template>
37
- <component :is="props.components.tr" :row="row">
20
+ <component
21
+ :is="internalTableComponents.tr.is"
22
+ :row="row"
23
+ v-bind="internalTableComponents.tr.shorthand"
24
+ >
38
25
  <template v-for="cell in row.cells" :key="cell.key">
39
26
  <component
40
27
  v-if="cell.type === 'header'"
41
- :is="props.components.th"
28
+ :is="internalTableComponents.th.is"
42
29
  :cell="cell"
30
+ v-bind="internalTableComponents.th.shorthand"
43
31
  >
44
32
  <PrismicRichText :field="cell.content" :components="components" />
45
33
  </component>
46
- <component v-else :is="props.components.td" :cell="cell">
47
- <PrismicRichText :field="cell.content" :components="props.components" />
34
+ <component
35
+ v-else
36
+ :is="internalTableComponents.td.is"
37
+ :cell="cell"
38
+ v-bind="internalTableComponents.td.shorthand"
39
+ >
40
+ <PrismicRichText :field="cell.content" :components="components" />
48
41
  </component>
49
42
  </template>
50
43
  </component>
@@ -1 +1,3 @@
1
1
  export * as getTableComponentProps from "./getTableComponentProps"
2
+
3
+ export type { TableComponents } from "./types"
@@ -7,11 +7,8 @@ import type {
7
7
  TableFieldHeadRow,
8
8
  TableFieldHeaderCell,
9
9
  } from "@prismicio/client"
10
- import type {
11
- DefineComponent,
12
- FunctionalComponent,
13
- defineAsyncComponent,
14
- } from "vue"
10
+
11
+ import type { Component, ComponentShorthand } from "../types"
15
12
 
16
13
  /**
17
14
  * A map of Table block types to Vue Components. It is used to render table
@@ -19,16 +16,50 @@ import type {
19
16
  *
20
17
  * @see Templating Table fields from Prismic {@link https://prismic.io/docs/table}
21
18
  */
22
- export type VueTableComponents = {
23
- table?: VueComponent<{ table: TableField<"filled"> }>
24
- thead?: VueComponent<{ head: TableFieldHead }>
25
- tbody?: VueComponent<{ body: TableFieldBody }>
26
- tr?: VueComponent<{ row: TableFieldBodyRow | TableFieldHeadRow }>
27
- th?: VueComponent<{ cell: TableFieldHeaderCell }>
28
- td?: VueComponent<{ cell: TableFieldDataCell }>
19
+ export type TableComponents = {
20
+ table?:
21
+ | Component<{ table: TableField<"filled"> }>
22
+ | Omit<ComponentShorthand, "as">
23
+ thead?:
24
+ | Component<{ head: TableFieldHead }>
25
+ | Omit<ComponentShorthand, "as">
26
+ tbody?:
27
+ | Component<{ body: TableFieldBody }>
28
+ | Omit<ComponentShorthand, "as">
29
+ tr?:
30
+ | Component<{ row: TableFieldBodyRow | TableFieldHeadRow }>
31
+ | Omit<ComponentShorthand, "as">
32
+ th?:
33
+ | Component<{ cell: TableFieldHeaderCell }>
34
+ | Omit<ComponentShorthand, "as">
35
+ td?:
36
+ | Component<{ cell: TableFieldDataCell }>
37
+ | Omit<ComponentShorthand, "as">
29
38
  }
30
39
 
31
- type VueComponent<TProps> =
32
- | ReturnType<typeof defineAsyncComponent>
33
- | DefineComponent<TProps>
34
- | FunctionalComponent<TProps>
40
+ export type InternalTableComponents = {
41
+ table: {
42
+ is: TableComponents["table"]
43
+ shorthand?: Omit<ComponentShorthand, "as">
44
+ }
45
+ thead: {
46
+ is: TableComponents["thead"]
47
+ shorthand?: Omit<ComponentShorthand, "as">
48
+ }
49
+ tbody: {
50
+ is: TableComponents["tbody"]
51
+ shorthand?: Omit<ComponentShorthand, "as">
52
+ }
53
+ tr: {
54
+ is: TableComponents["tr"]
55
+ shorthand?: Omit<ComponentShorthand, "as">
56
+ }
57
+ th: {
58
+ is: TableComponents["th"]
59
+ shorthand?: Omit<ComponentShorthand, "as">
60
+ }
61
+ td: {
62
+ is: TableComponents["td"]
63
+ shorthand?: Omit<ComponentShorthand, "as">
64
+ }
65
+ }