@dsh-workbench/core 1.1.1 → 1.1.3
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/README.md +14 -5
- package/bin/dsh-workbench +7 -1
- package/client.js +1118 -429
- package/dist/client/client.body.js +1118 -429
- package/dist/client/index.js +970 -281
- package/dist/host/index.js +788 -383
- package/dist/types/app/layouts/approval-detail.d.ts +2 -1
- package/dist/types/app/layouts/market/discover-confirm.d.ts +1 -1
- 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-source-item.d.ts +26 -0
- package/dist/types/app/layouts/market/discover-sources-dialog.d.ts +4 -0
- 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/discover-view.d.ts +2 -0
- package/dist/types/app/layouts/market/use-discover.d.ts +11 -1
- package/dist/types/app/layouts/market/use-git-transport.d.ts +19 -0
- package/dist/types/app/layouts/market/use-module-versions.d.ts +1 -0
- package/dist/types/kernel/contract/market-index.d.ts +2 -2
- package/dist/types/modules/panels/client.d.ts +1 -1
- package/dist/types/modules/panels/model/approval.d.ts +4 -2
- package/dist/types/modules/panels/model/diy-publish.d.ts +10 -0
- package/dist/types/modules/panels/model/diy-tools.d.ts +0 -1
- package/dist/types/modules/panels/model/market-sources-act.d.ts +2 -1
- package/dist/types/modules/panels/model/market-sources-tool.d.ts +3 -0
- package/dist/types/modules/panels/model/market-sources-tool.test.d.ts +1 -0
- package/dist/types/modules/panels/model/market-tools.d.ts +8 -1
- package/dist/types/modules/panels/model/publish-claim.d.ts +2 -0
- package/dist/types/modules/panels/unit.d.ts +7 -5
- package/dist/types/shared/api/host/diy-publish-preview.d.ts +2 -0
- package/dist/types/shared/api/host/git-exec.d.ts +2 -0
- package/dist/types/shared/api/host/git-probe.d.ts +6 -0
- package/dist/types/shared/api/host/git-routes.d.ts +3 -0
- package/dist/types/shared/api/host/market-source-init.d.ts +1 -0
- package/dist/types/shared/api/host/market-sources-store.d.ts +2 -0
- package/dist/types/shared/hooks/market-queries.d.ts +3 -2
- package/package.json +3 -3
- package/skills/workbench-module-diy/FAMILY.md +3 -4
- package/skills/workbench-module-diy/SKILL.md +4 -1
- package/skills/workbench-module-diy/WIRING.md +9 -2
- package/dist/types/modules/panels/model/diy-changelog.d.ts +0 -2
- package/dist/types/shared/api/host/diy-changelog.d.ts +0 -13
package/dist/client/index.js
CHANGED
|
@@ -3201,6 +3201,7 @@ var en = {
|
|
|
3201
3201
|
"panels.market.add.failurePnpmMissing": "pnpm was not found, cannot install",
|
|
3202
3202
|
"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
3203
|
"panels.market.add.failureGeneric": "Something went wrong during install — see the install details",
|
|
3204
|
+
"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
3205
|
"panels.market.add.approveTitle": "Your approval is needed for install scripts",
|
|
3205
3206
|
"panels.market.add.approveCaution": "Only allow packages you trust: install scripts run on this machine with your permissions.",
|
|
3206
3207
|
"panels.market.add.approveRun": "Allow and continue installing",
|
|
@@ -3242,10 +3243,16 @@ var en = {
|
|
|
3242
3243
|
"panels.discover.addingSource": "Adding…",
|
|
3243
3244
|
"panels.discover.addFirstSource": "Add index source",
|
|
3244
3245
|
"panels.discover.removeSource": "Remove",
|
|
3245
|
-
"panels.discover.
|
|
3246
|
-
"panels.discover.
|
|
3247
|
-
"panels.discover.
|
|
3248
|
-
"panels.discover.
|
|
3246
|
+
"panels.discover.removeTitle": "Remove this index source?",
|
|
3247
|
+
"panels.discover.removeBody": "\"{label}\" will be removed from this list; the repository itself is not deleted, and you can add it back later.",
|
|
3248
|
+
"panels.discover.sourceActions": "Actions for {label}",
|
|
3249
|
+
"panels.discover.sourceStateWritable": "Publish target",
|
|
3250
|
+
"panels.discover.sourceStateReadOnly": "Read-only list",
|
|
3251
|
+
"panels.discover.sourceEnable": "Set up for publishing",
|
|
3252
|
+
"panels.discover.sourceDisable": "Set to read-only",
|
|
3253
|
+
"panels.discover.sourceWorking": "Updating…",
|
|
3254
|
+
"panels.discover.sourceEnabled": "\"{label}\" is ready for publishing",
|
|
3255
|
+
"panels.discover.sourceReadOnly": "\"{label}\" is now read-only",
|
|
3249
3256
|
"panels.discover.refresh": "Refresh",
|
|
3250
3257
|
"panels.discover.search": "Search modules",
|
|
3251
3258
|
"panels.discover.clearSearch": "Clear search",
|
|
@@ -3267,12 +3274,13 @@ var en = {
|
|
|
3267
3274
|
"panels.discover.noSourceHint": "Add a module market index (http address or git repository) to browse and install its modules here",
|
|
3268
3275
|
"panels.discover.sourcesFailed": "Could not read the index sources.",
|
|
3269
3276
|
"panels.discover.unreadable": "Could not read this index.",
|
|
3277
|
+
"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.",
|
|
3270
3278
|
"panels.discover.invalid": "This index is not in a valid format.",
|
|
3271
3279
|
"panels.discover.emptyRepo": "This repository has no commits yet.",
|
|
3272
3280
|
"panels.discover.missingIndex": "This repository has no {path} yet.",
|
|
3273
3281
|
"panels.discover.initTitle": "Initialize this repository as a module market index?",
|
|
3274
3282
|
"panels.discover.initCta": "Initialize market index",
|
|
3275
|
-
"panels.discover.initWhat": "It will write market.json and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under packages/<
|
|
3283
|
+
"panels.discover.initWhat": "It will write market.json and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under packages/<package-name>/. The repository stays owned by its owner.",
|
|
3276
3284
|
"panels.discover.initBranch": "Branch",
|
|
3277
3285
|
"panels.discover.initBranchHint": "The index and build files go to this branch; an empty repository gets it created.",
|
|
3278
3286
|
"panels.discover.initBranchBad": "Use only letters, digits, dots, underscores, slashes, or dashes in a branch name.",
|
|
@@ -3290,8 +3298,23 @@ var en = {
|
|
|
3290
3298
|
"panels.discover.badShellDetail": "This version is not compatible with the running workbench {current}; it requires {peer}",
|
|
3291
3299
|
"panels.discover.unverified": "Workbench unverified",
|
|
3292
3300
|
"panels.discover.installing": "Installing…",
|
|
3301
|
+
"panels.discover.installingNamed": "Installing {name}…",
|
|
3302
|
+
"panels.discover.cancelInstall": "Cancel install",
|
|
3303
|
+
"panels.discover.cancelling": "Cancelling…",
|
|
3304
|
+
"panels.discover.installCancelled": "Install cancelled: {name}",
|
|
3293
3305
|
"panels.discover.installedDone": "Installed: {name}",
|
|
3294
3306
|
"panels.discover.failed": "Failed: {reason}",
|
|
3307
|
+
"panels.discover.transportTitle": "Where to read this repository",
|
|
3308
|
+
"panels.discover.transportSsh": "SSH",
|
|
3309
|
+
"panels.discover.transportHttps": "HTTPS",
|
|
3310
|
+
"panels.discover.transportOk": "Readable",
|
|
3311
|
+
"panels.discover.transportAuth": "Needs credentials",
|
|
3312
|
+
"panels.discover.transportUnreachable": "Unreachable",
|
|
3313
|
+
"panels.discover.transportUnknown": "Not probed",
|
|
3314
|
+
"panels.discover.transportChecking": "Checking…",
|
|
3315
|
+
"panels.discover.transportTest": "Test this address",
|
|
3316
|
+
"panels.discover.transportPlaceholder": "Or paste another address (mirror, alias)",
|
|
3317
|
+
"panels.discover.transportNeedsAuth": "This repository needs credentials: clone it once in a terminal, or set up an SSH key / credential helper, then install again.",
|
|
3295
3318
|
"panels.discover.expand": "Show versions",
|
|
3296
3319
|
"panels.discover.collapse": "Hide versions",
|
|
3297
3320
|
"panels.discover.versionCount": "{n} versions",
|
|
@@ -3582,6 +3605,13 @@ var en = {
|
|
|
3582
3605
|
"approval.publish.version": "Version",
|
|
3583
3606
|
"approval.publish.author": "Author",
|
|
3584
3607
|
"approval.publish.authorMissing": "unsigned",
|
|
3608
|
+
"approval.publish.owner": "Owner",
|
|
3609
|
+
"approval.publish.ownerUnowned": "originally unattributed",
|
|
3610
|
+
"approval.publish.ownerTaken": "Owned by {owner}",
|
|
3611
|
+
"approval.publish.unit": "Module id",
|
|
3612
|
+
"approval.publish.unitTaken": "Taken by {entry}",
|
|
3613
|
+
"approval.publish.path": "Artifact dir",
|
|
3614
|
+
"approval.publish.pathTaken": "Taken by {entry}",
|
|
3585
3615
|
"approval.publish.registry": "Registry",
|
|
3586
3616
|
"approval.publish.repo": "Repository",
|
|
3587
3617
|
"approval.publish.branch": "Branch",
|
|
@@ -3592,6 +3622,7 @@ var en = {
|
|
|
3592
3622
|
"approval.publish.twoCommits": "build files + market.json in 2 commits, one push",
|
|
3593
3623
|
"approval.publish.reading": "Reading…",
|
|
3594
3624
|
"approval.publish.changelog": "Changelog for {version}",
|
|
3625
|
+
"approval.publish.changelogPending": "This release writes the {version} changelog entry",
|
|
3595
3626
|
"approval.publish.changelogMissing": "No changelog entry for {version}; publishing will be blocked",
|
|
3596
3627
|
"approval.publish.targetAuto": "configured default",
|
|
3597
3628
|
"approval.publish.targetTeam": "team registry",
|
|
@@ -3600,6 +3631,15 @@ var en = {
|
|
|
3600
3631
|
"approval.publish.targetGit": "git repository",
|
|
3601
3632
|
"approval.publish.targetMarket": "module market index",
|
|
3602
3633
|
"approval.publish.targetLocal": "keep local",
|
|
3634
|
+
"approval.market.source": "Index source",
|
|
3635
|
+
"approval.market.url": "URL",
|
|
3636
|
+
"approval.market.action": "This action",
|
|
3637
|
+
"approval.market.policy": "Current state",
|
|
3638
|
+
"approval.market.enable": "make it publishable",
|
|
3639
|
+
"approval.market.disable": "make it read-only",
|
|
3640
|
+
"approval.market.writable": "publishable",
|
|
3641
|
+
"approval.market.readOnly": "read-only module list",
|
|
3642
|
+
"approval.market.reading": "Reading…",
|
|
3603
3643
|
"markdown.copy": "Copy",
|
|
3604
3644
|
"markdown.copied": "Copied",
|
|
3605
3645
|
"markdown.footnotes": "Footnotes",
|
|
@@ -3856,6 +3896,7 @@ var dictionaries = {
|
|
|
3856
3896
|
"panels.market.add.failurePnpmMissing": "没有找到 pnpm,无法安装",
|
|
3857
3897
|
"panels.market.add.failureInstalled": "它已经装在这份工作台里了。同一个包不能就地覆盖,得先卸载再装;这次卸载也没成功。",
|
|
3858
3898
|
"panels.market.add.failureGeneric": "安装过程中出错,原因见安装详情",
|
|
3899
|
+
"panels.market.add.failureCredentials": "这个仓库要凭证:本机没有它的 git 凭据。先在终端里 clone 一次、配好凭据助手,或改用 SSH 地址,再装一次。",
|
|
3859
3900
|
"panels.market.add.approveTitle": "需要你允许安装脚本",
|
|
3860
3901
|
"panels.market.add.approveCaution": "只允许你信得过的包:安装脚本会以你的权限在这台机器上运行。",
|
|
3861
3902
|
"panels.market.add.approveRun": "允许并继续安装",
|
|
@@ -3897,10 +3938,16 @@ var dictionaries = {
|
|
|
3897
3938
|
"panels.discover.addingSource": "正在添加…",
|
|
3898
3939
|
"panels.discover.addFirstSource": "添加索引源",
|
|
3899
3940
|
"panels.discover.removeSource": "移除",
|
|
3900
|
-
"panels.discover.
|
|
3901
|
-
"panels.discover.
|
|
3902
|
-
"panels.discover.
|
|
3903
|
-
"panels.discover.
|
|
3941
|
+
"panels.discover.removeTitle": "移除这个索引源?",
|
|
3942
|
+
"panels.discover.removeBody": "会把「{label}」从这份列表里移除;仓库本身不会被删,之后还能再添加。",
|
|
3943
|
+
"panels.discover.sourceActions": "「{label}」的操作",
|
|
3944
|
+
"panels.discover.sourceStateWritable": "可发布",
|
|
3945
|
+
"panels.discover.sourceStateReadOnly": "仅读取模块列表",
|
|
3946
|
+
"panels.discover.sourceEnable": "设为可发布",
|
|
3947
|
+
"panels.discover.sourceDisable": "设为只读",
|
|
3948
|
+
"panels.discover.sourceWorking": "设置中…",
|
|
3949
|
+
"panels.discover.sourceEnabled": "已把「{label}」设为可发布",
|
|
3950
|
+
"panels.discover.sourceReadOnly": "已把「{label}」设为只读",
|
|
3904
3951
|
"panels.discover.refresh": "刷新",
|
|
3905
3952
|
"panels.discover.search": "搜索模块",
|
|
3906
3953
|
"panels.discover.clearSearch": "清除搜索",
|
|
@@ -3922,12 +3969,13 @@ var dictionaries = {
|
|
|
3922
3969
|
"panels.discover.noSourceHint": "添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块",
|
|
3923
3970
|
"panels.discover.sourcesFailed": "无法读取索引源",
|
|
3924
3971
|
"panels.discover.unreadable": "无法读取此索引",
|
|
3972
|
+
"panels.discover.sourceAuth": "这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。",
|
|
3925
3973
|
"panels.discover.invalid": "此索引的格式无效",
|
|
3926
3974
|
"panels.discover.emptyRepo": "这个仓库还没有任何提交",
|
|
3927
3975
|
"panels.discover.missingIndex": "仓库里还没有索引文件 {path}",
|
|
3928
3976
|
"panels.discover.initTitle": "把这个仓库初始化成模块市场索引?",
|
|
3929
3977
|
"panels.discover.initCta": "初始化成市场索引",
|
|
3930
|
-
"panels.discover.initWhat": "会在 {branch} 分支写 market.json 与 README.md
|
|
3978
|
+
"panels.discover.initWhat": "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到按包名分的 packages/<包名>/。仓库的写权限归它的所有者。",
|
|
3931
3979
|
"panels.discover.initBranch": "分支",
|
|
3932
3980
|
"panels.discover.initBranchHint": "索引和打包文件都发到这个分支;空仓库会新建它。",
|
|
3933
3981
|
"panels.discover.initBranchBad": "分支名只能用字母、数字、点、下划线、斜杠或短横线",
|
|
@@ -3945,8 +3993,23 @@ var dictionaries = {
|
|
|
3945
3993
|
"panels.discover.badShellDetail": "此版本与当前的工作台 {current} 不兼容,它要求 {peer}",
|
|
3946
3994
|
"panels.discover.unverified": "工作台未验证",
|
|
3947
3995
|
"panels.discover.installing": "正在安装…",
|
|
3996
|
+
"panels.discover.installingNamed": "正在安装「{name}」…",
|
|
3997
|
+
"panels.discover.cancelInstall": "取消安装",
|
|
3998
|
+
"panels.discover.cancelling": "正在取消…",
|
|
3999
|
+
"panels.discover.installCancelled": "已取消安装:{name}",
|
|
3948
4000
|
"panels.discover.installedDone": "装好了:{name}",
|
|
3949
4001
|
"panels.discover.failed": "操作失败:{reason}",
|
|
4002
|
+
"panels.discover.transportTitle": "从哪读这个仓库",
|
|
4003
|
+
"panels.discover.transportSsh": "SSH",
|
|
4004
|
+
"panels.discover.transportHttps": "HTTPS",
|
|
4005
|
+
"panels.discover.transportOk": "能读",
|
|
4006
|
+
"panels.discover.transportAuth": "要凭证",
|
|
4007
|
+
"panels.discover.transportUnreachable": "连不上",
|
|
4008
|
+
"panels.discover.transportUnknown": "没探成",
|
|
4009
|
+
"panels.discover.transportChecking": "正在探测…",
|
|
4010
|
+
"panels.discover.transportTest": "试这个地址",
|
|
4011
|
+
"panels.discover.transportPlaceholder": "或贴一个别的地址(公司镜像、别名)",
|
|
4012
|
+
"panels.discover.transportNeedsAuth": "这个仓库要凭证:先在终端里把它 clone 一次,或配好 SSH key / 凭据助手;配好后再点安装。",
|
|
3950
4013
|
"panels.discover.expand": "展开版本",
|
|
3951
4014
|
"panels.discover.collapse": "收起版本",
|
|
3952
4015
|
"panels.discover.versionCount": "{n} 个版本",
|
|
@@ -4237,6 +4300,13 @@ var dictionaries = {
|
|
|
4237
4300
|
"approval.publish.version": "版本",
|
|
4238
4301
|
"approval.publish.author": "作者",
|
|
4239
4302
|
"approval.publish.authorMissing": "未署名",
|
|
4303
|
+
"approval.publish.owner": "认领人",
|
|
4304
|
+
"approval.publish.ownerUnowned": "原来没署名",
|
|
4305
|
+
"approval.publish.ownerTaken": "已有主人:{owner}",
|
|
4306
|
+
"approval.publish.unit": "模块 id",
|
|
4307
|
+
"approval.publish.unitTaken": "已被 {entry} 占用",
|
|
4308
|
+
"approval.publish.path": "产物目录",
|
|
4309
|
+
"approval.publish.pathTaken": "已被 {entry} 占用",
|
|
4240
4310
|
"approval.publish.registry": "源",
|
|
4241
4311
|
"approval.publish.repo": "仓库",
|
|
4242
4312
|
"approval.publish.branch": "分支",
|
|
@@ -4247,6 +4317,7 @@ var dictionaries = {
|
|
|
4247
4317
|
"approval.publish.twoCommits": "打包文件 + market.json 两次提交,一次推送",
|
|
4248
4318
|
"approval.publish.reading": "读取中…",
|
|
4249
4319
|
"approval.publish.changelog": "{version} 的更新日志",
|
|
4320
|
+
"approval.publish.changelogPending": "{version} 这一版会写进更新日志,随包发布",
|
|
4250
4321
|
"approval.publish.changelogMissing": "这一版还没有更新日志({version}),发布会被拦下",
|
|
4251
4322
|
"approval.publish.targetAuto": "按配置默认",
|
|
4252
4323
|
"approval.publish.targetTeam": "团队源",
|
|
@@ -4255,6 +4326,15 @@ var dictionaries = {
|
|
|
4255
4326
|
"approval.publish.targetGit": "git 仓库",
|
|
4256
4327
|
"approval.publish.targetMarket": "模块市场索引",
|
|
4257
4328
|
"approval.publish.targetLocal": "留在本机",
|
|
4329
|
+
"approval.market.source": "索引源",
|
|
4330
|
+
"approval.market.url": "地址",
|
|
4331
|
+
"approval.market.action": "这次操作",
|
|
4332
|
+
"approval.market.policy": "当前状态",
|
|
4333
|
+
"approval.market.enable": "设为可发布",
|
|
4334
|
+
"approval.market.disable": "改回只读",
|
|
4335
|
+
"approval.market.writable": "可发布",
|
|
4336
|
+
"approval.market.readOnly": "仅读取模块列表",
|
|
4337
|
+
"approval.market.reading": "正在读取…",
|
|
4258
4338
|
"markdown.copy": "复制",
|
|
4259
4339
|
"markdown.copied": "已复制",
|
|
4260
4340
|
"markdown.footnotes": "脚注",
|
|
@@ -4345,6 +4425,99 @@ function marketInstallTarget(name, version, source) {
|
|
|
4345
4425
|
return { spec: path === "" ? base : `${base}&path:/${path}` };
|
|
4346
4426
|
}
|
|
4347
4427
|
//#endregion
|
|
4428
|
+
//#region ../shared/dist/lib/git-address.js
|
|
4429
|
+
var SCP = /^(?:([A-Za-z0-9._-]+)@)?([A-Za-z0-9.-]+):(?!\/)(\S+)$/;
|
|
4430
|
+
function bare(url) {
|
|
4431
|
+
return url.trim().replace(/^git\+/, "");
|
|
4432
|
+
}
|
|
4433
|
+
function pathOf(pathname) {
|
|
4434
|
+
return pathname.replace(/^\/+/, "").replace(/\/+$/, "");
|
|
4435
|
+
}
|
|
4436
|
+
/**
|
|
4437
|
+
* 把一个 git 地址拆成「哪台主机 + 哪个路径」,不管发布者当初用的是 https、ssh 还是
|
|
4438
|
+
* scp 那种 `git@host:path` 写法;认不出来给 undefined。
|
|
4439
|
+
*/
|
|
4440
|
+
function gitAddressOf(url) {
|
|
4441
|
+
const text = bare(url);
|
|
4442
|
+
if (text === "") return void 0;
|
|
4443
|
+
if (text.includes("://")) {
|
|
4444
|
+
let parsed;
|
|
4445
|
+
try {
|
|
4446
|
+
parsed = new URL(text);
|
|
4447
|
+
} catch {
|
|
4448
|
+
return;
|
|
4449
|
+
}
|
|
4450
|
+
if (parsed.protocol !== "https:" && parsed.protocol !== "http:" && parsed.protocol !== "ssh:") return;
|
|
4451
|
+
const path = pathOf(parsed.pathname);
|
|
4452
|
+
if (path === "") return void 0;
|
|
4453
|
+
const port = parsed.port === "" ? void 0 : Number(parsed.port);
|
|
4454
|
+
const shared = {
|
|
4455
|
+
host: parsed.hostname,
|
|
4456
|
+
path,
|
|
4457
|
+
...port === void 0 ? {} : { port }
|
|
4458
|
+
};
|
|
4459
|
+
if (parsed.protocol !== "ssh:") return {
|
|
4460
|
+
kind: "https",
|
|
4461
|
+
...shared
|
|
4462
|
+
};
|
|
4463
|
+
return {
|
|
4464
|
+
kind: "ssh",
|
|
4465
|
+
...shared,
|
|
4466
|
+
...parsed.username === "" ? {} : { user: parsed.username }
|
|
4467
|
+
};
|
|
4468
|
+
}
|
|
4469
|
+
const scp = SCP.exec(text);
|
|
4470
|
+
if (scp === null) return void 0;
|
|
4471
|
+
const path = pathOf(scp[3] ?? "");
|
|
4472
|
+
if (path === "") return void 0;
|
|
4473
|
+
return {
|
|
4474
|
+
kind: "ssh",
|
|
4475
|
+
host: scp[2] ?? "",
|
|
4476
|
+
path,
|
|
4477
|
+
...scp[1] === void 0 ? {} : { user: scp[1] }
|
|
4478
|
+
};
|
|
4479
|
+
}
|
|
4480
|
+
/** 一份地址的规范写法:ssh 一律成 `ssh://user@host/path`(pnpm 认这个),https 原样。 */
|
|
4481
|
+
function gitAddressText(address) {
|
|
4482
|
+
const port = address.port === void 0 ? "" : `:${String(address.port)}`;
|
|
4483
|
+
if (address.kind === "ssh") return `ssh://${address.user === void 0 || address.user === "" ? "git" : address.user}@${address.host}${port}/${address.path}`;
|
|
4484
|
+
return `https://${address.host}${port}/${address.path}`;
|
|
4485
|
+
}
|
|
4486
|
+
/**
|
|
4487
|
+
* 同一个仓库的两种读法,发布者用的那种排前面。ssh 那条一律规范成 `ssh://` 形式,
|
|
4488
|
+
* 因为 `git@host:path` 拼进安装 spec 时 pnpm 不认;https 那条保留发布者的原样(含 http)。
|
|
4489
|
+
*/
|
|
4490
|
+
function gitTransportCandidates(url) {
|
|
4491
|
+
const address = gitAddressOf(url);
|
|
4492
|
+
if (address === void 0) {
|
|
4493
|
+
const only = bare(url);
|
|
4494
|
+
return only === "" ? [] : [{
|
|
4495
|
+
kind: only.startsWith("ssh") ? "ssh" : "https",
|
|
4496
|
+
url: only
|
|
4497
|
+
}];
|
|
4498
|
+
}
|
|
4499
|
+
const primary = {
|
|
4500
|
+
kind: address.kind,
|
|
4501
|
+
url: address.kind === "ssh" ? gitAddressText(address) : bare(url)
|
|
4502
|
+
};
|
|
4503
|
+
const other = address.kind === "https" ? {
|
|
4504
|
+
kind: "ssh",
|
|
4505
|
+
url: gitAddressText({
|
|
4506
|
+
kind: "ssh",
|
|
4507
|
+
host: address.host,
|
|
4508
|
+
path: address.path
|
|
4509
|
+
})
|
|
4510
|
+
} : {
|
|
4511
|
+
kind: "https",
|
|
4512
|
+
url: gitAddressText({
|
|
4513
|
+
kind: "https",
|
|
4514
|
+
host: address.host,
|
|
4515
|
+
path: address.path
|
|
4516
|
+
})
|
|
4517
|
+
};
|
|
4518
|
+
return other.url === primary.url ? [primary] : [primary, other];
|
|
4519
|
+
}
|
|
4520
|
+
//#endregion
|
|
4348
4521
|
//#region ../shared/dist/lib/board-fact.js
|
|
4349
4522
|
/**
|
|
4350
4523
|
* 判一个路径落不落在这个工作区里(按路径前缀比,不是字符串包含)。
|
|
@@ -4622,6 +4795,7 @@ function markNextProbeSilent() {
|
|
|
4622
4795
|
silentNextProbe = true;
|
|
4623
4796
|
}
|
|
4624
4797
|
var probe$1 = NO_PROBE;
|
|
4798
|
+
var probing = 0;
|
|
4625
4799
|
var probeListeners = /* @__PURE__ */ new Set();
|
|
4626
4800
|
function probeValue() {
|
|
4627
4801
|
return probe$1;
|
|
@@ -4655,8 +4829,10 @@ function subscribeCapabilities(listener) {
|
|
|
4655
4829
|
};
|
|
4656
4830
|
}
|
|
4657
4831
|
function setCapabilities(next, rechecked = false) {
|
|
4658
|
-
if (next === null)
|
|
4659
|
-
|
|
4832
|
+
if (next === null) {
|
|
4833
|
+
probing = 0;
|
|
4834
|
+
setProbe(NO_PROBE);
|
|
4835
|
+
} else if (rechecked) setProbe({
|
|
4660
4836
|
...probe$1,
|
|
4661
4837
|
checkedAt: Date.now()
|
|
4662
4838
|
});
|
|
@@ -4665,13 +4841,17 @@ function setCapabilities(next, rechecked = false) {
|
|
|
4665
4841
|
for (const listener of [...listeners$7]) listener();
|
|
4666
4842
|
}
|
|
4667
4843
|
function beginProbe() {
|
|
4668
|
-
|
|
4844
|
+
probing += 1;
|
|
4845
|
+
if (probing > 1) return;
|
|
4669
4846
|
setProbe({
|
|
4670
4847
|
...probe$1,
|
|
4671
4848
|
checking: true
|
|
4672
4849
|
});
|
|
4673
4850
|
}
|
|
4674
4851
|
function endProbe() {
|
|
4852
|
+
if (probing === 0) return;
|
|
4853
|
+
probing -= 1;
|
|
4854
|
+
if (probing > 0) return;
|
|
4675
4855
|
setProbe({
|
|
4676
4856
|
...probe$1,
|
|
4677
4857
|
checking: false
|
|
@@ -4711,13 +4891,14 @@ function runCapabilityRead(options) {
|
|
|
4711
4891
|
const at = epoch$1;
|
|
4712
4892
|
const seq = readSeq$1 += 1;
|
|
4713
4893
|
if (force) newestForceSeq$1 = seq;
|
|
4714
|
-
|
|
4894
|
+
const shown = force && !silent;
|
|
4895
|
+
if (shown) beginProbe();
|
|
4715
4896
|
return shareCapabilityFetch(force, load).then((result) => {
|
|
4716
4897
|
if (at !== epoch$1) return;
|
|
4717
4898
|
if (!force && seq < newestForceSeq$1) return;
|
|
4718
4899
|
publishCapability(result, force);
|
|
4719
4900
|
}).finally(() => {
|
|
4720
|
-
if (
|
|
4901
|
+
if (shown) endProbe();
|
|
4721
4902
|
});
|
|
4722
4903
|
}
|
|
4723
4904
|
function useCapabilities(refreshToken, reloadToken = 0) {
|
|
@@ -5715,121 +5896,138 @@ function useMarketTransient(input) {
|
|
|
5715
5896
|
};
|
|
5716
5897
|
}
|
|
5717
5898
|
var MarketPage_module_default = {
|
|
5718
|
-
marketList: "
|
|
5719
|
-
marketRow: "
|
|
5720
|
-
marketIcon: "
|
|
5721
|
-
marketMain: "
|
|
5722
|
-
marketName: "
|
|
5723
|
-
marketStatus: "
|
|
5724
|
-
marketStateText: "
|
|
5725
|
-
marketSep: "
|
|
5726
|
-
marketReason: "
|
|
5727
|
-
marketVersion: "
|
|
5728
|
-
marketLocalTag: "
|
|
5729
|
-
marketEnd: "
|
|
5730
|
-
marketSwitchSeat: "
|
|
5731
|
-
marketActions: "
|
|
5732
|
-
marketUpdateAction: "
|
|
5733
|
-
marketSelfDivider: "
|
|
5734
|
-
marketSection: "
|
|
5735
|
-
marketSectionHead: "
|
|
5736
|
-
marketSectionIcon: "
|
|
5737
|
-
marketSectionTitle: "
|
|
5738
|
-
marketSectionCount: "
|
|
5739
|
-
marketSectionQuiet: "
|
|
5740
|
-
marketProgress: "
|
|
5741
|
-
marketNote: "
|
|
5742
|
-
marketFailure: "
|
|
5743
|
-
marketEmpty: "
|
|
5744
|
-
marketPage: "
|
|
5745
|
-
marketPageHead: "
|
|
5746
|
-
marketPageTitle: "
|
|
5747
|
-
marketPageIntro: "
|
|
5748
|
-
marketPageTools: "
|
|
5749
|
-
marketPanel: "
|
|
5750
|
-
marketTabs: "
|
|
5751
|
-
marketTabList: "
|
|
5752
|
-
marketIconButton: "
|
|
5753
|
-
marketIconWrap: "
|
|
5754
|
-
marketIconButtonSpinning: "
|
|
5755
|
-
"wb-spin": "_wb-
|
|
5756
|
-
marketAddButton: "
|
|
5757
|
-
marketEmptyTitle: "
|
|
5758
|
-
discoverPage: "
|
|
5759
|
-
discoverBar: "
|
|
5760
|
-
discoverTools: "
|
|
5761
|
-
discoverMarket: "
|
|
5762
|
-
discoverMarketButton: "
|
|
5763
|
-
discoverMarketName: "
|
|
5764
|
-
discoverLabels: "
|
|
5765
|
-
discoverSort: "
|
|
5766
|
-
discoverRefresh: "
|
|
5767
|
-
discoverSearch: "
|
|
5768
|
-
discoverSearchField: "
|
|
5769
|
-
discoverSearchFieldFilled: "
|
|
5770
|
-
discoverSearchClear: "
|
|
5771
|
-
discoverChips: "
|
|
5772
|
-
discoverList: "
|
|
5773
|
-
discoverCard: "
|
|
5774
|
-
discoverArtwork: "
|
|
5775
|
-
discoverArtworkImage: "
|
|
5776
|
-
discoverMain: "
|
|
5777
|
-
discoverTitleRow: "
|
|
5778
|
-
discoverCardOpen: "
|
|
5779
|
-
discoverStrong: "
|
|
5780
|
-
discoverDesc: "
|
|
5781
|
-
discoverMeta: "
|
|
5782
|
-
discoverMuted: "
|
|
5783
|
-
discoverEnd: "
|
|
5784
|
-
discoverBlocked: "
|
|
5785
|
-
discoverEmpty: "
|
|
5786
|
-
discoverEmptyTitle: "
|
|
5787
|
-
discoverDetail: "
|
|
5788
|
-
discoverCrumb: "
|
|
5789
|
-
discoverCrumbIcon: "
|
|
5790
|
-
discoverDetailHead: "
|
|
5791
|
-
discoverDetailTitle: "
|
|
5792
|
-
discoverDetailText: "
|
|
5793
|
-
discoverDetailPanel: "
|
|
5794
|
-
discoverDetailTabs: "
|
|
5795
|
-
discoverDetailTabList: "
|
|
5796
|
-
discoverDocBody: "
|
|
5797
|
-
discoverDocNotice: "
|
|
5798
|
-
discoverSection: "
|
|
5799
|
-
discoverSectionTitle: "
|
|
5800
|
-
discoverFacts: "
|
|
5801
|
-
discoverFactRow: "
|
|
5802
|
-
discoverFactKind: "
|
|
5803
|
-
discoverFactValue: "
|
|
5804
|
-
discoverCode: "
|
|
5805
|
-
discoverTags: "
|
|
5806
|
-
discoverLink: "
|
|
5807
|
-
discoverVersions: "
|
|
5808
|
-
discoverVersionRow: "
|
|
5809
|
-
discoverVersionName: "
|
|
5810
|
-
discoverError: "
|
|
5811
|
-
discoverFailure: "
|
|
5812
|
-
discoverLoading: "
|
|
5813
|
-
discoverNotice: "
|
|
5814
|
-
discoverMore: "
|
|
5815
|
-
|
|
5816
|
-
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5831
|
-
|
|
5832
|
-
|
|
5899
|
+
marketList: "_marketList_jfyof_1",
|
|
5900
|
+
marketRow: "_marketRow_jfyof_10",
|
|
5901
|
+
marketIcon: "_marketIcon_jfyof_20",
|
|
5902
|
+
marketMain: "_marketMain_jfyof_32",
|
|
5903
|
+
marketName: "_marketName_jfyof_39",
|
|
5904
|
+
marketStatus: "_marketStatus_jfyof_48",
|
|
5905
|
+
marketStateText: "_marketStateText_jfyof_58",
|
|
5906
|
+
marketSep: "_marketSep_jfyof_62",
|
|
5907
|
+
marketReason: "_marketReason_jfyof_66",
|
|
5908
|
+
marketVersion: "_marketVersion_jfyof_72",
|
|
5909
|
+
marketLocalTag: "_marketLocalTag_jfyof_94",
|
|
5910
|
+
marketEnd: "_marketEnd_jfyof_105",
|
|
5911
|
+
marketSwitchSeat: "_marketSwitchSeat_jfyof_112",
|
|
5912
|
+
marketActions: "_marketActions_jfyof_125",
|
|
5913
|
+
marketUpdateAction: "_marketUpdateAction_jfyof_131",
|
|
5914
|
+
marketSelfDivider: "_marketSelfDivider_jfyof_137",
|
|
5915
|
+
marketSection: "_marketSection_jfyof_143",
|
|
5916
|
+
marketSectionHead: "_marketSectionHead_jfyof_150",
|
|
5917
|
+
marketSectionIcon: "_marketSectionIcon_jfyof_156",
|
|
5918
|
+
marketSectionTitle: "_marketSectionTitle_jfyof_163",
|
|
5919
|
+
marketSectionCount: "_marketSectionCount_jfyof_169",
|
|
5920
|
+
marketSectionQuiet: "_marketSectionQuiet_jfyof_175",
|
|
5921
|
+
marketProgress: "_marketProgress_jfyof_188",
|
|
5922
|
+
marketNote: "_marketNote_jfyof_198",
|
|
5923
|
+
marketFailure: "_marketFailure_jfyof_205",
|
|
5924
|
+
marketEmpty: "_marketEmpty_jfyof_212",
|
|
5925
|
+
marketPage: "_marketPage_jfyof_217",
|
|
5926
|
+
marketPageHead: "_marketPageHead_jfyof_235",
|
|
5927
|
+
marketPageTitle: "_marketPageTitle_jfyof_243",
|
|
5928
|
+
marketPageIntro: "_marketPageIntro_jfyof_248",
|
|
5929
|
+
marketPageTools: "_marketPageTools_jfyof_254",
|
|
5930
|
+
marketPanel: "_marketPanel_jfyof_263",
|
|
5931
|
+
marketTabs: "_marketTabs_jfyof_273",
|
|
5932
|
+
marketTabList: "_marketTabList_jfyof_278",
|
|
5933
|
+
marketIconButton: "_marketIconButton_jfyof_283",
|
|
5934
|
+
marketIconWrap: "_marketIconWrap_jfyof_308",
|
|
5935
|
+
marketIconButtonSpinning: "_marketIconButtonSpinning_jfyof_312",
|
|
5936
|
+
"wb-spin": "_wb-spin_jfyof_1",
|
|
5937
|
+
marketAddButton: "_marketAddButton_jfyof_316",
|
|
5938
|
+
marketEmptyTitle: "_marketEmptyTitle_jfyof_333",
|
|
5939
|
+
discoverPage: "_discoverPage_jfyof_347",
|
|
5940
|
+
discoverBar: "_discoverBar_jfyof_354",
|
|
5941
|
+
discoverTools: "_discoverTools_jfyof_361",
|
|
5942
|
+
discoverMarket: "_discoverMarket_jfyof_367",
|
|
5943
|
+
discoverMarketButton: "_discoverMarketButton_jfyof_372",
|
|
5944
|
+
discoverMarketName: "_discoverMarketName_jfyof_379",
|
|
5945
|
+
discoverLabels: "_discoverLabels_jfyof_385",
|
|
5946
|
+
discoverSort: "_discoverSort_jfyof_390",
|
|
5947
|
+
discoverRefresh: "_discoverRefresh_jfyof_395",
|
|
5948
|
+
discoverSearch: "_discoverSearch_jfyof_399",
|
|
5949
|
+
discoverSearchField: "_discoverSearchField_jfyof_407",
|
|
5950
|
+
discoverSearchFieldFilled: "_discoverSearchFieldFilled_jfyof_412",
|
|
5951
|
+
discoverSearchClear: "_discoverSearchClear_jfyof_421",
|
|
5952
|
+
discoverChips: "_discoverChips_jfyof_472",
|
|
5953
|
+
discoverList: "_discoverList_jfyof_479",
|
|
5954
|
+
discoverCard: "_discoverCard_jfyof_488",
|
|
5955
|
+
discoverArtwork: "_discoverArtwork_jfyof_502",
|
|
5956
|
+
discoverArtworkImage: "_discoverArtworkImage_jfyof_514",
|
|
5957
|
+
discoverMain: "_discoverMain_jfyof_518",
|
|
5958
|
+
discoverTitleRow: "_discoverTitleRow_jfyof_526",
|
|
5959
|
+
discoverCardOpen: "_discoverCardOpen_jfyof_534",
|
|
5960
|
+
discoverStrong: "_discoverStrong_jfyof_565",
|
|
5961
|
+
discoverDesc: "_discoverDesc_jfyof_571",
|
|
5962
|
+
discoverMeta: "_discoverMeta_jfyof_580",
|
|
5963
|
+
discoverMuted: "_discoverMuted_jfyof_587",
|
|
5964
|
+
discoverEnd: "_discoverEnd_jfyof_593",
|
|
5965
|
+
discoverBlocked: "_discoverBlocked_jfyof_602",
|
|
5966
|
+
discoverEmpty: "_discoverEmpty_jfyof_607",
|
|
5967
|
+
discoverEmptyTitle: "_discoverEmptyTitle_jfyof_616",
|
|
5968
|
+
discoverDetail: "_discoverDetail_jfyof_626",
|
|
5969
|
+
discoverCrumb: "_discoverCrumb_jfyof_632",
|
|
5970
|
+
discoverCrumbIcon: "_discoverCrumbIcon_jfyof_655",
|
|
5971
|
+
discoverDetailHead: "_discoverDetailHead_jfyof_659",
|
|
5972
|
+
discoverDetailTitle: "_discoverDetailTitle_jfyof_665",
|
|
5973
|
+
discoverDetailText: "_discoverDetailText_jfyof_671",
|
|
5974
|
+
discoverDetailPanel: "_discoverDetailPanel_jfyof_678",
|
|
5975
|
+
discoverDetailTabs: "_discoverDetailTabs_jfyof_685",
|
|
5976
|
+
discoverDetailTabList: "_discoverDetailTabList_jfyof_690",
|
|
5977
|
+
discoverDocBody: "_discoverDocBody_jfyof_695",
|
|
5978
|
+
discoverDocNotice: "_discoverDocNotice_jfyof_700",
|
|
5979
|
+
discoverSection: "_discoverSection_jfyof_706",
|
|
5980
|
+
discoverSectionTitle: "_discoverSectionTitle_jfyof_713",
|
|
5981
|
+
discoverFacts: "_discoverFacts_jfyof_719",
|
|
5982
|
+
discoverFactRow: "_discoverFactRow_jfyof_724",
|
|
5983
|
+
discoverFactKind: "_discoverFactKind_jfyof_734",
|
|
5984
|
+
discoverFactValue: "_discoverFactValue_jfyof_740",
|
|
5985
|
+
discoverCode: "_discoverCode_jfyof_748",
|
|
5986
|
+
discoverTags: "_discoverTags_jfyof_757",
|
|
5987
|
+
discoverLink: "_discoverLink_jfyof_764",
|
|
5988
|
+
discoverVersions: "_discoverVersions_jfyof_774",
|
|
5989
|
+
discoverVersionRow: "_discoverVersionRow_jfyof_782",
|
|
5990
|
+
discoverVersionName: "_discoverVersionName_jfyof_790",
|
|
5991
|
+
discoverError: "_discoverError_jfyof_795",
|
|
5992
|
+
discoverFailure: "_discoverFailure_jfyof_804",
|
|
5993
|
+
discoverLoading: "_discoverLoading_jfyof_810",
|
|
5994
|
+
discoverNotice: "_discoverNotice_jfyof_819",
|
|
5995
|
+
discoverMore: "_discoverMore_jfyof_837",
|
|
5996
|
+
discoverTransport: "_discoverTransport_jfyof_841",
|
|
5997
|
+
discoverTransportTitle: "_discoverTransportTitle_jfyof_847",
|
|
5998
|
+
discoverTransportRows: "_discoverTransportRows_jfyof_852",
|
|
5999
|
+
discoverTransportRow: "_discoverTransportRow_jfyof_852",
|
|
6000
|
+
discoverTransportRadio: "_discoverTransportRadio_jfyof_873",
|
|
6001
|
+
discoverTransportKind: "_discoverTransportKind_jfyof_887",
|
|
6002
|
+
discoverTransportState: "_discoverTransportState_jfyof_893",
|
|
6003
|
+
discoverTransportCustom: "_discoverTransportCustom_jfyof_913",
|
|
6004
|
+
discoverTransportInput: "_discoverTransportInput_jfyof_919",
|
|
6005
|
+
discoverInstallBar: "_discoverInstallBar_jfyof_924",
|
|
6006
|
+
discoverInstallText: "_discoverInstallText_jfyof_935",
|
|
6007
|
+
discoverDialog: "_discoverDialog_jfyof_941",
|
|
6008
|
+
discoverDialogBody: "_discoverDialogBody_jfyof_945",
|
|
6009
|
+
discoverSourceList: "_discoverSourceList_jfyof_951",
|
|
6010
|
+
discoverSourceRow: "_discoverSourceRow_jfyof_959",
|
|
6011
|
+
discoverSourceConfirm: "_discoverSourceConfirm_jfyof_968",
|
|
6012
|
+
discoverSourcePick: "_discoverSourcePick_jfyof_974",
|
|
6013
|
+
discoverSourceRadio: "_discoverSourceRadio_jfyof_983",
|
|
6014
|
+
discoverSourceMain: "_discoverSourceMain_jfyof_991",
|
|
6015
|
+
discoverSourceHead: "_discoverSourceHead_jfyof_999",
|
|
6016
|
+
discoverSourceUrl: "_discoverSourceUrl_jfyof_1007",
|
|
6017
|
+
discoverSourceMore: "_discoverSourceMore_jfyof_1017",
|
|
6018
|
+
discoverSourceLoading: "_discoverSourceLoading_jfyof_1021",
|
|
6019
|
+
discoverSourceHint: "_discoverSourceHint_jfyof_1031",
|
|
6020
|
+
discoverSourceError: "_discoverSourceError_jfyof_1045",
|
|
6021
|
+
discoverSourceForm: "_discoverSourceForm_jfyof_1051",
|
|
6022
|
+
discoverGrow: "_discoverGrow_jfyof_1057",
|
|
6023
|
+
discoverField: "_discoverField_jfyof_1062",
|
|
6024
|
+
discoverFieldLabel: "_discoverFieldLabel_jfyof_1068",
|
|
6025
|
+
discoverConfirmHead: "_discoverConfirmHead_jfyof_1073",
|
|
6026
|
+
discoverSkeletonFill: "_discoverSkeletonFill_jfyof_1079",
|
|
6027
|
+
"wb-skeleton": "_wb-skeleton_jfyof_1",
|
|
6028
|
+
discoverSkeletonBar: "_discoverSkeletonBar_jfyof_1088",
|
|
6029
|
+
discoverSkeletonTitle: "_discoverSkeletonTitle_jfyof_1095",
|
|
6030
|
+
discoverSkeletonDesc: "_discoverSkeletonDesc_jfyof_1099"
|
|
5833
6031
|
};
|
|
5834
6032
|
//#endregion
|
|
5835
6033
|
//#region src/app/layouts/market/discover-states.tsx
|
|
@@ -5888,6 +6086,19 @@ function DiscoverNoSource({ t, onAdd }) {
|
|
|
5888
6086
|
onClick: onAdd
|
|
5889
6087
|
}, t("panels.discover.addFirstSource")));
|
|
5890
6088
|
}
|
|
6089
|
+
function DiscoverReadFailure({ t, text, auth, onRetry }) {
|
|
6090
|
+
return /* @__PURE__ */ createElement(Fragment, null, /* @__PURE__ */ createElement(DiscoverFailure, {
|
|
6091
|
+
t,
|
|
6092
|
+
text,
|
|
6093
|
+
onRetry
|
|
6094
|
+
}), auth ? /* @__PURE__ */ createElement("p", {
|
|
6095
|
+
className: MarketPage_module_default.discoverNotice,
|
|
6096
|
+
role: "note"
|
|
6097
|
+
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
6098
|
+
size: 14,
|
|
6099
|
+
"aria-hidden": "true"
|
|
6100
|
+
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.sourceAuth"))) : null);
|
|
6101
|
+
}
|
|
5891
6102
|
//#endregion
|
|
5892
6103
|
//#region src/app/layouts/rightbar/MarketStates.tsx
|
|
5893
6104
|
function MarketChecking({ t }) {
|
|
@@ -6457,7 +6668,9 @@ function problemKey(problem) {
|
|
|
6457
6668
|
function heldWizardPhase(phase, classifying) {
|
|
6458
6669
|
return classifying && (phase === "preview" || phase === "idle") ? "inspecting" : phase;
|
|
6459
6670
|
}
|
|
6671
|
+
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;
|
|
6460
6672
|
var FAILURE_KEYS = {
|
|
6673
|
+
credentials: "panels.market.add.failureCredentials",
|
|
6461
6674
|
network: "panels.market.add.failureNetwork",
|
|
6462
6675
|
"spec-host": "panels.market.add.failureNetworkHost",
|
|
6463
6676
|
"not-found": "panels.market.add.failureNotFound",
|
|
@@ -6479,9 +6692,15 @@ var FAILURE_KEYS = {
|
|
|
6479
6692
|
"stop-profile": "panels.market.add.failureGeneric",
|
|
6480
6693
|
"stale-approval": "panels.market.add.failureGeneric"
|
|
6481
6694
|
};
|
|
6695
|
+
function needsCredentials(change) {
|
|
6696
|
+
const text = `${change.errorDetail ?? ""}\n${change.packageResult?.output ?? ""}`;
|
|
6697
|
+
return CREDENTIAL_TEXT.test(text);
|
|
6698
|
+
}
|
|
6482
6699
|
function failureCode(change) {
|
|
6483
6700
|
if (change.failedAt === "spec-host") return "spec-host";
|
|
6484
|
-
|
|
6701
|
+
const code = change.errorCode ?? change.packageResult?.kind ?? change.application;
|
|
6702
|
+
if (code === "operation-error" && needsCredentials(change)) return "credentials";
|
|
6703
|
+
return code;
|
|
6485
6704
|
}
|
|
6486
6705
|
function failureReasonKey(code) {
|
|
6487
6706
|
return FAILURE_KEYS[code];
|
|
@@ -7142,6 +7361,9 @@ function sourceFromUrl(raw) {
|
|
|
7142
7361
|
function sameSourceUrl(left, right) {
|
|
7143
7362
|
return withoutTrailingSlash(left.trim()) === withoutTrailingSlash(right.trim());
|
|
7144
7363
|
}
|
|
7364
|
+
function sourceStateOf(source) {
|
|
7365
|
+
return source.kind === "git" && source.policy === "artifacts-in-repo" ? "writable" : "read-only";
|
|
7366
|
+
}
|
|
7145
7367
|
function sourceSuffix(url) {
|
|
7146
7368
|
return (withoutTrailingSlash(url).split(/[/:]/).filter((part) => part !== "").pop() ?? "").replace(/\.git$/, "");
|
|
7147
7369
|
}
|
|
@@ -7184,7 +7406,7 @@ function MarketIcon({ src, size = ICON }) {
|
|
|
7184
7406
|
onError: () => setFailed(src)
|
|
7185
7407
|
});
|
|
7186
7408
|
}
|
|
7187
|
-
function EntryAction({ t, entry, title, onInstall, onShowInstalled }) {
|
|
7409
|
+
function EntryAction({ t, entry, title, onInstall, onShowInstalled, installDisabled = false }) {
|
|
7188
7410
|
const latest = latestVersionOf(entry);
|
|
7189
7411
|
if (latest === void 0) return null;
|
|
7190
7412
|
if (latest.install === "installed" || latest.install === "update-available") return /* @__PURE__ */ createElement(Button, {
|
|
@@ -7211,11 +7433,12 @@ function EntryAction({ t, entry, title, onInstall, onShowInstalled }) {
|
|
|
7211
7433
|
type: "button",
|
|
7212
7434
|
variant: "outline",
|
|
7213
7435
|
size: "sm",
|
|
7436
|
+
disabled: installDisabled,
|
|
7214
7437
|
"aria-label": t("panels.discover.installTitle", { name: title }),
|
|
7215
7438
|
onClick: () => onInstall(entry, latest)
|
|
7216
7439
|
}, t("panels.discover.cardInstall"));
|
|
7217
7440
|
}
|
|
7218
|
-
function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled }) {
|
|
7441
|
+
function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled, installDisabled = false }) {
|
|
7219
7442
|
const title = displayTitleOf(entry, locale);
|
|
7220
7443
|
const latest = latestVersionOf(entry);
|
|
7221
7444
|
const description = marketText(entry.description, locale);
|
|
@@ -7240,10 +7463,11 @@ function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled }) {
|
|
|
7240
7463
|
entry,
|
|
7241
7464
|
title,
|
|
7242
7465
|
onInstall,
|
|
7243
|
-
onShowInstalled
|
|
7466
|
+
onShowInstalled,
|
|
7467
|
+
installDisabled
|
|
7244
7468
|
})));
|
|
7245
7469
|
}
|
|
7246
|
-
function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled }) {
|
|
7470
|
+
function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled, installDisabled }) {
|
|
7247
7471
|
return /* @__PURE__ */ createElement("ul", { className: MarketPage_module_default.discoverList }, entries.map((entry) => /* @__PURE__ */ createElement(EntryCard, {
|
|
7248
7472
|
key: entry.name,
|
|
7249
7473
|
t,
|
|
@@ -7251,12 +7475,13 @@ function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled }
|
|
|
7251
7475
|
entry,
|
|
7252
7476
|
onOpen,
|
|
7253
7477
|
onInstall,
|
|
7254
|
-
onShowInstalled
|
|
7478
|
+
onShowInstalled,
|
|
7479
|
+
installDisabled: installDisabled === true
|
|
7255
7480
|
})));
|
|
7256
7481
|
}
|
|
7257
7482
|
//#endregion
|
|
7258
7483
|
//#region src/app/layouts/market/discover-versions.tsx
|
|
7259
|
-
function DiscoverVersions({ t, locale, entry, onInstall }) {
|
|
7484
|
+
function DiscoverVersions({ t, locale, entry, onInstall, installDisabled = false }) {
|
|
7260
7485
|
const latest = latestVersionOf(entry);
|
|
7261
7486
|
return /* @__PURE__ */ createElement("ul", {
|
|
7262
7487
|
className: MarketPage_module_default.discoverVersions,
|
|
@@ -7277,6 +7502,7 @@ function DiscoverVersions({ t, locale, entry, onInstall }) {
|
|
|
7277
7502
|
type: "button",
|
|
7278
7503
|
variant: "ghost",
|
|
7279
7504
|
size: "sm",
|
|
7505
|
+
disabled: installDisabled,
|
|
7280
7506
|
"aria-label": t("panels.discover.installVersionTitle", {
|
|
7281
7507
|
name: entry.name,
|
|
7282
7508
|
version: version.version
|
|
@@ -7289,6 +7515,7 @@ function DiscoverVersions({ t, locale, entry, onInstall }) {
|
|
|
7289
7515
|
//#region ../shared/dist/contract/protocol/market-index.js
|
|
7290
7516
|
var MARKET_DISCOVER_ROUTE = "panels/market-discover";
|
|
7291
7517
|
var MARKET_DOC_ROUTE = "panels/market-doc";
|
|
7518
|
+
var MARKET_GIT_PROBE_ROUTE = "panels/git-probe";
|
|
7292
7519
|
var MARKET_PUBLISH_PREVIEW_ROUTE = "panels/market-publish-preview";
|
|
7293
7520
|
var MARKET_SOURCES_ROUTE = "panels/market-sources";
|
|
7294
7521
|
//#endregion
|
|
@@ -7299,6 +7526,9 @@ function readMarketDiscover(options = {}) {
|
|
|
7299
7526
|
function readMarketSources() {
|
|
7300
7527
|
return apiGet(MARKET_SOURCES_ROUTE);
|
|
7301
7528
|
}
|
|
7529
|
+
function readGitProbe(url) {
|
|
7530
|
+
return apiGet(MARKET_GIT_PROBE_ROUTE, { url });
|
|
7531
|
+
}
|
|
7302
7532
|
function readMarketDoc(name, version, kind) {
|
|
7303
7533
|
return apiGet(MARKET_DOC_ROUTE, {
|
|
7304
7534
|
name,
|
|
@@ -7306,11 +7536,13 @@ function readMarketDoc(name, version, kind) {
|
|
|
7306
7536
|
kind
|
|
7307
7537
|
});
|
|
7308
7538
|
}
|
|
7309
|
-
function readPublishPreview(unit, version, author) {
|
|
7539
|
+
function readPublishPreview(unit, version, author, changelog, changelogType) {
|
|
7310
7540
|
return apiGet(MARKET_PUBLISH_PREVIEW_ROUTE, {
|
|
7311
7541
|
unit,
|
|
7312
7542
|
...version === void 0 || version === "" ? {} : { version },
|
|
7313
|
-
...author === void 0 || author === "" ? {} : { author }
|
|
7543
|
+
...author === void 0 || author === "" ? {} : { author },
|
|
7544
|
+
...changelog === void 0 || changelog.trim() === "" ? {} : { changelog },
|
|
7545
|
+
...changelogType === void 0 || changelogType === "" ? {} : { changelogType }
|
|
7314
7546
|
});
|
|
7315
7547
|
}
|
|
7316
7548
|
//#endregion
|
|
@@ -7363,13 +7595,13 @@ function DiscoverDocPanel({ t, name, version, kind }) {
|
|
|
7363
7595
|
}
|
|
7364
7596
|
//#endregion
|
|
7365
7597
|
//#region src/app/layouts/market/discover-detail.tsx
|
|
7366
|
-
function factLabel(t, fact) {
|
|
7598
|
+
function factLabel$1(t, fact) {
|
|
7367
7599
|
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");
|
|
7368
7600
|
}
|
|
7369
7601
|
function FactRow({ kind, children }) {
|
|
7370
7602
|
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));
|
|
7371
7603
|
}
|
|
7372
|
-
function OverviewPanel({ t, locale, entry, latest, market, onInstall }) {
|
|
7604
|
+
function OverviewPanel({ t, locale, entry, latest, market, onInstall, installDisabled }) {
|
|
7373
7605
|
const description = marketText(entry.description, locale);
|
|
7374
7606
|
const date = publishDateText(latest?.publishTimestamp, locale, "long");
|
|
7375
7607
|
const facts = latest === void 0 ? [] : sourceFactsOf(entry.name, latest);
|
|
@@ -7389,12 +7621,13 @@ function OverviewPanel({ t, locale, entry, latest, market, onInstall }) {
|
|
|
7389
7621
|
rel: "noopener noreferrer"
|
|
7390
7622
|
}, entry.homepage)), facts.map((fact) => /* @__PURE__ */ createElement(FactRow, {
|
|
7391
7623
|
key: `${fact.kind}:${fact.value}`,
|
|
7392
|
-
kind: factLabel(t, fact)
|
|
7624
|
+
kind: factLabel$1(t, fact)
|
|
7393
7625
|
}, /* @__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, {
|
|
7394
7626
|
t,
|
|
7395
7627
|
locale,
|
|
7396
7628
|
entry,
|
|
7397
|
-
onInstall
|
|
7629
|
+
onInstall,
|
|
7630
|
+
installDisabled: installDisabled === true
|
|
7398
7631
|
})));
|
|
7399
7632
|
}
|
|
7400
7633
|
function DiscoverDetail(props) {
|
|
@@ -7441,7 +7674,8 @@ function DiscoverDetail(props) {
|
|
|
7441
7674
|
entry,
|
|
7442
7675
|
title,
|
|
7443
7676
|
onInstall: props.onInstall,
|
|
7444
|
-
onShowInstalled: props.onShowInstalled
|
|
7677
|
+
onShowInstalled: props.onShowInstalled,
|
|
7678
|
+
installDisabled: props.installDisabled === true
|
|
7445
7679
|
})), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverDetailTabs }, /* @__PURE__ */ createElement(SegmentedTabs, {
|
|
7446
7680
|
className: MarketPage_module_default.discoverDetailTabList,
|
|
7447
7681
|
items: tabItems,
|
|
@@ -7459,7 +7693,8 @@ function DiscoverDetail(props) {
|
|
|
7459
7693
|
entry,
|
|
7460
7694
|
latest,
|
|
7461
7695
|
market: props.market,
|
|
7462
|
-
onInstall: props.onInstall
|
|
7696
|
+
onInstall: props.onInstall,
|
|
7697
|
+
installDisabled: props.installDisabled === true
|
|
7463
7698
|
})) : null, tab === "overview" || latest === void 0 ? null : /* @__PURE__ */ createElement("div", {
|
|
7464
7699
|
className: MarketPage_module_default.discoverDetailPanel,
|
|
7465
7700
|
id: `${idPrefix}-panel-${tab}`,
|
|
@@ -7474,12 +7709,164 @@ function DiscoverDetail(props) {
|
|
|
7474
7709
|
})));
|
|
7475
7710
|
}
|
|
7476
7711
|
//#endregion
|
|
7712
|
+
//#region src/app/layouts/market/discover-installing.tsx
|
|
7713
|
+
function DiscoverInstalling({ t, name, cancelling, onCancel }) {
|
|
7714
|
+
return /* @__PURE__ */ createElement("p", {
|
|
7715
|
+
className: MarketPage_module_default.discoverInstallBar,
|
|
7716
|
+
role: "status"
|
|
7717
|
+
}, /* @__PURE__ */ createElement(Spinner, { size: 14 }), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverInstallText }, t("panels.discover.installingNamed", { name })), /* @__PURE__ */ createElement(Button, {
|
|
7718
|
+
type: "button",
|
|
7719
|
+
variant: "outline",
|
|
7720
|
+
size: "sm",
|
|
7721
|
+
disabled: cancelling,
|
|
7722
|
+
"aria-busy": cancelling,
|
|
7723
|
+
onClick: onCancel
|
|
7724
|
+
}, t(cancelling ? "panels.discover.cancelling" : "panels.discover.cancelInstall")));
|
|
7725
|
+
}
|
|
7726
|
+
//#endregion
|
|
7727
|
+
//#region src/app/layouts/market/discover-transport.tsx
|
|
7728
|
+
function stateText(t, state) {
|
|
7729
|
+
if (state === "ok") return "";
|
|
7730
|
+
if (state === "auth") return t("panels.discover.transportAuth");
|
|
7731
|
+
if (state === "unreachable") return t("panels.discover.transportUnreachable");
|
|
7732
|
+
if (state === "unknown") return t("panels.discover.transportUnknown");
|
|
7733
|
+
return t("panels.discover.transportChecking");
|
|
7734
|
+
}
|
|
7735
|
+
function DiscoverTransport({ t, transport }) {
|
|
7736
|
+
const needsAuth = transport.rows.length > 0 && transport.rows.every((row) => transport.states[row.url] === "auth") && transport.customState !== "ok";
|
|
7737
|
+
const customBusy = transport.customState === "checking";
|
|
7738
|
+
return /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverTransport }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportTitle }, t("panels.discover.transportTitle")), /* @__PURE__ */ createElement("div", {
|
|
7739
|
+
className: MarketPage_module_default.discoverTransportRows,
|
|
7740
|
+
role: "radiogroup",
|
|
7741
|
+
"aria-label": t("panels.discover.transportTitle")
|
|
7742
|
+
}, transport.rows.map((row) => {
|
|
7743
|
+
const state = transport.states[row.url] ?? "checking";
|
|
7744
|
+
const label = stateText(t, state);
|
|
7745
|
+
return /* @__PURE__ */ createElement("label", {
|
|
7746
|
+
key: row.url,
|
|
7747
|
+
className: MarketPage_module_default.discoverTransportRow,
|
|
7748
|
+
"data-state": state,
|
|
7749
|
+
title: row.url
|
|
7750
|
+
}, /* @__PURE__ */ createElement("input", {
|
|
7751
|
+
type: "radio",
|
|
7752
|
+
className: MarketPage_module_default.discoverTransportRadio,
|
|
7753
|
+
name: "discover-git-transport",
|
|
7754
|
+
value: row.url,
|
|
7755
|
+
checked: transport.chosen === row.url,
|
|
7756
|
+
onChange: () => transport.setChosen(row.url)
|
|
7757
|
+
}), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportKind }, t(row.kind === "ssh" ? "panels.discover.transportSsh" : "panels.discover.transportHttps")), label === "" ? null : /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverTransportState }, label));
|
|
7758
|
+
})), /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverTransportCustom }, /* @__PURE__ */ createElement(TextField, {
|
|
7759
|
+
type: "text",
|
|
7760
|
+
className: MarketPage_module_default.discoverTransportInput,
|
|
7761
|
+
value: transport.custom,
|
|
7762
|
+
placeholder: t("panels.discover.transportPlaceholder"),
|
|
7763
|
+
"aria-label": t("panels.discover.transportPlaceholder"),
|
|
7764
|
+
spellCheck: false,
|
|
7765
|
+
autoComplete: "off",
|
|
7766
|
+
onChange: (event) => transport.setCustom(event.target.value),
|
|
7767
|
+
onKeyDown: (event) => {
|
|
7768
|
+
if (event.key === "Enter") transport.checkCustom();
|
|
7769
|
+
}
|
|
7770
|
+
}), /* @__PURE__ */ createElement(Button, {
|
|
7771
|
+
type: "button",
|
|
7772
|
+
variant: "outline",
|
|
7773
|
+
size: "sm",
|
|
7774
|
+
disabled: transport.custom.trim() === "" || customBusy,
|
|
7775
|
+
"aria-busy": customBusy,
|
|
7776
|
+
onClick: transport.checkCustom
|
|
7777
|
+
}, 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))), needsAuth ? /* @__PURE__ */ createElement("p", {
|
|
7778
|
+
className: MarketPage_module_default.discoverNotice,
|
|
7779
|
+
role: "note"
|
|
7780
|
+
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
7781
|
+
size: 14,
|
|
7782
|
+
"aria-hidden": "true"
|
|
7783
|
+
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.transportNeedsAuth"))) : null);
|
|
7784
|
+
}
|
|
7785
|
+
//#endregion
|
|
7786
|
+
//#region src/app/layouts/market/use-git-transport.ts
|
|
7787
|
+
function probeOrUnknown(url) {
|
|
7788
|
+
return readGitProbe(url).then((response) => response.ok ? response.status : "unknown").catch(() => "unknown");
|
|
7789
|
+
}
|
|
7790
|
+
function usable(state) {
|
|
7791
|
+
return state !== void 0 && state !== "auth" && state !== "checking";
|
|
7792
|
+
}
|
|
7793
|
+
function defaultOf(rows, states) {
|
|
7794
|
+
const readable = rows.find((row) => states[row.url] === "ok");
|
|
7795
|
+
if (readable !== void 0) return readable.url;
|
|
7796
|
+
const fallback = rows.find((row) => usable(states[row.url]));
|
|
7797
|
+
return fallback === void 0 ? null : fallback.url;
|
|
7798
|
+
}
|
|
7799
|
+
function useGitTransport(source) {
|
|
7800
|
+
const rows = useMemo(() => source === null ? [] : gitTransportCandidates(source.url), [source]);
|
|
7801
|
+
const [results, setResults] = useState({});
|
|
7802
|
+
const [picked, setPicked] = useState(null);
|
|
7803
|
+
const [custom, setCustom] = useState("");
|
|
7804
|
+
const [customState, setCustomState] = useState(null);
|
|
7805
|
+
const generation = useRef(0);
|
|
7806
|
+
useEffect(() => {
|
|
7807
|
+
const mirror = ++generation.current;
|
|
7808
|
+
for (const row of rows) probeOrUnknown(row.url).then((state) => {
|
|
7809
|
+
if (generation.current !== mirror) return;
|
|
7810
|
+
setResults((current) => ({
|
|
7811
|
+
...current,
|
|
7812
|
+
[row.url]: state
|
|
7813
|
+
}));
|
|
7814
|
+
});
|
|
7815
|
+
return () => {
|
|
7816
|
+
generation.current += 1;
|
|
7817
|
+
};
|
|
7818
|
+
}, [rows]);
|
|
7819
|
+
const checkCustom = useCallback(() => {
|
|
7820
|
+
const wanted = custom.trim();
|
|
7821
|
+
if (wanted === "") return;
|
|
7822
|
+
const mirror = ++generation.current;
|
|
7823
|
+
setCustomState("checking");
|
|
7824
|
+
probeOrUnknown(wanted).then((state) => {
|
|
7825
|
+
if (generation.current !== mirror) return;
|
|
7826
|
+
setCustomState(state);
|
|
7827
|
+
if (usable(state)) setPicked(wanted);
|
|
7828
|
+
});
|
|
7829
|
+
}, [custom]);
|
|
7830
|
+
const states = useMemo(() => {
|
|
7831
|
+
const next = {};
|
|
7832
|
+
for (const row of rows) next[row.url] = results[row.url] ?? "checking";
|
|
7833
|
+
return next;
|
|
7834
|
+
}, [results, rows]);
|
|
7835
|
+
const chosen = picked !== null && (rows.some((row) => row.url === picked) || picked === custom.trim()) ? picked : defaultOf(rows, states);
|
|
7836
|
+
return {
|
|
7837
|
+
rows,
|
|
7838
|
+
chosen,
|
|
7839
|
+
states,
|
|
7840
|
+
custom,
|
|
7841
|
+
customState,
|
|
7842
|
+
probing: rows.some((row) => states[row.url] === "checking"),
|
|
7843
|
+
ready: chosen !== null,
|
|
7844
|
+
setChosen: setPicked,
|
|
7845
|
+
setCustom,
|
|
7846
|
+
checkCustom
|
|
7847
|
+
};
|
|
7848
|
+
}
|
|
7849
|
+
//#endregion
|
|
7477
7850
|
//#region src/app/layouts/market/discover-confirm.tsx
|
|
7478
7851
|
function DiscoverConfirm({ t, locale, choice, onCancel, onConfirm }) {
|
|
7479
7852
|
if (choice === null) return null;
|
|
7853
|
+
return /* @__PURE__ */ createElement(DiscoverConfirmBody, {
|
|
7854
|
+
t,
|
|
7855
|
+
locale,
|
|
7856
|
+
choice,
|
|
7857
|
+
onCancel,
|
|
7858
|
+
onConfirm
|
|
7859
|
+
});
|
|
7860
|
+
}
|
|
7861
|
+
function factLabel(t, kind) {
|
|
7862
|
+
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");
|
|
7863
|
+
}
|
|
7864
|
+
function DiscoverConfirmBody({ t, locale, choice, onCancel, onConfirm }) {
|
|
7865
|
+
const git = choice.version.source.type === "git" ? choice.version.source : null;
|
|
7866
|
+
const transport = useGitTransport(git);
|
|
7480
7867
|
const title = displayTitleOf(choice.entry, locale) || choice.entry.name;
|
|
7481
|
-
const facts = sourceFactsOf(choice.entry.name, choice.version);
|
|
7482
|
-
const
|
|
7868
|
+
const facts = sourceFactsOf(choice.entry.name, choice.version).filter((fact) => git === null || fact.kind !== "repository");
|
|
7869
|
+
const ready = git === null || transport.ready;
|
|
7483
7870
|
return /* @__PURE__ */ createElement(Modal, {
|
|
7484
7871
|
open: true,
|
|
7485
7872
|
onClose: onCancel,
|
|
@@ -7494,15 +7881,20 @@ function DiscoverConfirm({ t, locale, choice, onCancel, onConfirm }) {
|
|
|
7494
7881
|
type: "button",
|
|
7495
7882
|
variant: "primary",
|
|
7496
7883
|
autoFocus: true,
|
|
7497
|
-
|
|
7884
|
+
disabled: !ready,
|
|
7885
|
+
"aria-busy": git !== null && transport.probing,
|
|
7886
|
+
onClick: () => onConfirm(transport.chosen ?? void 0)
|
|
7498
7887
|
}, t("panels.discover.cardInstall")))
|
|
7499
7888
|
}, /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverDialogBody }, /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverConfirmHead }, /* @__PURE__ */ createElement("span", {
|
|
7500
7889
|
className: MarketPage_module_default.discoverArtwork,
|
|
7501
7890
|
"aria-hidden": "true"
|
|
7502
|
-
}, /* @__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))),
|
|
7891
|
+
}, /* @__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, {
|
|
7892
|
+
t,
|
|
7893
|
+
transport
|
|
7894
|
+
}), /* @__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", {
|
|
7503
7895
|
key: `${fact.kind}:${fact.value}`,
|
|
7504
7896
|
className: MarketPage_module_default.discoverFactRow
|
|
7505
|
-
}, /* @__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", {
|
|
7897
|
+
}, /* @__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", {
|
|
7506
7898
|
className: MarketPage_module_default.discoverNotice,
|
|
7507
7899
|
role: "note"
|
|
7508
7900
|
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
@@ -7558,12 +7950,104 @@ function DiscoverInitDialog(props) {
|
|
|
7558
7950
|
}, t("panels.discover.initBranchBad")) : null));
|
|
7559
7951
|
}
|
|
7560
7952
|
//#endregion
|
|
7953
|
+
//#region src/app/layouts/market/discover-source-item.tsx
|
|
7954
|
+
function stateTextOf(source, t) {
|
|
7955
|
+
return sourceStateOf(source) === "writable" ? t("panels.discover.sourceStateWritable") : t("panels.discover.sourceStateReadOnly");
|
|
7956
|
+
}
|
|
7957
|
+
function DiscoverSourceItem(props) {
|
|
7958
|
+
const { t, source } = props;
|
|
7959
|
+
const [menuOpen, setMenuOpen] = useState(false);
|
|
7960
|
+
const menu = [];
|
|
7961
|
+
if (props.enable) menu.push({
|
|
7962
|
+
id: "enable",
|
|
7963
|
+
label: t("panels.discover.sourceEnable"),
|
|
7964
|
+
disabled: props.pending
|
|
7965
|
+
});
|
|
7966
|
+
if (props.disable) menu.push({
|
|
7967
|
+
id: "read-only",
|
|
7968
|
+
label: t("panels.discover.sourceDisable"),
|
|
7969
|
+
disabled: props.pending
|
|
7970
|
+
});
|
|
7971
|
+
if (menu.length > 0) menu.push({
|
|
7972
|
+
type: "separator",
|
|
7973
|
+
id: "separator"
|
|
7974
|
+
});
|
|
7975
|
+
menu.push({
|
|
7976
|
+
id: "remove",
|
|
7977
|
+
label: t("panels.discover.removeSource"),
|
|
7978
|
+
icon: /* @__PURE__ */ createElement(IconTrashOutlineRegular, { size: 14 }),
|
|
7979
|
+
danger: true,
|
|
7980
|
+
disabled: props.pending
|
|
7981
|
+
});
|
|
7982
|
+
const choose = (id) => {
|
|
7983
|
+
setMenuOpen(false);
|
|
7984
|
+
if (id === "enable") props.onEnable();
|
|
7985
|
+
else if (id === "read-only") props.onReadOnly();
|
|
7986
|
+
else if (id === "remove") props.onRemove();
|
|
7987
|
+
};
|
|
7988
|
+
return /* @__PURE__ */ createElement("li", { className: MarketPage_module_default.discoverSourceRow }, /* @__PURE__ */ createElement("label", { className: MarketPage_module_default.discoverSourcePick }, /* @__PURE__ */ createElement("input", {
|
|
7989
|
+
type: "radio",
|
|
7990
|
+
name: "market-source",
|
|
7991
|
+
className: MarketPage_module_default.discoverSourceRadio,
|
|
7992
|
+
checked: props.selected,
|
|
7993
|
+
disabled: props.pending,
|
|
7994
|
+
onChange: props.onSelect
|
|
7995
|
+
}), /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverSourceMain }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverSourceHead }, /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverStrong }, source.label), /* @__PURE__ */ createElement(Tag, { tone: sourceStateOf(source) === "writable" ? "success" : "neutral" }, stateTextOf(source, t)), props.selected && props.loading ? /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverSourceLoading }, /* @__PURE__ */ createElement(StateDot, { state: "ongoing" }), t("panels.discover.loading")) : null, props.working ? /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverSourceLoading }, /* @__PURE__ */ createElement(StateDot, { state: "ongoing" }), t("panels.discover.sourceWorking")) : null), /* @__PURE__ */ createElement("span", {
|
|
7996
|
+
className: MarketPage_module_default.discoverSourceUrl,
|
|
7997
|
+
title: source.url
|
|
7998
|
+
}, source.url), props.problem === null ? null : /* @__PURE__ */ createElement("span", { className: MarketPage_module_default.discoverSourceError }, props.problem))), /* @__PURE__ */ createElement(Menu, {
|
|
7999
|
+
className: MarketPage_module_default.discoverSourceMore,
|
|
8000
|
+
open: menuOpen,
|
|
8001
|
+
onClose: () => setMenuOpen(false),
|
|
8002
|
+
align: "end",
|
|
8003
|
+
portal: true,
|
|
8004
|
+
autoFocus: true,
|
|
8005
|
+
items: menu,
|
|
8006
|
+
onSelect: choose,
|
|
8007
|
+
anchor: /* @__PURE__ */ createElement(Button, {
|
|
8008
|
+
type: "button",
|
|
8009
|
+
variant: "ghost",
|
|
8010
|
+
size: "sm",
|
|
8011
|
+
icon: /* @__PURE__ */ createElement(IconEllipsisOutlineRegular, { size: 14 }),
|
|
8012
|
+
"aria-label": t("panels.discover.sourceActions", { label: source.label }),
|
|
8013
|
+
"aria-haspopup": "menu",
|
|
8014
|
+
"aria-expanded": menuOpen,
|
|
8015
|
+
disabled: props.pending,
|
|
8016
|
+
onClick: () => setMenuOpen(!menuOpen)
|
|
8017
|
+
})
|
|
8018
|
+
}), props.selected && props.loading && props.slow ? /* @__PURE__ */ createElement("span", {
|
|
8019
|
+
className: MarketPage_module_default.discoverSourceHint,
|
|
8020
|
+
role: "note"
|
|
8021
|
+
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
8022
|
+
size: 12,
|
|
8023
|
+
"aria-hidden": "true"
|
|
8024
|
+
}), t("panels.discover.slowHint")) : null);
|
|
8025
|
+
}
|
|
8026
|
+
function DiscoverSourceConfirm(props) {
|
|
8027
|
+
const { t } = props;
|
|
8028
|
+
return /* @__PURE__ */ createElement("li", { className: MarketPage_module_default.discoverSourceConfirm }, /* @__PURE__ */ createElement(ConfirmBar, {
|
|
8029
|
+
title: t("panels.discover.removeTitle"),
|
|
8030
|
+
hint: t("panels.discover.removeBody", { label: props.label }),
|
|
8031
|
+
actions: [{
|
|
8032
|
+
key: "cancel",
|
|
8033
|
+
label: t("panels.discover.cancel"),
|
|
8034
|
+
onClick: props.onCancel
|
|
8035
|
+
}, {
|
|
8036
|
+
key: "remove",
|
|
8037
|
+
label: t("panels.discover.removeSource"),
|
|
8038
|
+
kind: "danger",
|
|
8039
|
+
onClick: props.onConfirm
|
|
8040
|
+
}]
|
|
8041
|
+
}));
|
|
8042
|
+
}
|
|
8043
|
+
//#endregion
|
|
7561
8044
|
//#region src/app/layouts/market/discover-sources-dialog.tsx
|
|
7562
8045
|
function DiscoverSourcesDialog(props) {
|
|
7563
8046
|
const { t } = props;
|
|
7564
8047
|
const [url, setUrl] = useState("");
|
|
7565
8048
|
const [problem, setProblem] = useState(null);
|
|
7566
|
-
const
|
|
8049
|
+
const [removing, setRemoving] = useState(null);
|
|
8050
|
+
const pending = props.busy || props.adding || props.pendingSourceId !== null;
|
|
7567
8051
|
const selectedVisible = props.sources.some((source) => source.id === props.selected);
|
|
7568
8052
|
const add = () => {
|
|
7569
8053
|
if (pending) return;
|
|
@@ -7582,7 +8066,12 @@ function DiscoverSourcesDialog(props) {
|
|
|
7582
8066
|
};
|
|
7583
8067
|
return /* @__PURE__ */ createElement(Modal, {
|
|
7584
8068
|
open: props.open,
|
|
7585
|
-
onClose:
|
|
8069
|
+
onClose: () => {
|
|
8070
|
+
setUrl("");
|
|
8071
|
+
setProblem(null);
|
|
8072
|
+
setRemoving(null);
|
|
8073
|
+
props.onClose();
|
|
8074
|
+
},
|
|
7586
8075
|
title: t("panels.discover.sourcesTitle"),
|
|
7587
8076
|
closeLabel: t("panels.discover.close"),
|
|
7588
8077
|
description: t("panels.discover.sourcesIntro"),
|
|
@@ -7596,39 +8085,30 @@ function DiscoverSourcesDialog(props) {
|
|
|
7596
8085
|
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.slowHint"))) : /* @__PURE__ */ createElement(DiscoverLoading, { label: t("panels.discover.loading") }) : null, props.sources.length === 0 ? null : /* @__PURE__ */ createElement("ul", {
|
|
7597
8086
|
className: MarketPage_module_default.discoverSourceList,
|
|
7598
8087
|
"aria-label": t("panels.discover.sourcesLabel")
|
|
7599
|
-
}, props.sources.map((source) => /* @__PURE__ */ createElement(
|
|
7600
|
-
|
|
7601
|
-
|
|
7602
|
-
|
|
7603
|
-
|
|
7604
|
-
|
|
7605
|
-
|
|
7606
|
-
|
|
7607
|
-
|
|
7608
|
-
|
|
7609
|
-
|
|
7610
|
-
|
|
8088
|
+
}, props.sources.map((source) => /* @__PURE__ */ createElement(Fragment, { key: source.id }, /* @__PURE__ */ createElement(DiscoverSourceItem, {
|
|
8089
|
+
t,
|
|
8090
|
+
source,
|
|
8091
|
+
selected: source.id === props.selected,
|
|
8092
|
+
loading: props.loading,
|
|
8093
|
+
slow: props.slow,
|
|
8094
|
+
problem: !props.loading && props.problem?.id === source.id ? props.problem.detail : null,
|
|
8095
|
+
pending,
|
|
8096
|
+
enable: source.kind === "git" && source.policy !== "artifacts-in-repo",
|
|
8097
|
+
disable: source.kind === "git" && source.policy === "artifacts-in-repo",
|
|
8098
|
+
working: source.id === props.pendingSourceId,
|
|
8099
|
+
onSelect: () => props.onSelect(source.id),
|
|
8100
|
+
onRemove: () => setRemoving(source.id),
|
|
8101
|
+
onEnable: () => props.onEnable(source.id),
|
|
8102
|
+
onReadOnly: () => props.onReadOnly(source.id)
|
|
8103
|
+
}), removing === source.id ? /* @__PURE__ */ createElement(DiscoverSourceConfirm, {
|
|
8104
|
+
t,
|
|
8105
|
+
label: source.label,
|
|
8106
|
+
onCancel: () => setRemoving(null),
|
|
8107
|
+
onConfirm: () => {
|
|
8108
|
+
props.onRemove(source.id);
|
|
8109
|
+
setRemoving(null);
|
|
7611
8110
|
}
|
|
7612
|
-
}
|
|
7613
|
-
label: t("panels.discover.removeSource"),
|
|
7614
|
-
side: "bottom",
|
|
7615
|
-
portal: true,
|
|
7616
|
-
delayMs: 300
|
|
7617
|
-
}, /* @__PURE__ */ createElement(Button, {
|
|
7618
|
-
type: "button",
|
|
7619
|
-
variant: "ghost",
|
|
7620
|
-
size: "sm",
|
|
7621
|
-
icon: /* @__PURE__ */ createElement(IconTrashOutlineRegular, { size: 13 }),
|
|
7622
|
-
"aria-label": t("panels.discover.removeSourceNamed", { url: source.url }),
|
|
7623
|
-
disabled: pending,
|
|
7624
|
-
onClick: () => props.onRemove(source.id)
|
|
7625
|
-
})), source.id === props.selected && props.loading && props.slow ? /* @__PURE__ */ createElement("span", {
|
|
7626
|
-
className: MarketPage_module_default.discoverSourceHint,
|
|
7627
|
-
role: "note"
|
|
7628
|
-
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
7629
|
-
size: 12,
|
|
7630
|
-
"aria-hidden": "true"
|
|
7631
|
-
}), t("panels.discover.slowHint")) : null))), /* @__PURE__ */ createElement("form", {
|
|
8111
|
+
}) : null))), /* @__PURE__ */ createElement("form", {
|
|
7632
8112
|
className: MarketPage_module_default.discoverSourceForm,
|
|
7633
8113
|
onSubmit: (event) => {
|
|
7634
8114
|
event.preventDefault();
|
|
@@ -7652,7 +8132,10 @@ function DiscoverSourcesDialog(props) {
|
|
|
7652
8132
|
"aria-busy": props.adding,
|
|
7653
8133
|
icon: props.adding ? /* @__PURE__ */ createElement(StateDot, { state: "ongoing" }) : /* @__PURE__ */ createElement(IconPlusOutlineRegular, { size: 13 }),
|
|
7654
8134
|
disabled: pending || url.trim() === ""
|
|
7655
|
-
}, props.adding ? t("panels.discover.addingSource") : t("panels.discover.addSource"))),
|
|
8135
|
+
}, props.adding ? t("panels.discover.addingSource") : t("panels.discover.addSource"))), props.failure === null ? null : /* @__PURE__ */ createElement("p", {
|
|
8136
|
+
className: MarketPage_module_default.discoverError,
|
|
8137
|
+
role: "alert"
|
|
8138
|
+
}, props.failure), problem === null ? null : /* @__PURE__ */ createElement("p", {
|
|
7656
8139
|
className: MarketPage_module_default.discoverError,
|
|
7657
8140
|
role: "alert"
|
|
7658
8141
|
}, problem === "duplicate" ? t("panels.discover.sourceDuplicate") : t("panels.discover.sourceBadUrl")), /* @__PURE__ */ createElement("p", {
|
|
@@ -7667,7 +8150,6 @@ function DiscoverSourcesDialog(props) {
|
|
|
7667
8150
|
//#region src/app/layouts/market/discover-dialogs.tsx
|
|
7668
8151
|
function DiscoverDialogs({ t, d }) {
|
|
7669
8152
|
return /* @__PURE__ */ createElement(Fragment, null, /* @__PURE__ */ createElement(DiscoverSourcesDialog, {
|
|
7670
|
-
key: d.manageOpen ? "open" : "closed",
|
|
7671
8153
|
t,
|
|
7672
8154
|
open: d.manageOpen,
|
|
7673
8155
|
sources: d.sources,
|
|
@@ -7675,12 +8157,16 @@ function DiscoverDialogs({ t, d }) {
|
|
|
7675
8157
|
loading: d.loading,
|
|
7676
8158
|
slow: d.slow,
|
|
7677
8159
|
problem: d.problem,
|
|
8160
|
+
failure: d.writeFailed,
|
|
7678
8161
|
busy: d.busy,
|
|
7679
8162
|
adding: d.addingSource,
|
|
8163
|
+
pendingSourceId: d.pendingSourceId,
|
|
7680
8164
|
onClose: () => d.setManageOpen(false),
|
|
7681
8165
|
onAdd: d.addSource,
|
|
7682
8166
|
onRemove: d.removeSourceById,
|
|
7683
|
-
onSelect: d.selectSource
|
|
8167
|
+
onSelect: d.selectSource,
|
|
8168
|
+
onEnable: d.enableSource,
|
|
8169
|
+
onReadOnly: d.readOnlySource
|
|
7684
8170
|
}), /* @__PURE__ */ createElement(DiscoverConfirm, {
|
|
7685
8171
|
t,
|
|
7686
8172
|
locale: d.locale,
|
|
@@ -7899,6 +8385,7 @@ function installVerdictOf(value, t) {
|
|
|
7899
8385
|
const change = changeOf(value);
|
|
7900
8386
|
if (change === void 0) return { kind: "quiet" };
|
|
7901
8387
|
if (SHIPPED.includes(change.application)) return { kind: "done" };
|
|
8388
|
+
if (change.application === "cancelled") return { kind: "cancelled" };
|
|
7902
8389
|
if (change.application !== "failed") return { kind: "quiet" };
|
|
7903
8390
|
return {
|
|
7904
8391
|
kind: "failed",
|
|
@@ -7919,8 +8406,11 @@ function useDiscover(t, active, onInstalled) {
|
|
|
7919
8406
|
const [manageOpen, setManageOpen] = useState(false);
|
|
7920
8407
|
const [initOpen, setInitOpen] = useState(false);
|
|
7921
8408
|
const [choice, setChoice] = useState(null);
|
|
8409
|
+
const [installing, setInstalling] = useState(null);
|
|
8410
|
+
const [cancelling, setCancelling] = useState(false);
|
|
7922
8411
|
const [notice, setNotice] = useState(null);
|
|
7923
8412
|
const [addingSource, setAddingSource] = useState(false);
|
|
8413
|
+
const [pendingSourceId, setPendingSourceId] = useState(null);
|
|
7924
8414
|
const [knownSources, setKnownSources] = useState(null);
|
|
7925
8415
|
const loaded = useRef(false);
|
|
7926
8416
|
const loadTicket = useRef(0);
|
|
@@ -7935,6 +8425,10 @@ function useDiscover(t, active, onInstalled) {
|
|
|
7935
8425
|
channel: "provision",
|
|
7936
8426
|
networkText: t("panels.discover.failed")
|
|
7937
8427
|
});
|
|
8428
|
+
const cancel = useHostWrite({
|
|
8429
|
+
channel: "provision",
|
|
8430
|
+
networkText: t("panels.discover.failed")
|
|
8431
|
+
});
|
|
7938
8432
|
const loadSources = useCallback(async () => {
|
|
7939
8433
|
const ticket = sourceTicket.current + 1;
|
|
7940
8434
|
sourceTicket.current = ticket;
|
|
@@ -7961,6 +8455,10 @@ function useDiscover(t, active, onInstalled) {
|
|
|
7961
8455
|
return;
|
|
7962
8456
|
}
|
|
7963
8457
|
setPayload(response);
|
|
8458
|
+
setKnownSources({
|
|
8459
|
+
sources: response.sources,
|
|
8460
|
+
selected: response.selected
|
|
8461
|
+
});
|
|
7964
8462
|
setLimit(50);
|
|
7965
8463
|
}, [t]);
|
|
7966
8464
|
const beginSwitch = () => {
|
|
@@ -8011,6 +8509,7 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8011
8509
|
if (payload?.problem === void 0 || payload.selected === null) return null;
|
|
8012
8510
|
return {
|
|
8013
8511
|
id: payload.selected,
|
|
8512
|
+
kind: payload.problem.kind,
|
|
8014
8513
|
detail: payload.problem.detail ?? ""
|
|
8015
8514
|
};
|
|
8016
8515
|
}, [payload]);
|
|
@@ -8025,6 +8524,35 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8025
8524
|
};
|
|
8026
8525
|
}, [payload, selectedSource]);
|
|
8027
8526
|
const defaultBranch = payload?.problem?.branch ?? selectedSource?.ref ?? "main";
|
|
8527
|
+
const enableSource = (id) => {
|
|
8528
|
+
setNotice(null);
|
|
8529
|
+
setPendingSourceId(id);
|
|
8530
|
+
sources.send({
|
|
8531
|
+
action: "init",
|
|
8532
|
+
id,
|
|
8533
|
+
stampOnly: true
|
|
8534
|
+
}).then(async (outcome) => {
|
|
8535
|
+
if (!outcome.ok) return;
|
|
8536
|
+
const label = payload?.sources.find((one) => one.id === id)?.label ?? id;
|
|
8537
|
+
setNotice(t("panels.discover.sourceEnabled", { label }));
|
|
8538
|
+
await loadSources();
|
|
8539
|
+
await load(true);
|
|
8540
|
+
}).finally(() => setPendingSourceId(null));
|
|
8541
|
+
};
|
|
8542
|
+
const readOnlySource = (id) => {
|
|
8543
|
+
setNotice(null);
|
|
8544
|
+
setPendingSourceId(id);
|
|
8545
|
+
sources.send({
|
|
8546
|
+
action: "read-only",
|
|
8547
|
+
id
|
|
8548
|
+
}).then(async (outcome) => {
|
|
8549
|
+
if (!outcome.ok) return;
|
|
8550
|
+
const label = payload?.sources.find((one) => one.id === id)?.label ?? id;
|
|
8551
|
+
setNotice(t("panels.discover.sourceReadOnly", { label }));
|
|
8552
|
+
await loadSources();
|
|
8553
|
+
await load(true);
|
|
8554
|
+
}).finally(() => setPendingSourceId(null));
|
|
8555
|
+
};
|
|
8028
8556
|
const initialize = (branch) => {
|
|
8029
8557
|
if (payload === null || payload.selected === null) return;
|
|
8030
8558
|
const id = payload.selected;
|
|
@@ -8056,27 +8584,32 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8056
8584
|
source: {
|
|
8057
8585
|
...parsed.source,
|
|
8058
8586
|
id
|
|
8059
|
-
}
|
|
8060
|
-
select: true
|
|
8587
|
+
}
|
|
8061
8588
|
}).then((outcome) => {
|
|
8062
8589
|
if (!outcome.ok) return;
|
|
8063
|
-
|
|
8590
|
+
const value = typeof outcome.value === "object" && outcome.value !== null ? outcome.value : void 0;
|
|
8064
8591
|
loadSources();
|
|
8065
|
-
load(true);
|
|
8592
|
+
if (value?.["selected"] === id) load(true);
|
|
8066
8593
|
}).finally(() => setAddingSource(false));
|
|
8067
8594
|
};
|
|
8068
8595
|
const removeSourceById = (id) => {
|
|
8069
8596
|
setNotice(null);
|
|
8070
8597
|
setInitOpen(false);
|
|
8598
|
+
const wasSelected = (payload?.selected ?? knownSources?.selected ?? null) === id;
|
|
8071
8599
|
sources.send({
|
|
8072
8600
|
action: "remove",
|
|
8073
8601
|
id
|
|
8074
8602
|
}).then(async (outcome) => {
|
|
8075
8603
|
if (!outcome.ok) return;
|
|
8076
|
-
|
|
8077
|
-
|
|
8604
|
+
if (wasSelected) {
|
|
8605
|
+
setQuery("");
|
|
8606
|
+
setCategory(null);
|
|
8607
|
+
setSelectedLabels([]);
|
|
8608
|
+
setSort("default");
|
|
8609
|
+
setDetail(null);
|
|
8610
|
+
}
|
|
8078
8611
|
await loadSources();
|
|
8079
|
-
await load(true);
|
|
8612
|
+
if (wasSelected) await load(true);
|
|
8080
8613
|
});
|
|
8081
8614
|
};
|
|
8082
8615
|
const selectSource = (id) => {
|
|
@@ -8107,14 +8640,25 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8107
8640
|
await load(true);
|
|
8108
8641
|
});
|
|
8109
8642
|
};
|
|
8110
|
-
const install = () => {
|
|
8111
|
-
if (choice === null) return;
|
|
8112
|
-
const
|
|
8643
|
+
const install = (url) => {
|
|
8644
|
+
if (choice === null || installing !== null) return;
|
|
8645
|
+
const source = choice.version.source;
|
|
8646
|
+
const target = marketInstallTarget(choice.entry.name, choice.version.version, source.type === "git" && url !== void 0 ? {
|
|
8647
|
+
...source,
|
|
8648
|
+
url
|
|
8649
|
+
} : source);
|
|
8650
|
+
const name = displayTitleOf(choice.entry, locale);
|
|
8651
|
+
const requestId = globalThis.crypto.randomUUID();
|
|
8113
8652
|
setChoice(null);
|
|
8114
8653
|
setNotice(null);
|
|
8654
|
+
setInstalling({
|
|
8655
|
+
name,
|
|
8656
|
+
requestId
|
|
8657
|
+
});
|
|
8115
8658
|
provision.send({
|
|
8116
8659
|
action: "install-version",
|
|
8117
8660
|
spec: target.spec,
|
|
8661
|
+
requestId,
|
|
8118
8662
|
...target.registry === void 0 ? {} : { registry: target.registry }
|
|
8119
8663
|
}).then((outcome) => {
|
|
8120
8664
|
if (!outcome.ok) return;
|
|
@@ -8124,9 +8668,25 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8124
8668
|
onInstalled();
|
|
8125
8669
|
return;
|
|
8126
8670
|
}
|
|
8671
|
+
if (verdict.kind === "cancelled") {
|
|
8672
|
+
setNotice(t("panels.discover.installCancelled", { name }));
|
|
8673
|
+
onInstalled();
|
|
8674
|
+
return;
|
|
8675
|
+
}
|
|
8127
8676
|
if (verdict.kind !== "done") return;
|
|
8128
|
-
setNotice(t("panels.discover.installedDone", { name
|
|
8677
|
+
setNotice(t("panels.discover.installedDone", { name }));
|
|
8129
8678
|
onInstalled();
|
|
8679
|
+
}).finally(() => {
|
|
8680
|
+
setInstalling(null);
|
|
8681
|
+
setCancelling(false);
|
|
8682
|
+
});
|
|
8683
|
+
};
|
|
8684
|
+
const cancelInstall = () => {
|
|
8685
|
+
if (installing === null || cancelling) return;
|
|
8686
|
+
setCancelling(true);
|
|
8687
|
+
cancel.send({
|
|
8688
|
+
action: "cancel-install",
|
|
8689
|
+
requestId: installing.requestId
|
|
8130
8690
|
});
|
|
8131
8691
|
};
|
|
8132
8692
|
const reload = () => {
|
|
@@ -8141,8 +8701,8 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8141
8701
|
loading,
|
|
8142
8702
|
slow,
|
|
8143
8703
|
failure,
|
|
8144
|
-
sources:
|
|
8145
|
-
selected:
|
|
8704
|
+
sources: knownSources?.sources ?? payload?.sources ?? [],
|
|
8705
|
+
selected: knownSources?.selected ?? payload?.selected ?? null,
|
|
8146
8706
|
entries,
|
|
8147
8707
|
shown,
|
|
8148
8708
|
total: sorted.length,
|
|
@@ -8158,11 +8718,15 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8158
8718
|
writeFailed: sources.failed,
|
|
8159
8719
|
provisionFailed: provision.failed,
|
|
8160
8720
|
busy: sources.busy,
|
|
8721
|
+
installing: installing === null ? null : installing.name,
|
|
8722
|
+
cancelling,
|
|
8723
|
+
installDisabled: installing !== null,
|
|
8161
8724
|
addingSource,
|
|
8162
8725
|
manageOpen,
|
|
8163
8726
|
problem,
|
|
8164
8727
|
uninitialized,
|
|
8165
8728
|
defaultBranch,
|
|
8729
|
+
pendingSourceId,
|
|
8166
8730
|
initOpen,
|
|
8167
8731
|
reload,
|
|
8168
8732
|
setQuery,
|
|
@@ -8174,14 +8738,20 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8174
8738
|
openDetail: (name) => setDetail(name),
|
|
8175
8739
|
closeDetail: () => setDetail(null),
|
|
8176
8740
|
setDetailEntry: setDetail,
|
|
8177
|
-
setChoice
|
|
8741
|
+
setChoice: (value) => {
|
|
8742
|
+
if (value !== null && installing !== null) return;
|
|
8743
|
+
setChoice(value);
|
|
8744
|
+
},
|
|
8178
8745
|
setManageOpen,
|
|
8179
8746
|
setInitOpen,
|
|
8180
8747
|
initialize,
|
|
8748
|
+
enableSource,
|
|
8749
|
+
readOnlySource,
|
|
8181
8750
|
addSource,
|
|
8182
8751
|
removeSourceById,
|
|
8183
8752
|
selectSource,
|
|
8184
|
-
install
|
|
8753
|
+
install,
|
|
8754
|
+
cancelInstall
|
|
8185
8755
|
};
|
|
8186
8756
|
}
|
|
8187
8757
|
//#endregion
|
|
@@ -8220,73 +8790,85 @@ function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
|
|
|
8220
8790
|
size: 14,
|
|
8221
8791
|
"aria-hidden": "true"
|
|
8222
8792
|
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.slowHint"))) : null;
|
|
8223
|
-
|
|
8793
|
+
let body;
|
|
8794
|
+
if (d.payload === null) body = /* @__PURE__ */ createElement(Fragment, null, d.sources.length === 0 ? null : toolbar, d.loading ? /* @__PURE__ */ createElement(DiscoverSkeleton, { label: t("panels.discover.loading") }) : /* @__PURE__ */ createElement(DiscoverFailure, {
|
|
8224
8795
|
t,
|
|
8225
8796
|
text: t("panels.discover.sourcesFailed"),
|
|
8226
8797
|
onRetry: d.reload
|
|
8227
|
-
}), slowHint, d.writeFailed === null ? null : /* @__PURE__ */ createElement("p", { className: MarketPage_module_default.discoverError }, d.writeFailed)
|
|
8228
|
-
if (d.payload.state === "no-source")
|
|
8798
|
+
}), slowHint, d.writeFailed === null ? null : /* @__PURE__ */ createElement("p", { className: MarketPage_module_default.discoverError }, d.writeFailed));
|
|
8799
|
+
else if (d.payload.state === "no-source") body = /* @__PURE__ */ createElement(DiscoverNoSource, {
|
|
8229
8800
|
t,
|
|
8230
8801
|
onAdd: () => d.setManageOpen(true)
|
|
8231
|
-
})
|
|
8232
|
-
|
|
8233
|
-
|
|
8234
|
-
|
|
8235
|
-
|
|
8236
|
-
|
|
8237
|
-
|
|
8238
|
-
|
|
8239
|
-
|
|
8240
|
-
|
|
8241
|
-
|
|
8242
|
-
|
|
8243
|
-
|
|
8244
|
-
|
|
8245
|
-
|
|
8246
|
-
|
|
8247
|
-
|
|
8248
|
-
t,
|
|
8249
|
-
|
|
8250
|
-
|
|
8251
|
-
|
|
8252
|
-
|
|
8253
|
-
|
|
8254
|
-
|
|
8255
|
-
|
|
8256
|
-
|
|
8257
|
-
|
|
8258
|
-
|
|
8259
|
-
|
|
8260
|
-
|
|
8261
|
-
|
|
8262
|
-
|
|
8263
|
-
|
|
8264
|
-
|
|
8265
|
-
|
|
8266
|
-
|
|
8267
|
-
|
|
8268
|
-
|
|
8269
|
-
|
|
8270
|
-
|
|
8271
|
-
|
|
8272
|
-
|
|
8273
|
-
|
|
8274
|
-
|
|
8275
|
-
|
|
8276
|
-
|
|
8277
|
-
|
|
8278
|
-
|
|
8279
|
-
|
|
8280
|
-
|
|
8281
|
-
}),
|
|
8282
|
-
|
|
8283
|
-
|
|
8284
|
-
|
|
8285
|
-
|
|
8286
|
-
|
|
8287
|
-
|
|
8288
|
-
|
|
8289
|
-
|
|
8802
|
+
});
|
|
8803
|
+
else {
|
|
8804
|
+
const failed = d.payload.state === "invalid" || d.payload.state === "unreadable";
|
|
8805
|
+
const readFailed = !d.loading && failed ? d.payload.state === "invalid" ? t("panels.discover.invalid") : t("panels.discover.unreadable") : null;
|
|
8806
|
+
const uninitialized = d.loading ? null : d.uninitialized;
|
|
8807
|
+
const retrying = d.loading && failed;
|
|
8808
|
+
const emptyText = unfiltered({
|
|
8809
|
+
query: d.query,
|
|
8810
|
+
category: d.category,
|
|
8811
|
+
labels: d.selectedLabels
|
|
8812
|
+
}) ? t("panels.discover.empty") : t("panels.discover.noMatch");
|
|
8813
|
+
body = /* @__PURE__ */ createElement(Fragment, null, d.detailEntry === null ? toolbar : null, d.loading && !d.manageOpen ? /* @__PURE__ */ createElement(DiscoverLoading, { label: t("panels.discover.loading") }) : null, slowHint, !d.loading && d.payload.stale === true ? /* @__PURE__ */ createElement("p", {
|
|
8814
|
+
className: MarketPage_module_default.discoverNotice,
|
|
8815
|
+
role: "note"
|
|
8816
|
+
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
8817
|
+
size: 14,
|
|
8818
|
+
"aria-hidden": "true"
|
|
8819
|
+
}), /* @__PURE__ */ createElement("span", null, t("panels.discover.stale"))) : null, uninitialized === null ? readFailed === null ? null : /* @__PURE__ */ createElement(DiscoverReadFailure, {
|
|
8820
|
+
t,
|
|
8821
|
+
text: readFailed,
|
|
8822
|
+
auth: d.problem?.kind === "git-auth",
|
|
8823
|
+
onRetry: d.reload
|
|
8824
|
+
}) : /* @__PURE__ */ createElement(DiscoverUninitialized, {
|
|
8825
|
+
t,
|
|
8826
|
+
path: uninitialized.path,
|
|
8827
|
+
empty: uninitialized.empty,
|
|
8828
|
+
onInit: () => d.setInitOpen(true)
|
|
8829
|
+
}), d.installing === null ? null : /* @__PURE__ */ createElement(DiscoverInstalling, {
|
|
8830
|
+
t,
|
|
8831
|
+
name: d.installing,
|
|
8832
|
+
cancelling: d.cancelling,
|
|
8833
|
+
onCancel: d.cancelInstall
|
|
8834
|
+
}), d.notice === null ? null : /* @__PURE__ */ createElement("p", {
|
|
8835
|
+
className: MarketPage_module_default.discoverNotice,
|
|
8836
|
+
role: "note"
|
|
8837
|
+
}, /* @__PURE__ */ createElement(IconWarningOutlineRegular, {
|
|
8838
|
+
size: 14,
|
|
8839
|
+
"aria-hidden": "true"
|
|
8840
|
+
}), /* @__PURE__ */ createElement("span", null, d.notice)), d.writeFailed === null ? null : /* @__PURE__ */ createElement("p", { className: MarketPage_module_default.discoverError }, d.writeFailed), d.provisionFailed === null ? null : /* @__PURE__ */ createElement("p", { className: MarketPage_module_default.discoverError }, d.provisionFailed), d.detailEntry !== null ? /* @__PURE__ */ createElement(DiscoverDetail, {
|
|
8841
|
+
t,
|
|
8842
|
+
locale: d.locale,
|
|
8843
|
+
entry: d.detailEntry,
|
|
8844
|
+
market: marketLabel,
|
|
8845
|
+
onBack: d.closeDetail,
|
|
8846
|
+
onInstall: (entry, version) => d.setChoice({
|
|
8847
|
+
entry,
|
|
8848
|
+
version
|
|
8849
|
+
}),
|
|
8850
|
+
onShowInstalled,
|
|
8851
|
+
installDisabled: d.installDisabled
|
|
8852
|
+
}) : readFailed !== null || uninitialized !== null || retrying ? null : d.shown.length === 0 ? /* @__PURE__ */ createElement(DiscoverEmptyText, { text: emptyText }) : /* @__PURE__ */ createElement(DiscoverRows, {
|
|
8853
|
+
t,
|
|
8854
|
+
locale: d.locale,
|
|
8855
|
+
entries: d.shown,
|
|
8856
|
+
onOpen: d.openDetail,
|
|
8857
|
+
onInstall: (entry, version) => d.setChoice({
|
|
8858
|
+
entry,
|
|
8859
|
+
version
|
|
8860
|
+
}),
|
|
8861
|
+
onShowInstalled,
|
|
8862
|
+
installDisabled: d.installDisabled
|
|
8863
|
+
}), d.detailEntry !== null || d.total <= d.shown.length ? null : /* @__PURE__ */ createElement(Button, {
|
|
8864
|
+
type: "button",
|
|
8865
|
+
variant: "outline",
|
|
8866
|
+
size: "sm",
|
|
8867
|
+
className: MarketPage_module_default.discoverMore,
|
|
8868
|
+
onClick: d.showMore
|
|
8869
|
+
}, t("panels.discover.showMore")));
|
|
8870
|
+
}
|
|
8871
|
+
return /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.discoverPage }, body, dialogs);
|
|
8290
8872
|
}
|
|
8291
8873
|
//#endregion
|
|
8292
8874
|
//#region src/app/layouts/market/market-header.tsx
|
|
@@ -8717,6 +9299,7 @@ var state = {
|
|
|
8717
9299
|
workbench: null,
|
|
8718
9300
|
selfUpdate: null,
|
|
8719
9301
|
read: false,
|
|
9302
|
+
checking: false,
|
|
8720
9303
|
checkedAt: null
|
|
8721
9304
|
};
|
|
8722
9305
|
var listeners$2 = /* @__PURE__ */ new Set();
|
|
@@ -8745,6 +9328,10 @@ function runModuleVersionsRead(force = false, fresh = false) {
|
|
|
8745
9328
|
if (!fresh && inFlight !== null && inFlight.force === force && inFlight.epoch === at) return inFlight.promise;
|
|
8746
9329
|
const seq = readSeq += 1;
|
|
8747
9330
|
if (force) newestForceSeq = seq;
|
|
9331
|
+
if (!state.checking) publish$1({
|
|
9332
|
+
...state,
|
|
9333
|
+
checking: true
|
|
9334
|
+
});
|
|
8748
9335
|
const promise = Promise.all([readModuleVersions(force), readInstalledPlugins(force)]).catch(() => null).then((responses) => {
|
|
8749
9336
|
if (at !== epoch) return;
|
|
8750
9337
|
if (!force && seq < newestForceSeq) return;
|
|
@@ -8756,6 +9343,7 @@ function runModuleVersionsRead(force = false, fresh = false) {
|
|
|
8756
9343
|
workbench: versions?.ok === true ? versions.workbench ?? null : state.workbench,
|
|
8757
9344
|
selfUpdate: versions?.ok === true ? versions.selfUpdate ?? null : state.selfUpdate,
|
|
8758
9345
|
read: true,
|
|
9346
|
+
checking: false,
|
|
8759
9347
|
checkedAt: Date.now()
|
|
8760
9348
|
});
|
|
8761
9349
|
}).finally(() => {
|
|
@@ -8791,6 +9379,7 @@ function useModuleVersions() {
|
|
|
8791
9379
|
workbench: value.workbench,
|
|
8792
9380
|
selfUpdate: value.selfUpdate,
|
|
8793
9381
|
read: value.read,
|
|
9382
|
+
checking: value.checking,
|
|
8794
9383
|
checkedAt: value.checkedAt,
|
|
8795
9384
|
reload
|
|
8796
9385
|
};
|
|
@@ -9379,7 +9968,7 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
9379
9968
|
const manifests = useLiveManifests(units);
|
|
9380
9969
|
const installable = useInstallableUnits(units);
|
|
9381
9970
|
const { capabilities, checkedAt, checking, forceProbe, reload: reloadCapability } = useCapabilityMap(0);
|
|
9382
|
-
const { modules, plugins, workbench, selfUpdate, read: installedRead, reload: reloadVersions } = useModuleVersions();
|
|
9971
|
+
const { modules, plugins, workbench, selfUpdate, checking: versionsChecking, read: installedRead, reload: reloadVersions } = useModuleVersions();
|
|
9383
9972
|
const machineBoard = useEnabledUnits(0, null);
|
|
9384
9973
|
const [adding, setAdding] = useState(false);
|
|
9385
9974
|
const [acting, setActing] = useState(false);
|
|
@@ -9455,13 +10044,14 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
9455
10044
|
const mockNonce = devMarket.pick.nonce;
|
|
9456
10045
|
const shownFreshness = mock === void 0 ? freshness : mock.loaded === false ? pendingFreshness : MOCK_FRESHNESS;
|
|
9457
10046
|
const shownRead = mock === void 0 ? installedRead : mock.installedRead ?? true;
|
|
9458
|
-
const
|
|
10047
|
+
const shownChecking = shownFreshness.checking || mock === void 0 && versionsChecking;
|
|
10048
|
+
const busy = !marketSettled(shownFreshness, shownRead) || shownChecking || acting;
|
|
9459
10049
|
return /* @__PURE__ */ createElement("div", { className: MarketPage_module_default.marketPage }, /* @__PURE__ */ createElement(MarketHeader, {
|
|
9460
10050
|
t,
|
|
9461
10051
|
idPrefix: MARKET_PANEL_ID,
|
|
9462
10052
|
tab,
|
|
9463
10053
|
busy,
|
|
9464
|
-
checking:
|
|
10054
|
+
checking: shownChecking,
|
|
9465
10055
|
onTab: setTab,
|
|
9466
10056
|
onReload: () => reload({ force: true }),
|
|
9467
10057
|
onAdd: openAddModule
|
|
@@ -11553,12 +12143,14 @@ var MODULES_UPDATE_DEPENDENCY_TOOL = "workbench_modules_update_dependency";
|
|
|
11553
12143
|
var MODULES_UPDATE_PLUGIN_TOOL = "workbench_modules_update_plugin";
|
|
11554
12144
|
var MODULES_UNINSTALL_PLUGIN_TOOL = "workbench_modules_uninstall_plugin";
|
|
11555
12145
|
var MODULES_UPDATE_WORKBENCH_TOOL = "workbench_modules_update_workbench";
|
|
12146
|
+
var MARKET_SOURCES_TOOL = "workbench_market_sources";
|
|
12147
|
+
var MARKET_ENABLE_TOOL = "workbench_market_enable";
|
|
12148
|
+
var MARKET_DISABLE_TOOL = "workbench_market_disable";
|
|
11556
12149
|
var DIY_STATUS_TOOL = "workbench_diy_status";
|
|
11557
12150
|
var DIY_PANEL_TOOL = "workbench_diy_panel";
|
|
11558
12151
|
var DIY_COMPONENTS_TOOL = "workbench_diy_components";
|
|
11559
12152
|
var DIY_RECON_TOOL = "workbench_diy_recon";
|
|
11560
12153
|
var DIY_SPEC_TOOL = "workbench_diy_spec";
|
|
11561
|
-
var DIY_CHANGELOG_TOOL = "workbench_diy_changelog";
|
|
11562
12154
|
var DIY_INSTALL_TOOL = "workbench_diy_install";
|
|
11563
12155
|
var DIY_PUBLISH_TOOL = "workbench_diy_publish";
|
|
11564
12156
|
var DIY_SHOW_TOOL = "workbench_diy_show";
|
|
@@ -11605,12 +12197,14 @@ var ALL_TOOLS = [
|
|
|
11605
12197
|
MODULES_UPDATE_PLUGIN_TOOL,
|
|
11606
12198
|
MODULES_UNINSTALL_PLUGIN_TOOL,
|
|
11607
12199
|
MODULES_UPDATE_WORKBENCH_TOOL,
|
|
12200
|
+
MARKET_SOURCES_TOOL,
|
|
12201
|
+
MARKET_ENABLE_TOOL,
|
|
12202
|
+
MARKET_DISABLE_TOOL,
|
|
11608
12203
|
DIY_STATUS_TOOL,
|
|
11609
12204
|
DIY_PANEL_TOOL,
|
|
11610
12205
|
DIY_COMPONENTS_TOOL,
|
|
11611
12206
|
DIY_RECON_TOOL,
|
|
11612
12207
|
DIY_SPEC_TOOL,
|
|
11613
|
-
DIY_CHANGELOG_TOOL,
|
|
11614
12208
|
DIY_INSTALL_TOOL,
|
|
11615
12209
|
DIY_PUBLISH_TOOL,
|
|
11616
12210
|
DIY_SHOW_TOOL,
|
|
@@ -11645,6 +12239,7 @@ var ALL_TOOLS = [
|
|
|
11645
12239
|
var READ_TOOLS = [
|
|
11646
12240
|
PANELS_LIST_TOOL,
|
|
11647
12241
|
MODULES_LIST_TOOL,
|
|
12242
|
+
MARKET_SOURCES_TOOL,
|
|
11648
12243
|
DIY_STATUS_TOOL,
|
|
11649
12244
|
DIY_PANEL_TOOL,
|
|
11650
12245
|
DIY_COMPONENTS_TOOL,
|
|
@@ -11686,7 +12281,8 @@ var WRITE_TOOLS = [
|
|
|
11686
12281
|
MODULES_UPDATE_PLUGIN_TOOL,
|
|
11687
12282
|
MODULES_UNINSTALL_PLUGIN_TOOL,
|
|
11688
12283
|
MODULES_UPDATE_WORKBENCH_TOOL,
|
|
11689
|
-
|
|
12284
|
+
MARKET_ENABLE_TOOL,
|
|
12285
|
+
MARKET_DISABLE_TOOL,
|
|
11690
12286
|
DIY_INSTALL_TOOL,
|
|
11691
12287
|
DIY_PUBLISH_TOOL,
|
|
11692
12288
|
DIY_SHOW_TOOL,
|
|
@@ -11787,6 +12383,21 @@ function publishRows(args, preview, t) {
|
|
|
11787
12383
|
value: author !== "" ? author : preview === void 0 ? t("approval.publish.reading") : preview?.author === void 0 || preview.author === "" ? t("approval.publish.authorMissing") : preview.author
|
|
11788
12384
|
}
|
|
11789
12385
|
];
|
|
12386
|
+
const claim = preview?.claim;
|
|
12387
|
+
if (claim !== void 0 && claim.state !== "new" && claim.state !== "unknown") {
|
|
12388
|
+
if (claim.state === "unit-taken") rows.push({
|
|
12389
|
+
label: t("approval.publish.unit"),
|
|
12390
|
+
value: t("approval.publish.unitTaken", { entry: claim.entry })
|
|
12391
|
+
});
|
|
12392
|
+
else if (claim.state === "path-taken") rows.push({
|
|
12393
|
+
label: t("approval.publish.path"),
|
|
12394
|
+
value: t("approval.publish.pathTaken", { entry: claim.entry })
|
|
12395
|
+
});
|
|
12396
|
+
else rows.push({
|
|
12397
|
+
label: t("approval.publish.owner"),
|
|
12398
|
+
value: claim.state === "owned" ? claim.owner : claim.state === "unowned" ? t("approval.publish.ownerUnowned") : t("approval.publish.ownerTaken", { owner: claim.owner })
|
|
12399
|
+
});
|
|
12400
|
+
}
|
|
11790
12401
|
const market = preview?.market;
|
|
11791
12402
|
if (market !== void 0) rows.push({
|
|
11792
12403
|
label: t("approval.publish.repo"),
|
|
@@ -11816,7 +12427,7 @@ function PublishChangelogSeat({ changelog, t }) {
|
|
|
11816
12427
|
className: approval_detail_module_default.changelogMissing,
|
|
11817
12428
|
role: "note"
|
|
11818
12429
|
}, t("approval.publish.changelogMissing", { version: changelog.version }));
|
|
11819
|
-
return createElement("section", { className: approval_detail_module_default.changelog }, createElement("p", { className: approval_detail_module_default.changelogTitle }, t("approval.publish.changelog", { version: changelog.version })), createElement("div", { className: approval_detail_module_default.changelogBody }, createElement(MarkdownText, {
|
|
12430
|
+
return createElement("section", { className: approval_detail_module_default.changelog }, createElement("p", { className: approval_detail_module_default.changelogTitle }, changelog.pending === true ? t("approval.publish.changelogPending", { version: changelog.version }) : t("approval.publish.changelog", { version: changelog.version })), createElement("div", { className: approval_detail_module_default.changelogBody }, createElement(MarkdownText, {
|
|
11820
12431
|
text: changelog.text,
|
|
11821
12432
|
variant: "compact",
|
|
11822
12433
|
labels: {
|
|
@@ -11832,11 +12443,13 @@ function PublishApprovalSeat({ args, t }) {
|
|
|
11832
12443
|
const unit = textOf(args, "unit");
|
|
11833
12444
|
const version = textOf(args, "version");
|
|
11834
12445
|
const author = textOf(args, "author");
|
|
12446
|
+
const changelog = typeof args["changelogNote"] === "string" ? args["changelogNote"] : "";
|
|
12447
|
+
const changelogType = textOf(args, "changelogType");
|
|
11835
12448
|
const [preview, setPreview] = useState(() => unit === "" ? null : void 0);
|
|
11836
12449
|
useEffect(() => {
|
|
11837
12450
|
if (unit === "") return;
|
|
11838
12451
|
let live = true;
|
|
11839
|
-
readPublishPreview(unit, version, author).then((response) => {
|
|
12452
|
+
readPublishPreview(unit, version, author, changelog, changelogType).then((response) => {
|
|
11840
12453
|
if (live) setPreview(response.ok ? response.preview : null);
|
|
11841
12454
|
});
|
|
11842
12455
|
return () => {
|
|
@@ -11845,13 +12458,55 @@ function PublishApprovalSeat({ args, t }) {
|
|
|
11845
12458
|
}, [
|
|
11846
12459
|
unit,
|
|
11847
12460
|
version,
|
|
11848
|
-
author
|
|
12461
|
+
author,
|
|
12462
|
+
changelog,
|
|
12463
|
+
changelogType
|
|
11849
12464
|
]);
|
|
11850
12465
|
return createElement(ApprovalPlan, { rows: publishRows(args, preview, t) }, createElement(PublishChangelogSeat, {
|
|
11851
12466
|
changelog: preview?.changelog,
|
|
11852
12467
|
t
|
|
11853
12468
|
}));
|
|
11854
12469
|
}
|
|
12470
|
+
function marketSourceRows(tool, args, payload, t) {
|
|
12471
|
+
const id = textOf(args, "id");
|
|
12472
|
+
const source = payload === void 0 || payload === null ? void 0 : payload.sources.find((one) => one.id === (id === "" ? payload.selected : id));
|
|
12473
|
+
const reading = t("approval.market.reading");
|
|
12474
|
+
const rows = [
|
|
12475
|
+
{
|
|
12476
|
+
label: t("approval.market.source"),
|
|
12477
|
+
value: payload === void 0 ? reading : source === void 0 ? id === "" ? "—" : id : `${source.label}(${source.id})`
|
|
12478
|
+
},
|
|
12479
|
+
{
|
|
12480
|
+
label: t("approval.market.url"),
|
|
12481
|
+
value: source?.url ?? (payload === void 0 ? reading : "—")
|
|
12482
|
+
},
|
|
12483
|
+
{
|
|
12484
|
+
label: t("approval.market.action"),
|
|
12485
|
+
value: tool === "workbench_market_enable" ? t("approval.market.enable") : t("approval.market.disable")
|
|
12486
|
+
}
|
|
12487
|
+
];
|
|
12488
|
+
if (source !== void 0) rows.push({
|
|
12489
|
+
label: t("approval.market.policy"),
|
|
12490
|
+
value: source.policy === "artifacts-in-repo" ? t("approval.market.writable") : t("approval.market.readOnly")
|
|
12491
|
+
});
|
|
12492
|
+
return rows;
|
|
12493
|
+
}
|
|
12494
|
+
function MarketSourceApprovalSeat({ tool, args, t }) {
|
|
12495
|
+
const [payload, setPayload] = useState(void 0);
|
|
12496
|
+
useEffect(() => {
|
|
12497
|
+
let live = true;
|
|
12498
|
+
readMarketSources().then((response) => {
|
|
12499
|
+
if (live) setPayload(response.ok ? {
|
|
12500
|
+
sources: response.sources,
|
|
12501
|
+
selected: response.selected
|
|
12502
|
+
} : null);
|
|
12503
|
+
});
|
|
12504
|
+
return () => {
|
|
12505
|
+
live = false;
|
|
12506
|
+
};
|
|
12507
|
+
}, []);
|
|
12508
|
+
return createElement(ApprovalPlan, { rows: marketSourceRows(tool, args, payload, t) });
|
|
12509
|
+
}
|
|
11855
12510
|
function shellClaimsApprovalDetail(tool) {
|
|
11856
12511
|
return ALL_TOOLS.includes(tool);
|
|
11857
12512
|
}
|
|
@@ -11879,6 +12534,11 @@ function shellApprovalDetail(input, t) {
|
|
|
11879
12534
|
args: input.args,
|
|
11880
12535
|
t
|
|
11881
12536
|
});
|
|
12537
|
+
if (input.tool === "workbench_market_enable" || input.tool === "workbench_market_disable") return createElement(MarketSourceApprovalSeat, {
|
|
12538
|
+
tool: input.tool,
|
|
12539
|
+
args: input.args,
|
|
12540
|
+
t
|
|
12541
|
+
});
|
|
11882
12542
|
const plan = shellApprovalPlan(input, t);
|
|
11883
12543
|
if (plan === void 0) return void 0;
|
|
11884
12544
|
if (plan.rows.length === 0) return createElement(Fragment, null);
|
|
@@ -12050,20 +12710,37 @@ function dshSeatOnScreen(host) {
|
|
|
12050
12710
|
}
|
|
12051
12711
|
function createDshSurfaceWatch(read, onReady, intervalMs) {
|
|
12052
12712
|
let timer;
|
|
12713
|
+
let observer;
|
|
12053
12714
|
const disarm = () => {
|
|
12054
|
-
if (timer
|
|
12055
|
-
|
|
12056
|
-
|
|
12715
|
+
if (timer !== void 0) {
|
|
12716
|
+
clearInterval(timer);
|
|
12717
|
+
timer = void 0;
|
|
12718
|
+
}
|
|
12719
|
+
observer?.disconnect();
|
|
12720
|
+
observer = void 0;
|
|
12057
12721
|
};
|
|
12058
12722
|
const tick = () => {
|
|
12059
12723
|
if (!read()) return;
|
|
12060
12724
|
disarm();
|
|
12061
12725
|
onReady();
|
|
12062
12726
|
};
|
|
12727
|
+
const observe = () => {
|
|
12728
|
+
if (observer !== void 0 || typeof MutationObserver === "undefined") return;
|
|
12729
|
+
const root = typeof document === "undefined" ? void 0 : document.documentElement;
|
|
12730
|
+
if (root === void 0 || root === null) return;
|
|
12731
|
+
observer = new MutationObserver(tick);
|
|
12732
|
+
observer.observe(root, {
|
|
12733
|
+
attributes: true,
|
|
12734
|
+
attributeFilter: [DSH_SEAT_ATTRIBUTE],
|
|
12735
|
+
childList: true,
|
|
12736
|
+
subtree: true
|
|
12737
|
+
});
|
|
12738
|
+
};
|
|
12063
12739
|
return {
|
|
12064
12740
|
arm() {
|
|
12065
12741
|
if (timer !== void 0) return;
|
|
12066
12742
|
timer = setInterval(tick, intervalMs);
|
|
12743
|
+
observe();
|
|
12067
12744
|
},
|
|
12068
12745
|
disarm
|
|
12069
12746
|
};
|
|
@@ -12076,18 +12753,30 @@ function createDshBorrow(host) {
|
|
|
12076
12753
|
let unsubscribe;
|
|
12077
12754
|
let restore;
|
|
12078
12755
|
let shimmed = false;
|
|
12756
|
+
const expand = (official) => {
|
|
12757
|
+
if (official.isExpanded()) return true;
|
|
12758
|
+
try {
|
|
12759
|
+
official.toggleExpanded();
|
|
12760
|
+
return true;
|
|
12761
|
+
} catch {
|
|
12762
|
+
return false;
|
|
12763
|
+
}
|
|
12764
|
+
};
|
|
12079
12765
|
const flush = () => {
|
|
12080
12766
|
const official = host.official();
|
|
12081
|
-
if (official === void 0
|
|
12767
|
+
if (official === void 0) return;
|
|
12082
12768
|
if (pendingOpen) {
|
|
12769
|
+
if (!expand(official)) {
|
|
12770
|
+
watch.arm();
|
|
12771
|
+
return;
|
|
12772
|
+
}
|
|
12083
12773
|
pendingOpen = false;
|
|
12084
|
-
if (!official.isExpanded()) official.toggleExpanded();
|
|
12085
12774
|
}
|
|
12086
12775
|
const call = pendingCall;
|
|
12087
12776
|
pendingCall = void 0;
|
|
12088
12777
|
call?.();
|
|
12089
12778
|
};
|
|
12090
|
-
const watch = createDshSurfaceWatch(() =>
|
|
12779
|
+
const watch = createDshSurfaceWatch(() => host.official()?.mounted.getSnapshot() !== void 0, flush, 60);
|
|
12091
12780
|
const subscribe = () => {
|
|
12092
12781
|
const official = host.official();
|
|
12093
12782
|
if (official === void 0 || unsubscribe !== void 0) return;
|
|
@@ -14386,7 +15075,7 @@ var tokens_default = ".wb-root,\n.wb-rightbar {\n --wb-gap-xs: 6px;\n --wb-fon
|
|
|
14386
15075
|
var palette_default = ":root {\n --wb-static-mask-opaque: #000;\n --wb-static-shadow-ghost: 0 8px 20px rgba(0, 0, 0, 0.4);\n}\n";
|
|
14387
15076
|
//#endregion
|
|
14388
15077
|
//#region src/shared/styles/tokens/scale.css?raw
|
|
14389
|
-
var scale_default = ":root {\n --wb-dur-0-12: 0.12s;\n --wb-dur-0-9: 0.9s;\n --wb-dur-1-4: 1.4s;\n --wb-dur-1-5: 1.5s;\n --wb-font-10: 10px;\n --wb-font-11-5: 11.5px;\n --wb-font-12-5: 12.5px;\n --wb-font-18: 18px;\n --wb-len-0-5: 0.5px;\n --wb-len-1: 1px;\n --wb-len-10: 10px;\n --wb-len-12: 12px;\n --wb-len-120: 120px;\n --wb-len-13: 13px;\n --wb-len-132: 132px;\n --wb-len-14: 14px;\n --wb-len-144: 144px;\n --wb-len-15: 15px;\n --wb-len-16: 16px;\n --wb-len-18: 18px;\n --wb-len-2: 2px;\n --wb-len-20: 20px;\n --wb-len-22: 22px;\n --wb-len-220: 220px;\n --wb-len-24: 24px;\n --wb-len-240: 240px;\n --wb-len-26: 26px;\n --wb-len-28: 28px;\n --wb-len-280: 280px;\n --wb-len-3: 3px;\n --wb-len-3-4em: 3.4em;\n --wb-len-30: 30px;\n --wb-len-300: 300px;\n --wb-len-32: 32px;\n --wb-len-320: 320px;\n --wb-len-34: 34px;\n --wb-len-36: 36px;\n --wb-len-360: 360px;\n --wb-len-38: 38px;\n --wb-len-4: 4px;\n --wb-len-440: 440px;\n --wb-len-40: 40px;\n --wb-len-420: 420px;\n --wb-len-42em: 42em;\n --wb-len-44: 44px;\n --wb-len-48: 48px;\n --wb-len-
|
|
15078
|
+
var scale_default = ":root {\n --wb-dur-0-12: 0.12s;\n --wb-dur-0-9: 0.9s;\n --wb-dur-1-4: 1.4s;\n --wb-dur-1-5: 1.5s;\n --wb-font-10: 10px;\n --wb-font-11-5: 11.5px;\n --wb-font-12-5: 12.5px;\n --wb-font-18: 18px;\n --wb-len-0-5: 0.5px;\n --wb-len-1: 1px;\n --wb-len-10: 10px;\n --wb-len-12: 12px;\n --wb-len-120: 120px;\n --wb-len-13: 13px;\n --wb-len-132: 132px;\n --wb-len-14: 14px;\n --wb-len-144: 144px;\n --wb-len-15: 15px;\n --wb-len-16: 16px;\n --wb-len-18: 18px;\n --wb-len-2: 2px;\n --wb-len-20: 20px;\n --wb-len-22: 22px;\n --wb-len-220: 220px;\n --wb-len-24: 24px;\n --wb-len-240: 240px;\n --wb-len-26: 26px;\n --wb-len-28: 28px;\n --wb-len-280: 280px;\n --wb-len-3: 3px;\n --wb-len-3-4em: 3.4em;\n --wb-len-30: 30px;\n --wb-len-300: 300px;\n --wb-len-32: 32px;\n --wb-len-320: 320px;\n --wb-len-34: 34px;\n --wb-len-36: 36px;\n --wb-len-360: 360px;\n --wb-len-38: 38px;\n --wb-len-4: 4px;\n --wb-len-440: 440px;\n --wb-len-40: 40px;\n --wb-len-420: 420px;\n --wb-len-42em: 42em;\n --wb-len-44: 44px;\n --wb-len-48: 48px;\n --wb-len-5: 5px;\n --wb-len-52: 52px;\n --wb-len-520: 520px;\n --wb-len-56: 56px;\n --wb-len-560: 560px;\n --wb-len-6: 6px;\n --wb-len-60: 60px;\n --wb-len-64: 64px;\n --wb-len-7: 7px;\n --wb-len-72: 72px;\n --wb-len-8: 8px;\n --wb-len-800: 800px;\n --wb-len-9: 9px;\n --wb-len-96: 96px;\n --wb-len-960: 960px;\n --wb-len-neg-0-5: -0.5px;\n --wb-len-neg-1-5: -1.5px;\n --wb-len-neg-2: -2px;\n --wb-len-neg-3: -3px;\n --wb-len-neg-4: -4px;\n --wb-len-neg-8: -8px;\n --wb-line-14: 14px;\n --wb-line-15: 15px;\n --wb-line-16: 16px;\n --wb-line-17: 17px;\n --wb-line-18: 18px;\n --wb-line-19: 19px;\n --wb-line-20: 20px;\n --wb-line-22: 22px;\n --wb-line-24: 24px;\n --wb-radius-14: 14px;\n --wb-radius-6: 6px;\n --wb-radius-pill: 999px;\n --wb-track-brand: .04em;\n --wb-z-1100: 1100;\n --wb-z-10: 10;\n --wb-z-30: 30;\n --wb-z-40: 40;\n --wb-z-top: 2147483000;\n}\n";
|
|
14390
15079
|
//#endregion
|
|
14391
15080
|
//#region src/shared/styles/sidebar-app.css?raw
|
|
14392
15081
|
var sidebar_app_default = ".wb-wsSection {\n position: relative;\n flex: none;\n --dsh-session-list-edge-inset: var(--dsh-sidebar-inline-padding);\n --dsh-session-list-scrollbar-width: 5px;\n --dsh-session-list-scrollbar-offset: 2px;\n margin: 0 var(--dsh-session-list-scrollbar-offset) var(--wb-len-4) 0;\n padding-right: calc( var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset) );\n}.wb-sectionHeader {\n box-sizing: border-box;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--wb-len-4);\n height: var(--wb-len-36);\n flex: none;\n margin-bottom: var(--wb-len-4);\n padding-left: var(--wb-len-8);\n padding-right: var(--wb-len-2);\n border-radius: var(--dsw-radius-md);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n}.wb-wsNew {\n margin-left: auto;\n}.wb-sectionLabel {\n flex: none;\n min-width: 0;\n max-width: 45%;\n overflow: hidden;\n white-space: nowrap;\n line-height: var(--wb-line-20);\n}.wb-collapsed .wb-wsSection {\n margin: 0 0 var(--wb-len-12);\n padding-right: 0;\n}.wb-collapsed .wb-sectionHeader {\n justify-content: flex-start;\n gap: 0;\n margin-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n}.wb-collapsed .wb-wsNew {\n margin-left: 0;\n}.wb-sessions {\n --dsh-session-list-edge-inset: var(--dsh-sidebar-inline-padding);\n --dsh-session-list-scrollbar-width: 5px;\n --dsh-session-list-scrollbar-offset: 2px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n margin-left: var(--wb-len-neg-4);\n margin-right: var(--dsh-session-list-scrollbar-offset);\n padding-left: var(--wb-len-4);\n padding-right: calc( var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset) );\n padding-bottom: var(--wb-len-16);\n scrollbar-gutter: stable;\n --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);\n --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2);\n}.wb-sessions.wb-fadeTop {\n mask-image: linear-gradient(\n to bottom,\n transparent 0,\n var(--wb-static-mask-opaque) var(--wb-len-24),\n var(--wb-static-mask-opaque) 100%\n );\n}.wb-sessions.wb-fadeBottom {\n mask-image: linear-gradient(\n to bottom,\n var(--wb-static-mask-opaque) 0,\n var(--wb-static-mask-opaque) calc(100% - var(--wb-len-24)),\n transparent 100%\n );\n}.wb-sessions.wb-fadeTop.wb-fadeBottom {\n mask-image: linear-gradient(\n to bottom,\n transparent 0,\n var(--wb-static-mask-opaque) var(--wb-len-24),\n var(--wb-static-mask-opaque) calc(100% - var(--wb-len-24)),\n transparent 100%\n );\n}.wb-sessions > * {\n flex: none;\n}.wb-sessions > * + * {\n margin-top: var(--wb-len-2);\n}.wb-sessionLeading {\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}.wb-sessionPin {\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 margin-left: var(--wb-len-6);\n color: var(--dsw-alias-label-caption);\n}.wb-rowActions {\n flex: none;\n display: none;\n align-items: center;\n gap: var(--wb-len-15);\n}.wb-rowActions .wb-iconButton {\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-tertiary);\n}.wb-rowActions .wb-iconButton:hover {\n background: transparent;\n color: var(--dsw-alias-label-primary);\n}.wb-sessionRow:hover .wb-rowActions,\n.wb-sessionRow.wb-menuOpen .wb-rowActions {\n display: inline-flex;\n}.wb-sessionRow:hover .wb-sessionTime,\n.wb-sessionRow.wb-menuOpen .wb-sessionTime,\n.wb-sessionRow:hover .wb-sessionPin,\n.wb-sessionRow.wb-menuOpen .wb-sessionPin {\n display: none;\n}.wb-sessionRow.wb-menuOpen {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-sessionRow {\n position: relative;\n flex: none;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 0;\n width: 100%;\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-8);\n border: none;\n border-radius: var(--dsw-radius-md);\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n user-select: none;\n}.wb-sessionRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-sessionRow: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}.wb-visuallyHidden {\n clip: rect(0 0 0 0);\n white-space: nowrap;\n width: var(--wb-len-1);\n height: var(--wb-len-1);\n position: absolute;\n overflow: hidden;\n}.wb-sessionTitle {\n flex: 1;\n min-width: 0;\n margin: 0 var(--wb-len-6) 0 var(--wb-len-4);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}.wb-sessionTitle[data-scrolled] {\n mask-image: linear-gradient(90deg, transparent, var(--wb-static-mask-opaque) var(--wb-len-12));\n}.wb-sessionTitle[data-clipped] {\n mask-image: linear-gradient(270deg, transparent, var(--wb-static-mask-opaque) var(--wb-len-12));\n}.wb-sessionTitle[data-scrolled][data-clipped] {\n mask-image: linear-gradient(\n 90deg,\n transparent,\n var(--wb-static-mask-opaque) var(--wb-len-12) calc(100% - var(--wb-len-12)),\n transparent\n );\n}@media (hover: hover) {\n .wb-sessionRow:hover .wb-sessionTitle,\n .wb-sessionRow.wb-menuOpen .wb-sessionTitle {\n text-overflow: clip;\n }\n}.wb-sessionHover {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}.wb-sessionHoverTitle {\n color: var(--dsw-static-neutral-bluish-00);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n overflow-wrap: break-word;\n}.wb-sessionHoverTime {\n color: var(--dsw-static-neutral-bluish-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-16);\n}.wb-sessionHoverStatus {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n color: var(--dsw-static-neutral-bluish-400);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-20);\n}.wb-sessionTime {\n flex: none;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}.wb-workspaceBusy {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: var(--wb-len-4) var(--wb-len-8) 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}.wb-workspaceError {\n margin: var(--wb-len-4) var(--wb-len-8) 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}.wb-empty {\n padding: var(--wb-len-16) var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-tertiary);\n}.wb-sessionRow.wb-selected {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-panelTag {\n flex: none;\n margin-left: auto;\n}.wb-panelGlyph {\n position: relative;\n}.wb-panelDot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: var(--wb-len-neg-3);\n right: var(--wb-len-neg-3);\n}button[class$=_workspace] {\n display: none;\n}\n";
|
|
@@ -14763,7 +15452,7 @@ function messagesOf(units) {
|
|
|
14763
15452
|
...face.messages === void 0 ? {} : { messages: face.messages }
|
|
14764
15453
|
}));
|
|
14765
15454
|
}
|
|
14766
|
-
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_1idrk_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_1idrk_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_1idrk_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_1idrk_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_1idrk_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_1idrk_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_1idrk_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_1idrk_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_1idrk_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_1idrk_39 ._marketVersion_1idrk_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_1idrk_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_1idrk_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_1idrk_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_1idrk_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1idrk_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1idrk_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_1idrk_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_1idrk_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_1idrk_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_1idrk_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_1idrk_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_1idrk_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_1idrk_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_1idrk_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_1idrk_175 ._marketSectionTitle_1idrk_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1idrk_175 ._marketName_1idrk_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1idrk_175 ._marketIcon_1idrk_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n._marketProgress_1idrk_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_1idrk_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_1idrk_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_1idrk_212 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_1idrk_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_1idrk_217 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_1idrk_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_1idrk_243 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_1idrk_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_1idrk_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_1idrk_263 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_1idrk_263[hidden] {\n display: none;\n}\n\n._marketTabs_1idrk_273 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_1idrk_278 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketIconButton_1idrk_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_1idrk_283:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketIconButton_1idrk_283:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._marketIconWrap_1idrk_308 {\n display: inline-flex;\n}\n\n._marketIconButtonSpinning_1idrk_312 svg {\n animation: _wb-spin_1idrk_1 var(--wb-dur-0-9) linear infinite;\n}\n\n._marketAddButton_1idrk_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_1idrk_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_1idrk_333 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n@keyframes _wb-spin_1idrk_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n._discoverPage_1idrk_347 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_1idrk_354 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_1idrk_361 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_1idrk_367 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_1idrk_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_1idrk_379 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_1idrk_385 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_1idrk_390 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_1idrk_395 {\n flex: none;\n}\n\n._discoverSearch_1idrk_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_1idrk_407 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_1idrk_412 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_1idrk_407 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_1idrk_399 ._discoverSearchClear_1idrk_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_1idrk_421:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_1idrk_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_1idrk_367 {\n grid-area: market;\n }\n\n ._discoverMarketButton_1idrk_372 {\n margin-left: 0;\n }\n\n ._discoverLabels_1idrk_385 {\n grid-area: labels;\n }\n\n ._discoverSearch_1idrk_399 {\n grid-area: search;\n }\n\n ._discoverSort_1idrk_390 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_1idrk_395 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_1idrk_472 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_1idrk_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_1idrk_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_1idrk_488:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_1idrk_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_1idrk_514 {\n object-fit: contain;\n}\n\n._discoverMain_1idrk_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_1idrk_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_1idrk_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_1idrk_534::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_1idrk_534:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_1idrk_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_1idrk_565 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_1idrk_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_1idrk_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_1idrk_587 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_1idrk_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_1idrk_602 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_1idrk_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_1idrk_616 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_1idrk_607 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_1idrk_626 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_1idrk_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_1idrk_632:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_1idrk_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_1idrk_655 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_1idrk_659 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_1idrk_665 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_1idrk_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_1idrk_678 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_1idrk_685 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_1idrk_690 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_1idrk_695 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_1idrk_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_1idrk_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_1idrk_713 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_1idrk_719 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_1idrk_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_1idrk_734 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_1idrk_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_1idrk_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_1idrk_757 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_1idrk_764 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_1idrk_764:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_1idrk_774 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_1idrk_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_1idrk_790 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_1idrk_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_1idrk_804 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_1idrk_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_1idrk_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_1idrk_819 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_1idrk_837 {\n align-self: center;\n}\n\n._discoverDialog_1idrk_841 {\n width: min(var(--wb-len-480), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_1idrk_845 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_1idrk_851 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_1idrk_859 {\n display: flex;\n flex-wrap: wrap;\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._discoverSourceCurrent_1idrk_868 {\n flex: none;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceLoading_1idrk_875 {\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_1idrk_885 {\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_1idrk_885 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_1idrk_899 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_1idrk_905 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_1idrk_911 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_1idrk_916 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_1idrk_922 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_1idrk_927 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_1idrk_933 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_1idrk_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_1idrk_502._discoverSkeletonFill_1idrk_933 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_1idrk_942 {\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_1idrk_949 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_1idrk_953 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_1idrk_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_1idrk_933 {\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*/";
|
|
15455
|
+
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_jfyof_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_jfyof_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_jfyof_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_jfyof_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_jfyof_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_jfyof_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_jfyof_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_jfyof_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_jfyof_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_jfyof_39 ._marketVersion_jfyof_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_jfyof_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_jfyof_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_jfyof_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_jfyof_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_jfyof_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_jfyof_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_jfyof_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_jfyof_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_jfyof_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_jfyof_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_jfyof_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_jfyof_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_jfyof_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_jfyof_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_jfyof_175 ._marketSectionTitle_jfyof_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_jfyof_175 ._marketName_jfyof_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_jfyof_175 ._marketIcon_jfyof_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n._marketProgress_jfyof_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_jfyof_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_jfyof_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_jfyof_212 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_jfyof_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_jfyof_217 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_jfyof_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_jfyof_243 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_jfyof_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_jfyof_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_jfyof_263 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_jfyof_263[hidden] {\n display: none;\n}\n\n._marketTabs_jfyof_273 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_jfyof_278 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketIconButton_jfyof_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_jfyof_283:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketIconButton_jfyof_283:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._marketIconWrap_jfyof_308 {\n display: inline-flex;\n}\n\n._marketIconButtonSpinning_jfyof_312 svg {\n animation: _wb-spin_jfyof_1 var(--wb-dur-0-9) linear infinite;\n}\n\n._marketAddButton_jfyof_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_jfyof_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_jfyof_333 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n@keyframes _wb-spin_jfyof_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n._discoverPage_jfyof_347 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_jfyof_354 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_jfyof_361 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_jfyof_367 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_jfyof_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_jfyof_379 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_jfyof_385 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_jfyof_390 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_jfyof_395 {\n flex: none;\n}\n\n._discoverSearch_jfyof_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_jfyof_407 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_jfyof_412 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_jfyof_407 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_jfyof_399 ._discoverSearchClear_jfyof_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_jfyof_421:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_jfyof_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_jfyof_367 {\n grid-area: market;\n }\n\n ._discoverMarketButton_jfyof_372 {\n margin-left: 0;\n }\n\n ._discoverLabels_jfyof_385 {\n grid-area: labels;\n }\n\n ._discoverSearch_jfyof_399 {\n grid-area: search;\n }\n\n ._discoverSort_jfyof_390 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_jfyof_395 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_jfyof_472 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_jfyof_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_jfyof_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_jfyof_488:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_jfyof_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_jfyof_514 {\n object-fit: contain;\n}\n\n._discoverMain_jfyof_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_jfyof_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_jfyof_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_jfyof_534::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_jfyof_534:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_jfyof_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_jfyof_565 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_jfyof_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_jfyof_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_jfyof_587 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_jfyof_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_jfyof_602 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_jfyof_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_jfyof_616 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_jfyof_607 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_jfyof_626 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_jfyof_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_jfyof_632:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_jfyof_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_jfyof_655 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_jfyof_659 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_jfyof_665 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_jfyof_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_jfyof_678 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_jfyof_685 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_jfyof_690 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_jfyof_695 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_jfyof_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_jfyof_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_jfyof_713 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_jfyof_719 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_jfyof_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_jfyof_734 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_jfyof_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_jfyof_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_jfyof_757 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_jfyof_764 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_jfyof_764:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_jfyof_774 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_jfyof_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_jfyof_790 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_jfyof_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_jfyof_804 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_jfyof_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_jfyof_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_jfyof_819 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_jfyof_837 {\n align-self: center;\n}\n\n._discoverTransport_jfyof_841 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_jfyof_847 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportRows_jfyof_852 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_jfyof_852 {\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_jfyof_852:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_jfyof_852:has(._discoverTransportRadio_jfyof_873:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_jfyof_852:has(._discoverTransportRadio_jfyof_873:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_jfyof_873 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_jfyof_887 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_jfyof_893 {\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_jfyof_852[data-state='ok'] ._discoverTransportState_jfyof_893 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_jfyof_852[data-state='auth'] ._discoverTransportState_jfyof_893 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_jfyof_852[data-state='unreachable'] ._discoverTransportState_jfyof_893,\n._discoverTransportRow_jfyof_852[data-state='unknown'] ._discoverTransportState_jfyof_893 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_jfyof_913 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_jfyof_919 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_jfyof_924 {\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_jfyof_935 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_jfyof_941 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_jfyof_945 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_jfyof_951 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_jfyof_959 {\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_jfyof_968 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_jfyof_974 {\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_jfyof_983 {\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_jfyof_991 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_jfyof_999 {\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_jfyof_1007 {\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_jfyof_1017 {\n flex: none;\n}\n\n._discoverSourceLoading_jfyof_1021 {\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_jfyof_1031 {\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_jfyof_1031 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_jfyof_1045 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_jfyof_1051 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_jfyof_1057 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_jfyof_1062 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_jfyof_1068 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_jfyof_1073 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_jfyof_1079 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_jfyof_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_jfyof_502._discoverSkeletonFill_jfyof_1079 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_jfyof_1088 {\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_jfyof_1095 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_jfyof_1099 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_jfyof_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_jfyof_1079 {\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*/";
|
|
14767
15456
|
function workbenchCss() {
|
|
14768
15457
|
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}`;
|
|
14769
15458
|
}
|