extension-develop 3.15.0-next.1 → 3.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/221.cjs +4 -2
  2. package/dist/{512.cjs → 442.cjs} +258 -119
  3. package/dist/extension-js-devtools/chrome/background/service_worker.js +2 -2
  4. package/dist/extension-js-devtools/chrome/content_scripts/content-0.js +2 -2
  5. package/dist/extension-js-devtools/chrome/manifest.json +0 -1
  6. package/dist/extension-js-devtools/chrome/scripts/logger-client.js +1 -0
  7. package/dist/extension-js-devtools/chromium/background/service_worker.js +2 -2
  8. package/dist/extension-js-devtools/chromium/content_scripts/content-0.js +2 -2
  9. package/dist/extension-js-devtools/chromium/manifest.json +0 -1
  10. package/dist/extension-js-devtools/chromium/scripts/logger-client.js +1 -0
  11. package/dist/extension-js-devtools/edge/background/service_worker.js +2 -2
  12. package/dist/extension-js-devtools/edge/content_scripts/content-0.js +2 -2
  13. package/dist/extension-js-devtools/edge/manifest.json +0 -1
  14. package/dist/extension-js-devtools/edge/scripts/logger-client.js +1 -0
  15. package/dist/extension-js-devtools/firefox/background/scripts.js +2 -2
  16. package/dist/extension-js-devtools/firefox/content_scripts/content-0.js +2 -2
  17. package/dist/extension-js-devtools/firefox/manifest.json +1 -1
  18. package/dist/extension-js-devtools/firefox/scripts/logger-client.js +1 -0
  19. package/dist/minimum-script-file.cjs +4 -3
  20. package/dist/minimum-script-file.js +4 -3
  21. package/dist/module.cjs +81 -34
  22. package/dist/preact-refresh-shim.cjs +25 -0
  23. package/dist/preview.cjs +25 -3
  24. package/package.json +2 -2
  25. package/dist/extension-js-devtools/chrome/content_scripts/styles.305cf4cf.css +0 -2
  26. package/dist/extension-js-devtools/chromium/content_scripts/styles.305cf4cf.css +0 -2
  27. package/dist/extension-js-devtools/edge/content_scripts/styles.305cf4cf.css +0 -2
  28. package/dist/extension-js-devtools/firefox/content_scripts/styles.305cf4cf.css +0 -2
@@ -37,6 +37,6 @@
37
37
  "storage"
38
38
  ],
39
39
  "web_accessible_resources": [
40
- "content_scripts/styles.305cf4cf.css"
40
+ "assets/logo.7dc70d61.png"
41
41
  ]
42
42
  }
