@nuxt/scripts 1.0.0-beta.7 → 1.0.0-rc.2

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 (270) hide show
  1. package/dist/devtools-client/200.html +1 -0
  2. package/dist/devtools-client/404.html +1 -0
  3. package/dist/devtools-client/_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2 +0 -0
  4. package/dist/devtools-client/_fonts/4qBuU9MRVUlPZNPSF7Xom_sK8RBEnfYu-9VXFrdq8A8-8TDwLE1HAj1sQn7XxVWtM_7sIaPM-DTdO3Pf8U2DF1U.woff2 +0 -0
  5. package/dist/devtools-client/_fonts/6dYsbWUd_BpKJ7mdDihgOcya1gHXLpJBuMYXux3WMjE-q3fYNS8YbW5n7ZeXI2vSNgkRWW5VDPKAl51SNTjG2qk.woff2 +0 -0
  6. package/dist/devtools-client/_fonts/Lr-hqqZZsYmCt0ITUlr1CUrWim9fsKvoDFZliMxgNHY-iTa_Yt_PzhOY9TX7ZXdSlEPim6iRt92xhECwaxWxd5w.woff2 +0 -0
  7. package/dist/devtools-client/_fonts/OknHvWI6KtYn1JQBzX7eSpNDBQ8520F9TvSUJYkVf6A-xeZn9253svK_8Q2LD0XEruY_MnEsuCRO5LenPoggC0Y.woff2 +0 -0
  8. package/dist/devtools-client/_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2 +0 -0
  9. package/dist/devtools-client/_fonts/UA7OtwYHwGN_HjcVGTdmiQxUit7FlqkCwxVUWSeXVnQ-B4OXCFOL_tWrYODpQTc07aMaj0c2cewTOmBRWR9tD-A.woff2 +0 -0
  10. package/dist/devtools-client/_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2 +0 -0
  11. package/dist/devtools-client/_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2 +0 -0
  12. package/dist/devtools-client/_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2 +0 -0
  13. package/dist/devtools-client/_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2 +0 -0
  14. package/dist/devtools-client/_fonts/qxAYvKsXWeYv731eb-h5TRurcdIP_W44mpNdX-HABAk-zUDeMEFlNtNbrwvT9JxLEBg0TphGy70O6RfIoIX_ZwU.woff2 +0 -0
  15. package/dist/devtools-client/_nuxt/B3kN3DAy.js +1 -0
  16. package/dist/devtools-client/_nuxt/B8PEiB0p.js +1 -0
  17. package/dist/devtools-client/_nuxt/C8jhSQ8l.js +1 -0
  18. package/dist/devtools-client/_nuxt/CJD6wrkT.js +188 -0
  19. package/dist/devtools-client/_nuxt/CfOsp0mU.js +1 -0
  20. package/dist/devtools-client/_nuxt/DKL6PHO3.js +1 -0
  21. package/dist/devtools-client/_nuxt/ajngqPCs.js +1 -0
  22. package/dist/devtools-client/_nuxt/builds/latest.json +1 -0
  23. package/dist/devtools-client/_nuxt/builds/meta/cb4e67c6-e8b7-4205-95b7-708fd96ffab6.json +1 -0
  24. package/dist/devtools-client/_nuxt/dlaR8P-P.js +1 -0
  25. package/dist/devtools-client/_nuxt/entry.BwpOBArY.css +1 -0
  26. package/dist/devtools-client/_nuxt/error-404.CvOVjXeC.css +1 -0
  27. package/dist/devtools-client/_nuxt/error-500.BIm53nmx.css +1 -0
  28. package/dist/devtools-client/_nuxt/first-party.C8Ha4JLM.css +1 -0
  29. package/dist/devtools-client/_nuxt/index.CA-OpSj0.css +1 -0
  30. package/dist/devtools-client/_nuxt/registry.B9lnjF_b.css +1 -0
  31. package/dist/devtools-client/_nuxt/wDzz0qaB.js +1 -0
  32. package/dist/devtools-client/docs/index.html +1 -0
  33. package/dist/devtools-client/first-party/index.html +1 -0
  34. package/dist/devtools-client/index.html +1 -0
  35. package/dist/devtools-client/registry/index.html +1 -0
  36. package/dist/module.d.mts +29 -84
  37. package/dist/module.d.ts +121 -0
  38. package/dist/module.json +1 -1
  39. package/dist/module.mjs +940 -755
  40. package/dist/registry.d.mts +91 -4
  41. package/dist/registry.d.ts +93 -0
  42. package/dist/registry.mjs +668 -326
  43. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +19 -87
  44. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +79 -180
  45. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +19 -87
  46. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +6 -55
  47. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +12 -83
  48. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +6 -55
  49. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +5 -1
  50. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +24 -38
  51. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +5 -1
  52. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +43 -0
  53. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +60 -0
  54. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +43 -0
  55. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +4 -0
  56. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +22 -26
  57. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +4 -0
  58. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +11 -8
  59. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +57 -57
  60. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +11 -8
  61. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +24 -42
  62. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +70 -73
  63. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +24 -42
  64. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +42 -5
  65. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +83 -37
  66. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +42 -5
  67. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +77 -0
  68. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +223 -0
  69. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +77 -0
  70. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +10 -3
  71. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +9 -41
  72. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +10 -3
  73. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +7 -3
  74. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +23 -38
  75. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +7 -3
  76. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +7 -3
  77. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +23 -38
  78. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +7 -3
  79. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +7 -3
  80. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +24 -38
  81. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +7 -3
  82. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.d.vue.ts +200 -0
  83. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue +166 -0
  84. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue.d.ts +200 -0
  85. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  86. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  87. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +10 -0
  88. package/dist/runtime/components/GoogleMaps/injectionKeys.js +2 -0
  89. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.d.ts +48 -0
  90. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.js +51 -0
  91. package/dist/runtime/components/ScriptBlueskyEmbed.d.vue.ts +84 -0
  92. package/dist/runtime/components/ScriptBlueskyEmbed.vue +89 -0
  93. package/dist/runtime/components/ScriptBlueskyEmbed.vue.d.ts +84 -0
  94. package/dist/runtime/components/ScriptCarbonAds.d.vue.ts +4 -7
  95. package/dist/runtime/components/ScriptCarbonAds.vue +1 -0
  96. package/dist/runtime/components/ScriptCarbonAds.vue.d.ts +4 -7
  97. package/dist/runtime/components/ScriptCrisp.d.vue.ts +7 -11
  98. package/dist/runtime/components/ScriptCrisp.vue +2 -1
  99. package/dist/runtime/components/ScriptCrisp.vue.d.ts +7 -11
  100. package/dist/runtime/components/ScriptGoogleAdsense.d.vue.ts +4 -7
  101. package/dist/runtime/components/ScriptGoogleAdsense.vue +2 -1
  102. package/dist/runtime/components/ScriptGoogleAdsense.vue.d.ts +4 -7
  103. package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
  104. package/dist/runtime/components/ScriptGravatar.vue +46 -0
  105. package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
  106. package/dist/runtime/components/ScriptInstagramEmbed.d.vue.ts +12 -15
  107. package/dist/runtime/components/ScriptInstagramEmbed.vue +9 -3
  108. package/dist/runtime/components/ScriptInstagramEmbed.vue.d.ts +12 -15
  109. package/dist/runtime/components/ScriptIntercom.d.vue.ts +7 -11
  110. package/dist/runtime/components/ScriptIntercom.vue +5 -3
  111. package/dist/runtime/components/ScriptIntercom.vue.d.ts +7 -11
  112. package/dist/runtime/components/ScriptLemonSqueezy.d.vue.ts +2 -3
  113. package/dist/runtime/components/ScriptLemonSqueezy.vue +1 -0
  114. package/dist/runtime/components/ScriptLemonSqueezy.vue.d.ts +2 -3
  115. package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -37
  116. package/dist/runtime/components/ScriptPayPalButtons.vue +49 -79
  117. package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -37
  118. package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -28
  119. package/dist/runtime/components/ScriptPayPalMessages.vue +47 -50
  120. package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -28
  121. package/dist/runtime/components/ScriptStripePricingTable.d.vue.ts +5 -9
  122. package/dist/runtime/components/ScriptStripePricingTable.vue +3 -2
  123. package/dist/runtime/components/ScriptStripePricingTable.vue.d.ts +5 -9
  124. package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +17 -11
  125. package/dist/runtime/components/ScriptVimeoPlayer.vue +14 -10
  126. package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +17 -11
  127. package/dist/runtime/components/ScriptXEmbed.d.vue.ts +10 -13
  128. package/dist/runtime/components/ScriptXEmbed.vue +15 -8
  129. package/dist/runtime/components/ScriptXEmbed.vue.d.ts +10 -13
  130. package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +10 -15
  131. package/dist/runtime/components/ScriptYouTubePlayer.vue +12 -5
  132. package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +10 -15
  133. package/dist/runtime/composables/useScript.js +148 -8
  134. package/dist/runtime/composables/useScriptEventPage.js +2 -2
  135. package/dist/runtime/composables/useScriptTriggerConsent.d.ts +10 -0
  136. package/dist/runtime/composables/useScriptTriggerConsent.js +33 -20
  137. package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
  138. package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
  139. package/dist/runtime/devtools-standalone-bridge.client.d.ts +8 -0
  140. package/dist/runtime/devtools-standalone-bridge.client.js +50 -0
  141. package/dist/runtime/registry/bing-uet.d.ts +20 -0
  142. package/dist/runtime/registry/bing-uet.js +29 -0
  143. package/dist/runtime/registry/bluesky-embed.d.ts +116 -0
  144. package/dist/runtime/registry/bluesky-embed.js +72 -0
  145. package/dist/runtime/registry/clarity.d.ts +10 -15
  146. package/dist/runtime/registry/clarity.js +22 -31
  147. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
  148. package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
  149. package/dist/runtime/registry/crisp.d.ts +10 -40
  150. package/dist/runtime/registry/crisp.js +2 -33
  151. package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
  152. package/dist/runtime/registry/databuddy-analytics.js +20 -45
  153. package/dist/runtime/registry/fathom-analytics.d.ts +7 -26
  154. package/dist/runtime/registry/fathom-analytics.js +3 -25
  155. package/dist/runtime/registry/google-adsense.d.ts +3 -11
  156. package/dist/runtime/registry/google-adsense.js +2 -11
  157. package/dist/runtime/registry/google-analytics.d.ts +3 -5
  158. package/dist/runtime/registry/google-analytics.js +3 -8
  159. package/dist/runtime/registry/google-maps.d.ts +3 -9
  160. package/dist/runtime/registry/google-maps.js +2 -8
  161. package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
  162. package/dist/runtime/registry/google-recaptcha.js +4 -12
  163. package/dist/runtime/registry/google-sign-in.d.ts +2 -13
  164. package/dist/runtime/registry/google-sign-in.js +2 -22
  165. package/dist/runtime/registry/google-tag-manager.d.ts +3 -28
  166. package/dist/runtime/registry/google-tag-manager.js +4 -27
  167. package/dist/runtime/registry/gravatar.d.ts +26 -0
  168. package/dist/runtime/registry/gravatar.js +36 -0
  169. package/dist/runtime/registry/hotjar.d.ts +4 -6
  170. package/dist/runtime/registry/hotjar.js +2 -5
  171. package/dist/runtime/registry/instagram-embed.d.ts +3 -18
  172. package/dist/runtime/registry/instagram-embed.js +4 -19
  173. package/dist/runtime/registry/intercom.d.ts +5 -13
  174. package/dist/runtime/registry/intercom.js +2 -12
  175. package/dist/runtime/registry/matomo-analytics.d.ts +3 -12
  176. package/dist/runtime/registry/matomo-analytics.js +3 -12
  177. package/dist/runtime/registry/meta-pixel.d.ts +4 -6
  178. package/dist/runtime/registry/meta-pixel.js +2 -4
  179. package/dist/runtime/registry/mixpanel-analytics.d.ts +22 -0
  180. package/dist/runtime/registry/mixpanel-analytics.js +46 -0
  181. package/dist/runtime/registry/npm.d.ts +3 -7
  182. package/dist/runtime/registry/npm.js +2 -9
  183. package/dist/runtime/registry/paypal.d.ts +4 -25
  184. package/dist/runtime/registry/paypal.js +3 -66
  185. package/dist/runtime/registry/plausible-analytics.js +19 -14
  186. package/dist/runtime/registry/posthog.d.ts +10 -12
  187. package/dist/runtime/registry/posthog.js +3 -12
  188. package/dist/runtime/registry/reddit-pixel.d.ts +5 -6
  189. package/dist/runtime/registry/reddit-pixel.js +2 -4
  190. package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
  191. package/dist/runtime/registry/rybbit-analytics.js +10 -20
  192. package/dist/runtime/registry/schemas.d.ts +982 -0
  193. package/dist/runtime/registry/schemas.js +937 -0
  194. package/dist/runtime/registry/segment.d.ts +2 -5
  195. package/dist/runtime/registry/segment.js +2 -5
  196. package/dist/runtime/registry/snapchat-pixel.d.ts +5 -34
  197. package/dist/runtime/registry/snapchat-pixel.js +2 -20
  198. package/dist/runtime/registry/stripe.d.ts +3 -4
  199. package/dist/runtime/registry/stripe.js +2 -4
  200. package/dist/runtime/registry/tiktok-pixel.d.ts +4 -7
  201. package/dist/runtime/registry/tiktok-pixel.js +2 -6
  202. package/dist/runtime/registry/umami-analytics.d.ts +2 -31
  203. package/dist/runtime/registry/umami-analytics.js +2 -36
  204. package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
  205. package/dist/runtime/registry/vercel-analytics.js +84 -0
  206. package/dist/runtime/registry/vimeo-player.d.ts +2 -2
  207. package/dist/runtime/registry/vimeo-player.js +1 -1
  208. package/dist/runtime/registry/x-embed.d.ts +3 -17
  209. package/dist/runtime/registry/x-embed.js +3 -18
  210. package/dist/runtime/registry/x-pixel.d.ts +4 -7
  211. package/dist/runtime/registry/x-pixel.js +2 -5
  212. package/dist/runtime/registry/youtube-player.d.ts +7 -7
  213. package/dist/runtime/registry/youtube-player.js +1 -1
  214. package/dist/runtime/server/bluesky-embed-image.d.ts +2 -0
  215. package/dist/runtime/server/bluesky-embed-image.js +7 -0
  216. package/dist/runtime/server/bluesky-embed.d.ts +16 -0
  217. package/dist/runtime/server/bluesky-embed.js +59 -0
  218. package/dist/runtime/server/google-maps-geocode-proxy.d.ts +2 -0
  219. package/dist/runtime/server/google-maps-geocode-proxy.js +34 -0
  220. package/dist/runtime/server/google-static-maps-proxy.js +2 -13
  221. package/dist/runtime/server/gravatar-proxy.d.ts +2 -0
  222. package/dist/runtime/server/gravatar-proxy.js +46 -0
  223. package/dist/runtime/server/instagram-embed-asset.js +8 -41
  224. package/dist/runtime/server/instagram-embed-image.js +6 -53
  225. package/dist/runtime/server/instagram-embed.d.ts +16 -0
  226. package/dist/runtime/server/instagram-embed.js +176 -35
  227. package/dist/runtime/server/proxy-handler.js +101 -83
  228. package/dist/runtime/server/utils/image-proxy.d.ts +12 -0
  229. package/dist/runtime/server/utils/image-proxy.js +70 -0
  230. package/dist/runtime/server/utils/privacy.d.ts +1 -10
  231. package/dist/runtime/server/utils/privacy.js +60 -40
  232. package/dist/runtime/server/x-embed-image.js +5 -49
  233. package/dist/runtime/server/x-embed.js +3 -2
  234. package/dist/runtime/types.d.ts +277 -53
  235. package/dist/runtime/types.js +0 -2
  236. package/dist/runtime/utils/pure.d.ts +1 -1
  237. package/dist/runtime/utils.d.ts +6 -4
  238. package/dist/runtime/utils.js +31 -14
  239. package/dist/stats.d.mts +202 -0
  240. package/dist/stats.d.ts +202 -0
  241. package/dist/stats.mjs +3875 -0
  242. package/dist/types-source.d.mts +17 -0
  243. package/dist/types-source.d.ts +17 -0
  244. package/dist/types-source.mjs +3835 -0
  245. package/dist/types.d.mts +4 -2
  246. package/package.json +35 -61
  247. package/README.md +0 -86
  248. package/dist/client/200.html +0 -1
  249. package/dist/client/404.html +0 -1
  250. package/dist/client/_nuxt/BJa0m50V.js +0 -1
  251. package/dist/client/_nuxt/BPQ3VLAy.js +0 -1
  252. package/dist/client/_nuxt/Ci5iXYuB.js +0 -1
  253. package/dist/client/_nuxt/DaI2y8Uz.js +0 -162
  254. package/dist/client/_nuxt/builds/latest.json +0 -1
  255. package/dist/client/_nuxt/builds/meta/9b4fb16a-3c62-48b0-8295-126cb077b5d3.json +0 -1
  256. package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
  257. package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
  258. package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
  259. package/dist/client/_nuxt/vPLZfVXe.js +0 -1
  260. package/dist/client/index.html +0 -1
  261. package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
  262. package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
  263. package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
  264. package/dist/runtime/validation/mock.d.ts +0 -42
  265. package/dist/runtime/validation/mock.js +0 -21
  266. package/dist/runtime/validation/valibot.d.ts +0 -1
  267. package/dist/runtime/validation/valibot.js +0 -1
  268. /package/dist/{client → devtools-client}/_nuxt/CVO1_9PV.js +0 -0
  269. /package/dist/{client → devtools-client}/_nuxt/Cp-IABpG.js +0 -0
  270. /package/dist/{client → devtools-client}/_nuxt/D0r3Knsf.js +0 -0
