diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad7e0d29..2d43ca46 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,9 +17,9 @@ jobs: - name: Setup Node uses: actions/setup-node@v3 with: - node-version: 19 + node-version: 22.14.0 cache: 'npm' - - run: npm ci + - run: yarn - run: npm run lint --if-present - run: npm run build --if-present env: diff --git a/.github/workflows/scrape-plugins.yml b/.github/workflows/scrape-plugins.yml new file mode 100644 index 00000000..14a83347 --- /dev/null +++ b/.github/workflows/scrape-plugins.yml @@ -0,0 +1,22 @@ +name: scrape-plugins + +on: + schedule: + - cron: "0 8 * * *" + workflow_dispatch: + +jobs: + fetch: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: scrape plugins + run: | + yarn + yarn scrape.plugins + - name: commit new data + run: | + git config --global user.name 'NativeScript-Bot' + git config --global user.email 'oss@nativescript.org' + git commit -am "chore(update-plugins): $(date)" || echo "No changes to commit." + git push diff --git a/.gitignore b/.gitignore index 2158154b..9ce2f1cc 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,4 @@ node_modules explore/ -yarn.lock .DS_Store diff --git a/.vitepress/clientAppEnhance.ts b/.vitepress/clientAppEnhance.ts new file mode 100644 index 00000000..9c5fb04b --- /dev/null +++ b/.vitepress/clientAppEnhance.ts @@ -0,0 +1,8 @@ +export default ({ router }) => { + router.afterEach(() => { + // Ensure the DOM is updated before scrolling + setTimeout(() => { + window.scrollTo(0, 0) + }, 0) + }) +} diff --git a/.vitepress/config.mts b/.vitepress/config.mts index 07531020..0a3833ee 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -2,22 +2,50 @@ import { defineConfig } from 'vitepress' import apiSidebar from '../content/api/sidebar.json' import mainSidebar from '../content/sidebar' import uiSidebar from '../content/ui/sidebar' +import pluginsSidebar from '../content/plugins/sidebar' import nav from './nav' -import './theme/cliLanguage' +import './clientAppEnhance'; +// import './theme/cliLanguage' import path from 'node:path' +import { SiteMap } from './genSitemap.mjs' const isDev = process.env.NODE_ENV !== 'production' const branch = process.env.CF_PAGES_BRANCH ?? 'main' +const sitemap = new SiteMap() +const baseUrl = 'https://docs.nativescript.org' +function toUrl(path: string) { + const url = new URL( + path.replace(/((^|\/)index)?\.md$/, '$2'), + baseUrl + ).toString() + // remove trailing slash + return url.replace(/\/$/, '') +} + export default defineConfig({ srcDir: './content', lang: 'en-US', title: 'NativeScript', description: 'NativeScript docs', + head: [ + [ + 'script', + { + async: 'true', + src: 'https://vueschool.io/banner.js?affiliate=NSCRIPT&type=top', + } + ], + ], ignoreDeadLinks: true, cleanUrls: true, lastUpdated: true, appearance: false, + vite: { + ssr: { + noExternal: ['@nativescript/vitepress-theme'], + }, + }, themeConfig: { editLink: { ...(isDev && { @@ -30,19 +58,21 @@ export default defineConfig({ : `https://pr.new/github.com/NativeScript/docs/edit/${branch}/content/:filePath?initialPath=:path`, }, algolia: { - appId: '', - apiKey: '8d41b4ae92a02aea355e1dc8cfad1899', + appId: '110JARHFDU', + apiKey: '1092c85b01c392fc821d783427c7f27a', indexName: 'nativescript', }, nav, sidebar: { '/api': apiSidebar, '/ui': uiSidebar, + '/plugins': pluginsSidebar, '/': mainSidebar, }, }, markdown: { headers: true, + theme: "github-dark" }, async transformPageData(pageData, { siteConfig }) { // const contributors = await githubAuthors.getAuthorsForFilePath( @@ -54,6 +84,18 @@ export default defineConfig({ pageData.frontmatter.contributors ) }, + transformHtml(_, id, { pageData }) { + if (!/[\\/]404\.html$/.test(id)) + sitemap.add({ + // you might need to change this if not using clean urls mode + url: toUrl(pageData.relativePath), + lastmod: + pageData.lastUpdated ?? pageData.frontmatter?.date ?? Date.now(), + }) + }, + async buildEnd(config) { + await sitemap.write(config) + }, }) function transformContributors(contributors?: string[] | false) { diff --git a/.vitepress/genSitemap.mts b/.vitepress/genSitemap.mts new file mode 100644 index 00000000..530337a3 --- /dev/null +++ b/.vitepress/genSitemap.mts @@ -0,0 +1,30 @@ +import { createWriteStream } from 'node:fs' +import { resolve } from 'node:path' +import { SitemapStream } from 'sitemap' +import { type SiteConfig } from 'vitepress' + +interface SiteMapEntry { + url: string + lastmod: number | undefined +} + +export class SiteMap { + private links = new Map() + + add(entry: SiteMapEntry) { + this.links.set(entry.url, entry) + } + + async write({ outDir, site }: SiteConfig) { + const sitemap = new SitemapStream({ + hostname: site.themeConfig.baseUrl, + }) + const writeStream = createWriteStream(resolve(outDir, 'sitemap.xml')) + sitemap.pipe(writeStream) + this.links.forEach((link) => { + sitemap.write(link) + }) + sitemap.end() + await new Promise((r) => writeStream.on('finish', r)) + } +} diff --git a/.vitepress/nav.ts b/.vitepress/nav.ts index 4a1789ca..6483cdd3 100644 --- a/.vitepress/nav.ts +++ b/.vitepress/nav.ts @@ -28,9 +28,16 @@ export default [ icon: 'DevicePhoneMobileIcon', target: '_blank', }, + { + text: 'Snacks', + link: '/snacks/', + activeMatch: '^/snacks', + icon: 'CakeIcon', + }, { text: 'Plugins', - link: 'https://docs.nativescript.org/plugins/index.html', + link: '/plugins/', + activeMatch: '^/plugins', icon: 'PuzzlePieceIcon', }, // { diff --git a/.vitepress/plugin-config.mjs b/.vitepress/plugin-config.mjs new file mode 100644 index 00000000..1f0b71ef --- /dev/null +++ b/.vitepress/plugin-config.mjs @@ -0,0 +1,486 @@ +export const plugins = getPlugins() +export const sidebar = getPluginsSidebar() + +function getPlugins() { + const officialPlugins_baseUrl = + 'https://raw.githubusercontent.com/NativeScript/plugins/main/packages' + const officialGithubUrl = + 'https://github.com/NativeScript/plugins/tree/main/packages' + + const officialUIKitPlugins_baseUrl = + 'https://raw.githubusercontent.com/NativeScript/ui-kit/main/packages' + const officialUIKitGithubUrl = + 'https://github.com/NativeScript/ui-kit/tree/main/packages' + + const paymentsPlugins_baseUrl = + 'https://raw.githubusercontent.com/NativeScript/payments/main/packages' + const paymentsGithubUrl = + 'https://github.com/NativeScript/payments/tree/main/packages' + + const mlkitPlugins_baseUrl = + 'https://raw.githubusercontent.com/NativeScript/mlkit/main/packages' + const mlkitGithubUrl = + 'https://github.com/NativeScript/mlkit/tree/main/packages' + + const firebasePlugins_baseUrl = + 'https://raw.githubusercontent.com/NativeScript/firebase/main/packages' + const firebaseGithubUrl = + 'https://github.com/NativeScript/firebase/tree/main/packages' + + return [ + { + category: 'Developing plugins', + plugins: [ + { + name: 'Getting Started', + link: '/plugins/plugin-workspace-guide', + }, + ], + }, + { + category: 'Plugins', + plugins: [ + { + name: 'Animated Circle', + link: '/plugins/animated-circle', + readme: `${officialPlugins_baseUrl}/animated-circle/README.md`, + repo: `${officialGithubUrl}/animated-circle`, + }, + { + name: 'App Availability', + link: '/plugins/appavailability', + readme: `${officialPlugins_baseUrl}/appavailability/README.md`, + repo: `${officialGithubUrl}/appavailability`, + }, + { + name: 'Apple Signin', + link: '/plugins/apple-sign-in', + readme: `${officialPlugins_baseUrl}/apple-sign-in/README.md`, + repo: `${officialGithubUrl}/apple-sign-in`, + }, + { + name: 'Auto Fit Text', + link: '/plugins/auto-fit-text', + readme: `${officialPlugins_baseUrl}/auto-fit-text/README.md`, + repo: `${officialGithubUrl}/auto-fit-text`, + }, + { + name: 'Background HTTP', + link: '/plugins/background-http', + readme: `${officialPlugins_baseUrl}/background-http/README.md`, + repo: `${officialGithubUrl}/background-http`, + }, + { + name: 'Biometrics', + link: '/plugins/biometrics', + readme: `${officialPlugins_baseUrl}/biometrics/README.md`, + repo: `${officialGithubUrl}/biometrics`, + }, + { + name: 'Brightness', + link: '/plugins/brightness', + readme: `${officialPlugins_baseUrl}/brightness/README.md`, + repo: `${officialGithubUrl}/brightness`, + }, + { + name: 'Camera', + link: '/plugins/camera', + readme: `${officialPlugins_baseUrl}/camera/README.md`, + repo: `${officialGithubUrl}/camera`, + }, + { + name: 'Contacts', + link: '/plugins/contacts', + readme: `${officialPlugins_baseUrl}/contacts/README.md`, + repo: `${officialGithubUrl}/contacts`, + }, + { + name: 'DateTimePicker', + link: '/plugins/datetimepicker', + readme: `${officialPlugins_baseUrl}/datetimepicker/README.md`, + repo: `${officialGithubUrl}/datetimepicker`, + }, + { + name: 'Debug iOS', + link: '/plugins/debug-ios', + readme: `${officialPlugins_baseUrl}/debug-ios/README.md`, + repo: `${officialGithubUrl}/debug-ios`, + }, + { + name: 'Detox', + link: '/plugins/detox', + readme: `${officialPlugins_baseUrl}/detox/README.md`, + repo: `${officialGithubUrl}/detox`, + }, + { + name: 'Directions', + link: '/plugins/directions', + readme: `${officialPlugins_baseUrl}/directions/README.md`, + repo: `${officialGithubUrl}/directions`, + }, + { + name: 'Email', + link: '/plugins/email', + readme: `${officialPlugins_baseUrl}/email/README.md`, + repo: `${officialGithubUrl}/email`, + }, + { + name: 'Facebook', + link: '/plugins/facebook', + readme: `${officialPlugins_baseUrl}/facebook/README.md`, + repo: `${officialGithubUrl}/facebook`, + }, + { + name: 'Fingerprint-Auth', + link: '/plugins/fingerprint-auth', + readme: `${officialPlugins_baseUrl}/fingerprint-auth/README.md`, + repo: `${officialGithubUrl}/fingerprint-auth`, + }, + { + name: 'Flutter', + link: '/plugins/flutter', + readme: `${officialUIKitPlugins_baseUrl}/flutter/README.md`, + repo: `${officialUIKitGithubUrl}/flutter`, + }, + { + name: 'Geolocation', + link: '/plugins/geolocation', + readme: `${officialPlugins_baseUrl}/geolocation/README.md`, + repo: `${officialGithubUrl}/geolocation`, + }, + { + name: 'Google Maps', + link: '/plugins/google-maps', + readme: `${officialPlugins_baseUrl}/google-maps/README.md`, + repo: `${officialGithubUrl}/google-maps`, + }, + { + name: 'Google Signin', + link: '/plugins/google-signin', + readme: `${officialPlugins_baseUrl}/google-signin/README.md`, + repo: `${officialGithubUrl}/google-signin`, + }, + { + name: 'Haptics', + link: '/plugins/haptics', + readme: `${officialPlugins_baseUrl}/haptics/README.md`, + repo: `${officialGithubUrl}/haptics`, + }, + { + name: 'Image Picker', + link: '/plugins/imagepicker', + readme: `${officialPlugins_baseUrl}/imagepicker/README.md`, + repo: `${officialGithubUrl}/imagepicker`, + }, + { + name: 'Ionic Portals', + link: '/plugins/ionic-portals', + readme: `${officialUIKitPlugins_baseUrl}/ionic-portals/README.md`, + repo: `${officialUIKitGithubUrl}/ionic-portals`, + }, + { + name: 'iOS Security', + link: '/plugins/ios-security', + readme: `${officialPlugins_baseUrl}/ios-security/README.md`, + repo: `${officialGithubUrl}/ios-security`, + }, + { + name: 'IQ Keyboard Manager', + link: '/plugins/iqkeyboardmanager', + readme: `${officialPlugins_baseUrl}/iqkeyboardmanager/README.md`, + repo: `${officialGithubUrl}/iqkeyboardmanager`, + }, + { + name: 'Jetpack Compose', + link: '/plugins/jetpack-compose', + readme: `${officialUIKitPlugins_baseUrl}/jetpack-compose/README.md`, + repo: `${officialUIKitGithubUrl}/jetpack-compose`, + }, + { + name: 'Keyboard Toolbar', + link: '/plugins/keyboard-toolbar', + readme: `${officialPlugins_baseUrl}/keyboard-toolbar/README.md`, + repo: `${officialGithubUrl}/keyboard-toolbar`, + }, + { + name: 'Local Notifications', + link: '/plugins/local-notifications', + readme: `${officialPlugins_baseUrl}/local-notifications/README.md`, + repo: `${officialGithubUrl}/local-notifications`, + }, + { + name: 'Localize', + link: '/plugins/localize', + readme: `${officialPlugins_baseUrl}/localize/README.md`, + repo: `${officialGithubUrl}/localize`, + }, + { + name: 'PDF', + link: '/plugins/pdf', + readme: `${officialPlugins_baseUrl}/pdf/README.md`, + repo: `${officialGithubUrl}/pdf`, + }, + { + name: 'Picker', + link: '/plugins/picker', + readme: `${officialPlugins_baseUrl}/picker/README.md`, + repo: `${officialGithubUrl}/picker`, + }, + { + name: 'Rive', + link: '/plugins/rive', + readme: `${officialUIKitPlugins_baseUrl}/rive/README.md`, + repo: `${officialUIKitGithubUrl}/rive`, + }, + { + name: 'Shared Notification Delegate', + link: '/plugins/shared-notification-delegate', + readme: `${officialPlugins_baseUrl}/shared-notification-delegate/README.md`, + repo: `${officialGithubUrl}/shared-notification-delegate`, + }, + { + name: 'Social Share', + link: '/plugins/social-share', + readme: `${officialPlugins_baseUrl}/social-share/README.md`, + repo: `${officialGithubUrl}/social-share`, + }, + { + name: 'SwiftUI', + link: '/plugins/swift-ui', + readme: `${officialUIKitPlugins_baseUrl}/swift-ui/README.md`, + repo: `${officialUIKitGithubUrl}/swift-ui`, + }, + { + name: 'Tailwind CSS', + link: '/plugins/tailwindcss', + readme: `https://raw.githubusercontent.com/NativeScript/tailwind/main/README.md`, + repo: `https://github.com/NativeScript/tailwind`, + }, + { + name: 'Theme Switcher', + link: '/plugins/theme-switcher', + readme: `${officialPlugins_baseUrl}/theme-switcher/README.md`, + repo: `${officialGithubUrl}/theme-switcher`, + }, + { + name: 'Twitter', + link: '/plugins/twitter', + readme: `${officialPlugins_baseUrl}/twitter/README.md`, + repo: `${officialGithubUrl}/twitter`, + }, + { + name: 'Zip', + link: '/plugins/zip', + readme: `${officialPlugins_baseUrl}/zip/README.md`, + repo: `${officialGithubUrl}/zip`, + }, + ], + }, + { + category: 'Payments', + plugins: [ + { + name: 'Apple Pay', + link: '/plugins/apple-pay', + readme: `${paymentsPlugins_baseUrl}/apple-pay/README.md`, + repo: `${paymentsGithubUrl}/apple-pay`, + }, + { + name: 'Google Pay', + link: '/plugins/google-pay', + readme: `${paymentsPlugins_baseUrl}/google-pay/README.md`, + repo: `${paymentsGithubUrl}/google-pay`, + }, + { + name: 'Payments: IAP & Subscriptions', + link: '/plugins/payments', + readme: `${paymentsPlugins_baseUrl}/payments/README.md`, + repo: `${paymentsGithubUrl}/payments`, + }, + ], + }, + { + category: 'ML Kit', + plugins: [ + { + name: 'Core', + link: '/plugins/mlkit-core', + readme: `${mlkitPlugins_baseUrl}/mlkit-core/README.md`, + repo: `${mlkitGithubUrl}/mlkit-core`, + }, + { + name: 'Barcode Scanning', + link: '/plugins/mlkit-barcode-scanning', + readme: `${mlkitPlugins_baseUrl}/mlkit-barcode-scanning/README.md`, + repo: `${mlkitGithubUrl}/mlkit-barcode-scanning`, + }, + { + name: 'Digital Ink Recognition', + link: '/plugins/mlkit-digital-ink-recognition', + readme: `${mlkitPlugins_baseUrl}/mlkit-digital-ink-recognition/README.md`, + repo: `${mlkitGithubUrl}/mlkit-digital-ink-recognition`, + }, + { + name: 'Face Detection', + link: '/plugins/mlkit-face-detection', + readme: `${mlkitPlugins_baseUrl}/mlkit-face-detection/README.md`, + repo: `${mlkitGithubUrl}/mlkit-face-detection`, + }, + { + name: 'Image Labeling', + link: '/plugins/mlkit-image-labeling', + readme: `${mlkitPlugins_baseUrl}/mlkit-image-labeling/README.md`, + repo: `${mlkitGithubUrl}/mlkit-image-labeling`, + }, + { + name: 'Object Detection', + link: '/plugins/mlkit-object-detection', + readme: `${mlkitPlugins_baseUrl}/mlkit-object-detection/README.md`, + repo: `${mlkitGithubUrl}/mlkit-object-detection`, + }, + { + name: 'Pose Detection', + link: '/plugins/mlkit-pose-detection', + readme: `${mlkitPlugins_baseUrl}/mlkit-pose-detection/README.md`, + repo: `${mlkitGithubUrl}/mlkit-pose-detection`, + }, + { + name: 'Selfie Segmentation', + link: '/plugins/mlkit-selfie-segmentation', + readme: `${mlkitPlugins_baseUrl}/mlkit-selfie-segmentation/README.md`, + repo: `${mlkitGithubUrl}/mlkit-selfie-segmentation`, + }, + { + name: 'Text Recognition', + link: '/plugins/mlkit-text-recognition', + readme: `${mlkitPlugins_baseUrl}/mlkit-text-recognition/README.md`, + repo: `${mlkitGithubUrl}/mlkit-text-recognition`, + }, + ], + }, + { + category: 'Firebase', + plugins: [ + { + name: 'Core', + link: '/plugins/firebase-core', + readme: `${firebasePlugins_baseUrl}/firebase-core/README.md`, + repo: `${firebaseGithubUrl}/firebase-core`, + }, + { + name: 'Admob', + link: '/plugins/firebase-admob', + readme: `${firebasePlugins_baseUrl}/firebase-admob/README.md`, + }, + { + name: 'Analytics', + link: '/plugins/firebase-analytics', + readme: `${firebasePlugins_baseUrl}/firebase-analytics/README.md`, + repo: `${firebaseGithubUrl}/firebase-analytics`, + }, + { + name: 'App Check', + link: '/plugins/firebase-app-check', + readme: `${firebasePlugins_baseUrl}/firebase-app-check/README.md`, + repo: `${firebaseGithubUrl}/firebase-app-check`, + }, + { + name: 'Auth', + link: '/plugins/firebase-auth', + readme: `${firebasePlugins_baseUrl}/firebase-auth/README.md`, + repo: `${firebaseGithubUrl}/firebase-auth`, + }, + { + name: 'Crashlytics', + link: '/plugins/firebase-crashlytics', + readme: `${firebasePlugins_baseUrl}/firebase-crashlytics/README.md`, + repo: `${firebaseGithubUrl}/firebase-crashlytics`, + }, + { + name: 'Database', + link: '/plugins/firebase-database', + readme: `${firebasePlugins_baseUrl}/firebase-database/README.md`, + repo: `${firebaseGithubUrl}/firebase-database`, + }, + { + name: 'Dynamic Links', + link: '/plugins/firebase-dynamic-links', + readme: `${firebasePlugins_baseUrl}/firebase-dynamic-links/README.md`, + repo: `${firebaseGithubUrl}/firebase-dynamic-links`, + }, + { + name: 'Firestore', + link: '/plugins/firebase-firestore', + readme: `${firebasePlugins_baseUrl}/firebase-firestore/README.md`, + repo: `${firebaseGithubUrl}/firebase-firestore`, + }, + { + name: 'Functions', + link: '/plugins/firebase-functions', + readme: `${firebasePlugins_baseUrl}/firebase-functions/README.md`, + repo: `${firebaseGithubUrl}/firebase-functions`, + }, + { + name: 'In App Messaging', + link: '/plugins/firebase-in-app-messaging', + readme: `${firebasePlugins_baseUrl}/firebase-in-app-messaging/README.md`, + repo: `${firebaseGithubUrl}/firebase-in-app-messaging`, + }, + { + name: 'Installations', + link: '/plugins/firebase-installations', + readme: `${firebasePlugins_baseUrl}/firebase-installations/README.md`, + repo: `${firebaseGithubUrl}/firebase-installations`, + }, + { + name: 'Messaging', + link: '/plugins/firebase-messaging', + readme: `${firebasePlugins_baseUrl}/firebase-messaging/README.md`, + repo: `${firebaseGithubUrl}/firebase-messaging`, + }, + { + name: 'Performance', + link: '/plugins/firebase-performance', + readme: `${firebasePlugins_baseUrl}/firebase-performance/README.md`, + repo: `${firebaseGithubUrl}/firebase-performance`, + }, + { + name: 'Remote Config', + link: '/plugins/firebase-remote-config', + readme: `${firebasePlugins_baseUrl}/firebase-remote-config/README.md`, + repo: `${firebaseGithubUrl}/firebase-remote-config`, + }, + { + name: 'Storage', + link: '/plugins/firebase-storage', + readme: `${firebasePlugins_baseUrl}/firebase-storage/README.md`, + repo: `${firebaseGithubUrl}/firebase-storage`, + }, + ], + }, + { + category: 'Extras', + plugins: [ + { + name: 'NativeScript UI ListView', + link: '/plugins/nativescript-ui/rad-list-view', + }, + ], + }, + ] +} + +function getPluginsSidebar() { + const plugins = getPlugins() + + return plugins.map((category) => { + return { + text: category.category, + items: category.plugins.map((plugin) => ({ + text: plugin.name, + link: plugin.link, + })), + } + }) +} + diff --git a/.vitepress/theme/cliLanguage.ts b/.vitepress/theme/cliLanguage.ts index 3a12cddb..03af6911 100644 --- a/.vitepress/theme/cliLanguage.ts +++ b/.vitepress/theme/cliLanguage.ts @@ -1,10 +1,10 @@ // https://mysticmind.dev/vitepress-fenced-code-block-syntax-highlighting-quirks-with-net-or-other-languages -import { BUNDLED_LANGUAGES } from "shiki"; -import cliLanguageGrammar from "./shiki/cli.tmLanguage.json"; +import { bundledLanguages } from 'shiki' +import cliLanguageGrammar from './shiki/cli.tmLanguage.json' -BUNDLED_LANGUAGES.push({ - id: "cli", - scopeName: "source.cli", - // @ts-ignore +bundledLanguages['cli'] = { + id: 'cli', + scopeName: 'source.cli', grammar: cliLanguageGrammar, -}); +} +// bundledLanguages.push() diff --git a/.vitepress/theme/index.js b/.vitepress/theme/index.js index 4f98e17b..b9432c94 100644 --- a/.vitepress/theme/index.js +++ b/.vitepress/theme/index.js @@ -1,5 +1,5 @@ -import Theme from "./vitepress-theme"; -import "./style.css"; +import Theme from "@nativescript/vitepress-theme"; +import "@nativescript/vitepress-theme/theme/style.css"; export default { ...Theme(), diff --git a/.vitepress/theme/style.css b/.vitepress/theme/style.css deleted file mode 100644 index bcc7e871..00000000 --- a/.vitepress/theme/style.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter var,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"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}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,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*{scrollbar-color:initial;scrollbar-width:initial}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}@media (min-width: 1920px){.container{max-width:1920px}}.form-input,.form-textarea,.form-select,.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}.form-input:focus,.form-textarea:focus,.form-select:focus,.form-multiselect:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}.form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em;background-color:var(--tw-prose-quote-borders);border-radius:.375rem;padding-right:.375rem;padding-left:.375rem}.prose :where(code):not(:where([class~=not-prose] *)):before{content:normal}.prose :where(code):not(:where([class~=not-prose] *)):after{content:normal}.prose :where(a code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-left:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose] *)){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose] *)){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose] *)){font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.prose-sm :where(h4):not(:where([class~=not-prose] *)){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.prose-sm :where(img):not(:where([class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(video):not(:where([class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(figure):not(:where([class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(code):not(:where([class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose] *)){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding:.6666667em 1em}.prose-sm :where(ol):not(:where([class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-left:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-left:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose] *)){margin-top:.2857143em;margin-bottom:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.4285714em}.prose-sm :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose] *)){margin-top:2.8571429em;margin-bottom:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose] *)){padding-right:1em;padding-bottom:.6666667em;padding-left:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.6666667em 1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose-sm :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-base :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-base :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-base :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-lg :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-xl :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.8em;margin-bottom:.8em}.prose-xl :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.2em}.prose-xl :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.2em}.prose-xl :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-xl :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-2xl :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.8333333em;margin-bottom:.8333333em}.prose-2xl :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-2xl :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-2xl :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-2xl :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-2xl :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-2xl :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-slate{--tw-prose-body: #334155;--tw-prose-headings: #0f172a;--tw-prose-lead: #475569;--tw-prose-links: #0f172a;--tw-prose-bold: #0f172a;--tw-prose-counters: #64748b;--tw-prose-bullets: #cbd5e1;--tw-prose-hr: #e2e8f0;--tw-prose-quotes: #0f172a;--tw-prose-quote-borders: #e2e8f0;--tw-prose-captions: #64748b;--tw-prose-code: #0f172a;--tw-prose-pre-code: #e2e8f0;--tw-prose-pre-bg: #1e293b;--tw-prose-th-borders: #cbd5e1;--tw-prose-td-borders: #e2e8f0;--tw-prose-invert-body: #cbd5e1;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #94a3b8;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #94a3b8;--tw-prose-invert-bullets: #475569;--tw-prose-invert-hr: #334155;--tw-prose-invert-quotes: #f1f5f9;--tw-prose-invert-quote-borders: #334155;--tw-prose-invert-captions: #94a3b8;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #cbd5e1;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #475569;--tw-prose-invert-td-borders: #334155}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.inset-x-0{left:0;right:0}.right-0{right:0}.top-12{top:3rem}.bottom-0{bottom:0}.top-24{top:6rem}.top-\[72px\]{top:72px}.top-0{top:0}.left-0{left:0}.-top-0\.5{top:-.125rem}.-top-0{top:-0px}.-left-6{left:-1.5rem}.top-0\.5{top:.125rem}.left-24{left:6rem}.right-3{right:.75rem}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.order-1{order:1}.m-0{margin:0}.-m-3{margin:-.75rem}.mx-auto{margin-left:auto;margin-right:auto}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-0{margin-top:0;margin-bottom:0}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.ml-3{margin-left:.75rem}.mt-10{margin-top:2.5rem}.mb-4{margin-bottom:1rem}.-mt-px{margin-top:-1px}.mr-6{margin-right:1.5rem}.ml-4{margin-left:1rem}.mr-4{margin-right:1rem}.mb-16{margin-bottom:4rem}.-mb-px{margin-bottom:-1px}.ml-2{margin-left:.5rem}.mt-12{margin-top:3rem}.mt-1{margin-top:.25rem}.ml-auto{margin-left:auto}.-ml-0\.5{margin-left:-.125rem}.-ml-0{margin-left:-0px}.mr-1\.5{margin-right:.375rem}.mr-1{margin-right:.25rem}.mb-2{margin-bottom:.5rem}.mb-0{margin-bottom:0}.mt-0\.5{margin-top:.125rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.ml-1{margin-left:.25rem}.-mr-1{margin-right:-.25rem}.ml-10{margin-left:2.5rem}.mt-3{margin-top:.75rem}.-mr-3{margin-right:-.75rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-8{height:2rem}.h-12{height:3rem}.h-6{height:1.5rem}.h-5{height:1.25rem}.h-full{height:100%}.h-4{height:1rem}.h-3{height:.75rem}.h-0\.5{height:.125rem}.h-0{height:0px}.h-2{height:.5rem}.h-\[42px\]{height:42px}.h-10{height:2.5rem}.h-screen{height:100vh}.max-h-full{max-height:100%}.max-h-\[400px\]{max-height:400px}.min-h-screen{min-height:100vh}.w-auto{width:auto}.w-\[50vw\]{width:50vw}.w-px{width:1px}.w-64{width:16rem}.w-full{width:100%}.w-6{width:1.5rem}.w-11{width:2.75rem}.w-5{width:1.25rem}.w-4{width:1rem}.w-3{width:.75rem}.w-20{width:5rem}.w-0\.5{width:.125rem}.w-0{width:0px}.w-screen{width:100vw}.w-72{width:18rem}.w-1\/4{width:25%}.w-1\/6{width:16.666667%}.w-2\/3{width:66.666667%}.w-10{width:2.5rem}.min-w-0{min-width:0px}.min-w-full{min-width:100%}.min-w-\[540px\]{min-width:540px}.max-w-none{max-width:none}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-7xl{max-width:80rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.origin-top{transform-origin:top}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.columns-1{-moz-columns:1;columns:1}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.content-center{align-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.25rem * var(--tw-space-x-reverse));margin-left:calc(-.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-slate-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(226 232 240 / var(--tw-divide-opacity))}.divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(209 213 219 / var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.overscroll-contain{overscroll-behavior:contain}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.rounded-\[36px\]{border-radius:36px}.rounded-\[16px\]{border-radius:16px}.rounded-lg{border-radius:.5rem}.rounded{border-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-b-\[20px\]{border-bottom-right-radius:20px;border-bottom-left-radius:20px}.rounded-b-\[4px\]{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.rounded-b-\[16px\]{border-bottom-right-radius:16px;border-bottom-left-radius:16px}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-b-md{border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-0{border-left-width:0px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-l-2{border-left-width:2px}.border-t-0{border-top-width:0px}.border-b-4{border-bottom-width:4px}.border-white\/10{border-color:#ffffff1a}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-ns-blue{--tw-border-opacity: 1;border-color:rgb(101 173 241 / var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity))}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-white\/20{background-color:#fff3}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-ns-blue{--tw-bg-opacity: 1;background-color:rgb(101 173 241 / var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity))}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-gray-200\/80{background-color:#e5e7ebcc}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-amber-100\/70{background-color:#fef3c7b3}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity))}.bg-pink-100{--tw-bg-opacity: 1;background-color:rgb(252 231 243 / var(--tw-bg-opacity))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity))}.bg-lime-100{--tw-bg-opacity: 1;background-color:rgb(236 252 203 / var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity))}.bg-slate-300\/40{background-color:#cbd5e166}.bg-opacity-30{--tw-bg-opacity: .3}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-slate-800{--tw-gradient-from: #1e293b;--tw-gradient-to: rgb(30 41 59 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-4{padding:1rem}.p-2{padding:.5rem}.p-1{padding:.25rem}.p-0\.5{padding:.125rem}.p-0{padding:0}.p-3{padding:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-0{padding-top:0;padding-bottom:0}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-16{padding-bottom:4rem}.pt-10{padding-top:2.5rem}.pr-24{padding-right:6rem}.pr-2{padding-right:.5rem}.pl-4{padding-left:1rem}.pt-6{padding-top:1.5rem}.pl-2{padding-left:.5rem}.pb-2{padding-bottom:.5rem}.pb-\[70vh\]{padding-bottom:70vh}.pt-16{padding-top:4rem}.pb-10{padding-bottom:2.5rem}.pr-3{padding-right:.75rem}.pt-2{padding-top:.5rem}.pb-4{padding-bottom:1rem}.pr-2\.5{padding-right:.625rem}.pb-2\.5{padding-bottom:.625rem}.pt-5{padding-top:1.25rem}.pb-6{padding-bottom:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.font-sans{font-family:Inter var,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"}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-base{font-size:1rem;line-height:1.5rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-6{line-height:1.5rem}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.text-cyan-200{--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-ns-blue{--tw-text-opacity: 1;color:rgb(101 173 241 / var(--tw-text-opacity))}.text-white\/90{color:#ffffffe6}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity))}.text-pink-800{--tw-text-opacity: 1;color:rgb(157 23 77 / var(--tw-text-opacity))}.text-sky-800{--tw-text-opacity: 1;color:rgb(7 89 133 / var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity))}.text-lime-800{--tw-text-opacity: 1;color:rgb(63 98 18 / var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-100{opacity:1}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity))}.ring-ns-blue{--tw-ring-opacity: 1;--tw-ring-color: rgb(101 173 241 / var(--tw-ring-opacity))}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-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-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-100{transition-duration:.1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-150{transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}@supports (-moz-appearance: none){.overflow-y-auto{scrollbar-color:var(--scrollbar-thumb, initial) var(--scrollbar-track, initial)}.overflow-y-auto::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.overflow-y-auto::-webkit-scrollbar-track:hover{background-color:var(--scrollbar-track-hover, var(--scrollbar-track))}.overflow-y-auto::-webkit-scrollbar-track:active{background-color:var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)))}.overflow-y-auto::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.overflow-y-auto::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover, var(--scrollbar-thumb))}.overflow-y-auto::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)))}.overflow-y-auto::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.overflow-y-auto::-webkit-scrollbar-corner:hover{background-color:var(--scrollbar-corner-hover, var(--scrollbar-corner))}.overflow-y-auto::-webkit-scrollbar-corner:active{background-color:var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)))}.overflow-y-auto{scrollbar-width:thin}.overflow-y-auto::-webkit-scrollbar{display:block;width:8px;height:8px}}.group:hover .group-hover\:text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity))}.group:hover .group-hover\:text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity))}.prose-a\:font-semibold :is(:where(a):not(:where([class~=not-prose] *))){font-weight:600}.prose-lead\:text-slate-500 :is(:where([class~=lead]):not(:where([class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.hover\:border-blue-600:hover{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity))}.hover\:border-gray-600:hover{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.hover\:border-blue-100:hover{--tw-border-opacity: 1;border-color:rgb(219 234 254 / var(--tw-border-opacity))}.hover\:bg-blue-400:hover{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.hover\:bg-black\/5:hover{background-color:#0000000d}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:text-slate-500:hover{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity))}.hover\:text-gray-100:hover{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:border-cyan-300:focus{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity))}.focus\:border-gray-300:focus{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.focus\:border-ns-blue:focus{--tw-border-opacity: 1;border-color:rgb(101 173 241 / var(--tw-border-opacity))}.focus\:bg-white\/20:focus{background-color:#fff3}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset: inset}.focus\:ring-indigo-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:ring-offset-transparent:focus{--tw-ring-offset-color: transparent}.dark .dark\:prose-invert{--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.dark .dark\:-top-px{top:-1px}.dark .dark\:mt-px{margin-top:1px}.dark .dark\:block{display:block}.dark .dark\:hidden{display:none}.dark .dark\:divide-slate-700>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(51 65 85 / var(--tw-divide-opacity))}.dark .dark\:border-t{border-top-width:1px}.dark .dark\:border-b{border-bottom-width:1px}.dark .dark\:border-white\/20{border-color:#fff3}.dark .dark\:border-white\/5{border-color:#ffffff0d}.dark .dark\:border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity))}.dark .dark\:border-transparent{border-color:transparent}.dark .dark\:border-white\/10{border-color:#ffffff1a}.dark .dark\:border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.dark .dark\:border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity))}.dark .dark\:border-slate-300\/30{border-color:#cbd5e14d}.dark .dark\:border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity))}.dark .dark\:border-slate-50\/\[0\.06\]{border-color:#f8fafc0f}.dark .dark\:bg-transparent{background-color:transparent}.dark .dark\:bg-white\/10{background-color:#ffffff1a}.dark .dark\:bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.dark .dark\:bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-900\/70{background-color:#111827b3}.dark .dark\:bg-amber-400\/10{background-color:#fbbf241a}.dark .dark\:bg-slate-900\/75{background-color:#0f172abf}.dark .dark\:bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity))}.dark .dark\:bg-slate-900\/70{background-color:#0f172ab3}.dark .dark\:bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.dark .dark\:text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity))}.dark .dark\:text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.dark .dark\:text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.dark .dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark .dark\:text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.dark .dark\:text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.dark .dark\:text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.dark .dark\:text-white\/90{color:#ffffffe6}.dark .dark\:text-white\/50{color:#ffffff80}.dark .dark\:text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}.dark .dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark .dark\:text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity))}.dark .dark\:text-slate-300\/40{color:#cbd5e166}.dark .dark\:text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity))}.dark .dark\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark .dark\:shadow-cyan-300\/5{--tw-shadow-color: rgb(103 232 249 / .05);--tw-shadow: var(--tw-shadow-colored)}.dark .dark\:shadow-cyan-400\/20{--tw-shadow-color: rgb(34 211 238 / .2);--tw-shadow: var(--tw-shadow-colored)}.dark .dark\:ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.dark .dark\:ring-slate-800{--tw-ring-opacity: 1;--tw-ring-color: rgb(30 41 59 / var(--tw-ring-opacity))}.dark .dark\:ring-cyan-700{--tw-ring-opacity: 1;--tw-ring-color: rgb(14 116 144 / var(--tw-ring-opacity))}.dark .dark\:ring-amber-300\/30{--tw-ring-color: rgb(252 211 77 / .3)}.dark .dark\:ring-slate-300\/10{--tw-ring-color: rgb(203 213 225 / .1)}.dark .group:hover .dark\:group-hover\:text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.dark .group:hover .dark\:group-hover\:text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.dark .dark\:prose-a\:text-cyan-400 :is(:where(a):not(:where([class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}.dark .dark\:prose-hr\:border-slate-800 :is(:where(hr):not(:where([class~=not-prose] *))){--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.dark .dark\:prose-lead\:text-slate-400 :is(:where([class~=lead]):not(:where([class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.dark .dark\:hover\:border-cyan-400:hover{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity))}.dark .dark\:hover\:border-white\/40:hover{border-color:#fff6}.dark .dark\:hover\:bg-cyan-400:hover{--tw-bg-opacity: 1;background-color:rgb(34 211 238 / var(--tw-bg-opacity))}.dark .dark\:hover\:bg-white\/10:hover{background-color:#ffffff1a}.dark .dark\:hover\:bg-white\/5:hover{background-color:#ffffff0d}.dark .dark\:hover\:bg-slate-700\/50:hover{background-color:#33415580}.dark .dark\:hover\:text-cyan-300:hover{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.dark .dark\:hover\:text-slate-300:hover{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.dark .dark\:hover\:text-cyan-600:hover{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity))}.dark .dark\:hover\:text-slate-400:hover{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.dark .dark\:hover\:text-amber-200:hover{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity))}.dark .dark\:focus\:border-cyan-300:focus{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity))}.dark .dark\:focus\:bg-white\/10:focus{background-color:#ffffff1a}@media (min-width: 640px){.sm\:mx-0{margin-left:0;margin-right:0}.sm\:h-10{height:2.5rem}.sm\:min-w-full{min-width:100%}.sm\:columns-2{-moz-columns:2;columns:2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-8{gap:2rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:pl-0{padding-left:0}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width: 768px){.md\:order-3{order:3}.md\:order-2{order:2}.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:w-1\/2{width:50%}.md\:columns-3{-moz-columns:3;columns:3}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}}@media (min-width: 1024px){.lg\:relative{position:relative}.lg\:sticky{position:sticky}.lg\:z-50{z-index:50}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-1\/3{width:33.333333%}.lg\:w-auto{width:auto}.lg\:flex-none{flex:none}.lg\:columns-4{-moz-columns:4;columns:4}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-end{justify-content:flex-end}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.lg\:border-b{border-bottom-width:1px}.lg\:border-slate-900\/10{border-color:#0f172a1a}.lg\:bg-white\/20{background-color:#fff3}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.lg\:py-1{padding-top:.25rem;padding-bottom:.25rem}.lg\:pr-20{padding-right:5rem}.lg\:hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark .lg\:dark\:bg-white\/10{background-color:#ffffff1a}.dark .lg\:dark\:ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.dark .lg\:dark\:hover\:ring-cyan-400\/50:hover{--tw-ring-color: rgb(34 211 238 / .5)}}@media (min-width: 1280px){.xl\:block{display:block}.xl\:w-72{width:18rem}.xl\:max-w-xs{max-width:20rem}.xl\:px-10{padding-left:2.5rem;padding-right:2.5rem}}@media (min-width: 1536px){.\32xl\:container{width:100%}@media (min-width: 640px){.\32xl\:container{max-width:640px}}@media (min-width: 768px){.\32xl\:container{max-width:768px}}@media (min-width: 1024px){.\32xl\:container{max-width:1024px}}@media (min-width: 1280px){.\32xl\:container{max-width:1280px}}@media (min-width: 1536px){.\32xl\:container{max-width:1536px}}@media (min-width: 1920px){.\32xl\:container{max-width:1920px}}.\32xl\:max-h-\[600px\]{max-height:600px}.\32xl\:columns-3{-moz-columns:3;columns:3}.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&_a\]\:text-blue-400 a{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.\[\&_a\]\:text-blue-500 a{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.\[\&_a\]\:no-underline a{text-decoration-line:none}.dark .dark\:\[\&_a\]\:text-cyan-400 a{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.dark .dark\:\[\@supports\(backdrop-filter\:blur\(0\)\)\]\:bg-slate-900\/80{background-color:#0f172acc}}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider);background-color:#020617}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:#94a3b8;white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:#fff}.vp-code-group input:checked+label{color:#fff}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-] pre{margin-top:0}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}[class*=language-]{position:relative}[class*=language-]:not(.token){border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity));font-size:1.125rem;line-height:1.75rem;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark [class*=language-]:not(.token){background-color:#1e293b99;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(203 213 225 / .1)}[class*=language-] pre{position:relative;overflow-x:auto;background-color:transparent}[class*=language-] .lang{position:absolute;right:0;top:0;padding:1rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity));opacity:1}[class*=language-] button{z-index:1;position:absolute;right:0;top:0;padding:1rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity));opacity:0;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[class*=language-] button:before{content:"Copy"}[class*=language-] button:hover{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}[class*=language-]:hover button{opacity:1}[class*=language-]:hover .lang{opacity:0;pointer-events:none}.highlight-lines{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;padding-top:1rem}.highlight-lines .highlighted{background-color:rgb(217 70 239 / var(--tw-bg-opacity));--tw-bg-opacity: .1}div[class*=language-].line-numbers-mode{padding-left:3rem}.line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;width:3.5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-right-width:2px;border-color:rgb(17 24 39 / var(--tw-border-opacity));--tw-border-opacity: .5;padding-top:1rem;padding-right:1rem;text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity));z-index:3}:root{--shiki-color-text: #e5e7eb;--shiki-color-background: #111827;--shiki-token-constant: #fde047;--shiki-token-string: #22d3ee;--shiki-token-comment: #9ca3af;--shiki-token-keyword: #f472b6;--shiki-token-parameter: #aa0000;--shiki-token-function: #f0abfc;--shiki-token-string-expression: #22d3ee;--shiki-token-punctuation: #e5e7eb;--shiki-token-link: #ee0000}.custom-block.info,.custom-block.tip,.custom-block.warning,.custom-block.danger,.custom-block.details{margin-top:1.5rem;margin-bottom:1rem;overflow-x:auto;border-radius:.375rem;padding:.75rem 1.5rem}.custom-block [class*=language-]:not(.token){margin-left:-1.5rem;margin-right:-1.5rem;margin-top:.75rem;border-radius:0;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.custom-block [class*=language-]:not(.token):last-of-type{margin-bottom:-.75rem}.custom-block pre{margin:0;padding-left:1.5rem;padding-right:1.5rem}.custom-block.details>summary{margin-bottom:.25rem;cursor:pointer;font-weight:700}.custom-block>.custom-block-title{margin:0;font-weight:700}.custom-block>p{margin:0;margin-top:.75rem;line-height:1.625}.custom-block.info{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.dark .custom-block.info{background-color:#1e293b1a;--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(203 213 225 / .1) }.custom-block.tip{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(20 83 45 / var(--tw-text-opacity))}.dark .custom-block.tip{background-color:#1665341a;--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(134 239 172 / .1) }.custom-block.warning{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity))}.dark .custom-block.warning{background-color:#92400e1a;--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(203 213 225 / .1) }.custom-block.danger{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity))}.dark .custom-block.danger{background-color:#991b1b1a;--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(252 165 165 / .1) }.custom-block.details{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.dark .custom-block.details{background-color:#1e293b1a;--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(203 213 225 / .1) }html.dark{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity))}.dark a.header-anchor,a.header-anchor{position:absolute;left:-2rem;display:inline-flex;align-items:center;color:transparent;opacity:0;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a.header-anchor:before{height:1.5rem;width:1.5rem;border-radius:.375rem;background-position:center;background-repeat:no-repeat;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity))}.dark a.header-anchor:before{--tw-ring-opacity: 1;--tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity))}a.header-anchor:before{content:" ";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' aria-hidden='true'%3E%3Cpath d='M3.75 1v10M8.25 1v10M1 3.75h10M1 8.25h10' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E")}a.header-anchor:hover:before{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' aria-hidden='true'%3E%3Cpath d='M3.75 1v10M8.25 1v10M1 3.75h10M1 8.25h10' stroke='%231e293b' stroke-width='1.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E")}.dark a.header-anchor:hover:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' aria-hidden='true'%3E%3Cpath d='M3.75 1v10M8.25 1v10M1 3.75h10M1 8.25h10' stroke='%2322d3ee' stroke-width='1.5' stroke-linecap='round'%3E%3C/path%3E%3C/svg%3E")}[id]:hover>.header-anchor{opacity:1}h1,h2,h3,h4,h5,h6,h7{overflow-wrap:break-word}vite-error-overlay{z-index:9999999999}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}/*! @docsearch/css 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::-moz-placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.algolia-search-box{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.75}.DocSearch-Button{margin:0;border-radius:0;width:100%;opacity:0;border:0}.DocSearch-Button:hover{box-shadow:none}.DocSearch-Search-Icon,.DocSearch-Button-Placeholder,.DocSearch-Button-Key{display:none}@media (min-width: 768px){.DocSearch--active{overflow-y:scroll!important}}#docsearch-input:focus{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.DocSearch.DocSearch-Container{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.DocSearch{--docsearch-primary-color: #65adf1;--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-searchbox-shadow: inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-text-color: #111827;--docsearch-muted-color: #9ca3af;--docsearch-container-background: rgba(15, 23, 42, .2)}[id]{scroll-margin-top:88px;outline:2px solid transparent;outline-offset:2px}.h-sidebar{height:calc(100vh - 72px)}.code-tab-container [class*=language-]{margin:-1px 0 0;border-top-left-radius:0;border-top-right-radius:0}.code-tab-container [class*=language-] pre{margin:0}.device~.device{margin-top:1.5rem}@media (min-width: 640px){.device~.device{margin-top:0}}.device img,.device video{max-height:400px;-o-object-fit:contain;object-fit:contain}@media (min-width: 1536px){.device img,.device video{max-height:600px}}.step-list{counter-reset:StepList}.step-list li{position:relative}.step-list li::marker{color:transparent}.step-list li:before{counter-increment:StepList;content:counter(StepList) " ";position:absolute;left:-1.5rem;top:.125rem;display:flex;height:1.5rem;width:1.5rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity));font-size:.75rem;line-height:1rem;font-weight:700;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark .step-list li:before{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))} diff --git a/.vitepress/theme/vitepress-theme.d.ts b/.vitepress/theme/vitepress-theme.d.ts deleted file mode 100644 index a28c2cf8..00000000 --- a/.vitepress/theme/vitepress-theme.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { DefaultTheme } from 'vitepress'; -import { Theme } from 'vitepress'; - -export declare type NSNavItem = DefaultTheme.NavItem & { - icon?: string; -}; - -export declare type NSSidebarGroup = DefaultTheme.SidebarItem & { - items?: NSSidebarItem[]; -}; - -export declare type NSSidebarItem = DefaultTheme.SidebarItem & { - icon?: string; - hidden?: boolean; - visible?: boolean; - collapsible?: boolean; - hideChildren?: boolean; - type?: string; -}; - -export declare type NSThemeConfig = DefaultTheme.Config & { - mainURL?: string; - sidebar?: NSSidebarGroup[]; - nav?: NSNavItem[]; -}; - -declare const theme: (enhanceApp: Theme['enhanceApp']) => Theme; -export default theme; - -export { } diff --git a/.vitepress/theme/vitepress-theme.mjs b/.vitepress/theme/vitepress-theme.mjs deleted file mode 100644 index 7bc9d7e6..00000000 --- a/.vitepress/theme/vitepress-theme.mjs +++ /dev/null @@ -1,9813 +0,0 @@ -import { useData as Ne, useRoute as Nn, inBrowser as lo, useRouter as nc } from "vitepress"; -import { pushScopeId as rc, popScopeId as oc, defineComponent as L, nextTick as Ln, openBlock as g, createBlock as ue, createElementBlock as b, normalizeClass as te, renderSlot as De, normalizeProps as ic, guardReactiveProps as ac, withScopeId as sc, resolveComponent as ke, normalizeStyle as or, withKeys as lc, createElementVNode as h, Fragment as F, createCommentVNode as V, withCtx as ve, createVNode as z, ref as A, createApp as cc, h as se, mergeProps as uc, toDisplayString as U, cloneVNode as fc, inject as he, provide as He, onMounted as le, watchEffect as Oe, computed as T, watch as $e, onUnmounted as Ze, Teleport as dc, reactive as pc, unref as P, getCurrentInstance as cs, getCurrentScope as hc, onScopeDispose as mc, readonly as vc, shallowRef as gc, isRef as yc, renderList as ne, withModifiers as kt, resolveDynamicComponent as Mn, withDirectives as $n, vShow as dr, createStaticVNode as us, Transition as qr, createTextVNode as Ie, resolveDirective as _c } from "vue"; -function Xe(e) { - return e.split("-")[0]; -} -function zt(e) { - return e.split("-")[1]; -} -function Rn(e) { - return ["top", "bottom"].includes(Xe(e)) ? "x" : "y"; -} -function Fo(e) { - return e === "y" ? "height" : "width"; -} -function ri(e) { - let { - reference: t, - floating: n, - placement: r - } = e; - const o = t.x + t.width / 2 - n.width / 2, i = t.y + t.height / 2 - n.height / 2; - let a; - switch (Xe(r)) { - case "top": - a = { - x: o, - y: t.y - n.height - }; - break; - case "bottom": - a = { - x: o, - y: t.y + t.height - }; - break; - case "right": - a = { - x: t.x + t.width, - y: i - }; - break; - case "left": - a = { - x: t.x - n.width, - y: i - }; - break; - default: - a = { - x: t.x, - y: t.y - }; - } - const s = Rn(r), l = Fo(s); - switch (zt(r)) { - case "start": - a[s] = a[s] - (t[l] / 2 - n[l] / 2); - break; - case "end": - a[s] = a[s] + (t[l] / 2 - n[l] / 2); - break; - } - return a; -} -const bc = async (e, t, n) => { - const { - placement: r = "bottom", - strategy: o = "absolute", - middleware: i = [], - platform: a - } = n; - if (process.env.NODE_ENV !== "production" && (a == null && console.error(["Floating UI: `platform` property was not passed to config. If you", "want to use Floating UI on the web, install @floating-ui/dom", "instead of the /core package. Otherwise, you can create your own", "`platform`: https://floating-ui.com/docs/platform"].join(" ")), i.filter((p) => { - let { - name: v - } = p; - return v === "autoPlacement" || v === "flip"; - }).length > 1)) - throw new Error(["Floating UI: duplicate `flip` and/or `autoPlacement`", "middleware detected. This will lead to an infinite loop. Ensure only", "one of either has been passed to the `middleware` array."].join(" ")); - let s = await a.getElementRects({ - reference: e, - floating: t, - strategy: o - }), { - x: l, - y: u - } = ri({ - ...s, - placement: r - }), c = r, f = {}, d = 0; - for (let p = 0; p < i.length; p++) { - if (process.env.NODE_ENV !== "production" && (d++, d > 100)) - throw new Error(["Floating UI: The middleware lifecycle appears to be", "running in an infinite loop. This is usually caused by a `reset`", "continually being returned without a break condition."].join(" ")); - const { - name: v, - fn: y - } = i[p], { - x: _, - y: w, - data: x, - reset: S - } = await y({ - x: l, - y: u, - initialPlacement: r, - placement: c, - strategy: o, - middlewareData: f, - rects: s, - platform: a, - elements: { - reference: e, - floating: t - } - }); - if (l = _ ?? l, u = w ?? u, f = { - ...f, - [v]: x ?? {} - }, S) { - typeof S == "object" && (S.placement && (c = S.placement), S.rects && (s = S.rects === !0 ? await a.getElementRects({ - reference: e, - floating: t, - strategy: o - }) : S.rects), { - x: l, - y: u - } = ri({ - ...s, - placement: c - })), p = -1; - continue; - } - } - return { - x: l, - y: u, - placement: c, - strategy: o, - middlewareData: f - }; -}; -function wc(e) { - return { - top: 0, - right: 0, - bottom: 0, - left: 0, - ...e - }; -} -function fs(e) { - return typeof e != "number" ? wc(e) : { - top: e, - right: e, - bottom: e, - left: e - }; -} -function co(e) { - return { - ...e, - top: e.y, - left: e.x, - right: e.x + e.width, - bottom: e.y + e.height - }; -} -async function Ir(e, t) { - t === void 0 && (t = {}); - const { - x: n, - y: r, - platform: o, - rects: i, - elements: a, - strategy: s - } = e, { - boundary: l = "clippingParents", - rootBoundary: u = "viewport", - elementContext: c = "floating", - altBoundary: f = !1, - padding: d = 0 - } = t, p = fs(d), y = a[f ? c === "floating" ? "reference" : "floating" : c], _ = await o.getClippingClientRect({ - element: await o.isElement(y) ? y : y.contextElement || await o.getDocumentElement({ - element: a.floating - }), - boundary: l, - rootBoundary: u - }), w = co(await o.convertOffsetParentRelativeRectToViewportRelativeRect({ - rect: c === "floating" ? { - ...i.floating, - x: n, - y: r - } : i.reference, - offsetParent: await o.getOffsetParent({ - element: a.floating - }), - strategy: s - })); - return { - top: _.top - w.top + p.top, - bottom: w.bottom - _.bottom + p.bottom, - left: _.left - w.left + p.left, - right: w.right - _.right + p.right - }; -} -const xc = Math.min, Ot = Math.max; -function uo(e, t, n) { - return Ot(e, xc(t, n)); -} -const Sc = (e) => ({ - name: "arrow", - options: e, - async fn(t) { - const { - element: n, - padding: r = 0 - } = e ?? {}, { - x: o, - y: i, - placement: a, - rects: s, - platform: l - } = t; - if (n == null) - return process.env.NODE_ENV !== "production" && console.warn("Floating UI: No `element` was passed to the `arrow` middleware."), {}; - const u = fs(r), c = { - x: o, - y: i - }, f = Xe(a), d = Rn(f), p = Fo(d), v = await l.getDimensions({ - element: n - }), y = d === "y" ? "top" : "left", _ = d === "y" ? "bottom" : "right", w = s.reference[p] + s.reference[d] - c[d] - s.floating[p], x = c[d] - s.reference[d], S = await l.getOffsetParent({ - element: n - }), $ = S ? d === "y" ? S.clientHeight || 0 : S.clientWidth || 0 : 0, k = w / 2 - x / 2, N = u[y], C = $ - v[p] - u[_], E = $ / 2 - v[p] / 2 + k, j = uo(N, E, C); - return { - data: { - [d]: j, - centerOffset: E - j - } - }; - } -}), Oc = { - left: "right", - right: "left", - bottom: "top", - top: "bottom" -}; -function pr(e) { - return e.replace(/left|right|bottom|top/g, (t) => Oc[t]); -} -function ds(e, t) { - const n = zt(e) === "start", r = Rn(e), o = Fo(r); - let i = r === "x" ? n ? "right" : "left" : n ? "bottom" : "top"; - return t.reference[o] > t.floating[o] && (i = pr(i)), { - main: i, - cross: pr(i) - }; -} -const kc = { - start: "end", - end: "start" -}; -function fo(e) { - return e.replace(/start|end/g, (t) => kc[t]); -} -const $c = ["top", "right", "bottom", "left"], Pc = /* @__PURE__ */ $c.reduce((e, t) => e.concat(t, t + "-start", t + "-end"), []); -function Ec(e, t, n) { - return (e ? [...n.filter((o) => zt(o) === e), ...n.filter((o) => zt(o) !== e)] : n.filter((o) => Xe(o) === o)).filter((o) => e ? zt(o) === e || (t ? fo(o) !== o : !1) : !0); -} -const jc = function(e) { - return e === void 0 && (e = {}), { - name: "autoPlacement", - options: e, - async fn(t) { - var n, r, o, i, a, s; - const { - x: l, - y: u, - rects: c, - middlewareData: f, - placement: d - } = t, { - alignment: p = null, - allowedPlacements: v = Pc, - autoAlignment: y = !0, - ..._ - } = e; - if ((n = f.autoPlacement) != null && n.skip) - return {}; - const w = Ec(p, y, v), x = await Ir(t, _), S = (r = (o = f.autoPlacement) == null ? void 0 : o.index) != null ? r : 0, $ = w[S], { - main: k, - cross: N - } = ds($, c); - if (d !== $) - return { - x: l, - y: u, - reset: { - placement: w[0] - } - }; - const C = [x[Xe($)], x[k], x[N]], E = [...(i = (a = f.autoPlacement) == null ? void 0 : a.overflows) != null ? i : [], { - placement: $, - overflows: C - }], j = w[S + 1]; - if (j) - return { - data: { - index: S + 1, - overflows: E - }, - reset: { - placement: j - } - }; - const I = E.slice().sort((J, Y) => J.overflows[0] - Y.overflows[0]), H = (s = I.find((J) => { - let { - overflows: Y - } = J; - return Y.every((q) => q <= 0); - })) == null ? void 0 : s.placement; - return { - data: { - skip: !0 - }, - reset: { - placement: H ?? I[0].placement - } - }; - } - }; -}; -function Cc(e) { - const t = pr(e); - return [fo(e), t, fo(t)]; -} -const Ac = function(e) { - return e === void 0 && (e = {}), { - name: "flip", - options: e, - async fn(t) { - var n, r; - const { - placement: o, - middlewareData: i, - rects: a, - initialPlacement: s - } = t; - if ((n = i.flip) != null && n.skip) - return {}; - const { - mainAxis: l = !0, - crossAxis: u = !0, - fallbackPlacements: c, - fallbackStrategy: f = "bestFit", - flipAlignment: d = !0, - ...p - } = e, v = Xe(o), _ = c || (v === s || !d ? [pr(s)] : Cc(s)), w = [s, ..._], x = await Ir(t, p), S = []; - let $ = ((r = i.flip) == null ? void 0 : r.overflows) || []; - if (l && S.push(x[v]), u) { - const { - main: E, - cross: j - } = ds(o, a); - S.push(x[E], x[j]); - } - if ($ = [...$, { - placement: o, - overflows: S - }], !S.every((E) => E <= 0)) { - var k, N; - const E = ((k = (N = i.flip) == null ? void 0 : N.index) != null ? k : 0) + 1, j = w[E]; - if (j) - return { - data: { - index: E, - overflows: $ - }, - reset: { - placement: j - } - }; - let I = "bottom"; - switch (f) { - case "bestFit": { - var C; - const H = (C = $.slice().sort((J, Y) => J.overflows.filter((q) => q > 0).reduce((q, ge) => q + ge, 0) - Y.overflows.filter((q) => q > 0).reduce((q, ge) => q + ge, 0))[0]) == null ? void 0 : C.placement; - H && (I = H); - break; - } - case "initialPlacement": - I = s; - break; - } - return { - data: { - skip: !0 - }, - reset: { - placement: I - } - }; - } - return {}; - } - }; -}; -function Ic(e) { - let { - placement: t, - rects: n, - value: r - } = e; - const o = Xe(t), i = ["left", "top"].includes(o) ? -1 : 1, a = typeof r == "function" ? r({ - ...n, - placement: t - }) : r, { - mainAxis: s, - crossAxis: l - } = typeof a == "number" ? { - mainAxis: a, - crossAxis: 0 - } : { - mainAxis: 0, - crossAxis: 0, - ...a - }; - return Rn(o) === "x" ? { - x: l, - y: s * i - } : { - x: s * i, - y: l - }; -} -const Tc = function(e) { - return e === void 0 && (e = 0), { - name: "offset", - options: e, - fn(t) { - const { - x: n, - y: r, - placement: o, - rects: i - } = t, a = Ic({ - placement: o, - rects: i, - value: e - }); - return { - x: n + a.x, - y: r + a.y, - data: a - }; - } - }; -}; -function Dc(e) { - return e === "x" ? "y" : "x"; -} -const Nc = function(e) { - return e === void 0 && (e = {}), { - name: "shift", - options: e, - async fn(t) { - const { - x: n, - y: r, - placement: o - } = t, { - mainAxis: i = !0, - crossAxis: a = !1, - limiter: s = { - fn: (_) => { - let { - x: w, - y: x - } = _; - return { - x: w, - y: x - }; - } - }, - ...l - } = e, u = { - x: n, - y: r - }, c = await Ir(t, l), f = Rn(Xe(o)), d = Dc(f); - let p = u[f], v = u[d]; - if (i) { - const _ = f === "y" ? "top" : "left", w = f === "y" ? "bottom" : "right", x = p + c[_], S = p - c[w]; - p = uo(x, p, S); - } - if (a) { - const _ = d === "y" ? "top" : "left", w = d === "y" ? "bottom" : "right", x = v + c[_], S = v - c[w]; - v = uo(x, v, S); - } - const y = s.fn({ - ...t, - [f]: p, - [d]: v - }); - return { - ...y, - data: { - x: y.x - n, - y: y.y - r - } - }; - } - }; -}, Lc = function(e) { - return e === void 0 && (e = {}), { - name: "size", - options: e, - async fn(t) { - var n; - const { - placement: r, - rects: o, - middlewareData: i - } = t, { - apply: a, - ...s - } = e; - if ((n = i.size) != null && n.skip) - return {}; - const l = await Ir(t, s), u = Xe(r), c = zt(r) === "end"; - let f, d; - u === "top" || u === "bottom" ? (f = u, d = c ? "left" : "right") : (d = u, f = c ? "top" : "bottom"); - const p = Ot(l.left, 0), v = Ot(l.right, 0), y = Ot(l.top, 0), _ = Ot(l.bottom, 0), w = { - height: o.floating.height - (["left", "right"].includes(r) ? 2 * (y !== 0 || _ !== 0 ? y + _ : Ot(l.top, l.bottom)) : l[f]), - width: o.floating.width - (["top", "bottom"].includes(r) ? 2 * (p !== 0 || v !== 0 ? p + v : Ot(l.left, l.right)) : l[d]) - }; - return a == null || a({ - ...w, - ...o - }), { - data: { - skip: !0 - }, - reset: { - rects: !0 - } - }; - } - }; -}; -function Vo(e) { - return (e == null ? void 0 : e.toString()) === "[object Window]"; -} -function dt(e) { - if (e == null) - return window; - if (!Vo(e)) { - const t = e.ownerDocument; - return t && t.defaultView || window; - } - return e; -} -function Tr(e) { - return dt(e).getComputedStyle(e); -} -function Qe(e) { - return Vo(e) ? "" : e ? (e.nodeName || "").toLowerCase() : ""; -} -function Ye(e) { - return e instanceof dt(e).HTMLElement; -} -function hr(e) { - return e instanceof dt(e).Element; -} -function Mc(e) { - return e instanceof dt(e).Node; -} -function ps(e) { - const t = dt(e).ShadowRoot; - return e instanceof t || e instanceof ShadowRoot; -} -function Dr(e) { - const { - overflow: t, - overflowX: n, - overflowY: r - } = Tr(e); - return /auto|scroll|overlay|hidden/.test(t + r + n); -} -function Rc(e) { - return ["table", "td", "th"].includes(Qe(e)); -} -function hs(e) { - const t = navigator.userAgent.toLowerCase().includes("firefox"), n = Tr(e); - return n.transform !== "none" || n.perspective !== "none" || n.contain === "paint" || ["transform", "perspective"].includes(n.willChange) || t && n.willChange === "filter" || t && (n.filter ? n.filter !== "none" : !1); -} -const oi = Math.min, sn = Math.max, mr = Math.round; -function qt(e, t) { - t === void 0 && (t = !1); - const n = e.getBoundingClientRect(); - let r = 1, o = 1; - return t && Ye(e) && (r = e.offsetWidth > 0 && mr(n.width) / e.offsetWidth || 1, o = e.offsetHeight > 0 && mr(n.height) / e.offsetHeight || 1), { - width: n.width / r, - height: n.height / o, - top: n.top / o, - right: n.right / r, - bottom: n.bottom / o, - left: n.left / r, - x: n.left / r, - y: n.top / o - }; -} -function pt(e) { - return ((Mc(e) ? e.ownerDocument : e.document) || window.document).documentElement; -} -function Nr(e) { - return Vo(e) ? { - scrollLeft: e.pageXOffset, - scrollTop: e.pageYOffset - } : { - scrollLeft: e.scrollLeft, - scrollTop: e.scrollTop - }; -} -function ms(e) { - return qt(pt(e)).left + Nr(e).scrollLeft; -} -function Hc(e) { - const t = qt(e); - return mr(t.width) !== e.offsetWidth || mr(t.height) !== e.offsetHeight; -} -function Bc(e, t, n) { - const r = Ye(t), o = pt(t), i = qt(e, r && Hc(t)); - let a = { - scrollLeft: 0, - scrollTop: 0 - }; - const s = { - x: 0, - y: 0 - }; - if (r || !r && n !== "fixed") - if ((Qe(t) !== "body" || Dr(o)) && (a = Nr(t)), Ye(t)) { - const l = qt(t, !0); - s.x = l.x + t.clientLeft, s.y = l.y + t.clientTop; - } else - o && (s.x = ms(o)); - return { - x: i.left + a.scrollLeft - s.x, - y: i.top + a.scrollTop - s.y, - width: i.width, - height: i.height - }; -} -function Lr(e) { - return Qe(e) === "html" ? e : ( - // this is a quicker (but less type safe) way to save quite some bytes from the bundle - // @ts-ignore - e.assignedSlot || // step into the shadow DOM of the parent of a slotted node - e.parentNode || // DOM Element detected - (ps(e) ? e.host : null) || // ShadowRoot detected - pt(e) - ); -} -function ii(e) { - return !Ye(e) || getComputedStyle(e).position === "fixed" ? null : e.offsetParent; -} -function zc(e) { - let t = Lr(e); - for (; Ye(t) && !["html", "body"].includes(Qe(t)); ) { - if (hs(t)) - return t; - t = t.parentNode; - } - return null; -} -function po(e) { - const t = dt(e); - let n = ii(e); - for (; n && Rc(n) && getComputedStyle(n).position === "static"; ) - n = ii(n); - return n && (Qe(n) === "html" || Qe(n) === "body" && getComputedStyle(n).position === "static" && !hs(n)) ? t : n || zc(e) || t; -} -function ai(e) { - return { - width: e.offsetWidth, - height: e.offsetHeight - }; -} -function Fc(e) { - let { - rect: t, - offsetParent: n, - strategy: r - } = e; - const o = Ye(n), i = pt(n); - if (n === i) - return t; - let a = { - scrollLeft: 0, - scrollTop: 0 - }; - const s = { - x: 0, - y: 0 - }; - if ((o || !o && r !== "fixed") && ((Qe(n) !== "body" || Dr(i)) && (a = Nr(n)), Ye(n))) { - const l = qt(n, !0); - s.x = l.x + n.clientLeft, s.y = l.y + n.clientTop; - } - return { - ...t, - x: t.x - a.scrollLeft + s.x, - y: t.y - a.scrollTop + s.y - }; -} -function Vc(e) { - const t = dt(e), n = pt(e), r = t.visualViewport; - let o = n.clientWidth, i = n.clientHeight, a = 0, s = 0; - return r && (o = r.width, i = r.height, Math.abs(t.innerWidth / r.scale - r.width) < 0.01 && (a = r.offsetLeft, s = r.offsetTop)), { - width: o, - height: i, - x: a, - y: s - }; -} -function Uc(e) { - var t; - const n = pt(e), r = Nr(e), o = (t = e.ownerDocument) == null ? void 0 : t.body, i = sn(n.scrollWidth, n.clientWidth, o ? o.scrollWidth : 0, o ? o.clientWidth : 0), a = sn(n.scrollHeight, n.clientHeight, o ? o.scrollHeight : 0, o ? o.clientHeight : 0); - let s = -r.scrollLeft + ms(e); - const l = -r.scrollTop; - return Tr(o || n).direction === "rtl" && (s += sn(n.clientWidth, o ? o.clientWidth : 0) - i), { - width: i, - height: a, - x: s, - y: l - }; -} -function vs(e) { - return ["html", "body", "#document"].includes(Qe(e)) ? e.ownerDocument.body : Ye(e) && Dr(e) ? e : vs(Lr(e)); -} -function vr(e, t) { - var n; - t === void 0 && (t = []); - const r = vs(e), o = r === ((n = e.ownerDocument) == null ? void 0 : n.body), i = dt(r), a = o ? [i].concat(i.visualViewport || [], Dr(r) ? r : []) : r, s = t.concat(a); - return o ? s : ( - // @ts-ignore: isBody tells us target will be an HTMLElement here - s.concat(vr(Lr(a))) - ); -} -function qc(e, t) { - const n = t.getRootNode == null ? void 0 : t.getRootNode(); - if (e.contains(t)) - return !0; - if (n && ps(n)) { - let r = t; - do { - if (r && e === r) - return !0; - r = r.parentNode || r.host; - } while (r); - } - return !1; -} -function Wc(e) { - const t = qt(e), n = t.top + e.clientTop, r = t.left + e.clientLeft; - return { - top: n, - left: r, - x: r, - y: n, - right: r + e.clientWidth, - bottom: n + e.clientHeight, - width: e.clientWidth, - height: e.clientHeight - }; -} -function si(e, t) { - return t === "viewport" ? co(Vc(e)) : hr(t) ? Wc(t) : co(Uc(pt(e))); -} -function Kc(e) { - const t = vr(Lr(e)), r = ["absolute", "fixed"].includes(Tr(e).position) && Ye(e) ? po(e) : e; - return hr(r) ? t.filter((o) => hr(o) && qc(o, r) && Qe(o) !== "body") : []; -} -function Gc(e) { - let { - element: t, - boundary: n, - rootBoundary: r - } = e; - const i = [...n === "clippingParents" ? Kc(t) : [].concat(n), r], a = i[0], s = i.reduce((l, u) => { - const c = si(t, u); - return l.top = sn(c.top, l.top), l.right = oi(c.right, l.right), l.bottom = oi(c.bottom, l.bottom), l.left = sn(c.left, l.left), l; - }, si(t, a)); - return s.width = s.right - s.left, s.height = s.bottom - s.top, s.x = s.left, s.y = s.top, s; -} -const Jc = { - getElementRects: (e) => { - let { - reference: t, - floating: n, - strategy: r - } = e; - return { - reference: Bc(t, po(n), r), - floating: { - ...ai(n), - x: 0, - y: 0 - } - }; - }, - convertOffsetParentRelativeRectToViewportRelativeRect: (e) => Fc(e), - getOffsetParent: (e) => { - let { - element: t - } = e; - return po(t); - }, - isElement: (e) => hr(e), - getDocumentElement: (e) => { - let { - element: t - } = e; - return pt(t); - }, - getClippingClientRect: (e) => Gc(e), - getDimensions: (e) => { - let { - element: t - } = e; - return ai(t); - }, - getClientRects: (e) => { - let { - element: t - } = e; - return t.getClientRects(); - } -}, Qc = (e, t, n) => bc(e, t, { - platform: Jc, - ...n -}); -var Yc = Object.defineProperty, Zc = Object.defineProperties, Xc = Object.getOwnPropertyDescriptors, li = Object.getOwnPropertySymbols, eu = Object.prototype.hasOwnProperty, tu = Object.prototype.propertyIsEnumerable, ci = (e, t, n) => t in e ? Yc(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, We = (e, t) => { - for (var n in t || (t = {})) - eu.call(t, n) && ci(e, n, t[n]); - if (li) - for (var n of li(t)) - tu.call(t, n) && ci(e, n, t[n]); - return e; -}, Hn = (e, t) => Zc(e, Xc(t)); -function gs(e, t) { - for (const n in t) - Object.prototype.hasOwnProperty.call(t, n) && (typeof t[n] == "object" && e[n] ? gs(e[n], t[n]) : e[n] = t[n]); -} -const Ge = { - disabled: !1, - distance: 5, - skidding: 0, - container: "body", - boundary: void 0, - instantMove: !1, - disposeTimeout: 5e3, - popperTriggers: [], - strategy: "absolute", - preventOverflow: !0, - flip: !0, - shift: !0, - overflowPadding: 0, - arrowPadding: 0, - arrowOverflow: !0, - themes: { - tooltip: { - placement: "top", - triggers: ["hover", "focus", "touch"], - hideTriggers: (e) => [...e, "click"], - delay: { - show: 200, - hide: 0 - }, - handleResize: !1, - html: !1, - loadingContent: "..." - }, - dropdown: { - placement: "bottom", - triggers: ["click"], - delay: 0, - handleResize: !0, - autoHide: !0 - }, - menu: { - $extend: "dropdown", - triggers: ["hover", "focus"], - popperTriggers: ["hover", "focus"], - delay: { - show: 0, - hide: 400 - } - } - } -}; -function Wt(e, t) { - let n = Ge.themes[e] || {}, r; - do - r = n[t], typeof r > "u" ? n.$extend ? n = Ge.themes[n.$extend] || {} : (n = null, r = Ge[t]) : n = null; - while (n); - return r; -} -function nu(e) { - const t = [e]; - let n = Ge.themes[e] || {}; - do - n.$extend && !n.$resetCss ? (t.push(n.$extend), n = Ge.themes[n.$extend] || {}) : n = null; - while (n); - return t.map((r) => `v-popper--theme-${r}`); -} -function ui(e) { - const t = [e]; - let n = Ge.themes[e] || {}; - do - n.$extend ? (t.push(n.$extend), n = Ge.themes[n.$extend] || {}) : n = null; - while (n); - return t; -} -let $t = !1; -if (typeof window < "u") { - $t = !1; - try { - const e = Object.defineProperty({}, "passive", { - get() { - $t = !0; - } - }); - window.addEventListener("test", null, e); - } catch { - } -} -let ys = !1; -typeof window < "u" && typeof navigator < "u" && (ys = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream); -const _s = ["auto", "top", "bottom", "left", "right"].reduce((e, t) => e.concat([ - t, - `${t}-start`, - `${t}-end` -]), []), fi = { - hover: "mouseenter", - focus: "focus", - click: "click", - touch: "touchstart" -}, di = { - hover: "mouseleave", - focus: "blur", - click: "click", - touch: "touchend" -}; -function pi(e, t) { - const n = e.indexOf(t); - n !== -1 && e.splice(n, 1); -} -function Wr() { - return new Promise((e) => requestAnimationFrame(() => { - requestAnimationFrame(e); - })); -} -const Me = []; -let yt = null; -const hi = {}; -function mi(e) { - let t = hi[e]; - return t || (t = hi[e] = []), t; -} -let ho = function() { -}; -typeof window < "u" && (ho = window.Element); -function Q(e) { - return function(t) { - return Wt(t.theme, e); - }; -} -const Kr = "__floating-vue__popper"; -var bs = () => L({ - name: "VPopper", - provide() { - return { - [Kr]: { - parentPopper: this - } - }; - }, - inject: { - [Kr]: { default: null } - }, - props: { - theme: { - type: String, - required: !0 - }, - targetNodes: { - type: Function, - required: !0 - }, - referenceNode: { - type: Function, - default: null - }, - popperNode: { - type: Function, - required: !0 - }, - shown: { - type: Boolean, - default: !1 - }, - showGroup: { - type: String, - default: null - }, - ariaId: { - default: null - }, - disabled: { - type: Boolean, - default: Q("disabled") - }, - positioningDisabled: { - type: Boolean, - default: Q("positioningDisabled") - }, - placement: { - type: String, - default: Q("placement"), - validator: (e) => _s.includes(e) - }, - delay: { - type: [String, Number, Object], - default: Q("delay") - }, - distance: { - type: [Number, String], - default: Q("distance") - }, - skidding: { - type: [Number, String], - default: Q("skidding") - }, - triggers: { - type: Array, - default: Q("triggers") - }, - showTriggers: { - type: [Array, Function], - default: Q("showTriggers") - }, - hideTriggers: { - type: [Array, Function], - default: Q("hideTriggers") - }, - popperTriggers: { - type: Array, - default: Q("popperTriggers") - }, - popperShowTriggers: { - type: [Array, Function], - default: Q("popperShowTriggers") - }, - popperHideTriggers: { - type: [Array, Function], - default: Q("popperHideTriggers") - }, - container: { - type: [String, Object, ho, Boolean], - default: Q("container") - }, - boundary: { - type: [String, ho], - default: Q("boundary") - }, - strategy: { - type: String, - validator: (e) => ["absolute", "fixed"].includes(e), - default: Q("strategy") - }, - autoHide: { - type: [Boolean, Function], - default: Q("autoHide") - }, - handleResize: { - type: Boolean, - default: Q("handleResize") - }, - instantMove: { - type: Boolean, - default: Q("instantMove") - }, - eagerMount: { - type: Boolean, - default: Q("eagerMount") - }, - popperClass: { - type: [String, Array, Object], - default: Q("popperClass") - }, - computeTransformOrigin: { - type: Boolean, - default: Q("computeTransformOrigin") - }, - autoMinSize: { - type: Boolean, - default: Q("autoMinSize") - }, - autoSize: { - type: [Boolean, String], - default: Q("autoSize") - }, - autoMaxSize: { - type: Boolean, - default: Q("autoMaxSize") - }, - autoBoundaryMaxSize: { - type: Boolean, - default: Q("autoBoundaryMaxSize") - }, - preventOverflow: { - type: Boolean, - default: Q("preventOverflow") - }, - overflowPadding: { - type: [Number, String], - default: Q("overflowPadding") - }, - arrowPadding: { - type: [Number, String], - default: Q("arrowPadding") - }, - arrowOverflow: { - type: Boolean, - default: Q("arrowOverflow") - }, - flip: { - type: Boolean, - default: Q("flip") - }, - shift: { - type: Boolean, - default: Q("shift") - }, - shiftCrossAxis: { - type: Boolean, - default: Q("shiftCrossAxis") - }, - noAutoFocus: { - type: Boolean, - default: Q("noAutoFocus") - } - }, - emits: [ - "show", - "hide", - "update:shown", - "apply-show", - "apply-hide", - "close-group", - "close-directive", - "auto-hide", - "resize", - "dispose" - ], - data() { - return { - isShown: !1, - isMounted: !1, - skipTransition: !1, - classes: { - showFrom: !1, - showTo: !1, - hideFrom: !1, - hideTo: !0 - }, - result: { - x: 0, - y: 0, - placement: "", - strategy: this.strategy, - arrow: { - x: 0, - y: 0, - centerOffset: 0 - }, - transformOrigin: null - }, - shownChildren: /* @__PURE__ */ new Set(), - lastAutoHide: !0 - }; - }, - computed: { - popperId() { - return this.ariaId != null ? this.ariaId : this.randomId; - }, - shouldMountContent() { - return this.eagerMount || this.isMounted; - }, - slotData() { - return { - popperId: this.popperId, - isShown: this.isShown, - shouldMountContent: this.shouldMountContent, - skipTransition: this.skipTransition, - autoHide: typeof this.autoHide == "function" ? this.lastAutoHide : this.autoHide, - show: this.show, - hide: this.hide, - handleResize: this.handleResize, - onResize: this.onResize, - classes: Hn(We({}, this.classes), { - popperClass: this.popperClass - }), - result: this.positioningDisabled ? null : this.result, - attrs: this.$attrs - }; - }, - parentPopper() { - var e; - return (e = this[Kr]) == null ? void 0 : e.parentPopper; - }, - hasPopperShowTriggerHover() { - var e, t; - return ((e = this.popperTriggers) == null ? void 0 : e.includes("hover")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes("hover")); - } - }, - watch: We(We({ - shown: "$_autoShowHide", - disabled(e) { - e ? this.dispose() : this.init(); - }, - async container() { - this.isShown && (this.$_ensureTeleport(), await this.$_computePosition()); - } - }, [ - "triggers", - "positioningDisabled" - ].reduce((e, t) => (e[t] = "$_refreshListeners", e), {})), [ - "placement", - "distance", - "skidding", - "boundary", - "strategy", - "overflowPadding", - "arrowPadding", - "preventOverflow", - "shift", - "shiftCrossAxis", - "flip" - ].reduce((e, t) => (e[t] = "$_computePosition", e), {})), - created() { - this.$_isDisposed = !0, this.randomId = `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join("_")}`, this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'), this.autoMaxSize && console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead."); - }, - mounted() { - this.init(), this.$_detachPopperNode(); - }, - activated() { - this.$_autoShowHide(); - }, - deactivated() { - this.hide(); - }, - beforeUnmount() { - this.dispose(); - }, - methods: { - show({ event: e = null, skipDelay: t = !1, force: n = !1 } = {}) { - var r, o; - (r = this.parentPopper) != null && r.lockedChild && this.parentPopper.lockedChild !== this || (this.$_pendingHide = !1, (n || !this.disabled) && (((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit("show"), this.$_showFrameLocked = !0, requestAnimationFrame(() => { - this.$_showFrameLocked = !1; - })), this.$emit("update:shown", !0)); - }, - hide({ event: e = null, skipDelay: t = !1 } = {}) { - var n; - if (!this.$_hideInProgress) { - if (this.shownChildren.size > 0) { - this.$_pendingHide = !0; - return; - } - if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) { - this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => { - this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null); - }, 1e3)); - return; - } - ((n = this.parentPopper) == null ? void 0 : n.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_pendingHide = !1, this.$_scheduleHide(e, t), this.$emit("hide"), this.$emit("update:shown", !1); - } - }, - init() { - var e, t; - this.$_isDisposed && (this.$_isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = (t = (e = this.referenceNode) == null ? void 0 : e.call(this)) != null ? t : this.$el, this.$_targetNodes = this.targetNodes().filter((n) => n.nodeType === n.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(".v-popper__inner"), this.$_arrowNode = this.$_popperNode.querySelector(".v-popper__arrow-container"), this.$_swapTargetAttrs("title", "data-original-title"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show()); - }, - dispose() { - this.$_isDisposed || (this.$_isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs("data-original-title", "title"), this.$emit("dispose")); - }, - async onResize() { - this.isShown && (await this.$_computePosition(), this.$emit("resize")); - }, - async $_computePosition() { - var e; - if (this.$_isDisposed || this.positioningDisabled) - return; - const t = { - strategy: this.strategy, - middleware: [] - }; - (this.distance || this.skidding) && t.middleware.push(Tc({ - mainAxis: this.distance, - crossAxis: this.skidding - })); - const n = this.placement.startsWith("auto"); - if (n ? t.middleware.push(jc({ - alignment: (e = this.placement.split("-")[1]) != null ? e : "" - })) : t.placement = this.placement, this.preventOverflow && (this.shift && t.middleware.push(Nc({ - padding: this.overflowPadding, - boundary: this.boundary, - crossAxis: this.shiftCrossAxis - })), !n && this.flip && t.middleware.push(Ac({ - padding: this.overflowPadding, - boundary: this.boundary - }))), t.middleware.push(Sc({ - element: this.$_arrowNode, - padding: this.arrowPadding - })), this.arrowOverflow && t.middleware.push({ - name: "arrowOverflow", - fn: ({ placement: o, rects: i, middlewareData: a }) => { - let s; - const { centerOffset: l } = a.arrow; - return o.startsWith("top") || o.startsWith("bottom") ? s = Math.abs(l) > i.reference.width / 2 : s = Math.abs(l) > i.reference.height / 2, { - data: { - overflow: s - } - }; - } - }), this.autoMinSize || this.autoSize) { - const o = this.autoSize ? this.autoSize : this.autoMinSize ? "min" : null; - t.middleware.push({ - name: "autoSize", - fn: ({ rects: i, placement: a, middlewareData: s }) => { - var l; - if ((l = s.autoSize) != null && l.skip) - return {}; - let u, c; - return a.startsWith("top") || a.startsWith("bottom") ? u = i.reference.width : c = i.reference.height, this.$_innerNode.style[o === "min" ? "minWidth" : o === "max" ? "maxWidth" : "width"] = u != null ? `${u}px` : null, this.$_innerNode.style[o === "min" ? "minHeight" : o === "max" ? "maxHeight" : "height"] = c != null ? `${c}px` : null, { - data: { - skip: !0 - }, - reset: { - rects: !0 - } - }; - } - }); - } - (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, t.middleware.push(Lc({ - boundary: this.boundary, - padding: this.overflowPadding, - apply: ({ width: o, height: i }) => { - this.$_innerNode.style.maxWidth = o != null ? `${o}px` : null, this.$_innerNode.style.maxHeight = i != null ? `${i}px` : null; - } - }))); - const r = await Qc(this.$_referenceNode, this.$_popperNode, t); - Object.assign(this.result, { - x: r.x, - y: r.y, - placement: r.placement, - strategy: r.strategy, - arrow: We(We({}, r.middlewareData.arrow), r.middlewareData.arrowOverflow) - }); - }, - $_scheduleShow(e = null, t = !1) { - if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), yt && this.instantMove && yt.instantMove && yt !== this.parentPopper) { - yt.$_applyHide(!0), this.$_applyShow(!0); - return; - } - t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay("show")); - }, - $_scheduleHide(e = null, t = !1) { - if (this.shownChildren.size > 0) { - this.$_pendingHide = !0; - return; - } - this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (yt = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay("hide")); - }, - $_computeDelay(e) { - const t = this.delay; - return parseInt(t && t[e] || t || 0); - }, - async $_applyShow(e = !1) { - clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await Wr(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([ - ...vr(this.$_referenceNode), - ...vr(this.$_popperNode) - ], "scroll", () => { - this.$_computePosition(); - })); - }, - async $_applyShowEffect() { - if (this.$_hideInProgress) - return; - if (this.computeTransformOrigin) { - const t = this.$_referenceNode.getBoundingClientRect(), n = this.$_popperNode.querySelector(".v-popper__wrapper"), r = n.parentNode.getBoundingClientRect(), o = t.x + t.width / 2 - (r.left + n.offsetLeft), i = t.y + t.height / 2 - (r.top + n.offsetTop); - this.result.transformOrigin = `${o}px ${i}px`; - } - this.isShown = !0, this.$_applyAttrsToTarget({ - "aria-describedby": this.popperId, - "data-popper-shown": "" - }); - const e = this.showGroup; - if (e) { - let t; - for (let n = 0; n < Me.length; n++) - t = Me[n], t.showGroup !== e && (t.hide(), t.$emit("close-group")); - } - Me.push(this), document.body.classList.add("v-popper--some-open"); - for (const t of ui(this.theme)) - mi(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`); - this.$emit("apply-show"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await Wr(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus(); - }, - async $_applyHide(e = !1) { - if (this.shownChildren.size > 0) { - this.$_pendingHide = !0, this.$_hideInProgress = !1; - return; - } - if (clearTimeout(this.$_scheduleTimer), !this.isShown) - return; - this.skipTransition = e, pi(Me, this), Me.length === 0 && document.body.classList.remove("v-popper--some-open"); - for (const n of ui(this.theme)) { - const r = mi(n); - pi(r, this), r.length === 0 && document.body.classList.remove(`v-popper--some-open--${n}`); - } - yt === this && (yt = null), this.isShown = !1, this.$_applyAttrsToTarget({ - "aria-describedby": void 0, - "data-popper-shown": void 0 - }), clearTimeout(this.$_disposeTimer); - const t = Wt(this.theme, "disposeTimeout"); - t !== null && (this.$_disposeTimer = setTimeout(() => { - this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1); - }, t)), this.$_removeEventListeners("scroll"), this.$emit("apply-hide"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await Wr(), this.classes.hideFrom = !1, this.classes.hideTo = !0; - }, - $_autoShowHide() { - this.shown ? this.show() : this.hide(); - }, - $_ensureTeleport() { - if (this.$_isDisposed) - return; - let e = this.container; - if (typeof e == "string" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e) - throw new Error("No container for popover: " + this.container); - e.appendChild(this.$_popperNode), this.isMounted = !0; - }, - $_addEventListeners() { - const e = (n) => { - this.isShown && !this.$_hideInProgress || (n.usedByTooltip = !0, !this.$_preventShow && this.show({ event: n })); - }; - this.$_registerTriggerListeners(this.$_targetNodes, fi, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], fi, this.popperTriggers, this.popperShowTriggers, e); - const t = (n) => { - n.usedByTooltip || this.hide({ event: n }); - }; - this.$_registerTriggerListeners(this.$_targetNodes, di, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], di, this.popperTriggers, this.popperHideTriggers, t); - }, - $_registerEventListeners(e, t, n) { - this.$_events.push({ targetNodes: e, eventType: t, handler: n }), e.forEach((r) => r.addEventListener(t, n, $t ? { - passive: !0 - } : void 0)); - }, - $_registerTriggerListeners(e, t, n, r, o) { - let i = n; - r != null && (i = typeof r == "function" ? r(i) : r), i.forEach((a) => { - const s = t[a]; - s && this.$_registerEventListeners(e, s, o); - }); - }, - $_removeEventListeners(e) { - const t = []; - this.$_events.forEach((n) => { - const { targetNodes: r, eventType: o, handler: i } = n; - !e || e === o ? r.forEach((a) => a.removeEventListener(o, i)) : t.push(n); - }), this.$_events = t; - }, - $_refreshListeners() { - this.$_isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners()); - }, - $_handleGlobalClose(e, t = !1) { - this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit("close-directive") : this.$emit("auto-hide"), t && (this.$_preventShow = !0, setTimeout(() => { - this.$_preventShow = !1; - }, 300))); - }, - $_detachPopperNode() { - this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode); - }, - $_swapTargetAttrs(e, t) { - for (const n of this.$_targetNodes) { - const r = n.getAttribute(e); - r && (n.removeAttribute(e), n.setAttribute(t, r)); - } - }, - $_applyAttrsToTarget(e) { - for (const t of this.$_targetNodes) - for (const n in e) { - const r = e[n]; - r == null ? t.removeAttribute(n) : t.setAttribute(n, r); - } - }, - $_updateParentShownChildren(e) { - let t = this.parentPopper; - for (; t; ) - e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.$_pendingHide && t.hide()), t = t.parentPopper; - }, - $_isAimingPopper() { - const e = this.$_referenceNode.getBoundingClientRect(); - if (ln >= e.left && ln <= e.right && cn >= e.top && cn <= e.bottom) { - const t = this.$_popperNode.getBoundingClientRect(), n = ln - ot, r = cn - it, i = t.left + t.width / 2 - ot + (t.top + t.height / 2) - it + t.width + t.height, a = ot + n * i, s = it + r * i; - return qn(ot, it, a, s, t.left, t.top, t.left, t.bottom) || qn(ot, it, a, s, t.left, t.top, t.right, t.top) || qn(ot, it, a, s, t.right, t.top, t.right, t.bottom) || qn(ot, it, a, s, t.left, t.bottom, t.right, t.bottom); - } - return !1; - } - }, - render() { - return this.$slots.default(this.slotData); - } -}); -typeof document < "u" && typeof window < "u" && (ys ? (document.addEventListener("touchstart", vi, $t ? { - passive: !0, - capture: !0 -} : !0), document.addEventListener("touchend", ou, $t ? { - passive: !0, - capture: !0 -} : !0)) : (window.addEventListener("mousedown", vi, !0), window.addEventListener("click", ru, !0)), window.addEventListener("resize", su)); -function vi(e) { - for (let t = 0; t < Me.length; t++) { - const n = Me[t]; - try { - const r = n.popperNode(); - n.$_mouseDownContains = r.contains(e.target); - } catch { - } - } -} -function ru(e) { - ws(e); -} -function ou(e) { - ws(e, !0); -} -function ws(e, t = !1) { - const n = {}; - for (let r = Me.length - 1; r >= 0; r--) { - const o = Me[r]; - try { - const i = o.$_containsGlobalTarget = iu(o, e); - o.$_pendingHide = !1, requestAnimationFrame(() => { - if (o.$_pendingHide = !1, !n[o.randomId] && gi(o, i, e)) { - if (o.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && i) { - let s = o.parentPopper; - for (; s; ) - n[s.randomId] = !0, s = s.parentPopper; - return; - } - let a = o.parentPopper; - for (; a && gi(a, a.$_containsGlobalTarget, e); ) { - a.$_handleGlobalClose(e, t); - a = a.parentPopper; - } - } - }); - } catch { - } - } -} -function iu(e, t) { - const n = e.popperNode(); - return e.$_mouseDownContains || n.contains(t.target); -} -function gi(e, t, n) { - return n.closeAllPopover || n.closePopover && t || au(e, n) && !t; -} -function au(e, t) { - if (typeof e.autoHide == "function") { - const n = e.autoHide(t); - return e.lastAutoHide = n, n; - } - return e.autoHide; -} -function su(e) { - for (let t = 0; t < Me.length; t++) - Me[t].$_computePosition(e); -} -let ot = 0, it = 0, ln = 0, cn = 0; -typeof window < "u" && window.addEventListener("mousemove", (e) => { - ot = ln, it = cn, ln = e.clientX, cn = e.clientY; -}, $t ? { - passive: !0 -} : void 0); -function qn(e, t, n, r, o, i, a, s) { - const l = ((a - o) * (t - i) - (s - i) * (e - o)) / ((s - i) * (n - e) - (a - o) * (r - t)), u = ((n - e) * (t - i) - (r - t) * (e - o)) / ((s - i) * (n - e) - (a - o) * (r - t)); - return l >= 0 && l <= 1 && u >= 0 && u <= 1; -} -var Mr = (e, t) => { - const n = e.__vccOpts || e; - for (const [r, o] of t) - n[r] = o; - return n; -}; -const lu = { - extends: bs() -}; -function cu(e, t, n, r, o, i) { - return g(), b("div", { - ref: "reference", - class: te(["v-popper", { - "v-popper--shown": e.slotData.isShown - }]) - }, [ - De(e.$slots, "default", ic(ac(e.slotData))) - ], 2); -} -var uu = /* @__PURE__ */ Mr(lu, [["render", cu]]); -function fu() { - var e = window.navigator.userAgent, t = e.indexOf("MSIE "); - if (t > 0) - return parseInt(e.substring(t + 5, e.indexOf(".", t)), 10); - var n = e.indexOf("Trident/"); - if (n > 0) { - var r = e.indexOf("rv:"); - return parseInt(e.substring(r + 3, e.indexOf(".", r)), 10); - } - var o = e.indexOf("Edge/"); - return o > 0 ? parseInt(e.substring(o + 5, e.indexOf(".", o)), 10) : -1; -} -let ir; -function mo() { - mo.init || (mo.init = !0, ir = fu() !== -1); -} -var Rr = { - name: "ResizeObserver", - props: { - emitOnMount: { - type: Boolean, - default: !1 - }, - ignoreWidth: { - type: Boolean, - default: !1 - }, - ignoreHeight: { - type: Boolean, - default: !1 - } - }, - emits: [ - "notify" - ], - mounted() { - mo(), Ln(() => { - this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize(); - }); - const e = document.createElement("object"); - this._resizeObject = e, e.setAttribute("aria-hidden", "true"), e.setAttribute("tabindex", -1), e.onload = this.addResizeHandlers, e.type = "text/html", ir && this.$el.appendChild(e), e.data = "about:blank", ir || this.$el.appendChild(e); - }, - beforeUnmount() { - this.removeResizeHandlers(); - }, - methods: { - compareAndNotify() { - (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize()); - }, - emitSize() { - this.$emit("notify", { - width: this._w, - height: this._h - }); - }, - addResizeHandlers() { - this._resizeObject.contentDocument.defaultView.addEventListener("resize", this.compareAndNotify), this.compareAndNotify(); - }, - removeResizeHandlers() { - this._resizeObject && this._resizeObject.onload && (!ir && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener("resize", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null); - } - } -}; -const du = /* @__PURE__ */ sc("data-v-b329ee4c"); -rc("data-v-b329ee4c"); -const pu = { - class: "resize-observer", - tabindex: "-1" -}; -oc(); -const hu = /* @__PURE__ */ du((e, t, n, r, o, i) => (g(), ue("div", pu))); -Rr.render = hu; -Rr.__scopeId = "data-v-b329ee4c"; -Rr.__file = "src/components/ResizeObserver.vue"; -var xs = (e = "theme") => ({ - computed: { - themeClass() { - return nu(this[e]); - } - } -}); -const mu = L({ - name: "VPopperContent", - components: { - ResizeObserver: Rr - }, - mixins: [ - xs() - ], - props: { - popperId: String, - theme: String, - shown: Boolean, - mounted: Boolean, - skipTransition: Boolean, - autoHide: Boolean, - handleResize: Boolean, - classes: Object, - result: Object - }, - emits: [ - "hide", - "resize" - ], - methods: { - toPx(e) { - return e != null && !isNaN(e) ? `${e}px` : null; - } - } -}), vu = ["id", "aria-hidden", "tabindex", "data-popper-placement"], gu = { - ref: "inner", - class: "v-popper__inner" -}, yu = /* @__PURE__ */ h("div", { class: "v-popper__arrow-outer" }, null, -1), _u = /* @__PURE__ */ h("div", { class: "v-popper__arrow-inner" }, null, -1), bu = [ - yu, - _u -]; -function wu(e, t, n, r, o, i) { - const a = ke("ResizeObserver"); - return g(), b("div", { - id: e.popperId, - ref: "popover", - class: te(["v-popper__popper", [ - e.themeClass, - e.classes.popperClass, - { - "v-popper__popper--shown": e.shown, - "v-popper__popper--hidden": !e.shown, - "v-popper__popper--show-from": e.classes.showFrom, - "v-popper__popper--show-to": e.classes.showTo, - "v-popper__popper--hide-from": e.classes.hideFrom, - "v-popper__popper--hide-to": e.classes.hideTo, - "v-popper__popper--skip-transition": e.skipTransition, - "v-popper__popper--arrow-overflow": e.result && e.result.arrow.overflow, - "v-popper__popper--no-positioning": !e.result - } - ]]), - style: or(e.result ? { - position: e.result.strategy, - transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)` - } : void 0), - "aria-hidden": e.shown ? "false" : "true", - tabindex: e.autoHide ? 0 : void 0, - "data-popper-placement": e.result ? e.result.placement : void 0, - onKeyup: t[2] || (t[2] = lc((s) => e.autoHide && e.$emit("hide"), ["esc"])) - }, [ - h("div", { - class: "v-popper__backdrop", - onClick: t[0] || (t[0] = (s) => e.autoHide && e.$emit("hide")) - }), - h("div", { - class: "v-popper__wrapper", - style: or(e.result ? { - transformOrigin: e.result.transformOrigin - } : void 0) - }, [ - h("div", gu, [ - e.mounted ? (g(), b(F, { key: 0 }, [ - h("div", null, [ - De(e.$slots, "default") - ]), - e.handleResize ? (g(), ue(a, { - key: 0, - onNotify: t[1] || (t[1] = (s) => e.$emit("resize", s)) - })) : V("", !0) - ], 64)) : V("", !0) - ], 512), - h("div", { - ref: "arrow", - class: "v-popper__arrow-container", - style: or(e.result ? { - left: e.toPx(e.result.arrow.x), - top: e.toPx(e.result.arrow.y) - } : void 0) - }, bu, 4) - ], 4) - ], 46, vu); -} -var Ss = /* @__PURE__ */ Mr(mu, [["render", wu]]), Os = { - methods: { - show(...e) { - return this.$refs.popper.show(...e); - }, - hide(...e) { - return this.$refs.popper.hide(...e); - }, - dispose(...e) { - return this.$refs.popper.dispose(...e); - }, - onResize(...e) { - return this.$refs.popper.onResize(...e); - } - } -}; -const xu = L({ - name: "VPopperWrapper", - components: { - Popper: uu, - PopperContent: Ss - }, - mixins: [ - Os, - xs("finalTheme") - ], - props: { - theme: { - type: String, - default: null - } - }, - computed: { - finalTheme() { - var e; - return (e = this.theme) != null ? e : this.$options.vPopperTheme; - } - }, - methods: { - getTargetNodes() { - return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el); - } - } -}); -function Su(e, t, n, r, o, i) { - const a = ke("PopperContent"), s = ke("Popper"); - return g(), ue(s, { - ref: "popper", - theme: e.finalTheme, - "target-nodes": e.getTargetNodes, - "popper-node": () => e.$refs.popperContent.$el, - class: te([ - e.themeClass - ]) - }, { - default: ve(({ - popperId: l, - isShown: u, - shouldMountContent: c, - skipTransition: f, - autoHide: d, - show: p, - hide: v, - handleResize: y, - onResize: _, - classes: w, - result: x - }) => [ - De(e.$slots, "default", { - shown: u, - show: p, - hide: v - }), - z(a, { - ref: "popperContent", - "popper-id": l, - theme: e.finalTheme, - shown: u, - mounted: c, - "skip-transition": f, - "auto-hide": d, - "handle-resize": y, - classes: w, - result: x, - onHide: v, - onResize: _ - }, { - default: ve(() => [ - De(e.$slots, "popper", { - shown: u, - hide: v - }) - ]), - _: 2 - }, 1032, ["popper-id", "theme", "shown", "mounted", "skip-transition", "auto-hide", "handle-resize", "classes", "result", "onHide", "onResize"]) - ]), - _: 3 - }, 8, ["theme", "target-nodes", "popper-node", "class"]); -} -var Uo = /* @__PURE__ */ Mr(xu, [["render", Su]]); -const Ou = L(Hn(We({}, Uo), { - name: "VDropdown", - vPopperTheme: "dropdown" -})), ku = L(Hn(We({}, Uo), { - name: "VMenu", - vPopperTheme: "menu" -})), $u = L(Hn(We({}, Uo), { - name: "VTooltip", - vPopperTheme: "tooltip" -})), Pu = L({ - name: "VTooltipDirective", - components: { - Popper: bs(), - PopperContent: Ss - }, - mixins: [ - Os - ], - inheritAttrs: !1, - props: { - theme: { - type: String, - default: "tooltip" - }, - html: { - type: Boolean, - default: (e) => Wt(e.theme, "html") - }, - content: { - type: [String, Number, Function], - default: null - }, - loadingContent: { - type: String, - default: (e) => Wt(e.theme, "loadingContent") - } - }, - data() { - return { - asyncContent: null - }; - }, - computed: { - isContentAsync() { - return typeof this.content == "function"; - }, - loading() { - return this.isContentAsync && this.asyncContent == null; - }, - finalContent() { - return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content; - } - }, - watch: { - content: { - handler() { - this.fetchContent(!0); - }, - immediate: !0 - }, - async finalContent() { - await this.$nextTick(), this.$refs.popper.onResize(); - } - }, - created() { - this.$_fetchId = 0; - }, - methods: { - fetchContent(e) { - if (typeof this.content == "function" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) { - this.asyncContent = null, this.$_loading = !0; - const t = ++this.$_fetchId, n = this.content(this); - n.then ? n.then((r) => this.onResult(t, r)) : this.onResult(t, n); - } - }, - onResult(e, t) { - e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t); - }, - onShow() { - this.$_isShown = !0, this.fetchContent(); - }, - onHide() { - this.$_isShown = !1; - } - } -}), Eu = ["innerHTML"], ju = ["textContent"]; -function Cu(e, t, n, r, o, i) { - const a = ke("PopperContent"), s = ke("Popper"); - return g(), ue(s, uc({ ref: "popper" }, e.$attrs, { - theme: e.theme, - "popper-node": () => e.$refs.popperContent.$el, - onApplyShow: e.onShow, - onApplyHide: e.onHide - }), { - default: ve(({ - popperId: l, - isShown: u, - shouldMountContent: c, - skipTransition: f, - autoHide: d, - hide: p, - handleResize: v, - onResize: y, - classes: _, - result: w - }) => [ - z(a, { - ref: "popperContent", - class: te({ - "v-popper--tooltip-loading": e.loading - }), - "popper-id": l, - theme: e.theme, - shown: u, - mounted: c, - "skip-transition": f, - "auto-hide": d, - "handle-resize": v, - classes: _, - result: w, - onHide: p, - onResize: y - }, { - default: ve(() => [ - e.html ? (g(), b("div", { - key: 0, - innerHTML: e.finalContent - }, null, 8, Eu)) : (g(), b("div", { - key: 1, - textContent: U(e.finalContent) - }, null, 8, ju)) - ]), - _: 2 - }, 1032, ["class", "popper-id", "theme", "shown", "mounted", "skip-transition", "auto-hide", "handle-resize", "classes", "result", "onHide", "onResize"]) - ]), - _: 1 - }, 16, ["theme", "popper-node", "onApplyShow", "onApplyHide"]); -} -var Au = /* @__PURE__ */ Mr(Pu, [["render", Cu]]); -const ks = "v-popper--has-tooltip"; -function Iu(e, t) { - let n = e.placement; - if (!n && t) - for (const r of _s) - t[r] && (n = r); - return n || (n = Wt(e.theme || "tooltip", "placement")), n; -} -function $s(e, t, n) { - let r; - const o = typeof t; - return o === "string" ? r = { content: t } : t && o === "object" ? r = t : r = { content: !1 }, r.placement = Iu(r, n), r.targetNodes = () => [e], r.referenceNode = () => e, r; -} -let Gr, Pn, Tu = 0; -function Du() { - if (Gr) - return; - Pn = A([]), Gr = cc({ - name: "VTooltipDirectiveApp", - setup() { - return { - directives: Pn - }; - }, - render() { - return this.directives.map((t) => se(Au, Hn(We({}, t.options), { - shown: t.shown || t.options.shown, - key: t.id - }))); - }, - devtools: { - hide: !0 - } - }); - const e = document.createElement("div"); - document.body.appendChild(e), Gr.mount(e); -} -function Nu(e, t, n) { - Du(); - const r = A($s(e, t, n)), o = A(!1), i = { - id: Tu++, - options: r, - shown: o - }; - return Pn.value.push(i), e.classList && e.classList.add(ks), e.$_popper = { - options: r, - item: i, - show() { - o.value = !0; - }, - hide() { - o.value = !1; - } - }; -} -function Ps(e) { - if (e.$_popper) { - const t = Pn.value.indexOf(e.$_popper.item); - t !== -1 && Pn.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget; - } - e.classList && e.classList.remove(ks); -} -function yi(e, { value: t, modifiers: n }) { - const r = $s(e, t, n); - if (!r.content || Wt(r.theme || "tooltip", "disabled")) - Ps(e); - else { - let o; - e.$_popper ? (o = e.$_popper, o.options.value = r) : o = Nu(e, t, n), typeof t.shown < "u" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? o.show() : o.hide()); - } -} -var Lu = { - beforeMount: yi, - updated: yi, - beforeUnmount(e) { - Ps(e); - } -}; -function _i(e) { - e.addEventListener("click", Es), e.addEventListener("touchstart", js, $t ? { - passive: !0 - } : !1); -} -function bi(e) { - e.removeEventListener("click", Es), e.removeEventListener("touchstart", js), e.removeEventListener("touchend", Cs), e.removeEventListener("touchcancel", As); -} -function Es(e) { - const t = e.currentTarget; - e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all; -} -function js(e) { - if (e.changedTouches.length === 1) { - const t = e.currentTarget; - t.$_vclosepopover_touch = !0; - const n = e.changedTouches[0]; - t.$_vclosepopover_touchPoint = n, t.addEventListener("touchend", Cs), t.addEventListener("touchcancel", As); - } -} -function Cs(e) { - const t = e.currentTarget; - if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) { - const n = e.changedTouches[0], r = t.$_vclosepopover_touchPoint; - e.closePopover = Math.abs(n.screenY - r.screenY) < 20 && Math.abs(n.screenX - r.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all; - } -} -function As(e) { - const t = e.currentTarget; - t.$_vclosepopover_touch = !1; -} -var Mu = { - beforeMount(e, { value: t, modifiers: n }) { - e.$_closePopoverModifiers = n, (typeof t > "u" || t) && _i(e); - }, - updated(e, { value: t, oldValue: n, modifiers: r }) { - e.$_closePopoverModifiers = r, t !== n && (typeof t > "u" || t ? _i(e) : bi(e)); - }, - beforeUnmount(e) { - bi(e); - } -}; -function Ru(e, t = {}) { - e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, gs(Ge, t), e.directive("tooltip", Lu), e.directive("close-popper", Mu), e.component("VTooltip", $u), e.component("VDropdown", Ou), e.component("VMenu", ku)); -} -const Hu = { - version: "2.0.0-beta.20", - install: Ru, - options: Ge -}; -function Re(e, t, ...n) { - if (e in t) { - let o = t[e]; - return typeof o == "function" ? o(...n) : o; - } - let r = new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map((o) => `"${o}"`).join(", ")}.`); - throw Error.captureStackTrace && Error.captureStackTrace(r, Re), r; -} -var gr = ((e) => (e[e.None = 0] = "None", e[e.RenderStrategy = 1] = "RenderStrategy", e[e.Static = 2] = "Static", e))(gr || {}), lt = ((e) => (e[e.Unmount = 0] = "Unmount", e[e.Hidden = 1] = "Hidden", e))(lt || {}); -function we({ visible: e = !0, features: t = 0, ourProps: n, theirProps: r, ...o }) { - var i; - let a = Bu(r, n), s = Object.assign(o, { props: a }); - if (e || t & 2 && a.static) - return Jr(s); - if (t & 1) { - let l = (i = a.unmount) == null || i ? 0 : 1; - return Re(l, { 0() { - return null; - }, 1() { - return Jr({ ...o, props: { ...a, hidden: !0, style: { display: "none" } } }); - } }); - } - return Jr(s); -} -function Jr({ props: e, attrs: t, slots: n, slot: r, name: o }) { - var i; - let { as: a, ...s } = qo(e, ["unmount", "static"]), l = (i = n.default) == null ? void 0 : i.call(n, r), u = {}; - if (r) { - let c = !1, f = []; - for (let [d, p] of Object.entries(r)) - typeof p == "boolean" && (c = !0), p === !0 && f.push(d); - c && (u["data-headlessui-state"] = f.join(" ")); - } - if (a === "template") { - if (l = Is(l ?? []), Object.keys(s).length > 0 || Object.keys(t).length > 0) { - let [c, ...f] = l ?? []; - if (!Fu(c) || f.length > 0) - throw new Error(['Passing props on "template"!', "", `The current component <${o} /> is rendering a "template".`, "However we need to passthrough the following props:", Object.keys(s).concat(Object.keys(t)).sort((d, p) => d.localeCompare(p)).map((d) => ` - ${d}`).join(` -`), "", "You can apply a few solutions:", ['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".', "Render a single element as the child so that we can forward the props onto that element."].map((d) => ` - ${d}`).join(` -`)].join(` -`)); - return fc(c, Object.assign({}, s, u)); - } - return Array.isArray(l) && l.length === 1 ? l[0] : l; - } - return se(a, Object.assign({}, s, u), { default: () => l }); -} -function Is(e) { - return e.flatMap((t) => t.type === F ? Is(t.children) : [t]); -} -function Bu(...e) { - if (e.length === 0) - return {}; - if (e.length === 1) - return e[0]; - let t = {}, n = {}; - for (let r of e) - for (let o in r) - o.startsWith("on") && typeof r[o] == "function" ? (n[o] != null || (n[o] = []), n[o].push(r[o])) : t[o] = r[o]; - if (t.disabled || t["aria-disabled"]) - return Object.assign(t, Object.fromEntries(Object.keys(n).map((r) => [r, void 0]))); - for (let r in n) - Object.assign(t, { [r](o, ...i) { - let a = n[r]; - for (let s of a) { - if (o instanceof Event && o.defaultPrevented) - return; - s(o, ...i); - } - } }); - return t; -} -function zu(e) { - let t = Object.assign({}, e); - for (let n in t) - t[n] === void 0 && delete t[n]; - return t; -} -function qo(e, t = []) { - let n = Object.assign({}, e); - for (let r of t) - r in n && delete n[r]; - return n; -} -function Fu(e) { - return e == null ? !1 : typeof e.type == "string" || typeof e.type == "object" || typeof e.type == "function"; -} -let Vu = 0; -function Uu() { - return ++Vu; -} -function et() { - return Uu(); -} -var yr = ((e) => (e.Space = " ", e.Enter = "Enter", e.Escape = "Escape", e.Backspace = "Backspace", e.Delete = "Delete", e.ArrowLeft = "ArrowLeft", e.ArrowUp = "ArrowUp", e.ArrowRight = "ArrowRight", e.ArrowDown = "ArrowDown", e.Home = "Home", e.End = "End", e.PageUp = "PageUp", e.PageDown = "PageDown", e.Tab = "Tab", e))(yr || {}); -function Te(e) { - var t; - return e == null || e.value == null ? null : (t = e.value.$el) != null ? t : e.value; -} -let Ts = Symbol("Context"); -var Pt = ((e) => (e[e.Open = 0] = "Open", e[e.Closed = 1] = "Closed", e))(Pt || {}); -function qu() { - return Wo() !== null; -} -function Wo() { - return he(Ts, null); -} -function Wu(e) { - He(Ts, e); -} -function wi(e, t) { - if (e) - return e; - let n = t ?? "button"; - if (typeof n == "string" && n.toLowerCase() === "button") - return "button"; -} -function Ku(e, t) { - let n = A(wi(e.value.type, e.value.as)); - return le(() => { - n.value = wi(e.value.type, e.value.as); - }), Oe(() => { - var r; - n.value || !Te(t) || Te(t) instanceof HTMLButtonElement && !((r = Te(t)) != null && r.hasAttribute("type")) && (n.value = "button"); - }), n; -} -const Hr = typeof window > "u" || typeof document > "u"; -function Gt(e) { - if (Hr) - return null; - if (e instanceof Node) - return e.ownerDocument; - if (e != null && e.hasOwnProperty("value")) { - let t = Te(e); - if (t) - return t.ownerDocument; - } - return document; -} -let vo = ["[contentEditable=true]", "[tabindex]", "a[href]", "area[href]", "button:not([disabled])", "iframe", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])"].map((e) => `${e}:not([tabindex='-1'])`).join(","); -var En = ((e) => (e[e.First = 1] = "First", e[e.Previous = 2] = "Previous", e[e.Next = 4] = "Next", e[e.Last = 8] = "Last", e[e.WrapAround = 16] = "WrapAround", e[e.NoScroll = 32] = "NoScroll", e))(En || {}), Ds = ((e) => (e[e.Error = 0] = "Error", e[e.Overflow = 1] = "Overflow", e[e.Success = 2] = "Success", e[e.Underflow = 3] = "Underflow", e))(Ds || {}), Gu = ((e) => (e[e.Previous = -1] = "Previous", e[e.Next = 1] = "Next", e))(Gu || {}); -function Ju(e = document.body) { - return e == null ? [] : Array.from(e.querySelectorAll(vo)); -} -var Ns = ((e) => (e[e.Strict = 0] = "Strict", e[e.Loose = 1] = "Loose", e))(Ns || {}); -function Qu(e, t = 0) { - var n; - return e === ((n = Gt(e)) == null ? void 0 : n.body) ? !1 : Re(t, { 0() { - return e.matches(vo); - }, 1() { - let r = e; - for (; r !== null; ) { - if (r.matches(vo)) - return !0; - r = r.parentElement; - } - return !1; - } }); -} -function un(e) { - e == null || e.focus({ preventScroll: !0 }); -} -let Yu = ["textarea", "input"].join(","); -function Zu(e) { - var t, n; - return (n = (t = e == null ? void 0 : e.matches) == null ? void 0 : t.call(e, Yu)) != null ? n : !1; -} -function Xu(e, t = (n) => n) { - return e.slice().sort((n, r) => { - let o = t(n), i = t(r); - if (o === null || i === null) - return 0; - let a = o.compareDocumentPosition(i); - return a & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : a & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0; - }); -} -function go(e, t, n = !0, r = null) { - var o; - let i = (o = Array.isArray(e) ? e.length > 0 ? e[0].ownerDocument : document : e == null ? void 0 : e.ownerDocument) != null ? o : document, a = Array.isArray(e) ? n ? Xu(e) : e : Ju(e); - r = r ?? i.activeElement; - let s = (() => { - if (t & 5) - return 1; - if (t & 10) - return -1; - throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last"); - })(), l = (() => { - if (t & 1) - return 0; - if (t & 2) - return Math.max(0, a.indexOf(r)) - 1; - if (t & 4) - return Math.max(0, a.indexOf(r)) + 1; - if (t & 8) - return a.length - 1; - throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last"); - })(), u = t & 32 ? { preventScroll: !0 } : {}, c = 0, f = a.length, d; - do { - if (c >= f || c + f <= 0) - return 0; - let p = l + c; - if (t & 16) - p = (p + f) % f; - else { - if (p < 0) - return 3; - if (p >= f) - return 1; - } - d = a[p], d == null || d.focus(u), c += s; - } while (d !== i.activeElement); - return t & 6 && Zu(d) && d.select(), d.hasAttribute("tabindex") || d.setAttribute("tabindex", "0"), 2; -} -function Qr(e, t, n) { - Hr || Oe((r) => { - document.addEventListener(e, t, n), r(() => document.removeEventListener(e, t, n)); - }); -} -function ef(e, t, n = T(() => !0)) { - function r(i, a) { - if (!n.value || i.defaultPrevented) - return; - let s = a(i); - if (s === null || !s.getRootNode().contains(s)) - return; - let l = function u(c) { - return typeof c == "function" ? u(c()) : Array.isArray(c) || c instanceof Set ? c : [c]; - }(e); - for (let u of l) { - if (u === null) - continue; - let c = u instanceof HTMLElement ? u : Te(u); - if (c != null && c.contains(s)) - return; - } - return !Qu(s, Ns.Loose) && s.tabIndex !== -1 && i.preventDefault(), t(i, s); - } - let o = A(null); - Qr("mousedown", (i) => { - var a, s; - n.value && (o.value = ((s = (a = i.composedPath) == null ? void 0 : a.call(i)) == null ? void 0 : s[0]) || i.target); - }, !0), Qr("click", (i) => { - !o.value || (r(i, () => o.value), o.value = null); - }, !0), Qr("blur", (i) => r(i, () => window.document.activeElement instanceof HTMLIFrameElement ? window.document.activeElement : null), !0); -} -var jn = ((e) => (e[e.None = 1] = "None", e[e.Focusable = 2] = "Focusable", e[e.Hidden = 4] = "Hidden", e))(jn || {}); -let _r = L({ name: "Hidden", props: { as: { type: [Object, String], default: "div" }, features: { type: Number, default: 1 } }, setup(e, { slots: t, attrs: n }) { - return () => { - let { features: r, ...o } = e, i = { "aria-hidden": (r & 2) === 2 ? !0 : void 0, style: { position: "fixed", top: 1, left: 1, width: 1, height: 0, padding: 0, margin: -1, overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0", ...(r & 4) === 4 && (r & 2) !== 2 && { display: "none" } } }; - return we({ ourProps: i, theirProps: o, slot: {}, attrs: n, slots: t, name: "Hidden" }); - }; -} }); -function tf(e) { - var t; - let n = (t = e == null ? void 0 : e.form) != null ? t : e.closest("form"); - if (n) { - for (let r of n.elements) - if (r.tagName === "INPUT" && r.type === "submit" || r.tagName === "BUTTON" && r.type === "submit" || r.nodeName === "INPUT" && r.type === "image") { - r.click(); - return; - } - } -} -function nf(e, t, n) { - let r = A(n == null ? void 0 : n.value), o = T(() => e.value !== void 0); - return [T(() => o.value ? e.value : r.value), function(i) { - return o.value || (r.value = i), t == null ? void 0 : t(i); - }]; -} -function rf(e, t, n) { - Hr || Oe((r) => { - window.addEventListener(e, t, n), r(() => window.removeEventListener(e, t, n)); - }); -} -var yo = ((e) => (e[e.Forwards = 0] = "Forwards", e[e.Backwards = 1] = "Backwards", e))(yo || {}); -function of() { - let e = A(0); - return rf("keydown", (t) => { - t.key === "Tab" && (e.value = t.shiftKey ? 1 : 0); - }), e; -} -function Ls(e, t, n, r) { - Hr || Oe((o) => { - e = e ?? window, e.addEventListener(t, n, r), o(() => e.removeEventListener(t, n, r)); - }); -} -function af(e) { - typeof queueMicrotask == "function" ? queueMicrotask(e) : Promise.resolve().then(e).catch((t) => setTimeout(() => { - throw t; - })); -} -var Ms = ((e) => (e[e.None = 1] = "None", e[e.InitialFocus = 2] = "InitialFocus", e[e.TabLock = 4] = "TabLock", e[e.FocusLock = 8] = "FocusLock", e[e.RestoreFocus = 16] = "RestoreFocus", e[e.All = 30] = "All", e))(Ms || {}); -let Xt = Object.assign(L({ name: "FocusTrap", props: { as: { type: [Object, String], default: "div" }, initialFocus: { type: Object, default: null }, features: { type: Number, default: 30 }, containers: { type: Object, default: A(/* @__PURE__ */ new Set()) } }, inheritAttrs: !1, setup(e, { attrs: t, slots: n, expose: r }) { - let o = A(null); - r({ el: o, $el: o }); - let i = T(() => Gt(o)); - sf({ ownerDocument: i }, T(() => !!(e.features & 16))); - let a = lf({ ownerDocument: i, container: o, initialFocus: T(() => e.initialFocus) }, T(() => !!(e.features & 2))); - cf({ ownerDocument: i, container: o, containers: e.containers, previousActiveElement: a }, T(() => !!(e.features & 8))); - let s = of(); - function l() { - let u = Te(o); - !u || Re(s.value, { [yo.Forwards]: () => go(u, En.First), [yo.Backwards]: () => go(u, En.Last) }); - } - return () => { - let u = {}, c = { ref: o }, { features: f, initialFocus: d, containers: p, ...v } = e; - return se(F, [!!(f & 4) && se(_r, { as: "button", type: "button", onFocus: l, features: jn.Focusable }), we({ ourProps: c, theirProps: { ...t, ...v }, slot: u, attrs: t, slots: n, name: "FocusTrap" }), !!(f & 4) && se(_r, { as: "button", type: "button", onFocus: l, features: jn.Focusable })]); - }; -} }), { features: Ms }); -function sf({ ownerDocument: e }, t) { - let n = A(null); - function r() { - var i; - n.value || (n.value = (i = e.value) == null ? void 0 : i.activeElement); - } - function o() { - !n.value || (un(n.value), n.value = null); - } - le(() => { - $e(t, (i, a) => { - i !== a && (i ? r() : o()); - }, { immediate: !0 }); - }), Ze(o); -} -function lf({ ownerDocument: e, container: t, initialFocus: n }, r) { - let o = A(null), i = A(!1); - return le(() => i.value = !0), Ze(() => i.value = !1), le(() => { - $e([t, n, r], (a, s) => { - if (a.every((u, c) => (s == null ? void 0 : s[c]) === u) || !r.value) - return; - let l = Te(t); - !l || af(() => { - var u, c; - if (!i.value) - return; - let f = Te(n), d = (u = e.value) == null ? void 0 : u.activeElement; - if (f) { - if (f === d) { - o.value = d; - return; - } - } else if (l.contains(d)) { - o.value = d; - return; - } - f ? un(f) : go(l, En.First | En.NoScroll) === Ds.Error && console.warn("There are no focusable elements inside the "), o.value = (c = e.value) == null ? void 0 : c.activeElement; - }); - }, { immediate: !0, flush: "post" }); - }), o; -} -function cf({ ownerDocument: e, container: t, containers: n, previousActiveElement: r }, o) { - var i; - Ls((i = e.value) == null ? void 0 : i.defaultView, "focus", (a) => { - if (!o.value) - return; - let s = new Set(n == null ? void 0 : n.value); - s.add(t); - let l = r.value; - if (!l) - return; - let u = a.target; - u && u instanceof HTMLElement ? uf(s, u) ? (r.value = u, un(u)) : (a.preventDefault(), a.stopPropagation(), un(l)) : un(r.value); - }, !0); -} -function uf(e, t) { - var n; - for (let r of e) - if ((n = r.value) != null && n.contains(t)) - return !0; - return !1; -} -let xi = "body > *", It = /* @__PURE__ */ new Set(), at = /* @__PURE__ */ new Map(); -function Si(e) { - e.setAttribute("aria-hidden", "true"), e.inert = !0; -} -function Oi(e) { - let t = at.get(e); - !t || (t["aria-hidden"] === null ? e.removeAttribute("aria-hidden") : e.setAttribute("aria-hidden", t["aria-hidden"]), e.inert = t.inert); -} -function ff(e, t = A(!0)) { - Oe((n) => { - if (!t.value || !e.value) - return; - let r = e.value, o = Gt(r); - if (o) { - It.add(r); - for (let i of at.keys()) - i.contains(r) && (Oi(i), at.delete(i)); - o.querySelectorAll(xi).forEach((i) => { - if (i instanceof HTMLElement) { - for (let a of It) - if (i.contains(a)) - return; - It.size === 1 && (at.set(i, { "aria-hidden": i.getAttribute("aria-hidden"), inert: i.inert }), Si(i)); - } - }), n(() => { - if (It.delete(r), It.size > 0) - o.querySelectorAll(xi).forEach((i) => { - if (i instanceof HTMLElement && !at.has(i)) { - for (let a of It) - if (i.contains(a)) - return; - at.set(i, { "aria-hidden": i.getAttribute("aria-hidden"), inert: i.inert }), Si(i); - } - }); - else - for (let i of at.keys()) - Oi(i), at.delete(i); - }); - } - }); -} -let Rs = Symbol("ForcePortalRootContext"); -function df() { - return he(Rs, !1); -} -let _o = L({ name: "ForcePortalRoot", props: { as: { type: [Object, String], default: "template" }, force: { type: Boolean, default: !1 } }, setup(e, { slots: t, attrs: n }) { - return He(Rs, e.force), () => { - let { force: r, ...o } = e; - return we({ theirProps: o, ourProps: {}, slot: {}, slots: t, attrs: n, name: "ForcePortalRoot" }); - }; -} }); -function pf(e) { - let t = Gt(e); - if (!t) { - if (e === null) - return null; - throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${e}`); - } - let n = t.getElementById("headlessui-portal-root"); - if (n) - return n; - let r = t.createElement("div"); - return r.setAttribute("id", "headlessui-portal-root"), t.body.appendChild(r); -} -let Hs = L({ name: "Portal", props: { as: { type: [Object, String], default: "div" } }, setup(e, { slots: t, attrs: n }) { - let r = A(null), o = T(() => Gt(r)), i = df(), a = he(Bs, null), s = A(i === !0 || a == null ? pf(r.value) : a.resolveTarget()); - return Oe(() => { - i || a != null && (s.value = a.resolveTarget()); - }), Ze(() => { - var l, u; - let c = (l = o.value) == null ? void 0 : l.getElementById("headlessui-portal-root"); - !c || s.value === c && s.value.children.length <= 0 && ((u = s.value.parentElement) == null || u.removeChild(s.value)); - }), () => { - if (s.value === null) - return null; - let l = { ref: r, "data-headlessui-portal": "" }; - return se(dc, { to: s.value }, we({ ourProps: l, theirProps: e, slot: {}, attrs: n, slots: t, name: "Portal" })); - }; -} }), Bs = Symbol("PortalGroupContext"), hf = L({ name: "PortalGroup", props: { as: { type: [Object, String], default: "template" }, target: { type: Object, default: null } }, setup(e, { attrs: t, slots: n }) { - let r = pc({ resolveTarget() { - return e.target; - } }); - return He(Bs, r), () => { - let { target: o, ...i } = e; - return we({ theirProps: i, ourProps: {}, slot: {}, attrs: t, slots: n, name: "PortalGroup" }); - }; -} }), zs = Symbol("StackContext"); -var bo = ((e) => (e[e.Add = 0] = "Add", e[e.Remove = 1] = "Remove", e))(bo || {}); -function mf() { - return he(zs, () => { - }); -} -function vf({ type: e, enabled: t, element: n, onUpdate: r }) { - let o = mf(); - function i(...a) { - r == null || r(...a), o(...a); - } - le(() => { - $e(t, (a, s) => { - a ? i(0, e, n) : s === !0 && i(1, e, n); - }, { immediate: !0, flush: "sync" }); - }), Ze(() => { - t.value && i(1, e, n); - }), He(zs, i); -} -let Fs = Symbol("DescriptionContext"); -function gf() { - let e = he(Fs, null); - if (e === null) - throw new Error("Missing parent"); - return e; -} -function Vs({ slot: e = A({}), name: t = "Description", props: n = {} } = {}) { - let r = A([]); - function o(i) { - return r.value.push(i), () => { - let a = r.value.indexOf(i); - a !== -1 && r.value.splice(a, 1); - }; - } - return He(Fs, { register: o, slot: e, name: t, props: n }), T(() => r.value.length > 0 ? r.value.join(" ") : void 0); -} -L({ name: "Description", props: { as: { type: [Object, String], default: "p" } }, setup(e, { attrs: t, slots: n }) { - let r = gf(), o = `headlessui-description-${et()}`; - return le(() => Ze(r.register(o))), () => { - let { name: i = "Description", slot: a = A({}), props: s = {} } = r, l = e, u = { ...Object.entries(s).reduce((c, [f, d]) => Object.assign(c, { [f]: P(d) }), {}), id: o }; - return we({ ourProps: u, theirProps: l, slot: a.value, attrs: t, slots: n, name: i }); - }; -} }); -function Ko() { - let e = [], t = [], n = { enqueue(r) { - t.push(r); - }, addEventListener(r, o, i, a) { - return r.addEventListener(o, i, a), n.add(() => r.removeEventListener(o, i, a)); - }, requestAnimationFrame(...r) { - let o = requestAnimationFrame(...r); - n.add(() => cancelAnimationFrame(o)); - }, nextFrame(...r) { - n.requestAnimationFrame(() => { - n.requestAnimationFrame(...r); - }); - }, setTimeout(...r) { - let o = setTimeout(...r); - n.add(() => clearTimeout(o)); - }, add(r) { - e.push(r); - }, dispose() { - for (let r of e.splice(0)) - r(); - }, async workQueue() { - for (let r of t.splice(0)) - await r(); - } }; - return n; -} -function yf() { - return /iPhone/gi.test(window.navigator.platform) || /Mac/gi.test(window.navigator.platform) && window.navigator.maxTouchPoints > 0; -} -var _f = ((e) => (e[e.Open = 0] = "Open", e[e.Closed = 1] = "Closed", e))(_f || {}); -let wo = Symbol("DialogContext"); -function Bn(e) { - let t = he(wo, null); - if (t === null) { - let n = new Error(`<${e} /> is missing a parent component.`); - throw Error.captureStackTrace && Error.captureStackTrace(n, Bn), n; - } - return t; -} -let Wn = "DC8F892D-2EBD-447C-A4C8-A03058436FF4", bf = L({ name: "Dialog", inheritAttrs: !1, props: { as: { type: [Object, String], default: "div" }, static: { type: Boolean, default: !1 }, unmount: { type: Boolean, default: !0 }, open: { type: [Boolean, String], default: Wn }, initialFocus: { type: Object, default: null } }, emits: { close: (e) => !0 }, setup(e, { emit: t, attrs: n, slots: r, expose: o }) { - var i; - let a = A(!1); - le(() => { - a.value = !0; - }); - let s = A(0), l = Wo(), u = T(() => e.open === Wn && l !== null ? Re(l.value, { [Pt.Open]: !0, [Pt.Closed]: !1 }) : e.open), c = A(/* @__PURE__ */ new Set()), f = A(null), d = A(null), p = T(() => Gt(f)); - if (o({ el: f, $el: f }), !(e.open !== Wn || l !== null)) - throw new Error("You forgot to provide an `open` prop to the `Dialog`."); - if (typeof u.value != "boolean") - throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${u.value === Wn ? void 0 : e.open}`); - let v = T(() => a.value && u.value ? 0 : 1), y = T(() => v.value === 0), _ = T(() => s.value > 1), w = he(wo, null) !== null, x = T(() => _.value ? "parent" : "leaf"); - ff(f, T(() => _.value ? y.value : !1)), vf({ type: "Dialog", enabled: T(() => v.value === 0), element: f, onUpdate: (C, E, j) => { - if (E === "Dialog") - return Re(C, { [bo.Add]() { - c.value.add(j), s.value += 1; - }, [bo.Remove]() { - c.value.delete(j), s.value -= 1; - } }); - } }); - let S = Vs({ name: "DialogDescription", slot: T(() => ({ open: u.value })) }), $ = `headlessui-dialog-${et()}`, k = A(null), N = { titleId: k, panelRef: A(null), dialogState: v, setTitleId(C) { - k.value !== C && (k.value = C); - }, close() { - t("close", !1); - } }; - return He(wo, N), ef(() => { - var C, E, j; - return [...Array.from((E = (C = p.value) == null ? void 0 : C.querySelectorAll("body > *, [data-headlessui-portal]")) != null ? E : []).filter((I) => !(!(I instanceof HTMLElement) || I.contains(Te(d)) || N.panelRef.value && I.contains(N.panelRef.value))), (j = N.panelRef.value) != null ? j : f.value]; - }, (C, E) => { - N.close(), Ln(() => E == null ? void 0 : E.focus()); - }, T(() => v.value === 0 && !_.value)), Ls((i = p.value) == null ? void 0 : i.defaultView, "keydown", (C) => { - C.defaultPrevented || C.key === yr.Escape && v.value === 0 && (_.value || (C.preventDefault(), C.stopPropagation(), N.close())); - }), Oe((C) => { - var E; - if (v.value !== 0 || w) - return; - let j = p.value; - if (!j) - return; - let I = Ko(); - function H(q, ge, Be) { - let Le = q.style.getPropertyValue(ge); - return Object.assign(q.style, { [ge]: Be }), I.add(() => { - Object.assign(q.style, { [ge]: Le }); - }); - } - let J = j == null ? void 0 : j.documentElement, Y = ((E = j.defaultView) != null ? E : window).innerWidth - J.clientWidth; - if (H(J, "overflow", "hidden"), Y > 0) { - let q = J.clientWidth - J.offsetWidth, ge = Y - q; - H(J, "paddingRight", `${ge}px`); - } - if (yf()) { - let q = window.pageYOffset; - H(J, "position", "fixed"), H(J, "marginTop", `-${q}px`), H(J, "width", "100%"), I.add(() => window.scrollTo(0, q)); - } - C(I.dispose); - }), Oe((C) => { - if (v.value !== 0) - return; - let E = Te(f); - if (!E) - return; - let j = new IntersectionObserver((I) => { - for (let H of I) - H.boundingClientRect.x === 0 && H.boundingClientRect.y === 0 && H.boundingClientRect.width === 0 && H.boundingClientRect.height === 0 && N.close(); - }); - j.observe(E), C(() => j.disconnect()); - }), () => { - let C = { ...n, ref: f, id: $, role: "dialog", "aria-modal": v.value === 0 ? !0 : void 0, "aria-labelledby": k.value, "aria-describedby": S.value }, { open: E, initialFocus: j, ...I } = e, H = { open: v.value === 0 }; - return se(_o, { force: !0 }, () => [se(Hs, () => se(hf, { target: f.value }, () => se(_o, { force: !1 }, () => se(Xt, { initialFocus: j, containers: c, features: y.value ? Re(x.value, { parent: Xt.features.RestoreFocus, leaf: Xt.features.All & ~Xt.features.FocusLock }) : Xt.features.None }, () => we({ ourProps: C, theirProps: I, slot: H, attrs: n, slots: r, visible: v.value === 0, features: gr.RenderStrategy | gr.Static, name: "Dialog" }))))), se(_r, { features: jn.Hidden, ref: d })]); - }; -} }); -L({ name: "DialogOverlay", props: { as: { type: [Object, String], default: "div" } }, setup(e, { attrs: t, slots: n }) { - let r = Bn("DialogOverlay"), o = `headlessui-dialog-overlay-${et()}`; - function i(a) { - a.target === a.currentTarget && (a.preventDefault(), a.stopPropagation(), r.close()); - } - return () => we({ ourProps: { id: o, "aria-hidden": !0, onClick: i }, theirProps: e, slot: { open: r.dialogState.value === 0 }, attrs: t, slots: n, name: "DialogOverlay" }); -} }); -L({ name: "DialogBackdrop", props: { as: { type: [Object, String], default: "div" } }, inheritAttrs: !1, setup(e, { attrs: t, slots: n, expose: r }) { - let o = Bn("DialogBackdrop"), i = `headlessui-dialog-backdrop-${et()}`, a = A(null); - return r({ el: a, $el: a }), le(() => { - if (o.panelRef.value === null) - throw new Error("A component is being used, but a component is missing."); - }), () => { - let s = e, l = { id: i, ref: a, "aria-hidden": !0 }; - return se(_o, { force: !0 }, () => se(Hs, () => we({ ourProps: l, theirProps: { ...t, ...s }, slot: { open: o.dialogState.value === 0 }, attrs: t, slots: n, name: "DialogBackdrop" }))); - }; -} }); -let wf = L({ name: "DialogPanel", props: { as: { type: [Object, String], default: "div" } }, setup(e, { attrs: t, slots: n, expose: r }) { - let o = Bn("DialogPanel"), i = `headlessui-dialog-panel-${et()}`; - r({ el: o.panelRef, $el: o.panelRef }); - function a(s) { - s.stopPropagation(); - } - return () => { - let s = { id: i, ref: o.panelRef, onClick: a }; - return we({ ourProps: s, theirProps: e, slot: { open: o.dialogState.value === 0 }, attrs: t, slots: n, name: "DialogPanel" }); - }; -} }); -L({ name: "DialogTitle", props: { as: { type: [Object, String], default: "h2" } }, setup(e, { attrs: t, slots: n }) { - let r = Bn("DialogTitle"), o = `headlessui-dialog-title-${et()}`; - return le(() => { - r.setTitleId(o), Ze(() => r.setTitleId(null)); - }), () => we({ ourProps: { id: o }, theirProps: e, slot: { open: r.dialogState.value === 0 }, attrs: t, slots: n, name: "DialogTitle" }); -} }); -let Us = Symbol("LabelContext"); -function qs() { - let e = he(Us, null); - if (e === null) { - let t = new Error("You used a