@nuxt/scripts 1.1.0 → 1.2.0
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/devtools-client/200.html +1 -1
- package/dist/devtools-client/404.html +1 -1
- package/dist/devtools-client/_nuxt/BTXw0v4h.js +1 -0
- package/dist/devtools-client/_nuxt/Bf6N2ObH.js +1 -0
- package/dist/devtools-client/_nuxt/C5Bq9Qgz.js +1 -0
- package/dist/devtools-client/_nuxt/CSw0kWhI.js +1 -0
- package/dist/devtools-client/_nuxt/DWvCkA0U.js +195 -0
- package/dist/devtools-client/_nuxt/TPgAGQc8.js +1 -0
- package/dist/devtools-client/_nuxt/builds/latest.json +1 -1
- package/dist/devtools-client/_nuxt/builds/meta/df290ad6-a770-4973-bb7f-110a630b368c.json +1 -0
- package/dist/devtools-client/_nuxt/dvDf1_6X.js +1 -0
- package/dist/devtools-client/_nuxt/entry.VwiedW44.css +1 -0
- package/dist/devtools-client/_nuxt/error-404.DBJH6QEN.css +1 -0
- package/dist/devtools-client/_nuxt/error-500.BIIPjeaA.css +1 -0
- package/dist/devtools-client/_nuxt/{first-party.C8Ha4JLM.css → first-party.D_SBdnka.css} +1 -1
- package/dist/devtools-client/_nuxt/index.DIj4bh55.css +1 -0
- package/dist/devtools-client/_nuxt/{registry.B9lnjF_b.css → registry.CDbTq1x3.css} +1 -1
- package/dist/devtools-client/docs/index.html +1 -1
- package/dist/devtools-client/first-party/index.html +1 -1
- package/dist/devtools-client/index.html +1 -1
- package/dist/devtools-client/registry/index.html +1 -1
- package/dist/module.d.mts +5 -1
- package/dist/module.d.ts +5 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +35 -4
- package/dist/registry.mjs +16 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +18 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +7 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +18 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.d.vue.ts +9 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue +6 -5
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue.d.ts +9 -0
- package/dist/runtime/components/ScriptGravatar.vue +2 -0
- package/dist/runtime/components/ScriptLoadingIndicator.vue +1 -1
- package/dist/runtime/components/ScriptVimeoPlayer.vue +27 -4
- package/dist/runtime/components/ScriptYouTubePlayer.vue +25 -4
- package/dist/runtime/composables/useScript.js +4 -3
- package/dist/runtime/registry/schemas.d.ts +76 -0
- package/dist/runtime/registry/schemas.js +82 -2
- package/dist/runtime/registry/speedcurve.d.ts +21 -0
- package/dist/runtime/registry/speedcurve.js +93 -0
- package/dist/runtime/registry/stripe.js +1 -1
- package/dist/runtime/registry/tiktok-pixel.d.ts +52 -13
- package/dist/runtime/registry/tiktok-pixel.js +46 -29
- package/dist/runtime/server/instagram-embed.js +37 -10
- package/dist/runtime/server/proxy-handler.d.ts +1 -0
- package/dist/runtime/server/proxy-handler.js +16 -0
- package/dist/runtime/server/utils/instagram-embed.d.ts +1 -0
- package/dist/runtime/server/utils/instagram-embed.js +5 -0
- package/dist/runtime/types.d.ts +3 -1
- package/dist/runtime/utils/after-next-paint.d.ts +1 -0
- package/dist/runtime/utils/after-next-paint.js +3 -0
- package/dist/stats.d.mts +1 -1
- package/dist/stats.d.ts +1 -1
- package/dist/stats.mjs +5 -0
- package/dist/types-source.mjs +127 -6
- package/package.json +12 -7
- package/dist/devtools-client/_nuxt/1wb58MKb.js +0 -1
- package/dist/devtools-client/_nuxt/BbLmrp_o.js +0 -1
- package/dist/devtools-client/_nuxt/Cx46cS8a.js +0 -1
- package/dist/devtools-client/_nuxt/D-M51CV3.js +0 -1
- package/dist/devtools-client/_nuxt/D4HTNcLU.js +0 -188
- package/dist/devtools-client/_nuxt/DU3BlAm5.js +0 -1
- package/dist/devtools-client/_nuxt/DiaY4J4_.js +0 -1
- package/dist/devtools-client/_nuxt/builds/meta/0b4ab733-07a6-40b2-b25e-aca95fa55188.json +0 -1
- package/dist/devtools-client/_nuxt/entry.XOvcedFq.css +0 -1
- package/dist/devtools-client/_nuxt/error-404.D2T48gBS.css +0 -1
- package/dist/devtools-client/_nuxt/error-500.sMTZJbsP.css +0 -1
- package/dist/devtools-client/_nuxt/index.DZD1lwyI.css +0 -1
|
@@ -13,6 +13,16 @@ import {
|
|
|
13
13
|
const COMPRESSION_RE = /gzip|deflate|br|compress|base64/i;
|
|
14
14
|
const CLIENT_HINT_VERSION_RE = /;v="(\d+)\.[^"]*"/g;
|
|
15
15
|
const SKIP_RESPONSE_HEADERS = /* @__PURE__ */ new Set(["set-cookie", "transfer-encoding", "content-encoding", "content-length"]);
|
|
16
|
+
export const SKIP_REQUEST_HEADERS = /* @__PURE__ */ new Set([
|
|
17
|
+
"connection",
|
|
18
|
+
"keep-alive",
|
|
19
|
+
"proxy-authenticate",
|
|
20
|
+
"proxy-authorization",
|
|
21
|
+
"te",
|
|
22
|
+
"trailer",
|
|
23
|
+
"transfer-encoding",
|
|
24
|
+
"upgrade"
|
|
25
|
+
]);
|
|
16
26
|
function stripQueryFingerprinting(query, privacy) {
|
|
17
27
|
const stripped = stripPayloadFingerprinting(query, privacy);
|
|
18
28
|
const params = new URLSearchParams();
|
|
@@ -88,12 +98,18 @@ export default defineEventHandler(async (event) => {
|
|
|
88
98
|
}
|
|
89
99
|
}
|
|
90
100
|
const headers = {};
|
|
101
|
+
const connectionHeaderValue = originalHeaders.connection;
|
|
102
|
+
const connectionNamedHeaders = connectionHeaderValue ? new Set(connectionHeaderValue.split(",").map((h) => h.trim().toLowerCase()).filter(Boolean)) : null;
|
|
91
103
|
for (const [key, value] of Object.entries(originalHeaders)) {
|
|
92
104
|
if (!value)
|
|
93
105
|
continue;
|
|
94
106
|
const lowerKey = key.toLowerCase();
|
|
95
107
|
if (lowerKey === "host")
|
|
96
108
|
continue;
|
|
109
|
+
if (SKIP_REQUEST_HEADERS.has(lowerKey))
|
|
110
|
+
continue;
|
|
111
|
+
if (connectionNamedHeaders?.has(lowerKey))
|
|
112
|
+
continue;
|
|
97
113
|
if (SENSITIVE_HEADERS.includes(lowerKey))
|
|
98
114
|
continue;
|
|
99
115
|
if (lowerKey === "content-length") {
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { buildProxyUrl } from "./proxy-url.js";
|
|
2
2
|
export const RSRC_RE = /url\(\/rsrc\.php([^)]+)\)/g;
|
|
3
|
+
const SHELL_BODY_RE = /id=["'](?:splash-screen|has-finished-comet-page)["']/;
|
|
4
|
+
const HAS_POST_CONTENT_RE = /\bclass=(["'])[^"']*\b(?:Embed|EmbeddedMedia|EmbeddedMediaImage)\b[^"']*\1/i;
|
|
5
|
+
export function isEmbedShell(html) {
|
|
6
|
+
return SHELL_BODY_RE.test(html) && !HAS_POST_CONTENT_RE.test(html);
|
|
7
|
+
}
|
|
3
8
|
export const AMP_RE = /&/g;
|
|
4
9
|
export const SCONTENT_RE = /https:\/\/scontent[^"'\s),]+\.cdninstagram\.com[^"'\s),]+/g;
|
|
5
10
|
export const STATIC_CDN_RE = /https:\/\/static\.cdninstagram\.com[^"'\s),]+/g;
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ import type { RedditPixelInput } from './registry/reddit-pixel.js';
|
|
|
35
35
|
import type { RybbitAnalyticsInput } from './registry/rybbit-analytics.js';
|
|
36
36
|
import type { SegmentInput } from './registry/segment.js';
|
|
37
37
|
import type { SnapTrPixelInput } from './registry/snapchat-pixel.js';
|
|
38
|
+
import type { SpeedCurveInput } from './registry/speedcurve.js';
|
|
38
39
|
import type { StripeInput } from './registry/stripe.js';
|
|
39
40
|
import type { TikTokPixelInput } from './registry/tiktok-pixel.js';
|
|
40
41
|
import type { UmamiAnalyticsInput } from './registry/umami-analytics.js';
|
|
@@ -263,6 +264,7 @@ export interface ScriptRegistry {
|
|
|
263
264
|
rybbitAnalytics?: RybbitAnalyticsInput;
|
|
264
265
|
redditPixel?: RedditPixelInput;
|
|
265
266
|
segment?: SegmentInput;
|
|
267
|
+
speedcurve?: SpeedCurveInput;
|
|
266
268
|
stripe?: StripeInput;
|
|
267
269
|
tiktokPixel?: TikTokPixelInput;
|
|
268
270
|
xEmbed?: XEmbedInput;
|
|
@@ -281,7 +283,7 @@ export interface ScriptRegistry {
|
|
|
281
283
|
* Built-in registry script keys — not affected by module augmentation.
|
|
282
284
|
* Use this to type-check records that must enumerate all built-in scripts (logos, meta, etc.).
|
|
283
285
|
*/
|
|
284
|
-
export type BuiltInRegistryScriptKey = 'ahrefsAnalytics' | 'bingUet' | 'blueskyEmbed' | 'calendly' | 'carbonAds' | 'crisp' | 'clarity' | 'cloudflareWebAnalytics' | 'databuddyAnalytics' | 'metaPixel' | 'fathomAnalytics' | 'instagramEmbed' | 'plausibleAnalytics' | 'googleAdsense' | 'googleAnalytics' | 'googleMaps' | 'googleRecaptcha' | 'googleSignIn' | 'lemonSqueezy' | 'googleTagManager' | 'hotjar' | 'intercom' | 'linkedinInsight' | 'paypal' | 'posthog' | 'matomoAnalytics' | 'mixpanelAnalytics' | 'rybbitAnalytics' | 'redditPixel' | 'segment' | 'stripe' | 'tiktokPixel' | 'xEmbed' | 'xPixel' | 'snapchatPixel' | 'youtubePlayer' | 'vercelAnalytics' | 'vimeoPlayer' | 'umamiAnalytics' | 'usercentrics' | 'gravatar' | 'npm';
|
|
286
|
+
export type BuiltInRegistryScriptKey = 'ahrefsAnalytics' | 'bingUet' | 'blueskyEmbed' | 'calendly' | 'carbonAds' | 'crisp' | 'clarity' | 'cloudflareWebAnalytics' | 'databuddyAnalytics' | 'metaPixel' | 'fathomAnalytics' | 'instagramEmbed' | 'plausibleAnalytics' | 'googleAdsense' | 'googleAnalytics' | 'googleMaps' | 'googleRecaptcha' | 'googleSignIn' | 'lemonSqueezy' | 'googleTagManager' | 'hotjar' | 'intercom' | 'linkedinInsight' | 'paypal' | 'posthog' | 'matomoAnalytics' | 'mixpanelAnalytics' | 'rybbitAnalytics' | 'redditPixel' | 'segment' | 'stripe' | 'tiktokPixel' | 'xEmbed' | 'xPixel' | 'snapchatPixel' | 'speedcurve' | 'youtubePlayer' | 'vercelAnalytics' | 'vimeoPlayer' | 'umamiAnalytics' | 'usercentrics' | 'gravatar' | 'npm';
|
|
285
287
|
/**
|
|
286
288
|
* Union of all explicit registry script keys (excludes npm pattern).
|
|
287
289
|
* Includes both built-in and augmented keys.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function afterNextPaint(callback: () => void): void;
|
package/dist/stats.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type TrackedDataType = 'page-views' | 'events' | 'conversions' | 'user-identity' | 'session-replay' | 'heatmaps' | 'clicks' | 'scrolls' | 'retargeting' | 'audiences' | 'form-submissions' | 'video-engagement' | 'transactions' | 'errors' | 'tag-injection' | 'ab-testing';
|
|
1
|
+
type TrackedDataType = 'page-views' | 'events' | 'conversions' | 'user-identity' | 'session-replay' | 'heatmaps' | 'clicks' | 'scrolls' | 'retargeting' | 'audiences' | 'form-submissions' | 'video-engagement' | 'transactions' | 'errors' | 'tag-injection' | 'ab-testing' | 'performance-timings';
|
|
2
2
|
|
|
3
3
|
interface ScriptPrivacy {
|
|
4
4
|
ip: boolean;
|
package/dist/stats.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type TrackedDataType = 'page-views' | 'events' | 'conversions' | 'user-identity' | 'session-replay' | 'heatmaps' | 'clicks' | 'scrolls' | 'retargeting' | 'audiences' | 'form-submissions' | 'video-engagement' | 'transactions' | 'errors' | 'tag-injection' | 'ab-testing';
|
|
1
|
+
type TrackedDataType = 'page-views' | 'events' | 'conversions' | 'user-identity' | 'session-replay' | 'heatmaps' | 'clicks' | 'scrolls' | 'retargeting' | 'audiences' | 'form-submissions' | 'video-engagement' | 'transactions' | 'errors' | 'tag-injection' | 'ab-testing' | 'performance-timings';
|
|
2
2
|
|
|
3
3
|
interface ScriptPrivacy {
|
|
4
4
|
ip: boolean;
|
package/dist/stats.mjs
CHANGED
|
@@ -198,6 +198,11 @@ const scriptMeta = {
|
|
|
198
198
|
gravatar: {
|
|
199
199
|
urls: ["https://secure.gravatar.com/js/gprofiles.js"],
|
|
200
200
|
trackedData: []
|
|
201
|
+
},
|
|
202
|
+
// Performance monitoring
|
|
203
|
+
speedcurve: {
|
|
204
|
+
urls: ["https://cdn.speedcurve.com/js/lux.js"],
|
|
205
|
+
trackedData: ["page-views", "performance-timings", "errors"]
|
|
201
206
|
}
|
|
202
207
|
};
|
|
203
208
|
|
package/dist/types-source.mjs
CHANGED
|
@@ -382,7 +382,7 @@ const types = {
|
|
|
382
382
|
{
|
|
383
383
|
name: "ScriptGoogleMapsHeatmapLayerProps",
|
|
384
384
|
kind: "interface",
|
|
385
|
-
code: "interface ScriptGoogleMapsHeatmapLayerProps {\n /**\n * Configuration options for the heatmap layer visualization.\n * @see https://developers.google.com/maps/documentation/javascript/reference/visualization#HeatmapLayerOptions\n */\n options?: Omit<
|
|
385
|
+
code: "interface ScriptGoogleMapsHeatmapLayerProps {\n /**\n * Configuration options for the heatmap layer visualization.\n * @deprecated Google deprecated the Maps JavaScript API `HeatmapLayer` (May 2025) and removed it in v3.65 (May 2026). Consider [deck.gl HeatmapLayer](https://deck.gl/docs/api-reference/aggregation-layers/heatmap-layer) instead.\n * @see https://developers.google.com/maps/documentation/javascript/reference/visualization#HeatmapLayerOptions\n */\n options?: Omit<HeatmapLayerOptions, 'map'>\n}"
|
|
386
386
|
},
|
|
387
387
|
{
|
|
388
388
|
name: "ScriptGoogleMapsInfoWindowProps",
|
|
@@ -965,11 +965,23 @@ const types = {
|
|
|
965
965
|
code: "export interface SnapPixelApi {\n snaptr: SnapTrFns & {\n push: SnapTrFns\n loaded: boolean\n version: string\n queue: any[]\n }\n _snaptr: SnapPixelApi['snaptr']\n handleRequest?: SnapTrFns\n}"
|
|
966
966
|
}
|
|
967
967
|
],
|
|
968
|
+
speedcurve: [
|
|
969
|
+
{
|
|
970
|
+
name: "SpeedCurveOptions",
|
|
971
|
+
kind: "const",
|
|
972
|
+
code: "export const SpeedCurveOptions = object({\n // -- Composable-only options (consumed by useScriptSpeedCurve, not forwarded to LUX) --\n /**\n * Your SpeedCurve customer ID.\n * @see https://support.speedcurve.com/docs/add-rum-to-your-site\n */\n id: pipe(string(), minLength(1)),\n /**\n * Enable SPA (single-page application) mode.\n * When true, lux.js tracks soft navigations instead of full page loads.\n * @see https://support.speedcurve.com/docs/single-page-applications\n */\n spaMode: optional(boolean()),\n /**\n * Automatically wire Vue Router hooks for SPA tracking when spaMode is true.\n * Set to false to instrument navigations manually.\n * @default true (when spaMode is true)\n */\n autoTrackSpaNavigations: optional(boolean()),\n\n // -- LUX UserConfig passthrough (forwarded onto window.LUX before lux.js loads) --\n // Property names match upstream LUX UserConfig casing exactly. Keep this list in\n // sync with the LUX_USER_CONFIG_KEYS filter in speedcurve.ts.\n /**\n * Page label shown in the SpeedCurve dashboard.\n * Accepts a static string, a function `(to) => string | false` for per-navigation labels,\n * or `false` to disable labeling entirely. A callback returning `false` skips updating\n * the label for that navigation.\n * @default String(to.name ?? to.path)\n */\n label: optional(union([string(), function_(), literal(false)])),\n /**\n * Sampling rate (0–100). Percentage of sessions that send beacons.\n * Upstream spelling is lowercase — matches LUX UserConfig.\n */\n samplerate: optional(pipe(number(), minValue(0), maxValue(100))),\n /**\n * Send the beacon when the page is hidden (pagehide event).\n * @default true\n */\n sendBeaconOnPageHidden: optional(boolean()),\n /**\n * Track JavaScript errors.\n * @default true\n */\n trackErrors: optional(boolean()),\n /**\n * Maximum number of errors to track per page view.\n * @default 5\n */\n maxErrors: optional(number()),\n /**\n * Minimum time (ms) before a beacon can be sent.\n */\n minMeasureTime: optional(number()),\n /**\n * Maximum time (ms) after which the beacon is sent regardless of load state.\n * @default 60000\n */\n maxMeasureTime: optional(number()),\n /**\n * Start a new beacon when the page becomes visible after being hidden.\n */\n newBeaconOnPageShow: optional(boolean()),\n /**\n * Track pages loaded in background tabs.\n * @default false\n */\n trackHiddenPages: optional(boolean()),\n /**\n * Cookie domain for cross-subdomain session tracking.\n */\n cookieDomain: optional(string()),\n})"
|
|
973
|
+
},
|
|
974
|
+
{
|
|
975
|
+
name: "SpeedCurveApi",
|
|
976
|
+
kind: "interface",
|
|
977
|
+
code: "export interface SpeedCurveApi {\n LUX: LuxGlobal\n}"
|
|
978
|
+
}
|
|
979
|
+
],
|
|
968
980
|
stripe: [
|
|
969
981
|
{
|
|
970
982
|
name: "StripeOptions",
|
|
971
983
|
kind: "const",
|
|
972
|
-
code: "export const StripeOptions = object({\n /**\n * Whether to load Stripe's advanced fraud detection signals.\n * Set to `false` to opt out.\n * @default true\n * @see https://docs.stripe.com/disputes/prevention/advanced-fraud-detection\n */\n advancedFraudSignals: optional(boolean()),\n})"
|
|
984
|
+
code: "export const StripeOptions = object({\n /**\n * Whether to load Stripe's advanced fraud detection signals.\n * Set to `false` to opt out.\n * @default true\n * @see https://docs.stripe.com/disputes/prevention/advanced-fraud-detection\n */\n advancedFraudSignals: optional(boolean()),\n /**\n * The Stripe.js SDK version to load.\n * Named releases get autocomplete; any future codename is also accepted.\n * @default 'basil'\n * @see https://docs.stripe.com/sdks/stripejs-versioning\n */\n version: optional(union([literal('v3'), literal('acacia'), literal('basil'), literal('clover'), literal('dahlia'), string()])),\n})"
|
|
973
985
|
},
|
|
974
986
|
{
|
|
975
987
|
name: "StripeApi",
|
|
@@ -1014,14 +1026,29 @@ const types = {
|
|
|
1014
1026
|
code: "interface TrackOptions {\n /** Used to deduplicate events sent from both the browser Pixel and the server-side Events API. */\n event_id?: string\n /**\n * Sandbox test-event identifier. When set, events route to TikTok's Test Events panel\n * without affecting production reporting.\n */\n test_event_code?: string\n [key: string]: any\n}"
|
|
1015
1027
|
},
|
|
1016
1028
|
{
|
|
1017
|
-
name: "
|
|
1029
|
+
name: "TtqInstance",
|
|
1030
|
+
kind: "interface",
|
|
1031
|
+
code: "export interface TtqInstance {\n /** Track a page view. */\n page: () => void\n /** Track a standard or custom conversion event. */\n track: (event: StandardEvents | (string & {}), properties?: EventProperties, options?: TrackOptions) => void\n /** Associate advanced-matching identifiers with the current user. */\n identify: (properties: IdentifyProperties) => void\n /** Opt user in to tracking. Queued before the script loads; live once `events.js` binds. */\n grantConsent: () => void\n /** Opt user out of tracking. Queued before the script loads; live once `events.js` binds. */\n revokeConsent: () => void\n /** Defer consent until an explicit grant/revoke. Queued before the script loads; live once `events.js` binds. */\n holdConsent: () => void\n enableCookie: () => void\n disableCookie: () => void\n}"
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
name: "TtqCallable",
|
|
1018
1035
|
kind: "type",
|
|
1019
|
-
code: "type
|
|
1036
|
+
code: "type TtqCallable\n = ((cmd: 'track', event: StandardEvents | (string & {}), properties?: EventProperties, options?: TrackOptions) => void)\n & ((cmd: 'page') => void)\n & ((cmd: 'identify', properties: IdentifyProperties) => void)\n & ((cmd: (string & {}), ...args: any[]) => void)"
|
|
1037
|
+
},
|
|
1038
|
+
{
|
|
1039
|
+
name: "Ttq",
|
|
1040
|
+
kind: "type",
|
|
1041
|
+
code: "export type Ttq = TtqCallable & TtqInstance & {\n /** Resolve the per-pixel method bag for a specific pixel id. */\n instance: (id: string) => TtqInstance\n}"
|
|
1020
1042
|
},
|
|
1021
1043
|
{
|
|
1022
1044
|
name: "TikTokPixelApi",
|
|
1023
1045
|
kind: "interface",
|
|
1024
|
-
code: "export interface TikTokPixelApi {\n ttq:
|
|
1046
|
+
code: "export interface TikTokPixelApi {\n ttq: Ttq\n}"
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
name: "TtqArray",
|
|
1050
|
+
kind: "type",
|
|
1051
|
+
code: "type TtqArray = TtqInstance & Array<any[]> & {\n methods: string[]\n setAndDefer: (target: any, method: string) => void\n instance: (id: string) => TtqInstance\n _i?: Record<string, any[]>\n _t?: Record<string, number>\n _o?: Record<string, any>\n}"
|
|
1025
1052
|
},
|
|
1026
1053
|
{
|
|
1027
1054
|
name: "TikTokPixelOptions",
|
|
@@ -2359,6 +2386,93 @@ const schemaFields = {
|
|
|
2359
2386
|
description: "The user's age."
|
|
2360
2387
|
}
|
|
2361
2388
|
],
|
|
2389
|
+
SpeedCurveOptions: [
|
|
2390
|
+
{
|
|
2391
|
+
name: "id",
|
|
2392
|
+
type: "string",
|
|
2393
|
+
required: true,
|
|
2394
|
+
description: "Your SpeedCurve customer ID."
|
|
2395
|
+
},
|
|
2396
|
+
{
|
|
2397
|
+
name: "spaMode",
|
|
2398
|
+
type: "boolean",
|
|
2399
|
+
required: false,
|
|
2400
|
+
description: "Enable SPA (single-page application) mode. When true, lux.js tracks soft navigations instead of full page loads."
|
|
2401
|
+
},
|
|
2402
|
+
{
|
|
2403
|
+
name: "autoTrackSpaNavigations",
|
|
2404
|
+
type: "boolean",
|
|
2405
|
+
required: false,
|
|
2406
|
+
description: "Automatically wire Vue Router hooks for SPA tracking when spaMode is true. Set to false to instrument navigations manually.",
|
|
2407
|
+
defaultValue: "true (when spaMode is true)"
|
|
2408
|
+
},
|
|
2409
|
+
{
|
|
2410
|
+
name: "label",
|
|
2411
|
+
type: "string | Function | false",
|
|
2412
|
+
required: false,
|
|
2413
|
+
description: "Page label shown in the SpeedCurve dashboard. Accepts a static string, a function `(to) => string | false` for per-navigation labels, or `false` to disable labeling entirely. A callback returning `false` skips updating the label for that navigation.",
|
|
2414
|
+
defaultValue: "String(to.name ?? to.path)"
|
|
2415
|
+
},
|
|
2416
|
+
{
|
|
2417
|
+
name: "samplerate",
|
|
2418
|
+
type: "number",
|
|
2419
|
+
required: false,
|
|
2420
|
+
description: "Sampling rate (0–100). Percentage of sessions that send beacons. Upstream spelling is lowercase — matches LUX UserConfig."
|
|
2421
|
+
},
|
|
2422
|
+
{
|
|
2423
|
+
name: "sendBeaconOnPageHidden",
|
|
2424
|
+
type: "boolean",
|
|
2425
|
+
required: false,
|
|
2426
|
+
description: "Send the beacon when the page is hidden (pagehide event).",
|
|
2427
|
+
defaultValue: "true"
|
|
2428
|
+
},
|
|
2429
|
+
{
|
|
2430
|
+
name: "trackErrors",
|
|
2431
|
+
type: "boolean",
|
|
2432
|
+
required: false,
|
|
2433
|
+
description: "Track JavaScript errors.",
|
|
2434
|
+
defaultValue: "true"
|
|
2435
|
+
},
|
|
2436
|
+
{
|
|
2437
|
+
name: "maxErrors",
|
|
2438
|
+
type: "number",
|
|
2439
|
+
required: false,
|
|
2440
|
+
description: "Maximum number of errors to track per page view.",
|
|
2441
|
+
defaultValue: "5"
|
|
2442
|
+
},
|
|
2443
|
+
{
|
|
2444
|
+
name: "minMeasureTime",
|
|
2445
|
+
type: "number",
|
|
2446
|
+
required: false,
|
|
2447
|
+
description: "Minimum time (ms) before a beacon can be sent."
|
|
2448
|
+
},
|
|
2449
|
+
{
|
|
2450
|
+
name: "maxMeasureTime",
|
|
2451
|
+
type: "number",
|
|
2452
|
+
required: false,
|
|
2453
|
+
description: "Maximum time (ms) after which the beacon is sent regardless of load state.",
|
|
2454
|
+
defaultValue: "60000"
|
|
2455
|
+
},
|
|
2456
|
+
{
|
|
2457
|
+
name: "newBeaconOnPageShow",
|
|
2458
|
+
type: "boolean",
|
|
2459
|
+
required: false,
|
|
2460
|
+
description: "Start a new beacon when the page becomes visible after being hidden."
|
|
2461
|
+
},
|
|
2462
|
+
{
|
|
2463
|
+
name: "trackHiddenPages",
|
|
2464
|
+
type: "boolean",
|
|
2465
|
+
required: false,
|
|
2466
|
+
description: "Track pages loaded in background tabs.",
|
|
2467
|
+
defaultValue: "false"
|
|
2468
|
+
},
|
|
2469
|
+
{
|
|
2470
|
+
name: "cookieDomain",
|
|
2471
|
+
type: "string",
|
|
2472
|
+
required: false,
|
|
2473
|
+
description: "Cookie domain for cross-subdomain session tracking."
|
|
2474
|
+
}
|
|
2475
|
+
],
|
|
2362
2476
|
SnapTrPixelOptions: [
|
|
2363
2477
|
{
|
|
2364
2478
|
name: "id",
|
|
@@ -2380,6 +2494,13 @@ const schemaFields = {
|
|
|
2380
2494
|
required: false,
|
|
2381
2495
|
description: "Whether to load Stripe's advanced fraud detection signals. Set to `false` to opt out.",
|
|
2382
2496
|
defaultValue: "true"
|
|
2497
|
+
},
|
|
2498
|
+
{
|
|
2499
|
+
name: "version",
|
|
2500
|
+
type: "'v3' | 'acacia' | 'basil' | 'clover' | 'dahlia' | string",
|
|
2501
|
+
required: false,
|
|
2502
|
+
description: "The Stripe.js SDK version to load. Named releases get autocomplete; any future codename is also accepted.",
|
|
2503
|
+
defaultValue: "'basil'"
|
|
2383
2504
|
}
|
|
2384
2505
|
],
|
|
2385
2506
|
TikTokPixelOptions: [
|
|
@@ -2732,7 +2853,7 @@ const schemaFields = {
|
|
|
2732
2853
|
ScriptGoogleMapsHeatmapLayerProps: [
|
|
2733
2854
|
{
|
|
2734
2855
|
name: "options",
|
|
2735
|
-
type: "Omit<
|
|
2856
|
+
type: "Omit<HeatmapLayerOptions, 'map'>",
|
|
2736
2857
|
required: false,
|
|
2737
2858
|
description: "Configuration options for the heatmap layer visualization."
|
|
2738
2859
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxt/scripts",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"description": "Load third-party scripts with better performance, privacy and DX in Nuxt Apps.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Harlan Wilton",
|
|
@@ -71,11 +71,12 @@
|
|
|
71
71
|
"peerDependencies": {
|
|
72
72
|
"@googlemaps/markerclusterer": "^2.6.2",
|
|
73
73
|
"@paypal/paypal-js": "^8.1.2 || ^9.0.0",
|
|
74
|
+
"@speedcurve/lux": "^4.4.3",
|
|
74
75
|
"@stripe/stripe-js": "^7.0.0 || ^8.0.0 || ^9.0.0",
|
|
75
76
|
"@types/google.maps": "^3.58.1",
|
|
76
77
|
"@types/vimeo__player": "^2.18.3",
|
|
77
78
|
"@types/youtube": "^0.1.0",
|
|
78
|
-
"@unhead/vue": "^2.0.3",
|
|
79
|
+
"@unhead/vue": "^2.0.3 || ^3.0.0",
|
|
79
80
|
"posthog-js": "^1.0.0"
|
|
80
81
|
},
|
|
81
82
|
"peerDependenciesMeta": {
|
|
@@ -85,6 +86,9 @@
|
|
|
85
86
|
"@paypal/paypal-js": {
|
|
86
87
|
"optional": true
|
|
87
88
|
},
|
|
89
|
+
"@speedcurve/lux": {
|
|
90
|
+
"optional": true
|
|
91
|
+
},
|
|
88
92
|
"@stripe/stripe-js": {
|
|
89
93
|
"optional": true
|
|
90
94
|
},
|
|
@@ -111,7 +115,7 @@
|
|
|
111
115
|
"magic-string": "^0.30.21",
|
|
112
116
|
"ofetch": "^1.5.1",
|
|
113
117
|
"ohash": "^2.0.11",
|
|
114
|
-
"oxc-parser": "^0.
|
|
118
|
+
"oxc-parser": "^0.134.0",
|
|
115
119
|
"oxc-walker": "^1.0.0",
|
|
116
120
|
"pathe": "^2.0.3",
|
|
117
121
|
"pkg-types": "^2.3.1",
|
|
@@ -121,14 +125,15 @@
|
|
|
121
125
|
"ultrahtml": "^1.6.0",
|
|
122
126
|
"unplugin": "^3.0.0",
|
|
123
127
|
"unstorage": "^1.17.5",
|
|
124
|
-
"valibot": "^1.4.
|
|
128
|
+
"valibot": "^1.4.1"
|
|
125
129
|
},
|
|
126
130
|
"devDependencies": {
|
|
127
|
-
"@nuxt/kit": "^4.4.
|
|
131
|
+
"@nuxt/kit": "^4.4.6",
|
|
128
132
|
"@nuxt/module-builder": "^1.0.2",
|
|
129
|
-
"
|
|
133
|
+
"@speedcurve/lux": "^4.4.3",
|
|
134
|
+
"rollup": "^4.60.4",
|
|
130
135
|
"unbuild": "^3.6.1",
|
|
131
|
-
"unimport": "^6.
|
|
136
|
+
"unimport": "^6.3.0"
|
|
132
137
|
},
|
|
133
138
|
"scripts": {
|
|
134
139
|
"build": "nuxt-module-build build",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as j,o,c as s,h as m,s as p,a as t,b as n,j as C,F as d,k as N,r as u,g as v,t as r,m as k,w as _,n as w,l as L,d as y,_ as S}from"./D4HTNcLU.js";const T={class:"py-1"},V={key:0,class:"panel-grids rounded-xl flex flex-col items-center justify-center py-16 gap-3"},B={class:"w-12 h-12 rounded-xl bg-(--color-surface-elevated) border border-(--color-border) flex items-center justify-center"},M={class:"stagger-children space-y-1.5"},$={class:"px-3.5 py-2.5 flex items-center gap-3"},H={class:"w-7 h-7 rounded-lg bg-(--color-surface-sunken) border border-(--color-border-subtle) flex items-center justify-center flex-shrink-0 overflow-hidden"},D=["src"],P=["innerHTML"],A={class:"flex-1 min-w-0"},F={class:"flex items-center gap-2"},I={class:"text-[13px] font-semibold tracking-tight truncate"},U={class:"text-[10px] px-1.5 py-0.5 rounded-full bg-(--color-surface-sunken) text-(--color-text-subtle) font-medium flex-shrink-0"},W={key:0,class:"text-[10px] font-mono text-(--color-text-subtle) truncate mt-0.5"},q={key:1,class:"text-[10px] font-mono text-(--color-text-subtle) mt-0.5"},z={class:"flex items-center gap-1 flex-shrink-0"},E={class:"text-xs space-y-0.5"},R={class:"font-semibold"},G={class:"opacity-70"},J={class:"opacity-50 mt-1 max-w-48 text-[11px]"},K=["href"],O={key:0,class:"mt-5 card overflow-hidden"},Q={class:"px-4 py-2.5 border-b border-(--color-border-subtle)"},X={class:"text-xs font-semibold uppercase tracking-wider text-(--color-text-subtle) flex items-center gap-1.5"},Y={class:"overflow-x-auto"},Z={class:"w-full text-xs"},ee={class:"border-b border-(--color-border-subtle)"},te={class:"inline-flex items-center justify-center gap-1"},oe={class:"px-4 py-2 font-medium whitespace-nowrap"},se={class:"flex items-center gap-2"},ae=["src"],le=["innerHTML"],ne=j({__name:"registry",setup(re){const g=[{key:"bundle",label:"Bundle",icon:"i-carbon-archive",desc:"Downloaded at build time, served from your domain"},{key:"proxy",label:"Proxy",icon:"i-carbon-security",desc:"Collection requests routed through your server"},{key:"partytown",label:"Partytown",icon:"i-carbon-container-software",desc:"Can run in a web worker via Partytown"}];function f(c,a){return c.capabilities?.[a]?c.defaultCapability?.[a]?"active":"available":"off"}function h(c){return c==="active"?"Active by default":c==="available"?"Supported (opt-in)":"Not supported"}return(c,a)=>{const l=C,b=L;return o(),s("div",T,[m(p)?.length?(o(),s(d,{key:1},[a[3]||(a[3]=N('<div class="flex items-center gap-4 mb-3 px-0.5" data-v-3f8fca8a><div class="flex items-center gap-1.5 text-[10px] font-medium text-(--color-text-subtle)" data-v-3f8fca8a><span class="cap-dot cap-dot-active" data-v-3f8fca8a></span> Active by default </div><div class="flex items-center gap-1.5 text-[10px] font-medium text-(--color-text-subtle)" data-v-3f8fca8a><span class="cap-dot cap-dot-available" data-v-3f8fca8a></span> Supported (opt-in) </div><div class="flex items-center gap-1.5 text-[10px] font-medium text-(--color-text-subtle)" data-v-3f8fca8a><span class="cap-dot cap-dot-off" data-v-3f8fca8a></span> Not supported </div></div>',1)),t("div",M,[(o(!0),s(d,null,u(m(p),(e,x)=>(o(),s("div",{key:x,class:"registry-row group"},[t("div",$,[t("div",H,[e.logo&&typeof e.logo=="string"&&e.logo.startsWith("http")?(o(),s("img",{key:0,class:"w-5 h-5 object-contain",src:typeof e.logo=="object"?e.logo.dark||e.logo.light:e.logo,alt:""},null,8,D)):e.logo?(o(),s("div",{key:1,class:"w-5 h-5 flex items-center [&>svg]:max-h-5 [&>svg]:max-w-5",innerHTML:typeof e.logo=="object"?e.logo.dark||e.logo.light:e.logo},null,8,P)):(o(),v(l,{key:2,name:"i-carbon-script",class:"text-sm text-(--color-text-subtle)"}))]),t("div",A,[t("div",F,[t("span",I,r(e.label),1),t("span",U,r(e.category),1)]),e.src&&e.src!==!1?(o(),s("div",W,r(e.src),1)):e.src===!1?(o(),s("div",q," npm (no script download) ")):k("",!0)]),t("div",z,[(o(),s(d,null,u(g,i=>n(b,{key:i.key},{content:_(()=>[t("div",E,[t("div",R,r(i.label),1),t("div",G,r(h(f(e,i.key))),1),t("div",J,r(i.desc),1)])]),default:_(()=>[t("div",{class:w(["cap-indicator",`cap-${f(e,i.key)}`])},[n(l,{name:i.icon,class:"text-xs"},null,8,["name"])],2)]),_:2},1024)),64))]),t("a",{href:`https://scripts.nuxt.com/scripts/${e.label.toLowerCase().replace(/ /g,"-")}`,target:"_blank",class:"opacity-0 group-hover:opacity-60 focus-visible:opacity-60 transition-opacity flex-shrink-0","aria-label":"View documentation"},[n(l,{name:"i-carbon-launch",class:"text-sm"})],8,K)])]))),128))]),m(p).length>3?(o(),s("div",O,[t("div",Q,[t("h4",X,[n(l,{name:"i-carbon-data-table",class:"text-sm"}),a[1]||(a[1]=y(" Capability Matrix ",-1))])]),t("div",Y,[t("table",Z,[t("thead",null,[t("tr",ee,[a[2]||(a[2]=t("th",{class:"px-4 py-2 text-left font-medium text-(--color-text-subtle)"}," Script ",-1)),(o(),s(d,null,u(g,e=>t("th",{key:e.key,class:"px-3 py-2 text-center font-medium text-(--color-text-subtle) whitespace-nowrap"},[n(b,{text:e.desc},{default:_(()=>[t("span",te,[n(l,{name:e.icon,class:"text-xs"},null,8,["name"]),y(" "+r(e.label),1)])]),_:2},1032,["text"])])),64))])]),t("tbody",null,[(o(!0),s(d,null,u(m(p),e=>(o(),s("tr",{key:e.registryKey||e.label,class:"border-b border-(--color-border-subtle) last:border-b-0 hover:bg-(--color-surface-sunken) transition-colors"},[t("td",oe,[t("div",se,[e.logo&&typeof e.logo=="string"&&e.logo.startsWith("http")?(o(),s("img",{key:0,class:"w-4 h-4 object-contain",src:typeof e.logo=="object"?e.logo.dark||e.logo.light:e.logo,alt:""},null,8,ae)):e.logo?(o(),s("div",{key:1,class:"w-4 h-4 flex items-center [&>svg]:max-h-4 [&>svg]:max-w-4",innerHTML:typeof e.logo=="object"?e.logo.dark||e.logo.light:e.logo},null,8,le)):(o(),v(l,{key:2,name:"i-carbon-script",class:"text-xs text-(--color-text-subtle)"})),y(" "+r(e.label),1)])]),(o(),s(d,null,u(g,x=>t("td",{key:x.key,class:"px-3 py-2 text-center"},[n(b,{text:h(f(e,x.key))},{default:_(()=>[t("div",{class:w(["cap-dot mx-auto",`cap-dot-${f(e,x.key)}`])},null,2)]),_:2},1032,["text"])])),64))]))),128))])])])])):k("",!0)],64)):(o(),s("div",V,[t("div",B,[n(l,{name:"i-carbon-catalog",class:"text-2xl text-(--color-text-subtle)"})]),a[0]||(a[0]=t("p",{class:"text-sm font-medium text-(--color-text-muted)"}," No registry scripts available ",-1))]))])}}}),ie=S(ne,[["__scopeId","data-v-3f8fca8a"]]);export{ie as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{x as We,y as Ve,z as Ge,A,B as Be,C as me,D as fe,E as ge,G as R,H as oe,I as Je,J as _e,K as Xe,f as O,L,M as j,N as se,O as ae,P as Qe,Q as Ye,R as re,S as xe,o as n,g as P,w as x,T as $,h as o,U as J,q as Ze,V as et,W as $e,X as Ee,Y as Fe,Z as Te,$ as tt,a0 as M,a1 as U,a2 as he,a3 as Ae,a4 as Re,a5 as ot,b as S,a6 as De,a7 as Le,a8 as z,a9 as X,aa as ve,ab as Ne,ac as Ie,ad as Me,ae as Ue,af as st,ag as at,ah as rt,ai as nt,c as v,n as D,a as i,t as h,_ as H,j as Q,d as T,m as B,aj as lt,ak as it,al as ut,am as we,an as dt,ao as ne,ap as ct,aq as pt,ar as ke,F as E,as as le,at as ie,r as N,au as Y,av as ft,aw as ze,l as vt,ax as yt,ay as ue,az as W,aA as mt,aB as qe,aC as V,aD as gt,aE as Ce,aF as _t,aG as ht,aH as Z,aI as bt,i as xt,aJ as de,aK as wt}from"./D4HTNcLU.js";const kt=Ve(()=>{const e=A(new Map),a=A(),t=R(()=>{for(const y of e.value.values())if(y)return!0;return!1}),s=Ge({scrollBody:A(!0)}),p=()=>{document.body.style.paddingRight="",document.body.style.marginRight="",document.body.style.pointerEvents="",document.documentElement.style.removeProperty("--scrollbar-width"),document.body.style.overflow=a.value??"",a.value=void 0};return Be(t,(y,d)=>{if(!me)return;if(!y){d&&p();return}a.value===void 0&&(a.value=document.body.style.overflow);const u=window.innerWidth-document.documentElement.clientWidth,m={padding:u,margin:0},_=s.scrollBody?.value?typeof s.scrollBody.value=="object"?fe({padding:s.scrollBody.value.padding===!0?u:s.scrollBody.value.padding,margin:s.scrollBody.value.margin===!0?u:s.scrollBody.value.margin},m):m:{padding:0,margin:0};u>0&&(document.body.style.paddingRight=typeof _.padding=="number"?`${_.padding}px`:String(_.padding),document.body.style.marginRight=typeof _.margin=="number"?`${_.margin}px`:String(_.margin),document.documentElement.style.setProperty("--scrollbar-width",`${u}px`),document.body.style.overflow="hidden"),ge(()=>{t.value&&(document.body.style.pointerEvents="none",document.body.style.overflow="hidden")})},{immediate:!0,flush:"sync"}),e});function qt(e){const a=Math.random().toString(36).substring(2,7),t=kt();t.value.set(a,e);const s=R({get:()=>t.value.get(a)??!1,set:p=>t.value.set(a,p)});return We(()=>{t.value.delete(a)}),s}let ce=0;function Ct(){oe(e=>{if(!me)return;const a=document.querySelectorAll("[data-reka-focus-guard]");document.body.insertAdjacentElement("afterbegin",a[0]??Pe()),document.body.insertAdjacentElement("beforeend",a[1]??Pe()),ce++,e(()=>{ce===1&&document.querySelectorAll("[data-reka-focus-guard]").forEach(t=>t.remove()),ce--})})}function Pe(){const e=document.createElement("span");return e.setAttribute("data-reka-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Pt=function(e){if(typeof document>"u")return null;var a=Array.isArray(e)?e[0]:e;return a.ownerDocument.body},G=new WeakMap,ee=new WeakMap,te={},pe=0,je=function(e){return e&&(e.host||je(e.parentNode))},St=function(e,a){return a.map(function(t){if(e.contains(t))return t;var s=je(t);return s&&e.contains(s)?s:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)}).filter(function(t){return!!t})},Ot=function(e,a,t,s){var p=St(a,Array.isArray(e)?e:[e]);te[t]||(te[t]=new WeakMap);var y=te[t],d=[],u=new Set,m=new Set(p),_=function(f){!f||u.has(f)||(u.add(f),_(f.parentNode))};p.forEach(_);var g=function(f){!f||m.has(f)||Array.prototype.forEach.call(f.children,function(w){if(u.has(w))g(w);else try{var C=w.getAttribute(s),b=C!==null&&C!=="false",l=(G.get(w)||0)+1,c=(y.get(w)||0)+1;G.set(w,l),y.set(w,c),d.push(w),l===1&&b&&ee.set(w,!0),c===1&&w.setAttribute(t,"true"),b||w.setAttribute(s,"true")}catch(r){console.error("aria-hidden: cannot operate on ",w,r)}})};return g(a),u.clear(),pe++,function(){d.forEach(function(f){var w=G.get(f)-1,C=y.get(f)-1;G.set(f,w),y.set(f,C),w||(ee.has(f)||f.removeAttribute(s),ee.delete(f)),C||f.removeAttribute(t)}),pe--,pe||(G=new WeakMap,G=new WeakMap,ee=new WeakMap,te={})}},Bt=function(e,a,t){t===void 0&&(t="data-aria-hidden");var s=Array.from(Array.isArray(e)?e:[e]),p=Pt(e);return p?(s.push.apply(s,Array.from(p.querySelectorAll("[aria-live], script"))),Ot(s,p,t,"aria-hidden")):function(){return null}};function $t(e){let a;Be(()=>Je(e),t=>{let s=!1;try{s=!!t?.closest("[popover]:not(:popover-open)")}catch{}t&&!s?a=Bt(t):a&&a()}),_e(()=>{a&&a()})}const Et=Xe(()=>A([]));function Ft(){const e=Et();return{add(a){const t=e.value[0];a!==t&&t?.pause(),e.value=Se(e.value,a),e.value.unshift(a)},remove(a){e.value=Se(e.value,a),e.value[0]?.resume()}}}function Se(e,a){const t=[...e],s=t.indexOf(a);return s!==-1&&t.splice(s,1),t}var Tt=O({__name:"FocusScope",props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["mountAutoFocus","unmountAutoFocus"],setup(e,{emit:a}){const t=e,s=a,{currentRef:p,currentElement:y}=L(),d=A(null),u=Ft(),m=Ze({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});oe(g=>{if(!me)return;const f=y.value;if(!t.trapped)return;function w(c){if(m.paused||!f)return;const r=c.target;f.contains(r)?d.value=r:j(d.value,{select:!0})}function C(c){if(m.paused||!f)return;const r=c.relatedTarget;r!==null&&(f.contains(r)||j(d.value,{select:!0}))}function b(c){const r=d.value;if(r===null||!c.some(k=>k.removedNodes.length>0))return;f.contains(r)||j(f)}document.addEventListener("focusin",w),document.addEventListener("focusout",C);const l=new MutationObserver(b);f&&l.observe(f,{childList:!0,subtree:!0}),g(()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",C),l.disconnect()})}),oe(async g=>{const f=y.value;if(await ge(),!f)return;u.add(m);const w=se();if(!f.contains(w)){const b=new CustomEvent(ae,xe);f.addEventListener(ae,l=>s("mountAutoFocus",l)),f.dispatchEvent(b),b.defaultPrevented||(Qe(Ye(f),{select:!0}),se()===w&&j(f))}g(()=>{f.removeEventListener(ae,c=>s("mountAutoFocus",c));const b=new CustomEvent(re,xe),l=c=>{s("unmountAutoFocus",c)};f.addEventListener(re,l),f.dispatchEvent(b),setTimeout(()=>{b.defaultPrevented||j(w??document.body,{select:!0}),f.removeEventListener(re,l),u.remove(m)},0)})});function _(g){if(!t.loop&&!t.trapped||m.paused)return;const f=g.key==="Tab"&&!g.altKey&&!g.ctrlKey&&!g.metaKey,w=se();if(f&&w){const C=g.currentTarget,[b,l]=et(C);b&&l?!g.shiftKey&&w===l?(g.preventDefault(),t.loop&&j(b,{select:!0})):g.shiftKey&&w===b&&(g.preventDefault(),t.loop&&j(l,{select:!0})):w===C&&g.preventDefault()}}return(g,f)=>(n(),P(o(J),{ref_key:"currentRef",ref:p,tabindex:"-1","as-child":g.asChild,as:g.as,onKeydown:_},{default:x(()=>[$(g.$slots,"default")]),_:3},8,["as-child","as"]))}}),At=Tt;const[K,Rt]=Te("PopoverRoot");var Dt=O({__name:"PopoverRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:["update:open"],setup(e,{emit:a}){const t=e,s=a,{modal:p}=$e(t),y=Ee(t,"open",s,{defaultValue:t.defaultOpen,passive:t.open===void 0}),d=A(),u=A(!1);return Rt({contentId:"",triggerId:"",modal:p,open:y,onOpenChange:m=>{y.value=m},onOpenToggle:()=>{y.value=!y.value},triggerElement:d,hasCustomAnchor:u}),(m,_)=>(n(),P(o(Fe),null,{default:x(()=>[$(m.$slots,"default",{open:o(y),close:()=>y.value=!1})]),_:3}))}}),Lt=Dt,Nt=O({__name:"PopoverAnchor",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const a=e;L();const t=K();return tt(()=>{t.hasCustomAnchor.value=!0}),_e(()=>{t.hasCustomAnchor.value=!1}),(s,p)=>(n(),P(o(he),M(U(a)),{default:x(()=>[$(s.$slots,"default")]),_:3},16))}}),It=Nt,Mt=O({__name:"PopoverArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(e){const a=e;return L(),(t,s)=>(n(),P(o(Ae),M(U(a)),{default:x(()=>[$(t.$slots,"default")]),_:3},16))}}),Ut=Mt,zt=O({__name:"PopoverClose",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const a=e;L();const t=K();return(s,p)=>(n(),P(o(J),{type:s.as==="button"?"button":void 0,as:s.as,"as-child":a.asChild,onClick:p[0]||(p[0]=y=>o(t).onOpenChange(!1))},{default:x(()=>[$(s.$slots,"default")]),_:3},8,["type","as","as-child"]))}}),jt=zt,Ht=O({__name:"PopoverContentImpl",props:{trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:a}){const t=e,s=a,p=Re(ot(t,"trapFocus","disableOutsidePointerEvents")),{forwardRef:y}=L(),d=K();return Ct(),(u,m)=>(n(),P(o(At),{"as-child":"",loop:"",trapped:u.trapFocus,onMountAutoFocus:m[5]||(m[5]=_=>s("openAutoFocus",_)),onUnmountAutoFocus:m[6]||(m[6]=_=>s("closeAutoFocus",_))},{default:x(()=>[S(o(De),{"as-child":"","disable-outside-pointer-events":u.disableOutsidePointerEvents,onPointerDownOutside:m[0]||(m[0]=_=>s("pointerDownOutside",_)),onInteractOutside:m[1]||(m[1]=_=>s("interactOutside",_)),onEscapeKeyDown:m[2]||(m[2]=_=>s("escapeKeyDown",_)),onFocusOutside:m[3]||(m[3]=_=>s("focusOutside",_)),onDismiss:m[4]||(m[4]=_=>o(d).onOpenChange(!1))},{default:x(()=>[S(o(Le),z(o(p),{id:o(d).contentId,ref:o(y),"data-state":o(d).open.value?"open":"closed","aria-labelledby":o(d).triggerId,style:{"--reka-popover-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-popover-content-available-width":"var(--reka-popper-available-width)","--reka-popover-content-available-height":"var(--reka-popper-available-height)","--reka-popover-trigger-width":"var(--reka-popper-anchor-width)","--reka-popover-trigger-height":"var(--reka-popper-anchor-height)"},role:"dialog"}),{default:x(()=>[$(u.$slots,"default")]),_:3},16,["id","data-state","aria-labelledby"])]),_:3},8,["disable-outside-pointer-events"])]),_:3},8,["trapped"]))}}),He=Ht,Kt=O({__name:"PopoverContentModal",props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:a}){const t=e,s=a,p=K(),y=A(!1);qt(!0);const d=X(t,s),{forwardRef:u,currentElement:m}=L();return $t(m),(_,g)=>(n(),P(He,z(o(d),{ref:o(u),"trap-focus":o(p).open.value,"disable-outside-pointer-events":"",onCloseAutoFocus:g[0]||(g[0]=ve(f=>{s("closeAutoFocus",f),y.value||o(p).triggerElement.value?.focus()},["prevent"])),onPointerDownOutside:g[1]||(g[1]=f=>{s("pointerDownOutside",f);const w=f.detail.originalEvent,C=w.button===0&&w.ctrlKey===!0,b=w.button===2||C;y.value=b}),onFocusOutside:g[2]||(g[2]=ve(()=>{},["prevent"]))}),{default:x(()=>[$(_.$slots,"default")]),_:3},16,["trap-focus"]))}}),Wt=Kt,Vt=O({__name:"PopoverContentNonModal",props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:a}){const t=e,s=a,p=K(),y=A(!1),d=A(!1),u=X(t,s);return(m,_)=>(n(),P(He,z(o(u),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:_[0]||(_[0]=g=>{s("closeAutoFocus",g),g.defaultPrevented||(y.value||o(p).triggerElement.value?.focus(),g.preventDefault()),y.value=!1,d.value=!1}),onInteractOutside:_[1]||(_[1]=async g=>{s("interactOutside",g),g.defaultPrevented||(y.value=!0,g.detail.originalEvent.type==="pointerdown"&&(d.value=!0));const f=g.target;o(p).triggerElement.value?.contains(f)&&g.preventDefault(),g.detail.originalEvent.type==="focusin"&&d.value&&g.preventDefault()})}),{default:x(()=>[$(m.$slots,"default")]),_:3},16))}}),Gt=Vt,Jt=O({__name:"PopoverContent",props:{forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:a}){const t=e,s=a,p=K(),y=X(t,s),{forwardRef:d}=L();return p.contentId||=Ne(void 0,"reka-popover-content"),(u,m)=>(n(),P(o(Ie),{present:u.forceMount||o(p).open.value},{default:x(()=>[o(p).modal.value?(n(),P(Wt,z({key:0},o(y),{ref:o(d)}),{default:x(()=>[$(u.$slots,"default")]),_:3},16)):(n(),P(Gt,z({key:1},o(y),{ref:o(d)}),{default:x(()=>[$(u.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),Xt=Jt,Qt=O({__name:"PopoverPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const a=e;return(t,s)=>(n(),P(o(Me),M(U(a)),{default:x(()=>[$(t.$slots,"default")]),_:3},16))}}),Yt=Qt,Zt=O({__name:"PopoverTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const a=e,t=K(),{forwardRef:s,currentElement:p}=L();return t.triggerId||=Ne(void 0,"reka-popover-trigger"),Ue(()=>{t.triggerElement.value=p.value}),(y,d)=>(n(),P(st(o(t).hasCustomAnchor.value?o(J):o(he)),{"as-child":""},{default:x(()=>[S(o(J),{id:o(t).triggerId,ref:o(s),type:y.as==="button"?"button":void 0,"aria-haspopup":"dialog","aria-expanded":o(t).open.value,"aria-controls":o(t).contentId,"data-state":o(t).open.value?"open":"closed",as:y.as,"as-child":a.asChild,onClick:o(t).onOpenToggle},{default:x(()=>[$(y.$slots,"default")]),_:3},8,["id","type","aria-expanded","aria-controls","data-state","as","as-child","onClick"])]),_:3}))}}),eo=Zt,to=O({__name:"HoverCardArrow",props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"svg"}},setup(e){const a=e;return L(),(t,s)=>(n(),P(o(Ae),M(U(a)),{default:x(()=>[$(t.$slots,"default")]),_:3},16))}}),oo=to;const[be,so]=Te("HoverCardRoot");var ao=O({__name:"HoverCardRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},openDelay:{type:Number,required:!1,default:700},closeDelay:{type:Number,required:!1,default:300}},emits:["update:open"],setup(e,{emit:a}){const t=e,s=a,{openDelay:p,closeDelay:y}=$e(t);L();const d=Ee(t,"open",s,{defaultValue:t.defaultOpen,passive:t.open===void 0}),u=A(0),m=A(0),_=A(!1),g=A(!1),f=A(!1),w=A();function C(){clearTimeout(m.value),u.value=window.setTimeout(()=>d.value=!0,p.value)}function b(){clearTimeout(u.value),!_.value&&!g.value&&(m.value=window.setTimeout(()=>d.value=!1,y.value))}function l(){d.value=!1}return so({open:d,onOpenChange(c){d.value=c},onOpen:C,onClose:b,onDismiss:l,hasSelectionRef:_,isPointerDownOnContentRef:g,isPointerInTransitRef:f,triggerElement:w}),(c,r)=>(n(),P(o(Fe),null,{default:x(()=>[$(c.$slots,"default",{open:o(d)})]),_:3}))}}),ro=ao;function ye(e){return a=>a.pointerType==="touch"?void 0:e()}function no(e){const a=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();)a.push(t.currentNode);return a}var lo=O({__name:"HoverCardContentImpl",props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(e,{emit:a}){const t=e,s=a,p=Re(t),{forwardRef:y,currentElement:d}=L(),u=be(),{isPointerInTransit:m,onPointerExit:_}=at(u.triggerElement,d);rt(u.isPointerInTransitRef,m,{direction:"rtl"}),_(()=>{u.onClose()});const g=A(!1);let f;oe(C=>{if(g.value){const b=document.body;f=b.style.userSelect||b.style.webkitUserSelect,b.style.userSelect="none",b.style.webkitUserSelect="none",C(()=>{b.style.userSelect=f,b.style.webkitUserSelect=f})}});function w(){g.value=!1,u.isPointerDownOnContentRef.value=!1,ge(()=>{document.getSelection()?.toString()!==""&&(u.hasSelectionRef.value=!0)})}return Ue(()=>{d.value&&(document.addEventListener("pointerup",w),no(d.value).forEach(b=>b.setAttribute("tabindex","-1"))),nt(window,"scroll",C=>{C.target?.contains(u.triggerElement.value)&&u.onDismiss()},{capture:!0})}),_e(()=>{document.removeEventListener("pointerup",w),u.hasSelectionRef.value=!1,u.isPointerDownOnContentRef.value=!1}),(C,b)=>(n(),P(o(De),{"as-child":"","disable-outside-pointer-events":!1,onEscapeKeyDown:b[1]||(b[1]=l=>s("escapeKeyDown",l)),onPointerDownOutside:b[2]||(b[2]=l=>s("pointerDownOutside",l)),onFocusOutside:b[3]||(b[3]=ve(l=>s("focusOutside",l),["prevent"])),onDismiss:o(u).onDismiss},{default:x(()=>[S(o(Le),z({...o(p),...C.$attrs},{ref:o(y),"data-state":o(u).open.value?"open":"closed",style:{userSelect:g.value?"text":void 0,WebkitUserSelect:g.value?"text":void 0,"--reka-hover-card-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-hover-card-content-available-width":"var(--reka-popper-available-width)","--reka-hover-card-content-available-height":"var(--reka-popper-available-height)","--reka-hover-card-trigger-width":"var(--reka-popper-anchor-width)","--reka-hover-card-trigger-height":"var(--reka-popper-anchor-height)"},onPointerdown:b[0]||(b[0]=l=>{l.currentTarget.contains(l.target)&&(g.value=!0),o(u).hasSelectionRef.value=!1,o(u).isPointerDownOnContentRef.value=!0})}),{default:x(()=>[$(C.$slots,"default")]),_:3},16,["data-state","style"])]),_:3},8,["onDismiss"]))}}),io=lo,uo=O({__name:"HoverCardContent",props:{forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside"],setup(e,{emit:a}){const p=X(e,a),{forwardRef:y}=L(),d=be();return(u,m)=>(n(),P(o(Ie),{present:u.forceMount||o(d).open.value},{default:x(()=>[S(io,z(o(p),{ref:o(y),onPointerenter:m[0]||(m[0]=_=>o(ye)(o(d).onOpen)(_))}),{default:x(()=>[$(u.$slots,"default")]),_:3},16)]),_:3},8,["present"]))}}),co=uo,po=O({__name:"HoverCardPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const a=e;return(t,s)=>(n(),P(o(Me),M(U(a)),{default:x(()=>[$(t.$slots,"default")]),_:3},16))}}),fo=po,vo=O({__name:"HoverCardTrigger",props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"a"}},setup(e){const{forwardRef:a,currentElement:t}=L(),s=be();s.triggerElement=t;function p(){setTimeout(()=>{!s.isPointerInTransitRef.value&&!s.open.value&&s.onClose()},0)}return(y,d)=>(n(),P(o(he),{"as-child":"",reference:y.reference},{default:x(()=>[S(o(J),{ref:o(a),"as-child":y.asChild,as:y.as,"data-state":o(s).open.value?"open":"closed","data-grace-area-trigger":"",onPointerenter:d[0]||(d[0]=u=>o(ye)(o(s).onOpen)(u)),onPointerleave:d[1]||(d[1]=u=>o(ye)(p)(u)),onFocus:d[2]||(d[2]=u=>o(s).onOpen()),onBlur:d[3]||(d[3]=u=>o(s).onClose())},{default:x(()=>[$(y.$slots,"default")]),_:3},8,["as-child","as","data-state"])]),_:3},8,["reference"]))}}),yo=vo;const mo={class:"capitalize"},go=O({__name:"ScriptStatus",props:{status:{},error:{}},setup(e){const a=R(()=>e.error?e.error==="TypeError: Failed to fetch"?"CORS Error":e.error:e.status||"unknown"),t=R(()=>{if(e.error||e.status==="error")return"status-error";switch(e.status){case"loaded":return"status-loaded";case"loading":return"status-loading";case"awaitingLoad":return"status-awaiting";case"validation-failed":return"status-validation";default:return"status-unknown"}});return(s,p)=>(n(),v("div",{class:D(["script-status",o(t)])},[p[0]||(p[0]=i("span",{class:"script-status-dot"},null,-1)),i("span",mo,h(o(a)),1)],2))}}),_o=Object.assign(H(go,[["__scopeId","data-v-5cf865ba"]]),{__name:"ScriptStatus"}),ho={key:0,class:"script-metric"},bo=O({__name:"ScriptSize",props:{size:{}},setup(e){return(a,t)=>{const s=Q;return e.size?(n(),v("span",ho,[S(s,{name:"i-carbon-meter",class:"text-[10px] opacity-50"}),T(" "+h(e.size),1)])):B("",!0)}}}),xo=Object.assign(H(bo,[["__scopeId","data-v-b147450b"]]),{__name:"ScriptSize"}),wo={key:0,class:"script-metric"},ko=O({__name:"ScriptLoadTime",props:{loadTime:{}},setup(e){return(a,t)=>{const s=Q;return e.loadTime?(n(),v("span",wo,[S(s,{name:"i-carbon-timer",class:"text-[10px] opacity-50"}),T(" "+h(e.loadTime),1)])):B("",!0)}}}),qo=Object.assign(H(ko,[["__scopeId","data-v-c6837c50"]]),{__name:"ScriptLoadTime"}),Co={Root:ro,Trigger:yo,Portal:fo,Content:co,Arrow:oo},Po={Root:Lt,Trigger:eo,Portal:Yt,Content:Xt,Arrow:Ut,Close:jt,Anchor:It};function So(e,a={}){const t=e.detail.originalEvent,s=t.target;if(!s?.isConnected){e.preventDefault();return}a.scrollable&&(t.offsetX>s.clientWidth||t.offsetY>s.clientHeight)&&e.preventDefault()}const Oo={slots:{content:"bg-default shadow-lg rounded-md ring ring-default data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-popover-content-transform-origin) focus:outline-none pointer-events-auto",arrow:"fill-bg stroke-default"}},Bo={__name:"UPopover",props:{mode:{type:null,required:!1,default:"click"},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},reference:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:null,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},modal:{type:Boolean,required:!1},openDelay:{type:Number,required:!1,default:0},closeDelay:{type:Number,required:!1,default:0}},emits:["close:prevent","update:open"],setup(e,{emit:a}){const t=e,s=a,p=lt(),y=it(),d=ut("popover",t),u=t.mode==="hover"?we(t,"defaultOpen","open","openDelay","closeDelay"):we(t,"defaultOpen","open","modal"),m=X(u,s),_=dt(ne(()=>t.portal)),g=ne(()=>fe(t.content,{side:"bottom",sideOffset:8,collisionPadding:8})),f=R(()=>t.dismissible?{pointerDownOutside:So}:["interactOutside","escapeKeyDown"].reduce((c,r)=>(c[r]=q=>{q.preventDefault(),s("close:prevent")},c),{})),w=ne(()=>fe(t.arrow,{rounded:!0})),C=R(()=>ke({extend:ke(Oo),...y.ui?.popover||{}})({side:g.value.side})),b=R(()=>t.mode==="hover"?Co:Po);return(l,c)=>(n(),P(o(b).Root,M(U(o(m))),{default:x(({open:r,close:q})=>[p.default||e.reference?(n(),P(o(b).Trigger,{key:0,"as-child":"",reference:e.reference,class:D(t.class)},{default:x(()=>[$(l.$slots,"default",{open:r})]),_:2},1032,["reference","class"])):B("",!0),"Anchor"in b.value&&p.anchor?(n(),P(o(b).Anchor,{key:1,"as-child":""},{default:x(()=>[$(l.$slots,"anchor",M(U(q?{close:q}:{})))]),_:2},1024)):B("",!0),S(o(b).Portal,M(U(o(_))),{default:x(()=>[S(o(ct),null,{default:x(()=>[S(o(b).Content,z(g.value,{"data-slot":"content",class:C.value.content({class:[!p.default&&t.class,o(d)?.content]})},pt(f.value)),{default:x(()=>[$(l.$slots,"content",M(U(q?{close:q}:{}))),e.arrow?(n(),P(o(b).Arrow,z({key:0},w.value,{"data-slot":"arrow",class:C.value.arrow({class:o(d)?.arrow})}),null,16,["class"])):B("",!0)]),_:2},1040,["class"])]),_:2},1024)]),_:2},1040)]),_:3},16))}},$o={key:0,class:"inline-flex items-center gap-1"},Eo={class:"ui-tooltip-panel"},Fo={class:"font-semibold"},To={key:0,class:"text-(--color-text-muted) text-xs"},Ao={class:"ui-tooltip-panel"},Ro={class:"font-semibold"},Do={key:0,class:"text-(--color-text-muted) text-xs"},Oe={xs:"max-w-[80px]",sm:"max-w-[160px]",md:"max-w-[250px]",lg:"max-w-[440px]",xl:"max-w-[640px]"},Lo=O({__name:"UiTooltip",props:{text:{},title:{},description:{},label:{},size:{},iconSize:{},side:{default:"top"}},setup(e){const a=R(()=>({side:e.side}));return(t,s)=>{const p=Q,y=Bo;return e.label?(n(),v("span",$o,[i("span",null,h(e.label),1),S(y,{"data-ui":"UiTooltip",mode:"hover",role:"tooltip",content:o(a),class:"inline-flex"},{content:x(()=>[i("div",Eo,[i("div",{class:D(`w-max ${Oe[e.size||"md"]}`)},[e.title?(n(),v(E,{key:0},[i("div",Fo,h(e.title),1),e.description?(n(),v("div",To,h(e.description),1)):B("",!0)],64)):(n(),v(E,{key:1},[T(h(e.text),1)],64))],2)])]),default:x(()=>[S(p,{name:"i-carbon-help",class:"size-3 text-(--color-text-subtle) hover:text-(--color-text-muted) transition-colors"})]),_:1},8,["content"])])):(n(),P(y,{key:1,"data-ui":"UiTooltip",mode:"hover",role:"tooltip",content:o(a),class:D(t.$slots.default?"inline-block":"inline-flex")},{content:x(()=>[i("div",Ao,[i("div",{class:D(`w-max ${Oe[e.size||"md"]}`)},[t.$slots.text?$(t.$slots,"text",{key:0},void 0,!0):e.title?(n(),v(E,{key:1},[i("div",Ro,h(e.title),1),e.description?(n(),v("div",Do,h(e.description),1)):B("",!0)],64)):(n(),v(E,{key:2},[T(h(e.text),1)],64))],2)])]),default:x(()=>[t.$slots.default?$(t.$slots,"default",{key:0},void 0,!0):(n(),P(p,{key:1,name:"i-carbon-help",color:"primary",size:e.iconSize||"md"},null,8,["size"]))]),_:3},8,["content","class"]))}}}),No=Object.assign(H(Lo,[["__scopeId","data-v-16948115"]]),{__name:"UiTooltip"}),Io={key:0,class:"panel-grids flex flex-col items-center justify-center py-8 gap-1.5 rounded-b-xl"},Mo={key:1,class:"waterfall-container"},Uo={class:"waterfall-stats"},zo={class:"waterfall-stat"},jo={class:"waterfall-stat-value"},Ho={class:"waterfall-stat"},Ko={class:"waterfall-stat-value"},Wo={class:"waterfall-stat"},Vo={class:"waterfall-stat-value"},Go={class:"waterfall-proxied-badge"},Jo={class:"waterfall-stat-value"},Xo={class:"text-xs space-y-1 max-w-60"},Qo={class:"opacity-70"},Yo={class:"px-1 py-px rounded bg-white/10 text-[10px]"},Zo={key:0,class:"opacity-70"},es={class:"flex items-center gap-1"},ts={class:"text-xs space-y-0.5"},os={class:"font-mono font-semibold"},ss={class:"opacity-70"},as={key:0,class:"opacity-60"},rs={key:1,class:"text-emerald-400"},ns={class:"waterfall-table"},ls={class:"waterfall-legend"},is={class:"waterfall-rows"},us={class:"waterfall-url"},ds={class:"waterfall-bar-track"},cs={class:"waterfall-duration"},ps={class:"text-xs space-y-1.5 max-w-80"},fs={class:"font-mono text-[11px] break-all opacity-90"},vs={class:"flex items-center gap-2 opacity-70"},ys={class:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5"},ms={class:"flex items-center gap-1 opacity-60"},gs={class:"tabular-nums text-right"},_s={key:0,class:"flex items-center gap-1 text-emerald-400"},hs=O({__name:"NetworkWaterfall",props:{requests:{},domains:{default:()=>[]},proxyRoutes:{default:()=>[]},privacyLevel:{},proxyPrefix:{},isFirstParty:{type:Boolean,default:!1}},setup(e){const a=[{key:"dns",label:"DNS",color:"oklch(70% 0.15 165)"},{key:"connect",label:"Connect",color:"oklch(72% 0.14 75)"},{key:"ssl",label:"SSL",color:"oklch(65% 0.15 300)"},{key:"ttfb",label:"TTFB",color:"oklch(65% 0.13 250)"},{key:"download",label:"Download",color:"oklch(72% 0.12 200)"}],t=R(()=>[...e.requests].sort((c,r)=>c.startTime-r.startTime)),s=R(()=>{if(!t.value.length)return{min:0,max:1};const c=t.value[0].startTime,r=Math.max(...t.value.map(q=>q.startTime+q.duration));return{min:c,max:r||c+1}}),p=R(()=>e.requests.reduce((c,r)=>c+r.transferSize,0)),y=R(()=>s.value.max-s.value.min),d=R(()=>e.requests.filter(c=>c.isProxied).length),u=R(()=>{const c=new Map;for(const r of e.requests){const q=_(r.url),F=c.get(q)||{count:0,transfer:0,proxied:!1};F.count++,F.transfer+=r.transferSize,r.isProxied&&(F.proxied=!0),c.set(q,F)}return[...c.entries()].sort((r,q)=>q[1].transfer-r[1].transfer).map(([r,q])=>({domain:r,...q,isKnown:e.domains.includes(r),proxyRoute:e.proxyRoutes.find(F=>F.target.includes(r))}))}),m=/\/_scripts\/p\/([^/]+)/;function _(c){try{return new URL(c).hostname}catch{return c.match(m)?.[1]||"localhost"}}function g(c){const{min:r,max:q}=s.value,F=q-r;return{left:`${(c.startTime-r)/F*100}%`,width:`${Math.max(c.duration/F*100,.5)}%`}}function f(c,r){if(c.duration===0)return"0%";const q=c[r.key];return`${Math.max(q/c.duration*100,q>0?2:0)}%`}function w(c){try{const r=new URL(c),q=(r.pathname+r.search).replace("/_scripts","");return q.length>100?`${q.slice(0,97)}...`:q}catch{return c.length>100?`${c.slice(0,97)}...`:c}}function C(c){return{script:"Script",xmlhttprequest:"XHR",fetch:"Fetch",img:"Image",css:"Stylesheet",beacon:"Beacon"}[c]||c}function b(c){return{script:"i-carbon-code",xmlhttprequest:"i-carbon-send-alt",fetch:"i-carbon-send-alt",img:"i-carbon-image",css:"i-carbon-paint-brush",beacon:"i-carbon-satellite-radar"}[c]||"i-carbon-document"}function l(c){return c.transferSize===0&&c.decodedBodySize>0?304:200}return(c,r)=>{const q=Q,F=No;return e.requests.length?(n(),v("div",Mo,[i("div",Uo,[i("span",zo,[i("span",jo,h(e.requests.length),1),r[1]||(r[1]=i("span",{class:"waterfall-stat-label"},"req",-1))]),r[7]||(r[7]=i("span",{class:"waterfall-sep"},null,-1)),i("span",Ho,[i("span",Ko,h(o(le)(o(p))),1)]),r[8]||(r[8]=i("span",{class:"waterfall-sep"},null,-1)),i("span",Wo,[i("span",Vo,h(o(ie)(Math.round(o(y)))),1)]),e.isFirstParty&&o(d)>0?(n(),v(E,{key:0},[r[5]||(r[5]=i("span",{class:"waterfall-sep"},null,-1)),S(F,null,{content:x(()=>[i("div",Xo,[r[4]||(r[4]=i("div",{class:"font-semibold"}," First-Party Proxy ",-1)),i("div",Qo,[T(h(o(d))+" request"+h(o(d)!==1?"s":"")+" routed through ",1),i("code",Yo,h(e.proxyPrefix||"/_scripts/p"),1)]),e.privacyLevel?(n(),v("div",Zo,[r[3]||(r[3]=T(" Privacy: ",-1)),i("span",{class:D(e.privacyLevel==="full"?"text-emerald-400":e.privacyLevel==="partial"?"text-amber-400":"")},h(e.privacyLevel),3)])):B("",!0)])]),default:x(()=>[i("span",Go,[S(q,{name:"i-carbon-security",class:"text-[10px]"}),i("span",Jo,h(o(d))+"/"+h(e.requests.length),1),r[2]||(r[2]=T(" proxied ",-1))])]),_:1})],64)):B("",!0),o(u).length>1?(n(),v(E,{key:1},[r[6]||(r[6]=i("span",{class:"waterfall-sep"},null,-1)),i("div",es,[(n(!0),v(E,null,N(o(u),k=>(n(),P(F,{key:k.domain},{content:x(()=>[i("div",ts,[i("div",os,h(k.domain),1),i("div",ss,h(k.count)+" req · "+h(o(le)(k.transfer)),1),k.proxyRoute?(n(),v("div",as,h(k.proxyRoute.target)+" → "+h(k.proxyRoute.local),1)):B("",!0),k.proxied?(n(),v("div",rs," Proxied through first-party ")):B("",!0)])]),default:x(()=>[i("span",{class:D(["domain-pill",k.proxied?"domain-pill-proxied":""])},[k.proxied?(n(),P(q,{key:0,name:"i-carbon-security",class:"text-[8px]"})):B("",!0),T(" "+h(k.domain),1)],2)]),_:2},1024))),128))])],64)):B("",!0)]),i("div",ns,[i("div",ls,[(n(),v(E,null,N(a,k=>i("div",{key:k.key,class:"waterfall-legend-item"},[i("span",{class:"waterfall-legend-dot",style:Y({background:k.color})},null,4),T(" "+h(k.label),1)])),64))]),i("div",is,[(n(!0),v(E,null,N(o(t),(k,Ke)=>(n(),P(F,{key:Ke},{content:x(()=>[i("div",ps,[i("div",fs,h(k.url),1),i("div",vs,[i("span",null,h(C(k.initiatorType)),1),r[10]||(r[10]=i("span",{class:"opacity-30"},"·",-1)),i("span",null,h(o(ie)(Math.round(k.duration))),1),k.transferSize>0?(n(),v(E,{key:0},[r[9]||(r[9]=i("span",{class:"opacity-30"},"·",-1)),i("span",null,h(o(le)(k.transferSize)),1)],64)):B("",!0)]),i("div",ys,[(n(),v(E,null,N(a,I=>(n(),v(E,{key:I.key},[k[I.key]>.1?(n(),v(E,{key:0},[i("div",ms,[i("span",{class:"w-1.5 h-1.5 rounded-sm inline-block",style:Y({background:I.color})},null,4),T(" "+h(I.label),1)]),i("div",gs,h(k[I.key].toFixed(1))+"ms ",1)],64)):B("",!0)],64))),64))]),k.isProxied?(n(),v("div",_s,[S(q,{name:"i-carbon-security",class:"text-[10px]"}),r[11]||(r[11]=T(" Proxied through first-party ",-1))])):B("",!0)])]),default:x(()=>[i("div",{class:D(["waterfall-row",k.isProxied?"waterfall-row-proxied":""])},[i("div",{class:D(["waterfall-status",l(k)===304?"waterfall-status-304":"waterfall-status-200"])},h(l(k)),3),S(q,{name:k.isProxied?"i-carbon-security":b(k.initiatorType),class:D(["waterfall-row-icon",k.isProxied?"waterfall-row-icon-proxied":""])},null,8,["name","class"]),i("div",us,h(w(k.url)),1),i("div",ds,[i("div",{class:"waterfall-bar",style:Y(g(k))},[(n(),v(E,null,N(a,I=>i("div",{key:I.key,style:Y({width:f(k,I),background:I.color}),class:"h-full"},null,4)),64))],4)]),i("div",cs,h(o(ie)(Math.round(k.duration))),1)],2)]),_:2},1024))),128))])])])):(n(),v("div",Io,[S(q,{name:"i-carbon-network-4",class:"text-xl text-(--color-text-subtle)"}),r[0]||(r[0]=i("p",{class:"text-xs text-(--color-text-subtle)"}," Requests appear as the script loads ",-1))]))}}}),bs=Object.assign(H(hs,[["__scopeId","data-v-d16c88db"]]),{__name:"NetworkWaterfall"});function xs(e=2e3){const{copy:a,copied:t}=ft({legacy:!0,copiedDuring:e});return{copy:a,copied:t}}const ws=O({__name:"DevtoolsCopyButton",props:{text:{}},setup(e){const{copy:a,copied:t}=xs();return(s,p)=>{const y=ze,d=vt;return n(),P(d,{text:o(t)?"Copied!":"Copy"},{default:x(()=>[S(y,{icon:o(t)?"carbon:checkmark":"carbon:copy","aria-label":o(t)?"Copied":"Copy to clipboard",class:D(o(t)?"text-[var(--seo-green)]":""),onClick:p[0]||(p[0]=u=>o(a)(e.text))},null,8,["icon","aria-label","class"])]),_:1},8,["text"])}}}),ks=Object.assign(ws,{__name:"DevtoolsCopyButton"}),qs=["innerHTML"],Cs=O({__name:"OCodeBlock",props:{code:{},lang:{},lines:{type:Boolean,default:!1},transformRendered:{type:Function}},setup(e){const a=yt(()=>e.code,e.lang),t=R(()=>e.transformRendered?e.transformRendered(a.value||""):a.value);return(s,p)=>(n(),v("pre",{class:D(["code-block p-5",e.lines?"code-block-lines":""]),innerHTML:o(t)},null,10,qs))}}),Ps=Object.assign(Cs,{__name:"OCodeBlock"}),Ss={class:"devtools-snippet"},Os={key:0,class:"devtools-snippet-header"},Bs={class:"devtools-snippet-label"},$s=O({__name:"DevtoolsSnippet",props:{label:{},code:{},lang:{default:"js"}},setup(e){return(a,t)=>{const s=ks,p=Ps;return n(),v("div",Ss,[e.label||a.$slots.header?(n(),v("div",Os,[$(a.$slots,"header",{},()=>[i("code",Bs,h(e.label),1)],!0),S(s,{text:e.code},null,8,["text"])])):B("",!0),S(p,{code:e.code,lang:e.lang,class:"devtools-snippet-block"},null,8,["code","lang"])])}}}),Es=Object.assign(H($s,[["__scopeId","data-v-265ccc31"]]),{__name:"DevtoolsSnippet"}),Fs={class:"py-1"},Ts={key:0,class:"panel-grids rounded-xl flex flex-col items-center justify-center py-16 gap-3"},As={class:"w-12 h-12 rounded-xl bg-(--color-surface-elevated) border border-(--color-border) flex items-center justify-center"},Rs={class:"filter-bar"},Ds=["onClick"],Ls={class:"filter-chip-count"},Ns={class:"stagger-children space-y-3"},Is={class:"px-4 py-3 flex items-center justify-between gap-3"},Ms={class:"flex items-center gap-2.5 min-w-0"},Us={class:"w-7 h-7 rounded-lg bg-(--color-surface-sunken) border border-(--color-border-subtle) flex items-center justify-center flex-shrink-0 overflow-hidden"},zs=["src"],js=["innerHTML"],Hs=["src"],Ks={class:"min-w-0"},Ws={class:"flex items-center gap-2"},Vs=["href","title"],Gs=["href"],Js={class:"px-4 pb-3 flex items-center gap-2 flex-wrap"},Xs={key:0,class:"status-enabled"},Qs={key:1,class:"inline-flex items-center gap-1 text-[11px] text-(--color-text-subtle) font-mono"},Ys={class:"border-t border-(--color-border-subtle)"},Zs={class:"flex items-center border-b border-(--color-border-subtle)"},ea=["onClick"],ta={key:0,class:"text-[9px] px-1 py-px rounded-full bg-(--color-surface-sunken) tabular-nums font-mono"},oa={key:0,class:"p-3"},sa={key:0,class:"text-xs text-(--color-text-subtle) py-2 text-center"},aa={key:1,class:"event-timeline"},ra={class:"event-time"},na={key:0,class:"flex items-center gap-2 min-w-0"},la={class:"text-[11px] text-(--color-text-subtle) truncate"},ia={key:1,class:"event-fn"},ua={key:1},da={key:2,class:"p-3"},ca=O({__name:"index",setup(e){const a=[{label:"Events",value:"events",icon:"i-carbon-list"},{label:"Network",value:"network",icon:"i-carbon-network-4"},{label:"API",value:"api",icon:"i-carbon-code"}],t=A("all"),s=R(()=>{const d=Object.values(ue.value||{}),u=d.filter(_=>V(_)!=="awaitingLoad").length,m=d.filter(_=>V(_)==="awaitingLoad").length;return{total:d.length,active:u,awaiting:m}}),p=R(()=>{const d=ue.value||{};return t.value==="all"?d:Object.fromEntries(Object.entries(d).filter(([,u])=>{const m=V(u);return t.value==="active"?m!=="awaitingLoad":m==="awaitingLoad"}))});function y(d){switch(d){case"loaded":return"status-badge-loaded";case"loading":return"status-badge-loading";case"awaitingLoad":return"status-badge-awaiting";case"removed":case"error":return"status-badge-error";case"validation-failed":return"status-badge-validation";default:return"status-badge-default"}}return(d,u)=>{const m=Q,_=ze,g=_o,f=xo,w=qo,C=bs,b=Es;return n(),v("div",Fs,[Object.keys(o(ue)||{}).length?(n(),v(E,{key:1},[i("div",Rs,[(n(!0),v(E,null,N([{key:"all",label:"All",count:o(s).total},{key:"active",label:"Active",count:o(s).active},{key:"awaiting",label:"Awaiting",count:o(s).awaiting}],l=>(n(),v("button",{key:l.key,class:D(["filter-chip",o(t)===l.key?"filter-chip-active":""]),onClick:c=>t.value=l.key},[T(h(l.label)+" ",1),i("span",Ls,h(l.count),1)],10,Ds))),128))]),i("div",Ns,[(n(!0),v(E,null,N(o(p),(l,c)=>(n(),v("div",{key:c,class:"card overflow-hidden"},[i("div",Is,[i("div",Ms,[i("div",Us,[o(W)(l)&&typeof o(W)(l)=="string"&&o(W)(l).startsWith("http")?(n(),v("img",{key:0,class:"w-5 h-5 object-contain",src:o(W)(l),alt:""},null,8,zs)):o(W)(l)?(n(),v("div",{key:1,class:"w-5 h-5 flex items-center [&>svg]:max-w-5 [&>svg]:max-h-5",innerHTML:o(W)(l)},null,8,js)):l.src&&!l.src.startsWith("/")?(n(),v("img",{key:2,src:`https://www.google.com/s2/favicons?domain=${o(mt)(l.src)}`,class:"w-4 h-4 rounded-sm",alt:""},null,8,Hs)):(n(),P(m,{key:3,name:"i-carbon-script",class:"text-sm text-(--color-text-subtle)"}))]),i("div",Ks,[i("div",Ws,[i("a",{href:l.src,target:"_blank",class:"text-sm font-semibold tracking-tight truncate link-external",title:l.src},h(l.registry?.label||l.key||l.src),9,Vs),l.docs?(n(),v("a",{key:0,href:l.docs,target:"_blank",class:"text-[10px] font-medium text-(--color-text-subtle) hover:text-(--color-text-muted) transition-colors"}," docs ",8,Gs)):B("",!0)])])]),o(qe)(l)&&o(V)(l)==="awaitingLoad"?(n(),P(_,{key:0,size:"xs",color:"primary",variant:"soft",icon:"i-carbon-play-filled-alt",onClick:r=>l.$script.load()},{default:x(()=>[...u[2]||(u[2]=[T(" Load ",-1)])]),_:1},8,["onClick"])):o(qe)(l)&&o(V)(l)==="loaded"?(n(),P(_,{key:1,size:"xs",color:"neutral",variant:"ghost",icon:"i-carbon-close",onClick:r=>l.$script.remove()},{default:x(()=>[...u[3]||(u[3]=[T(" Remove ",-1)])]),_:1},8,["onClick"])):B("",!0)]),i("div",Js,[S(g,{status:o(V)(l),error:o(gt)[l.src]},null,8,["status","error"]),o(Ce)(l.registryKey)?(n(),v("span",Xs,[S(m,{name:"i-carbon-security",class:"text-xs"}),u[4]||(u[4]=T(" First-Party ",-1))])):B("",!0),S(f,{size:o(_t)[l.src]},null,8,["size"]),S(w,{"load-time":l.loadTime},null,8,["load-time"]),l.loadedFrom&&l.loadedFrom!=="unknown"?(n(),v("span",Qs,[u[5]||(u[5]=i("svg",{xmlns:"http://www.w3.org/2000/svg",height:"10",viewBox:"0 0 256 221",class:"opacity-60"},[i("path",{fill:"#41B883",d:"M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0z"}),i("path",{fill:"#41B883",d:"m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0z"}),i("path",{fill:"#35495E",d:"M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0z"})],-1)),T(" "+h(l.loadedFrom),1)])):B("",!0),(n(!0),v(E,null,N(Object.keys(l.registryMeta||{}),r=>(n(),v("span",{key:r,class:"text-[11px] text-(--color-text-subtle) font-mono"},h(r)+": "+h(l.registryMeta[r]),1))),128))]),i("div",Ys,[i("div",Zs,[(n(),v(E,null,N(a,r=>i("button",{key:r.value,class:D(["sub-tab",o(Z)(l.src)===r.value?"sub-tab-active":""]),onClick:q=>o(ht)(l.src,r.value)},[S(m,{name:r.icon,class:"text-xs"},null,8,["name"]),T(" "+h(r.label)+" ",1),r.value==="network"&&l.networkRequests?.length?(n(),v("span",ta,h(l.networkRequests.length),1)):B("",!0)],10,ea)),64))]),o(Z)(l.src)==="events"?(n(),v("div",oa,[l.events?.length?(n(),v("div",aa,[(n(!0),v(E,null,N(l.events,(r,q)=>(n(),v("div",{key:q,class:"event-row"},[i("div",ra,h(o(bt)(r.at)),1),r.type==="status"?(n(),v(E,{key:0},[r.status==="validation-failed"?(n(),v("div",na,[i("span",{class:D(["event-badge",y(r.status)])},h(r.status),3),i("span",la,h(r.args.issues.map(F=>`${F.path?.map(k=>k.key).join(".")}: ${F.message}`).join(", ")),1)])):(n(),v("span",{key:1,class:D(["event-badge",y(r.status)])},h(r.status),3))],64)):r.type==="fn-call"?(n(),v("span",ia,[r.args?(n(),v(E,{key:0},[T(h(`${r.fn}(${r.args?.map(F=>JSON.stringify(F,null,2)).join(", ")||""})`),1)],64)):(n(),v(E,{key:1},[u[6]||(u[6]=i("span",{class:"opacity-40"},"QUEUED",-1)),T(" "+h(r.fn),1)],64))])):B("",!0)]))),128))])):(n(),v("div",sa," No events recorded "))])):o(Z)(l.src)==="network"?(n(),v("div",ua,[S(C,{requests:l.networkRequests||[],domains:o(de)(l.registryKey)?.domains,"proxy-routes":o(de)(l.registryKey)?.routes,"privacy-level":o(de)(l.registryKey)?.privacyLevel,"proxy-prefix":o(xt)?.proxyPrefix,"is-first-party":o(Ce)(l.registryKey)},null,8,["requests","domains","proxy-routes","privacy-level","proxy-prefix","is-first-party"])])):o(Z)(l.src)==="api"?(n(),v("div",da,[S(b,{code:o(wt)(l.$script?.instance),lang:"js"},null,8,["code"])])):B("",!0)])]))),128))])],64)):(n(),v("div",Ts,[i("div",As,[S(m,{name:"i-carbon-script",class:"text-2xl text-(--color-text-subtle)"})]),u[0]||(u[0]=i("p",{class:"text-sm font-medium text-(--color-text-muted)"}," No scripts loaded ",-1)),u[1]||(u[1]=i("p",{class:"text-xs text-(--color-text-subtle)"}," Scripts will appear here as they are registered ",-1))]))])}}}),fa=H(ca,[["__scopeId","data-v-1d33b8c9"]]);export{fa as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as A,o as r,c as o,h as d,i as p,a as t,b as c,j as C,d as m,k as R,t as a,F as u,r as x,g as S,w as I,n as v,l as z,m as b,p as D,v as T,q as K,_ as V}from"./D4HTNcLU.js";const $={class:"py-1"},B={key:0,class:"panel-grids rounded-xl flex flex-col items-center justify-center py-16 gap-4"},M={class:"w-14 h-14 rounded-2xl bg-(--color-surface-elevated) border border-(--color-border) flex items-center justify-center"},N={class:"hint-callout text-xs max-w-sm"},H={key:1,class:"stagger-children space-y-4"},U={class:"flex flex-wrap gap-2.5"},q={class:"stat-card"},E={class:"stat-value"},W={class:"stat-card"},Z={class:"stat-value"},G={class:"stat-card"},J={class:"stat-value"},O={class:"stat-card"},Q={class:"stat-value capitalize text-sm"},X={class:"flex items-center gap-2 text-xs text-(--color-text-subtle)"},Y={class:"px-1.5 py-0.5 rounded text-[11px] font-mono bg-(--color-surface-sunken) border border-(--color-border-subtle) text-(--color-text-muted)"},tt={class:"space-y-3"},et={class:"p-4"},st={class:"flex items-start justify-between gap-4"},rt={class:"flex items-center gap-2.5 min-w-0"},ot={class:"w-7 h-7 rounded-lg bg-(--color-surface-sunken) border border-(--color-border-subtle) flex items-center justify-center flex-shrink-0 overflow-hidden"},at=["innerHTML"],nt={class:"text-sm font-semibold tracking-tight"},lt={class:"ml-2 text-[10px] px-1.5 py-0.5 rounded-full bg-(--color-surface-sunken) text-(--color-text-subtle) font-medium"},it={class:"flex gap-0.5 flex-shrink-0"},ct={class:"flex items-center gap-1.5 mt-2.5 flex-wrap"},dt={key:0,class:"fp-badge fp-badge-info"},pt={key:1,class:"fp-badge fp-badge-warn"},ut={key:2,class:"fp-badge fp-badge-muted"},xt={key:0,class:"px-4 pb-3 flex items-center gap-1.5 flex-wrap"},bt={key:1,class:"border-t border-(--color-border-subtle)"},mt=["onClick"],vt={class:"flex items-center gap-1.5"},ft={key:0,class:"opacity-50"},yt={class:"border-t border-(--color-border-subtle)"},ht={style:{color:"oklch(55% 0.12 250)"},class:"min-w-0 truncate"},gt={class:"text-(--color-text-subtle) min-w-0 truncate"},_t={key:0,class:"border-t border-(--color-border-subtle) px-4 py-2"},kt={style:{color:"oklch(55% 0.12 300)"},class:"truncate"},wt={class:"text-(--color-text-subtle) truncate"},Pt={key:0,class:"card overflow-hidden"},Lt={class:"px-4 py-2.5 border-b border-(--color-border-subtle)"},Ft={class:"text-xs font-semibold uppercase tracking-wider text-(--color-text-subtle) flex items-center gap-1.5"},jt={class:"overflow-x-auto"},At={class:"w-full text-xs"},Ct={class:"border-b border-(--color-border-subtle)"},Rt={class:"px-4 py-2 font-medium whitespace-nowrap"},St={class:"px-2.5 py-2 text-center"},It=A({__name:"first-party",setup(zt){const y=["ip","userAgent","language","screen","timezone","hardware"],_={ip:"IP Address",userAgent:"User Agent",language:"Language",screen:"Screen",timezone:"Timezone",hardware:"Hardware"},k={ip:"IP",userAgent:"UA",language:"Lang",screen:"Screen",timezone:"TZ",hardware:"HW"},w={ip:"i-carbon-location",userAgent:"i-carbon-user-profile",language:"i-carbon-translate",screen:"i-carbon-screen",timezone:"i-carbon-time",hardware:"i-carbon-chip"},f=K({});function P(l){f[l]=!f[l]}function g(l){return l==="full"?"privacy-full":l==="partial"?"privacy-partial":"privacy-none"}function L(l){return l==="bundle-rewrite-intercept"?"mechanism-bundle":"mechanism-config"}function F(l){return l==="bundle-rewrite-intercept"?"Bundle + Rewrite":"Config Injection"}return(l,s)=>{const i=C,j=z;return r(),o("div",$,[d(p)?.enabled?(r(),o("div",H,[t("div",U,[s[7]||(s[7]=R('<div class="stat-card" data-v-97e4a274><div class="stat-label" data-v-97e4a274> Status </div><div class="flex items-center gap-1.5" data-v-97e4a274><span class="stat-dot stat-dot-active" data-v-97e4a274></span><span class="text-sm font-semibold" style="color:oklch(55% 0.18 145);" data-v-97e4a274>Active</span></div></div>',1)),t("div",q,[s[3]||(s[3]=t("div",{class:"stat-label"}," Scripts ",-1)),t("div",E,a(d(p).scripts.length),1)]),t("div",W,[s[4]||(s[4]=t("div",{class:"stat-label"}," Routes ",-1)),t("div",Z,a(d(p).totalRoutes),1)]),t("div",G,[s[5]||(s[5]=t("div",{class:"stat-label"}," Domains ",-1)),t("div",J,a(d(p).totalDomains),1)]),t("div",O,[s[6]||(s[6]=t("div",{class:"stat-label"}," Privacy ",-1)),t("div",Q,a(d(p).privacyMode),1)])]),t("div",X,[c(i,{name:"i-carbon-direction-fork",class:"text-sm"}),s[8]||(s[8]=m(" Proxy prefix: ",-1)),t("code",Y,a(d(p).proxyPrefix),1)]),t("div",tt,[(r(!0),o(u,null,x(d(p).scripts,e=>(r(),o("div",{key:e.registryKey,class:"card overflow-hidden"},[t("div",et,[t("div",st,[t("div",rt,[t("div",ot,[e.logo?(r(),o("div",{key:0,class:"w-5 h-5 flex items-center justify-center [&>svg]:max-w-5 [&>svg]:max-h-5",innerHTML:e.logo},null,8,at)):(r(),S(i,{key:1,name:"i-carbon-script",class:"text-sm text-(--color-text-subtle)"}))]),t("div",null,[t("span",nt,a(e.label),1),t("span",lt,a(e.category),1)])]),t("div",it,[(r(),o(u,null,x(y,n=>c(j,{key:n,text:`${_[n]}: ${e.privacy[n]?"Anonymised":"Passthrough"}`},{default:I(()=>[t("div",{class:v(["privacy-flag",e.privacy[n]?"privacy-flag-on":"privacy-flag-off"])},[c(i,{name:w[n],class:"text-xs"},null,8,["name"])],2)]),_:2},1032,["text"])),64))])]),t("div",ct,[t("span",{class:v(["fp-badge",L(e.mechanism)])},a(F(e.mechanism)),3),t("span",{class:v(["fp-badge",g(e.privacyLevel)])},a(e.privacyLevel==="full"?"Full Privacy":e.privacyLevel==="partial"?"Partial":"Passthrough"),3),e.hasAutoInject?(r(),o("span",dt," Auto-inject"+a(e.autoInjectField?`: ${e.autoInjectField}`:""),1)):b("",!0),e.canvasFingerprinting?(r(),o("span",pt," Canvas FP neutralized ")):b("",!0),e.hasSdkPatches?(r(),o("span",ut," SDK patches ")):b("",!0)])]),e.domains?.length?(r(),o("div",xt,[s[9]||(s[9]=t("span",{class:"text-[10px] text-(--color-text-subtle) mr-0.5"},"Proxying:",-1)),(r(!0),o(u,null,x(e.domains,n=>(r(),o("span",{key:n,class:"text-[10px] font-mono px-1.5 py-0.5 rounded bg-(--color-surface-sunken) text-(--color-text-muted) border border-(--color-border-subtle)"},a(n),1))),128))])):b("",!0),e.routes?.length?(r(),o("div",bt,[t("button",{class:"w-full px-4 py-2 flex items-center justify-between text-xs text-(--color-text-subtle) hover:text-(--color-text-muted) transition-colors cursor-pointer",onClick:n=>P(e.registryKey)},[t("span",vt,[c(i,{name:"i-carbon-arrows-horizontal",class:"text-xs"}),m(" "+a(e.routes.length)+" route"+a(e.routes.length>1?"s":"")+" ",1),e.interceptRules?.length?(r(),o("span",ft," · "+a(e.interceptRules.length)+" intercept rule"+a(e.interceptRules.length>1?"s":""),1)):b("",!0)]),c(i,{name:f[e.registryKey]?"i-carbon-chevron-up":"i-carbon-chevron-down",class:"text-xs transition-transform"},null,8,["name"])],8,mt),D(t("div",null,[t("div",yt,[(r(!0),o(u,null,x(e.routes,(n,h)=>(r(),o("div",{key:h,class:"px-4 py-1.5 flex items-center gap-2 text-[11px] font-mono hover:bg-(--color-surface-sunken) transition-colors"},[t("span",ht,a(n.local),1),c(i,{name:"i-carbon-arrow-right",class:"text-[9px] opacity-25 flex-shrink-0"}),t("span",gt,a(n.target),1)]))),128))]),e.interceptRules?.length?(r(),o("div",_t,[s[10]||(s[10]=t("div",{class:"text-[10px] uppercase tracking-wider text-(--color-text-subtle) mb-1 font-medium"}," Intercept Rules ",-1)),(r(!0),o(u,null,x(e.interceptRules,(n,h)=>(r(),o("div",{key:h,class:"py-1 flex items-center gap-2 text-[11px] font-mono"},[t("span",kt,a(n.pattern)+a(n.pathPrefix),1),c(i,{name:"i-carbon-arrow-right",class:"text-[9px] opacity-25 flex-shrink-0"}),t("span",wt,a(n.target),1)]))),128))])):b("",!0)],512),[[T,f[e.registryKey]]])])):b("",!0)]))),128))]),d(p).scripts.length>1?(r(),o("div",Pt,[t("div",Lt,[t("h4",Ft,[c(i,{name:"i-carbon-data-table",class:"text-sm"}),s[11]||(s[11]=m(" Privacy Matrix ",-1))])]),t("div",jt,[t("table",At,[t("thead",null,[t("tr",Ct,[s[12]||(s[12]=t("th",{class:"px-4 py-2 text-left font-medium text-(--color-text-subtle)"}," Script ",-1)),(r(),o(u,null,x(y,e=>t("th",{key:e,class:"px-2.5 py-2 text-center font-medium text-(--color-text-subtle) whitespace-nowrap"},a(k[e]),1)),64)),s[13]||(s[13]=t("th",{class:"px-2.5 py-2 text-center font-medium text-(--color-text-subtle)"}," Level ",-1))])]),t("tbody",null,[(r(!0),o(u,null,x(d(p).scripts,e=>(r(),o("tr",{key:e.registryKey,class:"border-b border-(--color-border-subtle) last:border-b-0 hover:bg-(--color-surface-sunken) transition-colors"},[t("td",Rt,a(e.label),1),(r(),o(u,null,x(y,n=>t("td",{key:n,class:"px-2.5 py-2 text-center"},[t("div",{class:v(["w-2.5 h-2.5 rounded-full mx-auto",e.privacy[n]?"matrix-dot-on":"matrix-dot-off"])},null,2)])),64)),t("td",St,[t("span",{class:v(["fp-badge text-[10px]",g(e.privacyLevel)])},a(e.privacyLevel),3)])]))),128))])])])])):b("",!0),s[14]||(s[14]=t("div",{class:"text-center pt-1 pb-3"},[t("a",{href:"https://scripts.nuxt.com/docs/guides/first-party",target:"_blank",class:"link-external text-xs"}," First-Party Mode: Privacy Focused Proxy ")],-1))])):(r(),o("div",B,[t("div",M,[c(i,{name:"i-carbon-security",class:"text-3xl text-(--color-text-subtle)"})]),s[1]||(s[1]=t("div",{class:"text-center space-y-1.5"},[t("p",{class:"text-sm font-semibold text-(--color-text-muted)"}," Privacy Proxy is not active "),t("p",{class:"text-xs text-(--color-text-subtle) max-w-sm"}," The reverse proxy is auto-enabled when scripts with proxy capabilities are configured in the registry. ")],-1)),t("div",N,[c(i,{name:"i-carbon-information",class:"hint-callout-icon text-base flex-shrink-0"}),s[0]||(s[0]=t("div",null,[m(" Check that your registry scripts have not set "),t("code",{class:"px-1 py-0.5 rounded text-[11px] font-mono bg-(--color-surface-sunken)"},"proxy: false"),m(" or "),t("code",{class:"px-1 py-0.5 rounded text-[11px] font-mono bg-(--color-surface-sunken)"},"bundle: false"),m(". ")],-1))]),s[2]||(s[2]=t("a",{href:"https://scripts.nuxt.com/docs/guides/first-party",target:"_blank",class:"link-external text-xs mt-1"}," View Documentation ",-1))]))])}}}),Tt=V(It,[["__scopeId","data-v-97e4a274"]]);export{Tt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as o,u as s,o as a,c as i,a as t,t as r}from"./D4HTNcLU.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},l={class:"max-w-520px text-center"},c=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:500},statusText:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return s({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(h,m)=>(a(),i("div",u,[t("div",l,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.status)},null,8,c),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusText)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},b=o(f,[["__scopeId","data-v-29f31f54"]]);export{b as default};
|