@nuxt/scripts 0.6.4 → 0.6.6

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 (66) hide show
  1. package/README.md +73 -73
  2. package/dist/client/200.html +9 -9
  3. package/dist/client/404.html +9 -9
  4. package/dist/client/_nuxt/{DX8FDaDx.js → BKIFFtfV.js} +1 -1
  5. package/dist/client/_nuxt/{DUCgB8kF.js → BKJqCZ0j.js} +1 -1
  6. package/dist/client/_nuxt/DcF05ETD.js +31 -0
  7. package/dist/client/_nuxt/aQeyjCqJ.js +1 -0
  8. package/dist/client/_nuxt/builds/latest.json +1 -1
  9. package/dist/client/_nuxt/builds/meta/3dcaf2bf-82f1-460f-80a6-1412196a7a77.json +1 -0
  10. package/dist/client/_nuxt/entry.FVeyw1Qn.css +1 -0
  11. package/dist/client/_nuxt/error-404.B7Lh29wY.css +1 -0
  12. package/dist/client/_nuxt/error-500.B_VIyt60.css +1 -0
  13. package/dist/client/index.html +9 -9
  14. package/dist/module.d.mts +2 -10
  15. package/dist/module.d.ts +2 -10
  16. package/dist/module.json +1 -1
  17. package/dist/module.mjs +3 -0
  18. package/dist/registry.mjs +2 -2
  19. package/dist/runtime/components/ScriptCarbonAds.vue +71 -71
  20. package/dist/runtime/components/ScriptCrisp.vue +84 -84
  21. package/dist/runtime/components/ScriptGoogleAdsense.vue +69 -69
  22. package/dist/runtime/components/ScriptGoogleMaps.vue +267 -265
  23. package/dist/runtime/components/ScriptIntercom.vue +93 -93
  24. package/dist/runtime/components/ScriptLemonSqueezy.vue +45 -45
  25. package/dist/runtime/components/ScriptLoadingIndicator.vue +22 -22
  26. package/dist/runtime/components/ScriptStripePricingTable.vue +68 -68
  27. package/dist/runtime/components/ScriptVimeoPlayer.vue +258 -256
  28. package/dist/runtime/components/ScriptYouTubePlayer.vue +171 -170
  29. package/dist/runtime/composables/useScript.js +2 -2
  30. package/dist/runtime/composables/useScriptEventPage.d.ts +4 -1
  31. package/dist/runtime/composables/useScriptEventPage.js +6 -5
  32. package/dist/runtime/registry/clarity.js +1 -1
  33. package/dist/runtime/registry/cloudflare-web-analytics.js +1 -1
  34. package/dist/runtime/registry/crisp.js +1 -1
  35. package/dist/runtime/registry/fathom-analytics.js +1 -1
  36. package/dist/runtime/registry/google-adsense.js +1 -1
  37. package/dist/runtime/registry/google-analytics.d.ts +13 -7
  38. package/dist/runtime/registry/google-analytics.js +25 -13
  39. package/dist/runtime/registry/google-maps.js +1 -1
  40. package/dist/runtime/registry/google-tag-manager.d.ts +16 -6
  41. package/dist/runtime/registry/google-tag-manager.js +16 -10
  42. package/dist/runtime/registry/hotjar.js +1 -1
  43. package/dist/runtime/registry/intercom.js +1 -1
  44. package/dist/runtime/registry/lemon-squeezy.js +1 -1
  45. package/dist/runtime/registry/matomo-analytics.js +7 -3
  46. package/dist/runtime/registry/meta-pixel.d.ts +1 -0
  47. package/dist/runtime/registry/meta-pixel.js +6 -2
  48. package/dist/runtime/registry/npm.js +1 -1
  49. package/dist/runtime/registry/plausible-analytics.js +1 -1
  50. package/dist/runtime/registry/segment.d.ts +1 -2
  51. package/dist/runtime/registry/segment.js +1 -1
  52. package/dist/runtime/registry/stripe.js +1 -1
  53. package/dist/runtime/registry/vimeo-player.js +1 -1
  54. package/dist/runtime/registry/x-pixel.js +7 -3
  55. package/dist/runtime/registry/youtube-player.js +1 -1
  56. package/dist/runtime/types.d.ts +20 -4
  57. package/dist/runtime/types.js +1 -1
  58. package/dist/runtime/utils.d.ts +1 -1
  59. package/dist/runtime/utils.js +16 -4
  60. package/package.json +30 -32
  61. package/dist/client/_nuxt/B8kiEHWd.js +0 -31
  62. package/dist/client/_nuxt/CE8XWCBP.js +0 -1
  63. package/dist/client/_nuxt/builds/meta/a56fe5f5-907d-4907-9967-836d6a0f3850.json +0 -1
  64. package/dist/client/_nuxt/entry.DvGwvmL9.css +0 -1
  65. package/dist/client/_nuxt/error-404.-RjlvToe.css +0 -1
  66. package/dist/client/_nuxt/error-500.Bz7LXgZy.css +0 -1
