@nuxt/scripts 0.11.13 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/B1l158TM.js +179 -0
- package/dist/client/_nuxt/CEpyMuZa.js +1 -0
- package/dist/client/_nuxt/CVO1_9PV.js +1 -0
- package/dist/client/_nuxt/Cp-IABpG.js +1 -0
- package/dist/client/_nuxt/D0r3Knsf.js +1 -0
- package/dist/client/_nuxt/DlfHMoPT.js +1 -0
- package/dist/client/_nuxt/DyLGGY9L.js +1 -0
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/ab2a05b7-9c93-484e-ae04-bd1f39e5f3c1.json +1 -0
- package/dist/client/_nuxt/entry.Bb8Z00UZ.css +1 -0
- package/dist/client/_nuxt/error-404.pWWosX5v.css +1 -0
- package/dist/client/_nuxt/error-500.DHpVpAn4.css +1 -0
- package/dist/client/_nuxt/n57rOy2v.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/module.d.mts +6 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +167 -42
- package/dist/registry.mjs +30 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +0 -0
- package/dist/runtime/components/{ScriptGoogleMaps.vue → GoogleMaps/ScriptGoogleMaps.vue} +17 -13
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +0 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +86 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +33 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +62 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +33 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +5 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +32 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +5 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +35 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +88 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +35 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +85 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +27 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +62 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +27 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +5 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +37 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +5 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +29 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +60 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +29 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +29 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +60 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +29 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +31 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +31 -0
- package/dist/runtime/components/ScriptAriaLoadingIndicator.d.vue.ts +2 -0
- package/dist/runtime/components/ScriptCarbonAds.d.vue.ts +32 -0
- package/dist/runtime/components/ScriptCrisp.d.vue.ts +44 -0
- package/dist/runtime/components/ScriptGoogleAdsense.d.vue.ts +37 -0
- package/dist/runtime/components/ScriptIntercom.d.vue.ts +45 -0
- package/dist/runtime/components/ScriptLemonSqueezy.d.vue.ts +24 -0
- package/dist/runtime/components/ScriptLoadingIndicator.d.vue.ts +9 -0
- package/dist/runtime/components/ScriptLoadingIndicator.vue.d.ts +1 -1
- package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +72 -0
- package/dist/runtime/components/ScriptPayPalButtons.vue +116 -0
- package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +72 -0
- package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +51 -0
- package/dist/runtime/components/ScriptPayPalMarks.vue +69 -0
- package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +51 -0
- package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +67 -0
- package/dist/runtime/components/ScriptPayPalMessages.vue +90 -0
- package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +67 -0
- package/dist/runtime/components/ScriptStripePricingTable.d.vue.ts +35 -0
- package/dist/runtime/components/ScriptStripePricingTable.vue +1 -1
- package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +127 -0
- package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +2 -2
- package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +66 -0
- package/dist/runtime/composables/useScript.js +35 -2
- package/dist/runtime/composables/useScriptEventPage.js +6 -2
- package/dist/runtime/composables/useScriptTriggerIdleTimeout.d.ts +10 -0
- package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +22 -0
- package/dist/runtime/composables/useScriptTriggerInteraction.d.ts +15 -0
- package/dist/runtime/composables/useScriptTriggerInteraction.js +35 -0
- package/dist/runtime/logger.d.ts +1 -0
- package/dist/runtime/logger.js +6 -0
- package/dist/runtime/registry/databuddy-analytics.d.ts +77 -0
- package/dist/runtime/registry/databuddy-analytics.js +103 -0
- package/dist/runtime/registry/google-analytics.d.ts +1 -1
- package/dist/runtime/registry/google-analytics.js +5 -5
- package/dist/runtime/registry/google-tag-manager.js +3 -5
- package/dist/runtime/registry/matomo-analytics.d.ts +1 -0
- package/dist/runtime/registry/matomo-analytics.js +27 -4
- package/dist/runtime/registry/paypal.d.ts +34 -0
- package/dist/runtime/registry/paypal.js +86 -0
- package/dist/runtime/registry/reddit-pixel.d.ts +18 -0
- package/dist/runtime/registry/reddit-pixel.js +36 -0
- package/dist/runtime/registry/stripe.d.ts +2 -2
- package/dist/runtime/registry/stripe.js +1 -1
- package/dist/runtime/types.d.ts +18 -7
- package/dist/runtime/utils.d.ts +5 -2
- package/dist/runtime/utils.js +49 -19
- package/package.json +26 -19
- package/dist/client/_nuxt/1mHV-1pA.js +0 -1
- package/dist/client/_nuxt/7VVldQq3.js +0 -1
- package/dist/client/_nuxt/CQGAJOTU.js +0 -21
- package/dist/client/_nuxt/CYHtqd0e.js +0 -1
- package/dist/client/_nuxt/builds/meta/8ed6dba0-c6c1-426f-804b-f7cbe9d62b69.json +0 -1
- package/dist/client/_nuxt/entry.tbizjOMR.css +0 -1
- package/dist/client/_nuxt/error-404.CDmSTChJ.css +0 -1
- package/dist/client/_nuxt/error-500.DpcyFY5F.css +0 -1
- package/dist/runtime/components/ScriptGoogleMaps.vue.d.ts +0 -145
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--nui-c-context:125,125,125}html{background-color:#fff}html.dark{background-color:#151515;color:#fff;color-scheme:dark}::-moz-selection{background:#8884}::selection{background:#8884}.shiki .line{display:inline-block;position:relative;width:100%}.shiki.diff .line>span{filter:saturate(.75);opacity:.75}.shiki.diff .line-added,.shiki.diff .line-removed{scroll-margin:5em}.shiki.diff .line-added>span,.shiki.diff .line-removed>span{opacity:1!important;position:inherit;scroll-margin:20px;z-index:100}.shiki.diff .line-added>span{color:#218c3b!important}.shiki.diff .line-removed>span{color:#d15547!important}.shiki .line-added:after{background-color:#43885420}.shiki .line-added:after,.shiki .line-removed:after{content:"";display:block;inset:0;position:absolute}.shiki .line-removed:after{background-color:#8f4c3926}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2147483646}.dark::view-transition-old(root){z-index:2147483646}.dark::view-transition-new(root){z-index:1}*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}:host,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;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthSQBK6PYK3EXw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthqQBK6PYK0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRR232RmYJp8I5zzw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRSW32RmYJp8I5.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}*,: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: }::backdrop{--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: }.carbon\:book{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M19 10h7v2h-7zm0 5h7v2h-7zm0 5h7v2h-7zM6 10h7v2H6zm0 5h7v2H6zm0 5h7v2H6z'/%3E%3Cpath fill='currentColor' d='M28 5H4a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2M4 7h11v18H4Zm13 18V7h11v18Z'/%3E%3C/svg%3E")}.carbon\:book,.carbon\:catalog{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:catalog{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26 2H8a2 2 0 0 0-2 2v4H4v2h2v5H4v2h2v5H4v2h2v4a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2m0 26H8v-4h2v-2H8v-5h2v-2H8v-5h2V8H8V4h18Z'/%3E%3Cpath fill='currentColor' d='M14 8h8v2h-8zm0 7h8v2h-8zm0 7h8v2h-8z'/%3E%3C/svg%3E")}.carbon\:script{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m18.83 26l2.58-2.58L20 22l-4 4l4 4l1.42-1.41zm8.34 0l-2.58 2.58L26 30l4-4l-4-4l-1.42 1.41z'/%3E%3Cpath fill='currentColor' d='M14 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v6h2v-8a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h6Zm4-23.6l5.6 5.6H18Z'/%3E%3C/svg%3E")}.carbon\:script,.i-carbon\:arrow-up-right,[i-carbon\:arrow-up-right=""]{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.i-carbon\:arrow-up-right,[i-carbon\:arrow-up-right=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M10 6v2h12.59L6 24.59L7.41 26L24 9.41V22h2V6z'/%3E%3C/svg%3E")}.logos\:github-icon{background:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 250' display='inline-block' vertical-align='middle' width='1.24em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='%23161614' d='M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46c6.397 1.185 8.746-2.777 8.746-6.158c0-3.052-.12-13.135-.174-23.83c-35.61 7.742-43.124-15.103-43.124-15.103c-5.823-14.795-14.213-18.73-14.213-18.73c-11.613-7.944.876-7.78.876-7.78c12.853.902 19.621 13.19 19.621 13.19c11.417 19.568 29.945 13.911 37.249 10.64c1.149-8.272 4.466-13.92 8.127-17.116c-28.431-3.236-58.318-14.212-58.318-63.258c0-13.975 5-25.394 13.188-34.358c-1.329-3.224-5.71-16.242 1.24-33.874c0 0 10.749-3.44 35.21 13.121c10.21-2.836 21.16-4.258 32.038-4.307c10.878.049 21.837 1.47 32.066 4.307c24.431-16.56 35.165-13.12 35.165-13.12c6.967 17.63 2.584 30.65 1.255 33.873c8.207 8.964 13.173 20.383 13.173 34.358c0 49.163-29.944 59.988-58.447 63.157c4.591 3.972 8.682 11.762 8.682 23.704c0 17.126-.148 30.91-.148 35.126c0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002C256 57.307 198.691 0 128.001 0m-80.06 182.34c-.282.636-1.283.827-2.194.39c-.929-.417-1.45-1.284-1.15-1.922c.276-.655 1.279-.838 2.205-.399c.93.418 1.46 1.293 1.139 1.931m6.296 5.618c-.61.566-1.804.303-2.614-.591c-.837-.892-.994-2.086-.375-2.66c.63-.566 1.787-.301 2.626.591c.838.903 1 2.088.363 2.66m4.32 7.188c-.785.545-2.067.034-2.86-1.104c-.784-1.138-.784-2.503.017-3.05c.795-.547 2.058-.055 2.861 1.075c.782 1.157.782 2.522-.019 3.08m7.304 8.325c-.701.774-2.196.566-3.29-.49c-1.119-1.032-1.43-2.496-.726-3.27c.71-.776 2.213-.558 3.315.49c1.11 1.03 1.45 2.505.701 3.27m9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033c-1.448-.439-2.395-1.613-2.103-2.626c.301-1.01 1.747-1.484 3.207-1.028c1.446.436 2.396 1.602 2.095 2.622m10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95c-1.53.034-2.769-.82-2.786-1.86c0-1.065 1.202-1.932 2.733-1.958c1.522-.03 2.768.818 2.768 1.868m10.555-.405c.182 1.03-.875 2.088-2.387 2.37c-1.485.271-2.861-.365-3.05-1.386c-.184-1.056.893-2.114 2.376-2.387c1.514-.263 2.868.356 3.061 1.403'/%3E%3C/svg%3E") no-repeat;background-color:transparent;background-size:100% 100%;display:inline-block;height:1.2em;vertical-align:middle;width:1.24em}.n-badge{background-color:rgba(var(--nui-c-context),.1);border-radius:.25rem;font-size:.75rem;line-height:1rem;margin-left:.125rem;margin-right:.125rem;padding:.125rem .375rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity))}.n-button-icon{font-size:1.1em;margin-left:-.2em;margin-right:.2em}.n-icon-button{align-items:center;aspect-ratio:1/1;border-radius:.25rem;display:flex;height:1.6em;justify-content:center;opacity:.5;width:1.6em}.n-button-base{align-items:center;border-color:#9ca3af33;border-radius:.25rem;border-width:1px;display:inline-flex;gap:.25rem;opacity:.8;padding:.25em 1em;touch-action:manipulation;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color,rgba(0,0,0,.05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);outline:2px solid transparent!important;outline-offset:2px!important}.n-icon{flex:none}.n-border-base{border-color:#9ca3af33}.hover\:n-button-hover:hover{--un-border-opacity:1!important;border-color:rgba(var(--nui-c-context),var(--un-border-opacity))!important;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity));opacity:1}.n-bg-active{background-color:#9ca3af0d}.dark .n-bg-base{--un-bg-opacity:1;background-color:rgb(21 21 21/var(--un-bg-opacity))}.n-bg-base,.n-code-block{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.dark .n-code-block{--un-bg-opacity:1;background-color:rgb(18 18 18/var(--un-bg-opacity))}.hover\:n-bg-active:hover,.n-icon-button:hover{background-color:#9ca3af0d}.n-icon-button:hover{opacity:1}.active\:n-button-active:active{background-color:rgba(var(--nui-c-context),.05);--un-ring-width:3px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.1)}.hover\:n-link-hover:hover{--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity));-webkit-text-decoration-color:rgba(var(--nui-c-context),var(--un-line-opacity))!important;--un-line-opacity:1!important;opacity:1!important;text-decoration-color:rgba(var(--nui-c-context),var(--un-line-opacity))!important;text-decoration-style:dotted}.n-link-base{text-decoration-color:#0003;text-decoration-line:underline;text-underline-offset:2px}.dark .n-link-base{text-decoration-color:#fff6}.focus-visible\:n-focus-base:focus-visible{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.5)}.n-transition{transition-duration:.15s;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.absolute,.sr-only{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.top-6{top:1.5rem}.z-10{z-index:10}.z-2{z-index:2}.grid{display:grid}.m0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-2,.mb2,[mb2=""]{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml--1px{margin-left:-1px}.ml-2{margin-left:.5rem}.mr-\[2px\]{margin-right:2px}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.hidden{display:none}.h-2,.h2{height:.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-auto{height:auto}.h-full{height:100%}.h1{height:.25rem}.h3{height:.75rem}.max-h-full{max-height:100%}.max-w-520px{max-width:520px}.max-w-6{max-width:1.5rem}.max-w-8{max-width:2rem}.min-h-screen{min-height:100vh}.w-2{width:.5rem}.w-4{width:1rem}.w-full{width:100%}.flex,[flex=""]{display:flex}.flex-inline,.inline-flex{display:inline-flex}.flex-1{flex:1 1 0%}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.translate-y--1,[translate-y--1=""]{--un-translate-y:-.25rem;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end,[items-end=""]{align-items:flex-end}.items-center,[items-center=""]{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5,[gap-1\.5=""]{gap:.375rem}.gap-2,[gap-2=""]{gap:.5rem}.gap-3{gap:.75rem}.gap-7{gap:1.75rem}.space-x-3>:not([hidden])~:not([hidden]){--un-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--un-space-x-reverse)));margin-right:calc(.75rem*var(--un-space-x-reverse))}.space-x-5>:not([hidden])~:not([hidden]){--un-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--un-space-x-reverse)));margin-right:calc(1.25rem*var(--un-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(.5rem*var(--un-space-y-reverse));margin-top:calc(.5rem*(1 - var(--un-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(.75rem*var(--un-space-y-reverse));margin-top:calc(.75rem*(1 - var(--un-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(1rem*var(--un-space-y-reverse));margin-top:calc(1rem*(1 - var(--un-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.border{border-width:1px}.border-b-0{border-bottom-width:0}.border-l{border-left-width:1px}.border-black\/5{border-color:#0000000d}.dark .dark\:border-white\/10{border-color:#ffffff1a}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border-none{border-style:none}.bg-blue-100{--un-bg-opacity:1;background-color:rgb(219 234 254/var(--un-bg-opacity))}.bg-blue-500{--un-bg-opacity:1;background-color:rgb(59 130 246/var(--un-bg-opacity))}.bg-gray-100{--un-bg-opacity:1;background-color:rgb(243 244 246/var(--un-bg-opacity))}.bg-gray-400{--un-bg-opacity:1;background-color:rgb(156 163 175/var(--un-bg-opacity))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-green-50{--un-bg-opacity:1;background-color:rgb(240 253 244/var(--un-bg-opacity))}.bg-green-500{--un-bg-opacity:1;background-color:rgb(34 197 94/var(--un-bg-opacity))}.bg-light-200{--un-bg-opacity:1;background-color:rgb(250 250 250/var(--un-bg-opacity))}.bg-neutral-700{--un-bg-opacity:1;background-color:rgb(64 64 64/var(--un-bg-opacity))}.bg-purple-100{--un-bg-opacity:1;background-color:rgb(243 232 255/var(--un-bg-opacity))}.bg-red-100{--un-bg-opacity:1;background-color:rgb(254 226 226/var(--un-bg-opacity))}.bg-red-500{--un-bg-opacity:1;background-color:rgb(239 68 68/var(--un-bg-opacity))}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.bg-yellow-100{--un-bg-opacity:1;background-color:rgb(254 249 195/var(--un-bg-opacity))}.bg-yellow-500{--un-bg-opacity:1;background-color:rgb(234 179 8/var(--un-bg-opacity))}.dark .dark\:bg-\[\#020420\]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark .dark\:bg-black{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark .dark\:bg-blue-900{--un-bg-opacity:1;background-color:rgb(30 58 138/var(--un-bg-opacity))}.dark .dark\:bg-dark-700{--un-bg-opacity:1;background-color:rgb(27 27 27/var(--un-bg-opacity))}.dark .dark\:bg-white\/5{background-color:#ffffff0d}.dark .dark\:hover\:bg-gray-800:hover{--un-bg-opacity:1;background-color:rgb(31 41 55/var(--un-bg-opacity))}.hover\:bg-gray-50:hover{--un-bg-opacity:1;background-color:rgb(249 250 251/var(--un-bg-opacity))}.hover\:bg-gray-800\/50:hover{background-color:#1f293780}.p-3{padding:.75rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-\[2px\]{padding-bottom:2px;padding-top:2px}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.pt-12{padding-top:3rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-\[80px\]{font-size:80px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg,[text-lg=""]{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl,[text-xl=""]{font-size:1.25rem;line-height:1.75rem}.text-xs,[text-xs=""]{font-size:.75rem;line-height:1rem}.dark .dark\:text-blue-300,.text-blue-300{--un-text-opacity:1;color:rgb(147 197 253/var(--un-text-opacity))}.dark .dark\:text-blue-400{--un-text-opacity:1;color:rgb(96 165 250/var(--un-text-opacity))}.dark .dark\:text-gray-400{--un-text-opacity:1;color:rgb(156 163 175/var(--un-text-opacity))}.dark .dark\:text-white,.dark [dark\:text-white=""]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}.text-\[\#020420\]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.text-black,[text-black=""]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.text-blue-600{--un-text-opacity:1;color:rgb(37 99 235/var(--un-text-opacity))}.text-blue-700{--un-text-opacity:1;color:rgb(29 78 216/var(--un-text-opacity))}.text-gray-500{--un-text-opacity:1;color:rgb(107 114 128/var(--un-text-opacity))}.text-gray-600{--un-text-opacity:1;color:rgb(75 85 99/var(--un-text-opacity))}.text-gray-700{--un-text-opacity:1;color:rgb(55 65 81/var(--un-text-opacity))}.text-green-300{--un-text-opacity:1;color:rgb(134 239 172/var(--un-text-opacity))}.text-green-700{--un-text-opacity:1;color:rgb(21 128 61/var(--un-text-opacity))}.text-neutral-300{--un-text-opacity:1;color:rgb(212 212 212/var(--un-text-opacity))}.text-purple-700{--un-text-opacity:1;color:rgb(126 34 206/var(--un-text-opacity))}.text-red-700{--un-text-opacity:1;color:rgb(185 28 28/var(--un-text-opacity))}.text-yellow-700{--un-text-opacity:1;color:rgb(161 98 7/var(--un-text-opacity))}.dark .dark\:hover\:text-blue-300:hover{--un-text-opacity:1;color:rgb(147 197 253/var(--un-text-opacity))}.hover\:text-\[\#00DC82\]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.hover\:text-blue-800:hover{--un-text-opacity:1;color:rgb(30 64 175/var(--un-text-opacity))}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold,[font-semibold=""]{font-weight:600}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.font-mono{font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:DM Sans,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}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.tabular-nums{--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)}.hover\:underline:hover,.underline{text-decoration-line:underline}.underline-offset-3{text-underline-offset:3px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.op-0\.1{opacity:.001}.op35{opacity:.35}.op50,.opacity-50,[op50=""]{opacity:.5}.opacity-40{opacity:.4}.opacity-80{opacity:.8}.hover\:opacity-70:hover{opacity:.7}.backdrop-blur-lg{--un-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.n-disabled\:n-disabled[disabled],[disabled] .n-disabled\:n-disabled{filter:saturate(0);opacity:.6;pointer-events:none}@media (min-width:640px){.sm\:right-6{right:1.5rem}.sm\:text-\[110px\]{font-size:110px}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-8xl{font-size:6rem;line-height:1}}@media (min-width:1024px){.lg\:flex{display:flex}}.n-code-block-lines .shiki code .line:before{display:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.grid[data-v-f5e4c931]{display:grid}.mb-2[data-v-f5e4c931]{margin-bottom:.5rem}.mb-4[data-v-f5e4c931]{margin-bottom:1rem}.max-w-520px[data-v-f5e4c931]{max-width:520px}.min-h-screen[data-v-f5e4c931]{min-height:100vh}.w-full[data-v-f5e4c931]{width:100%}.flex[data-v-f5e4c931]{display:flex}.place-content-center[data-v-f5e4c931]{place-content:center}.items-center[data-v-f5e4c931]{align-items:center}.justify-center[data-v-f5e4c931]{justify-content:center}.overflow-hidden[data-v-f5e4c931]{overflow:hidden}.bg-white[data-v-f5e4c931]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-f5e4c931]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-f5e4c931]{text-align:center}.text-\[80px\][data-v-f5e4c931]{font-size:80px}.text-2xl[data-v-f5e4c931]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-f5e4c931]{font-size:.875rem;line-height:1.25rem}.text-\[\#020420\][data-v-f5e4c931]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-f5e4c931]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.hover\:text-\[\#00DC82\][data-v-f5e4c931]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-medium[data-v-f5e4c931]{font-weight:500}.font-semibold[data-v-f5e4c931]{font-weight:600}.leading-none[data-v-f5e4c931]{line-height:1}.tracking-wide[data-v-f5e4c931]{letter-spacing:.025em}.font-sans[data-v-f5e4c931]{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-f5e4c931]{--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-f5e4c931]{text-decoration-line:underline}.underline-offset-3[data-v-f5e4c931]{text-underline-offset:3px}.antialiased[data-v-f5e4c931]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-f5e4c931]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-f5e4c931]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:text-\[110px\][data-v-f5e4c931]{font-size:110px}.sm\:text-3xl[data-v-f5e4c931]{font-size:1.875rem;line-height:2.25rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.grid[data-v-8f129e28]{display:grid}.mb-2[data-v-8f129e28]{margin-bottom:.5rem}.mb-4[data-v-8f129e28]{margin-bottom:1rem}.max-w-520px[data-v-8f129e28]{max-width:520px}.min-h-screen[data-v-8f129e28]{min-height:100vh}.place-content-center[data-v-8f129e28]{place-content:center}.overflow-hidden[data-v-8f129e28]{overflow:hidden}.bg-white[data-v-8f129e28]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-8f129e28]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-8f129e28]{text-align:center}.text-\[80px\][data-v-8f129e28]{font-size:80px}.text-2xl[data-v-8f129e28]{font-size:1.5rem;line-height:2rem}.text-\[\#020420\][data-v-8f129e28]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-8f129e28]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-8f129e28]{font-weight:600}.leading-none[data-v-8f129e28]{line-height:1}.tracking-wide[data-v-8f129e28]{letter-spacing:.025em}.font-sans[data-v-8f129e28]{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-8f129e28]{--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-8f129e28]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-8f129e28]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-8f129e28]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:text-\[110px\][data-v-8f129e28]{font-size:110px}.sm\:text-3xl[data-v-8f129e28]{font-size:1.875rem;line-height:2.25rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as a,f as s,h as u,i as r,g as o}from"#entry";function i(e){const n=e||s();return n.ssrContext?.head||n.runWithContext(()=>{if(u()){const t=r(o);if(!t)throw new Error("[nuxt] [unhead] Missing Unhead instance.");return t}})}function c(e,n={}){const t=i(n.nuxt);return a(e,{head:t,...n})}export{c as u};
|
package/dist/client/index.html
CHANGED
|
@@ -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.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-scripts/_nuxt/B1l158TM.js"}}</script><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.Bb8Z00UZ.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/B1l158TM.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CVO1_9PV.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/D0r3Knsf.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Cp-IABpG.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DlfHMoPT.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-404.pWWosX5v.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/CEpyMuZa.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/n57rOy2v.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-scripts/_nuxt/error-500.DHpVpAn4.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-scripts/_nuxt/DyLGGY9L.js"><script type="module" src="/__nuxt-scripts/_nuxt/B1l158TM.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1758773952673,false]</script><script>window.__NUXT__={};window.__NUXT__.config={public:{"nuxt-scripts":{version:"",defaultScriptOptions:{trigger:"onNuxtReady"}}},app:{baseURL:"/__nuxt-scripts",buildId:"ab2a05b7-9c93-484e-ae04-bd1f39e5f3c1",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/module.d.mts
CHANGED
|
@@ -38,6 +38,12 @@ interface ModuleOptions {
|
|
|
38
38
|
* Configure the fetch options used for downloading scripts.
|
|
39
39
|
*/
|
|
40
40
|
fetchOptions?: FetchOptions;
|
|
41
|
+
/**
|
|
42
|
+
* Cache duration for bundled scripts in milliseconds.
|
|
43
|
+
* Scripts older than this will be re-downloaded during builds.
|
|
44
|
+
* @default 604800000 (7 days)
|
|
45
|
+
*/
|
|
46
|
+
cacheMaxAge?: number;
|
|
41
47
|
};
|
|
42
48
|
/**
|
|
43
49
|
* Whether the module is enabled.
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useNuxt, useLogger, addDevServerHandler, tryUseNuxt, logger as logger$1, defineNuxtModule, createResolver, addImports, addComponentsDir, addTypeTemplate, addPluginTemplate, addBuildPlugin, hasNuxtModule } from '@nuxt/kit';
|
|
2
|
+
import { defu } from 'defu';
|
|
2
3
|
import { resolvePackageJSON, readPackageJSON } from 'pkg-types';
|
|
3
4
|
import { existsSync } from 'node:fs';
|
|
4
5
|
import fsp from 'node:fs/promises';
|
|
@@ -11,7 +12,6 @@ import { join, resolve, relative } from 'pathe';
|
|
|
11
12
|
import { colors } from 'consola/utils';
|
|
12
13
|
import { fetch, $fetch } from 'ofetch';
|
|
13
14
|
import { lazyEventHandler, eventHandler, createError } from 'h3';
|
|
14
|
-
import { defu } from 'defu';
|
|
15
15
|
import { createStorage } from 'unstorage';
|
|
16
16
|
import fsDriver from 'unstorage/drivers/fs-lite';
|
|
17
17
|
import { pathToFileURL } from 'node:url';
|
|
@@ -148,6 +148,15 @@ function isJS(id) {
|
|
|
148
148
|
return JS_RE.test(pathname);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
const SEVEN_DAYS_IN_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
152
|
+
async function isCacheExpired(storage, filename, cacheMaxAge = SEVEN_DAYS_IN_MS) {
|
|
153
|
+
const metaKey = `bundle-meta:${filename}`;
|
|
154
|
+
const meta = await storage.getItem(metaKey);
|
|
155
|
+
if (!meta || !meta.timestamp) {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
return Date.now() - meta.timestamp > cacheMaxAge;
|
|
159
|
+
}
|
|
151
160
|
function normalizeScriptData(src, assetsBaseURL = "/_scripts") {
|
|
152
161
|
if (hasProtocol(src, { acceptRelative: true })) {
|
|
153
162
|
src = src.replace(/^\/\//, "https://");
|
|
@@ -163,8 +172,8 @@ function normalizeScriptData(src, assetsBaseURL = "/_scripts") {
|
|
|
163
172
|
}
|
|
164
173
|
return { url: src };
|
|
165
174
|
}
|
|
166
|
-
async function downloadScript(opts, renderedScript, fetchOptions) {
|
|
167
|
-
const { src, url, filename } = opts;
|
|
175
|
+
async function downloadScript(opts, renderedScript, fetchOptions, cacheMaxAge) {
|
|
176
|
+
const { src, url, filename, forceDownload } = opts;
|
|
168
177
|
if (src === url || !filename) {
|
|
169
178
|
return;
|
|
170
179
|
}
|
|
@@ -172,8 +181,10 @@ async function downloadScript(opts, renderedScript, fetchOptions) {
|
|
|
172
181
|
const scriptContent = renderedScript.get(src);
|
|
173
182
|
let res = scriptContent instanceof Error ? void 0 : scriptContent?.content;
|
|
174
183
|
if (!res) {
|
|
175
|
-
|
|
176
|
-
|
|
184
|
+
const cacheKey = `bundle:${filename}`;
|
|
185
|
+
const shouldUseCache = !forceDownload && await storage.hasItem(cacheKey) && !await isCacheExpired(storage, filename, cacheMaxAge);
|
|
186
|
+
if (shouldUseCache) {
|
|
187
|
+
const res2 = await storage.getItemRaw(cacheKey);
|
|
177
188
|
renderedScript.set(url, {
|
|
178
189
|
content: res2,
|
|
179
190
|
size: res2.length / 1024,
|
|
@@ -187,7 +198,7 @@ async function downloadScript(opts, renderedScript, fetchOptions) {
|
|
|
187
198
|
let size = 0;
|
|
188
199
|
res = await $fetch.raw(src, { ...fetchOptions, responseType: "arrayBuffer" }).then(async (r) => {
|
|
189
200
|
if (!r.ok) {
|
|
190
|
-
throw new Error(`Failed to fetch ${src}`);
|
|
201
|
+
throw new Error(`Failed to fetch ${src} (HTTP ${r.status})`);
|
|
191
202
|
}
|
|
192
203
|
encoding = r.headers.get("content-encoding");
|
|
193
204
|
const contentLength = r.headers.get("content-length");
|
|
@@ -195,6 +206,11 @@ async function downloadScript(opts, renderedScript, fetchOptions) {
|
|
|
195
206
|
return Buffer.from(r._data || await r.arrayBuffer());
|
|
196
207
|
});
|
|
197
208
|
await storage.setItemRaw(`bundle:${filename}`, res);
|
|
209
|
+
await storage.setItem(`bundle-meta:${filename}`, {
|
|
210
|
+
timestamp: Date.now(),
|
|
211
|
+
src,
|
|
212
|
+
filename
|
|
213
|
+
});
|
|
198
214
|
size = size || res.length / 1024;
|
|
199
215
|
logger.info(`Downloading script ${colors.gray(`${src} \u2192 ${filename} (${size.toFixed(2)} kB ${encoding})`)}`);
|
|
200
216
|
renderedScript.set(url, {
|
|
@@ -213,6 +229,9 @@ function NuxtScriptBundleTransformer(options = {
|
|
|
213
229
|
const { renderedScript = /* @__PURE__ */ new Map() } = options;
|
|
214
230
|
const cacheDir = join(nuxt.options.buildDir, "cache", "scripts");
|
|
215
231
|
nuxt.hooks.hook("build:done", async () => {
|
|
232
|
+
if (nuxt.options._prepare) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
216
235
|
const scripts = [...renderedScript];
|
|
217
236
|
if (!scripts.length) {
|
|
218
237
|
logger.debug("[bundle-script-transformer] No scripts to bundle...");
|
|
@@ -268,11 +287,14 @@ function NuxtScriptBundleTransformer(options = {
|
|
|
268
287
|
}
|
|
269
288
|
if (!registryNode.scriptBundling && !registryNode.src)
|
|
270
289
|
return;
|
|
290
|
+
const baseName = fnName.replace(/^useScript/, "");
|
|
291
|
+
const registryKey = baseName.length > 0 ? baseName.charAt(0).toLowerCase() + baseName.slice(1) : "";
|
|
292
|
+
const registryConfig = options.registryConfig?.[registryKey] || {};
|
|
293
|
+
const fnArg0 = {};
|
|
271
294
|
if (node.arguments[0]?.type === "ObjectExpression") {
|
|
272
295
|
const optionsNode = node.arguments[0];
|
|
273
|
-
const fnArg0 = {};
|
|
274
296
|
for (const prop of optionsNode.properties) {
|
|
275
|
-
if (prop.type === "Property" && prop.value.type === "Literal")
|
|
297
|
+
if (prop.type === "Property" && prop.value.type === "Literal" && prop.key && "name" in prop.key)
|
|
276
298
|
fnArg0[prop.key.name] = prop.value.value;
|
|
277
299
|
}
|
|
278
300
|
const srcProperty = node.arguments[0].properties.find(
|
|
@@ -280,17 +302,39 @@ function NuxtScriptBundleTransformer(options = {
|
|
|
280
302
|
);
|
|
281
303
|
if (srcProperty?.value?.value) {
|
|
282
304
|
scriptSrcNode = srcProperty?.value;
|
|
283
|
-
} else {
|
|
284
|
-
src = registryNode.scriptBundling && registryNode.scriptBundling(fnArg0);
|
|
285
|
-
if (src === false)
|
|
286
|
-
return;
|
|
287
305
|
}
|
|
288
306
|
}
|
|
307
|
+
if (!scriptSrcNode) {
|
|
308
|
+
const mergedOptions = { ...registryConfig, ...fnArg0 };
|
|
309
|
+
src = registryNode.scriptBundling && registryNode.scriptBundling(mergedOptions);
|
|
310
|
+
if (src === false)
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
if (!scriptSrcNode && !src) {
|
|
315
|
+
const hasBundleOption = node.arguments[1]?.type === "ObjectExpression" && node.arguments[1].properties.some(
|
|
316
|
+
(p) => (p.key?.name === "bundle" || p.key?.value === "bundle") && p.type === "Property"
|
|
317
|
+
);
|
|
318
|
+
if (hasBundleOption) {
|
|
319
|
+
const scriptOptionsArg = node.arguments[1];
|
|
320
|
+
const bundleProperty = scriptOptionsArg.properties.find(
|
|
321
|
+
(p) => (p.key?.name === "bundle" || p.key?.value === "bundle") && p.type === "Property"
|
|
322
|
+
);
|
|
323
|
+
if (bundleProperty && bundleProperty.value.type === "Literal") {
|
|
324
|
+
const bundleValue = bundleProperty.value.value;
|
|
325
|
+
if (bundleValue === true || bundleValue === "force" || String(bundleValue) === "true") {
|
|
326
|
+
const valueNode = bundleProperty.value;
|
|
327
|
+
s.overwrite(valueNode.start, valueNode.end, `'unsupported'`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return;
|
|
289
332
|
}
|
|
290
333
|
if (scriptSrcNode || src) {
|
|
291
334
|
src = src || (typeof scriptSrcNode?.value === "string" ? scriptSrcNode?.value : false);
|
|
292
335
|
if (src) {
|
|
293
|
-
let canBundle =
|
|
336
|
+
let canBundle = options.defaultBundle === true || options.defaultBundle === "force";
|
|
337
|
+
let forceDownload = options.defaultBundle === "force";
|
|
294
338
|
if (node.arguments[1]?.type === "ObjectExpression") {
|
|
295
339
|
const scriptOptionsArg = node.arguments[1];
|
|
296
340
|
const bundleProperty = scriptOptionsArg.properties.find(
|
|
@@ -298,7 +342,8 @@ function NuxtScriptBundleTransformer(options = {
|
|
|
298
342
|
);
|
|
299
343
|
if (bundleProperty && bundleProperty.value.type === "Literal") {
|
|
300
344
|
const value = bundleProperty.value;
|
|
301
|
-
|
|
345
|
+
const bundleValue = value.value;
|
|
346
|
+
if (bundleValue !== true && bundleValue !== "force" && String(bundleValue) !== "true") {
|
|
302
347
|
canBundle = false;
|
|
303
348
|
return;
|
|
304
349
|
}
|
|
@@ -311,25 +356,35 @@ function NuxtScriptBundleTransformer(options = {
|
|
|
311
356
|
s.remove(bundleProperty.start, nextProperty ? nextProperty.start : bundleProperty.end);
|
|
312
357
|
}
|
|
313
358
|
canBundle = true;
|
|
359
|
+
forceDownload = bundleValue === "force";
|
|
314
360
|
}
|
|
315
361
|
}
|
|
316
|
-
const scriptOptions = node.arguments[0]
|
|
362
|
+
const scriptOptions = node.arguments[0]?.properties?.find(
|
|
317
363
|
(p) => p.key?.name === "scriptOptions"
|
|
318
364
|
);
|
|
319
365
|
const bundleOption = scriptOptions?.value.properties?.find((prop) => {
|
|
320
366
|
return prop.type === "Property" && prop.key?.name === "bundle" && prop.value.type === "Literal";
|
|
321
367
|
});
|
|
322
|
-
|
|
368
|
+
if (bundleOption) {
|
|
369
|
+
const bundleValue = bundleOption.value.value;
|
|
370
|
+
canBundle = bundleValue === true || bundleValue === "force" || String(bundleValue) === "true";
|
|
371
|
+
forceDownload = bundleValue === "force";
|
|
372
|
+
}
|
|
323
373
|
if (canBundle) {
|
|
324
374
|
const { url: _url, filename } = normalizeScriptData(src, options.assetsBaseURL);
|
|
325
375
|
let url = _url;
|
|
326
376
|
try {
|
|
327
|
-
await downloadScript({ src, url, filename }, renderedScript, options.fetchOptions);
|
|
377
|
+
await downloadScript({ src, url, filename, forceDownload }, renderedScript, options.fetchOptions, options.cacheMaxAge);
|
|
328
378
|
} catch (e) {
|
|
329
379
|
if (options.fallbackOnSrcOnBundleFail) {
|
|
330
380
|
logger.warn(`[Nuxt Scripts: Bundle Transformer] Failed to bundle ${src}. Fallback to remote loading.`);
|
|
331
381
|
url = src;
|
|
332
382
|
} else {
|
|
383
|
+
const errorMessage = e?.message || "Unknown error";
|
|
384
|
+
if (errorMessage.includes("timeout") || errorMessage.includes("network") || errorMessage.includes("ENOTFOUND")) {
|
|
385
|
+
logger.error(`[Nuxt Scripts: Bundle Transformer] Network issue while bundling ${src}: ${errorMessage}`);
|
|
386
|
+
logger.error(`[Nuxt Scripts: Bundle Transformer] Tip: Set 'fallbackOnSrcOnBundleFail: true' in module options or disable bundling in Docker environments`);
|
|
387
|
+
}
|
|
333
388
|
throw e;
|
|
334
389
|
}
|
|
335
390
|
}
|
|
@@ -342,23 +397,27 @@ function NuxtScriptBundleTransformer(options = {
|
|
|
342
397
|
if (scriptSrcNode) {
|
|
343
398
|
s.overwrite(scriptSrcNode.start, scriptSrcNode.end, `'${url}'`);
|
|
344
399
|
} else {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
400
|
+
if (node.arguments[0]) {
|
|
401
|
+
const optionsNode = node.arguments[0];
|
|
402
|
+
const scriptInputProperty = optionsNode.properties.find(
|
|
403
|
+
(p) => p.key?.name === "scriptInput" || p.key?.value === "scriptInput"
|
|
404
|
+
);
|
|
405
|
+
if (scriptInputProperty) {
|
|
406
|
+
const scriptInput = scriptInputProperty.value;
|
|
407
|
+
if (scriptInput.type === "ObjectExpression") {
|
|
408
|
+
const srcProperty = scriptInput.properties.find(
|
|
409
|
+
(p) => p.key?.name === "src" || p.key?.value === "src"
|
|
410
|
+
);
|
|
411
|
+
if (srcProperty)
|
|
412
|
+
s.overwrite(srcProperty.value.start, srcProperty.value.end, `'${url}'`);
|
|
413
|
+
else
|
|
414
|
+
s.appendRight(scriptInput.end, `, src: '${url}'`);
|
|
415
|
+
}
|
|
416
|
+
} else {
|
|
417
|
+
s.appendRight(node.arguments[0].start + 1, ` scriptInput: { src: '${url}' }, `);
|
|
359
418
|
}
|
|
360
419
|
} else {
|
|
361
|
-
s.appendRight(node.
|
|
420
|
+
s.appendRight(node.callee.end, `({ scriptInput: { src: '${url}' } })`);
|
|
362
421
|
}
|
|
363
422
|
}
|
|
364
423
|
}
|
|
@@ -472,34 +531,89 @@ function NuxtScriptsCheckScripts() {
|
|
|
472
531
|
});
|
|
473
532
|
}
|
|
474
533
|
|
|
534
|
+
function resolveTriggerForTemplate(trigger) {
|
|
535
|
+
if (trigger && typeof trigger === "object") {
|
|
536
|
+
const keys = Object.keys(trigger);
|
|
537
|
+
if (keys.length > 1) {
|
|
538
|
+
throw new Error(`Trigger object must have exactly one property, received: ${keys.join(", ")}`);
|
|
539
|
+
}
|
|
540
|
+
if ("idleTimeout" in trigger) {
|
|
541
|
+
return `useScriptTriggerIdleTimeout({ timeout: ${trigger.idleTimeout} })`;
|
|
542
|
+
}
|
|
543
|
+
if ("interaction" in trigger) {
|
|
544
|
+
return `useScriptTriggerInteraction({ events: ${JSON.stringify(trigger.interaction)} })`;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
return null;
|
|
548
|
+
}
|
|
475
549
|
function templatePlugin(config, registry) {
|
|
476
550
|
if (Array.isArray(config.globals)) {
|
|
477
551
|
config.globals = Object.fromEntries(config.globals.map((i) => [hash(i), i]));
|
|
478
552
|
logger.warn("The `globals` array option is deprecated, please convert to an object.");
|
|
479
553
|
}
|
|
480
|
-
const imports = [
|
|
554
|
+
const imports = [];
|
|
481
555
|
const inits = [];
|
|
556
|
+
let needsIdleTimeoutImport = false;
|
|
557
|
+
let needsInteractionImport = false;
|
|
482
558
|
for (const [k, c] of Object.entries(config.registry || {})) {
|
|
483
559
|
const importDefinition = registry.find((i) => i.import.name === `useScript${k.substring(0, 1).toUpperCase() + k.substring(1)}`);
|
|
484
560
|
if (importDefinition) {
|
|
485
|
-
imports.unshift(importDefinition.import.name);
|
|
561
|
+
imports.unshift(`import { ${importDefinition.import.name} } from '${importDefinition.import.from}'`);
|
|
486
562
|
const args = (typeof c !== "object" ? {} : c) || {};
|
|
487
|
-
if (c === "mock")
|
|
563
|
+
if (c === "mock") {
|
|
488
564
|
args.scriptOptions = { trigger: "manual", skipValidation: true };
|
|
489
|
-
|
|
565
|
+
} else if (Array.isArray(c) && c.length === 2 && c[1]?.trigger) {
|
|
566
|
+
const triggerResolved = resolveTriggerForTemplate(c[1].trigger);
|
|
567
|
+
if (triggerResolved) {
|
|
568
|
+
args.scriptOptions = { ...c[1] };
|
|
569
|
+
if (args.scriptOptions) {
|
|
570
|
+
args.scriptOptions.trigger = `__TRIGGER_${triggerResolved}__`;
|
|
571
|
+
}
|
|
572
|
+
if (triggerResolved.includes("useScriptTriggerIdleTimeout")) needsIdleTimeoutImport = true;
|
|
573
|
+
if (triggerResolved.includes("useScriptTriggerInteraction")) needsInteractionImport = true;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
inits.push(`const ${k} = ${importDefinition.import.name}(${JSON.stringify(args).replace(/"__TRIGGER_(.*?)__"/g, "$1")})`);
|
|
490
577
|
}
|
|
491
578
|
}
|
|
492
579
|
for (const [k, c] of Object.entries(config.globals || {})) {
|
|
493
580
|
if (typeof c === "string") {
|
|
494
581
|
inits.push(`const ${k} = useScript(${JSON.stringify({ src: c, key: k })}, { use: () => ({ ${k}: window.${k} }) })`);
|
|
495
582
|
} else if (Array.isArray(c) && c.length === 2) {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
583
|
+
const options = c[1];
|
|
584
|
+
const triggerResolved = resolveTriggerForTemplate(options?.trigger);
|
|
585
|
+
if (triggerResolved) {
|
|
586
|
+
if (triggerResolved.includes("useScriptTriggerIdleTimeout")) needsIdleTimeoutImport = true;
|
|
587
|
+
if (triggerResolved.includes("useScriptTriggerInteraction")) needsInteractionImport = true;
|
|
588
|
+
const resolvedOptions = { ...options, trigger: `__TRIGGER_${triggerResolved}__` };
|
|
589
|
+
inits.push(`const ${k} = useScript(${JSON.stringify({ key: k, ...typeof c[0] === "string" ? { src: c[0] } : c[0] })}, { ...${JSON.stringify(resolvedOptions).replace(/"__TRIGGER_(.*?)__"/g, "$1")}, use: () => ({ ${k}: window.${k} }) })`);
|
|
590
|
+
} else {
|
|
591
|
+
inits.push(`const ${k} = useScript(${JSON.stringify({ key: k, ...typeof c[0] === "string" ? { src: c[0] } : c[0] })}, { ...${JSON.stringify(c[1])}, use: () => ({ ${k}: window.${k} }) })`);
|
|
592
|
+
}
|
|
593
|
+
} else if (typeof c === "object" && c !== null) {
|
|
594
|
+
const triggerResolved = resolveTriggerForTemplate(c.trigger);
|
|
595
|
+
if (triggerResolved) {
|
|
596
|
+
if (triggerResolved.includes("useScriptTriggerIdleTimeout")) needsIdleTimeoutImport = true;
|
|
597
|
+
if (triggerResolved.includes("useScriptTriggerInteraction")) needsInteractionImport = true;
|
|
598
|
+
const resolvedOptions = { ...c, trigger: `__TRIGGER_${triggerResolved}__` };
|
|
599
|
+
inits.push(`const ${k} = useScript(${JSON.stringify({ key: k, ...resolvedOptions }).replace(/"__TRIGGER_(.*?)__"/g, "$1")}, { use: () => ({ ${k}: window.${k} }) })`);
|
|
600
|
+
} else {
|
|
601
|
+
inits.push(`const ${k} = useScript(${JSON.stringify({ key: k, ...c })}, { use: () => ({ ${k}: window.${k} }) })`);
|
|
602
|
+
}
|
|
499
603
|
}
|
|
500
604
|
}
|
|
605
|
+
const triggerImports = [];
|
|
606
|
+
if (needsIdleTimeoutImport) {
|
|
607
|
+
triggerImports.push(`import { useScriptTriggerIdleTimeout } from '#nuxt-scripts/composables/useScriptTriggerIdleTimeout'`);
|
|
608
|
+
}
|
|
609
|
+
if (needsInteractionImport) {
|
|
610
|
+
triggerImports.push(`import { useScriptTriggerInteraction } from '#nuxt-scripts/composables/useScriptTriggerInteraction'`);
|
|
611
|
+
}
|
|
501
612
|
return [
|
|
502
|
-
`import {
|
|
613
|
+
`import { useScript } from '#nuxt-scripts/composables/useScript'`,
|
|
614
|
+
`import { defineNuxtPlugin } from 'nuxt/app'`,
|
|
615
|
+
...triggerImports,
|
|
616
|
+
...imports,
|
|
503
617
|
"",
|
|
504
618
|
`export default defineNuxtPlugin({`,
|
|
505
619
|
` name: "scripts:init",`,
|
|
@@ -560,6 +674,13 @@ const module = defineNuxtModule({
|
|
|
560
674
|
version: nuxt.options.dev ? version : void 0,
|
|
561
675
|
defaultScriptOptions: config.defaultScriptOptions
|
|
562
676
|
};
|
|
677
|
+
if (config.registry) {
|
|
678
|
+
nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {};
|
|
679
|
+
nuxt.options.runtimeConfig.public.scripts = defu(
|
|
680
|
+
nuxt.options.runtimeConfig.public.scripts || {},
|
|
681
|
+
config.registry
|
|
682
|
+
);
|
|
683
|
+
}
|
|
563
684
|
const composables = [
|
|
564
685
|
"useScript",
|
|
565
686
|
"useScriptEventPage",
|
|
@@ -575,7 +696,8 @@ const module = defineNuxtModule({
|
|
|
575
696
|
});
|
|
576
697
|
}
|
|
577
698
|
addComponentsDir({
|
|
578
|
-
path: await resolvePath("./runtime/components")
|
|
699
|
+
path: await resolvePath("./runtime/components"),
|
|
700
|
+
pathPrefix: false
|
|
579
701
|
});
|
|
580
702
|
const scripts = await registry(resolvePath);
|
|
581
703
|
for (const script of scripts) {
|
|
@@ -627,7 +749,8 @@ ${newScripts.map((i) => {
|
|
|
627
749
|
export {}`;
|
|
628
750
|
}
|
|
629
751
|
}, {
|
|
630
|
-
nuxt: true
|
|
752
|
+
nuxt: true,
|
|
753
|
+
node: true
|
|
631
754
|
});
|
|
632
755
|
if (Object.keys(config.globals || {}).length || Object.keys(config.registry || {}).length) {
|
|
633
756
|
addPluginTemplate({
|
|
@@ -644,6 +767,7 @@ export {}`;
|
|
|
644
767
|
});
|
|
645
768
|
addBuildPlugin(NuxtScriptBundleTransformer({
|
|
646
769
|
scripts: registryScriptsWithImport,
|
|
770
|
+
registryConfig: nuxt.options.runtimeConfig.public.scripts,
|
|
647
771
|
defaultBundle: config.defaultScriptOptions?.bundle,
|
|
648
772
|
moduleDetected(module) {
|
|
649
773
|
if (nuxt.options.dev && module !== "@nuxt/scripts" && !moduleInstallPromises.has(module) && !hasNuxtModule(module))
|
|
@@ -652,6 +776,7 @@ export {}`;
|
|
|
652
776
|
assetsBaseURL: config.assets?.prefix,
|
|
653
777
|
fallbackOnSrcOnBundleFail: config.assets?.fallbackOnSrcOnBundleFail,
|
|
654
778
|
fetchOptions: config.assets?.fetchOptions,
|
|
779
|
+
cacheMaxAge: config.assets?.cacheMaxAge,
|
|
655
780
|
renderedScript
|
|
656
781
|
}));
|
|
657
782
|
nuxt.hooks.hook("build:done", async () => {
|
package/dist/registry.mjs
CHANGED
|
@@ -57,6 +57,15 @@ async function registry(resolve) {
|
|
|
57
57
|
from: await resolve("./runtime/registry/rybbit-analytics")
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
|
+
{
|
|
61
|
+
label: "Databuddy Analytics",
|
|
62
|
+
category: "analytics",
|
|
63
|
+
logo: `<svg xmlns="http://www.w3.org/2000/svg" width="56.5" height="32" viewBox="0 0 8 8" shape-rendering="crispEdges"><path d="M0 0h8v8H0z"/><path fill="#fff" d="M1 1h1v6H1zm1 0h4v1H2zm4 1h1v1H6zm0 1h1v1H6zm0 1h1v1H6zm0 1h1v1H6zM2 6h4v1H2zm1-3h1v1H3zm1 1h1v1H4z"/></svg>`,
|
|
64
|
+
import: {
|
|
65
|
+
name: "useScriptDatabuddyAnalytics",
|
|
66
|
+
from: await resolve("./runtime/registry/databuddy-analytics")
|
|
67
|
+
}
|
|
68
|
+
},
|
|
60
69
|
{
|
|
61
70
|
label: "Segment",
|
|
62
71
|
scriptBundling: (options) => {
|
|
@@ -102,6 +111,16 @@ async function registry(resolve) {
|
|
|
102
111
|
from: await resolve("./runtime/registry/snapchat-pixel")
|
|
103
112
|
}
|
|
104
113
|
},
|
|
114
|
+
{
|
|
115
|
+
label: "Reddit Pixel",
|
|
116
|
+
src: "https://www.redditstatic.com/ads/pixel.js",
|
|
117
|
+
category: "tracking",
|
|
118
|
+
logo: `<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>`,
|
|
119
|
+
import: {
|
|
120
|
+
name: "useScriptRedditPixel",
|
|
121
|
+
from: await resolve("./runtime/registry/reddit-pixel")
|
|
122
|
+
}
|
|
123
|
+
},
|
|
105
124
|
// ads
|
|
106
125
|
{
|
|
107
126
|
label: "Google Adsense",
|
|
@@ -196,6 +215,17 @@ async function registry(resolve) {
|
|
|
196
215
|
from: await resolve("./runtime/registry/lemon-squeezy")
|
|
197
216
|
}
|
|
198
217
|
},
|
|
218
|
+
{
|
|
219
|
+
label: "PayPal",
|
|
220
|
+
src: false,
|
|
221
|
+
// should not be bundled
|
|
222
|
+
category: "payments",
|
|
223
|
+
logo: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 154.728 190.5" xmlns:v="https://vecta.io/nano"><g transform="translate(898.192 276.071)"><path clip-path="none" d="M-837.663-237.968a5.49 5.49 0 0 0-5.423 4.633l-9.013 57.15-8.281 52.514-.005.044.01-.044 8.281-52.514c.421-2.669 2.719-4.633 5.42-4.633h26.404c26.573 0 49.127-19.387 53.246-45.658.314-1.996.482-3.973.52-5.924v-.003h-.003c-6.753-3.543-14.683-5.565-23.372-5.565z" fill="#001c64"/><path clip-path="none" d="M-766.506-232.402c-.037 1.951-.207 3.93-.52 5.926-4.119 26.271-26.673 45.658-53.246 45.658h-26.404c-2.701 0-4.999 1.964-5.42 4.633l-8.281 52.514-5.197 32.947a4.46 4.46 0 0 0 4.405 5.153h28.66a5.49 5.49 0 0 0 5.423-4.633l7.55-47.881c.423-2.669 2.722-4.636 5.423-4.636h16.876c26.573 0 49.124-19.386 53.243-45.655 2.924-18.649-6.46-35.614-22.511-44.026z" fill="#0070e0"/><path clip-path="none" d="M-870.225-276.071a5.49 5.49 0 0 0-5.423 4.636l-22.489 142.608a4.46 4.46 0 0 0 4.405 5.156h33.351l8.281-52.514 9.013-57.15a5.49 5.49 0 0 1 5.423-4.633h47.782c8.691 0 16.621 2.025 23.375 5.563.46-23.917-19.275-43.666-46.412-43.666z" fill="#003087"/></g></svg>`,
|
|
224
|
+
import: {
|
|
225
|
+
name: "useScriptPayPal",
|
|
226
|
+
from: await resolve("./runtime/registry/paypal")
|
|
227
|
+
}
|
|
228
|
+
},
|
|
199
229
|
// content
|
|
200
230
|
{
|
|
201
231
|
label: "Vimeo Player",
|
|
File without changes
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import { computed, onBeforeUnmount, onMounted, ref, watch, toRaw } from "vue";
|
|
1
|
+
<script>
|
|
2
|
+
import { computed, onBeforeUnmount, onMounted, ref, watch, toRaw, provide, shallowRef } from "vue";
|
|
3
3
|
import { withQuery } from "ufo";
|
|
4
4
|
import { defu } from "defu";
|
|
5
5
|
import { hash } from "ohash";
|
|
6
6
|
import { useHead } from "nuxt/app";
|
|
7
|
-
import { scriptRuntimeConfig } from "
|
|
8
|
-
import { useScriptTriggerElement } from "
|
|
9
|
-
import { useScriptGoogleMaps } from "
|
|
10
|
-
import ScriptAriaLoadingIndicator from "
|
|
7
|
+
import { scriptRuntimeConfig } from "#nuxt-scripts/utils";
|
|
8
|
+
import { useScriptTriggerElement } from "#nuxt-scripts/composables/useScriptTriggerElement";
|
|
9
|
+
import { useScriptGoogleMaps } from "#nuxt-scripts/registry/google-maps";
|
|
10
|
+
import ScriptAriaLoadingIndicator from "../ScriptAriaLoadingIndicator.vue";
|
|
11
|
+
export const MAP_INJECTION_KEY = Symbol("map");
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<script setup>
|
|
11
15
|
const props = defineProps({
|
|
12
16
|
trigger: { type: [String, Array, Boolean], required: false, default: ["mouseenter", "mouseover", "mousedown"] },
|
|
13
17
|
aboveTheFold: { type: Boolean, required: false },
|
|
@@ -51,7 +55,7 @@ const options = computed(() => {
|
|
|
51
55
|
});
|
|
52
56
|
});
|
|
53
57
|
const ready = ref(false);
|
|
54
|
-
const map =
|
|
58
|
+
const map = shallowRef();
|
|
55
59
|
const mapMarkers = ref(/* @__PURE__ */ new Map());
|
|
56
60
|
function isLocationQuery(s) {
|
|
57
61
|
return typeof s === "string" && (s.split(",").length > 2 || s.includes("+"));
|
|
@@ -71,7 +75,7 @@ function normalizeAdvancedMapMarkerOptions(_options) {
|
|
|
71
75
|
lat: Number.parseFloat(_options.split(",")[0] || "0"),
|
|
72
76
|
lng: Number.parseFloat(_options.split(",")[1] || "0")
|
|
73
77
|
}
|
|
74
|
-
} : _options;
|
|
78
|
+
} : _options || {};
|
|
75
79
|
if (!opts.position) {
|
|
76
80
|
opts.position = {
|
|
77
81
|
lat: 0,
|
|
@@ -89,11 +93,10 @@ async function createAdvancedMapMarker(_options) {
|
|
|
89
93
|
return mapMarkers.value.get(key);
|
|
90
94
|
const p = new Promise(async (resolve) => {
|
|
91
95
|
const lib = await importLibrary("marker");
|
|
92
|
-
const mapMarkerOptions =
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
});
|
|
96
|
+
const mapMarkerOptions = {
|
|
97
|
+
...toRaw(normalizedOptions),
|
|
98
|
+
map: toRaw(map.value)
|
|
99
|
+
};
|
|
97
100
|
resolve(new lib.AdvancedMarkerElement(mapMarkerOptions));
|
|
98
101
|
});
|
|
99
102
|
mapMarkers.value.set(key, p);
|
|
@@ -154,6 +157,7 @@ const googleMaps = {
|
|
|
154
157
|
importLibrary
|
|
155
158
|
};
|
|
156
159
|
defineExpose(googleMaps);
|
|
160
|
+
provide(MAP_INJECTION_KEY, { map, mapsApi });
|
|
157
161
|
onMounted(() => {
|
|
158
162
|
watch(ready, (v) => {
|
|
159
163
|
if (v) {
|
|
File without changes
|