@@ -1,28 +1,6 @@
1
- export interface PlaceholderOptions {
2
- width?: string | number;
3
- height?: string | number;
4
- center?: string;
5
- zoom?: number;
6
- size?: string;
7
- scale?: number;
8
- format?: 'png' | 'jpg' | 'gif' | 'png8' | 'png32' | 'jpg-baseline';
9
- maptype?: 'roadmap' | 'satellite' | 'terrain' | 'hybrid';
10
- language?: string;
11
- region?: string;
12
- markers?: string;
13
- path?: string;
14
- visible?: string;
15
- style?: string;
16
- map_id?: string;
17
- key?: string;
18
- signature?: string;
19
- }
20
- import type { HTMLAttributes, ImgHTMLAttributes, InjectionKey, Ref, ReservedProps, ShallowRef } from 'vue';
21
1
  import type { ElementScriptTrigger } from '#nuxt-scripts/types';
22
- export declare const MAP_INJECTION_KEY: InjectionKey<{
23
- map: ShallowRef<google.maps.Map | undefined>;
24
- mapsApi: Ref<typeof google.maps | undefined>;
25
- }>;
2
+ import type { HTMLAttributes, ReservedProps, ShallowRef } from 'vue';
3
+ export { MAP_INJECTION_KEY } from './useGoogleMapsResource.js';
26
4
  declare const _default: typeof __VLS_export;