@@ -1,258 +1,260 @@
1
- <script setup lang="ts">
2
- /// <reference types="vimeo__player" />
3
- import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'
4
- import type { HTMLAttributes, ImgHTMLAttributes } from 'vue'
5
- import { defu } from 'defu'
6
- import type { ElementScriptTrigger } from '../types'
7
- import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
8
- import { useScriptVimeoPlayer } from '../registry/vimeo-player'
9
- import { useAsyncData, useHead } from '#imports'
10
-
11
- const props = withDefaults(defineProps<{
12
- // custom
13
- trigger?: ElementScriptTrigger
14
- placeholderAttrs?: ImgHTMLAttributes
15
- rootAttrs?: HTMLAttributes
16
- aboveTheFold?: boolean
17
- // copied from @types/vimeo__player
18
- id?: number | undefined
19
- url?: string | undefined
20
- autopause?: boolean | undefined
21
- autoplay?: boolean | undefined
22
- background?: boolean | undefined
23
- byline?: boolean | undefined
24
- color?: string | undefined
25
- controls?: boolean | undefined
26
- dnt?: boolean | undefined
27
- height?: number | undefined
28
- // eslint-disable-next-line vue/prop-name-casing
29
- interactive_params?: string | undefined
30
- keyboard?: boolean | undefined
31
- loop?: boolean | undefined
32
- maxheight?: number | undefined
33
- maxwidth?: number | undefined
34
- muted?: boolean | undefined
35
- pip?: boolean | undefined
36
- playsinline?: boolean | undefined
37
- portrait?: boolean | undefined
38
- responsive?: boolean | undefined
39
- speed?: boolean | undefined
40
- quality?: Vimeo.VimeoVideoQuality | undefined
41
- texttrack?: string | undefined
42
- title?: boolean | undefined
43
- transparent?: boolean | undefined
44
- width?: number | undefined
45
- }>(), {
46
- trigger: 'mousedown',
47
- width: 640,
48
- height: 480,
49
- loop: false,
50
- controls: true,
51
- })
52
-
53
- const emits = defineEmits<TEmits>()
54
-
55
- type EventMap<E extends keyof Vimeo.EventMap> = [event: Vimeo.EventMap[E], player: Vimeo]
56
-
57
- // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
58
- type TEmits = {
59
- play: EventMap<'play'>
60
- playing: EventMap<'playing'>
61
- pause: EventMap<'pause'>
62
- ended: EventMap<'ended'>
63
- timeupdate: EventMap<'timeupdate'>
64
- progress: EventMap<'progress'>
65
- seeking: EventMap<'seeking'>
66
- seeked: EventMap<'seeked'>
67
- texttrackchange: EventMap<'texttrackchange'>
68
- chapterchange: EventMap<'chapterchange'>
69
- cuechange: EventMap<'cuechange'>
70
- cuepoint: EventMap<'cuepoint'>
71
- volumechange: EventMap<'volumechange'>
72
- playbackratechange: EventMap<'playbackratechange'>
73
- bufferstart: EventMap<'bufferstart'>
74
- bufferend: EventMap<'bufferend'>
75
- error: EventMap<'error'>
76
- loaded: EventMap<'loaded'>
77
- durationchange: EventMap<'durationchange'>
78
- fullscreenchange: EventMap<'fullscreenchange'>
79
- qualitychange: EventMap<'qualitychange'>
80
- camerachange: EventMap<'camerachange'>
81
- resize: EventMap<'resize'>
82
- enterpictureinpicture: EventMap<'enterpictureinpicture'>
83
- leavepictureinpicture: EventMap<'leavepictureinpicture'>
84
- }
85
-
86
- const events: (keyof TEmits)[] = [
87
- 'play',
88
- 'playing',
89
- 'pause',
90
- 'ended',
91
- 'timeupdate',
92
- 'progress',
93
- 'seeking',
94
- 'seeked',
95
- 'texttrackchange',
96
- 'chapterchange',
97
- 'cuechange',
98
- 'cuepoint',
99
- 'volumechange',
100
- 'playbackratechange',
101
- 'bufferstart',
102
- 'bufferend',
103
- 'error',
104
- 'loaded',
105
- 'durationchange',
106
- 'fullscreenchange',
107
- 'qualitychange',
108
- 'camerachange',
109
- 'resize',
110
- 'enterpictureinpicture',
111
- 'leavepictureinpicture',
112
- ]
113
-
114
- const elVimeo = ref()
115
- const rootEl = ref()
116
-
117
- const trigger = useScriptTriggerElement({ trigger: props.trigger, el: rootEl })
118
- let clickTriggered = false
119
- if (props.trigger === 'mousedown') {
120
- trigger.then(() => {
121
- clickTriggered = true
122
- })
123
- }
124
- const ready = ref(false)
125
- const { $script } = useScriptVimeoPlayer({
126
- scriptOptions: {
127
- trigger,
128
- },
129
- })
130
-
131
- if (import.meta.server) {
132
- // dns-prefetch https://i.vimeocdn.com
133
- useHead({
134
- link: [
135
- {
136
- rel: props.aboveTheFold ? 'preconnect' : 'dns-prefetch',
137
- href: 'https://i.vimeocdn.com',
138
- },
139
- ],
140
- })
141
- }
142
-
143
- const { data: payload } = useAsyncData(
144
- `vimeo-embed:${props.id}`,
145
- // TODO ideally we cache this
146
- () => $fetch(`https://vimeo.com/api/v2/video/${props.id}.json`).then(res => (res as any)[0]),
147
- {
148
- watch: [() => props.id],
149
- },
150
- )
151
-
152
- const placeholder = computed(() => payload.value?.thumbnail_large)
153
-
154
- let player: Vimeo | undefined
155
- // we can't directly expose the player as vue will break the proxy
156
- defineExpose({
157
- play: () => player?.play(),
158
- pause: () => player?.pause(),
159
- getDuration: () => player?.getDuration(),
160
- getCurrentTime: () => player?.getCurrentTime(),
161
- setCurrentTime: (time: number) => player?.setCurrentTime(time),
162
- getVolume: () => player?.getVolume(),
163
- setVolume: (volume: number) => player?.setVolume(volume),
164
- getPaused: () => player?.getPaused(),
165
- getEnded: () => player?.getEnded(),
166
- getLoop: () => player?.getLoop(),
167
- setLoop: (loop: boolean) => player?.setLoop(loop),
168
- getPlaybackRate: () => player?.getPlaybackRate(),
169
- setPlaybackRate: (rate: number) => player?.setPlaybackRate(rate),
170
- })
171
-
172
- onMounted(() => {
173
- $script.then(async ({ Vimeo }) => {
174
- // filter props for false values
175
- player = new Vimeo.Player(elVimeo.value, props)
176
- if (clickTriggered) {
177
- player!.play()
178
- clickTriggered = false
179
- }
180
- for (const event of events) {
181
- player!.on(event, (e: EventMap<typeof event>) => {
182
- // @ts-expect-error ts isn't able to infer the correct event type
183
- emits(event, e, player)
184
- if (event === 'loaded')
185
- ready.value = true
186
- })
187
- }
188
- })
189
-
190
- watch(() => props.id, (v) => {
191
- v && player?.loadVideo(Number(v))
192
- })
193
- watch($script.status, (status) => {
194
- if (status === 'error') {
195
- // @ts-expect-error untyped
196
- emits('error')
197
- }
198
- })
199
- })
200
-
201
- const rootAttrs = computed(() => {
202
- return defu(props.rootAttrs, {
203
- 'aria-busy': $script.status.value === 'loading',
204
- 'aria-label': $script.status.value === 'awaitingLoad'
205
- ? 'Vimeo Player - Placeholder'
206
- : $script.status.value === 'loading'
207
- ? 'Vimeo Player - Loading'
208
- : 'Vimeo Player - Loaded',
209
- 'aria-live': 'polite',
210
- 'role': 'application',
211
- 'style': {
212
- maxWidth: '100%',
213
- width: `${props.width}px`,
214
- height: `'auto'`,
215
- aspectRatio: `${props.width}/${props.height}`,
216
- position: 'relative',
217
- backgroundColor: 'black',
218
- },
219
- }) as HTMLAttributes
220
- })
221
-
222
- const placeholderAttrs = computed(() => {
223
- return defu(props.placeholderAttrs, {
224
- src: placeholder.value,
225
- alt: '',
226
- loading: props.aboveTheFold ? 'eager' : 'lazy',
227
- // @ts-expect-error untyped
228
- fetchpriority: props.aboveTheFold ? 'high' : undefined,
229
- style: {
230
- cursor: 'pointer',
231
- width: '100%',
232
- objectFit: 'contain',
233
- height: '100%',
234
- },
235
- } satisfies ImgHTMLAttributes)
236
- })
237
-
238
- onBeforeUnmount(() => player?.unload())
239
- </script>
240
-
241
- <template>
242
- <div ref="rootEl" v-bind="rootAttrs">
243
- <div v-show="ready" ref="elVimeo" class="vimeo-player" style="width: 100%; height: 100%; max-width: 100%;" />
244
- <slot v-if="!ready" v-bind="payload" :placeholder="placeholder" name="placeholder">
245
- <img v-if="placeholder" v-bind="placeholderAttrs">
246
- </slot>
247
- <slot v-if="$script.status.value === 'loading'" name="loading">
248
- <ScriptLoadingIndicator color="white" />
249
- </slot>
250
- <slot v-if="$script.status.value === 'awaitingLoad'" name="awaitingLoad" />
251
- <slot v-else-if="$script.status.value === 'error'" name="error" />
252
- <slot />
253
- </div>
254
- </template>
255
-
1
+ <script setup lang="ts">
2
+ /// <reference types="vimeo__player" />
3
+ import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'
4
+ import type { HTMLAttributes, ImgHTMLAttributes } from 'vue'
5
+ import { defu } from 'defu'
6
+ import type { ElementScriptTrigger } from '../types'
7
+ import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
8
+ import { useScriptVimeoPlayer } from '../registry/vimeo-player'
9
+ import { useAsyncData, useHead } from '#imports'
10
+
11
+ const props = withDefaults(defineProps<{
12
+ // custom
13
+ trigger?: ElementScriptTrigger
14
+ placeholderAttrs?: ImgHTMLAttributes
15
+ rootAttrs?: HTMLAttributes
16
+ aboveTheFold?: boolean
17
+ // copied from @types/vimeo__player
18
+ id?: number | undefined
19
+ url?: string | undefined
20
+ autopause?: boolean | undefined
21
+ autoplay?: boolean | undefined
22
+ background?: boolean | undefined
23
+ byline?: boolean | undefined
24
+ color?: string | undefined
25
+ controls?: boolean | undefined
26
+ dnt?: boolean | undefined
27
+ height?: number | undefined
28
+ // eslint-disable-next-line vue/prop-name-casing
29
+ interactive_params?: string | undefined
30
+ keyboard?: boolean | undefined
31
+ loop?: boolean | undefined
32
+ maxheight?: number | undefined
33
+ maxwidth?: number | undefined
34
+ muted?: boolean | undefined
35
+ pip?: boolean | undefined
36
+ playsinline?: boolean | undefined
37
+ portrait?: boolean | undefined
38
+ responsive?: boolean | undefined
39
+ speed?: boolean | undefined
40
+ quality?: Vimeo.VimeoVideoQuality | undefined
41
+ texttrack?: string | undefined
42
+ title?: boolean | undefined
43
+ transparent?: boolean | undefined
44
+ width?: number | undefined
45
+ }>(), {
46
+ trigger: 'mousedown',
47
+ width: 640,
48
+ height: 480,
49
+ loop: false,
50
+ controls: true,
51
+ })
52
+
53
+ const emits = defineEmits<TEmits>()
54
+
55
+ type EventMap<E extends keyof Vimeo.EventMap> = [event: Vimeo.EventMap[E], player: Vimeo]
56
+
57
+ // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
58
+ type TEmits = {
59
+ play: EventMap<'play'>
60
+ playing: EventMap<'playing'>
61
+ pause: EventMap<'pause'>
62
+ ended: EventMap<'ended'>
63
+ timeupdate: EventMap<'timeupdate'>
64
+ progress: EventMap<'progress'>
65
+ seeking: EventMap<'seeking'>
66
+ seeked: EventMap<'seeked'>
67
+ texttrackchange: EventMap<'texttrackchange'>
68
+ chapterchange: EventMap<'chapterchange'>
69
+ cuechange: EventMap<'cuechange'>
70
+ cuepoint: EventMap<'cuepoint'>
71
+ volumechange: EventMap<'volumechange'>
72
+ playbackratechange: EventMap<'playbackratechange'>
73
+ bufferstart: EventMap<'bufferstart'>
74
+ bufferend: EventMap<'bufferend'>
75
+ error: EventMap<'error'>
76
+ loaded: EventMap<'loaded'>
77
+ durationchange: EventMap<'durationchange'>
78
+ fullscreenchange: EventMap<'fullscreenchange'>
79
+ qualitychange: EventMap<'qualitychange'>
80
+ camerachange: EventMap<'camerachange'>
81
+ resize: EventMap<'resize'>
82
+ enterpictureinpicture: EventMap<'enterpictureinpicture'>
83
+ leavepictureinpicture: EventMap<'leavepictureinpicture'>
84
+ }
85
+
86
+ const events: (keyof TEmits)[] = [
87
+ 'play',
88
+ 'playing',
89
+ 'pause',
90
+ 'ended',
91
+ 'timeupdate',
92
+ 'progress',
93
+ 'seeking',
94
+ 'seeked',
95
+ 'texttrackchange',
96
+ 'chapterchange',
97
+ 'cuechange',
98
+ 'cuepoint',
99
+ 'volumechange',
100
+ 'playbackratechange',
101
+ 'bufferstart',
102
+ 'bufferend',
103
+ 'error',
104
+ 'loaded',
105
+ 'durationchange',
106
+ 'fullscreenchange',
107
+ 'qualitychange',
108
+ 'camerachange',
109
+ 'resize',
110
+ 'enterpictureinpicture',
111
+ 'leavepictureinpicture',
112
+ ]
113
+
114
+ const elVimeo = ref()
115
+ const rootEl = ref()
116
+
117
+ const trigger = useScriptTriggerElement({ trigger: props.trigger, el: rootEl })
118
+ let clickTriggered = false
119
+ if (props.trigger === 'mousedown') {
120
+ trigger.then(() => {
121
+ clickTriggered = true
122
+ })
123
+ }
124
+ const ready = ref(false)
125
+ const { $script } = useScriptVimeoPlayer({
126
+ scriptOptions: {
127
+ trigger,
128
+ },
129
+ })
130
+
131
+ if (import.meta.server) {
132
+ // dns-prefetch https://i.vimeocdn.com
133
+ useHead({
134
+ link: [
135
+ {
136
+ rel: props.aboveTheFold ? 'preconnect' : 'dns-prefetch',
137
+ href: 'https://i.vimeocdn.com',
138
+ },
139
+ ],
140
+ })
141
+ }
142
+
143
+ const { data: payload } = useAsyncData(
144
+ `vimeo-embed:${props.id}`,
145
+ // TODO ideally we cache this
146
+ () => $fetch(`https://vimeo.com/api/v2/video/${props.id}.json`).then(res => (res as any)[0]),
147
+ {
148
+ watch: [() => props.id],
149
+ },
150
+ )
151
+
152
+ const placeholder = computed(() => payload.value?.thumbnail_large)
153
+
154
+ let player: Vimeo | undefined
155
+ // we can't directly expose the player as vue will break the proxy
156
+ defineExpose({
157
+ play: () => player?.play(),
158
+ pause: () => player?.pause(),
159
+ getDuration: () => player?.getDuration(),
160
+ getCurrentTime: () => player?.getCurrentTime(),
161
+ setCurrentTime: (time: number) => player?.setCurrentTime(time),
162
+ getVolume: () => player?.getVolume(),
163
+ setVolume: (volume: number) => player?.setVolume(volume),
164
+ getPaused: () => player?.getPaused(),
165
+ getEnded: () => player?.getEnded(),
166
+ getLoop: () => player?.getLoop(),
167
+ setLoop: (loop: boolean) => player?.setLoop(loop),
168
+ getPlaybackRate: () => player?.getPlaybackRate(),
169
+ setPlaybackRate: (rate: number) => player?.setPlaybackRate(rate),
170
+ })
171
+
172
+ onMounted(() => {
173
+ $script.then(async ({ Vimeo }) => {
174
+ // filter props for false values
175
+ player = new Vimeo.Player(elVimeo.value, props)
176
+ if (clickTriggered) {
177
+ player!.play()
178
+ clickTriggered = false
179
+ }
180
+ for (const event of events) {
181
+ player!.on(event, (e: EventMap<typeof event>) => {
182
+ // @ts-expect-error ts isn't able to infer the correct event type
183
+ emits(event, e, player)
184
+ if (event === 'loaded')
185
+ ready.value = true
186
+ })
187
+ }
188
+ })
189
+
190
+ watch(() => props.id, (v) => {
191
+ if (v) {
192
+ player?.loadVideo(Number(v))
193
+ }
194
+ })
195
+ watch($script.status, (status) => {
196
+ if (status === 'error') {
197
+ // @ts-expect-error untyped
198
+ emits('error')
199
+ }
200
+ })
201
+ })
202
+
203
+ const rootAttrs = computed(() => {
204
+ return defu(props.rootAttrs, {
205
+ 'aria-busy': $script.status.value === 'loading',
206
+ 'aria-label': $script.status.value === 'awaitingLoad'
207
+ ? 'Vimeo Player - Placeholder'
208
+ : $script.status.value === 'loading'
209
+ ? 'Vimeo Player - Loading'
210
+ : 'Vimeo Player - Loaded',
211
+ 'aria-live': 'polite',
212
+ 'role': 'application',
213
+ 'style': {
214
+ maxWidth: '100%',
215
+ width: `${props.width}px`,
216
+ height: `'auto'`,
217
+ aspectRatio: `${props.width}/${props.height}`,
218
+ position: 'relative',
219
+ backgroundColor: 'black',
220
+ },
221
+ }) as HTMLAttributes
222
+ })
223
+
224
+ const placeholderAttrs = computed(() => {
225
+ return defu(props.placeholderAttrs, {
226
+ src: placeholder.value,
227
+ alt: '',
228
+ loading: props.aboveTheFold ? 'eager' : 'lazy',
229
+ // @ts-expect-error untyped
230
+ fetchpriority: props.aboveTheFold ? 'high' : undefined,
231
+ style: {
232
+ cursor: 'pointer',
233
+ width: '100%',
234
+ objectFit: 'contain',
235
+ height: '100%',
236
+ },
237
+ } satisfies ImgHTMLAttributes)
238
+ })
239
+
240
+ onBeforeUnmount(() => player?.unload())
241
+ </script>
242
+
243
+ <template>
244
+ <div ref="rootEl" v-bind="rootAttrs">
245
+ <div v-show="ready" ref="elVimeo" class="vimeo-player" style="width: 100%; height: 100%; max-width: 100%;" />
246
+ <slot v-if="!ready" v-bind="payload" :placeholder="placeholder" name="placeholder">
247
+ <img v-if="placeholder" v-bind="placeholderAttrs">
248
+ </slot>
249
+ <slot v-if="$script.status.value === 'loading'" name="loading">
250
+ <ScriptLoadingIndicator color="white" />
251
+ </slot>
252
+ <slot v-if="$script.status.value === 'awaitingLoad'" name="awaitingLoad" />
253
+ <slot v-else-if="$script.status.value === 'error'" name="error" />
254
+ <slot />
255
+ </div>
256
+ </template>
257
+
256
258
  <style>
257
259
  .vimeo-player iframe{max-width:100%!important}
258
- </style>
260
+ </style>