@nuxt/scripts 1.0.0-beta.27 → 1.0.0-beta.29

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 (60) hide show
  1. package/dist/client/200.html +1 -1
  2. package/dist/client/404.html +1 -1
  3. package/dist/client/_nuxt/{KCxg59bo.js → AwAKM0sG.js} +1 -1
  4. package/dist/client/_nuxt/{CwXQ1Eqw.js → Bl23o3st.js} +18 -18
  5. package/dist/client/_nuxt/{JXDRhrZp.js → CYlYSSNW.js} +1 -1
  6. package/dist/client/_nuxt/{viP3Pc9X.js → D5FIkDae.js} +1 -1
  7. package/dist/client/_nuxt/builds/latest.json +1 -1
  8. package/dist/client/_nuxt/builds/meta/05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f.json +1 -0
  9. package/dist/client/_nuxt/error-404.1K8v8Su2.css +1 -0
  10. package/dist/client/_nuxt/error-500.B9qvKpQm.css +1 -0
  11. package/dist/client/index.html +1 -1
  12. package/dist/module.json +1 -1
  13. package/dist/module.mjs +28 -16
  14. package/dist/registry.mjs +4 -1
  15. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +13 -3
  16. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +23 -8
  17. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +13 -3
  18. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +5 -35
  19. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +44 -42
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +5 -35
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +1 -1
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +6 -10
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +1 -1
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +35 -0
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +61 -0
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +35 -0
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +5 -5
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +34 -18
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +5 -5
  30. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +7 -5
  31. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +19 -11
  32. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +7 -5
  33. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +1 -1
  34. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +3 -7
  35. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +1 -1
  36. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +40 -0
  37. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +160 -0
  38. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +40 -0
  39. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +1 -1
  40. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +5 -10
  41. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +1 -1
  42. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +1 -1
  43. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +5 -10
  44. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +1 -1
  45. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +1 -1
  46. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +6 -10
  47. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +1 -1
  48. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  49. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  50. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +2 -0
  51. package/dist/runtime/composables/useScript.js +3 -1
  52. package/dist/runtime/registry/gravatar.d.ts +1 -0
  53. package/dist/runtime/registry/gravatar.js +1 -0
  54. package/dist/runtime/registry/rybbit-analytics.js +3 -1
  55. package/dist/stats.mjs +283 -227
  56. package/dist/types-source.mjs +1420 -50
  57. package/package.json +7 -7
  58. package/dist/client/_nuxt/builds/meta/d0d06e27-af53-4f1a-b7ae-18727423b3ed.json +0 -1
  59. package/dist/client/_nuxt/error-404.C_3_IG5y.css +0 -1
  60. package/dist/client/_nuxt/error-500.DSv6YikH.css +0 -1