27
5
  export default _default;
28
6
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
@@ -30,11 +8,6 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
30
8
  * Defines the trigger event to load the script.
31
9
  */
32
10
  trigger?: ElementScriptTrigger;
33
- /**
34
- * Is Google Maps being rendered above the fold?
35
- * This will load the placeholder image with higher priority.
36
- */
37
- aboveTheFold?: boolean;
38
11
  /**
39
12
  * Defines the Google Maps API key. Must have access to the Static Maps API as well.
40
13
  */
@@ -44,9 +17,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
44
17
  */
45
18
  center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
46
19
  /**
47
- * Should a marker be displayed on the map where the centre is.
20
+ * Zoom level for the map (0-21). Reactive: changing this will update the map.
21
+ * Takes precedence over mapOptions.zoom when provided.
48
22
  */
49
- centerMarker?: boolean;
23
+ zoom?: number;
50
24
  /**
51
25
  * Options for the map.
52
26
  */
@@ -71,24 +45,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
71
45
  * Defines the height of the map
72
46
  */
73
47
  height?: number | string;
74
- /**
75
- * Customize the placeholder image attributes.
76
- *
77
- * @see https://developers.google.com/maps/documentation/maps-static/start.
78
- */
79
- placeholderOptions?: PlaceholderOptions;
80
- /**
81
- * Customize the placeholder image attributes.
82
- */
83
- placeholderAttrs?: ImgHTMLAttributes & ReservedProps & Record<string, unknown>;
84
48
  /**
85
49
  * Customize the root element attributes.
86
50
  */
