@dsh-workbench/core 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client.js +1094 -520
- package/dist/client/client.body.js +1094 -520
- package/dist/client/index.js +946 -372
- package/dist/host/index.js +322 -9
- package/dist/types/app/layouts/market/discover-confirm.d.ts +4 -3
- package/dist/types/app/layouts/market/discover-detail.d.ts +1 -0
- package/dist/types/app/layouts/market/discover-installing.d.ts +8 -0
- package/dist/types/app/layouts/market/discover-rows.d.ts +4 -2
- package/dist/types/app/layouts/market/discover-states.d.ts +6 -0
- package/dist/types/app/layouts/market/discover-transport.d.ts +7 -0
- package/dist/types/app/layouts/market/discover-versions.d.ts +2 -1
- package/dist/types/app/layouts/market/market-check.d.ts +10 -0
- package/dist/types/app/layouts/market/market-header.d.ts +1 -3
- package/dist/types/app/layouts/market/use-discover.d.ts +10 -2
- package/dist/types/app/layouts/market/use-git-transport.d.ts +19 -0
- package/dist/types/app/layouts/market/use-module-versions.d.ts +4 -0
- package/dist/types/app/layouts/market/use-settling-modules.d.ts +1 -0
- package/dist/types/app/layouts/rightbar/MarketView.d.ts +3 -1
- package/dist/types/app/layouts/rightbar/market-freshness.d.ts +1 -0
- package/dist/types/app/layouts/rightbar/market-row-types.d.ts +4 -1
- package/dist/types/app/layouts/rightbar/market-rows.d.ts +2 -0
- package/dist/types/app/layouts/rightbar/market-section.d.ts +4 -2
- package/dist/types/app/layouts/rightbar/use-market-default.d.ts +12 -0
- package/dist/types/kernel/contract/market-index.d.ts +2 -2
- package/dist/types/modules/panels/model/market-installed.d.ts +19 -0
- package/dist/types/modules/panels/model/market-installed.test.d.ts +1 -0
- package/dist/types/modules/panels/model/market-route.d.ts +1 -0
- package/dist/types/shared/api/host/git-exec.d.ts +2 -0
- package/dist/types/shared/api/host/git-probe.d.ts +9 -0
- package/dist/types/shared/api/host/git-routes.d.ts +3 -0
- package/dist/types/shared/api/host/market-sources-store.d.ts +2 -1
- package/dist/types/shared/api/host/profile-dependencies.d.ts +1 -0
- package/dist/types/shared/hooks/market-queries.d.ts +3 -1
- package/package.json +3 -3
package/dist/client/index.js
CHANGED
|
@@ -3100,6 +3100,7 @@ var en = {
|
|
|
3100
3100
|
"panels.market.confirmUninstallAck": "I understand: using it again means reinstalling it.",
|
|
3101
3101
|
"panels.market.confirmYes": "Uninstall",
|
|
3102
3102
|
"panels.market.confirmNo": "Cancel",
|
|
3103
|
+
"panels.market.noMarketSource": "The index has no newer version of this module (refresh the index and retry)",
|
|
3103
3104
|
"panels.market.failed": "Failed: {reason}",
|
|
3104
3105
|
"panels.market.needEnv": "Set {env} in the terminal that started the workbench first",
|
|
3105
3106
|
"panels.market.needCommands": "Missing commands: {commands}",
|
|
@@ -3136,8 +3137,9 @@ var en = {
|
|
|
3136
3137
|
"panels.market.pluginBroken": "This plugin install is broken: it cannot be identified. Uninstall it first, then ask the agent to reinstall it by package name.",
|
|
3137
3138
|
"panels.market.restartNeeded": "The new version is installed — restart once to pick it up.",
|
|
3138
3139
|
"panels.market.foot": "After installing, enable it in the panel page of that project.",
|
|
3139
|
-
"panels.market.recheck": "Check for updates",
|
|
3140
3140
|
"panels.market.checkUpdates": "Check for updates",
|
|
3141
|
+
"panels.market.checkingNow": "Checking…",
|
|
3142
|
+
"panels.market.checkFailed": "The last check failed. Check your connection and retry.",
|
|
3141
3143
|
"panels.market.checkedAt": "Last checked: {time}",
|
|
3142
3144
|
"panels.market.justNow": "just now",
|
|
3143
3145
|
"panels.market.minutesAgo": "{n} min ago",
|
|
@@ -3201,6 +3203,7 @@ var en = {
|
|
|
3201
3203
|
"panels.market.add.failurePnpmMissing": "pnpm was not found, cannot install",
|
|
3202
3204
|
"panels.market.add.failureInstalled": "It is already installed in this workbench. The same package cannot be installed over itself: uninstall it first, then install again. The uninstall did not succeed this time.",
|
|
3203
3205
|
"panels.market.add.failureGeneric": "Something went wrong during install — see the install details",
|
|
3206
|
+
"panels.market.add.failureCredentials": "This repository needs credentials: this machine has none for it. Clone it once in a terminal, set up a credential helper, or install from the SSH address.",
|
|
3204
3207
|
"panels.market.add.approveTitle": "Your approval is needed for install scripts",
|
|
3205
3208
|
"panels.market.add.approveCaution": "Only allow packages you trust: install scripts run on this machine with your permissions.",
|
|
3206
3209
|
"panels.market.add.approveRun": "Allow and continue installing",
|
|
@@ -3273,6 +3276,7 @@ var en = {
|
|
|
3273
3276
|
"panels.discover.noSourceHint": "Add a module market index (http address or git repository) to browse and install its modules here",
|
|
3274
3277
|
"panels.discover.sourcesFailed": "Could not read the index sources.",
|
|
3275
3278
|
"panels.discover.unreadable": "Could not read this index.",
|
|
3279
|
+
"panels.discover.sourceAuth": "This index source could not be read: this machine has no git credentials for it. Set up credentials (or switch the source to its SSH address), then refresh.",
|
|
3276
3280
|
"panels.discover.invalid": "This index is not in a valid format.",
|
|
3277
3281
|
"panels.discover.emptyRepo": "This repository has no commits yet.",
|
|
3278
3282
|
"panels.discover.missingIndex": "This repository has no {path} yet.",
|
|
@@ -3296,8 +3300,26 @@ var en = {
|
|
|
3296
3300
|
"panels.discover.badShellDetail": "This version is not compatible with the running workbench {current}; it requires {peer}",
|
|
3297
3301
|
"panels.discover.unverified": "Workbench unverified",
|
|
3298
3302
|
"panels.discover.installing": "Installing…",
|
|
3303
|
+
"panels.discover.installingNamed": "Installing {name}…",
|
|
3304
|
+
"panels.discover.cancelInstall": "Cancel install",
|
|
3305
|
+
"panels.discover.cancelling": "Cancelling…",
|
|
3306
|
+
"panels.discover.installCancelled": "Install cancelled: {name}",
|
|
3299
3307
|
"panels.discover.installedDone": "Installed: {name}",
|
|
3300
3308
|
"panels.discover.failed": "Failed: {reason}",
|
|
3309
|
+
"panels.discover.transportTitle": "Where to read this repository",
|
|
3310
|
+
"panels.discover.transportSsh": "SSH",
|
|
3311
|
+
"panels.discover.transportHttps": "HTTPS",
|
|
3312
|
+
"panels.discover.transportOk": "Readable",
|
|
3313
|
+
"panels.discover.transportAuth": "Needs credentials",
|
|
3314
|
+
"panels.discover.transportUnreachable": "Unreachable",
|
|
3315
|
+
"panels.discover.transportUnknown": "Not probed",
|
|
3316
|
+
"panels.discover.transportChecking": "Checking…",
|
|
3317
|
+
"panels.discover.transportTest": "Test this address",
|
|
3318
|
+
"panels.discover.transportPlaceholder": "Or paste another address (mirror, alias)",
|
|
3319
|
+
"panels.discover.transportNeedsAuth": "This repository needs credentials: clone it once in a terminal, or set up an SSH key / credential helper, then install again.",
|
|
3320
|
+
"panels.discover.transportChange": "Change address",
|
|
3321
|
+
"panels.discover.transportChangeHide": "Hide",
|
|
3322
|
+
"panels.discover.transportNone": "No readable address",
|
|
3301
3323
|
"panels.discover.expand": "Show versions",
|
|
3302
3324
|
"panels.discover.collapse": "Hide versions",
|
|
3303
3325
|
"panels.discover.versionCount": "{n} versions",
|
|
@@ -3778,6 +3800,7 @@ var dictionaries = {
|
|
|
3778
3800
|
"panels.market.confirmUninstallAck": "我明白:卸载后想再用,得重新装一遍。",
|
|
3779
3801
|
"panels.market.confirmYes": "卸载",
|
|
3780
3802
|
"panels.market.confirmNo": "取消",
|
|
3803
|
+
"panels.market.noMarketSource": "索引里没有这个模块的新版本(刷新一次索引再试)",
|
|
3781
3804
|
"panels.market.failed": "没成功:{reason}",
|
|
3782
3805
|
"panels.market.needEnv": "先在启动工作台的终端里设 {env}",
|
|
3783
3806
|
"panels.market.needCommands": "缺这几条命令:{commands}",
|
|
@@ -3814,8 +3837,9 @@ var dictionaries = {
|
|
|
3814
3837
|
"panels.market.pluginBroken": "这份插件装坏了:认不出它是什么。可以先卸载,再让 agent 按包名重装一次。",
|
|
3815
3838
|
"panels.market.restartNeeded": "新版装好了,重启一次才生效。",
|
|
3816
3839
|
"panels.market.foot": "装好后到那个项目的面板页勾选它,模块才会出现。",
|
|
3817
|
-
"panels.market.recheck": "重新检查更新",
|
|
3818
3840
|
"panels.market.checkUpdates": "检查更新",
|
|
3841
|
+
"panels.market.checkingNow": "正在检查…",
|
|
3842
|
+
"panels.market.checkFailed": "最近一次没查到,检查网络后重试",
|
|
3819
3843
|
"panels.market.checkedAt": "最近检查:{time}",
|
|
3820
3844
|
"panels.market.justNow": "刚刚",
|
|
3821
3845
|
"panels.market.minutesAgo": "{n} 分钟前",
|
|
@@ -3879,6 +3903,7 @@ var dictionaries = {
|
|
|
3879
3903
|
"panels.market.add.failurePnpmMissing": "没有找到 pnpm,无法安装",
|
|
3880
3904
|
"panels.market.add.failureInstalled": "它已经装在这份工作台里了。同一个包不能就地覆盖,得先卸载再装;这次卸载也没成功。",
|
|
3881
3905
|
"panels.market.add.failureGeneric": "安装过程中出错,原因见安装详情",
|
|
3906
|
+
"panels.market.add.failureCredentials": "这个仓库要凭证:本机没有它的 git 凭据。先在终端里 clone 一次、配好凭据助手,或改用 SSH 地址,再装一次。",
|
|
3882
3907
|
"panels.market.add.approveTitle": "需要你允许安装脚本",
|
|
3883
3908
|
"panels.market.add.approveCaution": "只允许你信得过的包:安装脚本会以你的权限在这台机器上运行。",
|
|
3884
3909
|
"panels.market.add.approveRun": "允许并继续安装",
|
|
@@ -3951,6 +3976,7 @@ var dictionaries = {
|
|
|
3951
3976
|
"panels.discover.noSourceHint": "添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块",
|
|
3952
3977
|
"panels.discover.sourcesFailed": "无法读取索引源",
|
|
3953
3978
|
"panels.discover.unreadable": "无法读取此索引",
|
|
3979
|
+
"panels.discover.sourceAuth": "这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。",
|
|
3954
3980
|
"panels.discover.invalid": "此索引的格式无效",
|
|
3955
3981
|
"panels.discover.emptyRepo": "这个仓库还没有任何提交",
|
|
3956
3982
|
"panels.discover.missingIndex": "仓库里还没有索引文件 {path}",
|
|
@@ -3974,8 +4000,26 @@ var dictionaries = {
|
|
|
3974
4000
|
"panels.discover.badShellDetail": "此版本与当前的工作台 {current} 不兼容,它要求 {peer}",
|
|
3975
4001
|
"panels.discover.unverified": "工作台未验证",
|
|
3976
4002
|
"panels.discover.installing": "正在安装…",
|
|
4003
|
+
"panels.discover.installingNamed": "正在安装「{name}」…",
|
|
4004
|
+
"panels.discover.cancelInstall": "取消安装",
|
|
4005
|
+
"panels.discover.cancelling": "正在取消…",
|
|
4006
|
+
"panels.discover.installCancelled": "已取消安装:{name}",
|
|
3977
4007
|
"panels.discover.installedDone": "装好了:{name}",
|
|
3978
4008
|
"panels.discover.failed": "操作失败:{reason}",
|
|
4009
|
+
"panels.discover.transportTitle": "从哪读这个仓库",
|
|
4010
|
+
"panels.discover.transportSsh": "SSH",
|
|
4011
|
+
"panels.discover.transportHttps": "HTTPS",
|
|
4012
|
+
"panels.discover.transportOk": "能读",
|
|
4013
|
+
"panels.discover.transportAuth": "要凭证",
|
|
4014
|
+
"panels.discover.transportUnreachable": "连不上",
|
|
4015
|
+
"panels.discover.transportUnknown": "没探成",
|
|
4016
|
+
"panels.discover.transportChecking": "正在探测…",
|
|
4017
|
+
"panels.discover.transportTest": "试这个地址",
|
|
4018
|
+
"panels.discover.transportPlaceholder": "或贴一个别的地址(公司镜像、别名)",
|
|
4019
|
+
"panels.discover.transportNeedsAuth": "这个仓库要凭证:先在终端里把它 clone 一次,或配好 SSH key / 凭据助手;配好后再点安装。",
|
|
4020
|
+
"panels.discover.transportChange": "换一个地址",
|
|
4021
|
+
"panels.discover.transportChangeHide": "收起",
|
|
4022
|
+
"panels.discover.transportNone": "没有可读的地址",
|
|
3979
4023
|
"panels.discover.expand": "展开版本",
|
|
3980
4024
|
"panels.discover.collapse": "收起版本",
|
|
3981
4025
|
"panels.discover.versionCount": "{n} 个版本",
|
|
@@ -4391,6 +4435,99 @@ function marketInstallTarget(name, version, source) {
|
|
|
4391
4435
|
return { spec: path === "" ? base : `${base}&path:/${path}` };
|
|
4392
4436
|
}
|
|
4393
4437
|
//#endregion
|
|
4438
|
+
//#region ../shared/dist/lib/git-address.js
|
|
4439
|
+
var SCP = /^(?:([A-Za-z0-9._-]+)@)?([A-Za-z0-9.-]+):(?!\/)(\S+)$/;
|
|
4440
|
+
function bare(url) {
|
|
4441
|
+
return url.trim().replace(/^git\+/, "");
|
|
4442
|
+
}
|
|
4443
|
+
function pathOf(pathname) {
|
|
4444
|
+
return pathname.replace(/^\/+/, "").replace(/\/+$/, "");
|
|
4445
|
+
}
|
|
4446
|
+
/**
|
|
4447
|
+
* 把一个 git 地址拆成「哪台主机 + 哪个路径」,不管发布者当初用的是 https、ssh 还是
|
|
4448
|
+
* scp 那种 `git@host:path` 写法;认不出来给 undefined。
|
|
4449
|
+
*/
|
|
4450
|
+
function gitAddressOf(url) {
|
|
4451
|
+
const text = bare(url);
|
|
4452
|
+
if (text === "") return void 0;
|
|
4453
|
+
if (text.includes("://")) {
|
|
4454
|
+
let parsed;
|
|
4455
|
+
try {
|
|
4456
|
+
parsed = new URL(text);
|
|
4457
|
+
} catch {
|
|
4458
|
+
return;
|
|
4459
|
+
}
|
|
4460
|
+
if (parsed.protocol !== "https:" && parsed.protocol !== "http:" && parsed.protocol !== "ssh:") return;
|
|
4461
|
+
const path = pathOf(parsed.pathname);
|
|
4462
|
+
if (path === "") return void 0;
|
|
4463
|
+
const port = parsed.port === "" ? void 0 : Number(parsed.port);
|
|
4464
|
+
const shared = {
|
|
4465
|
+
host: parsed.hostname,
|
|
4466
|
+
path,
|
|
4467
|
+
...port === void 0 ? {} : { port }
|
|
4468
|
+
};
|
|
4469
|
+
if (parsed.protocol !== "ssh:") return {
|
|
4470
|
+
kind: "https",
|
|
4471
|
+
...shared
|
|
4472
|
+
};
|
|
4473
|
+
return {
|
|
4474
|
+
kind: "ssh",
|
|
4475
|
+
...shared,
|
|
4476
|
+
...parsed.username === "" ? {} : { user: parsed.username }
|
|
4477
|
+
};
|
|
4478
|
+
}
|
|
4479
|
+
const scp = SCP.exec(text);
|
|
4480
|
+
if (scp === null) return void 0;
|
|
4481
|
+
const path = pathOf(scp[3] ?? "");
|
|
4482
|
+
if (path === "") return void 0;
|
|
4483
|
+
return {
|
|
4484
|
+
kind: "ssh",
|
|
4485
|
+
host: scp[2] ?? "",
|
|
4486
|
+
path,
|
|
4487
|
+
...scp[1] === void 0 ? {} : { user: scp[1] }
|
|
4488
|
+
};
|
|
4489
|
+
}
|
|
4490
|
+
/** 一份地址的规范写法:ssh 一律成 `ssh://user@host/path`(pnpm 认这个),https 原样。 */
|
|
4491
|
+
function gitAddressText(address) {
|
|
4492
|
+
const port = address.port === void 0 ? "" : `:${String(address.port)}`;
|
|
4493
|
+
if (address.kind === "ssh") return `ssh://${address.user === void 0 || address.user === "" ? "git" : address.user}@${address.host}${port}/${address.path}`;
|
|
4494
|
+
return `https://${address.host}${port}/${address.path}`;
|
|
4495
|
+
}
|
|
4496
|
+
/**
|
|
4497
|
+
* 同一个仓库的两种读法,发布者用的那种排前面。ssh 那条一律规范成 `ssh://` 形式,
|
|
4498
|
+
* 因为 `git@host:path` 拼进安装 spec 时 pnpm 不认;https 那条保留发布者的原样(含 http)。
|
|
4499
|
+
*/
|
|
4500
|
+
function gitTransportCandidates(url) {
|
|
4501
|
+
const address = gitAddressOf(url);
|
|
4502
|
+
if (address === void 0) {
|
|
4503
|
+
const only = bare(url);
|
|
4504
|
+
return only === "" ? [] : [{
|
|
4505
|
+
kind: only.startsWith("ssh") ? "ssh" : "https",
|
|
4506
|
+
url: only
|
|
4507
|
+
}];
|
|
4508
|
+
}
|
|
4509
|
+
const primary = {
|
|
4510
|
+
kind: address.kind,
|
|
4511
|
+
url: address.kind === "ssh" ? gitAddressText(address) : bare(url)
|
|
4512
|
+
};
|
|
4513
|
+
const other = address.kind === "https" ? {
|
|
4514
|
+
kind: "ssh",
|
|
4515
|
+
url: gitAddressText({
|
|
4516
|
+
kind: "ssh",
|
|
4517
|
+
host: address.host,
|
|
4518
|
+
path: address.path
|
|
4519
|
+
})
|
|
4520
|
+
} : {
|
|
4521
|
+
kind: "https",
|
|
4522
|
+
url: gitAddressText({
|
|
4523
|
+
kind: "https",
|
|
4524
|
+
host: address.host,
|
|
4525
|
+
path: address.path
|
|
4526
|
+
})
|
|
4527
|
+
};
|
|
4528
|
+
return other.url === primary.url ? [primary] : [primary, other];
|
|
4529
|
+
}
|
|
4530
|
+
//#endregion
|
|
4394
4531
|
//#region ../shared/dist/lib/board-fact.js
|
|
4395
4532
|
/**
|
|
4396
4533
|
* 判一个路径落不落在这个工作区里(按路径前缀比,不是字符串包含)。
|
|
@@ -4668,6 +4805,7 @@ function markNextProbeSilent() {
|
|
|
4668
4805
|
silentNextProbe = true;
|
|
4669
4806
|
}
|
|
4670
4807
|
var probe$1 = NO_PROBE;
|
|
4808
|
+
var probing = 0;
|
|
4671
4809
|
var probeListeners = /* @__PURE__ */ new Set();
|
|
4672
4810
|
function probeValue() {
|
|
4673
4811
|
return probe$1;
|
|
@@ -4701,8 +4839,10 @@ function subscribeCapabilities(listener) {
|
|
|
4701
4839
|
};
|
|
4702
4840
|
}
|
|
4703
4841
|
function setCapabilities(next, rechecked = false) {
|
|
4704
|
-
if (next === null)
|
|
4705
|
-
|
|
4842
|
+
if (next === null) {
|
|
4843
|
+
probing = 0;
|
|
4844
|
+
setProbe(NO_PROBE);
|
|
4845
|
+
} else if (rechecked) setProbe({
|
|
4706
4846
|
...probe$1,
|
|
4707
4847
|
checkedAt: Date.now()
|
|
4708
4848
|
});
|
|
@@ -4711,13 +4851,17 @@ function setCapabilities(next, rechecked = false) {
|
|
|
4711
4851
|
for (const listener of [...listeners$7]) listener();
|
|
4712
4852
|
}
|
|
4713
4853
|
function beginProbe() {
|
|
4714
|
-
|
|
4854
|
+
probing += 1;
|
|
4855
|
+
if (probing > 1) return;
|
|
4715
4856
|
setProbe({
|
|
4716
4857
|
...probe$1,
|
|
4717
4858
|
checking: true
|
|
4718
4859
|
});
|
|
4719
4860
|
}
|
|
4720
4861
|
function endProbe() {
|
|
4862
|
+
if (probing === 0) return;
|
|
4863
|
+
probing -= 1;
|
|
4864
|
+
if (probing > 0) return;
|
|
4721
4865
|
setProbe({
|
|
4722
4866
|
...probe$1,
|
|
4723
4867
|
checking: false
|
|
@@ -4757,13 +4901,14 @@ function runCapabilityRead(options) {
|
|
|
4757
4901
|
const at = epoch$1;
|
|
4758
4902
|
const seq = readSeq$1 += 1;
|
|
4759
4903
|
if (force) newestForceSeq$1 = seq;
|
|
4760
|
-
|
|
4904
|
+
const shown = force && !silent;
|
|
4905
|
+
if (shown) beginProbe();
|
|
4761
4906
|
return shareCapabilityFetch(force, load).then((result) => {
|
|
4762
4907
|
if (at !== epoch$1) return;
|
|
4763
4908
|
if (!force && seq < newestForceSeq$1) return;
|
|
4764
4909
|
publishCapability(result, force);
|
|
4765
4910
|
}).finally(() => {
|
|
4766
|
-
if (
|
|
4911
|
+
if (shown) endProbe();
|
|
4767
4912
|
});
|
|
4768
4913
|
}
|
|
4769
4914
|
function useCapabilities(refreshToken, reloadToken = 0) {
|
|
@@ -4894,6 +5039,16 @@ function panelRowName(label, hint, t) {
|
|
|
4894
5039
|
//#endregion
|
|
4895
5040
|
//#region src/app/layouts/rightbar/market-freshness.ts
|
|
4896
5041
|
var MARKET_STALE_MS = VERSION_CHECK_TTL_MS;
|
|
5042
|
+
function checkedAgoText(at, now, t) {
|
|
5043
|
+
const seconds = Math.max(0, Math.floor((now - at) / 1e3));
|
|
5044
|
+
if (seconds < 60) return t("panels.market.justNow");
|
|
5045
|
+
const minutes = Math.floor(seconds / 60);
|
|
5046
|
+
if (minutes < 60) return t("panels.market.minutesAgo", { n: String(minutes) });
|
|
5047
|
+
return t("panels.market.hoursAgo", { n: String(Math.floor(minutes / 60)) });
|
|
5048
|
+
}
|
|
5049
|
+
function checkedAgo(at, t) {
|
|
5050
|
+
return checkedAgoText(at, Date.now(), t);
|
|
5051
|
+
}
|
|
4897
5052
|
function marketSettled(freshness, installedRead) {
|
|
4898
5053
|
return freshness.loaded && installedRead !== false;
|
|
4899
5054
|
}
|
|
@@ -4902,85 +5057,6 @@ function shouldProbeOnEnter(input) {
|
|
|
4902
5057
|
return input.now - input.checkedAt >= input.staleMs;
|
|
4903
5058
|
}
|
|
4904
5059
|
//#endregion
|
|
4905
|
-
//#region src/app/layouts/rightbar/market-settle.ts
|
|
4906
|
-
var MODULE_SETTLE_MS = 15e3;
|
|
4907
|
-
function holdBack(installed, roster, active, previous) {
|
|
4908
|
-
const pending = installed.filter((unit) => !roster.has(unit));
|
|
4909
|
-
const fresh = previous === null ? [] : pending.filter((unit) => !previous.has(unit));
|
|
4910
|
-
return pending.filter((unit) => active.has(unit) || fresh.includes(unit));
|
|
4911
|
-
}
|
|
4912
|
-
var WORKBENCH_SWAP_MS = 18e4;
|
|
4913
|
-
function swapLanded(until, installed) {
|
|
4914
|
-
return until !== void 0 && installed === until;
|
|
4915
|
-
}
|
|
4916
|
-
function swapUntil(action, application, latest) {
|
|
4917
|
-
if (action !== "update-workbench" || application !== "restart-required") return void 0;
|
|
4918
|
-
return latest;
|
|
4919
|
-
}
|
|
4920
|
-
var READ_BACK_ACTIONS = /* @__PURE__ */ new Set([
|
|
4921
|
-
"update",
|
|
4922
|
-
"update-bundle",
|
|
4923
|
-
"update-dependency",
|
|
4924
|
-
"update-plugin"
|
|
4925
|
-
]);
|
|
4926
|
-
var REMOVAL_ACTIONS = /* @__PURE__ */ new Set([
|
|
4927
|
-
"remove-bundle",
|
|
4928
|
-
"uninstall",
|
|
4929
|
-
"uninstall-plugin"
|
|
4930
|
-
]);
|
|
4931
|
-
function awaitsReadBack(action, application, version) {
|
|
4932
|
-
if (application !== "applied") return false;
|
|
4933
|
-
if (REMOVAL_ACTIONS.has(action)) return true;
|
|
4934
|
-
if (!READ_BACK_ACTIONS.has(action)) return false;
|
|
4935
|
-
return action === "update-bundle" ? version !== void 0 : true;
|
|
4936
|
-
}
|
|
4937
|
-
function readBackDone(input) {
|
|
4938
|
-
if (input.action === "update") return !input.outdated;
|
|
4939
|
-
if (input.entry === void 0 || input.entry.local === true || input.entry.latest === void 0) return true;
|
|
4940
|
-
if (input.entry.latest === input.entry.installed) return true;
|
|
4941
|
-
if (input.clicked === void 0) return true;
|
|
4942
|
-
return input.entry.installed !== input.clicked;
|
|
4943
|
-
}
|
|
4944
|
-
function settleLanded(input) {
|
|
4945
|
-
if (input.until !== void 0) return swapLanded(input.until, input.installed);
|
|
4946
|
-
if (input.readBack !== true) return true;
|
|
4947
|
-
if (input.action === "remove-bundle" || input.action === "uninstall") return input.unitGone === true;
|
|
4948
|
-
if (input.action === "uninstall-plugin") return input.pluginGone === true;
|
|
4949
|
-
const settled = (state) => state !== void 0 && state !== "outdated" && state !== "unsatisfied" && state !== "checking" && state !== "unchecked";
|
|
4950
|
-
if (input.action === "update-dependency") return settled(input.sharedState);
|
|
4951
|
-
if (input.action === "update-plugin") return input.pluginOutdated === false;
|
|
4952
|
-
return readBackDone({
|
|
4953
|
-
action: input.action,
|
|
4954
|
-
entry: input.entry,
|
|
4955
|
-
clicked: input.clicked,
|
|
4956
|
-
outdated: input.outdated
|
|
4957
|
-
});
|
|
4958
|
-
}
|
|
4959
|
-
function tailReason(tail) {
|
|
4960
|
-
if (tail === void 0) return void 0;
|
|
4961
|
-
const last = tail.split(" / ").map((part) => part.trim()).filter((part) => part !== "").at(-1);
|
|
4962
|
-
if (last === void 0) return void 0;
|
|
4963
|
-
return last.length <= 240 ? last : `${last.slice(0, 240)}…`;
|
|
4964
|
-
}
|
|
4965
|
-
function selfUpdateStop(input) {
|
|
4966
|
-
const { until, since, update } = input;
|
|
4967
|
-
if (until === void 0 || update === void 0 || update === null) return void 0;
|
|
4968
|
-
if (update.state !== "failed" && update.state !== "rolled-back") return void 0;
|
|
4969
|
-
if (update.to !== until && update.version !== until) return void 0;
|
|
4970
|
-
if (since !== void 0 && update.at !== void 0) {
|
|
4971
|
-
const at = (0, import_dayjs_min.default)(update.at).valueOf();
|
|
4972
|
-
if (Number.isFinite(at) && at < since - 5e3) return void 0;
|
|
4973
|
-
}
|
|
4974
|
-
return {
|
|
4975
|
-
kind: update.state,
|
|
4976
|
-
...update.version === void 0 ? {} : { version: update.version },
|
|
4977
|
-
...update.state === "failed" && tailReason(update.tail) !== void 0 ? { reason: tailReason(update.tail) } : {}
|
|
4978
|
-
};
|
|
4979
|
-
}
|
|
4980
|
-
function holdWindowMs(until) {
|
|
4981
|
-
return until === void 0 ? MODULE_SETTLE_MS : WORKBENCH_SWAP_MS;
|
|
4982
|
-
}
|
|
4983
|
-
//#endregion
|
|
4984
5060
|
//#region src/app/layouts/rightbar/market-shared-rows.ts
|
|
4985
5061
|
var SHARED_STATE_KEY = {
|
|
4986
5062
|
checking: "panels.market.checking",
|
|
@@ -5150,8 +5226,10 @@ function installedRows(modules, manifests, listed, names, defaults = /* @__PURE_
|
|
|
5150
5226
|
...outdated ? { moduleUpdate: {
|
|
5151
5227
|
installed: module.installed,
|
|
5152
5228
|
latest,
|
|
5153
|
-
...blocked === void 0 ? {} : { blocked }
|
|
5229
|
+
...blocked === void 0 ? {} : { blocked },
|
|
5230
|
+
...module.market === void 0 ? {} : { market: module.market }
|
|
5154
5231
|
} } : {},
|
|
5232
|
+
...module.market === void 0 ? {} : { market: module.market },
|
|
5155
5233
|
defaultShown: defaults.has(module.unit),
|
|
5156
5234
|
defaultChanged: changed[module.unit] ?? 0
|
|
5157
5235
|
});
|
|
@@ -5170,7 +5248,7 @@ function marketActions$1(row) {
|
|
|
5170
5248
|
if (row.plugin === true) return [...row.canUpdate ? ["update-plugin"] : [], ...row.canUninstall ? ["uninstall-plugin"] : []];
|
|
5171
5249
|
return [
|
|
5172
5250
|
...row.canInstall ? ["install"] : [],
|
|
5173
|
-
...row.moduleUpdate === void 0 ? row.canUpdate ? ["update"] : [] : row.moduleUpdate.blocked === void 0 ? ["update-bundle"] : [],
|
|
5251
|
+
...row.moduleUpdate === void 0 ? row.canUpdate ? ["update"] : [] : row.moduleUpdate.blocked === void 0 ? [row.market === void 0 || row.pkg === void 0 ? "update-bundle" : "install-version"] : [],
|
|
5174
5252
|
...row.canUninstall ? [row.pkg === void 0 ? "uninstall" : "remove-bundle"] : []
|
|
5175
5253
|
];
|
|
5176
5254
|
}
|
|
@@ -5259,7 +5337,8 @@ function marketUpdatesOf(modules) {
|
|
|
5259
5337
|
installed: module.installed,
|
|
5260
5338
|
...local || module.latest === void 0 ? {} : { latest: module.latest },
|
|
5261
5339
|
...local || module.latest === void 0 || module.latestBlocked === void 0 ? {} : { blocked: module.latestBlocked },
|
|
5262
|
-
...local ? { local: true } : {}
|
|
5340
|
+
...local ? { local: true } : {},
|
|
5341
|
+
...local || module.market === void 0 ? {} : { market: module.market }
|
|
5263
5342
|
};
|
|
5264
5343
|
}
|
|
5265
5344
|
return next;
|
|
@@ -5298,7 +5377,8 @@ function marketRows(manifests, capabilities, updates = {}, defaults = /* @__PURE
|
|
|
5298
5377
|
const moduleUpdate = entry === void 0 || entry.latest === void 0 || entry.latest === entry.installed ? void 0 : {
|
|
5299
5378
|
installed: entry.installed,
|
|
5300
5379
|
latest: entry.latest,
|
|
5301
|
-
...entry.blocked === void 0 ? {} : { blocked: entry.blocked }
|
|
5380
|
+
...entry.blocked === void 0 ? {} : { blocked: entry.blocked },
|
|
5381
|
+
...entry.market === void 0 ? {} : { market: entry.market }
|
|
5302
5382
|
};
|
|
5303
5383
|
const shown = moduleUpdate === void 0 ? state : "outdated";
|
|
5304
5384
|
const hint = moduleUpdate?.blocked === void 0 ? shown === "unknown" || shown === "unchecked" ? "panels.market.uncheckedHint" : void 0 : updateBlockHintOf(moduleUpdate.blocked);
|
|
@@ -5315,6 +5395,10 @@ function marketRows(manifests, capabilities, updates = {}, defaults = /* @__PURE
|
|
|
5315
5395
|
...entry.latest === void 0 ? {} : { latest: entry.latest }
|
|
5316
5396
|
} },
|
|
5317
5397
|
...moduleUpdate === void 0 ? {} : { moduleUpdate },
|
|
5398
|
+
...entry?.market === void 0 ? {} : {
|
|
5399
|
+
market: entry.market,
|
|
5400
|
+
pkg: entry.market.pkg
|
|
5401
|
+
},
|
|
5318
5402
|
...moduleUpdate === void 0 ? note === void 0 ? {} : { note } : {},
|
|
5319
5403
|
...local ? { local: true } : {},
|
|
5320
5404
|
defaultShown: defaults.has(manifest.id),
|
|
@@ -5481,6 +5565,86 @@ function marketHintOf(input) {
|
|
|
5481
5565
|
return null;
|
|
5482
5566
|
}
|
|
5483
5567
|
//#endregion
|
|
5568
|
+
//#region src/app/layouts/rightbar/market-settle.ts
|
|
5569
|
+
var MODULE_SETTLE_MS = 15e3;
|
|
5570
|
+
function holdBack(installed, roster, active, previous) {
|
|
5571
|
+
const pending = installed.filter((unit) => !roster.has(unit));
|
|
5572
|
+
const fresh = previous === null ? [] : pending.filter((unit) => !previous.has(unit));
|
|
5573
|
+
return pending.filter((unit) => active.has(unit) || fresh.includes(unit));
|
|
5574
|
+
}
|
|
5575
|
+
var WORKBENCH_SWAP_MS = 18e4;
|
|
5576
|
+
function swapLanded(until, installed) {
|
|
5577
|
+
return until !== void 0 && installed === until;
|
|
5578
|
+
}
|
|
5579
|
+
function swapUntil(action, application, latest) {
|
|
5580
|
+
if (action !== "update-workbench" || application !== "restart-required") return void 0;
|
|
5581
|
+
return latest;
|
|
5582
|
+
}
|
|
5583
|
+
var READ_BACK_ACTIONS = /* @__PURE__ */ new Set([
|
|
5584
|
+
"update",
|
|
5585
|
+
"update-bundle",
|
|
5586
|
+
"install-version",
|
|
5587
|
+
"update-dependency",
|
|
5588
|
+
"update-plugin"
|
|
5589
|
+
]);
|
|
5590
|
+
var REMOVAL_ACTIONS = /* @__PURE__ */ new Set([
|
|
5591
|
+
"remove-bundle",
|
|
5592
|
+
"uninstall",
|
|
5593
|
+
"uninstall-plugin"
|
|
5594
|
+
]);
|
|
5595
|
+
function awaitsReadBack(action, application, version) {
|
|
5596
|
+
if (application !== "applied") return false;
|
|
5597
|
+
if (REMOVAL_ACTIONS.has(action)) return true;
|
|
5598
|
+
if (!READ_BACK_ACTIONS.has(action)) return false;
|
|
5599
|
+
return action === "update-bundle" || action === "install-version" ? version !== void 0 : true;
|
|
5600
|
+
}
|
|
5601
|
+
function readBackDone(input) {
|
|
5602
|
+
if (input.action === "update") return !input.outdated;
|
|
5603
|
+
if (input.entry === void 0 || input.entry.local === true || input.entry.latest === void 0) return true;
|
|
5604
|
+
if (input.entry.latest === input.entry.installed) return true;
|
|
5605
|
+
if (input.clicked === void 0) return true;
|
|
5606
|
+
return input.entry.installed !== input.clicked;
|
|
5607
|
+
}
|
|
5608
|
+
function settleLanded(input) {
|
|
5609
|
+
if (input.until !== void 0) return swapLanded(input.until, input.installed);
|
|
5610
|
+
if (input.readBack !== true) return true;
|
|
5611
|
+
if (input.action === "remove-bundle" || input.action === "uninstall") return input.unitGone === true;
|
|
5612
|
+
if (input.action === "uninstall-plugin") return input.pluginGone === true;
|
|
5613
|
+
const settled = (state) => state !== void 0 && state !== "outdated" && state !== "unsatisfied" && state !== "checking" && state !== "unchecked";
|
|
5614
|
+
if (input.action === "update-dependency") return settled(input.sharedState);
|
|
5615
|
+
if (input.action === "update-plugin") return input.pluginOutdated === false;
|
|
5616
|
+
return readBackDone({
|
|
5617
|
+
action: input.action,
|
|
5618
|
+
entry: input.entry,
|
|
5619
|
+
clicked: input.clicked,
|
|
5620
|
+
outdated: input.outdated
|
|
5621
|
+
});
|
|
5622
|
+
}
|
|
5623
|
+
function tailReason(tail) {
|
|
5624
|
+
if (tail === void 0) return void 0;
|
|
5625
|
+
const last = tail.split(" / ").map((part) => part.trim()).filter((part) => part !== "").at(-1);
|
|
5626
|
+
if (last === void 0) return void 0;
|
|
5627
|
+
return last.length <= 240 ? last : `${last.slice(0, 240)}…`;
|
|
5628
|
+
}
|
|
5629
|
+
function selfUpdateStop(input) {
|
|
5630
|
+
const { until, since, update } = input;
|
|
5631
|
+
if (until === void 0 || update === void 0 || update === null) return void 0;
|
|
5632
|
+
if (update.state !== "failed" && update.state !== "rolled-back") return void 0;
|
|
5633
|
+
if (update.to !== until && update.version !== until) return void 0;
|
|
5634
|
+
if (since !== void 0 && update.at !== void 0) {
|
|
5635
|
+
const at = (0, import_dayjs_min.default)(update.at).valueOf();
|
|
5636
|
+
if (Number.isFinite(at) && at < since - 5e3) return void 0;
|
|
5637
|
+
}
|
|
5638
|
+
return {
|
|
5639
|
+
kind: update.state,
|
|
5640
|
+
...update.version === void 0 ? {} : { version: update.version },
|
|
5641
|
+
...update.state === "failed" && tailReason(update.tail) !== void 0 ? { reason: tailReason(update.tail) } : {}
|
|
5642
|
+
};
|
|
5643
|
+
}
|
|
5644
|
+
function holdWindowMs(until) {
|
|
5645
|
+
return until === void 0 ? MODULE_SETTLE_MS : WORKBENCH_SWAP_MS;
|
|
5646
|
+
}
|
|
5647
|
+
//#endregion
|
|
5484
5648
|
//#region src/app/layouts/rightbar/market-busy.ts
|
|
5485
5649
|
var listeners$5 = /* @__PURE__ */ new Set();
|
|
5486
5650
|
var published = /* @__PURE__ */ new Map();
|
|
@@ -5761,127 +5925,137 @@ function useMarketTransient(input) {
|
|
|
5761
5925
|
};
|
|
5762
5926
|
}
|
|
5763
5927
|
var MarketPage_module_default = {
|
|
5764
|
-
marketList: "
|
|
5765
|
-
marketRow: "
|
|
5766
|
-
marketIcon: "
|
|
5767
|
-
marketMain: "
|
|
5768
|
-
marketName: "
|
|
5769
|
-
marketStatus: "
|
|
5770
|
-
marketStateText: "
|
|
5771
|
-
marketSep: "
|
|
5772
|
-
marketReason: "
|
|
5773
|
-
marketVersion: "
|
|
5774
|
-
marketLocalTag: "
|
|
5775
|
-
marketEnd: "
|
|
5776
|
-
marketSwitchSeat: "
|
|
5777
|
-
marketActions: "
|
|
5778
|
-
marketUpdateAction: "
|
|
5779
|
-
marketSelfDivider: "
|
|
5780
|
-
marketSection: "
|
|
5781
|
-
marketSectionHead: "
|
|
5782
|
-
marketSectionIcon: "
|
|
5783
|
-
marketSectionTitle: "
|
|
5784
|
-
marketSectionCount: "
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
|
|
5795
|
-
|
|
5796
|
-
|
|
5797
|
-
|
|
5798
|
-
|
|
5799
|
-
|
|
5800
|
-
|
|
5801
|
-
|
|
5802
|
-
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
|
|
5812
|
-
|
|
5813
|
-
|
|
5814
|
-
|
|
5815
|
-
|
|
5816
|
-
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5831
|
-
|
|
5832
|
-
|
|
5833
|
-
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
5842
|
-
|
|
5843
|
-
|
|
5844
|
-
|
|
5845
|
-
|
|
5846
|
-
|
|
5847
|
-
|
|
5848
|
-
|
|
5849
|
-
|
|
5850
|
-
|
|
5851
|
-
|
|
5852
|
-
|
|
5853
|
-
|
|
5854
|
-
|
|
5855
|
-
|
|
5856
|
-
|
|
5857
|
-
|
|
5858
|
-
|
|
5859
|
-
|
|
5860
|
-
|
|
5861
|
-
|
|
5862
|
-
|
|
5863
|
-
|
|
5864
|
-
|
|
5865
|
-
|
|
5866
|
-
|
|
5867
|
-
|
|
5868
|
-
|
|
5869
|
-
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
|
|
5875
|
-
|
|
5876
|
-
|
|
5877
|
-
|
|
5878
|
-
|
|
5879
|
-
|
|
5880
|
-
|
|
5881
|
-
|
|
5882
|
-
|
|
5883
|
-
|
|
5884
|
-
|
|
5928
|
+
marketList: "_marketList_yups9_1",
|
|
5929
|
+
marketRow: "_marketRow_yups9_10",
|
|
5930
|
+
marketIcon: "_marketIcon_yups9_20",
|
|
5931
|
+
marketMain: "_marketMain_yups9_32",
|
|
5932
|
+
marketName: "_marketName_yups9_39",
|
|
5933
|
+
marketStatus: "_marketStatus_yups9_48",
|
|
5934
|
+
marketStateText: "_marketStateText_yups9_58",
|
|
5935
|
+
marketSep: "_marketSep_yups9_62",
|
|
5936
|
+
marketReason: "_marketReason_yups9_66",
|
|
5937
|
+
marketVersion: "_marketVersion_yups9_72",
|
|
5938
|
+
marketLocalTag: "_marketLocalTag_yups9_94",
|
|
5939
|
+
marketEnd: "_marketEnd_yups9_105",
|
|
5940
|
+
marketSwitchSeat: "_marketSwitchSeat_yups9_112",
|
|
5941
|
+
marketActions: "_marketActions_yups9_125",
|
|
5942
|
+
marketUpdateAction: "_marketUpdateAction_yups9_131",
|
|
5943
|
+
marketSelfDivider: "_marketSelfDivider_yups9_137",
|
|
5944
|
+
marketSection: "_marketSection_yups9_143",
|
|
5945
|
+
marketSectionHead: "_marketSectionHead_yups9_150",
|
|
5946
|
+
marketSectionIcon: "_marketSectionIcon_yups9_156",
|
|
5947
|
+
marketSectionTitle: "_marketSectionTitle_yups9_163",
|
|
5948
|
+
marketSectionCount: "_marketSectionCount_yups9_169",
|
|
5949
|
+
marketSectionAction: "_marketSectionAction_yups9_175",
|
|
5950
|
+
marketSectionQuiet: "_marketSectionQuiet_yups9_183",
|
|
5951
|
+
marketProgress: "_marketProgress_yups9_196",
|
|
5952
|
+
marketNote: "_marketNote_yups9_206",
|
|
5953
|
+
marketFailure: "_marketFailure_yups9_213",
|
|
5954
|
+
marketEmpty: "_marketEmpty_yups9_220",
|
|
5955
|
+
marketPage: "_marketPage_yups9_225",
|
|
5956
|
+
marketPageHead: "_marketPageHead_yups9_243",
|
|
5957
|
+
marketPageTitle: "_marketPageTitle_yups9_251",
|
|
5958
|
+
marketPageIntro: "_marketPageIntro_yups9_256",
|
|
5959
|
+
marketPageTools: "_marketPageTools_yups9_262",
|
|
5960
|
+
marketPanel: "_marketPanel_yups9_271",
|
|
5961
|
+
marketTabs: "_marketTabs_yups9_281",
|
|
5962
|
+
marketTabList: "_marketTabList_yups9_286",
|
|
5963
|
+
marketAddButton: "_marketAddButton_yups9_291",
|
|
5964
|
+
marketEmptyTitle: "_marketEmptyTitle_yups9_308",
|
|
5965
|
+
discoverPage: "_discoverPage_yups9_313",
|
|
5966
|
+
discoverBar: "_discoverBar_yups9_320",
|
|
5967
|
+
discoverTools: "_discoverTools_yups9_327",
|
|
5968
|
+
discoverMarket: "_discoverMarket_yups9_333",
|
|
5969
|
+
discoverMarketButton: "_discoverMarketButton_yups9_338",
|
|
5970
|
+
discoverMarketName: "_discoverMarketName_yups9_345",
|
|
5971
|
+
discoverLabels: "_discoverLabels_yups9_351",
|
|
5972
|
+
discoverSort: "_discoverSort_yups9_356",
|
|
5973
|
+
discoverRefresh: "_discoverRefresh_yups9_361",
|
|
5974
|
+
discoverSearch: "_discoverSearch_yups9_365",
|
|
5975
|
+
discoverSearchField: "_discoverSearchField_yups9_373",
|
|
5976
|
+
discoverSearchFieldFilled: "_discoverSearchFieldFilled_yups9_378",
|
|
5977
|
+
discoverSearchClear: "_discoverSearchClear_yups9_387",
|
|
5978
|
+
discoverChips: "_discoverChips_yups9_438",
|
|
5979
|
+
discoverList: "_discoverList_yups9_445",
|
|
5980
|
+
discoverCard: "_discoverCard_yups9_454",
|
|
5981
|
+
discoverArtwork: "_discoverArtwork_yups9_468",
|
|
5982
|
+
discoverArtworkImage: "_discoverArtworkImage_yups9_480",
|
|
5983
|
+
discoverMain: "_discoverMain_yups9_484",
|
|
5984
|
+
discoverTitleRow: "_discoverTitleRow_yups9_492",
|
|
5985
|
+
discoverCardOpen: "_discoverCardOpen_yups9_500",
|
|
5986
|
+
discoverStrong: "_discoverStrong_yups9_531",
|
|
5987
|
+
discoverDesc: "_discoverDesc_yups9_537",
|
|
5988
|
+
discoverMeta: "_discoverMeta_yups9_546",
|
|
5989
|
+
discoverMuted: "_discoverMuted_yups9_553",
|
|
5990
|
+
discoverEnd: "_discoverEnd_yups9_559",
|
|
5991
|
+
discoverUpdateAction: "_discoverUpdateAction_yups9_568",
|
|
5992
|
+
discoverBlocked: "_discoverBlocked_yups9_573",
|
|
5993
|
+
discoverEmpty: "_discoverEmpty_yups9_578",
|
|
5994
|
+
discoverEmptyTitle: "_discoverEmptyTitle_yups9_587",
|
|
5995
|
+
discoverDetail: "_discoverDetail_yups9_597",
|
|
5996
|
+
discoverCrumb: "_discoverCrumb_yups9_603",
|
|
5997
|
+
discoverCrumbIcon: "_discoverCrumbIcon_yups9_626",
|
|
5998
|
+
discoverDetailHead: "_discoverDetailHead_yups9_630",
|
|
5999
|
+
discoverDetailTitle: "_discoverDetailTitle_yups9_636",
|
|
6000
|
+
discoverDetailText: "_discoverDetailText_yups9_642",
|
|
6001
|
+
discoverDetailPanel: "_discoverDetailPanel_yups9_649",
|
|
6002
|
+
discoverDetailTabs: "_discoverDetailTabs_yups9_656",
|
|
6003
|
+
discoverDetailTabList: "_discoverDetailTabList_yups9_661",
|
|
6004
|
+
discoverDocBody: "_discoverDocBody_yups9_666",
|
|
6005
|
+
discoverDocNotice: "_discoverDocNotice_yups9_671",
|
|
6006
|
+
discoverSection: "_discoverSection_yups9_677",
|
|
6007
|
+
discoverSectionTitle: "_discoverSectionTitle_yups9_684",
|
|
6008
|
+
discoverFacts: "_discoverFacts_yups9_690",
|
|
6009
|
+
discoverFactRow: "_discoverFactRow_yups9_695",
|
|
6010
|
+
discoverFactKind: "_discoverFactKind_yups9_705",
|
|
6011
|
+
discoverFactValue: "_discoverFactValue_yups9_711",
|
|
6012
|
+
discoverCode: "_discoverCode_yups9_719",
|
|
6013
|
+
discoverTags: "_discoverTags_yups9_728",
|
|
6014
|
+
discoverLink: "_discoverLink_yups9_735",
|
|
6015
|
+
discoverVersions: "_discoverVersions_yups9_745",
|
|
6016
|
+
discoverVersionRow: "_discoverVersionRow_yups9_753",
|
|
6017
|
+
discoverVersionName: "_discoverVersionName_yups9_761",
|
|
6018
|
+
discoverError: "_discoverError_yups9_766",
|
|
6019
|
+
discoverFailure: "_discoverFailure_yups9_775",
|
|
6020
|
+
discoverLoading: "_discoverLoading_yups9_781",
|
|
6021
|
+
discoverNotice: "_discoverNotice_yups9_790",
|
|
6022
|
+
discoverMore: "_discoverMore_yups9_808",
|
|
6023
|
+
discoverTransport: "_discoverTransport_yups9_812",
|
|
6024
|
+
discoverTransportHead: "_discoverTransportHead_yups9_818",
|
|
6025
|
+
discoverTransportTitle: "_discoverTransportTitle_yups9_825",
|
|
6026
|
+
discoverTransportKind: "_discoverTransportKind_yups9_830",
|
|
6027
|
+
discoverTransportState: "_discoverTransportState_yups9_835",
|
|
6028
|
+
discoverTransportRows: "_discoverTransportRows_yups9_843",
|
|
6029
|
+
discoverTransportRow: "_discoverTransportRow_yups9_843",
|
|
6030
|
+
discoverTransportRadio: "_discoverTransportRadio_yups9_864",
|
|
6031
|
+
discoverTransportCustom: "_discoverTransportCustom_yups9_904",
|
|
6032
|
+
discoverTransportInput: "_discoverTransportInput_yups9_910",
|
|
6033
|
+
discoverInstallBar: "_discoverInstallBar_yups9_915",
|
|
6034
|
+
discoverInstallText: "_discoverInstallText_yups9_926",
|
|
6035
|
+
discoverDialog: "_discoverDialog_yups9_932",
|
|
6036
|
+
discoverDialogBody: "_discoverDialogBody_yups9_936",
|
|
6037
|
+
discoverSourceList: "_discoverSourceList_yups9_942",
|
|
6038
|
+
discoverSourceRow: "_discoverSourceRow_yups9_950",
|
|
6039
|
+
discoverSourceConfirm: "_discoverSourceConfirm_yups9_959",
|
|
6040
|
+
discoverSourcePick: "_discoverSourcePick_yups9_965",
|
|
6041
|
+
discoverSourceRadio: "_discoverSourceRadio_yups9_974",
|
|
6042
|
+
discoverSourceMain: "_discoverSourceMain_yups9_982",
|
|
6043
|
+
discoverSourceHead: "_discoverSourceHead_yups9_990",
|
|
6044
|
+
discoverSourceUrl: "_discoverSourceUrl_yups9_998",
|
|
6045
|
+
discoverSourceMore: "_discoverSourceMore_yups9_1008",
|
|
6046
|
+
discoverSourceLoading: "_discoverSourceLoading_yups9_1012",
|
|
6047
|
+
discoverSourceHint: "_discoverSourceHint_yups9_1022",
|
|
6048
|
+
discoverSourceError: "_discoverSourceError_yups9_1036",
|
|
6049
|
+
discoverSourceForm: "_discoverSourceForm_yups9_1042",
|
|
6050
|
+
discoverGrow: "_discoverGrow_yups9_1048",
|
|
6051
|
+
discoverField: "_discoverField_yups9_1053",
|
|
6052
|
+
discoverFieldLabel: "_discoverFieldLabel_yups9_1059",
|
|
6053
|
+
discoverConfirmHead: "_discoverConfirmHead_yups9_1064",
|
|
6054
|
+
discoverSkeletonFill: "_discoverSkeletonFill_yups9_1070",
|
|
6055
|
+
"wb-skeleton": "_wb-skeleton_yups9_1",
|
|
6056
|
+
discoverSkeletonBar: "_discoverSkeletonBar_yups9_1079",
|
|
6057
|
+
discoverSkeletonTitle: "_discoverSkeletonTitle_yups9_1086",
|
|
6058
|
+
discoverSkeletonDesc: "_discoverSkeletonDesc_yups9_1090"
|
|
5885
6059
|
};
|
|
5886
6060
|
//#endregion
|
|
5887
6061
|
//#region src/app/layouts/market/discover-states.tsx
|
|
@@ -5940,6 +6114,19 @@ function DiscoverNoSource({ t, onAdd }) {
|
|
|
5940
6114
|
onClick: onAdd
|
|
5941
6115
|
}, t("panels.discover.addFirstSource")));
|
|
5942
6116
|
}
|
|
6117
|
+
function DiscoverReadFailure({ t, text, auth, onRetry }) {
|
|
6118
|
+
return /* @__PURE__ */ createElement(Fragment, null, /* @__PURE__ */ createElement(DiscoverFailure, {
|
|
6119
|
+
t,
|
|
6120
|
+
text,
|
|
6121
|
+
onRetry
|
|
6122
|
+
}), auth ? /* @__PURE__ */ createElement("p", {
|
|
6123
|
+
className: MarketPage_module_default.discoverNotice,
|
|
6124
|
+
role: "note"
|
|
6125
|
+
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
6126
|
+
size: 14,
|
|
6127
|
+
"aria-hidden": "true"
|
|
6128
|
+
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.sourceAuth"))) : null);
|
|
6129
|
+
}
|
|
5943
6130
|
//#endregion
|
|
5944
6131
|
//#region src/app/layouts/rightbar/MarketStates.tsx
|
|
5945
6132
|
function MarketChecking({ t }) {
|
|
@@ -5997,6 +6184,7 @@ var PROGRESS_KEY = {
|
|
|
5997
6184
|
install: "panels.market.installing",
|
|
5998
6185
|
update: "panels.market.updating",
|
|
5999
6186
|
"update-bundle": "panels.market.updating",
|
|
6187
|
+
"install-version": "panels.market.updating",
|
|
6000
6188
|
"remove-bundle": "panels.market.uninstalling",
|
|
6001
6189
|
uninstall: "panels.market.uninstalling",
|
|
6002
6190
|
"update-dependency": "panels.market.updating",
|
|
@@ -6010,6 +6198,7 @@ var ACTION_LABEL_KEY = {
|
|
|
6010
6198
|
install: "panels.market.install",
|
|
6011
6199
|
update: "panels.market.update",
|
|
6012
6200
|
"update-bundle": "panels.market.update",
|
|
6201
|
+
"install-version": "panels.market.update",
|
|
6013
6202
|
"remove-bundle": "panels.market.uninstall",
|
|
6014
6203
|
uninstall: "panels.market.uninstall",
|
|
6015
6204
|
"update-dependency": "panels.market.update",
|
|
@@ -6158,41 +6347,6 @@ function SharedSection({ t, rows, pending, failureOf, act }) {
|
|
|
6158
6347
|
}))));
|
|
6159
6348
|
}
|
|
6160
6349
|
//#endregion
|
|
6161
|
-
//#region src/app/layouts/rightbar/panel-write.ts
|
|
6162
|
-
var PANEL_SETTLE_MS = 4e3;
|
|
6163
|
-
function rowKey(row) {
|
|
6164
|
-
return `${row.id}:${row.shown ? "1" : "0"}:${row.source}`;
|
|
6165
|
-
}
|
|
6166
|
-
function rowKeys(rows) {
|
|
6167
|
-
return rows.map(rowKey).join(",");
|
|
6168
|
-
}
|
|
6169
|
-
function panelBoardSignature(units, plugins, own) {
|
|
6170
|
-
return `${rowKeys(units)}|${rowKeys(plugins)}|${own ? "1" : "0"}`;
|
|
6171
|
-
}
|
|
6172
|
-
function machineBoardSignature(defaults, changed) {
|
|
6173
|
-
const counts = Object.entries(changed).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([id, count]) => `${id}:${String(count)}`);
|
|
6174
|
-
return `${[...defaults].sort().join(",")}|${counts.join(",")}`;
|
|
6175
|
-
}
|
|
6176
|
-
function nextPending(pending, signature) {
|
|
6177
|
-
return pending !== null && pending !== signature ? null : pending;
|
|
6178
|
-
}
|
|
6179
|
-
function useBoardSettle(signature) {
|
|
6180
|
-
const [held, setHeld] = useState(null);
|
|
6181
|
-
useEffect(() => {
|
|
6182
|
-
setHeld((current) => nextPending(current, signature));
|
|
6183
|
-
}, [signature]);
|
|
6184
|
-
useEffect(() => {
|
|
6185
|
-
if (held === null) return void 0;
|
|
6186
|
-
const timer = setTimeout(() => setHeld(null), PANEL_SETTLE_MS);
|
|
6187
|
-
return () => clearTimeout(timer);
|
|
6188
|
-
}, [held]);
|
|
6189
|
-
return {
|
|
6190
|
-
pending: held !== null,
|
|
6191
|
-
begin: () => setHeld(signature),
|
|
6192
|
-
clear: () => setHeld(null)
|
|
6193
|
-
};
|
|
6194
|
-
}
|
|
6195
|
-
//#endregion
|
|
6196
6350
|
//#region src/shared/components/Tip.tsx
|
|
6197
6351
|
/**
|
|
6198
6352
|
* dsh `Tooltip` 的外壳默认值版:说明统一按右栏习惯(`bottom` / `end` / `gap 6` / 挂 body)来,其余 prop 原样转给 `Tooltip`。
|
|
@@ -6339,12 +6493,12 @@ function MarketLine({ t, row, pending, failure, onAct, onDefault, boardBusy }) {
|
|
|
6339
6493
|
}
|
|
6340
6494
|
}));
|
|
6341
6495
|
}
|
|
6342
|
-
function MarketSection({ t, titleKey, icon, rows, pending, failureOf, act, confirmActions, onConfirming, onDefault, boardBusy }) {
|
|
6343
|
-
if (rows.length === 0) return null;
|
|
6496
|
+
function MarketSection({ t, titleKey, icon, rows, pending, failureOf, act, confirmActions, onConfirming, onDefault, boardBusy, headAction, keepHead }) {
|
|
6497
|
+
if (rows.length === 0 && keepHead !== true) return null;
|
|
6344
6498
|
return /* @__PURE__ */ createElement("section", { className: MarketPage_module_default.marketSection }, titleKey === void 0 ? null : /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ createElement("span", {
|
|
6345
6499
|
className: MarketPage_module_default.marketSectionIcon,
|
|
6346
6500
|
"aria-hidden": "true"
|
|
6347
|
-
}, icon), /* @__PURE__ */ createElement("h2", { className: MarketPage_module_default.marketSectionTitle }, t(titleKey)), rows.length === 0 ? null : /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.
|
|
6501
|
+
}, icon), /* @__PURE__ */ createElement("h2", { className: MarketPage_module_default.marketSectionTitle }, t(titleKey)), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.marketSectionCount }, rows.length), headAction === void 0 ? null : /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.marketSectionAction }, headAction)), rows.length === 0 ? null : /* @__PURE__ */ createElement("ul", { className: MarketPage_module_default.marketList }, rows.map((row) => /* @__PURE__ */ createElement(MarketLine, {
|
|
6348
6502
|
key: row.id,
|
|
6349
6503
|
t,
|
|
6350
6504
|
row,
|
|
@@ -6509,7 +6663,9 @@ function problemKey(problem) {
|
|
|
6509
6663
|
function heldWizardPhase(phase, classifying) {
|
|
6510
6664
|
return classifying && (phase === "preview" || phase === "idle") ? "inspecting" : phase;
|
|
6511
6665
|
}
|
|
6666
|
+
var CREDENTIAL_TEXT = /authentication failed|could not read (username|password)|permission denied \(publickey\)|terminal prompts disabled|host key verification failed|repository not found|no such identity/i;
|
|
6512
6667
|
var FAILURE_KEYS = {
|
|
6668
|
+
credentials: "panels.market.add.failureCredentials",
|
|
6513
6669
|
network: "panels.market.add.failureNetwork",
|
|
6514
6670
|
"spec-host": "panels.market.add.failureNetworkHost",
|
|
6515
6671
|
"not-found": "panels.market.add.failureNotFound",
|
|
@@ -6531,9 +6687,15 @@ var FAILURE_KEYS = {
|
|
|
6531
6687
|
"stop-profile": "panels.market.add.failureGeneric",
|
|
6532
6688
|
"stale-approval": "panels.market.add.failureGeneric"
|
|
6533
6689
|
};
|
|
6690
|
+
function needsCredentials(change) {
|
|
6691
|
+
const text = `${change.errorDetail ?? ""}\n${change.packageResult?.output ?? ""}`;
|
|
6692
|
+
return CREDENTIAL_TEXT.test(text);
|
|
6693
|
+
}
|
|
6534
6694
|
function failureCode(change) {
|
|
6535
6695
|
if (change.failedAt === "spec-host") return "spec-host";
|
|
6536
|
-
|
|
6696
|
+
const code = change.errorCode ?? change.packageResult?.kind ?? change.application;
|
|
6697
|
+
if (code === "operation-error" && needsCredentials(change)) return "credentials";
|
|
6698
|
+
return code;
|
|
6537
6699
|
}
|
|
6538
6700
|
function failureReasonKey(code) {
|
|
6539
6701
|
return FAILURE_KEYS[code];
|
|
@@ -6608,7 +6770,11 @@ function updateVerdictText(verdict, t, input) {
|
|
|
6608
6770
|
}
|
|
6609
6771
|
//#endregion
|
|
6610
6772
|
//#region src/app/layouts/rightbar/market-act.ts
|
|
6611
|
-
var STEADY_ACTIONS = /* @__PURE__ */ new Set([
|
|
6773
|
+
var STEADY_ACTIONS = /* @__PURE__ */ new Set([
|
|
6774
|
+
"update",
|
|
6775
|
+
"update-bundle",
|
|
6776
|
+
"install-version"
|
|
6777
|
+
]);
|
|
6612
6778
|
function assumedApplied(action) {
|
|
6613
6779
|
return action === "update" || action === "update-dependency" || action === "update-plugin" || REMOVAL_ACTIONS.has(action);
|
|
6614
6780
|
}
|
|
@@ -6652,18 +6818,34 @@ function marketActOf(options) {
|
|
|
6652
6818
|
seats.setConfirming(null);
|
|
6653
6819
|
seats.setFailed(null);
|
|
6654
6820
|
seats.setNotice(null);
|
|
6821
|
+
const dependency = action === "update-dependency";
|
|
6822
|
+
const byName = action === "remove-bundle" || action === "update-plugin" || action === "uninstall-plugin" || action === "update-workbench" || action === "migrate-workbench";
|
|
6823
|
+
const market = action === "install-version" ? row?.market : void 0;
|
|
6824
|
+
const marketSpec = market === void 0 || row?.pkg === void 0 ? void 0 : marketInstallTarget(row.pkg, market.version, market.source).spec;
|
|
6825
|
+
if (action === "install-version" && marketSpec === void 0) {
|
|
6826
|
+
seats.setPending(null);
|
|
6827
|
+
seats.setFailed({
|
|
6828
|
+
id,
|
|
6829
|
+
message: t("panels.market.failed", { reason: t("panels.market.noMarketSource") })
|
|
6830
|
+
});
|
|
6831
|
+
return;
|
|
6832
|
+
}
|
|
6655
6833
|
const outcome = await send(action === "dismiss-followup" ? {
|
|
6656
6834
|
action,
|
|
6657
6835
|
id: row?.followUp?.id ?? ""
|
|
6658
|
-
} :
|
|
6836
|
+
} : dependency ? {
|
|
6659
6837
|
action,
|
|
6660
6838
|
id
|
|
6661
|
-
} :
|
|
6839
|
+
} : byName ? {
|
|
6662
6840
|
action,
|
|
6663
6841
|
name: row?.pkg ?? ""
|
|
6664
|
-
} : {
|
|
6842
|
+
} : marketSpec === void 0 ? {
|
|
6665
6843
|
action,
|
|
6666
6844
|
unit: id
|
|
6845
|
+
} : {
|
|
6846
|
+
action,
|
|
6847
|
+
spec: marketSpec,
|
|
6848
|
+
requestId: globalThis.crypto.randomUUID()
|
|
6667
6849
|
});
|
|
6668
6850
|
if (!outcome.ok) {
|
|
6669
6851
|
onChanged({ force: true });
|
|
@@ -6728,6 +6910,99 @@ function marketActOf(options) {
|
|
|
6728
6910
|
});
|
|
6729
6911
|
};
|
|
6730
6912
|
}
|
|
6913
|
+
//#endregion
|
|
6914
|
+
//#region src/app/layouts/rightbar/panel-write.ts
|
|
6915
|
+
var PANEL_SETTLE_MS = 4e3;
|
|
6916
|
+
function rowKey(row) {
|
|
6917
|
+
return `${row.id}:${row.shown ? "1" : "0"}:${row.source}`;
|
|
6918
|
+
}
|
|
6919
|
+
function rowKeys(rows) {
|
|
6920
|
+
return rows.map(rowKey).join(",");
|
|
6921
|
+
}
|
|
6922
|
+
function panelBoardSignature(units, plugins, own) {
|
|
6923
|
+
return `${rowKeys(units)}|${rowKeys(plugins)}|${own ? "1" : "0"}`;
|
|
6924
|
+
}
|
|
6925
|
+
function machineBoardSignature(defaults, changed) {
|
|
6926
|
+
const counts = Object.entries(changed).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([id, count]) => `${id}:${String(count)}`);
|
|
6927
|
+
return `${[...defaults].sort().join(",")}|${counts.join(",")}`;
|
|
6928
|
+
}
|
|
6929
|
+
function nextPending(pending, signature) {
|
|
6930
|
+
return pending !== null && pending !== signature ? null : pending;
|
|
6931
|
+
}
|
|
6932
|
+
function useBoardSettle(signature) {
|
|
6933
|
+
const [held, setHeld] = useState(null);
|
|
6934
|
+
useEffect(() => {
|
|
6935
|
+
setHeld((current) => nextPending(current, signature));
|
|
6936
|
+
}, [signature]);
|
|
6937
|
+
useEffect(() => {
|
|
6938
|
+
if (held === null) return void 0;
|
|
6939
|
+
const timer = setTimeout(() => setHeld(null), PANEL_SETTLE_MS);
|
|
6940
|
+
return () => clearTimeout(timer);
|
|
6941
|
+
}, [held]);
|
|
6942
|
+
return {
|
|
6943
|
+
pending: held !== null,
|
|
6944
|
+
begin: () => setHeld(signature),
|
|
6945
|
+
clear: () => setHeld(null)
|
|
6946
|
+
};
|
|
6947
|
+
}
|
|
6948
|
+
//#endregion
|
|
6949
|
+
//#region src/app/layouts/rightbar/use-market-default.ts
|
|
6950
|
+
function useMarketDefault(input) {
|
|
6951
|
+
const { t, mocked, defaults, changed, setNotice } = input;
|
|
6952
|
+
const boardWrite = useHostWrite({
|
|
6953
|
+
channel: "prefs",
|
|
6954
|
+
resource: "panels",
|
|
6955
|
+
networkText: t("panels.failed")
|
|
6956
|
+
});
|
|
6957
|
+
const [writing, setWriting] = useState(false);
|
|
6958
|
+
const settle = useBoardSettle(machineBoardSignature(defaults, changed));
|
|
6959
|
+
const setDefault = async (id, next) => {
|
|
6960
|
+
if (mocked) return;
|
|
6961
|
+
setWriting(true);
|
|
6962
|
+
settle.begin();
|
|
6963
|
+
const outcome = await boardWrite.send({
|
|
6964
|
+
action: next ? "show" : "hide",
|
|
6965
|
+
id,
|
|
6966
|
+
scope: "machine"
|
|
6967
|
+
});
|
|
6968
|
+
setWriting(false);
|
|
6969
|
+
if (!outcome.ok) {
|
|
6970
|
+
settle.clear();
|
|
6971
|
+
setNotice(t("panels.failed"));
|
|
6972
|
+
}
|
|
6973
|
+
};
|
|
6974
|
+
return {
|
|
6975
|
+
pending: writing || settle.pending,
|
|
6976
|
+
setDefault
|
|
6977
|
+
};
|
|
6978
|
+
}
|
|
6979
|
+
var market_check_module_default = {
|
|
6980
|
+
check: "_check_1g6tv_1",
|
|
6981
|
+
status: "_status_1g6tv_8",
|
|
6982
|
+
button: "_button_1g6tv_15",
|
|
6983
|
+
icon: "_icon_1g6tv_22"
|
|
6984
|
+
};
|
|
6985
|
+
//#endregion
|
|
6986
|
+
//#region src/app/layouts/market/market-check.tsx
|
|
6987
|
+
function MarketCheck({ t, checkedAt, checking, failed, disabled, onCheck }) {
|
|
6988
|
+
const status = checking ? t("panels.market.checkingNow") : failed ? t("panels.market.checkFailed") : checkedAt === null ? null : t("panels.market.checkedAt", { time: checkedAgo(checkedAt, t) });
|
|
6989
|
+
return /* @__PURE__ */ createElement("span", { className: market_check_module_default.check }, status === null ? null : /* @__PURE__ */ createElement("span", {
|
|
6990
|
+
className: market_check_module_default.status,
|
|
6991
|
+
"aria-live": "polite"
|
|
6992
|
+
}, status), /* @__PURE__ */ createElement(Tip, { label: t("panels.market.checkUpdates") }, /* @__PURE__ */ createElement(Button, {
|
|
6993
|
+
type: "button",
|
|
6994
|
+
variant: "ghost",
|
|
6995
|
+
size: "sm",
|
|
6996
|
+
className: market_check_module_default.button,
|
|
6997
|
+
"aria-label": t("panels.market.checkUpdates"),
|
|
6998
|
+
disabled: disabled || checking,
|
|
6999
|
+
icon: /* @__PURE__ */ createElement("span", {
|
|
7000
|
+
className: `${market_check_module_default.icon}${checking ? " wb-spinning" : ""}`,
|
|
7001
|
+
"aria-hidden": "true"
|
|
7002
|
+
}, /* @__PURE__ */ createElement(IconRefreshOutlineRegular, { size: 14 })),
|
|
7003
|
+
onClick: onCheck
|
|
7004
|
+
})));
|
|
7005
|
+
}
|
|
6731
7006
|
var PanelFoot_module_default = {
|
|
6732
7007
|
foot: "_foot_1ud1j_1",
|
|
6733
7008
|
footText: "_footText_1ud1j_13",
|
|
@@ -6745,6 +7020,7 @@ var CONFIRM_UNINSTALL = [
|
|
|
6745
7020
|
"remove-bundle",
|
|
6746
7021
|
"uninstall-plugin"
|
|
6747
7022
|
];
|
|
7023
|
+
var NO_ROWS = [];
|
|
6748
7024
|
function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
|
|
6749
7025
|
const [acknowledged, setAcknowledged] = useState(false);
|
|
6750
7026
|
return /* @__PURE__ */ createElement(RiskConfirmation, {
|
|
@@ -6761,9 +7037,12 @@ function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
|
|
|
6761
7037
|
onConfirm
|
|
6762
7038
|
});
|
|
6763
7039
|
}
|
|
6764
|
-
function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy }) {
|
|
7040
|
+
function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, check }) {
|
|
6765
7041
|
const failureOf = (id) => failed?.id === id ? failed.message : null;
|
|
6766
7042
|
const foot = marketFootVisible(shown, installedList);
|
|
7043
|
+
const sections = marketSections(marketOrder([...shown, ...installedList], (row) => marketRowTitle(row, t)));
|
|
7044
|
+
const installed = sections.find((section) => section.id === "installed");
|
|
7045
|
+
const pendingSection = sections.find((section) => section.id === "not-installed");
|
|
6767
7046
|
return /* @__PURE__ */ createElement(Fragment, null, notice === null ? null : /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.marketNote }, notice), /* @__PURE__ */ createElement(MarketSection, {
|
|
6768
7047
|
t,
|
|
6769
7048
|
rows: self === void 0 ? [] : [self],
|
|
@@ -6777,12 +7056,25 @@ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending
|
|
|
6777
7056
|
}), self === void 0 ? null : /* @__PURE__ */ createElement("div", {
|
|
6778
7057
|
className: MarketPage_module_default.marketSelfDivider,
|
|
6779
7058
|
"aria-hidden": "true"
|
|
6780
|
-
}),
|
|
6781
|
-
|
|
7059
|
+
}), /* @__PURE__ */ createElement(MarketSection, {
|
|
7060
|
+
t,
|
|
7061
|
+
titleKey: "panels.market.sectionInstalled",
|
|
7062
|
+
icon: marketSectionIcon("installed"),
|
|
7063
|
+
rows: installed?.rows ?? NO_ROWS,
|
|
7064
|
+
keepHead: true,
|
|
7065
|
+
headAction: check,
|
|
7066
|
+
onDefault: setDefault,
|
|
7067
|
+
boardBusy,
|
|
7068
|
+
pending,
|
|
7069
|
+
failureOf,
|
|
7070
|
+
act,
|
|
7071
|
+
confirmActions: CONFIRM_UNINSTALL,
|
|
7072
|
+
onConfirming
|
|
7073
|
+
}), pendingSection === void 0 ? null : /* @__PURE__ */ createElement(MarketSection, {
|
|
6782
7074
|
t,
|
|
6783
|
-
titleKey:
|
|
6784
|
-
icon: marketSectionIcon(
|
|
6785
|
-
rows:
|
|
7075
|
+
titleKey: pendingSection.titleKey,
|
|
7076
|
+
icon: marketSectionIcon("pending"),
|
|
7077
|
+
rows: pendingSection.rows,
|
|
6786
7078
|
onDefault: setDefault,
|
|
6787
7079
|
boardBusy,
|
|
6788
7080
|
pending,
|
|
@@ -6790,11 +7082,12 @@ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending
|
|
|
6790
7082
|
act,
|
|
6791
7083
|
confirmActions: CONFIRM_UNINSTALL,
|
|
6792
7084
|
onConfirming
|
|
6793
|
-
})
|
|
7085
|
+
}), /* @__PURE__ */ createElement(MarketSection, {
|
|
6794
7086
|
t,
|
|
6795
7087
|
titleKey: "panels.market.sectionPlugins",
|
|
6796
7088
|
icon: marketSectionIcon("plugins"),
|
|
6797
7089
|
rows: pluginList,
|
|
7090
|
+
headAction: check,
|
|
6798
7091
|
onDefault: setDefault,
|
|
6799
7092
|
boardBusy,
|
|
6800
7093
|
pending,
|
|
@@ -6843,7 +7136,7 @@ function useMarketScene(input) {
|
|
|
6843
7136
|
busyId
|
|
6844
7137
|
};
|
|
6845
7138
|
}
|
|
6846
|
-
function MarketView({ t, titleOf, manifests, installable, capabilities, freshness, onChanged, onPending, updates, installed, installedRead, workbench, selfUpdate, plugins, settling, mock, defaults = [], changed = {} }) {
|
|
7139
|
+
function MarketView({ t, titleOf, manifests, installable, capabilities, freshness, onChanged, onPending, updates, updatesCheckedAt = null, updatesFailed = false, installed, installedRead, workbench, selfUpdate, plugins, settling, mock, defaults = [], changed = {} }) {
|
|
6847
7140
|
const { pending, setPending, confirming, setConfirming, failed, setFailed, notice, setNotice } = useMarketTransient({
|
|
6848
7141
|
mock,
|
|
6849
7142
|
onPending
|
|
@@ -6868,29 +7161,14 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
|
|
|
6868
7161
|
channel: "provision",
|
|
6869
7162
|
networkText: t("panels.failed")
|
|
6870
7163
|
});
|
|
6871
|
-
const
|
|
6872
|
-
|
|
6873
|
-
|
|
6874
|
-
|
|
7164
|
+
const { pending: defaultPending, setDefault } = useMarketDefault({
|
|
7165
|
+
t,
|
|
7166
|
+
mocked: mock !== void 0,
|
|
7167
|
+
defaults,
|
|
7168
|
+
changed,
|
|
7169
|
+
setNotice
|
|
6875
7170
|
});
|
|
6876
|
-
const
|
|
6877
|
-
const settleDefault = useBoardSettle(machineBoardSignature(defaults, changed));
|
|
6878
|
-
const { busy: boardBusy } = useVisibleBusy(writingDefault || settleDefault.pending, 500);
|
|
6879
|
-
const setDefault = async (id, next) => {
|
|
6880
|
-
if (mock !== void 0) return;
|
|
6881
|
-
setWritingDefault(true);
|
|
6882
|
-
settleDefault.begin();
|
|
6883
|
-
const outcome = await boardWrite.send({
|
|
6884
|
-
action: next ? "show" : "hide",
|
|
6885
|
-
id,
|
|
6886
|
-
scope: "machine"
|
|
6887
|
-
});
|
|
6888
|
-
setWritingDefault(false);
|
|
6889
|
-
if (!outcome.ok) {
|
|
6890
|
-
settleDefault.clear();
|
|
6891
|
-
setNotice(t("panels.failed"));
|
|
6892
|
-
}
|
|
6893
|
-
};
|
|
7171
|
+
const { busy: boardBusy } = useVisibleBusy(defaultPending, 500);
|
|
6894
7172
|
const pendingRow = pendingRowOf({
|
|
6895
7173
|
pending,
|
|
6896
7174
|
removing,
|
|
@@ -6937,6 +7215,15 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
|
|
|
6937
7215
|
});
|
|
6938
7216
|
const settled = marketSettled(freshness, installedRead);
|
|
6939
7217
|
const nothing = shown.length === 0 && self === void 0 && installedList.length === 0 && pluginList.length === 0;
|
|
7218
|
+
const { busy: checkingShown } = useVisibleBusy(freshness.checking, 500);
|
|
7219
|
+
const check = /* @__PURE__ */ createElement(MarketCheck, {
|
|
7220
|
+
t,
|
|
7221
|
+
checkedAt: updatesCheckedAt,
|
|
7222
|
+
checking: checkingShown,
|
|
7223
|
+
failed: updatesFailed,
|
|
7224
|
+
disabled: pending !== null,
|
|
7225
|
+
onCheck: () => onChanged({ force: true })
|
|
7226
|
+
});
|
|
6940
7227
|
if (!settled || (settling?.size ?? 0) > 0 && shown.length === 0 && installedList.length === 0) return /* @__PURE__ */ createElement(MarketChecking, { t });
|
|
6941
7228
|
if (nothing) return /* @__PURE__ */ createElement(MarketEmpty, { t });
|
|
6942
7229
|
return /* @__PURE__ */ createElement(Fragment, null, /* @__PURE__ */ createElement(MarketBody, {
|
|
@@ -6952,20 +7239,31 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
|
|
|
6952
7239
|
act,
|
|
6953
7240
|
onConfirming: setConfirming,
|
|
6954
7241
|
setDefault,
|
|
6955
|
-
boardBusy
|
|
6956
|
-
|
|
7242
|
+
boardBusy,
|
|
7243
|
+
check
|
|
7244
|
+
}), /* @__PURE__ */ createElement(UninstallConfirm, {
|
|
7245
|
+
t,
|
|
7246
|
+
confirming,
|
|
7247
|
+
row: confirmingRow,
|
|
7248
|
+
onClose: () => setConfirming(null),
|
|
7249
|
+
act,
|
|
7250
|
+
rowById
|
|
7251
|
+
}));
|
|
7252
|
+
}
|
|
7253
|
+
function UninstallConfirm({ t, confirming, row, onClose, act, rowById }) {
|
|
7254
|
+
return /* @__PURE__ */ createElement(ConfirmUninstall, {
|
|
6957
7255
|
key: confirming ?? "",
|
|
6958
7256
|
t,
|
|
6959
|
-
name:
|
|
6960
|
-
onCancel:
|
|
7257
|
+
name: row === void 0 ? null : marketRowTitle(row, t),
|
|
7258
|
+
onCancel: onClose,
|
|
6961
7259
|
onConfirm: () => {
|
|
6962
7260
|
const id = confirming;
|
|
6963
|
-
|
|
7261
|
+
onClose();
|
|
6964
7262
|
if (id === null) return;
|
|
6965
|
-
const
|
|
6966
|
-
act(id,
|
|
7263
|
+
const target = rowById.get(id);
|
|
7264
|
+
act(id, target?.plugin === true ? "uninstall-plugin" : target?.pkg === void 0 ? "uninstall" : "remove-bundle");
|
|
6967
7265
|
}
|
|
6968
|
-
})
|
|
7266
|
+
});
|
|
6969
7267
|
}
|
|
6970
7268
|
//#endregion
|
|
6971
7269
|
//#region ../../node_modules/.pnpm/dayjs@1.11.23/node_modules/dayjs/plugin/localizedFormat.js
|
|
@@ -7239,16 +7537,20 @@ function MarketIcon({ src, size = ICON }) {
|
|
|
7239
7537
|
onError: () => setFailed(src)
|
|
7240
7538
|
});
|
|
7241
7539
|
}
|
|
7242
|
-
function EntryAction({ t, entry, title, onInstall, onShowInstalled }) {
|
|
7540
|
+
function EntryAction({ t, entry, title, onInstall, onShowInstalled, installDisabled = false }) {
|
|
7243
7541
|
const latest = latestVersionOf(entry);
|
|
7244
7542
|
if (latest === void 0) return null;
|
|
7245
|
-
if (latest.install === "installed" || latest.install === "update-available")
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
|
|
7543
|
+
if (latest.install === "installed" || latest.install === "update-available") {
|
|
7544
|
+
const update = latest.install === "update-available";
|
|
7545
|
+
return /* @__PURE__ */ createElement(Button, {
|
|
7546
|
+
type: "button",
|
|
7547
|
+
variant: "ghost",
|
|
7548
|
+
size: "sm",
|
|
7549
|
+
className: update ? MarketPage_module_default.discoverUpdateAction : void 0,
|
|
7550
|
+
"aria-label": t("panels.discover.openInstalled", { name: title }),
|
|
7551
|
+
onClick: () => onShowInstalled(entry.name)
|
|
7552
|
+
}, t(update ? "panels.discover.cardUpdate" : "panels.discover.cardInstalled"));
|
|
7553
|
+
}
|
|
7252
7554
|
if (latest.compat === "incompatible") return /* @__PURE__ */ createElement(Tooltip, {
|
|
7253
7555
|
label: t("panels.discover.noCompatibleVersion", { runtime: latest.engines?.dsh ?? "" }),
|
|
7254
7556
|
side: "bottom",
|
|
@@ -7266,11 +7568,12 @@ function EntryAction({ t, entry, title, onInstall, onShowInstalled }) {
|
|
|
7266
7568
|
type: "button",
|
|
7267
7569
|
variant: "outline",
|
|
7268
7570
|
size: "sm",
|
|
7571
|
+
disabled: installDisabled,
|
|
7269
7572
|
"aria-label": t("panels.discover.installTitle", { name: title }),
|
|
7270
7573
|
onClick: () => onInstall(entry, latest)
|
|
7271
7574
|
}, t("panels.discover.cardInstall"));
|
|
7272
7575
|
}
|
|
7273
|
-
function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled }) {
|
|
7576
|
+
function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled, installDisabled = false }) {
|
|
7274
7577
|
const title = displayTitleOf(entry, locale);
|
|
7275
7578
|
const latest = latestVersionOf(entry);
|
|
7276
7579
|
const description = marketText(entry.description, locale);
|
|
@@ -7295,10 +7598,11 @@ function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled }) {
|
|
|
7295
7598
|
entry,
|
|
7296
7599
|
title,
|
|
7297
7600
|
onInstall,
|
|
7298
|
-
onShowInstalled
|
|
7601
|
+
onShowInstalled,
|
|
7602
|
+
installDisabled
|
|
7299
7603
|
})));
|
|
7300
7604
|
}
|
|
7301
|
-
function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled }) {
|
|
7605
|
+
function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled, installDisabled }) {
|
|
7302
7606
|
return /* @__PURE__ */ createElement("ul", { className: MarketPage_module_default.discoverList }, entries.map((entry) => /* @__PURE__ */ createElement(EntryCard, {
|
|
7303
7607
|
key: entry.name,
|
|
7304
7608
|
t,
|
|
@@ -7306,12 +7610,13 @@ function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled }
|
|
|
7306
7610
|
entry,
|
|
7307
7611
|
onOpen,
|
|
7308
7612
|
onInstall,
|
|
7309
|
-
onShowInstalled
|
|
7613
|
+
onShowInstalled,
|
|
7614
|
+
installDisabled: installDisabled === true
|
|
7310
7615
|
})));
|
|
7311
7616
|
}
|
|
7312
7617
|
//#endregion
|
|
7313
7618
|
//#region src/app/layouts/market/discover-versions.tsx
|
|
7314
|
-
function DiscoverVersions({ t, locale, entry, onInstall }) {
|
|
7619
|
+
function DiscoverVersions({ t, locale, entry, onInstall, installDisabled = false }) {
|
|
7315
7620
|
const latest = latestVersionOf(entry);
|
|
7316
7621
|
return /* @__PURE__ */ createElement("ul", {
|
|
7317
7622
|
className: MarketPage_module_default.discoverVersions,
|
|
@@ -7332,6 +7637,7 @@ function DiscoverVersions({ t, locale, entry, onInstall }) {
|
|
|
7332
7637
|
type: "button",
|
|
7333
7638
|
variant: "ghost",
|
|
7334
7639
|
size: "sm",
|
|
7640
|
+
disabled: installDisabled,
|
|
7335
7641
|
"aria-label": t("panels.discover.installVersionTitle", {
|
|
7336
7642
|
name: entry.name,
|
|
7337
7643
|
version: version.version
|
|
@@ -7344,6 +7650,8 @@ function DiscoverVersions({ t, locale, entry, onInstall }) {
|
|
|
7344
7650
|
//#region ../shared/dist/contract/protocol/market-index.js
|
|
7345
7651
|
var MARKET_DISCOVER_ROUTE = "panels/market-discover";
|
|
7346
7652
|
var MARKET_DOC_ROUTE = "panels/market-doc";
|
|
7653
|
+
var MARKET_GIT_PROBE_ROUTE = "panels/git-probe";
|
|
7654
|
+
var MARKET_INSTALLED_ROUTE = "panels/market-installed";
|
|
7347
7655
|
var MARKET_PUBLISH_PREVIEW_ROUTE = "panels/market-publish-preview";
|
|
7348
7656
|
var MARKET_SOURCES_ROUTE = "panels/market-sources";
|
|
7349
7657
|
//#endregion
|
|
@@ -7354,6 +7662,12 @@ function readMarketDiscover(options = {}) {
|
|
|
7354
7662
|
function readMarketSources() {
|
|
7355
7663
|
return apiGet(MARKET_SOURCES_ROUTE);
|
|
7356
7664
|
}
|
|
7665
|
+
function readGitProbe(url) {
|
|
7666
|
+
return apiGet(MARKET_GIT_PROBE_ROUTE, { url });
|
|
7667
|
+
}
|
|
7668
|
+
function readMarketInstalled() {
|
|
7669
|
+
return apiGet(MARKET_INSTALLED_ROUTE);
|
|
7670
|
+
}
|
|
7357
7671
|
function readMarketDoc(name, version, kind) {
|
|
7358
7672
|
return apiGet(MARKET_DOC_ROUTE, {
|
|
7359
7673
|
name,
|
|
@@ -7420,13 +7734,13 @@ function DiscoverDocPanel({ t, name, version, kind }) {
|
|
|
7420
7734
|
}
|
|
7421
7735
|
//#endregion
|
|
7422
7736
|
//#region src/app/layouts/market/discover-detail.tsx
|
|
7423
|
-
function factLabel(t, fact) {
|
|
7737
|
+
function factLabel$1(t, fact) {
|
|
7424
7738
|
return t(fact.kind === "package" ? "panels.discover.factPackage" : fact.kind === "registry" ? "panels.discover.factRegistry" : fact.kind === "repository" ? "panels.discover.factRepository" : fact.kind === "commit" ? "panels.discover.factCommit" : "panels.discover.factDirectory");
|
|
7425
7739
|
}
|
|
7426
7740
|
function FactRow({ kind, children }) {
|
|
7427
7741
|
return /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverFactRow }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverFactKind }, kind), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverFactValue }, children));
|
|
7428
7742
|
}
|
|
7429
|
-
function OverviewPanel({ t, locale, entry, latest, market, onInstall }) {
|
|
7743
|
+
function OverviewPanel({ t, locale, entry, latest, market, onInstall, installDisabled }) {
|
|
7430
7744
|
const description = marketText(entry.description, locale);
|
|
7431
7745
|
const date = publishDateText(latest?.publishTimestamp, locale, "long");
|
|
7432
7746
|
const facts = latest === void 0 ? [] : sourceFactsOf(entry.name, latest);
|
|
@@ -7446,12 +7760,13 @@ function OverviewPanel({ t, locale, entry, latest, market, onInstall }) {
|
|
|
7446
7760
|
rel: "noopener noreferrer"
|
|
7447
7761
|
}, entry.homepage)), facts.map((fact) => /* @__PURE__ */ createElement(FactRow, {
|
|
7448
7762
|
key: `${fact.kind}:${fact.value}`,
|
|
7449
|
-
kind: factLabel(t, fact)
|
|
7763
|
+
kind: factLabel$1(t, fact)
|
|
7450
7764
|
}, /* @__PURE__ */ createElement("code", { className: MarketPage_module_default.discoverCode }, fact.value))), latest === void 0 ? null : /* @__PURE__ */ createElement(FactRow, { kind: t("panels.discover.factPublished") }, date), entry.category === void 0 ? null : /* @__PURE__ */ createElement(FactRow, { kind: t("panels.discover.factCategory") }, entry.category), entry.labels.length === 0 ? null : /* @__PURE__ */ createElement(FactRow, { kind: t("panels.discover.factLabels") }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTags }, entry.labels.map((label) => /* @__PURE__ */ createElement(Tag, { key: label }, label)))), /* @__PURE__ */ createElement(FactRow, { kind: t("panels.discover.factMarket") }, market))), latest === void 0 ? null : /* @__PURE__ */ createElement("section", { className: MarketPage_module_default.discoverSection }, /* @__PURE__ */ createElement("h4", { className: MarketPage_module_default.discoverSectionTitle }, t("panels.discover.detailVersions")), /* @__PURE__ */ createElement(DiscoverVersions, {
|
|
7451
7765
|
t,
|
|
7452
7766
|
locale,
|
|
7453
7767
|
entry,
|
|
7454
|
-
onInstall
|
|
7768
|
+
onInstall,
|
|
7769
|
+
installDisabled: installDisabled === true
|
|
7455
7770
|
})));
|
|
7456
7771
|
}
|
|
7457
7772
|
function DiscoverDetail(props) {
|
|
@@ -7498,7 +7813,8 @@ function DiscoverDetail(props) {
|
|
|
7498
7813
|
entry,
|
|
7499
7814
|
title,
|
|
7500
7815
|
onInstall: props.onInstall,
|
|
7501
|
-
onShowInstalled: props.onShowInstalled
|
|
7816
|
+
onShowInstalled: props.onShowInstalled,
|
|
7817
|
+
installDisabled: props.installDisabled === true
|
|
7502
7818
|
})), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverDetailTabs }, /* @__PURE__ */ createElement(SegmentedTabs, {
|
|
7503
7819
|
className: MarketPage_module_default.discoverDetailTabList,
|
|
7504
7820
|
items: tabItems,
|
|
@@ -7516,7 +7832,8 @@ function DiscoverDetail(props) {
|
|
|
7516
7832
|
entry,
|
|
7517
7833
|
latest,
|
|
7518
7834
|
market: props.market,
|
|
7519
|
-
onInstall: props.onInstall
|
|
7835
|
+
onInstall: props.onInstall,
|
|
7836
|
+
installDisabled: props.installDisabled === true
|
|
7520
7837
|
})) : null, tab === "overview" || latest === void 0 ? null : /* @__PURE__ */ createElement("div", {
|
|
7521
7838
|
className: MarketPage_module_default.discoverDetailPanel,
|
|
7522
7839
|
id: `${idPrefix}-panel-${tab}`,
|
|
@@ -7531,12 +7848,185 @@ function DiscoverDetail(props) {
|
|
|
7531
7848
|
})));
|
|
7532
7849
|
}
|
|
7533
7850
|
//#endregion
|
|
7851
|
+
//#region src/app/layouts/market/discover-installing.tsx
|
|
7852
|
+
function DiscoverInstalling({ t, name, cancelling, onCancel }) {
|
|
7853
|
+
return /* @__PURE__ */ createElement("p", {
|
|
7854
|
+
className: MarketPage_module_default.discoverInstallBar,
|
|
7855
|
+
role: "status"
|
|
7856
|
+
}, /* @__PURE__ */ createElement(Spinner, { size: 14 }), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverInstallText }, t("panels.discover.installingNamed", { name })), /* @__PURE__ */ createElement(Button, {
|
|
7857
|
+
type: "button",
|
|
7858
|
+
variant: "outline",
|
|
7859
|
+
size: "sm",
|
|
7860
|
+
disabled: cancelling,
|
|
7861
|
+
"aria-busy": cancelling,
|
|
7862
|
+
onClick: onCancel
|
|
7863
|
+
}, t(cancelling ? "panels.discover.cancelling" : "panels.discover.cancelInstall")));
|
|
7864
|
+
}
|
|
7865
|
+
//#endregion
|
|
7866
|
+
//#region src/app/layouts/market/discover-transport.tsx
|
|
7867
|
+
function stateText(t, state) {
|
|
7868
|
+
if (state === "ok") return "";
|
|
7869
|
+
if (state === "auth") return t("panels.discover.transportAuth");
|
|
7870
|
+
if (state === "unreachable") return t("panels.discover.transportUnreachable");
|
|
7871
|
+
if (state === "unknown") return t("panels.discover.transportUnknown");
|
|
7872
|
+
return t("panels.discover.transportChecking");
|
|
7873
|
+
}
|
|
7874
|
+
function kindText(t, kind) {
|
|
7875
|
+
return t(kind === "ssh" ? "panels.discover.transportSsh" : "panels.discover.transportHttps");
|
|
7876
|
+
}
|
|
7877
|
+
function DiscoverTransport({ t, transport }) {
|
|
7878
|
+
const [open, setOpen] = useState(false);
|
|
7879
|
+
const chosenRow = transport.rows.find((row) => row.url === transport.chosen);
|
|
7880
|
+
const chosenState = chosenRow === void 0 ? void 0 : transport.states[chosenRow.url] ?? "checking";
|
|
7881
|
+
const probing = transport.probing;
|
|
7882
|
+
const summary = chosenRow !== void 0 ? kindText(t, chosenRow.kind) : probing ? t("panels.discover.transportChecking") : t("panels.discover.transportNone");
|
|
7883
|
+
const summaryState = probing || chosenState === void 0 ? "" : stateText(t, chosenState);
|
|
7884
|
+
const needsAuth = transport.rows.length > 0 && transport.rows.every((row) => transport.states[row.url] === "auth") && transport.customState !== "ok";
|
|
7885
|
+
const customBusy = transport.customState === "checking";
|
|
7886
|
+
return /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverTransport }, /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverTransportHead }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportTitle }, t("panels.discover.transportTitle")), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportKind }, summary), summaryState === "" ? null : /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportState }, summaryState), /* @__PURE__ */ createElement(Button, {
|
|
7887
|
+
type: "button",
|
|
7888
|
+
variant: "ghost",
|
|
7889
|
+
size: "sm",
|
|
7890
|
+
onClick: () => setOpen((value) => !value)
|
|
7891
|
+
}, t(open ? "panels.discover.transportChangeHide" : "panels.discover.transportChange"))), open ? /* @__PURE__ */ createElement("div", {
|
|
7892
|
+
className: MarketPage_module_default.discoverTransportRows,
|
|
7893
|
+
role: "radiogroup",
|
|
7894
|
+
"aria-label": t("panels.discover.transportTitle")
|
|
7895
|
+
}, transport.rows.map((row) => {
|
|
7896
|
+
const state = transport.states[row.url] ?? "checking";
|
|
7897
|
+
const label = stateText(t, state);
|
|
7898
|
+
return /* @__PURE__ */ createElement("label", {
|
|
7899
|
+
key: row.url,
|
|
7900
|
+
className: MarketPage_module_default.discoverTransportRow,
|
|
7901
|
+
"data-state": state,
|
|
7902
|
+
title: row.url
|
|
7903
|
+
}, /* @__PURE__ */ createElement("input", {
|
|
7904
|
+
type: "radio",
|
|
7905
|
+
className: MarketPage_module_default.discoverTransportRadio,
|
|
7906
|
+
name: "discover-git-transport",
|
|
7907
|
+
value: row.url,
|
|
7908
|
+
checked: transport.chosen === row.url,
|
|
7909
|
+
onChange: () => transport.setChosen(row.url)
|
|
7910
|
+
}), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportKind }, kindText(t, row.kind)), label === "" ? null : /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportState }, label));
|
|
7911
|
+
})) : null, open ? /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverTransportCustom }, /* @__PURE__ */ createElement(TextField, {
|
|
7912
|
+
type: "text",
|
|
7913
|
+
className: MarketPage_module_default.discoverTransportInput,
|
|
7914
|
+
value: transport.custom,
|
|
7915
|
+
placeholder: t("panels.discover.transportPlaceholder"),
|
|
7916
|
+
"aria-label": t("panels.discover.transportPlaceholder"),
|
|
7917
|
+
spellCheck: false,
|
|
7918
|
+
autoComplete: "off",
|
|
7919
|
+
onChange: (event) => transport.setCustom(event.target.value),
|
|
7920
|
+
onKeyDown: (event) => {
|
|
7921
|
+
if (event.key === "Enter") transport.checkCustom();
|
|
7922
|
+
}
|
|
7923
|
+
}), /* @__PURE__ */ createElement(Button, {
|
|
7924
|
+
type: "button",
|
|
7925
|
+
variant: "outline",
|
|
7926
|
+
size: "sm",
|
|
7927
|
+
disabled: transport.custom.trim() === "" || customBusy,
|
|
7928
|
+
"aria-busy": customBusy,
|
|
7929
|
+
onClick: transport.checkCustom
|
|
7930
|
+
}, t(customBusy ? "panels.discover.transportChecking" : "panels.discover.transportTest")), transport.customState === null || stateText(t, transport.customState) === "" ? null : /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportState }, stateText(t, transport.customState))) : null, needsAuth ? /* @__PURE__ */ createElement("p", {
|
|
7931
|
+
className: MarketPage_module_default.discoverNotice,
|
|
7932
|
+
role: "note"
|
|
7933
|
+
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
7934
|
+
size: 14,
|
|
7935
|
+
"aria-hidden": "true"
|
|
7936
|
+
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.transportNeedsAuth"))) : null);
|
|
7937
|
+
}
|
|
7938
|
+
//#endregion
|
|
7939
|
+
//#region src/app/layouts/market/use-git-transport.ts
|
|
7940
|
+
function probeOrUnknown(url) {
|
|
7941
|
+
return readGitProbe(url).then((response) => response.ok ? response.status : "unknown").catch(() => "unknown");
|
|
7942
|
+
}
|
|
7943
|
+
function usable(state) {
|
|
7944
|
+
return state !== void 0 && state !== "auth" && state !== "checking";
|
|
7945
|
+
}
|
|
7946
|
+
function defaultOf(rows, states) {
|
|
7947
|
+
const readable = rows.find((row) => states[row.url] === "ok");
|
|
7948
|
+
if (readable !== void 0) return readable.url;
|
|
7949
|
+
const fallback = rows.find((row) => usable(states[row.url]));
|
|
7950
|
+
return fallback === void 0 ? null : fallback.url;
|
|
7951
|
+
}
|
|
7952
|
+
function useGitTransport(source, preferredKind) {
|
|
7953
|
+
const rows = useMemo(() => {
|
|
7954
|
+
if (source === null) return [];
|
|
7955
|
+
const candidates = gitTransportCandidates(source.url);
|
|
7956
|
+
if (preferredKind === void 0) return candidates;
|
|
7957
|
+
return [...candidates].sort((left, right) => Number(right.kind === preferredKind) - Number(left.kind === preferredKind));
|
|
7958
|
+
}, [source, preferredKind]);
|
|
7959
|
+
const [results, setResults] = useState({});
|
|
7960
|
+
const [picked, setPicked] = useState(null);
|
|
7961
|
+
const [custom, setCustom] = useState("");
|
|
7962
|
+
const [customState, setCustomState] = useState(null);
|
|
7963
|
+
const generation = useRef(0);
|
|
7964
|
+
useEffect(() => {
|
|
7965
|
+
const mirror = ++generation.current;
|
|
7966
|
+
for (const row of rows) probeOrUnknown(row.url).then((state) => {
|
|
7967
|
+
if (generation.current !== mirror) return;
|
|
7968
|
+
setResults((current) => ({
|
|
7969
|
+
...current,
|
|
7970
|
+
[row.url]: state
|
|
7971
|
+
}));
|
|
7972
|
+
});
|
|
7973
|
+
return () => {
|
|
7974
|
+
generation.current += 1;
|
|
7975
|
+
};
|
|
7976
|
+
}, [rows]);
|
|
7977
|
+
const checkCustom = useCallback(() => {
|
|
7978
|
+
const wanted = custom.trim();
|
|
7979
|
+
if (wanted === "") return;
|
|
7980
|
+
const mirror = ++generation.current;
|
|
7981
|
+
setCustomState("checking");
|
|
7982
|
+
probeOrUnknown(wanted).then((state) => {
|
|
7983
|
+
if (generation.current !== mirror) return;
|
|
7984
|
+
setCustomState(state);
|
|
7985
|
+
if (usable(state)) setPicked(wanted);
|
|
7986
|
+
});
|
|
7987
|
+
}, [custom]);
|
|
7988
|
+
const states = useMemo(() => {
|
|
7989
|
+
const next = {};
|
|
7990
|
+
for (const row of rows) next[row.url] = results[row.url] ?? "checking";
|
|
7991
|
+
return next;
|
|
7992
|
+
}, [results, rows]);
|
|
7993
|
+
const chosen = picked !== null && (rows.some((row) => row.url === picked) || picked === custom.trim()) ? picked : defaultOf(rows, states);
|
|
7994
|
+
return {
|
|
7995
|
+
rows,
|
|
7996
|
+
chosen,
|
|
7997
|
+
states,
|
|
7998
|
+
custom,
|
|
7999
|
+
customState,
|
|
8000
|
+
probing: rows.some((row) => states[row.url] === "checking"),
|
|
8001
|
+
ready: chosen !== null,
|
|
8002
|
+
setChosen: setPicked,
|
|
8003
|
+
setCustom,
|
|
8004
|
+
checkCustom
|
|
8005
|
+
};
|
|
8006
|
+
}
|
|
8007
|
+
//#endregion
|
|
7534
8008
|
//#region src/app/layouts/market/discover-confirm.tsx
|
|
7535
|
-
function DiscoverConfirm({ t, locale, choice, onCancel, onConfirm }) {
|
|
8009
|
+
function DiscoverConfirm({ t, locale, choice, transports, onCancel, onConfirm }) {
|
|
7536
8010
|
if (choice === null) return null;
|
|
8011
|
+
return /* @__PURE__ */ createElement(DiscoverConfirmBody, {
|
|
8012
|
+
t,
|
|
8013
|
+
locale,
|
|
8014
|
+
choice,
|
|
8015
|
+
transports,
|
|
8016
|
+
onCancel,
|
|
8017
|
+
onConfirm
|
|
8018
|
+
});
|
|
8019
|
+
}
|
|
8020
|
+
function factLabel(t, kind) {
|
|
8021
|
+
return t(kind === "package" ? "panels.discover.factPackage" : kind === "registry" ? "panels.discover.factRegistry" : kind === "repository" ? "panels.discover.factRepository" : kind === "commit" ? "panels.discover.factCommit" : "panels.discover.factDirectory");
|
|
8022
|
+
}
|
|
8023
|
+
function DiscoverConfirmBody({ t, locale, choice, transports, onCancel, onConfirm }) {
|
|
8024
|
+
const git = choice.version.source.type === "git" ? choice.version.source : null;
|
|
8025
|
+
const host = git === null ? void 0 : gitAddressOf(git.url)?.host;
|
|
8026
|
+
const transport = useGitTransport(git, host === void 0 ? void 0 : transports[host]);
|
|
7537
8027
|
const title = displayTitleOf(choice.entry, locale) || choice.entry.name;
|
|
7538
|
-
const facts = sourceFactsOf(choice.entry.name, choice.version);
|
|
7539
|
-
const
|
|
8028
|
+
const facts = sourceFactsOf(choice.entry.name, choice.version).filter((fact) => git === null || fact.kind !== "repository");
|
|
8029
|
+
const ready = git === null || transport.ready;
|
|
7540
8030
|
return /* @__PURE__ */ createElement(Modal, {
|
|
7541
8031
|
open: true,
|
|
7542
8032
|
onClose: onCancel,
|
|
@@ -7551,15 +8041,20 @@ function DiscoverConfirm({ t, locale, choice, onCancel, onConfirm }) {
|
|
|
7551
8041
|
type: "button",
|
|
7552
8042
|
variant: "primary",
|
|
7553
8043
|
autoFocus: true,
|
|
7554
|
-
|
|
7555
|
-
|
|
8044
|
+
disabled: !ready,
|
|
8045
|
+
"aria-busy": git !== null && transport.probing,
|
|
8046
|
+
onClick: () => onConfirm(transport.chosen ?? void 0)
|
|
8047
|
+
}, git !== null && transport.probing ? /* @__PURE__ */ createElement(Spinner, { size: 12 }) : null, t(git !== null && transport.probing ? "panels.discover.transportChecking" : "panels.discover.cardInstall")))
|
|
7556
8048
|
}, /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverDialogBody }, /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverConfirmHead }, /* @__PURE__ */ createElement("span", {
|
|
7557
8049
|
className: MarketPage_module_default.discoverArtwork,
|
|
7558
8050
|
"aria-hidden": "true"
|
|
7559
|
-
}, /* @__PURE__ */ createElement(MarketIcon, { src: choice.entry.icon })), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverMain }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverStrong }, title), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverMeta }, choice.version.version))),
|
|
8051
|
+
}, /* @__PURE__ */ createElement(MarketIcon, { src: choice.entry.icon })), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverMain }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverStrong }, title), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverMeta }, choice.version.version))), git === null ? null : /* @__PURE__ */ createElement(DiscoverTransport, {
|
|
8052
|
+
t,
|
|
8053
|
+
transport
|
|
8054
|
+
}), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverFacts }, choice.entry.author === void 0 ? null : /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverFactRow }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverFactKind }, t("panels.discover.factAuthor")), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverFactValue }, choice.entry.author)), facts.map((fact) => /* @__PURE__ */ createElement("div", {
|
|
7560
8055
|
key: `${fact.kind}:${fact.value}`,
|
|
7561
8056
|
className: MarketPage_module_default.discoverFactRow
|
|
7562
|
-
}, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverFactKind }, factLabel(fact.kind)), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverFactValue }, /* @__PURE__ */ createElement("code", { className: MarketPage_module_default.discoverCode }, fact.value))))), /* @__PURE__ */ createElement("p", {
|
|
8057
|
+
}, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverFactKind }, factLabel(t, fact.kind)), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverFactValue }, /* @__PURE__ */ createElement("code", { className: MarketPage_module_default.discoverCode }, fact.value))))), /* @__PURE__ */ createElement("p", {
|
|
7563
8058
|
className: MarketPage_module_default.discoverNotice,
|
|
7564
8059
|
role: "note"
|
|
7565
8060
|
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
@@ -7836,6 +8331,7 @@ function DiscoverDialogs({ t, d }) {
|
|
|
7836
8331
|
t,
|
|
7837
8332
|
locale: d.locale,
|
|
7838
8333
|
choice: d.choice,
|
|
8334
|
+
transports: d.transports,
|
|
7839
8335
|
onCancel: () => d.setChoice(null),
|
|
7840
8336
|
onConfirm: d.install
|
|
7841
8337
|
}), /* @__PURE__ */ createElement(DiscoverInitDialog, {
|
|
@@ -8050,6 +8546,7 @@ function installVerdictOf(value, t) {
|
|
|
8050
8546
|
const change = changeOf(value);
|
|
8051
8547
|
if (change === void 0) return { kind: "quiet" };
|
|
8052
8548
|
if (SHIPPED.includes(change.application)) return { kind: "done" };
|
|
8549
|
+
if (change.application === "cancelled") return { kind: "cancelled" };
|
|
8053
8550
|
if (change.application !== "failed") return { kind: "quiet" };
|
|
8054
8551
|
return {
|
|
8055
8552
|
kind: "failed",
|
|
@@ -8070,6 +8567,8 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8070
8567
|
const [manageOpen, setManageOpen] = useState(false);
|
|
8071
8568
|
const [initOpen, setInitOpen] = useState(false);
|
|
8072
8569
|
const [choice, setChoice] = useState(null);
|
|
8570
|
+
const [installing, setInstalling] = useState(null);
|
|
8571
|
+
const [cancelling, setCancelling] = useState(false);
|
|
8073
8572
|
const [notice, setNotice] = useState(null);
|
|
8074
8573
|
const [addingSource, setAddingSource] = useState(false);
|
|
8075
8574
|
const [pendingSourceId, setPendingSourceId] = useState(null);
|
|
@@ -8087,6 +8586,10 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8087
8586
|
channel: "provision",
|
|
8088
8587
|
networkText: t("panels.discover.failed")
|
|
8089
8588
|
});
|
|
8589
|
+
const cancel = useHostWrite({
|
|
8590
|
+
channel: "provision",
|
|
8591
|
+
networkText: t("panels.discover.failed")
|
|
8592
|
+
});
|
|
8090
8593
|
const loadSources = useCallback(async () => {
|
|
8091
8594
|
const ticket = sourceTicket.current + 1;
|
|
8092
8595
|
sourceTicket.current = ticket;
|
|
@@ -8095,7 +8598,8 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8095
8598
|
if (response === null || !response.ok) return;
|
|
8096
8599
|
setKnownSources({
|
|
8097
8600
|
sources: sourceRowsOf(response.sources),
|
|
8098
|
-
selected: response.selected
|
|
8601
|
+
selected: response.selected,
|
|
8602
|
+
transports: response.transports ?? {}
|
|
8099
8603
|
});
|
|
8100
8604
|
}, []);
|
|
8101
8605
|
const load = useCallback(async (force = false) => {
|
|
@@ -8115,7 +8619,8 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8115
8619
|
setPayload(response);
|
|
8116
8620
|
setKnownSources({
|
|
8117
8621
|
sources: response.sources,
|
|
8118
|
-
selected: response.selected
|
|
8622
|
+
selected: response.selected,
|
|
8623
|
+
transports: {}
|
|
8119
8624
|
});
|
|
8120
8625
|
setLimit(50);
|
|
8121
8626
|
}, [t]);
|
|
@@ -8167,6 +8672,7 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8167
8672
|
if (payload?.problem === void 0 || payload.selected === null) return null;
|
|
8168
8673
|
return {
|
|
8169
8674
|
id: payload.selected,
|
|
8675
|
+
kind: payload.problem.kind,
|
|
8170
8676
|
detail: payload.problem.detail ?? ""
|
|
8171
8677
|
};
|
|
8172
8678
|
}, [payload]);
|
|
@@ -8280,7 +8786,7 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8280
8786
|
setDetail(null);
|
|
8281
8787
|
beginSwitch();
|
|
8282
8788
|
setKnownSources((current) => current === null ? current : {
|
|
8283
|
-
|
|
8789
|
+
...current,
|
|
8284
8790
|
selected: id
|
|
8285
8791
|
});
|
|
8286
8792
|
sources.send({
|
|
@@ -8297,14 +8803,25 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8297
8803
|
await load(true);
|
|
8298
8804
|
});
|
|
8299
8805
|
};
|
|
8300
|
-
const install = () => {
|
|
8301
|
-
if (choice === null) return;
|
|
8302
|
-
const
|
|
8806
|
+
const install = (url) => {
|
|
8807
|
+
if (choice === null || installing !== null) return;
|
|
8808
|
+
const source = choice.version.source;
|
|
8809
|
+
const target = marketInstallTarget(choice.entry.name, choice.version.version, source.type === "git" && url !== void 0 ? {
|
|
8810
|
+
...source,
|
|
8811
|
+
url
|
|
8812
|
+
} : source);
|
|
8813
|
+
const name = displayTitleOf(choice.entry, locale);
|
|
8814
|
+
const requestId = globalThis.crypto.randomUUID();
|
|
8303
8815
|
setChoice(null);
|
|
8304
8816
|
setNotice(null);
|
|
8817
|
+
setInstalling({
|
|
8818
|
+
name,
|
|
8819
|
+
requestId
|
|
8820
|
+
});
|
|
8305
8821
|
provision.send({
|
|
8306
8822
|
action: "install-version",
|
|
8307
8823
|
spec: target.spec,
|
|
8824
|
+
requestId,
|
|
8308
8825
|
...target.registry === void 0 ? {} : { registry: target.registry }
|
|
8309
8826
|
}).then((outcome) => {
|
|
8310
8827
|
if (!outcome.ok) return;
|
|
@@ -8314,9 +8831,25 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8314
8831
|
onInstalled();
|
|
8315
8832
|
return;
|
|
8316
8833
|
}
|
|
8834
|
+
if (verdict.kind === "cancelled") {
|
|
8835
|
+
setNotice(t("panels.discover.installCancelled", { name }));
|
|
8836
|
+
onInstalled();
|
|
8837
|
+
return;
|
|
8838
|
+
}
|
|
8317
8839
|
if (verdict.kind !== "done") return;
|
|
8318
|
-
setNotice(t("panels.discover.installedDone", { name
|
|
8840
|
+
setNotice(t("panels.discover.installedDone", { name }));
|
|
8319
8841
|
onInstalled();
|
|
8842
|
+
}).finally(() => {
|
|
8843
|
+
setInstalling(null);
|
|
8844
|
+
setCancelling(false);
|
|
8845
|
+
});
|
|
8846
|
+
};
|
|
8847
|
+
const cancelInstall = () => {
|
|
8848
|
+
if (installing === null || cancelling) return;
|
|
8849
|
+
setCancelling(true);
|
|
8850
|
+
cancel.send({
|
|
8851
|
+
action: "cancel-install",
|
|
8852
|
+
requestId: installing.requestId
|
|
8320
8853
|
});
|
|
8321
8854
|
};
|
|
8322
8855
|
const reload = () => {
|
|
@@ -8333,6 +8866,7 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8333
8866
|
failure,
|
|
8334
8867
|
sources: knownSources?.sources ?? payload?.sources ?? [],
|
|
8335
8868
|
selected: knownSources?.selected ?? payload?.selected ?? null,
|
|
8869
|
+
transports: knownSources?.transports ?? {},
|
|
8336
8870
|
entries,
|
|
8337
8871
|
shown,
|
|
8338
8872
|
total: sorted.length,
|
|
@@ -8348,6 +8882,9 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8348
8882
|
writeFailed: sources.failed,
|
|
8349
8883
|
provisionFailed: provision.failed,
|
|
8350
8884
|
busy: sources.busy,
|
|
8885
|
+
installing: installing === null ? null : installing.name,
|
|
8886
|
+
cancelling,
|
|
8887
|
+
installDisabled: installing !== null,
|
|
8351
8888
|
addingSource,
|
|
8352
8889
|
manageOpen,
|
|
8353
8890
|
problem,
|
|
@@ -8365,7 +8902,10 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8365
8902
|
openDetail: (name) => setDetail(name),
|
|
8366
8903
|
closeDetail: () => setDetail(null),
|
|
8367
8904
|
setDetailEntry: setDetail,
|
|
8368
|
-
setChoice
|
|
8905
|
+
setChoice: (value) => {
|
|
8906
|
+
if (value !== null && installing !== null) return;
|
|
8907
|
+
setChoice(value);
|
|
8908
|
+
},
|
|
8369
8909
|
setManageOpen,
|
|
8370
8910
|
setInitOpen,
|
|
8371
8911
|
initialize,
|
|
@@ -8374,7 +8914,8 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8374
8914
|
addSource,
|
|
8375
8915
|
removeSourceById,
|
|
8376
8916
|
selectSource,
|
|
8377
|
-
install
|
|
8917
|
+
install,
|
|
8918
|
+
cancelInstall
|
|
8378
8919
|
};
|
|
8379
8920
|
}
|
|
8380
8921
|
//#endregion
|
|
@@ -8439,15 +8980,21 @@ function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
|
|
|
8439
8980
|
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
8440
8981
|
size: 14,
|
|
8441
8982
|
"aria-hidden": "true"
|
|
8442
|
-
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.stale"))) : null, uninitialized === null ? readFailed === null ? null : /* @__PURE__ */ createElement(
|
|
8983
|
+
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.stale"))) : null, uninitialized === null ? readFailed === null ? null : /* @__PURE__ */ createElement(DiscoverReadFailure, {
|
|
8443
8984
|
t,
|
|
8444
8985
|
text: readFailed,
|
|
8986
|
+
auth: d.problem?.kind === "git-auth",
|
|
8445
8987
|
onRetry: d.reload
|
|
8446
8988
|
}) : /* @__PURE__ */ createElement(DiscoverUninitialized, {
|
|
8447
8989
|
t,
|
|
8448
8990
|
path: uninitialized.path,
|
|
8449
8991
|
empty: uninitialized.empty,
|
|
8450
8992
|
onInit: () => d.setInitOpen(true)
|
|
8993
|
+
}), d.installing === null ? null : /* @__PURE__ */ createElement(DiscoverInstalling, {
|
|
8994
|
+
t,
|
|
8995
|
+
name: d.installing,
|
|
8996
|
+
cancelling: d.cancelling,
|
|
8997
|
+
onCancel: d.cancelInstall
|
|
8451
8998
|
}), d.notice === null ? null : /* @__PURE__ */ createElement("p", {
|
|
8452
8999
|
className: MarketPage_module_default.discoverNotice,
|
|
8453
9000
|
role: "note"
|
|
@@ -8464,7 +9011,8 @@ function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
|
|
|
8464
9011
|
entry,
|
|
8465
9012
|
version
|
|
8466
9013
|
}),
|
|
8467
|
-
onShowInstalled
|
|
9014
|
+
onShowInstalled,
|
|
9015
|
+
installDisabled: d.installDisabled
|
|
8468
9016
|
}) : readFailed !== null || uninitialized !== null || retrying ? null : d.shown.length === 0 ? /* @__PURE__ */ createElement(DiscoverEmptyText, { text: emptyText }) : /* @__PURE__ */ createElement(DiscoverRows, {
|
|
8469
9017
|
t,
|
|
8470
9018
|
locale: d.locale,
|
|
@@ -8474,7 +9022,8 @@ function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
|
|
|
8474
9022
|
entry,
|
|
8475
9023
|
version
|
|
8476
9024
|
}),
|
|
8477
|
-
onShowInstalled
|
|
9025
|
+
onShowInstalled,
|
|
9026
|
+
installDisabled: d.installDisabled
|
|
8478
9027
|
}), d.detailEntry !== null || d.total <= d.shown.length ? null : /* @__PURE__ */ createElement(Button, {
|
|
8479
9028
|
type: "button",
|
|
8480
9029
|
variant: "outline",
|
|
@@ -8487,7 +9036,7 @@ function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
|
|
|
8487
9036
|
}
|
|
8488
9037
|
//#endregion
|
|
8489
9038
|
//#region src/app/layouts/market/market-header.tsx
|
|
8490
|
-
function MarketHeader({ t, idPrefix, tab, busy,
|
|
9039
|
+
function MarketHeader({ t, idPrefix, tab, busy, onTab, onAdd }) {
|
|
8491
9040
|
const tabItems = useMemo(() => [{
|
|
8492
9041
|
value: "installed",
|
|
8493
9042
|
label: t("panels.market.tabInstalled"),
|
|
@@ -8499,23 +9048,14 @@ function MarketHeader({ t, idPrefix, tab, busy, checking, onTab, onReload, onAdd
|
|
|
8499
9048
|
id: `${idPrefix}-tab-discover`,
|
|
8500
9049
|
panelId: `${idPrefix}-panel-discover`
|
|
8501
9050
|
}], [idPrefix, t]);
|
|
8502
|
-
return /* @__PURE__ */ createElement(Fragment, null, /* @__PURE__ */ createElement("header", { className: MarketPage_module_default.marketPageHead }, /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("h1", { className: MarketPage_module_default.marketPageTitle }, t("panels.tab.market")), /* @__PURE__ */ createElement("p", { className: MarketPage_module_default.marketPageIntro }, t("panels.market.lead"))), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.marketPageTools }, tab !== "installed" ? null : /* @__PURE__ */ createElement(
|
|
8503
|
-
type: "button",
|
|
8504
|
-
className: `${MarketPage_module_default.marketIconButton}${checking ? ` ${MarketPage_module_default.marketIconButtonSpinning}` : ""}`,
|
|
8505
|
-
"aria-label": t("panels.market.checkUpdates"),
|
|
8506
|
-
disabled: busy,
|
|
8507
|
-
onClick: onReload
|
|
8508
|
-
}, /* @__PURE__ */ createElement("span", {
|
|
8509
|
-
className: MarketPage_module_default.marketIconWrap,
|
|
8510
|
-
"aria-hidden": "true"
|
|
8511
|
-
}, /* @__PURE__ */ createElement(IconRefreshOutlineRegular, null)))), /* @__PURE__ */ createElement(Button, {
|
|
9051
|
+
return /* @__PURE__ */ createElement(Fragment, null, /* @__PURE__ */ createElement("header", { className: MarketPage_module_default.marketPageHead }, /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("h1", { className: MarketPage_module_default.marketPageTitle }, t("panels.tab.market")), /* @__PURE__ */ createElement("p", { className: MarketPage_module_default.marketPageIntro }, t("panels.market.lead"))), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.marketPageTools }, tab !== "installed" ? null : /* @__PURE__ */ createElement(Button, {
|
|
8512
9052
|
variant: "primary",
|
|
8513
9053
|
size: "sm",
|
|
8514
9054
|
className: MarketPage_module_default.marketAddButton,
|
|
8515
9055
|
icon: /* @__PURE__ */ createElement(IconPlusOutlineRegular, { size: 13 }),
|
|
8516
9056
|
disabled: busy,
|
|
8517
9057
|
onClick: onAdd
|
|
8518
|
-
}, t("panels.market.add.open"))))
|
|
9058
|
+
}, t("panels.market.add.open")))), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.marketTabs }, /* @__PURE__ */ createElement(SegmentedTabs, {
|
|
8519
9059
|
className: MarketPage_module_default.marketTabList,
|
|
8520
9060
|
items: tabItems,
|
|
8521
9061
|
value: tab,
|
|
@@ -8889,6 +9429,30 @@ function useBoardWorkspace(workspaces, sessions) {
|
|
|
8889
9429
|
};
|
|
8890
9430
|
}
|
|
8891
9431
|
//#endregion
|
|
9432
|
+
//#region src/app/layouts/market/use-settling-modules.ts
|
|
9433
|
+
var NO_UNITS = /* @__PURE__ */ new Set();
|
|
9434
|
+
function unitsOf(key) {
|
|
9435
|
+
return key === "" ? [] : key.split("|");
|
|
9436
|
+
}
|
|
9437
|
+
function useSettlingModules(installedKey, rosterKey, activeKey) {
|
|
9438
|
+
const seenRef = useRef(null);
|
|
9439
|
+
const [settling, setSettling] = useState(NO_UNITS);
|
|
9440
|
+
useEffect(() => {
|
|
9441
|
+
const units = unitsOf(installedKey);
|
|
9442
|
+
const held = holdBack(units, new Set(unitsOf(rosterKey)), new Set(unitsOf(activeKey)), seenRef.current);
|
|
9443
|
+
seenRef.current = new Set(units);
|
|
9444
|
+
setSettling(held.length === 0 ? NO_UNITS : new Set(held));
|
|
9445
|
+
if (held.length === 0) return;
|
|
9446
|
+
const timer = setTimeout(() => setSettling(NO_UNITS), MODULE_SETTLE_MS);
|
|
9447
|
+
return () => clearTimeout(timer);
|
|
9448
|
+
}, [
|
|
9449
|
+
installedKey,
|
|
9450
|
+
rosterKey,
|
|
9451
|
+
activeKey
|
|
9452
|
+
]);
|
|
9453
|
+
return settling;
|
|
9454
|
+
}
|
|
9455
|
+
//#endregion
|
|
8892
9456
|
//#region src/shared/api/installed-plugins.ts
|
|
8893
9457
|
var INSTALLED_PLUGINS_ROUTE = "panels/plugins";
|
|
8894
9458
|
//#endregion
|
|
@@ -8914,6 +9478,8 @@ var state = {
|
|
|
8914
9478
|
workbench: null,
|
|
8915
9479
|
selfUpdate: null,
|
|
8916
9480
|
read: false,
|
|
9481
|
+
checking: false,
|
|
9482
|
+
failed: false,
|
|
8917
9483
|
checkedAt: null
|
|
8918
9484
|
};
|
|
8919
9485
|
var listeners$2 = /* @__PURE__ */ new Set();
|
|
@@ -8933,6 +9499,18 @@ function subscribeModuleVersions(listener) {
|
|
|
8933
9499
|
listeners$2.delete(listener);
|
|
8934
9500
|
};
|
|
8935
9501
|
}
|
|
9502
|
+
function withMarketUpdates(modules, rows) {
|
|
9503
|
+
if (rows.length === 0) return modules;
|
|
9504
|
+
const byPkg = new Map(rows.map((row) => [row.pkg, row]));
|
|
9505
|
+
return modules.map((module) => {
|
|
9506
|
+
const row = byPkg.get(module.pkg);
|
|
9507
|
+
return row === void 0 ? module : {
|
|
9508
|
+
...module,
|
|
9509
|
+
latest: row.version,
|
|
9510
|
+
market: row
|
|
9511
|
+
};
|
|
9512
|
+
});
|
|
9513
|
+
}
|
|
8936
9514
|
function publish$1(next) {
|
|
8937
9515
|
state = next;
|
|
8938
9516
|
for (const listener of [...listeners$2]) listener();
|
|
@@ -8942,18 +9520,30 @@ function runModuleVersionsRead(force = false, fresh = false) {
|
|
|
8942
9520
|
if (!fresh && inFlight !== null && inFlight.force === force && inFlight.epoch === at) return inFlight.promise;
|
|
8943
9521
|
const seq = readSeq += 1;
|
|
8944
9522
|
if (force) newestForceSeq = seq;
|
|
8945
|
-
|
|
9523
|
+
if (!state.checking) publish$1({
|
|
9524
|
+
...state,
|
|
9525
|
+
checking: true
|
|
9526
|
+
});
|
|
9527
|
+
const promise = Promise.all([
|
|
9528
|
+
readModuleVersions(force),
|
|
9529
|
+
readInstalledPlugins(force),
|
|
9530
|
+
readMarketInstalled()
|
|
9531
|
+
]).catch(() => null).then((responses) => {
|
|
8946
9532
|
if (at !== epoch) return;
|
|
8947
9533
|
if (!force && seq < newestForceSeq) return;
|
|
8948
9534
|
const versions = responses?.[0];
|
|
8949
9535
|
const plugins = responses?.[1];
|
|
9536
|
+
const market = responses?.[2];
|
|
9537
|
+
const read = versions?.ok === true;
|
|
8950
9538
|
publish$1({
|
|
8951
|
-
modules: versions?.ok === true ?
|
|
9539
|
+
modules: read ? withMarketUpdates(versions.modules, market?.ok === true ? market.modules : []) : state.modules,
|
|
8952
9540
|
plugins: plugins?.ok === true ? plugins.plugins : state.plugins,
|
|
8953
|
-
workbench:
|
|
8954
|
-
selfUpdate:
|
|
9541
|
+
workbench: read ? versions.workbench ?? null : state.workbench,
|
|
9542
|
+
selfUpdate: read ? versions.selfUpdate ?? null : state.selfUpdate,
|
|
8955
9543
|
read: true,
|
|
8956
|
-
|
|
9544
|
+
checking: false,
|
|
9545
|
+
failed: !read,
|
|
9546
|
+
checkedAt: read ? Date.now() : state.checkedAt
|
|
8957
9547
|
});
|
|
8958
9548
|
}).finally(() => {
|
|
8959
9549
|
if (inFlight?.promise === promise) inFlight = null;
|
|
@@ -8988,6 +9578,8 @@ function useModuleVersions() {
|
|
|
8988
9578
|
workbench: value.workbench,
|
|
8989
9579
|
selfUpdate: value.selfUpdate,
|
|
8990
9580
|
read: value.read,
|
|
9581
|
+
checking: value.checking,
|
|
9582
|
+
failed: value.failed,
|
|
8991
9583
|
checkedAt: value.checkedAt,
|
|
8992
9584
|
reload
|
|
8993
9585
|
};
|
|
@@ -9534,7 +10126,6 @@ var MOCK_FRESHNESS = {
|
|
|
9534
10126
|
checking: false,
|
|
9535
10127
|
checkedAt: null
|
|
9536
10128
|
};
|
|
9537
|
-
var NO_UNITS = /* @__PURE__ */ new Set();
|
|
9538
10129
|
function useLiveManifests(units) {
|
|
9539
10130
|
const subscribe = useCallback((listener) => units.subscribe(listener), [units]);
|
|
9540
10131
|
const revision = useCallback(() => units.version(), [units]);
|
|
@@ -9576,7 +10167,7 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
9576
10167
|
const manifests = useLiveManifests(units);
|
|
9577
10168
|
const installable = useInstallableUnits(units);
|
|
9578
10169
|
const { capabilities, checkedAt, checking, forceProbe, reload: reloadCapability } = useCapabilityMap(0);
|
|
9579
|
-
const { modules, plugins, workbench, selfUpdate, read: installedRead, reload: reloadVersions } = useModuleVersions();
|
|
10170
|
+
const { modules, plugins, workbench, selfUpdate, checking: versionsChecking, failed: versionsFailed, checkedAt: versionsCheckedAt, read: installedRead, reload: reloadVersions } = useModuleVersions();
|
|
9580
10171
|
const machineBoard = useEnabledUnits(0, null);
|
|
9581
10172
|
const [adding, setAdding] = useState(false);
|
|
9582
10173
|
const [acting, setActing] = useState(false);
|
|
@@ -9619,27 +10210,10 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
9619
10210
|
forceProbe,
|
|
9620
10211
|
reloadVersions
|
|
9621
10212
|
]);
|
|
9622
|
-
const
|
|
9623
|
-
const rosterKey = manifests.map((manifest) => manifest.id).join("|");
|
|
9624
|
-
const activeKey = Object.keys(capabilities ?? {}).join("|");
|
|
9625
|
-
const seenRef = useRef(null);
|
|
9626
|
-
const [settling, setSettling] = useState(NO_UNITS);
|
|
9627
|
-
useEffect(() => {
|
|
9628
|
-
const units = installedKey === "" ? [] : installedKey.split("|");
|
|
9629
|
-
const held = holdBack(units, new Set(rosterKey === "" ? [] : rosterKey.split("|")), new Set(activeKey === "" ? [] : activeKey.split("|")), seenRef.current);
|
|
9630
|
-
seenRef.current = new Set(units);
|
|
9631
|
-
setSettling(held.length === 0 ? NO_UNITS : new Set(held));
|
|
9632
|
-
if (held.length === 0) return;
|
|
9633
|
-
const timer = setTimeout(() => setSettling(NO_UNITS), MODULE_SETTLE_MS);
|
|
9634
|
-
return () => clearTimeout(timer);
|
|
9635
|
-
}, [
|
|
9636
|
-
installedKey,
|
|
9637
|
-
rosterKey,
|
|
9638
|
-
activeKey
|
|
9639
|
-
]);
|
|
10213
|
+
const settling = useSettlingModules((installed ?? []).map((module) => module.unit).join("|"), manifests.map((manifest) => manifest.id).join("|"), Object.keys(capabilities ?? {}).join("|"));
|
|
9640
10214
|
const freshness = {
|
|
9641
10215
|
loaded: capabilities !== null,
|
|
9642
|
-
checking,
|
|
10216
|
+
checking: checking || versionsChecking,
|
|
9643
10217
|
checkedAt
|
|
9644
10218
|
};
|
|
9645
10219
|
const pendingFreshness = {
|
|
@@ -9652,15 +10226,13 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
9652
10226
|
const mockNonce = devMarket.pick.nonce;
|
|
9653
10227
|
const shownFreshness = mock === void 0 ? freshness : mock.loaded === false ? pendingFreshness : MOCK_FRESHNESS;
|
|
9654
10228
|
const shownRead = mock === void 0 ? installedRead : mock.installedRead ?? true;
|
|
9655
|
-
const busy = !marketSettled(shownFreshness, shownRead) ||
|
|
10229
|
+
const busy = !marketSettled(shownFreshness, shownRead) || acting;
|
|
9656
10230
|
return /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.marketPage }, /* @__PURE__ */ createElement(MarketHeader, {
|
|
9657
10231
|
t,
|
|
9658
10232
|
idPrefix: MARKET_PANEL_ID,
|
|
9659
10233
|
tab,
|
|
9660
10234
|
busy,
|
|
9661
|
-
checking: shownFreshness.checking,
|
|
9662
10235
|
onTab: setTab,
|
|
9663
|
-
onReload: () => reload({ force: true }),
|
|
9664
10236
|
onAdd: openAddModule
|
|
9665
10237
|
}), devMarket.strip, /* @__PURE__ */ createElement("div", {
|
|
9666
10238
|
id: `${MARKET_PANEL_ID}-panel-installed`,
|
|
@@ -9678,6 +10250,8 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
9678
10250
|
onChanged: reload,
|
|
9679
10251
|
onPending: setActing,
|
|
9680
10252
|
updates,
|
|
10253
|
+
updatesCheckedAt: versionsCheckedAt,
|
|
10254
|
+
updatesFailed: versionsFailed,
|
|
9681
10255
|
installed,
|
|
9682
10256
|
installedRead: shownRead,
|
|
9683
10257
|
workbench,
|
|
@@ -15059,7 +15633,7 @@ function messagesOf(units) {
|
|
|
15059
15633
|
...face.messages === void 0 ? {} : { messages: face.messages }
|
|
15060
15634
|
}));
|
|
15061
15635
|
}
|
|
15062
|
-
var COMPONENT_CSS_MARKER = ".wb-activityBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding-top: var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-activityBlock:first-child {\n padding-top: 0;\n border-top: none;\n}\n\n.wb-activityBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}\n\n.wb-activityLine {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-activityLineText {\n flex: none;\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n max-height: var(--wb-len-72);\n overflow-y: auto;\n}\n\n.wb-activityLineAt {\n flex: none;\n margin-left: auto;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-activityLine > .wb-activityLineAt,\n.wb-activityLine > .wb-activityLineActions {\n margin-left: auto;\n}\n\n.wb-activityLine > .wb-activityLineAt + .wb-activityLineActions {\n margin-left: 0;\n}\n\n.wb-activityLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-activityActionFailed {\n color: var(--dsw-alias-state-error-primary);\n}\n.wb-note {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-problem {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n}\n.wb-approvalRow {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n.wb-approvalLabel {\n flex: none;\n width: var(--wb-len-56);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n.wb-cardHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-8) var(--wb-card-gutter);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-cardTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-cardMeta {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-cardMeta::before {\n content: '\\00b7';\n margin-right: var(--wb-len-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen ~ .wb-cardRefresh {\n margin-left: 0;\n}\n\n.wb-cardOpen:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh {\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardRefresh:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-cardGear {\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-3);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardGear:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n.wb-card {\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: none;\n}\n.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-card-gutter);\n font-size: var(--dsw-font-xxs-12-font-size);\n}\n.wb-cardBleed {\n margin-inline: calc(-1 * var(--wb-card-gutter));\n}\n._anchor_yq4s2_1 {\n display: contents;\n}\n.wb-spinner {\n display: inline-flex;\n align-items: center;\n flex: none;\n}\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n background: transparent;\n}\n\n.wb-choiceMenu[data-variant='boxed'] {\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-choiceOption {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-choiceOptionOn {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-checkbox {\n position: absolute;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.wb-checkboxBox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xs);\n corner-shape: round;\n color: var(--dsw-alias-label-primary-foreground);\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-choiceOption:hover .wb-checkboxBox {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-checkbox:checked + .wb-checkboxBox {\n border-color: var(--dsw-alias-brand-primary);\n background: var(--dsw-alias-brand-primary);\n}\n\n.wb-checkbox:disabled + .wb-checkboxBox {\n cursor: default;\n}\n\n.wb-checkbox:focus-visible + .wb-checkboxBox {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.wb-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceOption:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n\n.wb-choiceOption:has(:disabled),\n.wb-choiceOption:has(:disabled):hover {\n background: transparent;\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.wb-choiceLabelText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceLabel:has(.wb-choiceDescription) .wb-choiceLabelText {\n overflow: visible;\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.wb-choiceDescription {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n.wb-choiceLoading {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-choiceLoadingText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceEmpty {\n display: flex;\n align-items: center;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio {\n appearance: none;\n -webkit-appearance: none;\n flex: none;\n box-sizing: border-box;\n width: var(--wb-len-12);\n height: var(--wb-len-12);\n margin: 0;\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: 50%;\n corner-shape: round;\n background-color: transparent;\n cursor: pointer;\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-radio:not(:checked):hover {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio:checked {\n border-color: var(--dsw-alias-brand-primary);\n background-image: radial-gradient(\n circle at center,\n var(--dsw-alias-brand-primary) 0 3px,\n transparent 3px\n );\n}\n\n.wb-radio:disabled {\n cursor: default;\n}\n\n.wb-radio:focus-visible {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.wb-formActions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n\n.wb-formActionDanger {\n color: var(--dsw-alias-state-error-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n.wb-rows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n}\n.wb-rows > :not(.wb-row) {\n grid-column: 1 / -1;\n}\n.wb-row {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}\n.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.wb-rowKey {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-rowValue {\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-rows > .wb-row {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-rows > .wb-row {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-confirmBar {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-confirmBarTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 600;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-confirmBarHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.wb-field {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n.wb-fieldLabel {\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-fieldHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-field:has(:disabled) .wb-fieldLabel {\n opacity: 0.4;\n}\n.wb-formRows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-12);\n}\n\n.wb-formRows > :not(.wb-formRow) {\n grid-column: 1 / -1;\n}\n\n.wb-formRow {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: center;\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-8);\n}\n\n.wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n align-items: stretch;\n gap: var(--wb-len-6);\n}\n\n.wb-formRows > .wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.wb-formLabel {\n justify-self: start;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: nowrap;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formLabel {\n white-space: normal;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formHint,\n.wb-formRow[data-layout='stacked'] .wb-formProblem {\n grid-column: 1 / -1;\n}\n\n.wb-formControl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.wb-formControl\n > :where(\n .wb-selectAnchor,\n .wb-choiceMenu,\n input:not(\n [type='checkbox'],\n [type='radio'],\n [type='button'],\n [type='submit'],\n [type='reset'],\n [type='image'],\n [type='color'],\n [type='range']\n ),\n select,\n textarea\n ) {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n}\n\n.wb-formHint {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-formProblem {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(.wb-formProblem) .wb-formLabel {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(:disabled) .wb-formLabel {\n opacity: 0.4;\n}\n\n.wb-formRows > .wb-formRow {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-formRows > .wb-formRow {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-form {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n width: 100%;\n}\n:where(.wb-link) {\n margin-left: var(--wb-len-2);\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: baseline;\n}\n\n:where(.wb-link:hover) {\n text-decoration: underline;\n}\n\n:where(.wb-link:focus-visible) {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n.wb-longTask {\n padding-top: var(--wb-len-12);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n.wb-longTaskHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n}\n\n.wb-longTaskLink {\n flex: none;\n}\n\n.wb-longTaskHeadline {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-longTaskProblem {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-longTaskDump {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-longTaskDump pre {\n margin: var(--wb-len-4) 0 0;\n max-height: var(--wb-len-220);\n overflow: auto;\n}\n\n.wb-longTaskStop {\n display: inline-flex;\n flex: none;\n align-items: center;\n align-self: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n padding: 0;\n margin-left: auto;\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-specific-menu);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-longTaskStop:hover:not(:disabled),\n.wb-longTaskStop:focus-visible {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStop:disabled {\n cursor: default;\n}\n\n.wb-longTaskStopArmed,\n.wb-longTaskStopArmed:hover:not(:disabled),\n.wb-longTaskStopArmed:focus-visible {\n gap: var(--wb-len-4);\n width: auto;\n padding: 0 var(--wb-len-7);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStopLabel {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n.wb-longTaskStopWhy {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-centered.wb-centeredCompact {\n flex: none;\n min-height: 0;\n gap: var(--wb-len-8);\n padding: var(--wb-len-20) var(--wb-len-16);\n}\n\n.wb-centered.wb-centeredCompact .wb-centeredHero {\n margin-bottom: var(--wb-len-4);\n}\n\n.wb-skeleton {\n display: flex;\n flex-direction: column;\n}\n\n.wb-skeletonRow {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-skeletonRow + .wb-skeletonRow::before {\n content: '';\n align-self: stretch;\n height: var(--wb-len-0-5);\n margin: 0 var(--wb-len-8) var(--wb-len-neg-0-5);\n background: var(--dsw-alias-border-l2);\n}\n\n.wb-skeletonBar {\n display: block;\n height: var(--wb-len-13);\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-bg-skeleton);\n animation: wb-skeleton-pulse var(--wb-dur-1-4) var(--ds-ease-in-out) infinite;\n}\n\n.wb-skeletonBarTitle {\n width: 62%;\n}\n\n.wb-skeletonBarMeta {\n width: 32%;\n height: var(--wb-len-10);\n}\n\n.wb-skeletonRow:nth-child(2n) .wb-skeletonBarTitle {\n width: 74%;\n}\n\n.wb-skeletonRow:nth-child(3n) .wb-skeletonBarTitle {\n width: 52%;\n}\n\n@keyframes wb-skeleton-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.wb-centered {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--wb-len-14);\n flex: 1;\n min-height: var(--wb-len-240);\n padding: 0 var(--wb-len-24) var(--wb-len-24);\n text-align: center;\n}\n\n.wb-centeredHero {\n display: flex;\n margin-bottom: var(--wb-len-16);\n color: var(--dsw-alias-label-dimmed);\n}\n\n.wb-centeredTitle {\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-centeredHint {\n max-width: var(--wb-len-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-centeredDetail {\n max-width: var(--wb-len-320);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-dimmed);\n word-break: break-all;\n}\n\n.wb-centeredAction {\n display: flex;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}\n.wb-textField {\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n outline: none;\n}\n\n.wb-textField:focus {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-textField:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-textField[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-textField[aria-invalid='true']:focus {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n:where(.wb-textField) {\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n}\n:where(.wb-selectTrigger) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n text-align: left;\n cursor: pointer;\n}\n\n.wb-selectTrigger:focus-visible {\n outline: none;\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true']:focus-visible {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-selectLoading:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n background: transparent;\n font-size: var(--wb-font-row);\n}\n\n.wb-selectGhost:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-selectGhost:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n border-color: transparent;\n box-shadow: none;\n}\n\n.wb-selectIconOnly {\n width: var(--wb-len-36);\n height: var(--wb-len-36);\n min-height: 0;\n gap: 0;\n padding: 0;\n justify-content: center;\n}\n\n.wb-selectReveal {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.wb-selectIconOnly .wb-selectIcon {\n width: 100%;\n height: 100%;\n}\n\n.wb-selectAnchor {\n display: block;\n width: 100%;\n}\n\n.wb-selectIcon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectValue {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n.wb-selectPlaceholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n}\n\n.wb-selectMenu {\n min-width: var(--wb-len-240);\n max-width: var(--wb-len-360);\n max-height: min(var(--wb-len-320), calc(100vh - var(--wb-len-24)));\n}\n\n:where(.wb-selectSearch) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n.wb-selectSearch:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectSearch.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: 0.5px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-selectSearch.wb-selectGhost:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: none;\n}\n\n.wb-selectSearchIcon {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-textField.wb-selectSearchInput {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n.wb-textField.wb-selectSearchInput:focus {\n box-shadow: none;\n}\n\n.wb-selectFallback {\n width: 100%;\n}\n\n.wb-selectHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\nsection.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-len-16);\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-settings-card-fill);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.wb-settings .wb-settingsTitle {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-strong-14-font-size);\n line-height: var(--wb-line-24);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\n.wb-stateBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-stateBlockTitle {\n margin: 0;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n.wb-stateBlockHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-stateBlockActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n.wb-stateBlockResolving {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_14s5s_1 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._marketRow_14s5s_10 {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n column-gap: var(--wb-len-14);\n row-gap: var(--wb-len-4);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketIcon_14s5s_20 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_14s5s_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_14s5s_39 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketStatus_14s5s_48 {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketStateText_14s5s_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_14s5s_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_14s5s_66 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketName_14s5s_39 ._marketVersion_14s5s_72 {\n margin-left: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n}\n\n._marketVersion_14s5s_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_14s5s_72::before {\n content: '';\n display: inline-block;\n width: var(--wb-len-1);\n height: var(--wb-len-10);\n margin: 0 var(--wb-len-8) 0 var(--wb-len-2);\n vertical-align: -1px;\n background: var(--dsw-alias-border-l2);\n}\n\n._marketLocalTag_14s5s_94 {\n margin-left: var(--wb-len-8);\n padding: 0 var(--wb-len-6);\n border: var(--wb-len-1) solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-caption);\n}\n\n._marketEnd_14s5s_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_14s5s_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_14s5s_112::before {\n content: '';\n width: 0;\n height: var(--wb-len-14);\n border-left: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketActions_14s5s_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_14s5s_131 {\n color: var(--dsw-alias-state-warn-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._marketSelfDivider_14s5s_137 {\n height: 0;\n margin-top: calc(0px - var(--wb-len-16));\n border-top: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketSection_14s5s_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_14s5s_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_14s5s_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_14s5s_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_14s5s_169 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionQuiet_14s5s_175 ._marketSectionTitle_14s5s_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_14s5s_175 ._marketName_14s5s_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_14s5s_175 ._marketIcon_14s5s_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n._marketProgress_14s5s_188 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-height: var(--wb-len-32);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketNote_14s5s_198 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-warn-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailure_14s5s_205 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketEmpty_14s5s_212 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_14s5s_217 {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-32);\n padding: 0 clamp(var(--wb-len-24), 4vw, var(--wb-len-48)) var(--wb-len-48);\n overflow-x: hidden;\n overflow-y: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_14s5s_217 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_14s5s_235 {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-16);\n padding-top: var(--wb-len-28);\n}\n\n._marketPageTitle_14s5s_243 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_14s5s_248 {\n margin: var(--wb-len-4) 0 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketPageTools_14s5s_254 {\n flex: none;\n align-self: center;\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: var(--wb-len-16);\n}\n\n._marketPanel_14s5s_263 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_14s5s_263[hidden] {\n display: none;\n}\n\n._marketTabs_14s5s_273 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_14s5s_278 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketIconButton_14s5s_283 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-caption);\n cursor: pointer;\n}\n\n._marketIconButton_14s5s_283:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketIconButton_14s5s_283:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._marketIconWrap_14s5s_308 {\n display: inline-flex;\n}\n\n._marketIconButtonSpinning_14s5s_312 svg {\n animation: _wb-spin_14s5s_1 var(--wb-dur-0-9) linear infinite;\n}\n\n._marketAddButton_14s5s_316 {\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n border-radius: var(--dsw-radius-md);\n}\n\n._marketEmpty_14s5s_212 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) var(--wb-len-16);\n text-align: center;\n}\n\n._marketEmptyTitle_14s5s_333 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n@keyframes _wb-spin_14s5s_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n._discoverPage_14s5s_347 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_14s5s_354 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_14s5s_361 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_14s5s_367 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_14s5s_372 {\n min-width: 0;\n max-width: var(--wb-len-240);\n margin-left: calc(0px - var(--wb-len-8));\n font-weight: 500;\n}\n\n._discoverMarketName_14s5s_379 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_14s5s_385 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_14s5s_390 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_14s5s_395 {\n flex: none;\n}\n\n._discoverSearch_14s5s_399 {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 var(--wb-len-120);\n min-width: var(--wb-len-120);\n}\n\n._discoverSearchField_14s5s_407 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_14s5s_412 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_14s5s_407 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_14s5s_399 ._discoverSearchClear_14s5s_421 {\n position: absolute;\n top: 50%;\n inset-inline-end: var(--wb-len-4);\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n transform: translateY(-50%);\n}\n\n._discoverSearchClear_14s5s_421:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_14s5s_361 {\n display: grid;\n grid-template-columns: minmax(0, auto) minmax(var(--wb-len-120), 1fr) auto;\n grid-template-areas:\n 'market search refresh'\n 'labels sort sort';\n }\n\n ._discoverMarket_14s5s_367 {\n grid-area: market;\n }\n\n ._discoverMarketButton_14s5s_372 {\n margin-left: 0;\n }\n\n ._discoverLabels_14s5s_385 {\n grid-area: labels;\n }\n\n ._discoverSearch_14s5s_399 {\n grid-area: search;\n }\n\n ._discoverSort_14s5s_390 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_14s5s_395 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_14s5s_472 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_14s5s_479 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._discoverCard_14s5s_488 {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n margin: 0 calc(0px - var(--wb-len-8));\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCard_14s5s_488:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_14s5s_502 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverArtworkImage_14s5s_514 {\n object-fit: contain;\n}\n\n._discoverMain_14s5s_518 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_14s5s_526 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverCardOpen_14s5s_534 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n}\n\n._discoverCardOpen_14s5s_534::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_14s5s_534:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_14s5s_534:focus-visible::after {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverStrong_14s5s_565 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_14s5s_571 {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverMeta_14s5s_580 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._discoverMuted_14s5s_587 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_14s5s_593 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverBlocked_14s5s_602 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_14s5s_607 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) 0;\n text-align: center;\n}\n\n._discoverEmptyTitle_14s5s_616 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_14s5s_607 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_14s5s_626 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_14s5s_632 {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n padding: 0;\n border: 0;\n background: 0 0;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--wb-font-12-5);\n cursor: pointer;\n}\n\n._discoverCrumb_14s5s_632:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_14s5s_632:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverCrumbIcon_14s5s_655 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_14s5s_659 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_14s5s_665 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_14s5s_671 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._discoverDetailPanel_14s5s_678 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_14s5s_685 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_14s5s_690 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_14s5s_695 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_14s5s_700 {\n margin: var(--wb-len-16) 0 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverSection_14s5s_706 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_14s5s_713 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_14s5s_719 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_14s5s_724 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--wb-len-16);\n min-height: var(--wb-len-44);\n padding: var(--wb-len-8) var(--wb-len-2);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverFactKind_14s5s_734 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_14s5s_740 {\n min-width: 0;\n margin: 0;\n text-align: end;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xs-13);\n}\n\n._discoverCode_14s5s_748 {\n padding: var(--wb-len-2) var(--wb-len-6);\n border-radius: var(--wb-radius-6);\n background: var(--dsw-alias-bg-module-platform);\n font-family: var(--ds-font-family-code);\n font-size: var(--dsw-font-xxs-12-font-size);\n box-decoration-break: clone;\n}\n\n._discoverTags_14s5s_757 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_14s5s_764 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_14s5s_764:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_14s5s_774 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_14s5s_782 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverVersionName_14s5s_790 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_14s5s_795 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverFailure_14s5s_804 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_14s5s_810 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverNotice_14s5s_819 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverNotice_14s5s_819 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_14s5s_837 {\n align-self: center;\n}\n\n._discoverDialog_14s5s_841 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_14s5s_845 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_14s5s_851 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_14s5s_859 {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wb-len-12);\n padding: var(--wb-len-10) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverSourceConfirm_14s5s_868 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_14s5s_874 {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: var(--wb-len-10);\n min-width: 0;\n cursor: pointer;\n}\n\n._discoverSourceRadio_14s5s_883 {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._discoverSourceMain_14s5s_891 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_14s5s_899 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverSourceUrl_14s5s_907 {\n display: block;\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverSourceMore_14s5s_917 {\n flex: none;\n}\n\n._discoverSourceLoading_14s5s_921 {\n display: flex;\n flex: none;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceHint_14s5s_931 {\n display: flex;\n flex-basis: 100%;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverSourceHint_14s5s_931 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_14s5s_945 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_14s5s_951 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_14s5s_957 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_14s5s_962 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_14s5s_968 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_14s5s_973 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_14s5s_979 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_14s5s_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_14s5s_502._discoverSkeletonFill_14s5s_979 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_14s5s_988 {\n display: block;\n height: var(--wb-len-12);\n margin: var(--wb-len-4) 0;\n border-radius: var(--dsw-radius-xs);\n}\n\n._discoverSkeletonTitle_14s5s_995 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_14s5s_999 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_14s5s_1 {\n 0% {\n opacity: 1;\n }\n 40% {\n opacity: 0.6;\n }\n 80%,\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._discoverSkeletonFill_14s5s_979 {\n animation: none;\n }\n}\n\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1lv8f_1 {\n justify-content: center;\n width: 100%;\n height: var(--wb-len-40);\n border-radius: var(--dsw-radius-md);\n}\n\n._dialog_1lv8f_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1lv8f_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1lv8f_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1lv8f_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1lv8f_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._input_1lv8f_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1lv8f_45 {\n height: var(--wb-len-32);\n margin-left: var(--wb-len-26);\n padding: 0 var(--wb-len-10);\n}\n\n._options_1lv8f_51 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8) var(--wb-len-12);\n}\n\n._guideToggle_1lv8f_59 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-4);\n align-self: flex-start;\n margin-top: var(--wb-len-4);\n padding: 0;\n border: 0;\n background: transparent;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._guideToggle_1lv8f_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1lv8f_59 svg,\n._registryToggle_1lv8f_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1lv8f_59[aria-expanded='true'] svg,\n._registryToggle_1lv8f_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1lv8f_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1lv8f_78 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n height: var(--wb-len-26);\n padding: 0 var(--wb-len-8) 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n font: inherit;\n font-size: var(--wb-font-12-5);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._registryToggle_1lv8f_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1lv8f_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1lv8f_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1lv8f_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1lv8f_45 {\n position: fixed;\n z-index: var(--wb-z-1100);\n box-sizing: border-box;\n width: min(var(--wb-len-440), 100vw - var(--wb-len-24));\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-12);\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-2);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n box-shadow: var(--dsw-elevation-prominent);\n}\n\n._registryOption_1lv8f_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid transparent;\n border-radius: var(--dsw-radius-lg);\n cursor: pointer;\n}\n\nlabel._registryOption_1lv8f_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1lv8f_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1lv8f_143[data-checked='true'] {\n border-color: color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._registryOption_1lv8f_143 input[type='radio'] {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._registryTitle_1lv8f_179 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n font: var(--dsw-font-xs-13);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n._registryHint_1lv8f_189 {\n margin-left: var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._inputError_1lv8f_197 {\n margin: var(--wb-len-neg-4) 0 0 var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._guide_1lv8f_59 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._guideList_1lv8f_214 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._guideItem_1lv8f_223 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0;\n}\n\n._guideIndex_1lv8f_230 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._guideMain_1lv8f_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1lv8f_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1lv8f_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1lv8f_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1lv8f_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1lv8f_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1lv8f_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1lv8f_285 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0 var(--wb-len-4);\n text-align: center;\n}\n\n._heroIcon_1lv8f_294 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-44);\n height: var(--wb-len-44);\n color: var(--dsw-alias-label-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1lv8f_311 {\n margin: 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 500;\n color: var(--dsw-alias-label-secondary);\n}\n\n._wizardTitle_1lv8f_319 {\n margin: 0;\n font-size: var(--wb-font-18);\n line-height: var(--wb-len-26);\n font-weight: 600;\n}\n\n._subject_1lv8f_326 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n text-align: center;\n}\n\n._subjectName_1lv8f_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1lv8f_343,\n._subjectDesc_1lv8f_344 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._result_1lv8f_351,\n._resultWarn_1lv8f_352 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._resultWarn_1lv8f_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._resultMeta_1lv8f_365 {\n margin: 0;\n padding: 0 var(--wb-len-12);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._approval_1lv8f_373 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-state-warn-primary);\n border-radius: var(--dsw-radius-lg);\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._approvalTitle_1lv8f_383 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._approvalText_1lv8f_390 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1lv8f_396 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n font-weight: 600;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._note_1lv8f_403 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._noteWarn_1lv8f_410 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1lv8f_414 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1lv8f_418 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._detailLabel_1lv8f_425 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1lv8f_425 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-3);\n font-family: var(--dsw-font-mono, monospace);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n._note_1enlz_1 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._note_1enlz_1 > svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n._slot_1t7dx_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1t7dx_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1t7dx_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1t7dx_31 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._paused_1t7dx_35 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._trouble_1t7dx_39 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._pulse_1t7dx_43 {\n animation: _wb-debug-breathe_1t7dx_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-debug-breathe_1t7dx_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1t7dx_43 {\n animation: none;\n }\n}\n\n._entry_1t7dx_64 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1t7dx_71 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1t7dx_78 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1t7dx_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: 0;\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n}\n\n._act_1t7dx_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1t7dx_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._actStop_1t7dx_110:hover,\n._actStop_1t7dx_110:focus-visible {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._actArmed_1t7dx_115,\n._actArmed_1t7dx_115:hover,\n._actArmed_1t7dx_115:focus-visible {\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n width: auto;\n color: var(--dsw-alias-state-error-primary);\n gap: var(--wb-len-4);\n padding: 0 var(--wb-len-7);\n}\n\n._actLabel_1t7dx_125 {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._entryLine_1t7dx_131 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1t7dx_138 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1t7dx_150 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1t7dx_156 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1t7dx_162 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._slot_1gkj9_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1gkj9_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1gkj9_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1gkj9_31 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._done_1gkj9_35 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._pulse_1gkj9_39 {\n animation: _wb-record-breathe_1gkj9_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-record-breathe_1gkj9_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1gkj9_39 {\n animation: none;\n }\n}\n\n._entry_1gkj9_60 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1gkj9_67 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1gkj9_74 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1gkj9_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-22);\n padding: 0 var(--wb-len-7);\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._act_1gkj9_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1gkj9_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._entryLine_1gkj9_108 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1gkj9_115 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1gkj9_127 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1gkj9_133 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1gkj9_139 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._item_lyox9_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n}\n\n._item_lyox9_1 + ._item_lyox9_1 {\n padding-top: var(--wb-len-14);\n border-top: var(--wb-len-0-5) solid var(--dsw-alias-settings-card-stroke);\n}\n\n._head_lyox9_12 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._title_lyox9_19 {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._description_lyox9_31 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._rows_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._row_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-settings-card-stroke);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-settings-card-fill);\n}\n\n._head_85r3w_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._pick_85r3w_27 {\n flex: 0 1 auto;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._pick_85r3w_27 > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._code_85r3w_39 {\n --dsl-code-block-background: var(--dsw-alias-bg-layer-1);\n margin: 0;\n}\n\n._missing_85r3w_44,\n._conflict_85r3w_45 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-warn-primary);\n}\n._body_11oac_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._sources_11oac_7 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._sourcesLabel_11oac_14 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\nbutton._sourceOn_11oac_19 {\n border-color: var(--dsw-alias-brand-primary);\n}\n._sourceCount_11oac_22 {\n margin-left: var(--wb-len-4);\n font-variant-numeric: tabular-nums;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._reading_11oac_29 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._status_11oac_35 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failure_11oac_45 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n column-gap: var(--wb-len-10);\n row-gap: var(--wb-len-2);\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n\n._failureTitle_11oac_55 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._failureHint_11oac_62 {\n grid-column: 1;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failureAction_11oac_67 {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n}\n\n._foot_11oac_73 {\n display: flex;\n justify-content: flex-end;\n}\n._body_lox98_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._field_lox98_7 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._input_lox98_13 {\n width: 100%;\n}\n\n._label_lox98_17 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\n._hint_lox98_22 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._copy_lox98_28 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-8) var(--wb-len-16);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n._copy_lox98_28 legend {\n padding: 0;\n margin-bottom: var(--wb-len-6);\n}\n\n._actions_lox98_42 {\n display: flex;\n justify-content: flex-end;\n}\n\n._commandLabel_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n}\n\n._command_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-6) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow-wrap: anywhere;\n}\n._body_zi2j5_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._lead_zi2j5_7 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._title_zi2j5_14 {\n font-size: var(--wb-font-18);\n line-height: var(--wb-line-24);\n}\n._hint_zyzt3_1[hidden],\n._actions_zyzt3_2[hidden],\n._progress_zyzt3_3[hidden],\n._commandRow_zyzt3_4[hidden],\n._bridge_zyzt3_5[hidden],\n._raw_zyzt3_6[hidden] {\n display: none;\n}\n\n._gate_zyzt3_10 {\n position: fixed;\n inset: 0;\n z-index: var(--wb-z-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--wb-len-24);\n background: var(--dsw-alias-bg-base);\n}\n\n._card_zyzt3_21 {\n width: 100%;\n max-width: var(--wb-len-420);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-16);\n text-align: center;\n}\n\n._card_zyzt3_21:has(._actions_zyzt3_2:not([hidden])),\n._card_zyzt3_21:has(._bridge_zyzt3_5:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_zyzt3_36 {\n margin: 0;\n font-size: var(--dsw-font-base-16-font-size);\n line-height: var(--wb-line-24);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._steps_zyzt3_51 {\n list-style: none;\n margin: var(--wb-len-6) 0 0;\n padding: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n text-align: left;\n}\n\n._step_zyzt3_51 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-6) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._step_zyzt3_51[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_zyzt3_78 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-14);\n height: var(--wb-len-14);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._step_zyzt3_51[data-status='ok'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_zyzt3_51[data-status='warn'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_zyzt3_51[data-status='failed'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_zyzt3_103 {\n flex: none;\n}\n\n._detail_zyzt3_107 {\n margin-left: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._progress_zyzt3_3 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._elapsed_zyzt3_125 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._error_zyzt3_133 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n max-height: var(--wb-len-120);\n overflow: auto;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n white-space: pre-wrap;\n word-break: break-all;\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._commandRow_zyzt3_4 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n margin: 0 0 var(--wb-len-8);\n padding-right: var(--wb-len-4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._copy_zyzt3_159 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._copy_zyzt3_159:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_zyzt3_4 {\n flex: 1;\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-primary);\n}\n\n._buttons_zyzt3_192 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_zyzt3_199 {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n justify-content: center;\n background: var(--dsw-alias-bg-base);\n}\n\n._button_zyzt3_192 {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n\n._button_zyzt3_192:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_zyzt3_192:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_zyzt3_2,\n._bridge_zyzt3_5 {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-14) var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-1);\n text-align: left;\n}\n\n._fixTitle_zyzt3_250 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._actions_zyzt3_2 ._hint_zyzt3_1,\n._bridge_zyzt3_5 ._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._actions_zyzt3_2 ._commandRow_zyzt3_4,\n._bridge_zyzt3_5 ._commandRow_zyzt3_4 {\n margin: 0;\n}\n\n._actions_zyzt3_2 ._buttons_zyzt3_192,\n._bridge_zyzt3_5 ._buttons_zyzt3_192 {\n justify-content: flex-start;\n}\n\n._raw_zyzt3_6 {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._rawSummary_zyzt3_286 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_zyzt3_2 ._error_zyzt3_133,\n._bridge_zyzt3_5 ._error_zyzt3_133 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_zyzt3_296 {\n margin: 0;\n padding-left: var(--wb-len-18);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._bridgeLine_zyzt3_296 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_zyzt3_313 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_zyzt3_313::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_zyzt3_313:hover {\n text-decoration: underline;\n}\n\n._loading_zyzt3_327 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_zyzt3_327[hidden] {\n display: none;\n}\n\n._loadingMotion_zyzt3_336 {\n transform-origin: center;\n animation: _wb-spin_zyzt3_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_zyzt3_341,\n._loadingArc_zyzt3_342 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_zyzt3_341 {\n opacity: 0.25;\n}\n\n._loadingArc_zyzt3_342 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_zyzt3_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_zyzt3_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_zyzt3_1 {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }\n to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._loadingMotion_zyzt3_336,\n ._loadingArc_zyzt3_342 {\n animation: none;\n }\n}\n._changelog_1q6pj_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-10);\n min-width: 0;\n}\n\n._changelogTitle_1q6pj_9 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._changelogMissing_1q6pj_15 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._changelogBody_1q6pj_21 {\n max-height: var(--wb-len-320);\n overflow: auto;\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._trigger_15ptp_1 {\n display: flex;\n align-items: center;\n}\n\n._pop_15ptp_6 {\n position: absolute;\n top: calc(var(--wb-len-38) + var(--wb-len-8));\n right: var(--wb-len-6);\n z-index: var(--wb-z-30);\n width: min(var(--wb-len-360), calc(100% - var(--wb-len-12)));\n max-width: calc(100vw - var(--wb-len-48));\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-2);\n box-shadow: var(--dsw-shadow-lv3);\n overflow: hidden;\n}\n\n._head_15ptp_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10) var(--wb-len-12) var(--wb-len-9) var(--wb-len-14);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._title_15ptp_28 {\n flex: 1;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._rowControls_15ptp_36 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._reset_15ptp_43 {\n flex: none;\n padding: var(--wb-len-3) var(--wb-len-8);\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._reset_15ptp_43:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_15ptp_43:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_15ptp_65 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._row_15ptp_36 {\n position: relative;\n display: grid;\n grid-template-columns: 12px minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-sm);\n cursor: default;\n}\n\n._rowDragging_15ptp_85 {\n cursor: grabbing;\n}\n\n._rowBlocked_15ptp_89 {\n cursor: not-allowed;\n}\n\n._listDragging_15ptp_93 ._rowControls_15ptp_36 {\n pointer-events: none;\n}\n\n._row_15ptp_36:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOff_15ptp_101 {\n opacity: 0.55;\n}\n\n._rowOff_15ptp_101:hover {\n opacity: 1;\n}\n\n._rowOver_15ptp_109::before {\n content: '';\n position: absolute;\n top: var(--wb-len-neg-3);\n left: var(--wb-len-8);\n right: var(--wb-len-8);\n height: var(--wb-len-2);\n background: var(--dsw-alias-brand-primary);\n}\n\n._ghost_15ptp_119 {\n position: fixed;\n z-index: var(--wb-z-40);\n pointer-events: none;\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--wb-static-shadow-ghost);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n white-space: nowrap;\n}\n\n._grip_15ptp_134 {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: center;\n color: var(--dsw-alias-label-tertiary);\n user-select: none;\n cursor: grab;\n touch-action: none;\n}\n\n._gripDragging_15ptp_144 {\n cursor: grabbing;\n}\n\n._gripBlocked_15ptp_148 {\n cursor: not-allowed;\n}\n\n._label_15ptp_152 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_15ptp_159 {\n min-width: 0;\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n\n._error_15ptp_170 {\n margin: 0;\n padding: 0 var(--wb-len-14) var(--wb-len-10);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._dep_15ptp_178 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n._group_15ptp_186 {\n padding-top: var(--wb-len-6);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._groupTitle_15ptp_191 {\n margin: 0;\n padding: var(--wb-len-2) var(--wb-len-8) 0 var(--wb-len-14);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n font-weight: 400;\n color: var(--dsw-alias-label-tertiary);\n}\n._panel_1whum_1 {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: var(--wb-z-10);\n visibility: hidden;\n}\n\n._panel_1whum_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1whum_1[data-open] {\n visibility: visible;\n}\n\n._columns_1whum_18 {\n display: block;\n column-gap: var(--wb-len-12);\n}\n\n._cell_1whum_23 {\n display: flow-root;\n min-width: 0;\n break-inside: avoid;\n margin-bottom: var(--wb-len-12);\n}\n._root_1cmz0_1 {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}\n\n._rail_1cmz0_7 {\n margin: 0 0 var(--wb-len-4);\n}\n\n._glyphBox_1cmz0_11 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n._glyph_1cmz0_11 {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._glyphActive_1cmz0_30 {\n color: var(--dsw-alias-state-business-primary);\n}\n\n._triggerName_1cmz0_34 {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n._dir_1cmz0_45 {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._name_1cmz0_53 {\n flex: 0 1 auto;\n max-width: 50%;\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._triggerName_1cmz0_34 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._row_1cmz0_66 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n width: 100%;\n min-width: 0;\n}\n\n._trailing_1cmz0_74 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n margin-inline-start: auto;\n}\n\n._trailing_1cmz0_74 ._rowAction_1cmz0_84 {\n width: var(--wb-len-20);\n min-width: var(--wb-len-20);\n height: var(--wb-len-20);\n min-height: var(--wb-len-20);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n}\n\n._row_1cmz0_66 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._current_1cmz0_97 {\n flex: none;\n display: inline-flex;\n align-items: center;\n color: var(--dsw-alias-label-primary);\n}\n._dot_sosf1_1 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n._overlay_sosf1_8 {\n position: absolute;\n inset-block-start: var(--wb-len-neg-3);\n inset-inline-end: var(--wb-len-neg-3);\n}\n._tag_g9dg8_1 {\n flex: none;\n margin-inline-start: auto;\n}\n._dialog_1vye5_1 {\n width: min(var(--wb-len-420), 100%);\n}\n\n._stack_1vye5_5 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._input_1vye5_12 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-12);\n}\n\n._meta_1vye5_18 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n._dot_14w1n_1 {\n display: inline-flex;\n align-items: center;\n}\n\n._hover_14w1n_6 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._blocker_1oaj0_1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-20) var(--wb-len-16);\n text-align: center;\n}\n\n._icon_1oaj0_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_1oaj0_15 {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_1oaj0_23 {\n margin: 0;\n max-width: var(--wb-len-42em);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n text-wrap: pretty;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 {\n align-items: flex-start;\n gap: var(--wb-len-6);\n padding: var(--wb-len-4) 0 var(--wb-len-2);\n text-align: left;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._title_1oaj0_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._hint_1oaj0_23 {\n max-width: 100%;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._actions_1oaj0_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._raw_1oaj0_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_1oaj0_48 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-6);\n}\n\n._raw_1oaj0_52 {\n margin-top: var(--wb-len-10);\n width: 100%;\n max-width: var(--wb-len-360);\n text-align: left;\n}\n\n._notice_1oaj0_71 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--wb-len-10);\n margin: 0 0 var(--wb-len-10);\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-left: 2px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._notice_1oaj0_71._noticeFlat_1oaj0_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_1oaj0_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_1oaj0_98 {\n font-size: var(--wb-font-12-5);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._noticeHint_1oaj0_105 {\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._noticeActions_1oaj0_112 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-neg-2);\n}\n\n._failure_1oaj0_119 {\n margin: var(--wb-len-8) 0 0;\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._failureDetail_1oaj0_127 {\n display: block;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-label-tertiary);\n white-space: pre-wrap;\n}\n\n._inlineAction_1oaj0_134 {\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n._inlineAction_1oaj0_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n\n._rawText_1oaj0_146 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
|
|
15636
|
+
var COMPONENT_CSS_MARKER = ".wb-activityBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding-top: var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-activityBlock:first-child {\n padding-top: 0;\n border-top: none;\n}\n\n.wb-activityBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}\n\n.wb-activityLine {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-activityLineText {\n flex: none;\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n max-height: var(--wb-len-72);\n overflow-y: auto;\n}\n\n.wb-activityLineAt {\n flex: none;\n margin-left: auto;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-activityLine > .wb-activityLineAt,\n.wb-activityLine > .wb-activityLineActions {\n margin-left: auto;\n}\n\n.wb-activityLine > .wb-activityLineAt + .wb-activityLineActions {\n margin-left: 0;\n}\n\n.wb-activityLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-activityActionFailed {\n color: var(--dsw-alias-state-error-primary);\n}\n.wb-note {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-problem {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n}\n.wb-approvalRow {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n.wb-approvalLabel {\n flex: none;\n width: var(--wb-len-56);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n.wb-cardHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-8) var(--wb-card-gutter);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-cardTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-cardMeta {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-cardMeta::before {\n content: '\\00b7';\n margin-right: var(--wb-len-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen ~ .wb-cardRefresh {\n margin-left: 0;\n}\n\n.wb-cardOpen:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh {\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardRefresh:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-cardGear {\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-3);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardGear:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n.wb-card {\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: none;\n}\n.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-card-gutter);\n font-size: var(--dsw-font-xxs-12-font-size);\n}\n.wb-cardBleed {\n margin-inline: calc(-1 * var(--wb-card-gutter));\n}\n._anchor_yq4s2_1 {\n display: contents;\n}\n.wb-spinner {\n display: inline-flex;\n align-items: center;\n flex: none;\n}\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n background: transparent;\n}\n\n.wb-choiceMenu[data-variant='boxed'] {\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-choiceOption {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-choiceOptionOn {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-checkbox {\n position: absolute;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.wb-checkboxBox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xs);\n corner-shape: round;\n color: var(--dsw-alias-label-primary-foreground);\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-choiceOption:hover .wb-checkboxBox {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-checkbox:checked + .wb-checkboxBox {\n border-color: var(--dsw-alias-brand-primary);\n background: var(--dsw-alias-brand-primary);\n}\n\n.wb-checkbox:disabled + .wb-checkboxBox {\n cursor: default;\n}\n\n.wb-checkbox:focus-visible + .wb-checkboxBox {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.wb-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceOption:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n\n.wb-choiceOption:has(:disabled),\n.wb-choiceOption:has(:disabled):hover {\n background: transparent;\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.wb-choiceLabelText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceLabel:has(.wb-choiceDescription) .wb-choiceLabelText {\n overflow: visible;\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.wb-choiceDescription {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n.wb-choiceLoading {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-choiceLoadingText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceEmpty {\n display: flex;\n align-items: center;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio {\n appearance: none;\n -webkit-appearance: none;\n flex: none;\n box-sizing: border-box;\n width: var(--wb-len-12);\n height: var(--wb-len-12);\n margin: 0;\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: 50%;\n corner-shape: round;\n background-color: transparent;\n cursor: pointer;\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-radio:not(:checked):hover {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio:checked {\n border-color: var(--dsw-alias-brand-primary);\n background-image: radial-gradient(\n circle at center,\n var(--dsw-alias-brand-primary) 0 3px,\n transparent 3px\n );\n}\n\n.wb-radio:disabled {\n cursor: default;\n}\n\n.wb-radio:focus-visible {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.wb-formActions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n\n.wb-formActionDanger {\n color: var(--dsw-alias-state-error-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n.wb-rows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n}\n.wb-rows > :not(.wb-row) {\n grid-column: 1 / -1;\n}\n.wb-row {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}\n.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.wb-rowKey {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-rowValue {\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-rows > .wb-row {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-rows > .wb-row {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-confirmBar {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-confirmBarTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 600;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-confirmBarHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.wb-field {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n.wb-fieldLabel {\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-fieldHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-field:has(:disabled) .wb-fieldLabel {\n opacity: 0.4;\n}\n.wb-formRows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-12);\n}\n\n.wb-formRows > :not(.wb-formRow) {\n grid-column: 1 / -1;\n}\n\n.wb-formRow {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: center;\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-8);\n}\n\n.wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n align-items: stretch;\n gap: var(--wb-len-6);\n}\n\n.wb-formRows > .wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.wb-formLabel {\n justify-self: start;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: nowrap;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formLabel {\n white-space: normal;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formHint,\n.wb-formRow[data-layout='stacked'] .wb-formProblem {\n grid-column: 1 / -1;\n}\n\n.wb-formControl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.wb-formControl\n > :where(\n .wb-selectAnchor,\n .wb-choiceMenu,\n input:not(\n [type='checkbox'],\n [type='radio'],\n [type='button'],\n [type='submit'],\n [type='reset'],\n [type='image'],\n [type='color'],\n [type='range']\n ),\n select,\n textarea\n ) {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n}\n\n.wb-formHint {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-formProblem {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(.wb-formProblem) .wb-formLabel {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(:disabled) .wb-formLabel {\n opacity: 0.4;\n}\n\n.wb-formRows > .wb-formRow {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-formRows > .wb-formRow {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-form {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n width: 100%;\n}\n:where(.wb-link) {\n margin-left: var(--wb-len-2);\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: baseline;\n}\n\n:where(.wb-link:hover) {\n text-decoration: underline;\n}\n\n:where(.wb-link:focus-visible) {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n.wb-longTask {\n padding-top: var(--wb-len-12);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n.wb-longTaskHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n}\n\n.wb-longTaskLink {\n flex: none;\n}\n\n.wb-longTaskHeadline {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-longTaskProblem {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-longTaskDump {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-longTaskDump pre {\n margin: var(--wb-len-4) 0 0;\n max-height: var(--wb-len-220);\n overflow: auto;\n}\n\n.wb-longTaskStop {\n display: inline-flex;\n flex: none;\n align-items: center;\n align-self: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n padding: 0;\n margin-left: auto;\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-specific-menu);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-longTaskStop:hover:not(:disabled),\n.wb-longTaskStop:focus-visible {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStop:disabled {\n cursor: default;\n}\n\n.wb-longTaskStopArmed,\n.wb-longTaskStopArmed:hover:not(:disabled),\n.wb-longTaskStopArmed:focus-visible {\n gap: var(--wb-len-4);\n width: auto;\n padding: 0 var(--wb-len-7);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStopLabel {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n.wb-longTaskStopWhy {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-centered.wb-centeredCompact {\n flex: none;\n min-height: 0;\n gap: var(--wb-len-8);\n padding: var(--wb-len-20) var(--wb-len-16);\n}\n\n.wb-centered.wb-centeredCompact .wb-centeredHero {\n margin-bottom: var(--wb-len-4);\n}\n\n.wb-skeleton {\n display: flex;\n flex-direction: column;\n}\n\n.wb-skeletonRow {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-skeletonRow + .wb-skeletonRow::before {\n content: '';\n align-self: stretch;\n height: var(--wb-len-0-5);\n margin: 0 var(--wb-len-8) var(--wb-len-neg-0-5);\n background: var(--dsw-alias-border-l2);\n}\n\n.wb-skeletonBar {\n display: block;\n height: var(--wb-len-13);\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-bg-skeleton);\n animation: wb-skeleton-pulse var(--wb-dur-1-4) var(--ds-ease-in-out) infinite;\n}\n\n.wb-skeletonBarTitle {\n width: 62%;\n}\n\n.wb-skeletonBarMeta {\n width: 32%;\n height: var(--wb-len-10);\n}\n\n.wb-skeletonRow:nth-child(2n) .wb-skeletonBarTitle {\n width: 74%;\n}\n\n.wb-skeletonRow:nth-child(3n) .wb-skeletonBarTitle {\n width: 52%;\n}\n\n@keyframes wb-skeleton-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.wb-centered {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--wb-len-14);\n flex: 1;\n min-height: var(--wb-len-240);\n padding: 0 var(--wb-len-24) var(--wb-len-24);\n text-align: center;\n}\n\n.wb-centeredHero {\n display: flex;\n margin-bottom: var(--wb-len-16);\n color: var(--dsw-alias-label-dimmed);\n}\n\n.wb-centeredTitle {\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-centeredHint {\n max-width: var(--wb-len-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-centeredDetail {\n max-width: var(--wb-len-320);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-dimmed);\n word-break: break-all;\n}\n\n.wb-centeredAction {\n display: flex;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}\n.wb-textField {\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n outline: none;\n}\n\n.wb-textField:focus {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-textField:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-textField[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-textField[aria-invalid='true']:focus {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n:where(.wb-textField) {\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n}\n:where(.wb-selectTrigger) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n text-align: left;\n cursor: pointer;\n}\n\n.wb-selectTrigger:focus-visible {\n outline: none;\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true']:focus-visible {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-selectLoading:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n background: transparent;\n font-size: var(--wb-font-row);\n}\n\n.wb-selectGhost:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-selectGhost:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n border-color: transparent;\n box-shadow: none;\n}\n\n.wb-selectIconOnly {\n width: var(--wb-len-36);\n height: var(--wb-len-36);\n min-height: 0;\n gap: 0;\n padding: 0;\n justify-content: center;\n}\n\n.wb-selectReveal {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.wb-selectIconOnly .wb-selectIcon {\n width: 100%;\n height: 100%;\n}\n\n.wb-selectAnchor {\n display: block;\n width: 100%;\n}\n\n.wb-selectIcon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectValue {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n.wb-selectPlaceholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n}\n\n.wb-selectMenu {\n min-width: var(--wb-len-240);\n max-width: var(--wb-len-360);\n max-height: min(var(--wb-len-320), calc(100vh - var(--wb-len-24)));\n}\n\n:where(.wb-selectSearch) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n.wb-selectSearch:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectSearch.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: 0.5px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-selectSearch.wb-selectGhost:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: none;\n}\n\n.wb-selectSearchIcon {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-textField.wb-selectSearchInput {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n.wb-textField.wb-selectSearchInput:focus {\n box-shadow: none;\n}\n\n.wb-selectFallback {\n width: 100%;\n}\n\n.wb-selectHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\nsection.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-len-16);\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-settings-card-fill);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.wb-settings .wb-settingsTitle {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-strong-14-font-size);\n line-height: var(--wb-line-24);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\n.wb-stateBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-stateBlockTitle {\n margin: 0;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n.wb-stateBlockHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-stateBlockActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n.wb-stateBlockResolving {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_yups9_1 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._marketRow_yups9_10 {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n column-gap: var(--wb-len-14);\n row-gap: var(--wb-len-4);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketIcon_yups9_20 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_yups9_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_yups9_39 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketStatus_yups9_48 {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketStateText_yups9_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_yups9_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_yups9_66 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketName_yups9_39 ._marketVersion_yups9_72 {\n margin-left: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n}\n\n._marketVersion_yups9_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_yups9_72::before {\n content: '';\n display: inline-block;\n width: var(--wb-len-1);\n height: var(--wb-len-10);\n margin: 0 var(--wb-len-8) 0 var(--wb-len-2);\n vertical-align: -1px;\n background: var(--dsw-alias-border-l2);\n}\n\n._marketLocalTag_yups9_94 {\n margin-left: var(--wb-len-8);\n padding: 0 var(--wb-len-6);\n border: var(--wb-len-1) solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-caption);\n}\n\n._marketEnd_yups9_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_yups9_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_yups9_112::before {\n content: '';\n width: 0;\n height: var(--wb-len-14);\n border-left: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketActions_yups9_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_yups9_131 {\n color: var(--dsw-alias-state-warn-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._marketSelfDivider_yups9_137 {\n height: 0;\n margin-top: calc(0px - var(--wb-len-16));\n border-top: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketSection_yups9_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_yups9_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_yups9_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_yups9_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_yups9_169 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionAction_yups9_175 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n margin-left: auto;\n min-width: 0;\n}\n\n._marketSectionQuiet_yups9_183 ._marketSectionTitle_yups9_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_yups9_183 ._marketName_yups9_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_yups9_183 ._marketIcon_yups9_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n._marketProgress_yups9_196 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-height: var(--wb-len-32);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketNote_yups9_206 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-warn-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailure_yups9_213 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketEmpty_yups9_220 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_yups9_225 {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-32);\n padding: 0 clamp(var(--wb-len-24), 4vw, var(--wb-len-48)) var(--wb-len-48);\n overflow-x: hidden;\n overflow-y: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_yups9_225 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_yups9_243 {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-16);\n padding-top: var(--wb-len-28);\n}\n\n._marketPageTitle_yups9_251 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_yups9_256 {\n margin: var(--wb-len-4) 0 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketPageTools_yups9_262 {\n flex: none;\n align-self: center;\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: var(--wb-len-16);\n}\n\n._marketPanel_yups9_271 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_yups9_271[hidden] {\n display: none;\n}\n\n._marketTabs_yups9_281 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_yups9_286 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_yups9_291 {\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n border-radius: var(--dsw-radius-md);\n}\n\n._marketEmpty_yups9_220 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) var(--wb-len-16);\n text-align: center;\n}\n\n._marketEmptyTitle_yups9_308 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_yups9_313 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_yups9_320 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_yups9_327 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_yups9_333 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_yups9_338 {\n min-width: 0;\n max-width: var(--wb-len-240);\n margin-left: calc(0px - var(--wb-len-8));\n font-weight: 500;\n}\n\n._discoverMarketName_yups9_345 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_yups9_351 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_yups9_356 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_yups9_361 {\n flex: none;\n}\n\n._discoverSearch_yups9_365 {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 var(--wb-len-120);\n min-width: var(--wb-len-120);\n}\n\n._discoverSearchField_yups9_373 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_yups9_378 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_yups9_373 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_yups9_365 ._discoverSearchClear_yups9_387 {\n position: absolute;\n top: 50%;\n inset-inline-end: var(--wb-len-4);\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n transform: translateY(-50%);\n}\n\n._discoverSearchClear_yups9_387:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_yups9_327 {\n display: grid;\n grid-template-columns: minmax(0, auto) minmax(var(--wb-len-120), 1fr) auto;\n grid-template-areas:\n 'market search refresh'\n 'labels sort sort';\n }\n\n ._discoverMarket_yups9_333 {\n grid-area: market;\n }\n\n ._discoverMarketButton_yups9_338 {\n margin-left: 0;\n }\n\n ._discoverLabels_yups9_351 {\n grid-area: labels;\n }\n\n ._discoverSearch_yups9_365 {\n grid-area: search;\n }\n\n ._discoverSort_yups9_356 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_yups9_361 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_yups9_438 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_yups9_445 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._discoverCard_yups9_454 {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n margin: 0 calc(0px - var(--wb-len-8));\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCard_yups9_454:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_yups9_468 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverArtworkImage_yups9_480 {\n object-fit: contain;\n}\n\n._discoverMain_yups9_484 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_yups9_492 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverCardOpen_yups9_500 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n}\n\n._discoverCardOpen_yups9_500::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_yups9_500:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_yups9_500:focus-visible::after {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverStrong_yups9_531 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_yups9_537 {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverMeta_yups9_546 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._discoverMuted_yups9_553 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_yups9_559 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverUpdateAction_yups9_568 {\n color: var(--dsw-alias-state-warn-primary);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._discoverBlocked_yups9_573 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_yups9_578 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) 0;\n text-align: center;\n}\n\n._discoverEmptyTitle_yups9_587 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_yups9_578 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_yups9_597 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_yups9_603 {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n padding: 0;\n border: 0;\n background: 0 0;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--wb-font-12-5);\n cursor: pointer;\n}\n\n._discoverCrumb_yups9_603:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_yups9_603:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverCrumbIcon_yups9_626 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_yups9_630 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_yups9_636 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_yups9_642 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._discoverDetailPanel_yups9_649 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_yups9_656 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_yups9_661 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_yups9_666 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_yups9_671 {\n margin: var(--wb-len-16) 0 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverSection_yups9_677 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_yups9_684 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_yups9_690 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_yups9_695 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--wb-len-16);\n min-height: var(--wb-len-44);\n padding: var(--wb-len-8) var(--wb-len-2);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverFactKind_yups9_705 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_yups9_711 {\n min-width: 0;\n margin: 0;\n text-align: end;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xs-13);\n}\n\n._discoverCode_yups9_719 {\n padding: var(--wb-len-2) var(--wb-len-6);\n border-radius: var(--wb-radius-6);\n background: var(--dsw-alias-bg-module-platform);\n font-family: var(--ds-font-family-code);\n font-size: var(--dsw-font-xxs-12-font-size);\n box-decoration-break: clone;\n}\n\n._discoverTags_yups9_728 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_yups9_735 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_yups9_735:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_yups9_745 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_yups9_753 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverVersionName_yups9_761 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_yups9_766 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverFailure_yups9_775 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_yups9_781 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverNotice_yups9_790 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverNotice_yups9_790 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_yups9_808 {\n align-self: center;\n}\n\n._discoverTransport_yups9_812 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_yups9_818 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_yups9_825 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_yups9_818 ._discoverTransportKind_yups9_830 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_yups9_818 ._discoverTransportState_yups9_835 {\n margin-left: 0;\n}\n\n._discoverTransportHead_yups9_818 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_yups9_843 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_yups9_843 {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n}\n\n._discoverTransportRow_yups9_843:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_yups9_843:has(._discoverTransportRadio_yups9_864:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_yups9_843:has(._discoverTransportRadio_yups9_864:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_yups9_864 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_yups9_830 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_yups9_835 {\n flex: none;\n margin-left: auto;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportRow_yups9_843[data-state='ok'] ._discoverTransportState_yups9_835 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_yups9_843[data-state='auth'] ._discoverTransportState_yups9_835 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_yups9_843[data-state='unreachable'] ._discoverTransportState_yups9_835,\n._discoverTransportRow_yups9_843[data-state='unknown'] ._discoverTransportState_yups9_835 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_yups9_904 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_yups9_910 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_yups9_915 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverInstallText_yups9_926 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_yups9_932 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_yups9_936 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_yups9_942 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_yups9_950 {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wb-len-12);\n padding: var(--wb-len-10) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverSourceConfirm_yups9_959 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_yups9_965 {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: var(--wb-len-10);\n min-width: 0;\n cursor: pointer;\n}\n\n._discoverSourceRadio_yups9_974 {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._discoverSourceMain_yups9_982 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_yups9_990 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverSourceUrl_yups9_998 {\n display: block;\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverSourceMore_yups9_1008 {\n flex: none;\n}\n\n._discoverSourceLoading_yups9_1012 {\n display: flex;\n flex: none;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceHint_yups9_1022 {\n display: flex;\n flex-basis: 100%;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverSourceHint_yups9_1022 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_yups9_1036 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_yups9_1042 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_yups9_1048 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_yups9_1053 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_yups9_1059 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_yups9_1064 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_yups9_1070 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_yups9_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_yups9_468._discoverSkeletonFill_yups9_1070 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_yups9_1079 {\n display: block;\n height: var(--wb-len-12);\n margin: var(--wb-len-4) 0;\n border-radius: var(--dsw-radius-xs);\n}\n\n._discoverSkeletonTitle_yups9_1086 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_yups9_1090 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_yups9_1 {\n 0% {\n opacity: 1;\n }\n 40% {\n opacity: 0.6;\n }\n 80%,\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._discoverSkeletonFill_yups9_1070 {\n animation: none;\n }\n}\n\n._check_1g6tv_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n min-width: 0;\n}\n\n._status_1g6tv_8 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-caption);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n._button_1g6tv_15 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n}\n\n._icon_1g6tv_22 {\n display: inline-flex;\n}\n\n@media (max-width: 720px) {\n ._status_1g6tv_8 {\n display: none;\n }\n}\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1lv8f_1 {\n justify-content: center;\n width: 100%;\n height: var(--wb-len-40);\n border-radius: var(--dsw-radius-md);\n}\n\n._dialog_1lv8f_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1lv8f_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1lv8f_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1lv8f_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1lv8f_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._input_1lv8f_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1lv8f_45 {\n height: var(--wb-len-32);\n margin-left: var(--wb-len-26);\n padding: 0 var(--wb-len-10);\n}\n\n._options_1lv8f_51 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8) var(--wb-len-12);\n}\n\n._guideToggle_1lv8f_59 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-4);\n align-self: flex-start;\n margin-top: var(--wb-len-4);\n padding: 0;\n border: 0;\n background: transparent;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._guideToggle_1lv8f_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1lv8f_59 svg,\n._registryToggle_1lv8f_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1lv8f_59[aria-expanded='true'] svg,\n._registryToggle_1lv8f_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1lv8f_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1lv8f_78 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n height: var(--wb-len-26);\n padding: 0 var(--wb-len-8) 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n font: inherit;\n font-size: var(--wb-font-12-5);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._registryToggle_1lv8f_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1lv8f_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1lv8f_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1lv8f_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1lv8f_45 {\n position: fixed;\n z-index: var(--wb-z-1100);\n box-sizing: border-box;\n width: min(var(--wb-len-440), 100vw - var(--wb-len-24));\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-12);\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-2);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n box-shadow: var(--dsw-elevation-prominent);\n}\n\n._registryOption_1lv8f_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid transparent;\n border-radius: var(--dsw-radius-lg);\n cursor: pointer;\n}\n\nlabel._registryOption_1lv8f_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1lv8f_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1lv8f_143[data-checked='true'] {\n border-color: color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._registryOption_1lv8f_143 input[type='radio'] {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._registryTitle_1lv8f_179 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n font: var(--dsw-font-xs-13);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n._registryHint_1lv8f_189 {\n margin-left: var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._inputError_1lv8f_197 {\n margin: var(--wb-len-neg-4) 0 0 var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._guide_1lv8f_59 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._guideList_1lv8f_214 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._guideItem_1lv8f_223 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0;\n}\n\n._guideIndex_1lv8f_230 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._guideMain_1lv8f_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1lv8f_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1lv8f_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1lv8f_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1lv8f_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1lv8f_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1lv8f_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1lv8f_285 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0 var(--wb-len-4);\n text-align: center;\n}\n\n._heroIcon_1lv8f_294 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-44);\n height: var(--wb-len-44);\n color: var(--dsw-alias-label-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1lv8f_311 {\n margin: 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 500;\n color: var(--dsw-alias-label-secondary);\n}\n\n._wizardTitle_1lv8f_319 {\n margin: 0;\n font-size: var(--wb-font-18);\n line-height: var(--wb-len-26);\n font-weight: 600;\n}\n\n._subject_1lv8f_326 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n text-align: center;\n}\n\n._subjectName_1lv8f_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1lv8f_343,\n._subjectDesc_1lv8f_344 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._result_1lv8f_351,\n._resultWarn_1lv8f_352 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._resultWarn_1lv8f_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._resultMeta_1lv8f_365 {\n margin: 0;\n padding: 0 var(--wb-len-12);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._approval_1lv8f_373 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-state-warn-primary);\n border-radius: var(--dsw-radius-lg);\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._approvalTitle_1lv8f_383 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._approvalText_1lv8f_390 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1lv8f_396 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n font-weight: 600;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._note_1lv8f_403 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._noteWarn_1lv8f_410 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1lv8f_414 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1lv8f_418 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._detailLabel_1lv8f_425 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1lv8f_425 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-3);\n font-family: var(--dsw-font-mono, monospace);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n._note_1enlz_1 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._note_1enlz_1 > svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n._slot_1t7dx_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1t7dx_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1t7dx_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1t7dx_31 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._paused_1t7dx_35 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._trouble_1t7dx_39 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._pulse_1t7dx_43 {\n animation: _wb-debug-breathe_1t7dx_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-debug-breathe_1t7dx_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1t7dx_43 {\n animation: none;\n }\n}\n\n._entry_1t7dx_64 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1t7dx_71 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1t7dx_78 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1t7dx_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: 0;\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n}\n\n._act_1t7dx_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1t7dx_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._actStop_1t7dx_110:hover,\n._actStop_1t7dx_110:focus-visible {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._actArmed_1t7dx_115,\n._actArmed_1t7dx_115:hover,\n._actArmed_1t7dx_115:focus-visible {\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n width: auto;\n color: var(--dsw-alias-state-error-primary);\n gap: var(--wb-len-4);\n padding: 0 var(--wb-len-7);\n}\n\n._actLabel_1t7dx_125 {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._entryLine_1t7dx_131 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1t7dx_138 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1t7dx_150 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1t7dx_156 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1t7dx_162 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._slot_1gkj9_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1gkj9_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1gkj9_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1gkj9_31 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._done_1gkj9_35 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._pulse_1gkj9_39 {\n animation: _wb-record-breathe_1gkj9_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-record-breathe_1gkj9_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1gkj9_39 {\n animation: none;\n }\n}\n\n._entry_1gkj9_60 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1gkj9_67 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1gkj9_74 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1gkj9_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-22);\n padding: 0 var(--wb-len-7);\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._act_1gkj9_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1gkj9_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._entryLine_1gkj9_108 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1gkj9_115 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1gkj9_127 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1gkj9_133 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1gkj9_139 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._item_lyox9_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n}\n\n._item_lyox9_1 + ._item_lyox9_1 {\n padding-top: var(--wb-len-14);\n border-top: var(--wb-len-0-5) solid var(--dsw-alias-settings-card-stroke);\n}\n\n._head_lyox9_12 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._title_lyox9_19 {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._description_lyox9_31 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._rows_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._row_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-settings-card-stroke);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-settings-card-fill);\n}\n\n._head_85r3w_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._pick_85r3w_27 {\n flex: 0 1 auto;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._pick_85r3w_27 > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._code_85r3w_39 {\n --dsl-code-block-background: var(--dsw-alias-bg-layer-1);\n margin: 0;\n}\n\n._missing_85r3w_44,\n._conflict_85r3w_45 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-warn-primary);\n}\n._body_11oac_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._sources_11oac_7 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._sourcesLabel_11oac_14 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\nbutton._sourceOn_11oac_19 {\n border-color: var(--dsw-alias-brand-primary);\n}\n._sourceCount_11oac_22 {\n margin-left: var(--wb-len-4);\n font-variant-numeric: tabular-nums;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._reading_11oac_29 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._status_11oac_35 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failure_11oac_45 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n column-gap: var(--wb-len-10);\n row-gap: var(--wb-len-2);\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n\n._failureTitle_11oac_55 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._failureHint_11oac_62 {\n grid-column: 1;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failureAction_11oac_67 {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n}\n\n._foot_11oac_73 {\n display: flex;\n justify-content: flex-end;\n}\n._body_lox98_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._field_lox98_7 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._input_lox98_13 {\n width: 100%;\n}\n\n._label_lox98_17 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\n._hint_lox98_22 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._copy_lox98_28 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-8) var(--wb-len-16);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n._copy_lox98_28 legend {\n padding: 0;\n margin-bottom: var(--wb-len-6);\n}\n\n._actions_lox98_42 {\n display: flex;\n justify-content: flex-end;\n}\n\n._commandLabel_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n}\n\n._command_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-6) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow-wrap: anywhere;\n}\n._body_zi2j5_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._lead_zi2j5_7 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._title_zi2j5_14 {\n font-size: var(--wb-font-18);\n line-height: var(--wb-line-24);\n}\n._hint_zyzt3_1[hidden],\n._actions_zyzt3_2[hidden],\n._progress_zyzt3_3[hidden],\n._commandRow_zyzt3_4[hidden],\n._bridge_zyzt3_5[hidden],\n._raw_zyzt3_6[hidden] {\n display: none;\n}\n\n._gate_zyzt3_10 {\n position: fixed;\n inset: 0;\n z-index: var(--wb-z-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--wb-len-24);\n background: var(--dsw-alias-bg-base);\n}\n\n._card_zyzt3_21 {\n width: 100%;\n max-width: var(--wb-len-420);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-16);\n text-align: center;\n}\n\n._card_zyzt3_21:has(._actions_zyzt3_2:not([hidden])),\n._card_zyzt3_21:has(._bridge_zyzt3_5:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_zyzt3_36 {\n margin: 0;\n font-size: var(--dsw-font-base-16-font-size);\n line-height: var(--wb-line-24);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._steps_zyzt3_51 {\n list-style: none;\n margin: var(--wb-len-6) 0 0;\n padding: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n text-align: left;\n}\n\n._step_zyzt3_51 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-6) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._step_zyzt3_51[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_zyzt3_78 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-14);\n height: var(--wb-len-14);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._step_zyzt3_51[data-status='ok'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_zyzt3_51[data-status='warn'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_zyzt3_51[data-status='failed'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_zyzt3_103 {\n flex: none;\n}\n\n._detail_zyzt3_107 {\n margin-left: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._progress_zyzt3_3 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._elapsed_zyzt3_125 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._error_zyzt3_133 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n max-height: var(--wb-len-120);\n overflow: auto;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n white-space: pre-wrap;\n word-break: break-all;\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._commandRow_zyzt3_4 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n margin: 0 0 var(--wb-len-8);\n padding-right: var(--wb-len-4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._copy_zyzt3_159 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._copy_zyzt3_159:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_zyzt3_4 {\n flex: 1;\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-primary);\n}\n\n._buttons_zyzt3_192 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_zyzt3_199 {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n justify-content: center;\n background: var(--dsw-alias-bg-base);\n}\n\n._button_zyzt3_192 {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n\n._button_zyzt3_192:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_zyzt3_192:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_zyzt3_2,\n._bridge_zyzt3_5 {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-14) var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-1);\n text-align: left;\n}\n\n._fixTitle_zyzt3_250 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._actions_zyzt3_2 ._hint_zyzt3_1,\n._bridge_zyzt3_5 ._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._actions_zyzt3_2 ._commandRow_zyzt3_4,\n._bridge_zyzt3_5 ._commandRow_zyzt3_4 {\n margin: 0;\n}\n\n._actions_zyzt3_2 ._buttons_zyzt3_192,\n._bridge_zyzt3_5 ._buttons_zyzt3_192 {\n justify-content: flex-start;\n}\n\n._raw_zyzt3_6 {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._rawSummary_zyzt3_286 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_zyzt3_2 ._error_zyzt3_133,\n._bridge_zyzt3_5 ._error_zyzt3_133 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_zyzt3_296 {\n margin: 0;\n padding-left: var(--wb-len-18);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._bridgeLine_zyzt3_296 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_zyzt3_313 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_zyzt3_313::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_zyzt3_313:hover {\n text-decoration: underline;\n}\n\n._loading_zyzt3_327 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_zyzt3_327[hidden] {\n display: none;\n}\n\n._loadingMotion_zyzt3_336 {\n transform-origin: center;\n animation: _wb-spin_zyzt3_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_zyzt3_341,\n._loadingArc_zyzt3_342 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_zyzt3_341 {\n opacity: 0.25;\n}\n\n._loadingArc_zyzt3_342 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_zyzt3_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_zyzt3_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_zyzt3_1 {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }\n to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._loadingMotion_zyzt3_336,\n ._loadingArc_zyzt3_342 {\n animation: none;\n }\n}\n._changelog_1q6pj_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-10);\n min-width: 0;\n}\n\n._changelogTitle_1q6pj_9 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._changelogMissing_1q6pj_15 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._changelogBody_1q6pj_21 {\n max-height: var(--wb-len-320);\n overflow: auto;\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._trigger_15ptp_1 {\n display: flex;\n align-items: center;\n}\n\n._pop_15ptp_6 {\n position: absolute;\n top: calc(var(--wb-len-38) + var(--wb-len-8));\n right: var(--wb-len-6);\n z-index: var(--wb-z-30);\n width: min(var(--wb-len-360), calc(100% - var(--wb-len-12)));\n max-width: calc(100vw - var(--wb-len-48));\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-2);\n box-shadow: var(--dsw-shadow-lv3);\n overflow: hidden;\n}\n\n._head_15ptp_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10) var(--wb-len-12) var(--wb-len-9) var(--wb-len-14);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._title_15ptp_28 {\n flex: 1;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._rowControls_15ptp_36 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._reset_15ptp_43 {\n flex: none;\n padding: var(--wb-len-3) var(--wb-len-8);\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._reset_15ptp_43:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_15ptp_43:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_15ptp_65 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._row_15ptp_36 {\n position: relative;\n display: grid;\n grid-template-columns: 12px minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-sm);\n cursor: default;\n}\n\n._rowDragging_15ptp_85 {\n cursor: grabbing;\n}\n\n._rowBlocked_15ptp_89 {\n cursor: not-allowed;\n}\n\n._listDragging_15ptp_93 ._rowControls_15ptp_36 {\n pointer-events: none;\n}\n\n._row_15ptp_36:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOff_15ptp_101 {\n opacity: 0.55;\n}\n\n._rowOff_15ptp_101:hover {\n opacity: 1;\n}\n\n._rowOver_15ptp_109::before {\n content: '';\n position: absolute;\n top: var(--wb-len-neg-3);\n left: var(--wb-len-8);\n right: var(--wb-len-8);\n height: var(--wb-len-2);\n background: var(--dsw-alias-brand-primary);\n}\n\n._ghost_15ptp_119 {\n position: fixed;\n z-index: var(--wb-z-40);\n pointer-events: none;\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--wb-static-shadow-ghost);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n white-space: nowrap;\n}\n\n._grip_15ptp_134 {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: center;\n color: var(--dsw-alias-label-tertiary);\n user-select: none;\n cursor: grab;\n touch-action: none;\n}\n\n._gripDragging_15ptp_144 {\n cursor: grabbing;\n}\n\n._gripBlocked_15ptp_148 {\n cursor: not-allowed;\n}\n\n._label_15ptp_152 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_15ptp_159 {\n min-width: 0;\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n\n._error_15ptp_170 {\n margin: 0;\n padding: 0 var(--wb-len-14) var(--wb-len-10);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._dep_15ptp_178 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n._group_15ptp_186 {\n padding-top: var(--wb-len-6);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._groupTitle_15ptp_191 {\n margin: 0;\n padding: var(--wb-len-2) var(--wb-len-8) 0 var(--wb-len-14);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n font-weight: 400;\n color: var(--dsw-alias-label-tertiary);\n}\n._panel_1whum_1 {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: var(--wb-z-10);\n visibility: hidden;\n}\n\n._panel_1whum_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1whum_1[data-open] {\n visibility: visible;\n}\n\n._columns_1whum_18 {\n display: block;\n column-gap: var(--wb-len-12);\n}\n\n._cell_1whum_23 {\n display: flow-root;\n min-width: 0;\n break-inside: avoid;\n margin-bottom: var(--wb-len-12);\n}\n._root_1cmz0_1 {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}\n\n._rail_1cmz0_7 {\n margin: 0 0 var(--wb-len-4);\n}\n\n._glyphBox_1cmz0_11 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n._glyph_1cmz0_11 {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._glyphActive_1cmz0_30 {\n color: var(--dsw-alias-state-business-primary);\n}\n\n._triggerName_1cmz0_34 {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n._dir_1cmz0_45 {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._name_1cmz0_53 {\n flex: 0 1 auto;\n max-width: 50%;\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._triggerName_1cmz0_34 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._row_1cmz0_66 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n width: 100%;\n min-width: 0;\n}\n\n._trailing_1cmz0_74 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n margin-inline-start: auto;\n}\n\n._trailing_1cmz0_74 ._rowAction_1cmz0_84 {\n width: var(--wb-len-20);\n min-width: var(--wb-len-20);\n height: var(--wb-len-20);\n min-height: var(--wb-len-20);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n}\n\n._row_1cmz0_66 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._current_1cmz0_97 {\n flex: none;\n display: inline-flex;\n align-items: center;\n color: var(--dsw-alias-label-primary);\n}\n._dot_sosf1_1 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n._overlay_sosf1_8 {\n position: absolute;\n inset-block-start: var(--wb-len-neg-3);\n inset-inline-end: var(--wb-len-neg-3);\n}\n._tag_g9dg8_1 {\n flex: none;\n margin-inline-start: auto;\n}\n._dialog_1vye5_1 {\n width: min(var(--wb-len-420), 100%);\n}\n\n._stack_1vye5_5 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._input_1vye5_12 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-12);\n}\n\n._meta_1vye5_18 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n._dot_14w1n_1 {\n display: inline-flex;\n align-items: center;\n}\n\n._hover_14w1n_6 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._blocker_1oaj0_1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-20) var(--wb-len-16);\n text-align: center;\n}\n\n._icon_1oaj0_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_1oaj0_15 {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_1oaj0_23 {\n margin: 0;\n max-width: var(--wb-len-42em);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n text-wrap: pretty;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 {\n align-items: flex-start;\n gap: var(--wb-len-6);\n padding: var(--wb-len-4) 0 var(--wb-len-2);\n text-align: left;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._title_1oaj0_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._hint_1oaj0_23 {\n max-width: 100%;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._actions_1oaj0_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._raw_1oaj0_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_1oaj0_48 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-6);\n}\n\n._raw_1oaj0_52 {\n margin-top: var(--wb-len-10);\n width: 100%;\n max-width: var(--wb-len-360);\n text-align: left;\n}\n\n._notice_1oaj0_71 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--wb-len-10);\n margin: 0 0 var(--wb-len-10);\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-left: 2px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._notice_1oaj0_71._noticeFlat_1oaj0_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_1oaj0_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_1oaj0_98 {\n font-size: var(--wb-font-12-5);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._noticeHint_1oaj0_105 {\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._noticeActions_1oaj0_112 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-neg-2);\n}\n\n._failure_1oaj0_119 {\n margin: var(--wb-len-8) 0 0;\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._failureDetail_1oaj0_127 {\n display: block;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-label-tertiary);\n white-space: pre-wrap;\n}\n\n._inlineAction_1oaj0_134 {\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n._inlineAction_1oaj0_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n\n._rawText_1oaj0_146 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
|
|
15063
15637
|
function workbenchCss() {
|
|
15064
15638
|
return `${tokens_default}\n${palette_default}\n${scale_default}\n${sidebar_default}\n${sidebar_app_default}\n${rightbar_default}\n${chrome_default}\n${board_default}\n${motion_default}\n${COMPONENT_CSS_MARKER}`;
|
|
15065
15639
|
}
|