@prismicio/vue 5.3.0 → 6.0.0-pr.90.1c31b0e

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 (394) hide show
  1. package/README.md +10 -24
  2. package/dist/PrismicImage.vue.d.cts +267 -0
  3. package/dist/PrismicImage.vue.d.cts.map +1 -0
  4. package/dist/PrismicLink.vue.d.cts +207 -0
  5. package/dist/PrismicLink.vue.d.cts.map +1 -0
  6. package/dist/PrismicRichText/PrismicRichText.vue.d.cts +73 -0
  7. package/dist/PrismicRichText/PrismicRichText.vue.d.cts.map +1 -0
  8. package/dist/PrismicRichText/getRichTextComponentProps.d.cts +54 -0
  9. package/dist/PrismicRichText/getRichTextComponentProps.d.cts.map +1 -0
  10. package/dist/PrismicRichText/types.d.cts +45 -0
  11. package/dist/PrismicRichText/types.d.cts.map +1 -0
  12. package/dist/PrismicTable/PrismicTable.vue.d.cts +37 -0
  13. package/dist/PrismicTable/PrismicTable.vue.d.cts.map +1 -0
  14. package/dist/PrismicTable/getTableComponentProps.d.cts +136 -0
  15. package/dist/PrismicTable/getTableComponentProps.d.cts.map +1 -0
  16. package/dist/PrismicTable/types.d.cts +34 -0
  17. package/dist/PrismicTable/types.d.cts.map +1 -0
  18. package/dist/PrismicText.vue.d.cts +25 -0
  19. package/dist/PrismicText.vue.d.cts.map +1 -0
  20. package/dist/SliceSimulator.vue.d.cts +57 -0
  21. package/dist/SliceSimulator.vue.d.cts.map +1 -0
  22. package/dist/SliceZone/SliceZone.vue.d.cts +29 -0
  23. package/dist/SliceZone/SliceZone.vue.d.cts.map +1 -0
  24. package/dist/SliceZone/TODOSliceComponent.d.cts +15 -0
  25. package/dist/SliceZone/TODOSliceComponent.d.cts.map +1 -0
  26. package/dist/SliceZone/defineSliceZoneComponents.d.cts +42 -0
  27. package/dist/SliceZone/defineSliceZoneComponents.d.cts.map +1 -0
  28. package/dist/SliceZone/getSliceComponentProps.d.cts +71 -0
  29. package/dist/SliceZone/getSliceComponentProps.d.cts.map +1 -0
  30. package/dist/SliceZone/types.d.cts +94 -0
  31. package/dist/SliceZone/types.d.cts.map +1 -0
  32. package/dist/_virtual/rolldown_runtime.cjs +19 -0
  33. package/dist/_virtual/rolldown_runtime.js +18 -0
  34. package/dist/createPrismic.d.cts +76 -0
  35. package/dist/createPrismic.d.cts.map +1 -0
  36. package/dist/index.cjs +33 -32
  37. package/dist/index.d.cts +17 -0
  38. package/dist/index.d.ts +20 -23
  39. package/dist/index.js +15 -32
  40. package/dist/package.cjs +12 -0
  41. package/dist/package.cjs.map +1 -0
  42. package/dist/package.js +6 -0
  43. package/dist/package.js.map +1 -0
  44. package/dist/src/PrismicImage.cjs +8 -0
  45. package/dist/src/PrismicImage.cjs.map +1 -0
  46. package/dist/src/PrismicImage.js +8 -0
  47. package/dist/src/PrismicImage.js.map +1 -0
  48. package/dist/src/PrismicImage.vue.d.ts +267 -0
  49. package/dist/src/PrismicImage.vue.d.ts.map +1 -0
  50. package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.cjs +115 -0
  51. package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  52. package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.js +115 -0
  53. package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.js.map +1 -0
  54. package/dist/src/PrismicLink.cjs +8 -0
  55. package/dist/src/PrismicLink.cjs.map +1 -0
  56. package/dist/src/PrismicLink.js +8 -0
  57. package/dist/src/PrismicLink.js.map +1 -0
  58. package/dist/src/PrismicLink.vue.d.ts +207 -0
  59. package/dist/src/PrismicLink.vue.d.ts.map +1 -0
  60. package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.cjs +79 -0
  61. package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  62. package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.js +79 -0
  63. package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  64. package/dist/src/PrismicRichText/PrismicRichText.cjs +8 -0
  65. package/dist/src/PrismicRichText/PrismicRichText.cjs.map +1 -0
  66. package/dist/src/PrismicRichText/PrismicRichText.js +8 -0
  67. package/dist/src/PrismicRichText/PrismicRichText.js.map +1 -0
  68. package/dist/src/PrismicRichText/PrismicRichText.vue.d.ts +73 -0
  69. package/dist/src/PrismicRichText/PrismicRichText.vue.d.ts.map +1 -0
  70. package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs +78 -0
  71. package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  72. package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js +78 -0
  73. package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js.map +1 -0
  74. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.cjs +8 -0
  75. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.cjs.map +1 -0
  76. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.js +8 -0
  77. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.js.map +1 -0
  78. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs +123 -0
  79. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  80. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js +123 -0
  81. package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  82. package/dist/src/PrismicRichText/PrismicRichTextSerialize.cjs +8 -0
  83. package/dist/src/PrismicRichText/PrismicRichTextSerialize.cjs.map +1 -0
  84. package/dist/src/PrismicRichText/PrismicRichTextSerialize.js +8 -0
  85. package/dist/src/PrismicRichText/PrismicRichTextSerialize.js.map +1 -0
  86. package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs +46 -0
  87. package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  88. package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js +46 -0
  89. package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js.map +1 -0
  90. package/dist/src/PrismicRichText/getRichTextComponentProps.cjs +40 -0
  91. package/dist/src/PrismicRichText/getRichTextComponentProps.cjs.map +1 -0
  92. package/dist/{PrismicRichText → src/PrismicRichText}/getRichTextComponentProps.d.ts +15 -10
  93. package/dist/src/PrismicRichText/getRichTextComponentProps.d.ts.map +1 -0
  94. package/dist/src/PrismicRichText/getRichTextComponentProps.js +39 -0
  95. package/dist/src/PrismicRichText/getRichTextComponentProps.js.map +1 -0
  96. package/dist/src/PrismicRichText/index.d.ts +2 -0
  97. package/dist/src/PrismicRichText/types.d.ts +45 -0
  98. package/dist/src/PrismicRichText/types.d.ts.map +1 -0
  99. package/dist/src/PrismicTable/PrismicTable.cjs +8 -0
  100. package/dist/src/PrismicTable/PrismicTable.cjs.map +1 -0
  101. package/dist/src/PrismicTable/PrismicTable.js +8 -0
  102. package/dist/src/PrismicTable/PrismicTable.js.map +1 -0
  103. package/dist/src/PrismicTable/PrismicTable.vue.d.ts +38 -0
  104. package/dist/src/PrismicTable/PrismicTable.vue.d.ts.map +1 -0
  105. package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs +101 -0
  106. package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  107. package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js +101 -0
  108. package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  109. package/dist/src/PrismicTable/PrismicTableDefaultComponents.cjs +46 -0
  110. package/dist/src/PrismicTable/PrismicTableDefaultComponents.cjs.map +1 -0
  111. package/dist/src/PrismicTable/PrismicTableDefaultComponents.js +46 -0
  112. package/dist/src/PrismicTable/PrismicTableDefaultComponents.js.map +1 -0
  113. package/dist/src/PrismicTable/PrismicTableRow.cjs +8 -0
  114. package/dist/src/PrismicTable/PrismicTableRow.cjs.map +1 -0
  115. package/dist/src/PrismicTable/PrismicTableRow.js +8 -0
  116. package/dist/src/PrismicTable/PrismicTableRow.js.map +1 -0
  117. package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.cjs +54 -0
  118. package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  119. package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.js +54 -0
  120. package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
  121. package/dist/src/PrismicTable/getTableComponentProps.cjs +140 -0
  122. package/dist/src/PrismicTable/getTableComponentProps.cjs.map +1 -0
  123. package/dist/{PrismicTable → src/PrismicTable}/getTableComponentProps.d.ts +40 -32
  124. package/dist/src/PrismicTable/getTableComponentProps.d.ts.map +1 -0
  125. package/dist/src/PrismicTable/getTableComponentProps.js +129 -0
  126. package/dist/src/PrismicTable/getTableComponentProps.js.map +1 -0
  127. package/dist/src/PrismicTable/index.d.ts +2 -0
  128. package/dist/src/PrismicTable/types.d.ts +34 -0
  129. package/dist/src/PrismicTable/types.d.ts.map +1 -0
  130. package/dist/src/PrismicText.cjs +8 -0
  131. package/dist/src/PrismicText.cjs.map +1 -0
  132. package/dist/src/PrismicText.js +8 -0
  133. package/dist/src/PrismicText.js.map +1 -0
  134. package/dist/src/PrismicText.vue.d.ts +25 -0
  135. package/dist/src/PrismicText.vue.d.ts.map +1 -0
  136. package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.cjs +37 -0
  137. package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  138. package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.js +37 -0
  139. package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.js.map +1 -0
  140. package/dist/src/SliceSimulator.cjs +8 -0
  141. package/dist/src/SliceSimulator.cjs.map +1 -0
  142. package/dist/src/SliceSimulator.js +8 -0
  143. package/dist/src/SliceSimulator.js.map +1 -0
  144. package/dist/src/SliceSimulator.vue.d.ts +57 -0
  145. package/dist/src/SliceSimulator.vue.d.ts.map +1 -0
  146. package/dist/src/SliceSimulator.vue_vue_type_script_setup_true_lang.cjs +63 -0
  147. package/dist/src/SliceSimulator.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  148. package/dist/src/SliceSimulator.vue_vue_type_script_setup_true_lang.js +63 -0
  149. package/dist/src/SliceSimulator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  150. package/dist/src/SliceZone/SliceZone.cjs +8 -0
  151. package/dist/src/SliceZone/SliceZone.cjs.map +1 -0
  152. package/dist/src/SliceZone/SliceZone.js +8 -0
  153. package/dist/src/SliceZone/SliceZone.js.map +1 -0
  154. package/dist/src/SliceZone/SliceZone.vue.d.ts +29 -0
  155. package/dist/src/SliceZone/SliceZone.vue.d.ts.map +1 -0
  156. package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs +70 -0
  157. package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  158. package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js +70 -0
  159. package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js.map +1 -0
  160. package/dist/src/SliceZone/TODOSliceComponent.cjs +36 -0
  161. package/dist/src/SliceZone/TODOSliceComponent.cjs.map +1 -0
  162. package/dist/src/SliceZone/TODOSliceComponent.d.ts +15 -0
  163. package/dist/src/SliceZone/TODOSliceComponent.d.ts.map +1 -0
  164. package/dist/src/SliceZone/TODOSliceComponent.js +36 -0
  165. package/dist/src/SliceZone/TODOSliceComponent.js.map +1 -0
  166. package/dist/src/SliceZone/defineSliceZoneComponents.cjs +50 -0
  167. package/dist/src/SliceZone/defineSliceZoneComponents.cjs.map +1 -0
  168. package/dist/{SliceZone → src/SliceZone}/defineSliceZoneComponents.d.ts +8 -2
  169. package/dist/src/SliceZone/defineSliceZoneComponents.d.ts.map +1 -0
  170. package/dist/src/SliceZone/defineSliceZoneComponents.js +50 -0
  171. package/dist/src/SliceZone/defineSliceZoneComponents.js.map +1 -0
  172. package/dist/src/SliceZone/getSliceComponentProps.cjs +60 -0
  173. package/dist/src/SliceZone/getSliceComponentProps.cjs.map +1 -0
  174. package/dist/{SliceZone → src/SliceZone}/getSliceComponentProps.d.ts +25 -20
  175. package/dist/src/SliceZone/getSliceComponentProps.d.ts.map +1 -0
  176. package/dist/src/SliceZone/getSliceComponentProps.js +59 -0
  177. package/dist/src/SliceZone/getSliceComponentProps.js.map +1 -0
  178. package/dist/src/SliceZone/index.d.ts +4 -0
  179. package/dist/{SliceZone → src/SliceZone}/types.d.ts +34 -37
  180. package/dist/src/SliceZone/types.d.ts.map +1 -0
  181. package/dist/src/createPrismic.cjs +34 -0
  182. package/dist/src/createPrismic.cjs.map +1 -0
  183. package/dist/src/createPrismic.d.ts +78 -0
  184. package/dist/src/createPrismic.d.ts.map +1 -0
  185. package/dist/src/createPrismic.js +33 -0
  186. package/dist/src/createPrismic.js.map +1 -0
  187. package/dist/src/lib/devMsg.cjs +25 -0
  188. package/dist/src/lib/devMsg.cjs.map +1 -0
  189. package/dist/src/lib/devMsg.js +25 -0
  190. package/dist/src/lib/devMsg.js.map +1 -0
  191. package/dist/src/lib/isInternalURL.cjs +20 -0
  192. package/dist/src/lib/isInternalURL.cjs.map +1 -0
  193. package/dist/src/lib/isInternalURL.js +19 -0
  194. package/dist/src/lib/isInternalURL.js.map +1 -0
  195. package/dist/src/types.cjs +9 -0
  196. package/dist/src/types.cjs.map +1 -0
  197. package/dist/src/types.d.ts +18 -0
  198. package/dist/src/types.d.ts.map +1 -0
  199. package/dist/src/types.js +8 -0
  200. package/dist/src/types.js.map +1 -0
  201. package/dist/types.d.cts +18 -0
  202. package/dist/types.d.cts.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 +80 -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.d.ts +0 -294
  237. package/dist/PrismicImage.vue.js +0 -113
  238. package/dist/PrismicImage.vue.js.map +0 -1
  239. package/dist/PrismicImage.vue2.cjs +0 -4
  240. package/dist/PrismicImage.vue2.cjs.map +0 -1
  241. package/dist/PrismicImage.vue2.js +0 -5
  242. package/dist/PrismicImage.vue2.js.map +0 -1
  243. package/dist/PrismicLink.vue.cjs +0 -64
  244. package/dist/PrismicLink.vue.cjs.map +0 -1
  245. package/dist/PrismicLink.vue.d.ts +0 -279
  246. package/dist/PrismicLink.vue.js +0 -65
  247. package/dist/PrismicLink.vue.js.map +0 -1
  248. package/dist/PrismicLink.vue2.cjs +0 -4
  249. package/dist/PrismicLink.vue2.cjs.map +0 -1
  250. package/dist/PrismicLink.vue2.js +0 -5
  251. package/dist/PrismicLink.vue2.js.map +0 -1
  252. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs +0 -100
  253. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs.map +0 -1
  254. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.d.ts +0 -38
  255. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js +0 -101
  256. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js.map +0 -1
  257. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs +0 -4
  258. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs.map +0 -1
  259. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js +0 -5
  260. package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js.map +0 -1
  261. package/dist/PrismicRichText/PrismicRichText.vue.cjs +0 -97
  262. package/dist/PrismicRichText/PrismicRichText.vue.cjs.map +0 -1
  263. package/dist/PrismicRichText/PrismicRichText.vue.d.ts +0 -96
  264. package/dist/PrismicRichText/PrismicRichText.vue.js +0 -98
  265. package/dist/PrismicRichText/PrismicRichText.vue.js.map +0 -1
  266. package/dist/PrismicRichText/PrismicRichText.vue2.cjs +0 -4
  267. package/dist/PrismicRichText/PrismicRichText.vue2.cjs.map +0 -1
  268. package/dist/PrismicRichText/PrismicRichText.vue2.js +0 -5
  269. package/dist/PrismicRichText/PrismicRichText.vue2.js.map +0 -1
  270. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs +0 -133
  271. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs.map +0 -1
  272. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.d.ts +0 -37
  273. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js +0 -134
  274. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js.map +0 -1
  275. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs +0 -4
  276. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs.map +0 -1
  277. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js +0 -5
  278. package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js.map +0 -1
  279. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs +0 -47
  280. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs.map +0 -1
  281. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.d.ts +0 -10
  282. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js +0 -48
  283. package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js.map +0 -1
  284. package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs +0 -4
  285. package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs.map +0 -1
  286. package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js +0 -5
  287. package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js.map +0 -1
  288. package/dist/PrismicRichText/getRichTextComponentProps.cjs +0 -10
  289. package/dist/PrismicRichText/getRichTextComponentProps.cjs.map +0 -1
  290. package/dist/PrismicRichText/getRichTextComponentProps.js +0 -10
  291. package/dist/PrismicRichText/getRichTextComponentProps.js.map +0 -1
  292. package/dist/PrismicRichText/index.d.ts +0 -2
  293. package/dist/PrismicRichText/types.d.ts +0 -22
  294. package/dist/PrismicTable/PrismicTable.vue.cjs +0 -62
  295. package/dist/PrismicTable/PrismicTable.vue.cjs.map +0 -1
  296. package/dist/PrismicTable/PrismicTable.vue.d.ts +0 -32
  297. package/dist/PrismicTable/PrismicTable.vue.js +0 -63
  298. package/dist/PrismicTable/PrismicTable.vue.js.map +0 -1
  299. package/dist/PrismicTable/PrismicTable.vue2.cjs +0 -4
  300. package/dist/PrismicTable/PrismicTable.vue2.cjs.map +0 -1
  301. package/dist/PrismicTable/PrismicTable.vue2.js +0 -5
  302. package/dist/PrismicTable/PrismicTable.vue2.js.map +0 -1
  303. package/dist/PrismicTable/PrismicTableDefaultComponents.cjs +0 -44
  304. package/dist/PrismicTable/PrismicTableDefaultComponents.cjs.map +0 -1
  305. package/dist/PrismicTable/PrismicTableDefaultComponents.d.ts +0 -2
  306. package/dist/PrismicTable/PrismicTableDefaultComponents.js +0 -44
  307. package/dist/PrismicTable/PrismicTableDefaultComponents.js.map +0 -1
  308. package/dist/PrismicTable/PrismicTableRow.vue.cjs +0 -52
  309. package/dist/PrismicTable/PrismicTableRow.vue.cjs.map +0 -1
  310. package/dist/PrismicTable/PrismicTableRow.vue.d.ts +0 -26
  311. package/dist/PrismicTable/PrismicTableRow.vue.js +0 -53
  312. package/dist/PrismicTable/PrismicTableRow.vue.js.map +0 -1
  313. package/dist/PrismicTable/PrismicTableRow.vue2.cjs +0 -4
  314. package/dist/PrismicTable/PrismicTableRow.vue2.cjs.map +0 -1
  315. package/dist/PrismicTable/PrismicTableRow.vue2.js +0 -5
  316. package/dist/PrismicTable/PrismicTableRow.vue2.js.map +0 -1
  317. package/dist/PrismicTable/getTableComponentProps.cjs +0 -30
  318. package/dist/PrismicTable/getTableComponentProps.cjs.map +0 -1
  319. package/dist/PrismicTable/getTableComponentProps.js +0 -30
  320. package/dist/PrismicTable/getTableComponentProps.js.map +0 -1
  321. package/dist/PrismicTable/index.d.ts +0 -1
  322. package/dist/PrismicTable/types.d.ts +0 -30
  323. package/dist/PrismicText.vue.cjs +0 -43
  324. package/dist/PrismicText.vue.cjs.map +0 -1
  325. package/dist/PrismicText.vue.d.ts +0 -31
  326. package/dist/PrismicText.vue.js +0 -44
  327. package/dist/PrismicText.vue.js.map +0 -1
  328. package/dist/PrismicText.vue2.cjs +0 -4
  329. package/dist/PrismicText.vue2.cjs.map +0 -1
  330. package/dist/PrismicText.vue2.js +0 -5
  331. package/dist/PrismicText.vue2.js.map +0 -1
  332. package/dist/SliceZone/SliceZone.vue.cjs +0 -63
  333. package/dist/SliceZone/SliceZone.vue.cjs.map +0 -1
  334. package/dist/SliceZone/SliceZone.vue.d.ts +0 -41
  335. package/dist/SliceZone/SliceZone.vue.js +0 -64
  336. package/dist/SliceZone/SliceZone.vue.js.map +0 -1
  337. package/dist/SliceZone/SliceZone.vue2.cjs +0 -4
  338. package/dist/SliceZone/SliceZone.vue2.cjs.map +0 -1
  339. package/dist/SliceZone/SliceZone.vue2.js +0 -5
  340. package/dist/SliceZone/SliceZone.vue2.js.map +0 -1
  341. package/dist/SliceZone/TODOSliceComponent.cjs +0 -29
  342. package/dist/SliceZone/TODOSliceComponent.cjs.map +0 -1
  343. package/dist/SliceZone/TODOSliceComponent.d.ts +0 -9
  344. package/dist/SliceZone/TODOSliceComponent.js +0 -29
  345. package/dist/SliceZone/TODOSliceComponent.js.map +0 -1
  346. package/dist/SliceZone/defineSliceZoneComponents.cjs +0 -14
  347. package/dist/SliceZone/defineSliceZoneComponents.cjs.map +0 -1
  348. package/dist/SliceZone/defineSliceZoneComponents.js +0 -14
  349. package/dist/SliceZone/defineSliceZoneComponents.js.map +0 -1
  350. package/dist/SliceZone/getSliceComponentProps.cjs +0 -22
  351. package/dist/SliceZone/getSliceComponentProps.cjs.map +0 -1
  352. package/dist/SliceZone/getSliceComponentProps.js +0 -22
  353. package/dist/SliceZone/getSliceComponentProps.js.map +0 -1
  354. package/dist/SliceZone/index.d.ts +0 -4
  355. package/dist/createPrismic.cjs +0 -81
  356. package/dist/createPrismic.cjs.map +0 -1
  357. package/dist/createPrismic.d.ts +0 -22
  358. package/dist/createPrismic.js +0 -81
  359. package/dist/createPrismic.js.map +0 -1
  360. package/dist/index.cjs.map +0 -1
  361. package/dist/index.js.map +0 -1
  362. package/dist/lib/Wrapper.vue.cjs +0 -20
  363. package/dist/lib/Wrapper.vue.cjs.map +0 -1
  364. package/dist/lib/Wrapper.vue.d.ts +0 -28
  365. package/dist/lib/Wrapper.vue.js +0 -21
  366. package/dist/lib/Wrapper.vue.js.map +0 -1
  367. package/dist/lib/Wrapper.vue2.cjs +0 -4
  368. package/dist/lib/Wrapper.vue2.cjs.map +0 -1
  369. package/dist/lib/Wrapper.vue2.js +0 -5
  370. package/dist/lib/Wrapper.vue2.js.map +0 -1
  371. package/dist/lib/devMsg.cjs +0 -8
  372. package/dist/lib/devMsg.cjs.map +0 -1
  373. package/dist/lib/devMsg.d.ts +0 -16
  374. package/dist/lib/devMsg.js +0 -8
  375. package/dist/lib/devMsg.js.map +0 -1
  376. package/dist/lib/isInternalURL.cjs +0 -9
  377. package/dist/lib/isInternalURL.cjs.map +0 -1
  378. package/dist/lib/isInternalURL.d.ts +0 -8
  379. package/dist/lib/isInternalURL.js +0 -9
  380. package/dist/lib/isInternalURL.js.map +0 -1
  381. package/dist/package.json.cjs +0 -5
  382. package/dist/package.json.cjs.map +0 -1
  383. package/dist/package.json.js +0 -5
  384. package/dist/package.json.js.map +0 -1
  385. package/dist/types.d.ts +0 -369
  386. package/dist/usePrismic.cjs +0 -10
  387. package/dist/usePrismic.cjs.map +0 -1
  388. package/dist/usePrismic.d.ts +0 -30
  389. package/dist/usePrismic.js +0 -10
  390. package/dist/usePrismic.js.map +0 -1
  391. package/src/PrismicEmbed.vue +0 -42
  392. package/src/PrismicRichText/DeprecatedPrismicRichText.vue +0 -146
  393. package/src/lib/Wrapper.vue +0 -22
  394. 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
+ }