@@ -1 +1 @@
1
- import{_ as o,o as s,c as a,a as t,t as r}from"./CwXQ1Eqw.js";import{u as i}from"./KCxg59bo.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},l={class:"max-w-520px text-center"},c=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:500},statusText:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return i({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(h,m)=>(s(),a("div",u,[t("div",l,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.status)},null,8,c),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusText)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},x=o(f,[["__scopeId","data-v-a4e5aa55"]]);export{x as default};
1
+ import{_ as o,o as s,c as a,a as t,t as r}from"./Bl23o3st.js";import{u as i}from"./AwAKM0sG.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},c={class:"max-w-520px text-center"},l=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:500},statusText:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return i({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(h,m)=>(s(),a("div",u,[t("div",c,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.status)},null,8,l),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusText)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},x=o(f,[["__scopeId","data-v-ec49e1c6"]]);export{x as default};
@@ -1 +1 @@
1
- import{_ as s,o as a,c as i,a as t,t as n,b as u,w as c,d as l,e as d}from"./CwXQ1Eqw.js";import{u as f}from"./KCxg59bo.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,w)=>{const o=d;return a(),i("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[u(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:c(()=>[l(n(e.backHome),1)]),_:1})])])])}}},N=s(y,[["__scopeId","data-v-f04d276c"]]);export{N as default};
1
+ import{_ as s,o as a,c as i,a as t,t as n,b as u,w as c,d as l,e as d}from"./Bl23o3st.js";import{u as f}from"./AwAKM0sG.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,w)=>{const o=d;return a(),i("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[u(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:c(()=>[l(n(e.backHome),1)]),_:1})])])])}}},N=s(y,[["__scopeId","data-v-2cf1c98d"]]);export{N as default};
@@ -1 +1 @@
1
- {"id":"d0d06e27-af53-4f1a-b7ae-18727423b3ed","timestamp":1773925113341}
1
+ {"id":"05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f","timestamp":1774014634721}
@@ -0,0 +1 @@
1
+ {"id":"05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f","timestamp":1774014634721,"prerendered":[]}
@@ -0,0 +1 @@
1
+ .grid[data-v-2cf1c98d]{display:grid}.mb-2[data-v-2cf1c98d]{margin-bottom:.5rem}.mb-4[data-v-2cf1c98d]{margin-bottom:1rem}.max-w-520px[data-v-2cf1c98d]{max-width:520px}.min-h-screen[data-v-2cf1c98d]{min-height:100vh}.w-full[data-v-2cf1c98d]{width:100%}.flex[data-v-2cf1c98d]{display:flex}.place-content-center[data-v-2cf1c98d]{place-content:center}.items-center[data-v-2cf1c98d]{align-items:center}.justify-center[data-v-2cf1c98d]{justify-content:center}.overflow-hidden[data-v-2cf1c98d]{overflow:hidden}.bg-white[data-v-2cf1c98d]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-2cf1c98d]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-2cf1c98d]{text-align:center}.text-\[80px\][data-v-2cf1c98d]{font-size:80px}.text-2xl[data-v-2cf1c98d]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-2cf1c98d]{font-size:.875rem;line-height:1.25rem}.text-\[\#020420\][data-v-2cf1c98d]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-2cf1c98d]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.hover\:text-\[\#00DC82\][data-v-2cf1c98d]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-medium[data-v-2cf1c98d]{font-weight:500}.font-semibold[data-v-2cf1c98d]{font-weight:600}.leading-none[data-v-2cf1c98d]{line-height:1}.tracking-wide[data-v-2cf1c98d]{letter-spacing:.025em}.font-sans[data-v-2cf1c98d]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-2cf1c98d]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline[data-v-2cf1c98d]{text-decoration-line:underline}.underline-offset-3[data-v-2cf1c98d]{text-underline-offset:3px}.antialiased[data-v-2cf1c98d]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-2cf1c98d]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-2cf1c98d]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-2cf1c98d]{font-size:110px}.sm\:text-3xl[data-v-2cf1c98d]{font-size:1.875rem;line-height:2.25rem}}
@@ -0,0 +1 @@
1
+ .grid[data-v-ec49e1c6]{display:grid}.mb-2[data-v-ec49e1c6]{margin-bottom:.5rem}.mb-4[data-v-ec49e1c6]{margin-bottom:1rem}.max-w-520px[data-v-ec49e1c6]{max-width:520px}.min-h-screen[data-v-ec49e1c6]{min-height:100vh}.place-content-center[data-v-ec49e1c6]{place-content:center}.overflow-hidden[data-v-ec49e1c6]{overflow:hidden}.bg-white[data-v-ec49e1c6]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-ec49e1c6]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-ec49e1c6]{text-align:center}.text-\[80px\][data-v-ec49e1c6]{font-size:80px}.text-2xl[data-v-ec49e1c6]{font-size:1.5rem;line-height:2rem}.text-\[\#020420\][data-v-ec49e1c6]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-ec49e1c6]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-ec49e1c6]{font-weight:600}.leading-none[data-v-ec49e1c6]{line-height:1}.tracking-wide[data-v-ec49e1c6]{letter-spacing:.025em}.font-sans[data-v-ec49e1c6]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-ec49e1c6]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-ec49e1c6]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-ec49e1c6]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-ec49e1c6]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-ec49e1c6]{font-size:110px}.sm\:text-3xl[data-v-ec49e1c6]{font-size:1.875rem;line-height:2.25rem}}
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.C5SUNdim.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CwXQ1Eqw.js"><script type="module" src="/__nuxt-scripts/_nuxt/CwXQ1Eqw.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{"nuxt-scripts":{version:"",defaultScriptOptions:{trigger:"onNuxtReady"},googleStaticMapsProxy:"",endpoints:{}}},app:{baseURL:"/__nuxt-scripts",buildId:"d0d06e27-af53-4f1a-b7ae-18727423b3ed",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773925118838,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.C5SUNdim.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bl23o3st.js"><script type="module" src="/__nuxt-scripts/_nuxt/Bl23o3st.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{"nuxt-scripts":{version:"",defaultScriptOptions:{trigger:"onNuxtReady"},googleStaticMapsProxy:"",endpoints:{}}},app:{baseURL:"/__nuxt-scripts",buildId:"05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774014640219,false]</script></body></html>
package/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": ">=3.16"
6
6
  },
7
- "version": "1.0.0-beta.27",
7
+ "version": "1.0.0-beta.29",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.2",
10
10
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -308,8 +308,9 @@ function setupPublicAssetStrategy(options = {}) {
308
308
  route: assetsBaseURL,
309
309
  handler: lazyEventHandler(async () => {
310
310
  return eventHandler(async (event) => {
311
- const filename = event.path.slice(1);
312
- const scriptDescriptor = renderedScript.get(join(assetsBaseURL, event.path.slice(1)));
311
+ const cleanPath = (event.path || "").split("?")[0]?.slice(1) || "";
312
+ const filename = cleanPath;
313
+ const scriptDescriptor = renderedScript.get(join(assetsBaseURL, cleanPath));
313
314
  if (!scriptDescriptor || scriptDescriptor instanceof Error)
314
315
  throw createError({ statusCode: 404 });
315
316
  if (scriptDescriptor.content) {
@@ -1408,6 +1409,8 @@ const REGISTRY_ENV_DEFAULTS = {
1408
1409
  vercelAnalytics: {},
1409
1410
  xPixel: { id: "" }
1410
1411
  };
1412
+ const UPPER_RE = /([A-Z])/g;
1413
+ const toScreamingSnake = (s) => s.replace(UPPER_RE, "_$1").toUpperCase();
1411
1414
  const PARTYTOWN_FORWARDS = {
1412
1415
  bingUet: ["uetq.push"],
1413
1416
  googleAnalytics: ["dataLayer.push", "gtag"],
@@ -1470,19 +1473,6 @@ const module$1 = defineNuxtModule({
1470
1473
  if (unheadVersion?.startsWith("1")) {
1471
1474
  logger.error(`Nuxt Scripts requires Unhead >= 2, you are using v${unheadVersion}. Please run \`nuxi upgrade --clean\` to upgrade...`);
1472
1475
  }
1473
- const googleMapsEnabled = config.googleStaticMapsProxy?.enabled || !!config.registry?.googleMaps;
1474
- nuxt.options.runtimeConfig["nuxt-scripts"] = {
1475
- version,
1476
- // Private proxy config with API key (server-side only)
1477
- googleStaticMapsProxy: googleMapsEnabled ? { apiKey: nuxt.options.runtimeConfig.public.scripts?.googleMaps?.apiKey } : void 0
1478
- };
1479
- nuxt.options.runtimeConfig.public["nuxt-scripts"] = {
1480
- // expose for devtools
1481
- version: nuxt.options.dev ? version : void 0,
1482
- defaultScriptOptions: config.defaultScriptOptions,
1483
- // Only expose enabled and cacheMaxAge to client, not apiKey
1484
- googleStaticMapsProxy: googleMapsEnabled ? { enabled: true, cacheMaxAge: config.googleStaticMapsProxy?.cacheMaxAge ?? 3600 } : void 0
1485
- };
1486
1476
  if (config.registry) {
1487
1477
  normalizeRegistryConfig(config.registry);
1488
1478
  nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {};
@@ -1492,13 +1482,35 @@ const module$1 = defineNuxtModule({
1492
1482
  continue;
1493
1483
  const input = entry[0];
1494
1484
  const envDefaults = REGISTRY_ENV_DEFAULTS[key];
1495
- registryWithDefaults[key] = envDefaults ? defu(input, envDefaults) : input;
1485
+ if (!envDefaults) {
1486
+ registryWithDefaults[key] = input;
1487
+ continue;
1488
+ }
1489
+ const envResolved = {};
1490
+ for (const [field, defaultValue] of Object.entries(envDefaults)) {
1491
+ const envKey = `NUXT_PUBLIC_SCRIPTS_${toScreamingSnake(key)}_${toScreamingSnake(field)}`;
1492
+ envResolved[field] = process.env[envKey] || defaultValue;
1493
+ }
1494
+ registryWithDefaults[key] = defu(input, envResolved);
1496
1495
  }
1497
1496
  nuxt.options.runtimeConfig.public.scripts = defu(
1498
1497
  nuxt.options.runtimeConfig.public.scripts || {},
1499
1498
  registryWithDefaults
1500
1499
  );
1501
1500
  }
1501
+ const googleMapsEnabled = config.googleStaticMapsProxy?.enabled || !!config.registry?.googleMaps;
1502
+ nuxt.options.runtimeConfig["nuxt-scripts"] = {
1503
+ version,
1504
+ // Private proxy config with API key (server-side only)
1505
+ googleStaticMapsProxy: googleMapsEnabled ? { apiKey: nuxt.options.runtimeConfig.public.scripts?.googleMaps?.apiKey } : void 0
1506
+ };
1507
+ nuxt.options.runtimeConfig.public["nuxt-scripts"] = {
1508
+ // expose for devtools
1509
+ version: nuxt.options.dev ? version : void 0,
1510
+ defaultScriptOptions: config.defaultScriptOptions,
1511
+ // Only expose enabled and cacheMaxAge to client, not apiKey
1512
+ googleStaticMapsProxy: googleMapsEnabled ? { enabled: true, cacheMaxAge: config.googleStaticMapsProxy?.cacheMaxAge ?? 3600 } : void 0
1513
+ };
1502
1514
  if (config.defaultScriptOptions?.bundle !== void 0) {
1503
1515
  logger.warn(
1504
1516
  "`scripts.defaultScriptOptions.bundle` is deprecated. Use `scripts.firstParty: true` instead. First-party mode is now enabled by default."
package/dist/registry.mjs CHANGED
@@ -22,7 +22,10 @@ const LOGOS = {
22
22
  tiktokPixel: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><path d="M224 72a52.059 52.059 0 0 1-52-52a4 4 0 0 0-4-4h-40a4 4 0 0 0-4 4v132a28 28 0 1 1-40.567-25.019a4 4 0 0 0 2.567-3.734V80a4 4 0 0 0-4.652-3.949A84.032 84.032 0 1 0 156 152v-43.047a99.432 99.432 0 0 0 52 14.586a4 4 0 0 0 4-4V76a4 4 0 0 0-4-4z" fill="currentColor"/></svg>`,
23
23
  redditPixel: `<svg viewBox="0 0 800 800" xmlns="http://www.w3.org/2000/svg" width="32" height="32"> <circle cx="400" cy="400" fill="#ff4500" r="400"/> <path d="M666.8 400c.08 5.48-.6 10.95-2.04 16.24s-3.62 10.36-6.48 15.04c-2.85 4.68-6.35 8.94-10.39 12.65s-8.58 6.83-13.49 9.27c.11 1.46.2 2.93.25 4.4a107.268 107.268 0 0 1 0 8.8c-.05 1.47-.14 2.94-.25 4.4 0 89.6-104.4 162.4-233.2 162.4S168 560.4 168 470.8c-.11-1.46-.2-2.93-.25-4.4a107.268 107.268 0 0 1 0-8.8c.05-1.47.14-2.94.25-4.4a58.438 58.438 0 0 1-31.85-37.28 58.41 58.41 0 0 1 7.8-48.42 58.354 58.354 0 0 1 41.93-25.4 58.4 58.4 0 0 1 46.52 15.5 286.795 286.795 0 0 1 35.89-20.71c12.45-6.02 25.32-11.14 38.51-15.3s26.67-7.35 40.32-9.56 27.45-3.42 41.28-3.63L418 169.6c.33-1.61.98-3.13 1.91-4.49.92-1.35 2.11-2.51 3.48-3.4 1.38-.89 2.92-1.5 4.54-1.8 1.61-.29 3.27-.26 4.87.09l98 19.6c9.89-16.99 30.65-24.27 48.98-17.19s28.81 26.43 24.71 45.65c-4.09 19.22-21.55 32.62-41.17 31.61-19.63-1.01-35.62-16.13-37.72-35.67L440 186l-26 124.8c13.66.29 27.29 1.57 40.77 3.82a284.358 284.358 0 0 1 77.8 24.86A284.412 284.412 0 0 1 568 360a58.345 58.345 0 0 1 29.4-15.21 58.361 58.361 0 0 1 32.95 3.21 58.384 58.384 0 0 1 25.91 20.61A58.384 58.384 0 0 1 666.8 400zm-396.96 55.31c2.02 4.85 4.96 9.26 8.68 12.97 3.71 3.72 8.12 6.66 12.97 8.68A40.049 40.049 0 0 0 306.8 480c16.18 0 30.76-9.75 36.96-24.69 6.19-14.95 2.76-32.15-8.68-43.59s-28.64-14.87-43.59-8.68c-14.94 6.2-24.69 20.78-24.69 36.96 0 5.25 1.03 10.45 3.04 15.31zm229.1 96.02c2.05-2 3.22-4.73 3.26-7.59.04-2.87-1.07-5.63-3.07-7.68s-4.73-3.22-7.59-3.26c-2.87-.04-5.63 1.07-7.94 2.8a131.06 131.06 0 0 1-19.04 11.35 131.53 131.53 0 0 1-20.68 7.99c-7.1 2.07-14.37 3.54-21.72 4.39-7.36.85-14.77 1.07-22.16.67-7.38.33-14.78.03-22.11-.89a129.01 129.01 0 0 1-21.64-4.6c-7.08-2.14-13.95-4.88-20.56-8.18s-12.93-7.16-18.89-11.53c-2.07-1.7-4.7-2.57-7.38-2.44s-5.21 1.26-7.11 3.15c-1.89 1.9-3.02 4.43-3.15 7.11s.74 5.31 2.44 7.38c7.03 5.3 14.5 9.98 22.33 14s16 7.35 24.4 9.97 17.01 4.51 25.74 5.66c8.73 1.14 17.54 1.53 26.33 1.17 8.79.36 17.6-.03 26.33-1.17A153.961 153.961 0 0 0 476.87 564c7.83-4.02 15.3-8.7 22.33-14zm-7.34-68.13c5.42.06 10.8-.99 15.81-3.07 5.01-2.09 9.54-5.17 13.32-9.06s6.72-8.51 8.66-13.58A39.882 39.882 0 0 0 532 441.6c0-16.18-9.75-30.76-24.69-36.96-14.95-6.19-32.15-2.76-43.59 8.68s-14.87 28.64-8.68 43.59c6.2 14.94 20.78 24.69 36.96 24.69z" fill="#fff"/> </svg>`,
24
24
  googleAdsense: `<svg xmlns="http://www.w3.org/2000/svg" width="36.09" height="32" viewBox="0 0 256 227"><path fill="#FBBC04" d="M161.8 62.158c11.581-19.822 4.705-45.154-15.355-56.603C126.376-5.878 100.723.899 89.142 20.72c-.51.888-.99 1.794-1.44 2.715L48.553 90.41a49.41 49.41 0 0 0-2.401 4.112L5.495 164.681l72.65 40.721l40.45-69.566a40.013 40.013 0 0 0 2.402-4.112l39.15-66.983a45.769 45.769 0 0 0 1.654-2.583"/><path fill="#34A853" d="M78.483 205.189c-11.515 20.142-37.49 27.553-57.434 15.931c-19.954-11.63-27.036-36.847-15.513-56.982c11.523-20.134 37.267-27.578 57.22-15.956c19.954 11.63 27.241 36.872 15.727 56.998"/><path fill="#4285F4" d="M235.257 75.417c-19.83-11.429-45.17-4.661-56.661 15.134l-41.478 71.67c-11.428 19.755-4.678 45.033 15.076 56.46l.107.062c19.835 11.433 45.18 4.66 56.67-15.142l41.469-71.663c11.426-19.76 4.67-45.042-15.09-56.468z"/></svg>`,
25
- carbonAds: `<svg width="85" height="39" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="none" fill-rule="evenodd"><g fill="#27282F" fill-rule="nonzero"><path d="M2.927 17.98c0 3.248 1.225 4.295 4.933 4.295 1.362 0 3.573-.174 5.31-.488l.305 2.584c-1.633.385-4.015.629-5.717.629C2.212 25 0 22.555 0 18.155V7.887c0-4.401 2.212-6.845 7.759-6.845 1.701 0 4.083.244 5.717.628l-.306 2.585c-1.736-.315-3.948-.49-5.309-.49-3.709 0-4.934 1.049-4.934 4.296v9.92ZM27.988 24.65h-2.433l-.172-1.257C23.91 24.441 21.991 25 19.97 25c-3.118 0-4.42-1.886-4.42-4.89 0-3.528 1.748-4.785 5.106-4.785h4.454V12.67c0-2.13-.925-2.864-3.632-2.864-1.61 0-3.701.28-5.003.56l-.309-2.34c1.576-.42 3.7-.734 5.483-.734 4.763 0 6.34 1.886 6.34 5.518v11.84Zm-2.879-6.88H20.86c-1.782 0-2.433.559-2.433 2.27 0 1.747.309 2.445 2.365 2.445 1.439 0 3.05-.56 4.317-1.397V17.77ZM38.354 10.035c-1.497.784-3.221 1.995-4.523 2.993V25h-2.733V7.648h2.375l.162 2.423a19.862 19.862 0 0 1 4.36-2.78l.359 2.744ZM53.902 18.573c0 3.92-1.415 6.427-7.321 6.427-1.592 0-4.174-.213-6.154-.671V.424L43.397 0v8.298c1.203-.636 3.254-1.2 5.447-1.2 3.572 0 5.058 2.083 5.058 5.367v6.108ZM43.398 22.14c1.167.177 2.334.248 3.395.248 3.501 0 4.138-1.413 4.138-3.708v-6.32c0-1.766-.778-2.649-2.794-2.649-1.521 0-3.572.742-4.74 1.307v11.122ZM61.677 25c-4.833 0-6.738-2.83-6.738-6.392v-4.925c0-3.562 1.905-6.391 6.738-6.391 4.832 0 6.738 2.829 6.738 6.391v4.925c0 3.562-1.906 6.392-6.738 6.392Zm0-15.16c-2.586 0-3.88 1.258-3.88 3.738v5.134c0 2.48 1.293 3.738 3.88 3.738 2.586 0 3.88-1.258 3.88-3.738v-5.134c0-2.48-1.293-3.738-3.88-3.738ZM80.495 7.145c-1.92-.344-4.937.512-6.378 1.225l-.273-1.471h-2.32v17.06h2.866V11.066c1.775-.946 4.2-1.725 5.427-1.692.902.024 1.738.746 1.738 1.552v13.031h2.866V10.94c-.458-3.648-3.927-3.832-3.926-3.795Z"/></g><image opacity=".3" x="31" y="28" width="54" height="10" xlink:href="data:image/png;base64,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"/></g></svg>`,
25
+ carbonAds: {
26
+ light: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#1E1E1E"/><path transform="translate(9.25,3.5)" d="M2.927 17.98c0 3.248 1.225 4.295 4.933 4.295 1.362 0 3.573-.174 5.31-.488l.305 2.584c-1.633.385-4.015.629-5.717.629C2.212 25 0 22.555 0 18.155V7.887c0-4.401 2.212-6.845 7.759-6.845 1.701 0 4.083.244 5.717.628l-.306 2.585c-1.736-.315-3.948-.49-5.309-.49-3.709 0-4.934 1.049-4.934 4.296v9.92Z" fill="#fff"/></svg>`,
27
+ dark: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#fff"/><path transform="translate(9.25,3.5)" d="M2.927 17.98c0 3.248 1.225 4.295 4.933 4.295 1.362 0 3.573-.174 5.31-.488l.305 2.584c-1.633.385-4.015.629-5.717.629C2.212 25 0 22.555 0 18.155V7.887c0-4.401 2.212-6.845 7.759-6.845 1.701 0 4.083.244 5.717.628l-.306 2.585c-1.736-.315-3.948-.49-5.309-.49-3.709 0-4.934 1.049-4.934 4.296v9.92Z" fill="#1E1E1E"/></svg>`
28
+ },
26
29
  intercom: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8.968 8.972"><path d="M7.853 0h-6.73C.496 0-.002.498-.002 1.117v6.73a1.12 1.12 0 0 0 1.126 1.126h6.73c.618 0 1.117-.498 1.117-1.117v-6.73A1.119 1.119 0 0 0 7.853 0zM5.68 1.645c0-.17.13-.3.3-.3s.3.13.3.3v3.998c0 .17-.13.3-.3.3s-.3-.13-.3-.3zm-1.495-.15c0-.17.13-.3.3-.3s.3.13.3.3v4.336c0 .17-.13.3-.3.3s-.3-.13-.3-.3zm-1.495.15c0-.17.13-.3.3-.3s.3.13.3.3v3.998c0 .17-.13.3-.3.3s-.3-.13-.3-.3zm-1.495.598c0-.17.13-.3.3-.3s.3.13.3.3v2.692c0 .17-.13.3-.3.3s-.3-.13-.3-.3zm6.48 4.566c-.05.04-1.156.967-3.2.967s-3.14-.927-3.2-.967a.29.29 0 0 1-.03-.419.29.29 0 0 1 .419-.03c.02 0 1.007.817 2.8.817 1.814 0 2.79-.817 2.79-.827.13-.1.32-.1.42.03a.3.3 0 0 1-.02.429zm.1-1.874c0 .17-.13.3-.3.3s-.3-.13-.3-.3V2.243c0-.17.13-.3.3-.3s.3.13.3.3z" fill="#1f8ded"/></svg>`,
27
30
  hotjar: `<svg xmlns="http://www.w3.org/2000/svg" width="28.45" height="32" viewBox="0 0 256 288"><path fill="#FF3C00" d="M256 100.585c0 53.068-23.654 81.018-49.308 99.403l-4.984 3.443l-5 3.23l-4.979 3.04l-4.925 2.877l-18.623 10.45c-.97.554-1.925 1.106-2.867 1.656l-5.484 3.303c-19.473 12.156-31.858 25.278-32.898 54.98l-.071 4.155H71.752c0-51.355 22.158-79.19 46.838-97.595l4.964-3.56a192.48 192.48 0 0 1 2.496-1.693l5-3.229l4.978-3.04l9.759-5.616l13.787-7.712l5.652-3.305c21.022-12.65 34.51-25.579 35.597-56.632l.071-4.155zM184.252.145c0 51.35-22.153 79.185-46.833 97.591l-4.964 3.56c-.831.574-1.664 1.138-2.497 1.693l-5 3.23l-4.979 3.04l-9.76 5.616l-13.788 7.713l-5.652 3.305c-.914.55-1.814 1.1-2.7 1.653l-5.131 3.351c-16.5 11.328-26.82 24.627-27.766 51.63l-.072 4.155H0c0-54.78 25.206-82.793 51.797-101.152l4.997-3.333l4.994-3.133l4.957-2.956L87.82 64.236l5.652-3.306c21.023-12.65 34.51-25.58 35.597-56.631l.072-4.155z"/></svg>`,
28
31
  clarity: `https://store-images.s-microsoft.com/image/apps.29332.512b1d3d-80ec-4aec-83bb-411008d2f7cd.76371b6f-9386-463f-bfb0-b75cffb86a4f.bd99f4b1-b18e-4380-aa79-93768763c90d.png`,
@@ -40,6 +40,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
40
40
  * A latitude / longitude of where to focus the map.
41
41
  */
42
42
  center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
43
+ /**
44
+ * Zoom level for the map (0-21). Reactive: changing this will update the map.
45
+ * Takes precedence over mapOptions.zoom when provided.
46
+ */
47
+ zoom?: number;
43
48
  /**
44
49
  * Should a marker be displayed on the map where the centre is.
45
50
  */
@@ -104,7 +109,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
104
109
  readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
105
110
  readonly map: ShallowRef<google.maps.Map | undefined>;
106
111
  readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
107
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
112
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
108
113
  readonly importLibrary: {
109
114
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
110
115
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -119,7 +124,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
119
124
  readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
120
125
  readonly map: ShallowRef<google.maps.Map | undefined>;
121
126
  readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
122
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
127
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
123
128
  readonly importLibrary: {
124
129
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
125
130
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -147,6 +152,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
147
152
  * A latitude / longitude of where to focus the map.
148
153
  */
149
154
  center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
155
+ /**
156
+ * Zoom level for the map (0-21). Reactive: changing this will update the map.
157
+ * Takes precedence over mapOptions.zoom when provided.
158
+ */
159
+ zoom?: number;
150
160
  /**
151
161
  * Should a marker be displayed on the map where the centre is.
152
162
  */
@@ -213,7 +223,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
213
223
  readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
214
224
  readonly map: ShallowRef<google.maps.Map | undefined>;
215
225
  readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
216
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
226
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
217
227
  readonly importLibrary: {
218
228
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
219
229
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -18,6 +18,7 @@ const props = defineProps({
18
18
  aboveTheFold: { type: Boolean, required: false },
19
19
  apiKey: { type: String, required: false },
20
20
  center: { type: null, required: false },
21
+ zoom: { type: Number, required: false },
21
22
  centerMarker: { type: Boolean, required: false, default: true },
22
23
  mapOptions: { type: null, required: false },
23
24
  region: { type: String, required: false },
@@ -51,8 +52,12 @@ const currentMapId = computed(() => {
51
52
  return props.mapIds[currentColorMode.value] || props.mapIds.light || props.mapOptions?.mapId;
52
53
  });
53
54
  const mapsApi = ref();
54
- if (import.meta.dev && !apiKey)
55
- throw new Error("GoogleMaps requires an API key. Please provide `apiKey` on the <ScriptGoogleMaps> or globally via `runtimeConfig.public.scripts.googleMaps.apiKey`.");
55
+ if (import.meta.dev) {
56
+ if (!apiKey)
57
+ throw new Error("GoogleMaps requires an API key. Enable it in your nuxt.config:\n\n scripts: {\n registry: {\n googleMaps: true\n }\n }\n\nThen set NUXT_PUBLIC_SCRIPTS_GOOGLE_MAPS_API_KEY in your .env file.\n\nAlternatively, pass `api-key` directly on the <ScriptGoogleMaps> component (note: this exposes the key client-side).");
58
+ if (!proxyConfig?.enabled && !props.apiKey)
59
+ console.warn("[nuxt-scripts] Google Maps proxy is not enabled. Enable `googleMaps` in your nuxt.config registry to keep your API key server-side. See: https://scripts.nuxt.com/scripts/google-maps#setup");
60
+ }
56
61
  const rootEl = ref();
57
62
  const mapEl = ref();
58
63
  const centerOverride = ref();
@@ -68,7 +73,7 @@ const { load, status, onLoaded } = useScriptGoogleMaps({
68
73
  });
69
74
  const options = computed(() => {
70
75
  const mapId = props.mapOptions?.styles ? void 0 : currentMapId.value || "map";
71
- return defu({ center: centerOverride.value, mapId }, props.mapOptions, {
76
+ return defu({ center: centerOverride.value, mapId, zoom: props.zoom }, props.mapOptions, {
72
77
  center: props.center,
73
78
  zoom: 15
74
79
  });
@@ -118,7 +123,7 @@ async function createAdvancedMapMarker(_options) {
118
123
  return p;
119
124
  }
120
125
  const queryToLatLngCache = /* @__PURE__ */ new Map();
121
- async function resolveQueryToLatLang(query) {
126
+ async function resolveQueryToLatLng(query) {
122
127
  if (query && typeof query === "object")
123
128
  return Promise.resolve(query);
124
129
  if (queryToLatLngCache.has(query)) {
@@ -185,11 +190,21 @@ const googleMaps = {
185
190
  googleMaps: mapsApi,
186
191
  map,
187
192
  createAdvancedMapMarker,
188
- resolveQueryToLatLang,
193
+ resolveQueryToLatLng,
189
194
  importLibrary
190
195
  };
191
196
  defineExpose(googleMaps);
192
- provide(MAP_INJECTION_KEY, { map, mapsApi });
197
+ let activeInfoWindow;
198
+ provide(MAP_INJECTION_KEY, {
199
+ map,
200
+ mapsApi,
201
+ activateInfoWindow(iw) {
202
+ if (activeInfoWindow && activeInfoWindow !== iw) {
203
+ activeInfoWindow.close();
204
+ }
205
+ activeInfoWindow = iw;
206
+ }
207
+ });
193
208
  onMounted(() => {
194
209
  watch(ready, (v) => {
195
210
  if (v) {
@@ -239,7 +254,7 @@ onMounted(() => {
239
254
  let center = toRaw(next[0]);
240
255
  if (center) {
241
256
  if (isLocationQuery(center) && ready.value) {
242
- center = await resolveQueryToLatLang(center);
257
+ center = await resolveQueryToLatLng(center);
243
258
  }
244
259
  map.value.setCenter(center);
245
260
  if (props.centerMarker) {
@@ -270,7 +285,7 @@ onMounted(() => {
270
285
  };
271
286
  map.value = new mapsApi.value.Map(mapEl.value, _options);
272
287
  if (center && isLocationQuery(center)) {
273
- centerOverride.value = await resolveQueryToLatLang(center);
288
+ centerOverride.value = await resolveQueryToLatLng(center);
274
289
  map.value?.setCenter(centerOverride.value);
275
290
  }
276
291
  ready.value = true;
@@ -40,6 +40,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
40
40
  * A latitude / longitude of where to focus the map.
41
41
  */
42
42
  center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
43
+ /**
44
+ * Zoom level for the map (0-21). Reactive: changing this will update the map.
45
+ * Takes precedence over mapOptions.zoom when provided.
46
+ */
47
+ zoom?: number;
43
48
  /**
44
49
  * Should a marker be displayed on the map where the centre is.
45
50
  */
@@ -104,7 +109,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
104
109
  readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
105
110
  readonly map: ShallowRef<google.maps.Map | undefined>;
106
111
  readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
107
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
112
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
108
113
  readonly importLibrary: {
109
114
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
110
115
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -119,7 +124,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
119
124
  readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
120
125
  readonly map: ShallowRef<google.maps.Map | undefined>;
121
126
  readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
122
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
127
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
123
128
  readonly importLibrary: {
124
129
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
125
130
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -147,6 +152,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
147
152
  * A latitude / longitude of where to focus the map.
148
153
  */
149
154
  center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
155
+ /**
156
+ * Zoom level for the map (0-21). Reactive: changing this will update the map.
157
+ * Takes precedence over mapOptions.zoom when provided.
158
+ */
159
+ zoom?: number;
150
160
  /**
151
161
  * Should a marker be displayed on the map where the centre is.
152
162
  */
@@ -213,7 +223,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
213
223
  readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
214
224
  readonly map: ShallowRef<google.maps.Map | undefined>;
215
225
  readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
216
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
226
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
217
227
  readonly importLibrary: {
218
228
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
219
229
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -2,54 +2,24 @@ export { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from './injectionKeys.js';
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
4
4
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
5
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
5
6
  options?: Omit<google.maps.marker.AdvancedMarkerElementOptions, "map">;
6
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
- contextmenu: (payload: google.maps.MapMouseEvent) => any;
7
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
8
  click: (payload: google.maps.MapMouseEvent) => any;
9
- dblclick: (payload: google.maps.MapMouseEvent) => any;
10
9
  drag: (payload: google.maps.MapMouseEvent) => any;
11
10
  dragend: (payload: google.maps.MapMouseEvent) => any;
12
11
  dragstart: (payload: google.maps.MapMouseEvent) => any;
13
- mousedown: (payload: google.maps.MapMouseEvent) => any;
14
- mouseout: (payload: google.maps.MapMouseEvent) => any;
15
- mouseover: (payload: google.maps.MapMouseEvent) => any;
16
- mouseup: (payload: google.maps.MapMouseEvent) => any;
17
- animation_changed: () => any;
18
- clickable_changed: () => any;
19
- cursor_changed: () => any;
20
- draggable_changed: () => any;
21
- flat_changed: () => any;
22
- icon_changed: () => any;
23
- position_changed: () => any;
24
- shape_changed: () => any;
25
- title_changed: () => any;
26
- visible_changed: () => any;
27
- zindex_changed: () => any;
28
12
  }, string, import("vue").PublicProps, Readonly<{
13
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
29
14
  options?: Omit<google.maps.marker.AdvancedMarkerElementOptions, "map">;
30
15
  }> & Readonly<{
31
- onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
32
16
  onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
33
- onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
34
17
  onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
35
18
  onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
36
19
  onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
37
- onMousedown?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
38
- onMouseout?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
39
- onMouseover?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
40
- onMouseup?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
41
- onAnimation_changed?: (() => any) | undefined;
42
- onClickable_changed?: (() => any) | undefined;
43
- onCursor_changed?: (() => any) | undefined;
44
- onDraggable_changed?: (() => any) | undefined;
45
- onFlat_changed?: (() => any) | undefined;
46
- onIcon_changed?: (() => any) | undefined;
47
- onPosition_changed?: (() => any) | undefined;
48
- onShape_changed?: (() => any) | undefined;
49
- onTitle_changed?: (() => any) | undefined;
50
- onVisible_changed?: (() => any) | undefined;
51
- onZindex_changed?: (() => any) | undefined;
52
20
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
21
+ content?: (props: {}) => any;
22
+ } & {
53
23
  default?: (props: {}) => any;
54
24
  }>;
55
25
  type __VLS_WithSlots<T, S> = T & {
@@ -1,5 +1,6 @@
1
1
  <script>
2
- import { inject, provide, watch } from "vue";
2
+ import { inject, provide, useSlots, useTemplateRef, watch } from "vue";
3
+ import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
3
4
  import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./injectionKeys";
4
5
  import { MARKER_CLUSTERER_INJECTION_KEY } from "./ScriptGoogleMapsMarkerClusterer.vue";
5
6
  import { useGoogleMapsResource } from "./useGoogleMapsResource";
@@ -8,49 +9,45 @@ export { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./injectionKeys";
8
9
 
9
10
  <script setup>
10
11
  const props = defineProps({
12
+ position: { type: null, required: false },
11
13
  options: { type: Object, required: false }
12
14
  });
13
- const emit = defineEmits([]);
14
- const eventsWithoutPayload = [
15
- "animation_changed",
16
- "clickable_changed",
17
- "cursor_changed",
18
- "draggable_changed",
19
- "flat_changed",
20
- "icon_changed",
21
- "position_changed",
22
- "shape_changed",
23
- "title_changed",
24
- "visible_changed",
25
- "zindex_changed"
26
- ];
27
- const eventsWithMapMouseEventPayload = [
28
- "click",
29
- "contextmenu",
30
- "dblclick",
31
- "drag",
32
- "dragend",
33
- "dragstart",
34
- "mousedown",
35
- "mouseout",
36
- "mouseover",
37
- "mouseup"
38
- ];
15
+ const emit = defineEmits(["click", "drag", "dragend", "dragstart"]);
16
+ const dragEvents = ["drag", "dragend", "dragstart"];
17
+ const slots = useSlots();
18
+ const markerContent = useTemplateRef("marker-content");
39
19
  const markerClustererContext = inject(MARKER_CLUSTERER_INJECTION_KEY, void 0);
20
+ let gmpClickHandler;
40
21
  const advancedMarkerElement = useGoogleMapsResource({
22
+ ready: () => !slots.content || !!markerContent.value,
41
23
  async create({ mapsApi, map }) {
42
24
  await mapsApi.importLibrary("marker");
43
- const marker = new mapsApi.marker.AdvancedMarkerElement(props.options);
44
- setupEventListeners(marker);
25
+ const marker = new mapsApi.marker.AdvancedMarkerElement({
26
+ ...props.options,
27
+ gmpClickable: true,
28
+ ...props.position ? { position: props.position } : {}
29
+ });
30
+ if (markerContent.value) {
31
+ marker.content = markerContent.value;
32
+ }
45
33
  if (markerClustererContext?.markerClusterer.value) {
46
34
  markerClustererContext.markerClusterer.value.addMarker(marker, true);
47
35
  markerClustererContext.requestRerender();
48
36
  } else {
49
37
  marker.map = map;
50
38
  }
39
+ gmpClickHandler = (e) => emit("click", e);
40
+ marker.addEventListener("gmp-click", gmpClickHandler);
41
+ bindGoogleMapsEvents(marker, emit, {
42
+ withPayload: dragEvents
43
+ });
51
44
  return marker;
52
45
  },
53
46
  cleanup(marker, { mapsApi }) {
47
+ if (gmpClickHandler) {
48
+ marker.removeEventListener("gmp-click", gmpClickHandler);
49
+ gmpClickHandler = void 0;
50
+ }
54
51
  mapsApi.event.clearInstanceListeners(marker);
55
52
  if (markerClustererContext?.markerClusterer.value) {
56
53
  markerClustererContext.markerClusterer.value.removeMarker(marker, true);
@@ -60,22 +57,27 @@ const advancedMarkerElement = useGoogleMapsResource({
60
57
  }
61
58
  }
62
59
  });
63
- watch(() => props.options, (options) => {
64
- if (advancedMarkerElement.value && options) {
65
- Object.assign(advancedMarkerElement.value, options);
66
- }
67
- }, { deep: true });
60
+ watch(
61
+ () => [props.position, props.options],
62
+ () => {
63
+ if (!advancedMarkerElement.value)
64
+ return;
65
+ if (props.options)
66
+ Object.assign(advancedMarkerElement.value, props.options);
67
+ advancedMarkerElement.value.position = props.position ?? props.options?.position;
68
+ },
69
+ { deep: true }
70
+ );
68
71
  provide(ADVANCED_MARKER_ELEMENT_INJECTION_KEY, { advancedMarkerElement });
69
- function setupEventListeners(marker) {
70
- eventsWithoutPayload.forEach((event) => {
71
- marker.addListener(event, () => emit(event));
72
- });
73
- eventsWithMapMouseEventPayload.forEach((event) => {
74
- marker.addListener(event, (payload) => emit(event, payload));
75
- });
76
- }
77
72
  </script>
78
73
 
79
74
  <template>
75
+ <!-- Hidden container for #content slot — becomes the marker visual -->
76
+ <div v-if="$slots.content" style="display: none;">
77
+ <div ref="marker-content">
78
+ <slot name="content" />
79
+ </div>
80
+ </div>
81
+ <!-- Default slot for child components (InfoWindow, OverlayView, etc.) -->
80
82
  <slot v-if="advancedMarkerElement" />
81
83
  </template>