@nuxt/scripts 0.6.4 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +73 -73
  2. package/dist/client/200.html +7 -7
  3. package/dist/client/404.html +7 -7
  4. package/dist/client/_nuxt/{B8kiEHWd.js → BA8oXX6l.js} +10 -10
  5. package/dist/client/_nuxt/{CE8XWCBP.js → D3k5CjNA.js} +1 -1
  6. package/dist/client/_nuxt/{DX8FDaDx.js → D6UD5WyS.js} +1 -1
  7. package/dist/client/_nuxt/{DUCgB8kF.js → D9Ze639F.js} +1 -1
  8. package/dist/client/_nuxt/builds/latest.json +1 -1
  9. package/dist/client/_nuxt/builds/meta/a5c6ec68-62ae-43af-96d0-bdd9f64f38b1.json +1 -0
  10. package/dist/client/_nuxt/entry.Cts5wDvr.css +1 -0
  11. package/dist/client/index.html +7 -7
  12. package/dist/module.json +1 -1
  13. package/dist/registry.mjs +2 -2
  14. package/dist/runtime/components/ScriptCarbonAds.vue +71 -71
  15. package/dist/runtime/components/ScriptCrisp.vue +84 -84
  16. package/dist/runtime/components/ScriptGoogleAdsense.vue +69 -69
  17. package/dist/runtime/components/ScriptGoogleMaps.vue +265 -265
  18. package/dist/runtime/components/ScriptIntercom.vue +93 -93
  19. package/dist/runtime/components/ScriptLemonSqueezy.vue +45 -45
  20. package/dist/runtime/components/ScriptLoadingIndicator.vue +22 -22
  21. package/dist/runtime/components/ScriptStripePricingTable.vue +68 -68
  22. package/dist/runtime/components/ScriptVimeoPlayer.vue +256 -256
  23. package/dist/runtime/components/ScriptYouTubePlayer.vue +171 -170
  24. package/dist/runtime/composables/useScript.js +2 -2
  25. package/dist/runtime/composables/useScriptEventPage.d.ts +1 -1
  26. package/dist/runtime/registry/clarity.js +1 -1
  27. package/dist/runtime/registry/cloudflare-web-analytics.js +1 -1
  28. package/dist/runtime/registry/crisp.js +1 -1
  29. package/dist/runtime/registry/fathom-analytics.js +1 -1
  30. package/dist/runtime/registry/google-adsense.js +1 -1
  31. package/dist/runtime/registry/google-analytics.d.ts +13 -7
  32. package/dist/runtime/registry/google-analytics.js +23 -14
  33. package/dist/runtime/registry/google-maps.js +1 -1
  34. package/dist/runtime/registry/google-tag-manager.d.ts +16 -6
  35. package/dist/runtime/registry/google-tag-manager.js +16 -10
  36. package/dist/runtime/registry/hotjar.js +1 -1
  37. package/dist/runtime/registry/intercom.js +1 -1
  38. package/dist/runtime/registry/lemon-squeezy.js +1 -1
  39. package/dist/runtime/registry/matomo-analytics.js +1 -1
  40. package/dist/runtime/registry/meta-pixel.js +1 -1
  41. package/dist/runtime/registry/npm.js +1 -1
  42. package/dist/runtime/registry/plausible-analytics.js +1 -1
  43. package/dist/runtime/registry/segment.js +1 -1
  44. package/dist/runtime/registry/stripe.js +1 -1
  45. package/dist/runtime/registry/vimeo-player.js +1 -1
  46. package/dist/runtime/registry/x-pixel.js +1 -1
  47. package/dist/runtime/registry/youtube-player.js +1 -1
  48. package/dist/runtime/types.d.ts +18 -2
  49. package/dist/runtime/utils.d.ts +1 -1
  50. package/dist/runtime/utils.js +16 -4
  51. package/package.json +3 -3
  52. package/dist/client/_nuxt/builds/meta/a56fe5f5-907d-4907-9967-836d6a0f3850.json +0 -1
  53. package/dist/client/_nuxt/entry.DvGwvmL9.css +0 -1
@@ -17,7 +17,7 @@ export const PlausibleAnalyticsOptions = object({
17
17
  extension: optional(union([union(extensions), array(union(extensions))]))
18
18
  });