@@ -0,0 +1 @@
1
+ (()=>{"use strict";var t={},e={};function r(o){var n=e[o];if(void 0!==n)return n.exports;var a=e[o]={exports:{}};return t[o](a,a.exports,r),a.exports}var o="scripts/logger-client.ts",n="scripts/logger-client.ts",a=[],i="object"==typeof globalThis&&globalThis?globalThis.__EXTENSIONJS_DEV_REINJECT__||(globalThis.__EXTENSIONJS_DEV_REINJECT__={}):{},u=[];function s(t){return"function"==typeof t&&u.push(t),t}function c(t,e,r){try{return}catch(t){}}function l(){try{if("u"<typeof document||"function"!=typeof document.querySelectorAll)return;for(var t=Array.from(document.querySelectorAll('#extension-root,[data-extension-root]:not([data-extension-root="extension-js-devtools"])')),e=0;e<t.length;e++){var r=t[e];if(r&&"function"==typeof r.getAttribute){var o=String(r.getAttribute("data-extjs-reinject-owner")||"");if(o&&o===String(n||"")){try{var a=document.documentElement;a&&"function"==typeof a.setAttribute&&(a.setAttribute("data-extjs-debug-stage","cleanup-known-roots"),a.setAttribute("data-extjs-debug-last-removal","cleanup-known-roots"),a.setAttribute("data-extjs-debug-last-removal-key",String(n||"")),a.setAttribute("data-extjs-debug-last-removal-source","cleanup-known-roots"),a.setAttribute("data-extjs-debug-last-removed-node-tag",String(r.tagName||"").toLowerCase()))}catch(t){}try{r.remove()}catch(t){}}}}}catch(t){}}try{"object"==typeof globalThis&&globalThis&&(globalThis.__EXTENSIONJS_registerCleanup=s,globalThis.registerCleanup=s)}catch(t){}try{!function(){try{if("object"!=typeof globalThis||!globalThis||globalThis.__EXTJS_DEBUG_REMOVAL_OBSERVER__||"function"!=typeof MutationObserver||"u"<typeof document)return;var t=document.documentElement||document.body||document;if(!t)return;var e=new MutationObserver(function(t){try{for(var e=String(n||""),r=0;r<t.length;r++)for(var o=Array.from(t[r].removedNodes||[]),a=0;a<o.length;a++){var i=o[a],u=function(t){try{if(!t||1!==t.nodeType)return null;if("function"==typeof t.getAttribute&&String(t.getAttribute("data-extjs-reinject-owner")||"")===e)return t;if("function"==typeof t.querySelector)return t.querySelector('[data-extjs-reinject-owner="'+e.replace(/"/g,'\\"')+'"]')}catch(t){}return null}(i);if(u&&"function"==typeof u.getAttribute){var s=String(u.getAttribute("data-extjs-reinject-owner")||"");if(s&&s===e){var c=document.documentElement;c&&"function"==typeof c.setAttribute&&(c.getAttribute("data-extjs-debug-last-removal")||c.setAttribute("data-extjs-debug-last-removal","mutation-observer"),c.getAttribute("data-extjs-debug-last-removal-key")||c.setAttribute("data-extjs-debug-last-removal-key",s),c.getAttribute("data-extjs-debug-last-removal-source")||c.setAttribute("data-extjs-debug-last-removal-source","mutation-observer"),c.getAttribute("data-extjs-debug-last-removed-node-tag")||c.setAttribute("data-extjs-debug-last-removed-node-tag",String(i.tagName||"").toLowerCase()),c.getAttribute("data-extjs-debug-last-removed-node-id")||c.setAttribute("data-extjs-debug-last-removed-node-id",String(i.id||"")),c.getAttribute("data-extjs-debug-last-removed-node-class")||c.setAttribute("data-extjs-debug-last-removed-node-class",String(i.className||"")),c.getAttribute("data-extjs-debug-last-removed-node-direct")||c.setAttribute("data-extjs-debug-last-removed-node-direct",String(i===u)),c.getAttribute("data-extjs-debug-last-removal-ready-state")||c.setAttribute("data-extjs-debug-last-removal-ready-state",String(document.readyState||"")),c.getAttribute("data-extjs-debug-last-removal-url")||c.setAttribute("data-extjs-debug-last-removal-url",String(location.href||"")),c.setAttribute("data-extjs-debug-stage","root-removed-observed"));return}}}}catch(t){}});e.observe(t,{childList:!0,subtree:!0}),globalThis.__EXTJS_DEBUG_REMOVAL_OBSERVER__=e}catch(t){}}()}catch(t){}try{!function(){try{if("object"!=typeof globalThis||!globalThis||globalThis.__EXTJS_DEBUG_DOM_APIS_PATCHED__)return;var t=function(t,e,r){try{var o=document.documentElement;if(!o||"function"!=typeof o.setAttribute)return;var a=null;if(e&&1===e.nodeType&&("function"==typeof e.getAttribute&&String(e.getAttribute("data-extjs-reinject-owner")||"")===String(n||"")?a=e:"function"==typeof e.querySelector&&(a=e.querySelector('[data-extjs-reinject-owner="'+String(n||"").replace(/"/g,'\\"')+'"]'))),!a)return;o.setAttribute("data-extjs-debug-stage","dom-api-removal"),o.setAttribute("data-extjs-debug-last-removal",t),o.setAttribute("data-extjs-debug-last-removal-source",t),o.setAttribute("data-extjs-debug-last-removal-key",String(n||"")),o.setAttribute("data-extjs-debug-last-removed-node-tag",String(e&&e.tagName||"").toLowerCase()),o.setAttribute("data-extjs-debug-last-removed-node-id",String(e&&e.id||"")),o.setAttribute("data-extjs-debug-last-removed-node-class",String(e&&e.className||"")),o.setAttribute("data-extjs-debug-last-removed-node-direct",String(e===a)),o.setAttribute("data-extjs-debug-last-removal-ready-state",String(document.readyState||"")),o.setAttribute("data-extjs-debug-last-removal-url",String(location.href||"")),o.setAttribute("data-extjs-debug-last-removal-parent-tag",String(r&&r.tagName||"").toLowerCase())}catch(t){}};try{var e=Node.prototype.removeChild;"function"==typeof e&&(Node.prototype.removeChild=function(r){return t("Node.removeChild",r,this),e.call(this,r)})}catch(t){}try{var r=Element.prototype.replaceChildren;"function"==typeof r&&(Element.prototype.replaceChildren=function(){try{for(var e=Array.from(this.childNodes||[]),o=0;o<e.length;o++)t("Element.replaceChildren",e[o],this)}catch(t){}return r.apply(this,arguments)})}catch(t){}globalThis.__EXTJS_DEBUG_DOM_APIS_PATCHED__=!0}catch(t){}}()}catch(t){}try{!function(t){try{if("u"<typeof document)return;var e=document.documentElement;if(!e||"function"!=typeof e.getAttribute||"function"!=typeof e.setAttribute)return;var r=Number(e.getAttribute("data-extjs-debug-execution-count")||"0"),o=Number.isFinite(r)?r+1:1,a=[];try{a=Array.from(document.querySelectorAll('#extension-root,[data-extension-root]:not([data-extension-root="extension-js-devtools"])'))}catch(t){}e.setAttribute("data-extjs-debug-execution-count",String(o)),e.setAttribute("data-extjs-debug-last-execution-stage",String(t||"")),e.setAttribute("data-extjs-debug-last-execution-key",String(n||"")),e.setAttribute("data-extjs-debug-existing-root-count-before-cleanup",String(a.length))}catch(t){}}("bootstrap")}catch(t){}var d=i[n],g=function(t){try{if(!t)return 0;if("function"==typeof t&&"number"==typeof t.__extjsGeneration)return t.__extjsGeneration;if("object"==typeof t){if("number"==typeof t.__extjsGeneration)return t.__extjsGeneration;if("number"==typeof t.generation)return t.generation;if("function"==typeof t.cleanup&&"number"==typeof t.cleanup.__extjsGeneration)return t.cleanup.__extjsGeneration}}catch(t){}return 0}(d);try{var b="function"==typeof d?d:d&&"function"==typeof d.cleanup?d.cleanup:null;if("function"==typeof b){try{var f=document.documentElement;f&&"function"==typeof f.setAttribute&&(f.setAttribute("data-extjs-debug-stage","previous-cleanup"),f.setAttribute("data-extjs-debug-last-removal","previous-cleanup"),f.setAttribute("data-extjs-debug-last-removal-key",String(n||"")),f.setAttribute("data-extjs-debug-last-removal-source","previous-cleanup"))}catch(t){}b()}}catch(t){}try{l()}catch(t){}function m(){try{var t="";try{"object"==typeof globalThis&&globalThis&&globalThis.browser&&globalThis.browser.runtime&&"function"==typeof globalThis.browser.runtime.getURL?t=String(globalThis.browser.runtime.getURL("/")):"object"==typeof globalThis&&globalThis&&globalThis.chrome&&globalThis.chrome.runtime&&"function"==typeof globalThis.chrome.runtime.getURL&&(t=String(globalThis.chrome.runtime.getURL("/")))}catch(t){}if(!t)try{"object"==typeof document&&document&&document.documentElement&&(t=String(document.documentElement.getAttribute("data-extjs-extension-base")||""))}catch(t){}if(!t)return!1;"/"!==t.charAt(t.length-1)&&(t+="/");try{r.p=t}catch(t){}try{r.b=t}catch(t){}return!0}catch(t){}return!1}try{if(!m()){var y=0,h=function(){try{if(m())return}catch(t){}y++<50&&setTimeout(h,100)};h()}}catch(t){}try{g=(Number(g)||0)+1}catch(t){}try{c(n,Number(g)||0,"executed")}catch(t){}try{!function(){try{if(0!==String(o||"").indexOf("content_scripts/content-")||"u"<typeof document||"function"!=typeof fetch)return;var t=Array.from(new Set((Array.isArray(a)?a:[]).concat([function(t){try{if("object"==typeof globalThis&&globalThis&&globalThis.browser&&globalThis.browser.runtime&&"function"==typeof globalThis.browser.runtime.getURL)return globalThis.browser.runtime.getURL(t);if("object"==typeof globalThis&&globalThis&&globalThis.chrome&&globalThis.chrome.runtime&&"function"==typeof globalThis.chrome.runtime.getURL)return globalThis.chrome.runtime.getURL(t)}catch(t){}try{var e="object"==typeof globalThis&&globalThis&&globalThis.__EXTJS_EXTENSION_BASE__?String(globalThis.__EXTJS_EXTENSION_BASE__):"";if(!e&&"object"==typeof document&&document&&document.documentElement&&(e=String(document.documentElement.getAttribute("data-extjs-extension-base")||"")),!e)return"";return e.replace(/\/+$/,"/")+String(t||"").replace(/^\/+/,"")}catch(t){}return""}(o+".css")]).filter(function(t){return"string"==typeof t&&t.trim().length>0})));if(!t.length)return;var e="",r=null,i=0,u=function(){try{for(var a=Array.from(document.querySelectorAll('#extension-root,[data-extension-root]:not([data-extension-root="extension-js-devtools"])')),s=0;s<a.length;s++){var c=a[s];if(c&&c.shadowRoot&&"function"==typeof c.getAttribute){var l=String(c.getAttribute("data-extjs-reinject-owner")||"");if((!l||l===String(n||""))&&(!(!l&&String(c.getAttribute("data-extjs-reinject-key")||""))||String(c.getAttribute("data-extjs-reinject-key")||"")===String(o||""))){var d=c.shadowRoot,g=Array.from(d.querySelectorAll("style")).some(function(t){return t&&"true"!==t.getAttribute("data-extjs-bundle-css")&&String(t.textContent||"").trim().length>0}),b=d.querySelector('style[data-extjs-bundle-css="true"]');if(g){b&&b.parentNode&&b.parentNode.removeChild(b);return}if("string"==typeof e&&e.trim()){b||((b=document.createElement("style")).setAttribute("data-extjs-bundle-css","true"),b.setAttribute("data-extjs-reinject-key",String(n||"")),d.insertBefore(b,d.firstChild||null)),String(b.textContent||"")!==e&&(b.textContent=e);return}}}}}catch(t){}i++<20&&(!r&&(r||(r=(function e(r){return r>=t.length?Promise.resolve(""):fetch(t[r]).then(function(t){return t&&t.ok?t.text():""}).catch(function(){return""}).then(function(t){return"string"==typeof t&&t.trim().length>0?t:e(r+1)})})(0).then(function(t){e="string"==typeof t?t:"";try{setTimeout(u,0)}catch(t){}return e}).catch(function(){return""}))),setTimeout(u,250))};u()}catch(t){}}()}catch(t){}try{i[n]={cleanup:function(){try{!function(t){try{if(!Array.isArray(t))return;for(var e=t.length-1;e>=0;e--)try{"function"==typeof t[e]&&t[e]()}catch(t){}}catch(t){}}(u)}catch(t){}try{l()}catch(t){}try{c(n,Number(g)||0,"cleaned")}catch(t){}},generation:Number(g)||0,build:"831980a1"}}catch(t){}})();
@@ -16,10 +16,11 @@ const safeLocation = "u" > typeof globalThis ? globalThis.location : void 0;
16
16
  const safeHistory = "u" > typeof globalThis ? globalThis.history : void 0;
17
17
  try {
18
18
  if ('object' == typeof safeLocation && safeLocation && String(safeLocation.protocol || '').includes('-extension:')) {
19
- const q = String(safeLocation.search || '');
20
- if (q.toLowerCase().includes('webpack-dev-server-hot=false')) ;
21
- else if ('function' == typeof URL && 'object' == typeof safeHistory && safeHistory && 'function' == typeof safeHistory.replaceState) {
19
+ const q = String(safeLocation.search || '').toLowerCase();
20
+ const alreadySet = q.includes('rspack-dev-server-hot=false') && q.includes('webpack-dev-server-hot=false');
21
+ if (!alreadySet && 'function' == typeof URL && 'object' == typeof safeHistory && safeHistory && 'function' == typeof safeHistory.replaceState) {
22
22
  const u = new URL(String(safeLocation.href));
23
+ u.searchParams.set('rspack-dev-server-hot', 'false');
23
24
  u.searchParams.set('webpack-dev-server-hot', 'false');
24
25
  safeHistory.replaceState(null, '', u.toString());
25
26
  }
@@ -16,10 +16,11 @@ const safeLocation = "u" > typeof globalThis ? globalThis.location : void 0;
16
16
  const safeHistory = "u" > typeof globalThis ? globalThis.history : void 0;
17
17
  try {
18
18
  if ('object' == typeof safeLocation && safeLocation && String(safeLocation.protocol || '').includes('-extension:')) {
19
- const q = String(safeLocation.search || '');
20
- if (q.toLowerCase().includes('webpack-dev-server-hot=false')) ;
21
- else if ('function' == typeof URL && 'object' == typeof safeHistory && safeHistory && 'function' == typeof safeHistory.replaceState) {
19
+ const q = String(safeLocation.search || '').toLowerCase();
20
+ const alreadySet = q.includes('rspack-dev-server-hot=false') && q.includes('webpack-dev-server-hot=false');
21
+ if (!alreadySet && 'function' == typeof URL && 'object' == typeof safeHistory && safeHistory && 'function' == typeof safeHistory.replaceState) {
22
22
  const u = new URL(String(safeLocation.href));
23
+ u.searchParams.set('rspack-dev-server-hot', 'false');
23
24
  u.searchParams.set('webpack-dev-server-hot', 'false');
24
25
  safeHistory.replaceState(null, '', u.toString());
25
26
  }
package/dist/module.cjs CHANGED
@@ -472,6 +472,28 @@ var __webpack_modules__ = {
472
472
  if (fs__rspack_import_0.existsSync(candidate)) return candidate;
473
473
  }
474
474
  }
475
+ const RESERVED_BUILT_IN_NAMES = new Set([
476
+ 'extension-js-devtools',
477
+ 'extension-js-theme'
478
+ ]);
479
+ function isReservedBuiltInPath(extensionPath) {
480
+ const base = path__rspack_import_1.basename(path__rspack_import_1.normalize(extensionPath));
481
+ if (RESERVED_BUILT_IN_NAMES.has(base)) return true;
482
+ const segments = path__rspack_import_1.normalize(extensionPath).split(path__rspack_import_1.sep);
483
+ return segments.some((segment)=>RESERVED_BUILT_IN_NAMES.has(segment));
484
+ }
485
+ function dedupeByResolvedPath(paths) {
486
+ const seen = new Set();
487
+ const result = [];
488
+ for (const entry of paths){
489
+ const resolved = path__rspack_import_1.resolve(entry);
490
+ if (!seen.has(resolved)) {
491
+ seen.add(resolved);
492
+ result.push(entry);
493
+ }
494
+ }
495
+ return result;
496
+ }
475
497
  function computeExtensionsToLoad(baseDir, mode, browser, userExtensionOutputPath, extraExtensionDirs = [], userManifestPath) {
476
498
  const list = [];
477
499
  try {
@@ -491,9 +513,9 @@ var __webpack_modules__ = {
491
513
  if (devtoolsForBrowser && !shouldSkipDevtoolsForNtpConflict) list.push(devtoolsForBrowser);
492
514
  if (themeForBrowser) list.push(themeForBrowser);
493
515
  } catch {}
494
- for (const p of extraExtensionDirs)list.push(p);
516
+ for (const p of extraExtensionDirs)if (!isReservedBuiltInPath(p)) list.push(p);
495
517
  list.push(userExtensionOutputPath);
496
- return list;
518
+ return dedupeByResolvedPath(list);
497
519
  }
498
520
  },
499
521
  "./lib/has-dependency.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
@@ -953,7 +975,7 @@ var __webpack_modules__ = {
953
975
  installPackages: [
954
976
  '@prefresh/core@1.5.9',
955
977
  '@prefresh/utils@1.2.1',
956
- '@rspack/plugin-preact-refresh@1.1.4',
978
+ '@rspack/plugin-preact-refresh@1.1.5',
957
979
  'preact@10.27.2'
958
980
  ],
959
981
  verificationRules: [
@@ -1088,12 +1110,12 @@ var __webpack_modules__ = {
1088
1110
  if (extensionRoot && extensionRoot.includes('.pnpm')) bases.push(external_path_.join(extensionRoot, '..', '..'));
1089
1111
  return Array.from(new Set(bases));
1090
1112
  }
1091
- function packageJsonPath(basePath) {
1113
+ function optional_deps_resolver_packageJsonPath(basePath) {
1092
1114
  return external_path_.join(basePath, 'package.json');
1093
1115
  }
1094
1116
  function tryResolveWithBase(dependencyId, basePath) {
1095
1117
  try {
1096
- const req = (0, external_module_.createRequire)(packageJsonPath(basePath));
1118
+ const req = (0, external_module_.createRequire)(optional_deps_resolver_packageJsonPath(basePath));
1097
1119
  return req.resolve(dependencyId);
1098
1120
  } catch {
1099
1121
  return;
@@ -1121,7 +1143,25 @@ var __webpack_modules__ = {
1121
1143
  }
1122
1144
  }
1123
1145
  function resolveFromKnownLocations(dependencyId, projectPath) {
1124
- return resolveDependency(dependencyId, projectPath)?.resolvedPath;
1146
+ const direct = resolveDependency(dependencyId, projectPath)?.resolvedPath;
1147
+ if (direct) return direct;
1148
+ if (declaresDependency(projectPath, dependencyId)) return projectPath;
1149
+ }
1150
+ function declaresDependency(projectPath, dependencyId) {
1151
+ try {
1152
+ const packageJsonPath = external_path_.join(projectPath, 'package.json');
1153
+ if (!external_fs_.existsSync(packageJsonPath)) return false;
1154
+ const pkg = JSON.parse(external_fs_.readFileSync(packageJsonPath, 'utf8'));
1155
+ const sections = [
1156
+ pkg.dependencies,
1157
+ pkg.devDependencies,
1158
+ pkg.optionalDependencies,
1159
+ pkg.peerDependencies
1160
+ ];
1161
+ return sections.some((section)=>section && 'object' == typeof section && dependencyId in section);
1162
+ } catch {
1163
+ return false;
1164
+ }
1125
1165
  }
1126
1166
  function dedupeFailures(packageIds) {
1127
1167
  return Array.from(new Set(packageIds));
@@ -1178,7 +1218,9 @@ var __webpack_modules__ = {
1178
1218
  continue;
1179
1219
  }
1180
1220
  const failure = evaluateModuleContextRule(rule, fromPackagePath);
1181
- if (failure) failures.push(failure);
1221
+ if (!(failure && declaresDependency(projectPath, failure))) {
1222
+ if (failure) failures.push(failure);
1223
+ }
1182
1224
  }
1183
1225
  return dedupeFailures(failures);
1184
1226
  }
@@ -1244,7 +1286,7 @@ var __webpack_modules__ = {
1244
1286
  let didLoad = false;
1245
1287
  let lastLoadError;
1246
1288
  for (const basePath of candidateBases){
1247
- const req = (0, external_module_.createRequire)(packageJsonPath(basePath));
1289
+ const req = (0, external_module_.createRequire)(optional_deps_resolver_packageJsonPath(basePath));
1248
1290
  const candidateModuleIds = [
1249
1291
  input.dependencyId,
1250
1292
  resolvedPath
@@ -1291,7 +1333,7 @@ var __webpack_modules__ = {
1291
1333
  let didLoad = false;
1292
1334
  let lastLoadError;
1293
1335
  for (const basePath of candidateBases){
1294
- const req = (0, external_module_.createRequire)(packageJsonPath(basePath));
1336
+ const req = (0, external_module_.createRequire)(optional_deps_resolver_packageJsonPath(basePath));
1295
1337
  const candidateModuleIds = [
1296
1338
  input.dependencyId,
1297
1339
  resolvedPath
@@ -1394,26 +1436,24 @@ var __webpack_modules__ = {
1394
1436
  }
1395
1437
  function needsInstall(packageJsonDir) {
1396
1438
  const nm = getNodeModulesDir(packageJsonDir);
1439
+ const packageJsonPath = path__rspack_import_1.join(packageJsonDir, 'package.json');
1440
+ if (!fs__rspack_import_0.existsSync(packageJsonPath)) return false;
1397
1441
  try {
1398
- const packageJsonPath = path__rspack_import_1.join(packageJsonDir, 'package.json');
1399
- if (fs__rspack_import_0.existsSync(packageJsonPath)) {
1400
- const raw = fs__rspack_import_0.readFileSync(packageJsonPath, 'utf-8');
1401
- const packageJson = JSON.parse(raw);
1402
- const depsCount = Object.keys(packageJson?.dependencies || {}).length;
1403
- const devDepsCount = Object.keys(packageJson?.devDependencies || {}).length;
1404
- if (depsCount + devDepsCount === 0) return false;
1405
- if (!fs__rspack_import_0.existsSync(nm)) return true;
1406
- const deps = Object.keys(packageJson?.dependencies || {});
1407
- const devDeps = Object.keys(packageJson?.devDependencies || {});
1408
- if (fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, '.pnpm'))) return false;
1409
- if (fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, '.modules.yaml'))) return false;
1410
- const hasInstalledDep = [
1411
- ...deps,
1412
- ...devDeps
1413
- ].some((dep)=>fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, dep)));
1414
- return !hasInstalledDep;
1415
- }
1416
- return !fs__rspack_import_0.existsSync(nm) || 0 === fs__rspack_import_0.readdirSync(nm).length;
1442
+ const raw = fs__rspack_import_0.readFileSync(packageJsonPath, 'utf-8');
1443
+ const packageJson = JSON.parse(raw);
1444
+ const depsCount = Object.keys(packageJson?.dependencies || {}).length;
1445
+ const devDepsCount = Object.keys(packageJson?.devDependencies || {}).length;
1446
+ if (depsCount + devDepsCount === 0) return false;
1447
+ if (!fs__rspack_import_0.existsSync(nm)) return true;
1448
+ const deps = Object.keys(packageJson?.dependencies || {});
1449
+ const devDeps = Object.keys(packageJson?.devDependencies || {});
1450
+ if (fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, '.pnpm'))) return false;
1451
+ if (fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, '.modules.yaml'))) return false;
1452
+ const hasInstalledDep = [
1453
+ ...deps,
1454
+ ...devDeps
1455
+ ].some((dep)=>fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, dep)));
1456
+ return !hasInstalledDep;
1417
1457
  } catch {
1418
1458
  return true;
1419
1459
  }
@@ -1495,6 +1535,7 @@ var __webpack_modules__ = {
1495
1535
  extensionPreview: ()=>extensionPreview,
1496
1536
  extensionBuild: ()=>extensionBuild
1497
1537
  });
1538
+ var external_fs_ = __webpack_require__("fs");
1498
1539
  function getBuildSummary(browser, info) {
1499
1540
  const assets = info?.assets || [];
1500
1541
  return {
@@ -1508,7 +1549,6 @@ var __webpack_modules__ = {
1508
1549
  }
1509
1550
  var external_module_ = __webpack_require__("module");
1510
1551
  var external_path_ = __webpack_require__("path");
1511
- var external_fs_ = __webpack_require__("fs");
1512
1552
  var messages = __webpack_require__("./lib/messages.ts");
1513
1553
  async function findUpLocal(filename, options) {
1514
1554
  const root = external_path_.parse(options.cwd).root;
@@ -2096,13 +2136,19 @@ var __webpack_modules__ = {
2096
2136
  Promise.resolve(require1('@rspack/core')),
2097
2137
  import("webpack-merge"),
2098
2138
  __webpack_require__.e(504).then(__webpack_require__.bind(__webpack_require__, "./lib/stats-handler.ts")),
2099
- __webpack_require__.e(512).then(__webpack_require__.bind(__webpack_require__, "./rspack-config.ts"))
2139
+ __webpack_require__.e(442).then(__webpack_require__.bind(__webpack_require__, "./rspack-config.ts"))
2100
2140
  ]);
2101
2141
  const debug = isAuthor;
2102
2142
  if (projectStructure.packageJsonPath) assertNoManagedDependencyConflicts(projectStructure.packageJsonPath, manifestDir);
2103
2143
  const commandConfig = await (0, config_loader.eY)(packageJsonDir, 'build');
2104
2144
  const specialFoldersData = (0, get_data.H)(packageJsonDir);
2105
2145
  const distPath = (0, paths.q4)(packageJsonDir, browser);
2146
+ try {
2147
+ external_fs_.rmSync(distPath, {
2148
+ recursive: true,
2149
+ force: true
2150
+ });
2151
+ } catch {}
2106
2152
  if (debug) {
2107
2153
  console.log(messages.SG(manifestDir, packageJsonDir));
2108
2154
  console.log(messages._A(browser, buildOptions?.chromiumBinary, buildOptions?.geckoBinary || buildOptions?.firefoxBinary));
@@ -2258,7 +2304,8 @@ var __webpack_modules__ = {
2258
2304
  const contextDir = String(compilation.options?.context || '');
2259
2305
  let reloadInstruction;
2260
2306
  if (!this.isFirstCompile && pendingReloadReason) reloadInstruction = {
2261
- type: pendingReloadReason
2307
+ type: pendingReloadReason,
2308
+ changedAssets: pendingChangedSources
2262
2309
  };
2263
2310
  else if (!this.isFirstCompile && pendingChangedSources.length > 0) {
2264
2311
  const isServiceWorkerSource = (rel)=>/(^|\/)background(\.|\/)/i.test(rel) || /service[-_.]?worker/i.test(rel);
@@ -2277,7 +2324,7 @@ var __webpack_modules__ = {
2277
2324
  changedContentScriptEntries: entries,
2278
2325
  changedAssets: pendingChangedSources
2279
2326
  };
2280
- }
2327
+ } else reloadInstruction = void 0;
2281
2328
  }
2282
2329
  }
2283
2330
  const wasFirstCompile = this.isFirstCompile;
@@ -2422,7 +2469,7 @@ var __webpack_modules__ = {
2422
2469
  }
2423
2470
  if ('true' === process.env.EXTENSION_DEV_DRY_RUN) return emitter;
2424
2471
  const { devServer } = await Promise.all([
2425
- __webpack_require__.e(512),
2472
+ __webpack_require__.e(442),
2426
2473
  __webpack_require__.e(221)
2427
2474
  ]).then(__webpack_require__.bind(__webpack_require__, "./dev-server/index.ts"));
2428
2475
  await devServer(projectStructure, {
@@ -3348,7 +3395,7 @@ var __webpack_modules__ = {
3348
3395
  module.exports = require("webpack-merge");
3349
3396
  },
3350
3397
  "./package.json" (module) {
3351
- module.exports = JSON.parse('{"rE":"3.15.0-next.1","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.0.1","@rspack/dev-server":"^2.0.1","@rspack/plugin-preact-refresh":"1.1.5","@rspack/plugin-react-refresh":"1.6.2","@swc/core":"^1.15.8","@swc/helpers":"^0.5.18","@vue/compiler-sfc":"3.5.26","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.1","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^17.2.3","extension-from-store":"^0.1.1","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.5.1","less-loader":"12.3.2","loader-utils":"^3.3.1","magic-string":"^0.30.21","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.10","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","react-refresh":"0.18.0","sass-loader":"16.0.7","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","unique-names-generator":"^4.7.1","vue":"3.5.26","vue-loader":"17.4.2","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3"}}');
3398
+ module.exports = JSON.parse('{"rE":"3.15.1","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.0.1","@rspack/dev-server":"^2.0.1","@rspack/plugin-preact-refresh":"1.1.5","@rspack/plugin-react-refresh":"1.6.2","@swc/core":"^1.15.8","@swc/helpers":"^0.5.18","@vue/compiler-sfc":"3.5.26","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.3","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^17.2.3","extension-from-store":"^0.1.1","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.5.1","less-loader":"12.3.2","loader-utils":"^3.3.1","magic-string":"^0.30.21","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.10","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","react-refresh":"0.18.0","sass-loader":"16.0.7","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","unique-names-generator":"^4.7.1","vue":"3.5.26","vue-loader":"17.4.2","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3"}}');
3352
3399
  }
3353
3400
  };
3354
3401
  var __webpack_module_cache__ = {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ const g = "u" > typeof globalThis ? globalThis : {};
16
+ if ('function' != typeof g.$RefreshReg$) g.$RefreshReg$ = function() {};
17
+ if ('function' != typeof g.$RefreshSig$) g.$RefreshSig$ = function() {
18
+ return function(type) {
19
+ return type;
20
+ };
21
+ };
22
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
23
+ Object.defineProperty(exports, '__esModule', {
24
+ value: true
25
+ });
package/dist/preview.cjs CHANGED
@@ -1148,6 +1148,28 @@ var __webpack_modules__ = {
1148
1148
  if (external_fs_.existsSync(candidate)) return candidate;
1149
1149
  }
1150
1150
  }
1151
+ const RESERVED_BUILT_IN_NAMES = new Set([
1152
+ 'extension-js-devtools',
1153
+ 'extension-js-theme'
1154
+ ]);
1155
+ function isReservedBuiltInPath(extensionPath) {
1156
+ const base = external_path_.basename(external_path_.normalize(extensionPath));
1157
+ if (RESERVED_BUILT_IN_NAMES.has(base)) return true;
1158
+ const segments = external_path_.normalize(extensionPath).split(external_path_.sep);
1159
+ return segments.some((segment)=>RESERVED_BUILT_IN_NAMES.has(segment));
1160
+ }
1161
+ function dedupeByResolvedPath(paths) {
1162
+ const seen = new Set();
1163
+ const result = [];
1164
+ for (const entry of paths){
1165
+ const resolved = external_path_.resolve(entry);
1166
+ if (!seen.has(resolved)) {
1167
+ seen.add(resolved);
1168
+ result.push(entry);
1169
+ }
1170
+ }
1171
+ return result;
1172
+ }
1151
1173
  function computeExtensionsToLoad(baseDir, mode, browser, userExtensionOutputPath, extraExtensionDirs = [], userManifestPath) {
1152
1174
  const list = [];
1153
1175
  try {
@@ -1167,9 +1189,9 @@ var __webpack_modules__ = {
1167
1189
  if (devtoolsForBrowser && !shouldSkipDevtoolsForNtpConflict) list.push(devtoolsForBrowser);
1168
1190
  if (themeForBrowser) list.push(themeForBrowser);
1169
1191
  } catch {}
1170
- for (const p of extraExtensionDirs)list.push(p);
1192
+ for (const p of extraExtensionDirs)if (!isReservedBuiltInPath(p)) list.push(p);
1171
1193
  list.push(userExtensionOutputPath);
1172
- return list;
1194
+ return dedupeByResolvedPath(list);
1173
1195
  }
1174
1196
  function getDarkModeDefaults(browser) {
1175
1197
  if ('chrome' === browser || 'edge' === browser || 'chromium' === browser || 'chromium-based' === browser) return {
@@ -1364,7 +1386,7 @@ var __webpack_modules__ = {
1364
1386
  module.exports = require("pintor");
1365
1387
  },
1366
1388
  "./package.json" (module) {
1367
- module.exports = JSON.parse('{"rE":"3.15.0-next.1","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.0.1","@rspack/dev-server":"^2.0.1","@rspack/plugin-preact-refresh":"1.1.5","@rspack/plugin-react-refresh":"1.6.2","@swc/core":"^1.15.8","@swc/helpers":"^0.5.18","@vue/compiler-sfc":"3.5.26","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.1","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^17.2.3","extension-from-store":"^0.1.1","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.5.1","less-loader":"12.3.2","loader-utils":"^3.3.1","magic-string":"^0.30.21","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.10","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","react-refresh":"0.18.0","sass-loader":"16.0.7","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","unique-names-generator":"^4.7.1","vue":"3.5.26","vue-loader":"17.4.2","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3"}}');
1389
+ module.exports = JSON.parse('{"rE":"3.15.1","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.0.1","@rspack/dev-server":"^2.0.1","@rspack/plugin-preact-refresh":"1.1.5","@rspack/plugin-react-refresh":"1.6.2","@swc/core":"^1.15.8","@swc/helpers":"^0.5.18","@vue/compiler-sfc":"3.5.26","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.3","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^17.2.3","extension-from-store":"^0.1.1","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.5.1","less-loader":"12.3.2","loader-utils":"^3.3.1","magic-string":"^0.30.21","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.10","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","react-refresh":"0.18.0","sass-loader":"16.0.7","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","typescript":"5.9.3","unique-names-generator":"^4.7.1","vue":"3.5.26","vue-loader":"17.4.2","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3"}}');
1368
1390
  }
1369
1391
  };
1370
1392
  var __webpack_module_cache__ = {};
package/package.json CHANGED
@@ -29,7 +29,7 @@
29
29
  "dist"
30
30
  ],
31
31
  "name": "extension-develop",
32
- "version": "3.15.0-next.1",
32
+ "version": "3.15.1",
33
33
  "description": "Develop, build, preview, and package Extension.js projects.",
34
34
  "author": {
35
35
  "name": "Cezar Augusto",
@@ -86,7 +86,7 @@
86
86
  "@swc/helpers": "^0.5.18",
87
87
  "@vue/compiler-sfc": "3.5.26",
88
88
  "adm-zip": "^0.5.16",
89
- "browser-extension-manifest-fields": "^2.2.1",
89
+ "browser-extension-manifest-fields": "^2.2.3",
90
90
  "case-sensitive-paths-webpack-plugin": "^2.4.0",
91
91
  "content-security-policy-parser": "^0.6.0",
92
92
  "cross-spawn": "^7.0.6",
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}::-ms-backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-amber-400:#fcbb00;--color-amber-600:#dd7400;--color-amber-700:#b75000;--color-lime-500:#80cd00;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-teal-500:#00baa7;--color-sky-500:#00a5ef;--color-pink-500:#f6339a;--color-gray-500:#6a7282;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-300:#d4d4d4;--color-neutral-400:#a1a1a1;--color-neutral-500:#737373;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#171717;--color-neutral-950:#0a0a0a;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root{--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-lime-500:lab(75.3197% -46.6547 86.1778);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-teal-500:lab(67.3859% -49.0983 -2.63511);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-pink-500:lab(56.9303% 76.8162 -8.07021);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-neutral-100:lab(96.52% -.0000298023 .0000119209);--color-neutral-200:lab(90.952% 0 -.0000119209);--color-neutral-300:lab(84.92% 0 -.0000119209);--color-neutral-400:lab(66.128% -.0000298023 .0000119209);--color-neutral-500:lab(48.496% 0 0);--color-neutral-700:lab(27.036% 0 0);--color-neutral-800:lab(15.204% 0 -.00000596046);--color-neutral-900:lab(7.78201% -.0000149012 0);--color-neutral-950:lab(2.75381% 0 0)}}:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-amber-400:#fcbb00;--color-amber-600:#dd7400;--color-amber-700:#b75000;--color-lime-500:#80cd00;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-teal-500:#00baa7;--color-sky-500:#00a5ef;--color-pink-500:#f6339a;--color-gray-500:#6a7282;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-300:#d4d4d4;--color-neutral-400:#a1a1a1;--color-neutral-500:#737373;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#171717;--color-neutral-950:#0a0a0a;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:host{--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-lime-500:lab(75.3197% -46.6547 86.1778);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-teal-500:lab(67.3859% -49.0983 -2.63511);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-pink-500:lab(56.9303% 76.8162 -8.07021);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-neutral-100:lab(96.52% -.0000298023 .0000119209);--color-neutral-200:lab(90.952% 0 -.0000119209);--color-neutral-300:lab(84.92% 0 -.0000119209);--color-neutral-400:lab(66.128% -.0000298023 .0000119209);--color-neutral-500:lab(48.496% 0 0);--color-neutral-700:lab(27.036% 0 0);--color-neutral-800:lab(15.204% 0 -.00000596046);--color-neutral-900:lab(7.78201% -.0000149012 0);--color-neutral-950:lab(2.75381% 0 0)}}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-ms-backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-ms-browse{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::-ms-browse{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}:where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:-moz-any([multiple],[size])) optgroup option:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:is([multiple],[size])) optgroup option:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:-webkit-any([multiple],[size])) optgroup option:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:where(select:-moz-any([multiple],[size])) optgroup option:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:where(select:is([multiple],[size])) optgroup option:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::-webkit-file-upload-button{margin-right:4px}:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::file-selector-button{margin-right:4px}:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::-ms-browse{margin-right:4px}:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::file-selector-button{margin-right:4px}:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-webkit-file-upload-button{margin-left:4px}:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::file-selector-button{margin-left:4px}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-ms-browse{margin-left:4px}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::file-selector-button{margin-left:4px}::-webkit-input-placeholder{opacity:1}::-ms-input-placeholder{opacity:1}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::-webkit-input-placeholder{color:currentColor}::-ms-input-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::-webkit-input-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::-ms-input-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-ms-browse{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Helvetica,Arial,system-ui,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,PingFang SC,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;line-height:1.5}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.sr-only{-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.-top-2{top:calc(var(--spacing)*-2)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.-right-2{right:calc(var(--spacing)*-2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-4{left:calc(var(--spacing)*4)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.z-\[2147483647\]{z-index:2147483647}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-left:auto;margin-right:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-auto{margin-top:auto}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-\[min\(640px\,calc\(100vh-32px\)\)\]{height:min(640px,100vh - 32px)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[80vh\]{max-height:80vh}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-9{width:calc(var(--spacing)*9)}.w-\[100px\]{width:100px}.w-\[calc\(100vw-32px\)\]{width:calc(100vw - 32px)}.w-fit{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-16{max-width:calc(var(--spacing)*16)}.max-w-\[520px\]{max-width:520px}.max-w-\[600px\]{max-width:600px}.max-w-\[760px\]{max-width:760px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-xl{max-width:var(--container-xl)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-\[8rem\]{min-width:8rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-rows-\[auto_auto_1fr\]{grid-template-rows:auto auto 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-top:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-bottom:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-top:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-bottom:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-top:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-bottom:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-top:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-bottom:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-input{border-color:var(--input)}.border-neutral-700{border-color:var(--color-neutral-700)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-transparent{border-color:transparent}.border-white\/10{border-color:rgba(255,255,255,.1)}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-t-transparent{border-top-color:transparent}.border-l-transparent{border-left-color:transparent}.bg-\[\#1C1C1E\]{background-color:#1c1c1e}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:rgba(0,0,0,.5)}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-muted{background-color:var(--muted)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-primary{background-color:var(--primary)}.bg-red-600{background-color:var(--color-red-600)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:transparent}.object-contain{object-fit:contain}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-\[1px\]{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.pr-2{padding-right:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-card-foreground{color:var(--card-foreground)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground{color:var(--foreground)}.text-gray-500{color:var(--color-gray-500)}.text-lime-500{color:var(--color-lime-500)}.text-muted-foreground{color:var(--muted-foreground)}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-300{color:var(--color-neutral-300)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-pink-500{color:var(--color-pink-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sky-500{color:var(--color-sky-500)}.text-teal-500{color:var(--color-teal-500)}.text-white{color:var(--color-white)}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_48px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 20px 48px var(--tw-shadow-color,rgba(0,0,0,.5));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,rgba(0,0,0,.1)),0 4px 6px -4px var(--tw-shadow-color,rgba(0,0,0,.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,rgba(0,0,0,.1)),0 2px 4px -2px var(--tw-shadow-color,rgba(0,0,0,.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-red-500\/80{--tw-ring-color:rgba(251,44,54,.8)}@supports (color:color-mix(in lab, red, red)){.ring-red-500\/80{--tw-ring-color:color-mix(in oklab,var(--color-red-500)80%,transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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{transition-property:color,background-color,border-color,outline-color,-webkit-text-decoration-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,-webkit-filter,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,-webkit-text-decoration-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-600{--tw-duration:.6s;transition-duration:.6s}.ease-\[cubic-bezier\(0\.22\,1\,0\.36\,1\)\]{--tw-ease:cubic-bezier(.22,1,.36,1);transition-timing-function:cubic-bezier(.22,1,.36,1)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.running{animation-play-state:running}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){text-align:center}.group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=top] *){text-align:center}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::-webkit-file-upload-button{border-style:var(--tw-border-style);border-width:0}.file\:border-0::-ms-browse{border-style:var(--tw-border-style);border-width:0}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::-webkit-file-upload-button{background-color:transparent}.file\:bg-transparent::-ms-browse{background-color:transparent}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::-webkit-file-upload-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:text-sm::-ms-browse{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::-webkit-file-upload-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:font-medium::-ms-browse{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.placeholder\:text-muted-foreground::-webkit-input-placeholder{color:var(--muted-foreground)}.placeholder\:text-muted-foreground::-ms-input-placeholder{color:var(--muted-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-neutral-800:hover{background-color:var(--color-neutral-800)}.hover\:bg-neutral-900:hover{background-color:var(--color-neutral-900)}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid transparent}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom-\[52\%\][data-state=closed]{--tw-exit-translate-y:52%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:calc(1/2*-100%)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom-\[52\%\][data-state=open]{--tw-enter-translate-y:52%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:calc(1/2*-100%)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(var(--spacing)*24)}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[90vh\][data-vaul-drawer-direction=bottom]{max-height:90vh}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left]{width:75%}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(var(--spacing)*24)}.data-\[vaul-drawer-direction\=top\]\:max-h-\[90vh\][data-vaul-drawer-direction=top]{max-height:90vh}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@media (min-width:40rem){.sm\:max-w-\[600px\]{max-width:600px}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:var(--container-sm)}}@media (min-width:48rem){.md\:gap-1\.5{gap:calc(var(--spacing)*1.5)}.md\:text-left{text-align:left}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-5 svg:not([class*=size-]){width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.5rem;--background:#fff;--foreground:#18181b;--card:#fff;--card-foreground:#18181b;--popover:#fff;--popover-foreground:#18181b;--primary:#2563eb;--primary-foreground:#fff;--secondary:#f4f4f5;--secondary-foreground:#18181b;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#18181b;--destructive:#ef4444;--border:#e4e4e7;--input:#e4e4e7;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#fff;--sidebar-foreground:#18181b;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e4e4e7;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-color-scheme:dark){:root{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:rgba(120,120,128,.16);--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:rgba(10,132,255,.16);--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:rgba(84,84,88,.36);--input:rgba(84,84,88,.32);--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:rgba(10,132,255,.16);--sidebar-accent-foreground:#f2f2f7;--sidebar-border:rgba(84,84,88,.36);--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}}.dark{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:rgba(120,120,128,.16);--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:rgba(10,132,255,.16);--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:rgba(84,84,88,.36);--input:rgba(84,84,88,.32);--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:rgba(10,132,255,.16);--sidebar-accent-foreground:#f2f2f7;--sidebar-border:rgba(84,84,88,.36);--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){.dark{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.extjs-overlay-host{z-index:2147483647;pointer-events:none;isolation:isolate;position:fixed;top:0;bottom:0;left:0;right:0}.extjs-overlay-root{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.content_script{all:initial;display:block}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));-webkit-filter:blur(var(--tw-enter-blur,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));-webkit-filter:blur(var(--tw-exit-blur,0));filter:blur(var(--tw-exit-blur,0))}}