@prismicio/vue 5.2.1 → 5.3.0-canary.4c3e4ab
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -15
- package/dist/PrismicImage.vue.d.cts +280 -0
- package/dist/PrismicImage.vue.d.cts.map +1 -0
- package/dist/PrismicLink.vue.d.cts +222 -0
- package/dist/PrismicLink.vue.d.cts.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue.d.cts +77 -0
- package/dist/PrismicRichText/PrismicRichText.vue.d.cts.map +1 -0
- package/dist/PrismicRichText/getRichTextComponentProps.d.cts +54 -0
- package/dist/PrismicRichText/getRichTextComponentProps.d.cts.map +1 -0
- package/dist/PrismicRichText/types.d.cts +40 -0
- package/dist/PrismicRichText/types.d.cts.map +1 -0
- package/dist/PrismicTable/PrismicTable.vue.d.cts +41 -0
- package/dist/PrismicTable/PrismicTable.vue.d.cts.map +1 -0
- package/dist/PrismicTable/getTableComponentProps.d.cts +136 -0
- package/dist/PrismicTable/getTableComponentProps.d.cts.map +1 -0
- package/dist/PrismicTable/types.d.cts +35 -0
- package/dist/PrismicTable/types.d.cts.map +1 -0
- package/dist/PrismicText.vue.d.cts +29 -0
- package/dist/PrismicText.vue.d.cts.map +1 -0
- package/dist/SliceZone/SliceZone.vue.d.cts +35 -0
- package/dist/SliceZone/SliceZone.vue.d.cts.map +1 -0
- package/dist/SliceZone/TODOSliceComponent.d.cts +15 -0
- package/dist/SliceZone/TODOSliceComponent.d.cts.map +1 -0
- package/dist/SliceZone/defineSliceZoneComponents.d.cts +42 -0
- package/dist/SliceZone/defineSliceZoneComponents.d.cts.map +1 -0
- package/dist/SliceZone/getSliceComponentProps.d.cts +71 -0
- package/dist/SliceZone/getSliceComponentProps.d.cts.map +1 -0
- package/dist/SliceZone/types.d.cts +100 -0
- package/dist/SliceZone/types.d.cts.map +1 -0
- package/dist/_virtual/rolldown_runtime.cjs +19 -0
- package/dist/_virtual/rolldown_runtime.js +18 -0
- package/dist/index.cjs +28 -32
- package/dist/index.d.cts +14 -0
- package/dist/index.d.ts +17 -23
- package/dist/index.js +13 -32
- package/dist/package.cjs +12 -0
- package/dist/package.cjs.map +1 -0
- package/dist/package.js +6 -0
- package/dist/package.js.map +1 -0
- package/dist/src/PrismicImage.cjs +8 -0
- package/dist/src/PrismicImage.cjs.map +1 -0
- package/dist/src/PrismicImage.js +8 -0
- package/dist/src/PrismicImage.js.map +1 -0
- package/dist/src/PrismicImage.vue.d.ts +280 -0
- package/dist/src/PrismicImage.vue.d.ts.map +1 -0
- package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.cjs +115 -0
- package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.js +115 -0
- package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/PrismicLink.cjs +8 -0
- package/dist/src/PrismicLink.cjs.map +1 -0
- package/dist/src/PrismicLink.js +8 -0
- package/dist/src/PrismicLink.js.map +1 -0
- package/dist/src/PrismicLink.vue.d.ts +222 -0
- package/dist/src/PrismicLink.vue.d.ts.map +1 -0
- package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.cjs +83 -0
- package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.js +83 -0
- package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichText.cjs +8 -0
- package/dist/src/PrismicRichText/PrismicRichText.cjs.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichText.js +8 -0
- package/dist/src/PrismicRichText/PrismicRichText.js.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichText.vue.d.ts +77 -0
- package/dist/src/PrismicRichText/PrismicRichText.vue.d.ts.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs +72 -0
- package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.cjs +8 -0
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.cjs.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.js +8 -0
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.js.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs +123 -0
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js +123 -0
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.cjs +8 -0
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.cjs.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.js +8 -0
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.js.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs +40 -0
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js +40 -0
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/PrismicRichText/getRichTextComponentProps.cjs +40 -0
- package/dist/src/PrismicRichText/getRichTextComponentProps.cjs.map +1 -0
- package/dist/{PrismicRichText → src/PrismicRichText}/getRichTextComponentProps.d.ts +15 -10
- package/dist/src/PrismicRichText/getRichTextComponentProps.d.ts.map +1 -0
- package/dist/src/PrismicRichText/getRichTextComponentProps.js +39 -0
- package/dist/src/PrismicRichText/getRichTextComponentProps.js.map +1 -0
- package/dist/src/PrismicRichText/index.d.ts +2 -0
- package/dist/src/PrismicRichText/types.d.ts +40 -0
- package/dist/src/PrismicRichText/types.d.ts.map +1 -0
- package/dist/src/PrismicTable/PrismicTable.cjs +8 -0
- package/dist/src/PrismicTable/PrismicTable.cjs.map +1 -0
- package/dist/src/PrismicTable/PrismicTable.js +8 -0
- package/dist/src/PrismicTable/PrismicTable.js.map +1 -0
- package/dist/src/PrismicTable/PrismicTable.vue.d.ts +42 -0
- package/dist/src/PrismicTable/PrismicTable.vue.d.ts.map +1 -0
- package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs +93 -0
- package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js +93 -0
- package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/PrismicTable/PrismicTableDefaultComponents.cjs +64 -0
- package/dist/src/PrismicTable/PrismicTableDefaultComponents.cjs.map +1 -0
- package/dist/src/PrismicTable/PrismicTableDefaultComponents.js +64 -0
- package/dist/src/PrismicTable/PrismicTableDefaultComponents.js.map +1 -0
- package/dist/src/PrismicTable/PrismicTableRow.cjs +8 -0
- package/dist/src/PrismicTable/PrismicTableRow.cjs.map +1 -0
- package/dist/src/PrismicTable/PrismicTableRow.js +8 -0
- package/dist/src/PrismicTable/PrismicTableRow.js.map +1 -0
- package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.cjs +54 -0
- package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/PrismicTable/getTableComponentProps.cjs +140 -0
- package/dist/src/PrismicTable/getTableComponentProps.cjs.map +1 -0
- package/dist/{PrismicTable → src/PrismicTable}/getTableComponentProps.d.ts +40 -32
- package/dist/src/PrismicTable/getTableComponentProps.d.ts.map +1 -0
- package/dist/src/PrismicTable/getTableComponentProps.js +129 -0
- package/dist/src/PrismicTable/getTableComponentProps.js.map +1 -0
- package/dist/src/PrismicTable/index.d.ts +1 -0
- package/dist/src/PrismicTable/types.d.ts +35 -0
- package/dist/src/PrismicTable/types.d.ts.map +1 -0
- package/dist/src/PrismicText.cjs +8 -0
- package/dist/src/PrismicText.cjs.map +1 -0
- package/dist/src/PrismicText.js +8 -0
- package/dist/src/PrismicText.js.map +1 -0
- package/dist/src/PrismicText.vue.d.ts +29 -0
- package/dist/src/PrismicText.vue.d.ts.map +1 -0
- package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.cjs +37 -0
- package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.js +37 -0
- package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/SliceZone/SliceZone.cjs +8 -0
- package/dist/src/SliceZone/SliceZone.cjs.map +1 -0
- package/dist/src/SliceZone/SliceZone.js +8 -0
- package/dist/src/SliceZone/SliceZone.js.map +1 -0
- package/dist/src/SliceZone/SliceZone.vue.d.ts +35 -0
- package/dist/src/SliceZone/SliceZone.vue.d.ts.map +1 -0
- package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs +70 -0
- package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/src/SliceZone/TODOSliceComponent.cjs +36 -0
- package/dist/src/SliceZone/TODOSliceComponent.cjs.map +1 -0
- package/dist/src/SliceZone/TODOSliceComponent.d.ts +15 -0
- package/dist/src/SliceZone/TODOSliceComponent.d.ts.map +1 -0
- package/dist/src/SliceZone/TODOSliceComponent.js +36 -0
- package/dist/src/SliceZone/TODOSliceComponent.js.map +1 -0
- package/dist/src/SliceZone/defineSliceZoneComponents.cjs +50 -0
- package/dist/src/SliceZone/defineSliceZoneComponents.cjs.map +1 -0
- package/dist/{SliceZone → src/SliceZone}/defineSliceZoneComponents.d.ts +8 -2
- package/dist/src/SliceZone/defineSliceZoneComponents.d.ts.map +1 -0
- package/dist/src/SliceZone/defineSliceZoneComponents.js +50 -0
- package/dist/src/SliceZone/defineSliceZoneComponents.js.map +1 -0
- package/dist/src/SliceZone/getSliceComponentProps.cjs +60 -0
- package/dist/src/SliceZone/getSliceComponentProps.cjs.map +1 -0
- package/dist/{SliceZone → src/SliceZone}/getSliceComponentProps.d.ts +25 -20
- package/dist/src/SliceZone/getSliceComponentProps.d.ts.map +1 -0
- package/dist/src/SliceZone/getSliceComponentProps.js +59 -0
- package/dist/src/SliceZone/getSliceComponentProps.js.map +1 -0
- package/dist/src/SliceZone/index.d.ts +4 -0
- package/dist/{SliceZone → src/SliceZone}/types.d.ts +40 -37
- package/dist/src/SliceZone/types.d.ts.map +1 -0
- package/dist/src/lib/devMsg.cjs +25 -0
- package/dist/src/lib/devMsg.cjs.map +1 -0
- package/dist/src/lib/devMsg.js +25 -0
- package/dist/src/lib/devMsg.js.map +1 -0
- package/dist/src/lib/isInternalURL.cjs +24 -0
- package/dist/src/lib/isInternalURL.cjs.map +1 -0
- package/dist/src/lib/isInternalURL.js +23 -0
- package/dist/src/lib/isInternalURL.js.map +1 -0
- package/dist/src/types.cjs +9 -0
- package/dist/src/types.cjs.map +1 -0
- package/dist/src/types.d.ts +8 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +8 -0
- package/dist/src/types.js.map +1 -0
- package/dist/types.d.cts +8 -0
- package/dist/types.d.cts.map +1 -0
- package/package.json +32 -55
- package/src/PrismicImage.vue +59 -22
- package/src/PrismicLink.vue +16 -37
- package/src/PrismicRichText/PrismicRichText.vue +69 -116
- package/src/PrismicRichText/PrismicRichTextDefaultComponent.vue +61 -19
- package/src/PrismicRichText/PrismicRichTextSerialize.vue +5 -30
- package/src/PrismicRichText/types.ts +33 -14
- package/src/PrismicTable/PrismicTable.vue +50 -20
- package/src/PrismicTable/PrismicTableDefaultComponents.ts +45 -20
- package/src/PrismicTable/PrismicTableRow.vue +17 -24
- package/src/PrismicTable/types.ts +28 -15
- package/src/PrismicText.vue +2 -15
- package/src/SliceZone/SliceZone.vue +12 -35
- package/src/SliceZone/TODOSliceComponent.ts +2 -1
- package/src/index.ts +14 -32
- package/src/types.ts +30 -438
- package/dist/PrismicEmbed.vue.cjs +0 -25
- package/dist/PrismicEmbed.vue.cjs.map +0 -1
- package/dist/PrismicEmbed.vue.d.ts +0 -19
- package/dist/PrismicEmbed.vue.js +0 -26
- package/dist/PrismicEmbed.vue.js.map +0 -1
- package/dist/PrismicEmbed.vue2.cjs +0 -4
- package/dist/PrismicEmbed.vue2.cjs.map +0 -1
- package/dist/PrismicEmbed.vue2.js +0 -5
- package/dist/PrismicEmbed.vue2.js.map +0 -1
- package/dist/PrismicImage.vue.cjs +0 -84
- package/dist/PrismicImage.vue.cjs.map +0 -1
- package/dist/PrismicImage.vue.d.ts +0 -224
- package/dist/PrismicImage.vue.js +0 -85
- package/dist/PrismicImage.vue.js.map +0 -1
- package/dist/PrismicImage.vue2.cjs +0 -4
- package/dist/PrismicImage.vue2.cjs.map +0 -1
- package/dist/PrismicImage.vue2.js +0 -5
- package/dist/PrismicImage.vue2.js.map +0 -1
- package/dist/PrismicLink.vue.cjs +0 -64
- package/dist/PrismicLink.vue.cjs.map +0 -1
- package/dist/PrismicLink.vue.d.ts +0 -279
- package/dist/PrismicLink.vue.js +0 -65
- package/dist/PrismicLink.vue.js.map +0 -1
- package/dist/PrismicLink.vue2.cjs +0 -4
- package/dist/PrismicLink.vue2.cjs.map +0 -1
- package/dist/PrismicLink.vue2.js +0 -5
- package/dist/PrismicLink.vue2.js.map +0 -1
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs +0 -100
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs.map +0 -1
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.d.ts +0 -38
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js +0 -101
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js.map +0 -1
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs +0 -4
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs.map +0 -1
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js +0 -5
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js.map +0 -1
- package/dist/PrismicRichText/PrismicRichText.vue.cjs +0 -97
- package/dist/PrismicRichText/PrismicRichText.vue.cjs.map +0 -1
- package/dist/PrismicRichText/PrismicRichText.vue.d.ts +0 -96
- package/dist/PrismicRichText/PrismicRichText.vue.js +0 -98
- package/dist/PrismicRichText/PrismicRichText.vue.js.map +0 -1
- package/dist/PrismicRichText/PrismicRichText.vue2.cjs +0 -4
- package/dist/PrismicRichText/PrismicRichText.vue2.cjs.map +0 -1
- package/dist/PrismicRichText/PrismicRichText.vue2.js +0 -5
- package/dist/PrismicRichText/PrismicRichText.vue2.js.map +0 -1
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs +0 -133
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs.map +0 -1
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.d.ts +0 -37
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js +0 -134
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js.map +0 -1
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs +0 -4
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs.map +0 -1
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js +0 -5
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js.map +0 -1
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs +0 -47
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs.map +0 -1
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.d.ts +0 -10
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js +0 -48
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js.map +0 -1
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs +0 -4
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs.map +0 -1
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js +0 -5
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js.map +0 -1
- package/dist/PrismicRichText/getRichTextComponentProps.cjs +0 -10
- package/dist/PrismicRichText/getRichTextComponentProps.cjs.map +0 -1
- package/dist/PrismicRichText/getRichTextComponentProps.js +0 -10
- package/dist/PrismicRichText/getRichTextComponentProps.js.map +0 -1
- package/dist/PrismicRichText/index.d.ts +0 -2
- package/dist/PrismicRichText/types.d.ts +0 -22
- package/dist/PrismicTable/PrismicTable.vue.cjs +0 -62
- package/dist/PrismicTable/PrismicTable.vue.cjs.map +0 -1
- package/dist/PrismicTable/PrismicTable.vue.d.ts +0 -32
- package/dist/PrismicTable/PrismicTable.vue.js +0 -63
- package/dist/PrismicTable/PrismicTable.vue.js.map +0 -1
- package/dist/PrismicTable/PrismicTable.vue2.cjs +0 -4
- package/dist/PrismicTable/PrismicTable.vue2.cjs.map +0 -1
- package/dist/PrismicTable/PrismicTable.vue2.js +0 -5
- package/dist/PrismicTable/PrismicTable.vue2.js.map +0 -1
- package/dist/PrismicTable/PrismicTableDefaultComponents.cjs +0 -44
- package/dist/PrismicTable/PrismicTableDefaultComponents.cjs.map +0 -1
- package/dist/PrismicTable/PrismicTableDefaultComponents.d.ts +0 -2
- package/dist/PrismicTable/PrismicTableDefaultComponents.js +0 -44
- package/dist/PrismicTable/PrismicTableDefaultComponents.js.map +0 -1
- package/dist/PrismicTable/PrismicTableRow.vue.cjs +0 -52
- package/dist/PrismicTable/PrismicTableRow.vue.cjs.map +0 -1
- package/dist/PrismicTable/PrismicTableRow.vue.d.ts +0 -26
- package/dist/PrismicTable/PrismicTableRow.vue.js +0 -53
- package/dist/PrismicTable/PrismicTableRow.vue.js.map +0 -1
- package/dist/PrismicTable/PrismicTableRow.vue2.cjs +0 -4
- package/dist/PrismicTable/PrismicTableRow.vue2.cjs.map +0 -1
- package/dist/PrismicTable/PrismicTableRow.vue2.js +0 -5
- package/dist/PrismicTable/PrismicTableRow.vue2.js.map +0 -1
- package/dist/PrismicTable/getTableComponentProps.cjs +0 -30
- package/dist/PrismicTable/getTableComponentProps.cjs.map +0 -1
- package/dist/PrismicTable/getTableComponentProps.js +0 -30
- package/dist/PrismicTable/getTableComponentProps.js.map +0 -1
- package/dist/PrismicTable/index.d.ts +0 -1
- package/dist/PrismicTable/types.d.ts +0 -30
- package/dist/PrismicText.vue.cjs +0 -43
- package/dist/PrismicText.vue.cjs.map +0 -1
- package/dist/PrismicText.vue.d.ts +0 -31
- package/dist/PrismicText.vue.js +0 -44
- package/dist/PrismicText.vue.js.map +0 -1
- package/dist/PrismicText.vue2.cjs +0 -4
- package/dist/PrismicText.vue2.cjs.map +0 -1
- package/dist/PrismicText.vue2.js +0 -5
- package/dist/PrismicText.vue2.js.map +0 -1
- package/dist/SliceZone/SliceZone.vue.cjs +0 -63
- package/dist/SliceZone/SliceZone.vue.cjs.map +0 -1
- package/dist/SliceZone/SliceZone.vue.d.ts +0 -41
- package/dist/SliceZone/SliceZone.vue.js +0 -64
- package/dist/SliceZone/SliceZone.vue.js.map +0 -1
- package/dist/SliceZone/SliceZone.vue2.cjs +0 -4
- package/dist/SliceZone/SliceZone.vue2.cjs.map +0 -1
- package/dist/SliceZone/SliceZone.vue2.js +0 -5
- package/dist/SliceZone/SliceZone.vue2.js.map +0 -1
- package/dist/SliceZone/TODOSliceComponent.cjs +0 -29
- package/dist/SliceZone/TODOSliceComponent.cjs.map +0 -1
- package/dist/SliceZone/TODOSliceComponent.d.ts +0 -9
- package/dist/SliceZone/TODOSliceComponent.js +0 -29
- package/dist/SliceZone/TODOSliceComponent.js.map +0 -1
- package/dist/SliceZone/defineSliceZoneComponents.cjs +0 -14
- package/dist/SliceZone/defineSliceZoneComponents.cjs.map +0 -1
- package/dist/SliceZone/defineSliceZoneComponents.js +0 -14
- package/dist/SliceZone/defineSliceZoneComponents.js.map +0 -1
- package/dist/SliceZone/getSliceComponentProps.cjs +0 -22
- package/dist/SliceZone/getSliceComponentProps.cjs.map +0 -1
- package/dist/SliceZone/getSliceComponentProps.js +0 -22
- package/dist/SliceZone/getSliceComponentProps.js.map +0 -1
- package/dist/SliceZone/index.d.ts +0 -4
- package/dist/createPrismic.cjs +0 -81
- package/dist/createPrismic.cjs.map +0 -1
- package/dist/createPrismic.d.ts +0 -22
- package/dist/createPrismic.js +0 -81
- package/dist/createPrismic.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/Wrapper.vue.cjs +0 -20
- package/dist/lib/Wrapper.vue.cjs.map +0 -1
- package/dist/lib/Wrapper.vue.d.ts +0 -28
- package/dist/lib/Wrapper.vue.js +0 -21
- package/dist/lib/Wrapper.vue.js.map +0 -1
- package/dist/lib/Wrapper.vue2.cjs +0 -4
- package/dist/lib/Wrapper.vue2.cjs.map +0 -1
- package/dist/lib/Wrapper.vue2.js +0 -5
- package/dist/lib/Wrapper.vue2.js.map +0 -1
- package/dist/lib/devMsg.cjs +0 -8
- package/dist/lib/devMsg.cjs.map +0 -1
- package/dist/lib/devMsg.d.ts +0 -16
- package/dist/lib/devMsg.js +0 -8
- package/dist/lib/devMsg.js.map +0 -1
- package/dist/lib/isInternalURL.cjs +0 -9
- package/dist/lib/isInternalURL.cjs.map +0 -1
- package/dist/lib/isInternalURL.d.ts +0 -8
- package/dist/lib/isInternalURL.js +0 -9
- package/dist/lib/isInternalURL.js.map +0 -1
- package/dist/package.json.cjs +0 -5
- package/dist/package.json.cjs.map +0 -1
- package/dist/package.json.js +0 -5
- package/dist/package.json.js.map +0 -1
- package/dist/types.d.ts +0 -369
- package/dist/usePrismic.cjs +0 -10
- package/dist/usePrismic.cjs.map +0 -1
- package/dist/usePrismic.d.ts +0 -30
- package/dist/usePrismic.js +0 -10
- package/dist/usePrismic.js.map +0 -1
- package/src/PrismicEmbed.vue +0 -42
- package/src/PrismicRichText/DeprecatedPrismicRichText.vue +0 -146
- package/src/createPrismic.ts +0 -154
- package/src/lib/Wrapper.vue +0 -22
- package/src/usePrismic.ts +0 -36
package/src/PrismicLink.vue
CHANGED
|
@@ -12,8 +12,6 @@ import { isInternalURL } from "./lib/isInternalURL"
|
|
|
12
12
|
|
|
13
13
|
import type { ComponentOrTagName } from "./types"
|
|
14
14
|
|
|
15
|
-
import { usePrismic } from "./usePrismic"
|
|
16
|
-
|
|
17
15
|
/**
|
|
18
16
|
* The default component rendered for internal URLs.
|
|
19
17
|
*/
|
|
@@ -34,12 +32,13 @@ const defaultExternalRelAttribute = "noreferrer"
|
|
|
34
32
|
*/
|
|
35
33
|
export type PrismicLinkProps = {
|
|
36
34
|
/**
|
|
37
|
-
*
|
|
38
|
-
* resolver parameter with `@prismicio/client`.
|
|
35
|
+
* The link resolver used to resolve links.
|
|
39
36
|
*
|
|
40
|
-
* @
|
|
37
|
+
* @remarks
|
|
38
|
+
* If your app uses route resolvers when querying for your Prismic
|
|
39
|
+
* repository's content, a link resolver does not need to be provided.
|
|
41
40
|
*
|
|
42
|
-
* @see
|
|
41
|
+
* @see Learn about link resolvers and route resolvers {@link https://prismic.io/docs/routes}
|
|
43
42
|
*/
|
|
44
43
|
linkResolver?: LinkResolverFunction
|
|
45
44
|
|
|
@@ -47,36 +46,23 @@ export type PrismicLinkProps = {
|
|
|
47
46
|
* The `rel` attribute for the link. By default, `"noreferrer"` is provided if
|
|
48
47
|
* the link's URL is external. This prop can be provided a function to use the
|
|
49
48
|
* link's metadata to determine the `rel` value.
|
|
50
|
-
*
|
|
51
|
-
* @defaultValue The one provided to `@prismicio/vue` plugin if configured.
|
|
52
49
|
*/
|
|
53
50
|
rel?: string | AsLinkAttrsConfig["rel"]
|
|
54
51
|
|
|
55
52
|
/**
|
|
56
|
-
*
|
|
53
|
+
* The component rendered for internal URLs.
|
|
57
54
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* `target`, and `rel` attributes).
|
|
61
|
-
* @remarks
|
|
62
|
-
* Components will be rendered using Vue Router {@link RouterLink} interface
|
|
63
|
-
* (`to` props).
|
|
55
|
+
* If your app uses a client-side router that requires a special Link
|
|
56
|
+
* component, provide the Link component to this prop.
|
|
64
57
|
*
|
|
65
|
-
* @defaultValue
|
|
58
|
+
* @defaultValue `<RouterLink>`
|
|
66
59
|
*/
|
|
67
60
|
internalComponent?: ComponentOrTagName
|
|
68
61
|
|
|
69
62
|
/**
|
|
70
|
-
*
|
|
63
|
+
* The component rendered for external URLs.
|
|
71
64
|
*
|
|
72
|
-
* @
|
|
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).
|
|
78
|
-
*
|
|
79
|
-
* @defaultValue The one provided to `@prismicio/vue` plugin if configured, `"a"` otherwise.
|
|
65
|
+
* @defaultValue `<a>`
|
|
80
66
|
*/
|
|
81
67
|
externalComponent?: ComponentOrTagName
|
|
82
68
|
} & (
|
|
@@ -99,15 +85,12 @@ export type PrismicLinkProps = {
|
|
|
99
85
|
const props = defineProps<PrismicLinkProps>()
|
|
100
86
|
defineOptions({ name: "PrismicLink" })
|
|
101
87
|
|
|
102
|
-
const { options } = usePrismic()
|
|
103
|
-
|
|
104
88
|
const rawAttrs = computed(() => {
|
|
105
89
|
return asLinkAttrs(props.field || props.document, {
|
|
106
|
-
linkResolver: props.linkResolver
|
|
90
|
+
linkResolver: props.linkResolver,
|
|
107
91
|
rel(args) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return typeof maybeRel === "function" ? maybeRel(args) : maybeRel
|
|
92
|
+
if (props.rel) {
|
|
93
|
+
return typeof props.rel === "function" ? props.rel(args) : props.rel
|
|
111
94
|
}
|
|
112
95
|
|
|
113
96
|
return args.isExternal ? defaultExternalRelAttribute : undefined
|
|
@@ -117,12 +100,8 @@ const rawAttrs = computed(() => {
|
|
|
117
100
|
|
|
118
101
|
const component = computed(() => {
|
|
119
102
|
return isInternalURL(rawAttrs.value.href || "")
|
|
120
|
-
? props.internalComponent ||
|
|
121
|
-
|
|
122
|
-
defaultInternalComponent
|
|
123
|
-
: props.externalComponent ||
|
|
124
|
-
options.components?.linkExternalComponent ||
|
|
125
|
-
defaultExternalComponent
|
|
103
|
+
? props.internalComponent || defaultInternalComponent
|
|
104
|
+
: props.externalComponent || defaultExternalComponent
|
|
126
105
|
})
|
|
127
106
|
|
|
128
107
|
// Match Vue Router's `<RouterLink />` interface unless the component is an anchor tag.
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
|
9
|
+
import { computed } from "vue"
|
|
13
10
|
|
|
14
|
-
import
|
|
11
|
+
import { type ComponentOrTagName, isVueComponent } from "../types"
|
|
12
|
+
import type {
|
|
13
|
+
InternalVueRichTextComponent,
|
|
14
|
+
VueRichTextSerializer,
|
|
15
|
+
VueShorthand,
|
|
16
|
+
} from "./types"
|
|
15
17
|
|
|
16
|
-
import
|
|
17
|
-
import type { VueRichTextSerializer } from "./types"
|
|
18
|
-
|
|
19
|
-
import { usePrismic } from "../usePrismic"
|
|
20
|
-
|
|
21
|
-
import DeprecatedPrismicRichText from "./DeprecatedPrismicRichText.vue"
|
|
18
|
+
import PrismicRichTextDefaultComponent from "./PrismicRichTextDefaultComponent.vue"
|
|
22
19
|
import PrismicRichTextSerialize from "./PrismicRichTextSerialize.vue"
|
|
23
20
|
|
|
24
21
|
/**
|
|
@@ -26,58 +23,42 @@ import PrismicRichTextSerialize from "./PrismicRichTextSerialize.vue"
|
|
|
26
23
|
*/
|
|
27
24
|
export type PrismicRichTextProps = {
|
|
28
25
|
/**
|
|
29
|
-
* The Prismic rich text
|
|
26
|
+
* The Prismic rich text field to render.
|
|
30
27
|
*/
|
|
31
28
|
field: RichTextField | null | undefined
|
|
32
29
|
|
|
33
30
|
/**
|
|
34
|
-
* The
|
|
35
|
-
*
|
|
31
|
+
* The link resolver used to resolve links.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* If your app uses route resolvers when querying for your Prismic
|
|
35
|
+
* repository's content, a link resolver does not need to be provided.
|
|
36
|
+
*
|
|
37
|
+
* @see Learn about link resolvers and route resolvers {@link https://prismic.io/docs/routes}
|
|
36
38
|
*/
|
|
37
|
-
|
|
39
|
+
linkResolver?: LinkResolverFunction
|
|
38
40
|
|
|
39
41
|
/**
|
|
40
|
-
* An object that maps a rich text block type to a Vue component
|
|
42
|
+
* An object that maps a rich text block type to a Vue component or a
|
|
43
|
+
* shorthand definition.
|
|
41
44
|
*
|
|
42
45
|
* @example
|
|
43
46
|
*
|
|
44
47
|
* ```javascript
|
|
45
48
|
* {
|
|
46
49
|
* heading1: Heading1,
|
|
50
|
+
* paragraph: { class: 'prose'},
|
|
51
|
+
* strong: { as: 'em', class: 'font-bold' },
|
|
47
52
|
* }
|
|
48
53
|
* ```
|
|
49
54
|
*/
|
|
50
55
|
components?: VueRichTextSerializer
|
|
51
56
|
|
|
52
57
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
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)
|
|
58
|
+
* The value to be rendered when the field is empty. If a fallback is not
|
|
59
|
+
* given, `null` will be rendered.
|
|
79
60
|
*/
|
|
80
|
-
|
|
61
|
+
fallback?: ComponentOrTagName
|
|
81
62
|
}
|
|
82
63
|
|
|
83
64
|
// We're forced to declare props using the JavaScript syntax because `@vue/compiler-sfc`
|
|
@@ -86,98 +67,70 @@ const props = defineProps({
|
|
|
86
67
|
field: {
|
|
87
68
|
type: Array as unknown as PropType<PrismicRichTextProps["field"]>,
|
|
88
69
|
},
|
|
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
70
|
linkResolver: {
|
|
98
71
|
type: Function as PropType<PrismicRichTextProps["linkResolver"]>,
|
|
99
72
|
},
|
|
100
|
-
|
|
101
|
-
type:
|
|
73
|
+
components: {
|
|
74
|
+
type: Object as PropType<PrismicRichTextProps["components"]>,
|
|
102
75
|
},
|
|
103
|
-
|
|
76
|
+
fallback: {
|
|
104
77
|
type: [String, Object, Function] as PropType<
|
|
105
|
-
PrismicRichTextProps["
|
|
78
|
+
PrismicRichTextProps["fallback"]
|
|
106
79
|
>,
|
|
107
80
|
},
|
|
108
81
|
})
|
|
109
82
|
defineOptions({ name: "PrismicRichText" })
|
|
110
83
|
|
|
111
|
-
const { options } = usePrismic()
|
|
112
|
-
|
|
113
|
-
const resolvedComponents = computed(() => {
|
|
114
|
-
return props.components || options.components?.richTextComponents
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
const resolvedLinkResolver = computed(() => {
|
|
118
|
-
return props.linkResolver || options.linkResolver
|
|
119
|
-
})
|
|
120
|
-
|
|
121
84
|
const children = computed(() => {
|
|
122
85
|
return asTree(props.field || []).children
|
|
123
86
|
})
|
|
124
87
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (props.components) {
|
|
128
|
-
return true
|
|
129
|
-
}
|
|
88
|
+
function getInternalComponent(type: keyof typeof RichTextNodeType) {
|
|
89
|
+
const maybeComponentOrShorthand = props.components?.[type]
|
|
130
90
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
return false
|
|
91
|
+
if (isVueComponent(maybeComponentOrShorthand)) {
|
|
92
|
+
return { is: maybeComponentOrShorthand }
|
|
134
93
|
}
|
|
135
94
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
95
|
+
return {
|
|
96
|
+
is: PrismicRichTextDefaultComponent,
|
|
97
|
+
props: {
|
|
98
|
+
linkResolver: props.linkResolver,
|
|
99
|
+
shorthand: maybeComponentOrShorthand as VueShorthand,
|
|
100
|
+
},
|
|
139
101
|
}
|
|
102
|
+
}
|
|
140
103
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
104
|
+
const internalComponents = computed<InternalVueRichTextComponent>(() => {
|
|
105
|
+
return {
|
|
106
|
+
heading1: getInternalComponent("heading1"),
|
|
107
|
+
heading2: getInternalComponent("heading2"),
|
|
108
|
+
heading3: getInternalComponent("heading3"),
|
|
109
|
+
heading4: getInternalComponent("heading4"),
|
|
110
|
+
heading5: getInternalComponent("heading5"),
|
|
111
|
+
heading6: getInternalComponent("heading6"),
|
|
112
|
+
paragraph: getInternalComponent("paragraph"),
|
|
113
|
+
preformatted: getInternalComponent("preformatted"),
|
|
114
|
+
strong: getInternalComponent("strong"),
|
|
115
|
+
em: getInternalComponent("em"),
|
|
116
|
+
"list-item": getInternalComponent("listItem"),
|
|
117
|
+
"o-list-item": getInternalComponent("oListItem"),
|
|
118
|
+
"group-list-item": getInternalComponent("list"),
|
|
119
|
+
"group-o-list-item": getInternalComponent("oList"),
|
|
120
|
+
image: getInternalComponent("image"),
|
|
121
|
+
embed: getInternalComponent("embed"),
|
|
122
|
+
hyperlink: getInternalComponent("hyperlink"),
|
|
123
|
+
label: getInternalComponent("label"),
|
|
124
|
+
span: getInternalComponent("span"),
|
|
144
125
|
}
|
|
145
|
-
|
|
146
|
-
// Default to modern
|
|
147
|
-
return true
|
|
148
126
|
})
|
|
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
127
|
</script>
|
|
161
128
|
|
|
162
129
|
<template>
|
|
163
|
-
<
|
|
164
|
-
v-if="
|
|
165
|
-
:
|
|
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"
|
|
130
|
+
<PrismicRichTextSerialize
|
|
131
|
+
v-if="children.length"
|
|
132
|
+
:children="children"
|
|
133
|
+
:internal-components="internalComponents"
|
|
182
134
|
/>
|
|
135
|
+
<component v-else-if="fallback" :is="fallback" />
|
|
183
136
|
</template>
|
|
@@ -2,19 +2,31 @@
|
|
|
2
2
|
import type { LinkResolverFunction } from "@prismicio/client"
|
|
3
3
|
import { computed } from "vue"
|
|
4
4
|
|
|
5
|
-
import type { RichTextComponentProps } from "./types"
|
|
5
|
+
import type { RichTextComponentProps, VueShorthand } from "./types"
|
|
6
6
|
|
|
7
|
-
import PrismicEmbed from "../PrismicEmbed.vue"
|
|
8
7
|
import PrismicImage from "../PrismicImage.vue"
|
|
9
8
|
import PrismicLink from "../PrismicLink.vue"
|
|
10
9
|
|
|
11
10
|
const props = defineProps<
|
|
12
11
|
RichTextComponentProps & {
|
|
13
12
|
linkResolver?: LinkResolverFunction
|
|
13
|
+
shorthand?: VueShorthand
|
|
14
14
|
}
|
|
15
15
|
>()
|
|
16
16
|
defineOptions({ name: "PrismicRichTextDefaultComponent" })
|
|
17
17
|
|
|
18
|
+
const as = computed(() => {
|
|
19
|
+
return props.node.type !== "image" && props.node.type !== "span"
|
|
20
|
+
? props.shorthand?.as
|
|
21
|
+
: undefined
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
const attrs = computed(() => {
|
|
25
|
+
const { as, ...attrs } = props.shorthand ?? {}
|
|
26
|
+
|
|
27
|
+
return attrs
|
|
28
|
+
})
|
|
29
|
+
|
|
18
30
|
const dir = computed(() => {
|
|
19
31
|
return "direction" in props.node && props.node.direction === "rtl"
|
|
20
32
|
? "rtl"
|
|
@@ -23,38 +35,68 @@ const dir = computed(() => {
|
|
|
23
35
|
</script>
|
|
24
36
|
|
|
25
37
|
<template>
|
|
26
|
-
<
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
<component v-if="as" :is="as" :dir="dir" v-bind="attrs"><slot /></component>
|
|
39
|
+
<h1 v-else-if="node.type === 'heading1'" :dir="dir" v-bind="attrs">
|
|
40
|
+
<slot />
|
|
41
|
+
</h1>
|
|
42
|
+
<h2 v-else-if="node.type === 'heading2'" :dir="dir" v-bind="attrs">
|
|
43
|
+
<slot />
|
|
44
|
+
</h2>
|
|
45
|
+
<h3 v-else-if="node.type === 'heading3'" :dir="dir" v-bind="attrs">
|
|
46
|
+
<slot />
|
|
47
|
+
</h3>
|
|
48
|
+
<h4 v-else-if="node.type === 'heading4'" :dir="dir" v-bind="attrs">
|
|
49
|
+
<slot />
|
|
50
|
+
</h4>
|
|
51
|
+
<h5 v-else-if="node.type === 'heading5'" :dir="dir" v-bind="attrs">
|
|
52
|
+
<slot />
|
|
53
|
+
</h5>
|
|
54
|
+
<h6 v-else-if="node.type === 'heading6'" :dir="dir" v-bind="attrs">
|
|
55
|
+
<slot />
|
|
56
|
+
</h6>
|
|
57
|
+
<p v-else-if="node.type === 'paragraph'" :dir="dir" v-bind="attrs">
|
|
58
|
+
<slot />
|
|
59
|
+
</p>
|
|
60
|
+
<pre v-else-if="node.type === 'preformatted'" v-bind="attrs"><slot /></pre>
|
|
61
|
+
<strong v-else-if="node.type === 'strong'" v-bind="attrs"><slot /></strong>
|
|
62
|
+
<em v-else-if="node.type === 'em'" v-bind="attrs"><slot /></em>
|
|
63
|
+
<li v-else-if="node.type === 'list-item'" :dir="dir" v-bind="attrs">
|
|
64
|
+
<slot />
|
|
65
|
+
</li>
|
|
66
|
+
<li v-else-if="node.type === 'o-list-item'" :dir="dir" v-bind="attrs">
|
|
67
|
+
<slot />
|
|
68
|
+
</li>
|
|
69
|
+
<ul v-else-if="node.type === 'group-list-item'" v-bind="attrs">
|
|
39
70
|
<slot />
|
|
40
71
|
</ul>
|
|
41
|
-
<ol v-else-if="node.type === 'group-o-list-item'">
|
|
72
|
+
<ol v-else-if="node.type === 'group-o-list-item'" v-bind="attrs">
|
|
42
73
|
<slot />
|
|
43
74
|
</ol>
|
|
44
75
|
<p class="block-img" v-else-if="node.type === 'image'">
|
|
45
76
|
<PrismicLink v-if="node.linkTo" :field="node.linkTo"
|
|
46
77
|
><PrismicImage :field="node"
|
|
47
78
|
/></PrismicLink>
|
|
48
|
-
<PrismicImage v-else :field="node" />
|
|
79
|
+
<PrismicImage v-else :field="node" v-bind="attrs" />
|
|
49
80
|
</p>
|
|
50
|
-
<
|
|
81
|
+
<div
|
|
82
|
+
v-else-if="node.type === 'embed'"
|
|
83
|
+
:data-oembed="node.oembed.embed_url"
|
|
84
|
+
:data-oembed-type="node.oembed.type"
|
|
85
|
+
:data-oembed-provider="node.oembed.provider_name"
|
|
86
|
+
v-html="node.oembed.html"
|
|
87
|
+
v-bind="attrs"
|
|
88
|
+
/>
|
|
51
89
|
<PrismicLink
|
|
52
90
|
v-else-if="node.type === 'hyperlink'"
|
|
53
91
|
:field="node.data"
|
|
54
92
|
:link-resolver="linkResolver"
|
|
93
|
+
v-bind="attrs"
|
|
55
94
|
><slot
|
|
56
95
|
/></PrismicLink>
|
|
57
|
-
<span
|
|
96
|
+
<span
|
|
97
|
+
v-else-if="node.type === 'label'"
|
|
98
|
+
:class="node.data.label"
|
|
99
|
+
v-bind="attrs"
|
|
58
100
|
><slot
|
|
59
101
|
/></span>
|
|
60
102
|
<template v-else v-for="(line, index) in node.text.split('\n')" :key="line"
|
|
@@ -1,52 +1,27 @@
|
|
|
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 {
|
|
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 { InternalVueRichTextComponent } from "./types"
|
|
15
5
|
|
|
16
6
|
type PrismicRichTextSerializeProps = {
|
|
17
|
-
components?: VueRichTextSerializer
|
|
18
7
|
children: ReturnType<typeof asTree>["children"]
|
|
19
|
-
|
|
8
|
+
internalComponents: InternalVueRichTextComponent
|
|
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="
|
|
19
|
+
:is="internalComponents[child.type].is"
|
|
40
20
|
:node="child.node"
|
|
41
|
-
|
|
42
|
-
getComponent(child) === PrismicRichTextDefaultComponent
|
|
43
|
-
? props.linkResolver
|
|
44
|
-
: undefined
|
|
45
|
-
"
|
|
21
|
+
v-bind="internalComponents[child.type].props"
|
|
46
22
|
><PrismicRichTextSerialize
|
|
47
23
|
v-if="child.children.length"
|
|
48
24
|
:children="child.children"
|
|
49
|
-
:components="
|
|
50
|
-
:link-resolver="linkResolver"
|
|
25
|
+
:internal-components="internalComponents"
|
|
51
26
|
/></component>
|
|
52
27
|
</template>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { RTAnyNode, RichTextNodeType } from "@prismicio/client"
|
|
2
1
|
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} from "
|
|
2
|
+
LinkResolverFunction,
|
|
3
|
+
RTAnyNode,
|
|
4
|
+
RichTextNodeType,
|
|
5
|
+
} from "@prismicio/client"
|
|
6
|
+
|
|
7
|
+
import type { VueComponent } from "../types"
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* A map of Rich Text block types to Vue Components. It is used to render Rich
|
|
@@ -12,7 +13,7 @@ import type {
|
|
|
12
13
|
* @see Templating Rich Text and title fields from Prismic {@link https://prismic.io/docs/rich-text}
|
|
13
14
|
*/
|
|
14
15
|
export type VueRichTextSerializer = Partial<
|
|
15
|
-
Record<keyof typeof RichTextNodeType, VueRichTextComponent>
|
|
16
|
+
Record<keyof typeof RichTextNodeType, VueRichTextComponent | VueShorthand>
|
|
16
17
|
>
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -27,11 +28,29 @@ export type RichTextComponentProps<TRTNode extends RTAnyNode = RTAnyNode> = {
|
|
|
27
28
|
*
|
|
28
29
|
* @typeParam TRTNode - The type of rich text node(s) this component handles
|
|
29
30
|
*/
|
|
30
|
-
type VueRichTextComponent<TRTNode extends RTAnyNode = RTAnyNode> =
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
type VueRichTextComponent<TRTNode extends RTAnyNode = RTAnyNode> = VueComponent<
|
|
32
|
+
RichTextComponentProps<TRTNode>
|
|
33
|
+
>
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A shorthand definition for {@link VueRichTextSerializer} component types.
|
|
37
|
+
*/
|
|
38
|
+
export type VueShorthand = {
|
|
39
|
+
/**
|
|
40
|
+
* The HTML element type rendered for this node type.
|
|
41
|
+
*/
|
|
42
|
+
as?: string
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Other attributes to apply to the element type.
|
|
46
|
+
*/
|
|
47
|
+
[Attribute: string]: string | boolean | null | undefined
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type InternalVueRichTextComponent = Record<
|
|
51
|
+
(typeof RichTextNodeType)[keyof typeof RichTextNodeType],
|
|
52
|
+
{
|
|
53
|
+
is: VueRichTextComponent
|
|
54
|
+
props?: { linkResolver?: LinkResolverFunction; shorthand?: VueShorthand }
|
|
55
|
+
}
|
|
56
|
+
>
|