19
19
  export function useScriptPlausibleAnalytics(_options) {
20
- return useRegistryScript(_options?.key || "plausibleAnalytics", (options) => {
20
+ return useRegistryScript("plausibleAnalytics", (options) => {
21
21
  const extensions2 = Array.isArray(options?.extension) ? options.extension.join(".") : [options?.extension];
22
22
  return {
23
23
  scriptInput: {
@@ -7,7 +7,7 @@ export const SegmentOptions = object({
7
7
  });
8
8
  const methods = ["track", "page", "identify", "group", "alias", "reset"];
9
9
  export function useScriptSegment(_options) {
10
- return useRegistryScript(_options?.key || "segment", (options) => {
10
+ return useRegistryScript("segment", (options) => {
11
11
  const k = options?.analyticsKey ?? "analytics";
12
12
  return {
13
13
  scriptInput: {
@@ -5,7 +5,7 @@ export const StripeOptions = object({
5
5
  advancedFraudSignals: optional(boolean())
6
6
  });
7
7
  export function useScriptStripe(_options) {
8
- return useRegistryScript(_options?.key || "stripe", (options) => ({
8
+ return useRegistryScript("stripe", (options) => ({
9
9
  scriptInput: {
10
10
  src: withQuery(
11
11
  `https://js.stripe.com/v3/`,
@@ -2,7 +2,7 @@ import { watch } from "vue";
2
2
  import { useRegistryScript } from "../utils.js";
3
3
  import { useHead } from "#imports";
4
4
  export function useScriptVimeoPlayer(_options) {
5
- const instance = useRegistryScript(_options?.key || "vimeoPlayer", () => ({
5
+ const instance = useRegistryScript("vimeoPlayer", () => ({
6
6
  scriptInput: {
7
7
  src: "https://player.vimeo.com/api/player.js"
8
8
  },
@@ -5,7 +5,7 @@ export const XPixelOptions = object({
5
5
  version: optional(string())
6
6
  });
7
7
  export function useScriptXPixel(_options) {
8
- return useRegistryScript(_options?.key || "xPixel", (options) => {
8
+ return useRegistryScript("xPixel", (options) => {
9
9
  return {
10
10
  scriptInput: {
11
11
  src: "https://static.ads-twitter.com/uwt.js",
@@ -3,7 +3,7 @@ import { useRegistryScript } from "../utils.js";
3
3
  import { useHead } from "#imports";
4
4
  export function useScriptYouTubePlayer(_options) {
5
5
  let readyPromise = Promise.resolve();
6
- const instance = useRegistryScript(_options?.key || "youtubePlayer", () => ({
6
+ const instance = useRegistryScript("youtubePlayer", () => ({
7
7
  scriptInput: {
8
8
  src: "https://www.youtube.com/iframe_api",
9
9
  crossorigin: false
@@ -48,6 +48,21 @@ export type NuxtUseScriptOptions<T = any> = Omit<UseScriptOptions<T>, 'trigger'>
48
48
  * @internal
49
49
  */
50
50
  performanceMarkFeature?: string;
51
+ /**
52
+ * @internal
53
+ */
54
+ devtools?: {
55
+ /**
56
+ * Key used to map to the registry script for Nuxt DevTools.
57
+ * @internal
58
+ */
59
+ registryKey?: string;
60
+ /**
61
+ * Extra metadata to show with the registry script
62
+ * @internal
63
+ */
64
+ registryMeta?: Record<string, string>;
65
+ };
51
66
  };
52
67
  export type NuxtUseScriptOptionsSerializable = Omit<NuxtUseScriptOptions, 'use' | 'skipValidation' | 'stub' | 'trigger' | 'eventContext' | 'beforeInit'> & {
53
68
  trigger?: 'client' | 'server' | 'onNuxtReady';
@@ -69,8 +84,9 @@ export interface ConsentScriptTriggerOptions {
69
84
  */
70
85
  postConsentTrigger?: NuxtUseScriptOptions['trigger'];
71
86
  }
72
- export interface NuxtAppScript {
73
- key: string;
87
+ export interface NuxtDevToolsScriptInstance {
88
+ registryKey?: string;
89
+ registryMeta?: Record<string, string>;
74
90
  src: string;
75
91
  $script: VueScriptInstance<any>;
76
92
  events: {
@@ -8,7 +8,7 @@ type OptionsFn<O extends ObjectSchema<any, any>> = (options: InferInput<O>) => (
8
8
  clientInit?: () => void;
9
9
  });
10
10
  export declare function scriptRuntimeConfig<T extends keyof ScriptRegistry>(key: T): ScriptRegistry[T];
11
- export declare function useRegistryScript<T extends Record<string | symbol, any>, O extends ObjectSchema<any, any> = EmptyOptionsSchema>(key: keyof ScriptRegistry | string, optionsFn: OptionsFn<O>, _userOptions?: RegistryScriptInput<O>): T & {
11
+ export declare function useRegistryScript<T extends Record<string | symbol, any>, O extends ObjectSchema<any, any> = EmptyOptionsSchema>(registryKey: keyof ScriptRegistry | string, optionsFn: OptionsFn<O>, _userOptions?: RegistryScriptInput<O>): T & {
12
12
  $script: Promise<T> & VueScriptInstance<T>;
13
13
  };
14
14
  export {};
@@ -15,17 +15,29 @@ function validateScriptInputSchema(key, schema, options) {
15
15
  export function scriptRuntimeConfig(key) {
16
16
  return (useRuntimeConfig().public.scripts || {})[key];
17
17
  }
18
- export function useRegistryScript(key, optionsFn, _userOptions) {
19
- const scriptConfig = scriptRuntimeConfig(key);
18
+ export function useRegistryScript(registryKey, optionsFn, _userOptions) {
19
+ const scriptConfig = scriptRuntimeConfig(registryKey);
20
20
  const userOptions = Object.assign(_userOptions || {}, typeof scriptConfig === "object" ? scriptConfig : {});
21
21
  const options = optionsFn(userOptions);
22
- const scriptInput = defu(userOptions.scriptInput, options.scriptInput, { key });
22
+ const scriptInput = defu(userOptions.scriptInput, options.scriptInput, { key: registryKey });
23
23
  const scriptOptions = Object.assign(userOptions?.scriptOptions || {}, options.scriptOptions || {});
24
+ if (import.meta.dev) {
25
+ scriptOptions.devtools = defu(scriptOptions.devtools, { registryKey });
26
+ if (options.schema) {
27
+ const registryMeta = {};
28
+ for (const k in options.schema.entries) {
29
+ if (options.schema.entries[k].type !== "optional") {
30
+ registryMeta[k] = String(userOptions[k]);
31
+ }
32
+ }
33
+ scriptOptions.devtools.registryMeta = registryMeta;
34
+ }
35
+ }
24
36
  const init = scriptOptions.beforeInit;
25
37
  scriptOptions.beforeInit = () => {
26
38
  if (import.meta.dev && !scriptOptions.skipValidation && options.schema) {
27
39
  if (!userOptions.scriptInput?.src) {
28
- validateScriptInputSchema(key, options.schema, userOptions);
40
+ validateScriptInputSchema(registryKey, options.schema, userOptions);
29
41
  }
30
42
  }
31
43
  init?.();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nuxt/scripts",
3
3
  "type": "module",
4
- "version": "0.6.4",
4
+ "version": "0.6.5",
5
5
  "packageManager": "pnpm@9.5.0",
6
6
  "description": "Load third-party scripts with better performance, privacy and DX in Nuxt Apps.",
7
7
  "author": {
@@ -89,7 +89,7 @@
89
89
  "shiki": "^1.10.3",
90
90
  "sirv": "^2.0.4",
91
91
  "std-env": "^3.7.0",
92
- "third-party-capital": "^1.0.31",
92
+ "third-party-capital": "^2.1.1",
93
93
  "ufo": "^1.5.3",
94
94
  "unimport": "^3.7.2",
95
95
  "unplugin": "^1.11.0",
@@ -126,4 +126,4 @@
126
126
  "vue-router": "^4.4.0",
127
127
  "shiki": "1.10.3"
128
128
  }
129
- }
129
+ }
@@ -1 +0,0 @@
1
- {"id":"a56fe5f5-907d-4907-9967-836d6a0f3850","timestamp":1721024892769,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
@@ -1 +0,0 @@
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{bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.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]{display:none}*,: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: }@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v14/aFTU7PB1QTsUX8KYthSQBLyM.woff2) format("woff2");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,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/v14/aFTU7PB1QTsUX8KYthqQBA.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+2074,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/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRR232VGM.woff2) format("woff2");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,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/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRSW32.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+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.carbon-chevron-down{--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='M16 22L6 12l1.4-1.4l8.6 8.6l8.6-8.6L26 12z'/%3E%3C/svg%3E")}.carbon-chevron-down,.carbon\:book{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\: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\:debug{--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='m29.83 20l.34-2l-5.17-.85v-4.38l5.06-1.36l-.51-1.93l-4.83 1.29A9 9 0 0 0 20 5V2h-2v2.23a8.8 8.8 0 0 0-4 0V2h-2v3a9 9 0 0 0-4.71 5.82L2.46 9.48L2 11.41l5 1.36v4.38L1.84 18l.32 2L7 19.18a8.9 8.9 0 0 0 .82 3.57l-4.53 4.54l1.42 1.42l4.19-4.2a9 9 0 0 0 14.2 0l4.19 4.2l1.42-1.42l-4.54-4.54a8.9 8.9 0 0 0 .83-3.57ZM15 25.92A7 7 0 0 1 9 19v-6h6ZM9.29 11a7 7 0 0 1 13.42 0ZM23 19a7 7 0 0 1-6 6.92V13h6Z'/%3E%3C/svg%3E")}.carbon\:debug,.carbon\:reset{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\:reset{--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 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10Z'/%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.2em' 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.2em}.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)}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-bottom-1\/2{bottom:-50%}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.z-2{z-index:2}.z-20{z-index:20}.grid{display:grid}.mx-auto{margin-left:auto;margin-right:auto}.mb-16{margin-bottom:4rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb2,[mb2=""]{margin-bottom:.5rem}.ml--1px{margin-left:-1px}.mr-\[2px\]{margin-right:2px}.mt1{margin-top:.25rem}.hidden{display:none}.h-1\/2{height:50%}.h-4{height:1rem}.h-6{height:1.5rem}.h-auto{height:auto}.h-full{height:100%}.h1{height:.25rem}.h2{height:.5rem}.max-h-full{max-height:100%}.max-w-10{max-width:2.5rem}.max-w-520px{max-width:520px}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-full{width:100%}.flex,[flex=""],[flex~="~"]{display:flex}.flex-inline{display:inline-flex}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.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-y--1,[translate-y--1=""]{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=""]{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.place-content-center{place-content:center}.place-self-start,[place-self-start=""]{place-self:start}.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}.flex-gap2,.gap-2,[gap-2=""]{gap:.5rem}.gap-1\.5,[gap-1\.5=""]{gap:.375rem}.gap-3,[flex~=gap-3]{gap:.75rem}.gap-4{gap:1rem}.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)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.border,[border=""]{border-width:1px}.border-l{border-left-width:1px}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border-none{border-style:none}.bg-black\/5{background-color:#0000000d}.bg-gray-100{--un-bg-opacity:1;background-color:rgb(243 244 246/var(--un-bg-opacity))}.bg-green-50{--un-bg-opacity:1;background-color:rgb(240 253 244/var(--un-bg-opacity))}.bg-light-200{--un-bg-opacity:1;background-color:rgb(250 250 250/var(--un-bg-opacity))}.bg-red-100{--un-bg-opacity:1;background-color:rgb(254 226 226/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))}.dark .dark\:bg-black{--un-bg-opacity:1;background-color:rgb(0 0 0/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\/10{background-color:#ffffff1a}.p-8{padding:2rem}.p4{padding:1rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4,.px4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-\[2px\]{padding-bottom:2px;padding-top:2px}.py-2{padding-bottom:.5rem;padding-top:.5rem}.pb6{padding-bottom:1.5rem}.pt-14{padding-top:3.5rem}.pt-4{padding-top:1rem}.pt2{padding-top:.5rem}.text-center{text-align:center}.text-6xl{font-size:3.75rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-base,[text-base=""]{font-size:1rem;line-height:1.5rem}.text-lg,[text-lg=""]{font-size:1.125rem;line-height:1.75rem}.text-sm,[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-white,.dark [dark\:text-white=""]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}.text-black,[text-black=""]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.text-blue-300{--un-text-opacity:1;color:rgb(147 197 253/var(--un-text-opacity))}.text-gray-700{--un-text-opacity:1;color:rgb(55 65 81/var(--un-text-opacity))}.text-green-700{--un-text-opacity:1;color:rgb(21 128 61/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))}.group:hover .group-hover\:text-green-500{--un-text-opacity:1;color:rgb(34 197 94/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-tight{line-height:1.25}.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}.underline,[underline=""]{text-decoration-line:underline}.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}.op100{opacity:1}.op35{opacity:.35}.op50,.opacity-50,[op50=""]{opacity:.5}.op60{opacity:.6}.op75,[op75=""]{opacity:.75}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.transition,[transition=""]{transition-duration:.15s;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-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)}.duration-500,[duration-500=""]{transition-duration:.5s}.ease-in-out{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\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-8xl{font-size:6rem;line-height:1}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:flex{display:flex}}.n-code-block-lines .shiki code .line:before{display:none}details[data-v-348c1d92],summary[data-v-348c1d92]{border-style:none}summary[data-v-348c1d92]{list-style:none}details[open] summary[data-v-348c1d92]{border-style:none}details summary[data-v-348c1d92]::-webkit-details-marker{display:none}details[open] .chevron[data-v-348c1d92]{opacity:.75;transform:rotate(180deg)}