87
51
  rootAttrs?: HTMLAttributes & ReservedProps & Record<string, unknown>;
88
- /**
89
- * Extra Markers to add to the map.
90
- */
91
- markers?: (`${string},${string}` | google.maps.marker.AdvancedMarkerElementOptions)[];
92
52
  /**
93
53
  * Map IDs for light and dark color modes.
94
54
  * When provided, the map will automatically switch styles based on color mode.
@@ -104,10 +64,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
104
64
  */
105
65
  colorMode?: "light" | "dark";
106
66
  }, {
107
- readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
67
+ readonly googleMaps: import("vue").Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
108
68
  readonly map: ShallowRef<google.maps.Map | undefined>;
109
- readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
110
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | undefined>;
69
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
111
70
  readonly importLibrary: {
112
71
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
113
72
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -119,10 +78,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
119
78
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
120
79
  error: () => any;
121
80
  ready: (e: {
122
- readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
81
+ readonly googleMaps: import("vue").Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
123
82
  readonly map: ShallowRef<google.maps.Map | undefined>;
124
- readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
125
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | undefined>;
83
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
126
84
  readonly importLibrary: {
127
85
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
128
86
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -137,11 +95,6 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
137
95
  * Defines the trigger event to load the script.
138
96
  */
139
97
  trigger?: ElementScriptTrigger;
140
- /**
141
- * Is Google Maps being rendered above the fold?
142
- * This will load the placeholder image with higher priority.
143
- */
144
- aboveTheFold?: boolean;
145
98
  /**
146
99
  * Defines the Google Maps API key. Must have access to the Static Maps API as well.
147
100
  */
@@ -151,9 +104,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
151
104
  */
152
105
  center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
153
106
  /**
154
- * Should a marker be displayed on the map where the centre is.
107
+ * Zoom level for the map (0-21). Reactive: changing this will update the map.
108
+ * Takes precedence over mapOptions.zoom when provided.
155
109
  */
156
- centerMarker?: boolean;
110
+ zoom?: number;
157
111
  /**
158
112
  * Options for the map.
159
113
  */
@@ -178,24 +132,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
178
132
  * Defines the height of the map
179
133
  */
180
134
  height?: number | string;
181
- /**
182
- * Customize the placeholder image attributes.
183
- *
184
- * @see https://developers.google.com/maps/documentation/maps-static/start.
185
- */
186
- placeholderOptions?: PlaceholderOptions;
187
- /**
188
- * Customize the placeholder image attributes.
189
- */
190
- placeholderAttrs?: ImgHTMLAttributes & ReservedProps & Record<string, unknown>;
191
135
  /**
192
136
  * Customize the root element attributes.
193
137
  */
194
138
  rootAttrs?: HTMLAttributes & ReservedProps & Record<string, unknown>;
195
- /**
196
- * Extra Markers to add to the map.
197
- */
198
- markers?: (`${string},${string}` | google.maps.marker.AdvancedMarkerElementOptions)[];
199
139
  /**
200
140
  * Map IDs for light and dark color modes.
201
141
  * When provided, the map will automatically switch styles based on color mode.
@@ -213,10 +153,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
213
153
  }> & Readonly<{
214
154
  onError?: (() => any) | undefined;
215
155
  onReady?: ((e: {
216
- readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
156
+ readonly googleMaps: import("vue").Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
217
157
  readonly map: ShallowRef<google.maps.Map | undefined>;
218
- readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
219
- readonly resolveQueryToLatLang: (query: string) => Promise<google.maps.LatLng | undefined>;
158
+ readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
220
159
  readonly importLibrary: {
221
160
  (key: "marker"): Promise<google.maps.MarkerLibrary>;
222
161
  (key: "places"): Promise<google.maps.PlacesLibrary>;
@@ -228,21 +167,14 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
228
167
  }) => any) | undefined;
229
168
  }>, {
230
169
  trigger: ElementScriptTrigger;
231
- centerMarker: boolean;
232
170
  width: number | string;
233
171
  height: number | string;
234
172
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
235
- placeholder?: (props: {
236
- placeholder: string;
237
- }) => any;
238
- } & {
239
- loading?: (props: {}) => any;
240
- } & {
241
- awaitingLoad?: (props: {}) => any;
242
- } & {
243
- error?: (props: {}) => any;
244
- } & {
245
- default?: (props: {}) => any;
173
+ default?: () => any;
174
+ placeholder?: () => any;
175
+ loading?: () => any;
176
+ awaitingLoad?: () => any;
177
+ error?: () => any;
246
178
  }>;
247
179
  type __VLS_WithSlots<T, S> = T & {
248
180
  new (): {
@@ -1,40 +1,37 @@
1
1
  <script>
2
- import { computed, onBeforeUnmount, onMounted, ref, watch, toRaw, provide, shallowRef } from "vue";
3
- import { withQuery } from "ufo";
4
- import { defu } from "defu";
5
- import { hash } from "ohash";
6
- import { tryUseNuxtApp, useHead, useRuntimeConfig } from "nuxt/app";
7
- import { scriptRuntimeConfig } from "#nuxt-scripts/utils";
8
2
  import { useScriptTriggerElement } from "#nuxt-scripts/composables/useScriptTriggerElement";
9
3
  import { useScriptGoogleMaps } from "#nuxt-scripts/registry/google-maps";
4
+ import { scriptRuntimeConfig, scriptsPrefix } from "#nuxt-scripts/utils";
5
+ import { defu } from "defu";
6
+ import { tryUseNuxtApp, useHead, useRuntimeConfig } from "nuxt/app";
7
+ import { computed, onBeforeUnmount, onMounted, provide, ref, shallowRef, toRaw, useAttrs, watch } from "vue";
10
8
  import ScriptAriaLoadingIndicator from "../ScriptAriaLoadingIndicator.vue";
11
- export const MAP_INJECTION_KEY = /* @__PURE__ */ Symbol("map");
9
+ import { MAP_INJECTION_KEY } from "./useGoogleMapsResource";
10
+ const DIGITS_ONLY_RE = /^\d+$/;
11
+ const DIGITS_PX_RE = /^\d+px$/i;
12
+ export { MAP_INJECTION_KEY } from "./useGoogleMapsResource";
12
13
  </script>
13
14
 
14
15
  <script setup>
15
16
  const props = defineProps({
16
17
  trigger: { type: [String, Array, Boolean], required: false, default: ["mouseenter", "mouseover", "mousedown"] },
17
- aboveTheFold: { type: Boolean, required: false },
18
18
  apiKey: { type: String, required: false },
19
19
  center: { type: null, required: false },
20
- centerMarker: { type: Boolean, required: false, default: true },
20
+ zoom: { type: Number, required: false },
21
21
  mapOptions: { type: null, required: false },
22
22
  region: { type: String, required: false },
23
23
  language: { type: String, required: false },
24
24
  version: { type: String, required: false },
25
25
  width: { type: [Number, String], required: false, default: 640 },
26
26
  height: { type: [Number, String], required: false, default: 400 },
27
- placeholderOptions: { type: Object, required: false },
28
- placeholderAttrs: { type: Object, required: false },
29
27
  rootAttrs: { type: Object, required: false },
30
- markers: { type: Array, required: false },
31
28
  mapIds: { type: Object, required: false },
32
29
  colorMode: { type: String, required: false }
33
30
  });
34
31
  const emits = defineEmits(["ready", "error"]);
32
+ defineSlots();
35
33
  const apiKey = props.apiKey || scriptRuntimeConfig("googleMaps")?.apiKey;
36
34
  const runtimeConfig = useRuntimeConfig();
37
- const proxyConfig = runtimeConfig.public["nuxt-scripts"]?.googleStaticMapsProxy;
38
35
  const nuxtApp = tryUseNuxtApp();
39
36
  const nuxtColorMode = nuxtApp?.$colorMode;
40
37
  const currentColorMode = computed(() => {
@@ -50,8 +47,22 @@ const currentMapId = computed(() => {
50
47
  return props.mapIds[currentColorMode.value] || props.mapIds.light || props.mapOptions?.mapId;
51
48
  });
52
49
  const mapsApi = ref();
53
- if (import.meta.dev && !apiKey)
54
- throw new Error("GoogleMaps requires an API key. Please provide `apiKey` on the <ScriptGoogleMaps> or globally via `runtimeConfig.public.scripts.googleMaps.apiKey`.");
50
+ if (import.meta.dev) {
51
+ if (!apiKey)
52
+ 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).");
53
+ const attrs = useAttrs();
54
+ const removedProps = {
55
+ markers: "Use child <ScriptGoogleMapsMarker> components instead.",
56
+ centerMarker: 'Use a child <ScriptGoogleMapsMarker :position="center" /> instead.',
57
+ placeholderOptions: "Use <ScriptGoogleMapsStaticMap> inside the #placeholder slot instead.",
58
+ placeholderAttrs: "Use <ScriptGoogleMapsStaticMap> with :img-attrs instead.",
59
+ aboveTheFold: 'Use <ScriptGoogleMapsStaticMap loading="eager"> inside #placeholder instead.'
60
+ };
61
+ for (const [prop, message] of Object.entries(removedProps)) {
62
+ if (prop in attrs)
63
+ console.warn(`[nuxt-scripts] <ScriptGoogleMaps> prop "${prop}" was removed in v1. ${message} See https://scripts.nuxt.com/docs/migration-guide/v0-to-v1`);
64
+ }
65
+ }
55
66
  const rootEl = ref();
56
67
  const mapEl = ref();
57
68
  const centerOverride = ref();
@@ -67,66 +78,36 @@ const { load, status, onLoaded } = useScriptGoogleMaps({
67
78
  });
68
79
  const options = computed(() => {
69
80
  const mapId = props.mapOptions?.styles ? void 0 : currentMapId.value || "map";
70
- return defu({ center: centerOverride.value, mapId }, props.mapOptions, {
81
+ return defu({ center: centerOverride.value, mapId, zoom: props.zoom }, props.mapOptions, {
71
82
  center: props.center,
72
83
  zoom: 15
73
84
  });
74
85
  });
75
86
  const ready = ref(false);
76
87
  const map = shallowRef();
77
- const mapMarkers = ref(/* @__PURE__ */ new Map());
78
88
  function isLocationQuery(s) {
79
89
  return typeof s === "string" && (s.split(",").length > 2 || s.includes("+"));
80
90
  }
81
- function resetMapMarkerMap(_marker) {
82
- return new Promise(async (resolve) => {
83
- const marker = _marker instanceof Promise ? await _marker : _marker;
84
- if (marker) {
85
- marker.setMap(null);
86
- }
87
- resolve();
88
- });
89
- }
90
- function normalizeAdvancedMapMarkerOptions(_options) {
91
- const opts = typeof _options === "string" ? {
92
- position: {
93
- lat: Number.parseFloat(_options.split(",")[0] || "0"),
94
- lng: Number.parseFloat(_options.split(",")[1] || "0")
95
- }
96
- } : _options || {};
97
- if (!opts.position) {
98
- opts.position = {
99
- lat: 0,
100
- lng: 0
101
- };
102
- }
103
- return opts;
104
- }
105
- async function createAdvancedMapMarker(_options) {
106
- if (!_options)
107
- return;
108
- const normalizedOptions = normalizeAdvancedMapMarkerOptions(_options);
109
- const key = hash({ position: normalizedOptions.position });
110
- if (mapMarkers.value.has(key))
111
- return mapMarkers.value.get(key);
112
- const p = new Promise(async (resolve) => {
113
- const lib = await importLibrary("marker");
114
- const mapMarkerOptions = {
115
- ...toRaw(normalizedOptions),
116
- map: toRaw(map.value)
117
- };
118
- resolve(new lib.AdvancedMarkerElement(mapMarkerOptions));
119
- });
120
- mapMarkers.value.set(key, p);
121
- return p;
122
- }
123
91
  const queryToLatLngCache = /* @__PURE__ */ new Map();
124
- async function resolveQueryToLatLang(query) {
92
+ async function resolveQueryToLatLng(query) {
125
93
  if (query && typeof query === "object")
126
94
  return Promise.resolve(query);
127
95
  if (queryToLatLngCache.has(query)) {
128
96
  return Promise.resolve(queryToLatLngCache.get(query));
129
97
  }
98
+ const endpoints = runtimeConfig.public["nuxt-scripts"]?.endpoints;
99
+ if (endpoints?.googleMaps) {
100
+ const data = await $fetch(`${scriptsPrefix()}/proxy/google-maps-geocode`, {
101
+ params: { address: query }
102
+ });
103
+ if (data.status === "OK" && data.results?.[0]?.geometry?.location) {
104
+ const loc = data.results[0].geometry.location;
105
+ const latLng = { lat: loc.lat, lng: loc.lng };
106
+ queryToLatLngCache.set(query, latLng);
107
+ return latLng;
108
+ }
109
+ throw new Error(`No location found for ${query}`);
110
+ }
130
111
  return new Promise(async (resolve, reject) => {
131
112
  if (!mapsApi.value) {
132
113
  await load();
@@ -174,12 +155,21 @@ function importLibrary(key) {
174
155
  const googleMaps = {
175
156
  googleMaps: mapsApi,
176
157
  map,
177
- createAdvancedMapMarker,
178
- resolveQueryToLatLang,
158
+ resolveQueryToLatLng,
179
159
  importLibrary
180
160
  };
181
161
  defineExpose(googleMaps);
182
- provide(MAP_INJECTION_KEY, { map, mapsApi });
162
+ let activeInfoWindow;
163
+ provide(MAP_INJECTION_KEY, {
164
+ map,
165
+ mapsApi,
166
+ activateInfoWindow(iw) {
167
+ if (activeInfoWindow && activeInfoWindow !== iw) {
168
+ activeInfoWindow.close();
169
+ }
170
+ activeInfoWindow = iw;
171
+ }
172
+ });
183
173
  onMounted(() => {
184
174
  watch(ready, (v) => {
185
175
  if (v) {
@@ -194,58 +184,16 @@ onMounted(() => {
194
184
  watch(options, () => {
195
185
  map.value?.setOptions(options.value);
196
186
  });
197
- watch([() => props.markers, map], async () => {
198
- if (!map.value) {
199
- return;
200
- }
201
- const nextMap = new Map((props.markers || []).map((m) => [hash({ position: normalizeAdvancedMapMarkerOptions(m).position }), m]));
202
- const toRemove = new Set([
203
- ...mapMarkers.value.keys()
204
- ].filter((k) => !nextMap.has(k)));
205
- const toAdd = new Set([...nextMap.keys()].filter((k) => !mapMarkers.value.has(k)));
206
- const centerHash = hash({ position: options.value.center });
207
- for (const key of toRemove) {
208
- if (props.centerMarker && key === centerHash) {
209
- continue;
210
- }
211
- const marker = await mapMarkers.value.get(key);
212
- if (marker) {
213
- resetMapMarkerMap(marker).then(() => {
214
- mapMarkers.value.delete(key);
215
- });
216
- }
217
- }
218
- for (const k of toAdd) {
219
- createAdvancedMapMarker(nextMap.get(k));
220
- }
221
- }, {
222
- immediate: true,
223
- deep: true
224
- });
225
- watch([() => options.value.center, ready, map], async (next, prev) => {
187
+ watch([() => options.value.center, ready, map], async (next) => {
226
188
  if (!map.value) {
227
189
  return;
228
190
  }
229
191
  let center = toRaw(next[0]);
230
192
  if (center) {
231
193
  if (isLocationQuery(center) && ready.value) {
232
- center = await resolveQueryToLatLang(center);
194
+ center = await resolveQueryToLatLng(center);
233
195
  }
234
196
  map.value.setCenter(center);
235
- if (props.centerMarker) {
236
- if (options.value.mapId) {
237
- return;
238
- }
239
- if (prev[0]) {
240
- const prevCenterHash = hash({ position: prev[0] });
241
- if (mapMarkers.value.has(prevCenterHash)) {
242
- resetMapMarkerMap(mapMarkers.value.get(prevCenterHash)).then(() => {
243
- mapMarkers.value.delete(prevCenterHash);
244
- });
245
- }
246
- }
247
- createAdvancedMapMarker({ position: center });
248
- }
249
197
  }
250
198
  }, {
251
199
  immediate: true
@@ -260,115 +208,66 @@ onMounted(() => {
260
208
  };
261
209
  map.value = new mapsApi.value.Map(mapEl.value, _options);
262
210
  if (center && isLocationQuery(center)) {
263
- centerOverride.value = await resolveQueryToLatLang(center);
211
+ centerOverride.value = await resolveQueryToLatLng(center);
264
212
  map.value?.setCenter(centerOverride.value);
265
213
  }
266
214
  ready.value = true;
267
215
  });
268
216
  });
269
- if (import.meta.server && !proxyConfig?.enabled) {
217
+ if (import.meta.server) {
270
218
  useHead({
271
219
  link: [
272
220
  {
273
- rel: props.aboveTheFold ? "preconnect" : "dns-prefetch",
221
+ rel: "dns-prefetch",
274
222
  href: "https://maps.googleapis.com"
275
223
  }
276
224
  ]
277
225
  });
278
226
  }
279
- function transformMapStyles(styles) {
280
- return styles.map((style) => {
281
- const feature = style.featureType ? `feature:${style.featureType}` : "";
282
- const element = style.elementType ? `element:${style.elementType}` : "";
283
- const rules = (style.stylers || []).map((styler) => {
284
- return Object.entries(styler).map(([key, value]) => {
285
- if (key === "color" && typeof value === "string") {
286
- value = value.replace("#", "0x");
287
- }
288
- return `${key}:${value}`;
289
- }).join("|");
290
- }).filter(Boolean).join("|");
291
- return [feature, element, rules].filter(Boolean).join("|");
292
- }).filter(Boolean);
227
+ function toCssUnit(value) {
228
+ if (value === void 0)
229
+ return void 0;
230
+ if (typeof value === "number")
231
+ return `${value}px`;
232
+ return value;
233
+ }
234
+ function isPixelValue(value) {
235
+ if (typeof value === "number")
236
+ return true;
237
+ if (typeof value === "string")
238
+ return DIGITS_ONLY_RE.test(value) || DIGITS_PX_RE.test(value);
239
+ return false;
293
240
  }
294
- const placeholder = computed(() => {
295
- let center = options.value.center;
296
- if (center && typeof center === "object") {
297
- center = `${center.lat},${center.lng}`;
298
- }
299
- const placeholderOptions = defu(props.placeholderOptions, {
300
- // only map option values
301
- zoom: options.value.zoom,
302
- center
303
- }, {
304
- size: `${props.width}x${props.height}`,
305
- // Only include API key if not using proxy (proxy injects it server-side)
306
- key: proxyConfig?.enabled ? void 0 : apiKey,
307
- scale: 2,
308
- // we assume a high DPI to avoid hydration issues
309
- style: props.mapOptions?.styles ? transformMapStyles(props.mapOptions.styles) : void 0,
310
- map_id: currentMapId.value,
311
- markers: [
312
- ...props.markers || [],
313
- props.centerMarker && center
314
- ].filter(Boolean).map((m) => {
315
- if (typeof m === "object" && m.location) {
316
- m = m.location;
317
- }
318
- if (typeof m === "object" && m.lat) {
319
- return `${m.lat},${m.lng}`;
320
- }
321
- return m;
322
- }).join("|")
323
- });
324
- const baseUrl = proxyConfig?.enabled ? "/_scripts/google-static-maps-proxy" : "https://maps.googleapis.com/maps/api/staticmap";
325
- return withQuery(baseUrl, placeholderOptions);
326
- });
327
- const placeholderAttrs = computed(() => {
328
- return defu(props.placeholderAttrs, {
329
- src: placeholder.value,
330
- alt: "Google Maps Static Map",
331
- loading: props.aboveTheFold ? "eager" : "lazy",
332
- style: {
333
- cursor: "pointer",
334
- width: "100%",
335
- objectFit: "cover",
336
- height: "100%"
337
- }
338
- });
339
- });
340
241
  const rootAttrs = computed(() => {
341
242
  return defu(props.rootAttrs, {
342
243
  "aria-busy": status.value === "loading",
343
- "aria-label": status.value === "awaitingLoad" ? "Google Maps Static Map" : status.value === "loading" ? "Google Maps Map Embed Loading" : "Google Maps Embed",
244
+ "aria-label": status.value === "awaitingLoad" ? "Google Maps" : status.value === "loading" ? "Google Maps Loading" : "Google Maps",
344
245
  "aria-live": "polite",
345
246
  "role": "application",
346
247
  "style": {
347
248
  cursor: "pointer",
348
249
  position: "relative",
349
250
  maxWidth: "100%",
350
- width: `${props.width}px`,
351
- height: `'auto'`,
352
- aspectRatio: `${props.width}/${props.height}`
251
+ width: toCssUnit(props.width),
252
+ height: isPixelValue(props.width) && isPixelValue(props.height) ? "auto" : toCssUnit(props.height),
253
+ aspectRatio: isPixelValue(props.width) && isPixelValue(props.height) ? `${props.width}/${props.height}` : void 0
353
254
  },
354
255
  ...trigger instanceof Promise ? trigger.ssrAttrs || {} : {}
355
256
  });
356
257
  });
357
- onBeforeUnmount(async () => {
358
- await Promise.all([...mapMarkers.value.entries()].map(([, marker]) => resetMapMarkerMap(marker)));
359
- mapMarkers.value.clear();
258
+ onBeforeUnmount(() => {
360
259
  map.value?.unbindAll();
361
260
  map.value = void 0;
362
261
  mapEl.value?.firstChild?.remove();
262
+ libraries.clear();
263
+ queryToLatLngCache.clear();
363
264
  });
364
265
  </script>
365
266
 
366
267
  <template>
367
268
  <div ref="rootEl" v-bind="rootAttrs">
368
269
  <div v-show="ready" ref="mapEl" :style="{ width: '100%', height: '100%', maxWidth: '100%' }" />
369
- <slot v-if="!ready" :placeholder="placeholder" name="placeholder">
370
- <img v-bind="placeholderAttrs">
371
- </slot>
270
+ <slot v-if="!ready" name="placeholder" />
372
271
  <slot v-if="status !== 'awaitingLoad' && !ready" name="loading">
373
272
  <ScriptAriaLoadingIndicator />
374
273
  </slot>