@dsh-workbench/core 1.1.3 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client.js +686 -505
- package/dist/client/client.body.js +686 -505
- package/dist/client/index.js +541 -360
- package/dist/host/index.js +244 -6
- package/dist/types/app/layouts/market/discover-confirm.d.ts +3 -2
- package/dist/types/app/layouts/market/market-check.d.ts +10 -0
- package/dist/types/app/layouts/market/market-header.d.ts +1 -3
- package/dist/types/app/layouts/market/use-discover.d.ts +2 -1
- package/dist/types/app/layouts/market/use-git-transport.d.ts +2 -2
- package/dist/types/app/layouts/market/use-module-versions.d.ts +3 -0
- package/dist/types/app/layouts/market/use-settling-modules.d.ts +1 -0
- package/dist/types/app/layouts/rightbar/MarketView.d.ts +3 -1
- package/dist/types/app/layouts/rightbar/market-freshness.d.ts +1 -0
- package/dist/types/app/layouts/rightbar/market-row-types.d.ts +4 -1
- package/dist/types/app/layouts/rightbar/market-rows.d.ts +2 -0
- package/dist/types/app/layouts/rightbar/market-section.d.ts +4 -2
- package/dist/types/app/layouts/rightbar/use-market-default.d.ts +12 -0
- package/dist/types/kernel/contract/market-index.d.ts +2 -2
- package/dist/types/modules/panels/model/market-installed.d.ts +19 -0
- package/dist/types/modules/panels/model/market-installed.test.d.ts +1 -0
- package/dist/types/modules/panels/model/market-route.d.ts +1 -0
- package/dist/types/shared/api/host/git-probe.d.ts +3 -0
- package/dist/types/shared/api/host/market-sources-store.d.ts +2 -1
- package/dist/types/shared/api/host/profile-dependencies.d.ts +1 -0
- package/dist/types/shared/hooks/market-queries.d.ts +2 -1
- package/package.json +3 -3
|
@@ -781,17 +781,17 @@ async function apiPost(route, body) {
|
|
|
781
781
|
//#endregion
|
|
782
782
|
//#region ../shared/dist/lib/react.js
|
|
783
783
|
var react$1 = require("react");
|
|
784
|
-
var h$
|
|
784
|
+
var h$67 = react$1.createElement;
|
|
785
785
|
var Fragment$23 = react$1.Fragment;
|
|
786
786
|
var Component = react$1.Component;
|
|
787
787
|
react$1.createContext;
|
|
788
788
|
react$1.useContext;
|
|
789
|
-
var useState$
|
|
790
|
-
var useEffect$
|
|
789
|
+
var useState$40 = react$1.useState;
|
|
790
|
+
var useEffect$30 = react$1.useEffect;
|
|
791
791
|
react$1.useLayoutEffect;
|
|
792
792
|
var useMemo$10 = react$1.useMemo;
|
|
793
793
|
react$1.useCallback;
|
|
794
|
-
var useRef$
|
|
794
|
+
var useRef$24 = react$1.useRef;
|
|
795
795
|
react$1.useSyncExternalStore;
|
|
796
796
|
//#endregion
|
|
797
797
|
//#region ../shared/dist/components/Activity.js
|
|
@@ -802,7 +802,7 @@ react$1.useSyncExternalStore;
|
|
|
802
802
|
* @returns 一个 div。
|
|
803
803
|
*/
|
|
804
804
|
function ActivityBlock({ head, children }) {
|
|
805
|
-
return h$
|
|
805
|
+
return h$67("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$67("div", { className: "wb-activityBlockHead" }, head), children);
|
|
806
806
|
}
|
|
807
807
|
/**
|
|
808
808
|
* 一条活动:状态点 + 正文 + 时间,行尾可挂动作;时间一律用它,别自己拼。
|
|
@@ -813,7 +813,7 @@ function ActivityBlock({ head, children }) {
|
|
|
813
813
|
* @returns 一行。
|
|
814
814
|
*/
|
|
815
815
|
function ActivityLine({ dot, text, at, actions }) {
|
|
816
|
-
return h$
|
|
816
|
+
return h$67("div", { className: "wb-activityLine" }, dot, h$67("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h$67("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h$67("span", { className: "wb-activityLineActions" }, actions));
|
|
817
817
|
}
|
|
818
818
|
/**
|
|
819
819
|
* 活动行尾那颗动作:给 `href` 就是外链,否则是图标钮并带上 tooltip。
|
|
@@ -827,7 +827,7 @@ function ActivityLine({ dot, text, at, actions }) {
|
|
|
827
827
|
*/
|
|
828
828
|
function ActivityAction({ label, hint, icon, href, onClick, failed }) {
|
|
829
829
|
const tip = hint ?? label;
|
|
830
|
-
if (href !== void 0) return h$
|
|
830
|
+
if (href !== void 0) return h$67("a", {
|
|
831
831
|
className: "wb-iconButton",
|
|
832
832
|
href,
|
|
833
833
|
target: "_blank",
|
|
@@ -835,13 +835,13 @@ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
|
|
|
835
835
|
title: tip,
|
|
836
836
|
"aria-label": label
|
|
837
837
|
}, icon);
|
|
838
|
-
return h$
|
|
838
|
+
return h$67(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
839
839
|
side: "bottom",
|
|
840
840
|
align: "end",
|
|
841
841
|
gap: 6,
|
|
842
842
|
portal: true,
|
|
843
843
|
label: tip
|
|
844
|
-
}, h$
|
|
844
|
+
}, h$67(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
845
845
|
type: "button",
|
|
846
846
|
variant: "ghost",
|
|
847
847
|
size: "sm",
|
|
@@ -863,10 +863,10 @@ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
|
|
|
863
863
|
*/
|
|
864
864
|
function Note({ tone = "muted", as, role, children }) {
|
|
865
865
|
const className = tone === "problem" ? "wb-problem" : "wb-note";
|
|
866
|
-
return as === "span" ? h$
|
|
866
|
+
return as === "span" ? h$67("span", {
|
|
867
867
|
className,
|
|
868
868
|
role
|
|
869
|
-
}, children) : h$
|
|
869
|
+
}, children) : h$67("p", {
|
|
870
870
|
className,
|
|
871
871
|
role
|
|
872
872
|
}, children);
|
|
@@ -910,10 +910,10 @@ var CardBoundary = class extends Component {
|
|
|
910
910
|
render() {
|
|
911
911
|
const { reason } = this.state;
|
|
912
912
|
if (reason === null) return this.props.children;
|
|
913
|
-
return h$
|
|
913
|
+
return h$67(Note, { tone: "problem" }, h$67("span", null, this.props.t("panels.cardBroken", {
|
|
914
914
|
unit: this.props.unit,
|
|
915
915
|
reason
|
|
916
|
-
})), " ", h$
|
|
916
|
+
})), " ", h$67(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
917
917
|
type: "button",
|
|
918
918
|
variant: "outline",
|
|
919
919
|
size: "sm",
|
|
@@ -963,19 +963,19 @@ function ApprovalDetail(props) {
|
|
|
963
963
|
const owner = (props.units ?? []).find((face) => face.approval?.tools.includes(input.tool) === true);
|
|
964
964
|
if (owner?.approval !== void 0) {
|
|
965
965
|
const Render = owner.approval.render;
|
|
966
|
-
return h$
|
|
966
|
+
return h$67(CardBoundary, {
|
|
967
967
|
unit: owner.unit,
|
|
968
968
|
resetKey: props.callId ?? "",
|
|
969
969
|
t
|
|
970
|
-
}, h$
|
|
970
|
+
}, h$67(Render, {
|
|
971
971
|
input,
|
|
972
972
|
t
|
|
973
973
|
}));
|
|
974
974
|
}
|
|
975
975
|
const shell = props.renderShell?.(input, t);
|
|
976
|
-
if (shell !== void 0 && shell !== null) return h$
|
|
976
|
+
if (shell !== void 0 && shell !== null) return h$67(Fragment$23, null, shell);
|
|
977
977
|
if (command === "") return null;
|
|
978
|
-
return h$
|
|
978
|
+
return h$67(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
|
|
979
979
|
code: command,
|
|
980
980
|
className: "wb-approvalCommand",
|
|
981
981
|
copyLabel: t("blocker.copy"),
|
|
@@ -993,10 +993,10 @@ function ApprovalDetail(props) {
|
|
|
993
993
|
* @returns 一个 div。
|
|
994
994
|
*/
|
|
995
995
|
function ApprovalPlan({ rows, hint, warn, children }) {
|
|
996
|
-
return h$
|
|
996
|
+
return h$67("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h$67("p", { className: "wb-approvalHint" }, hint), h$67("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h$67("div", {
|
|
997
997
|
className: "wb-approvalRow",
|
|
998
998
|
key: String(index)
|
|
999
|
-
}, h$
|
|
999
|
+
}, h$67("dt", { className: "wb-approvalLabel" }, row.label), h$67("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h$67("p", { className: "wb-approvalWarn" }, warn));
|
|
1000
1000
|
}
|
|
1001
1001
|
//#endregion
|
|
1002
1002
|
//#region ../shared/dist/components/CardHead.js
|
|
@@ -1013,47 +1013,47 @@ function ApprovalPlan({ rows, hint, warn, children }) {
|
|
|
1013
1013
|
function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle }) {
|
|
1014
1014
|
const refreshLabel = refreshing ? t("rightbar.refreshing") : t("rightbar.refresh");
|
|
1015
1015
|
const platformLabel = platformTitle ?? platform ?? t("rightbar.openPlatform");
|
|
1016
|
-
return h$
|
|
1016
|
+
return h$67("header", { className: "wb-cardHead" }, h$67("h2", { className: "wb-cardTitle" }, title), meta === void 0 ? null : h$67("span", { className: "wb-cardMeta" }, meta), platformHref === void 0 ? null : h$67(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
1017
1017
|
side: "bottom",
|
|
1018
1018
|
align: "end",
|
|
1019
1019
|
gap: 6,
|
|
1020
1020
|
portal: true,
|
|
1021
1021
|
label: platformLabel
|
|
1022
|
-
}, h$
|
|
1022
|
+
}, h$67("a", {
|
|
1023
1023
|
className: "wb-iconButton wb-cardOpen",
|
|
1024
1024
|
href: platformHref,
|
|
1025
1025
|
target: "_blank",
|
|
1026
1026
|
rel: "noreferrer noopener",
|
|
1027
1027
|
"aria-label": platform ?? platformLabel
|
|
1028
|
-
}, h$
|
|
1028
|
+
}, h$67(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$67(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
1029
1029
|
side: "bottom",
|
|
1030
1030
|
align: "end",
|
|
1031
1031
|
gap: 6,
|
|
1032
1032
|
portal: true,
|
|
1033
1033
|
label: refreshLabel
|
|
1034
|
-
}, h$
|
|
1034
|
+
}, h$67(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1035
1035
|
type: "button",
|
|
1036
1036
|
size: "sm",
|
|
1037
1037
|
variant: "ghost",
|
|
1038
1038
|
className: `wb-cardRefresh${refreshing ? " wb-spinning" : ""}`,
|
|
1039
1039
|
"aria-label": refreshLabel,
|
|
1040
1040
|
disabled: refreshing,
|
|
1041
|
-
icon: h$
|
|
1041
|
+
icon: h$67(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
|
|
1042
1042
|
onClick: onRefresh
|
|
1043
|
-
})), gear === void 0 || onToggleGear === void 0 ? null : h$
|
|
1043
|
+
})), gear === void 0 || onToggleGear === void 0 ? null : h$67(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
1044
1044
|
side: "bottom",
|
|
1045
1045
|
align: "end",
|
|
1046
1046
|
gap: 6,
|
|
1047
1047
|
portal: true,
|
|
1048
1048
|
label: gear
|
|
1049
|
-
}, h$
|
|
1049
|
+
}, h$67(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1050
1050
|
type: "button",
|
|
1051
1051
|
size: "sm",
|
|
1052
1052
|
variant: "ghost",
|
|
1053
1053
|
className: `wb-cardGear${gearOpen === true ? " wb-iconButtonActive" : ""}`,
|
|
1054
1054
|
"aria-label": gear,
|
|
1055
1055
|
"aria-expanded": gearOpen === true,
|
|
1056
|
-
icon: h$
|
|
1056
|
+
icon: h$67(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
|
|
1057
1057
|
onClick: onToggleGear
|
|
1058
1058
|
})));
|
|
1059
1059
|
}
|
|
@@ -1070,13 +1070,13 @@ function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onTog
|
|
|
1070
1070
|
* @returns 一个 `<section>`。
|
|
1071
1071
|
*/
|
|
1072
1072
|
function Card({ t, title, refreshing, onRefresh, meta, head, children }) {
|
|
1073
|
-
return h$
|
|
1073
|
+
return h$67("section", { className: "wb-card" }, head === void 0 ? h$67(CardHead, {
|
|
1074
1074
|
t,
|
|
1075
1075
|
title,
|
|
1076
1076
|
refreshing,
|
|
1077
1077
|
onRefresh,
|
|
1078
1078
|
meta
|
|
1079
|
-
}) : head, h$
|
|
1079
|
+
}) : head, h$67("div", { className: "wb-cardBody" }, children));
|
|
1080
1080
|
}
|
|
1081
1081
|
var CardAnchor_module_default = { anchor: "_anchor_yq4s2_1" };
|
|
1082
1082
|
//#endregion
|
|
@@ -1096,7 +1096,7 @@ function cardIdOf(unit) {
|
|
|
1096
1096
|
* @returns 带 id 的占位 div。
|
|
1097
1097
|
*/
|
|
1098
1098
|
function CardAnchor({ unit, children }) {
|
|
1099
|
-
return h$
|
|
1099
|
+
return h$67("div", {
|
|
1100
1100
|
id: cardIdOf(unit),
|
|
1101
1101
|
className: CardAnchor_module_default.anchor
|
|
1102
1102
|
}, children);
|
|
@@ -1110,13 +1110,13 @@ function CardAnchor({ unit, children }) {
|
|
|
1110
1110
|
* @returns 一枚 `StateDot state="ongoing"`,自身不带文字。
|
|
1111
1111
|
*/
|
|
1112
1112
|
function Spinner({ size = 14, label }) {
|
|
1113
|
-
return h$
|
|
1113
|
+
return h$67("span", {
|
|
1114
1114
|
className: "wb-spinner",
|
|
1115
1115
|
...label === void 0 ? { "aria-hidden": true } : {
|
|
1116
1116
|
role: "status",
|
|
1117
1117
|
"aria-label": label
|
|
1118
1118
|
}
|
|
1119
|
-
}, h$
|
|
1119
|
+
}, h$67(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
|
|
1120
1120
|
state: "ongoing",
|
|
1121
1121
|
size
|
|
1122
1122
|
}));
|
|
@@ -1124,24 +1124,24 @@ function Spinner({ size = 14, label }) {
|
|
|
1124
1124
|
//#endregion
|
|
1125
1125
|
//#region ../shared/dist/components/ChoiceGroup.js
|
|
1126
1126
|
function ChoiceMenu(input) {
|
|
1127
|
-
const body = input.loading ? h$
|
|
1127
|
+
const body = input.loading ? h$67("span", {
|
|
1128
1128
|
className: "wb-choiceLoading",
|
|
1129
1129
|
role: "status"
|
|
1130
|
-
}, h$
|
|
1130
|
+
}, h$67(Spinner, { size: 14 }), h$67("span", { className: "wb-choiceLoadingText" }, input.loadingText ?? "…")) : input.options.length === 0 ? input.emptyText === void 0 ? null : h$67("span", { className: "wb-choiceEmpty" }, input.emptyText) : input.options.map((option) => {
|
|
1131
1131
|
const row = input.rowOf(option.value);
|
|
1132
|
-
return h$
|
|
1132
|
+
return h$67(Fragment$23, { key: option.value }, h$67("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$67("input", {
|
|
1133
1133
|
className: input.multi ? "wb-checkbox" : "wb-radio",
|
|
1134
1134
|
type: input.multi ? "checkbox" : "radio",
|
|
1135
1135
|
name: input.name,
|
|
1136
1136
|
checked: row.checked,
|
|
1137
1137
|
disabled: input.disabled,
|
|
1138
1138
|
onChange: row.onSelect
|
|
1139
|
-
}), input.multi ? h$
|
|
1139
|
+
}), input.multi ? h$67("span", {
|
|
1140
1140
|
className: "wb-checkboxBox",
|
|
1141
1141
|
"aria-hidden": "true"
|
|
1142
|
-
}, row.checked ? h$
|
|
1142
|
+
}, row.checked ? h$67(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 }) : null) : null, h$67("span", { className: "wb-choiceLabel" }, h$67("span", { className: "wb-choiceLabelText" }, option.label), option.description === void 0 ? null : h$67("span", { className: "wb-choiceDescription" }, option.description))));
|
|
1143
1143
|
});
|
|
1144
|
-
return h$
|
|
1144
|
+
return h$67("div", {
|
|
1145
1145
|
className: "wb-choiceMenu",
|
|
1146
1146
|
"data-variant": input.variant,
|
|
1147
1147
|
role: input.multi ? "group" : "radiogroup",
|
|
@@ -1175,7 +1175,7 @@ function ChoiceGroup(props) {
|
|
|
1175
1175
|
if (props.multi === true) {
|
|
1176
1176
|
const values = props.values;
|
|
1177
1177
|
const onChange = props.onChange;
|
|
1178
|
-
return h$
|
|
1178
|
+
return h$67(ChoiceMenu, {
|
|
1179
1179
|
label: common.label,
|
|
1180
1180
|
name: common.name,
|
|
1181
1181
|
options: common.options,
|
|
@@ -1195,7 +1195,7 @@ function ChoiceGroup(props) {
|
|
|
1195
1195
|
}
|
|
1196
1196
|
const value = props.value;
|
|
1197
1197
|
const onChange = props.onChange;
|
|
1198
|
-
return h$
|
|
1198
|
+
return h$67(ChoiceMenu, {
|
|
1199
1199
|
label: common.label,
|
|
1200
1200
|
name: common.name,
|
|
1201
1201
|
options: common.options,
|
|
@@ -1248,17 +1248,17 @@ function variantOf(kind) {
|
|
|
1248
1248
|
function FormActions({ actions }) {
|
|
1249
1249
|
if (actions.length === 0) return null;
|
|
1250
1250
|
reportExtraPrimaries(actions);
|
|
1251
|
-
return h$
|
|
1251
|
+
return h$67("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
|
|
1252
1252
|
const kind = kindOf(action);
|
|
1253
1253
|
const busy = action.busy === true;
|
|
1254
|
-
return h$
|
|
1254
|
+
return h$67(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1255
1255
|
key: action.key,
|
|
1256
1256
|
type: "button",
|
|
1257
1257
|
size: "sm",
|
|
1258
1258
|
variant: variantOf(kind),
|
|
1259
1259
|
className: kind === "danger" ? "wb-formActionDanger" : void 0,
|
|
1260
1260
|
disabled: busy || action.disabled === true,
|
|
1261
|
-
icon: busy ? h$
|
|
1261
|
+
icon: busy ? h$67(Spinner, { size: 12 }) : void 0,
|
|
1262
1262
|
onClick: action.onClick
|
|
1263
1263
|
}, action.label);
|
|
1264
1264
|
}));
|
|
@@ -1271,7 +1271,7 @@ function FormActions({ actions }) {
|
|
|
1271
1271
|
* @returns 竖排的 div。
|
|
1272
1272
|
*/
|
|
1273
1273
|
function Rows({ children }) {
|
|
1274
|
-
return h$
|
|
1274
|
+
return h$67("div", { className: "wb-rows" }, children);
|
|
1275
1275
|
}
|
|
1276
1276
|
/**
|
|
1277
1277
|
* 一行键值:左边名字、右边值;要成对说明一项数据就用它,别自己写两栏。
|
|
@@ -1280,7 +1280,7 @@ function Rows({ children }) {
|
|
|
1280
1280
|
* @returns 一行两格。
|
|
1281
1281
|
*/
|
|
1282
1282
|
function Row({ label, value }) {
|
|
1283
|
-
return h$
|
|
1283
|
+
return h$67("div", { className: "wb-row" }, h$67("span", { className: "wb-rowKey" }, label), h$67("span", { className: "wb-rowValue" }, value));
|
|
1284
1284
|
}
|
|
1285
1285
|
//#endregion
|
|
1286
1286
|
//#region ../shared/dist/components/ConfirmBar.js
|
|
@@ -1297,19 +1297,19 @@ function Row({ label, value }) {
|
|
|
1297
1297
|
* @returns 一个 `role="group"` 的条;`actions` 空数组时最后那一块不渲染。
|
|
1298
1298
|
*/
|
|
1299
1299
|
function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
|
|
1300
|
-
return h$
|
|
1300
|
+
return h$67("div", {
|
|
1301
1301
|
className: "wb-confirmBar",
|
|
1302
1302
|
role: "group",
|
|
1303
1303
|
"aria-label": label ?? (typeof title === "string" ? title : void 0),
|
|
1304
1304
|
"aria-busy": busy
|
|
1305
|
-
}, h$
|
|
1305
|
+
}, h$67("p", { className: "wb-confirmBarTitle" }, title), hint === void 0 ? null : h$67("p", { className: "wb-confirmBarHint" }, hint), rows === void 0 || rows.length === 0 ? null : h$67(Rows, null, rows.map((row) => h$67(Row, {
|
|
1306
1306
|
key: row.key,
|
|
1307
1307
|
label: row.label,
|
|
1308
1308
|
value: row.value
|
|
1309
|
-
}))), problem === void 0 ? null : h$
|
|
1309
|
+
}))), problem === void 0 ? null : h$67(Note, {
|
|
1310
1310
|
tone: "problem",
|
|
1311
1311
|
role: "alert"
|
|
1312
|
-
}, problem), h$
|
|
1312
|
+
}, problem), h$67(FormActions, { actions }));
|
|
1313
1313
|
}
|
|
1314
1314
|
//#endregion
|
|
1315
1315
|
//#region ../shared/dist/components/Field.js
|
|
@@ -1321,7 +1321,7 @@ function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
|
|
|
1321
1321
|
* @returns 一个 `<label>`,点标签会聚焦里面的控件。
|
|
1322
1322
|
*/
|
|
1323
1323
|
function Field({ label, hint, children }) {
|
|
1324
|
-
return h$
|
|
1324
|
+
return h$67("label", { className: "wb-field" }, h$67("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$67("span", { className: "wb-fieldHint" }, hint));
|
|
1325
1325
|
}
|
|
1326
1326
|
//#endregion
|
|
1327
1327
|
//#region ../shared/dist/components/FormRows.js
|
|
@@ -1331,7 +1331,7 @@ function Field({ label, hint, children }) {
|
|
|
1331
1331
|
* @returns 竖排的 div。
|
|
1332
1332
|
*/
|
|
1333
1333
|
function FormRows({ children }) {
|
|
1334
|
-
return h$
|
|
1334
|
+
return h$67("div", { className: "wb-formRows" }, children);
|
|
1335
1335
|
}
|
|
1336
1336
|
/**
|
|
1337
1337
|
* 表单一行:左边标签、右边控件,提示与错误占控件下面那一格。
|
|
@@ -1344,14 +1344,14 @@ function FormRows({ children }) {
|
|
|
1344
1344
|
* @returns 一个 `<div>`:里面的 `<label>` 只包标签文字,不包控件、提示与整行的空白。
|
|
1345
1345
|
*/
|
|
1346
1346
|
function FormRow({ label, htmlFor, hint, problem, layout = "inline", children }) {
|
|
1347
|
-
return h$
|
|
1347
|
+
return h$67("div", {
|
|
1348
1348
|
className: "wb-formRow",
|
|
1349
1349
|
"data-layout": layout,
|
|
1350
1350
|
"data-wb-problem": problem === void 0 ? void 0 : ""
|
|
1351
|
-
}, h$
|
|
1351
|
+
}, h$67("label", {
|
|
1352
1352
|
className: "wb-formLabel",
|
|
1353
1353
|
htmlFor
|
|
1354
|
-
}, label), h$
|
|
1354
|
+
}, label), h$67("span", { className: "wb-formControl" }, children), problem === void 0 ? hint === void 0 ? null : h$67("span", { className: "wb-formHint" }, hint) : h$67("span", { className: "wb-formProblem" }, problem));
|
|
1355
1355
|
}
|
|
1356
1356
|
//#endregion
|
|
1357
1357
|
//#region ../shared/dist/components/FormNodes.js
|
|
@@ -1498,7 +1498,7 @@ function formActionsOf(args) {
|
|
|
1498
1498
|
* @returns `FormRow` 组成的数组;没有可画的格子时给空数组。
|
|
1499
1499
|
*/
|
|
1500
1500
|
function formRowsOf(args) {
|
|
1501
|
-
return args.fields.map((field) => h$
|
|
1501
|
+
return args.fields.map((field) => h$67(FormRow, {
|
|
1502
1502
|
key: field.key,
|
|
1503
1503
|
label: field.label,
|
|
1504
1504
|
htmlFor: controlIdOf(field.key),
|
|
@@ -1574,13 +1574,13 @@ function revealFirstProblem(root) {
|
|
|
1574
1574
|
*/
|
|
1575
1575
|
function Form(props) {
|
|
1576
1576
|
const { fields, onSubmit, submit, cancel, extra, busy = false, disabled = false, problem } = props;
|
|
1577
|
-
const [done, setDone] = useState$
|
|
1578
|
-
const [reveal, setReveal] = useState$
|
|
1579
|
-
const rootRef = useRef$
|
|
1577
|
+
const [done, setDone] = useState$40(false);
|
|
1578
|
+
const [reveal, setReveal] = useState$40(0);
|
|
1579
|
+
const rootRef = useRef$24(null);
|
|
1580
1580
|
const shown = visibleFieldsOf(fields);
|
|
1581
1581
|
const problems = formProblemsOf(shown, done);
|
|
1582
1582
|
reportDuplicateKeys(shown);
|
|
1583
|
-
useEffect$
|
|
1583
|
+
useEffect$30(() => {
|
|
1584
1584
|
if (reveal === 0) return;
|
|
1585
1585
|
const root = rootRef.current;
|
|
1586
1586
|
if (root !== null) revealFirstProblem(root);
|
|
@@ -1595,7 +1595,7 @@ function Form(props) {
|
|
|
1595
1595
|
}
|
|
1596
1596
|
onSubmit(outcome.values);
|
|
1597
1597
|
};
|
|
1598
|
-
return h$
|
|
1598
|
+
return h$67("form", {
|
|
1599
1599
|
className: "wb-form",
|
|
1600
1600
|
ref: rootRef,
|
|
1601
1601
|
noValidate: true,
|
|
@@ -1603,15 +1603,15 @@ function Form(props) {
|
|
|
1603
1603
|
event.preventDefault();
|
|
1604
1604
|
submitForm();
|
|
1605
1605
|
}
|
|
1606
|
-
}, h$
|
|
1606
|
+
}, h$67(FormRows, null, formRowsOf({
|
|
1607
1607
|
fields: shown,
|
|
1608
1608
|
problems,
|
|
1609
1609
|
showProblem: done,
|
|
1610
1610
|
busy
|
|
1611
|
-
})), problem === void 0 ? null : h$
|
|
1611
|
+
})), problem === void 0 ? null : h$67(Note, {
|
|
1612
1612
|
tone: "problem",
|
|
1613
1613
|
role: "alert"
|
|
1614
|
-
}, problem), h$
|
|
1614
|
+
}, problem), h$67(FormActions, { actions: formActionsOf({
|
|
1615
1615
|
extra,
|
|
1616
1616
|
cancel,
|
|
1617
1617
|
submit,
|
|
@@ -1632,7 +1632,7 @@ function Form(props) {
|
|
|
1632
1632
|
* @returns 一个 `<a>`。
|
|
1633
1633
|
*/
|
|
1634
1634
|
function Link({ href, children, title, external = true, className }) {
|
|
1635
|
-
return h$
|
|
1635
|
+
return h$67("a", {
|
|
1636
1636
|
className: className === void 0 ? "wb-link" : `wb-link ${className}`,
|
|
1637
1637
|
href,
|
|
1638
1638
|
...title === void 0 ? {} : { title },
|
|
@@ -1640,7 +1640,7 @@ function Link({ href, children, title, external = true, className }) {
|
|
|
1640
1640
|
target: "_blank",
|
|
1641
1641
|
rel: "noopener noreferrer"
|
|
1642
1642
|
} : {}
|
|
1643
|
-
}, children, external ? h$
|
|
1643
|
+
}, children, external ? h$67(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
|
|
1644
1644
|
}
|
|
1645
1645
|
//#endregion
|
|
1646
1646
|
//#region ../shared/dist/contract/long-task.js
|
|
@@ -1732,7 +1732,7 @@ var LONG_TASK_STOP_ARM_MS = 3e3;
|
|
|
1732
1732
|
//#endregion
|
|
1733
1733
|
//#region ../shared/dist/components/LongTaskRow.js
|
|
1734
1734
|
function RowLink({ href, text }) {
|
|
1735
|
-
return h$
|
|
1735
|
+
return h$67(Link, {
|
|
1736
1736
|
href,
|
|
1737
1737
|
className: "wb-longTaskLink"
|
|
1738
1738
|
}, text);
|
|
@@ -1752,9 +1752,9 @@ function RowLink({ href, text }) {
|
|
|
1752
1752
|
* @returns 一行长任务。
|
|
1753
1753
|
*/
|
|
1754
1754
|
function LongTaskRow(props) {
|
|
1755
|
-
const [stepsOpen, setStepsOpen] = useState$
|
|
1756
|
-
const [rawOpen, setRawOpen] = useState$
|
|
1757
|
-
const [armed, setArmed] = useState$
|
|
1755
|
+
const [stepsOpen, setStepsOpen] = useState$40(false);
|
|
1756
|
+
const [rawOpen, setRawOpen] = useState$40(false);
|
|
1757
|
+
const [armed, setArmed] = useState$40(false);
|
|
1758
1758
|
const failed = props.status === "failed";
|
|
1759
1759
|
const problem = props.problem ?? "";
|
|
1760
1760
|
const raw = (props.raw ?? "").trim();
|
|
@@ -1762,7 +1762,7 @@ function LongTaskRow(props) {
|
|
|
1762
1762
|
const stop = props.stop;
|
|
1763
1763
|
const busy = stop?.busy === true;
|
|
1764
1764
|
const stopWhy = stop?.failed ?? "";
|
|
1765
|
-
useEffect$
|
|
1765
|
+
useEffect$30(() => {
|
|
1766
1766
|
if (!armed) return void 0;
|
|
1767
1767
|
const timer = setTimeout(() => setArmed(false), LONG_TASK_STOP_ARM_MS);
|
|
1768
1768
|
return () => clearTimeout(timer);
|
|
@@ -1781,14 +1781,14 @@ function LongTaskRow(props) {
|
|
|
1781
1781
|
setArmed(false);
|
|
1782
1782
|
stop.onStop();
|
|
1783
1783
|
};
|
|
1784
|
-
return h$
|
|
1784
|
+
return h$67("div", { className: "wb-longTask" }, h$67("p", { className: "wb-longTaskHead" }, h$67(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
|
|
1785
1785
|
state: longTaskDot(props.status),
|
|
1786
1786
|
size: 10
|
|
1787
|
-
}), h$
|
|
1787
|
+
}), h$67("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$67(RowLink, {
|
|
1788
1788
|
href: link.href,
|
|
1789
1789
|
key: `${link.text}@${link.href}`,
|
|
1790
1790
|
text: link.text
|
|
1791
|
-
})), stop === void 0 ? null : h$
|
|
1791
|
+
})), stop === void 0 ? null : h$67("button", {
|
|
1792
1792
|
type: "button",
|
|
1793
1793
|
className: `wb-longTaskStop${armed ? " wb-longTaskStopArmed" : ""}`,
|
|
1794
1794
|
"data-stop-state": longTaskStopStage({
|
|
@@ -1799,31 +1799,31 @@ function LongTaskRow(props) {
|
|
|
1799
1799
|
disabled: busy,
|
|
1800
1800
|
onClick: onStopPress,
|
|
1801
1801
|
onBlur: () => setArmed(false)
|
|
1802
|
-
}, h$
|
|
1802
|
+
}, h$67(_deepseek_ai_dsh_client_ui_primitives.IconStopFillRegular, { size: 12 }), armed ? h$67("span", { className: "wb-longTaskStopLabel" }, stop.askLabel) : null)), problem === "" ? null : h$67("p", { className: "wb-longTaskProblem" }, problem), stopWhy === "" ? null : h$67("p", { className: "wb-longTaskStopWhy" }, stopWhy), !failed ? null : h$67(Fragment$23, null, steps.length === 0 || props.stepsTitle === void 0 ? null : h$67(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
|
|
1803
1803
|
className: "wb-longTaskDump",
|
|
1804
|
-
icon: h$
|
|
1804
|
+
icon: h$67(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
|
|
1805
1805
|
title: props.stepsTitle,
|
|
1806
1806
|
open: stepsOpen,
|
|
1807
1807
|
expandable: true,
|
|
1808
1808
|
expandOnRowClick: true,
|
|
1809
1809
|
previewChevron: true,
|
|
1810
1810
|
onToggle: () => setStepsOpen(!stepsOpen)
|
|
1811
|
-
}, h$
|
|
1811
|
+
}, h$67(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
|
|
1812
1812
|
code: steps.join("\n"),
|
|
1813
1813
|
className: "wb-longTaskDump",
|
|
1814
1814
|
showHeader: props.copyLabel !== void 0,
|
|
1815
1815
|
copyLabel: props.copyLabel ?? "",
|
|
1816
1816
|
copiedLabel: props.copiedLabel ?? ""
|
|
1817
|
-
})), raw === "" || props.rawTitle === void 0 ? null : h$
|
|
1817
|
+
})), raw === "" || props.rawTitle === void 0 ? null : h$67(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
|
|
1818
1818
|
className: "wb-longTaskDump",
|
|
1819
|
-
icon: h$
|
|
1819
|
+
icon: h$67(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
|
|
1820
1820
|
title: props.rawTitle,
|
|
1821
1821
|
open: rawOpen,
|
|
1822
1822
|
expandable: true,
|
|
1823
1823
|
expandOnRowClick: true,
|
|
1824
1824
|
previewChevron: true,
|
|
1825
1825
|
onToggle: () => setRawOpen(!rawOpen)
|
|
1826
|
-
}, h$
|
|
1826
|
+
}, h$67(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
|
|
1827
1827
|
code: raw,
|
|
1828
1828
|
className: "wb-longTaskDump",
|
|
1829
1829
|
showHeader: props.copyLabel !== void 0,
|
|
@@ -1839,13 +1839,13 @@ function LongTaskRow(props) {
|
|
|
1839
1839
|
* @returns 一叠占位条。
|
|
1840
1840
|
*/
|
|
1841
1841
|
function SkeletonRows({ rows = 4 }) {
|
|
1842
|
-
return h$
|
|
1842
|
+
return h$67("div", {
|
|
1843
1843
|
className: "wb-skeleton",
|
|
1844
1844
|
"aria-hidden": "true"
|
|
1845
|
-
}, Array.from({ length: rows }, (_, index) => h$
|
|
1845
|
+
}, Array.from({ length: rows }, (_, index) => h$67("span", {
|
|
1846
1846
|
key: index,
|
|
1847
1847
|
className: "wb-skeletonRow"
|
|
1848
|
-
}, h$
|
|
1848
|
+
}, h$67("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$67("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
|
|
1849
1849
|
}
|
|
1850
1850
|
/**
|
|
1851
1851
|
* 居中一屏:要他先选一个 / 正在读 / 读不到时用它占住卡片版面。
|
|
@@ -1858,13 +1858,13 @@ function SkeletonRows({ rows = 4 }) {
|
|
|
1858
1858
|
* @returns 一个 `role="status"` 的居中块。
|
|
1859
1859
|
*/
|
|
1860
1860
|
function CenteredState({ icon, title, hint, detail, action, compact = false }) {
|
|
1861
|
-
return h$
|
|
1861
|
+
return h$67("div", {
|
|
1862
1862
|
className: compact ? "wb-centered wb-centeredCompact" : "wb-centered",
|
|
1863
1863
|
role: "status"
|
|
1864
|
-
}, icon === null ? null : h$
|
|
1864
|
+
}, icon === null ? null : h$67("span", {
|
|
1865
1865
|
className: "wb-centeredHero",
|
|
1866
1866
|
"aria-hidden": "true"
|
|
1867
|
-
}, icon), h$
|
|
1867
|
+
}, icon), h$67("div", { className: "wb-centeredTitle" }, title), hint === void 0 ? null : h$67("div", { className: "wb-centeredHint" }, hint), detail === void 0 ? null : h$67("div", { className: "wb-centeredDetail" }, detail), action === void 0 ? null : h$67("div", { className: "wb-centeredAction" }, action));
|
|
1868
1868
|
}
|
|
1869
1869
|
/**
|
|
1870
1870
|
* 就绪但空:它只是 `CenteredState` 的简写,标题就是那句空态文案。
|
|
@@ -1874,7 +1874,7 @@ function CenteredState({ icon, title, hint, detail, action, compact = false }) {
|
|
|
1874
1874
|
* @returns 一个居中块。
|
|
1875
1875
|
*/
|
|
1876
1876
|
function EmptyState({ text, icon = null, compact = false }) {
|
|
1877
|
-
return h$
|
|
1877
|
+
return h$67(CenteredState, {
|
|
1878
1878
|
icon,
|
|
1879
1879
|
title: text,
|
|
1880
1880
|
compact
|
|
@@ -1892,7 +1892,7 @@ function EmptyState({ text, icon = null, compact = false }) {
|
|
|
1892
1892
|
* @returns 一组按钮。
|
|
1893
1893
|
*/
|
|
1894
1894
|
function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
|
|
1895
|
-
return h$
|
|
1895
|
+
return h$67(FormActions, { actions: [{
|
|
1896
1896
|
key: "cancel",
|
|
1897
1897
|
label: labels.cancel,
|
|
1898
1898
|
kind: "default",
|
|
@@ -1925,7 +1925,7 @@ function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
|
|
|
1925
1925
|
* @returns 一颗 `<button>`。
|
|
1926
1926
|
*/
|
|
1927
1927
|
function selectTriggerNode(args) {
|
|
1928
|
-
return h$
|
|
1928
|
+
return h$67("button", {
|
|
1929
1929
|
type: "button",
|
|
1930
1930
|
id: args.id,
|
|
1931
1931
|
className: args.className,
|
|
@@ -1936,7 +1936,7 @@ function selectTriggerNode(args) {
|
|
|
1936
1936
|
"aria-label": args.ariaLabel,
|
|
1937
1937
|
title: args.title,
|
|
1938
1938
|
onClick: args.onOpen
|
|
1939
|
-
}, args.iconOnly ? h$
|
|
1939
|
+
}, args.iconOnly ? h$67("span", { className: "wb-selectIcon" }, args.icon) : h$67(Fragment$23, null, args.icon === void 0 ? null : h$67("span", { className: "wb-selectIcon" }, args.icon), h$67("span", { className: "wb-selectValue" }, args.value), h$67("span", { className: "wb-selectChevron" }, h$67(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 14 }))));
|
|
1940
1940
|
}
|
|
1941
1941
|
/**
|
|
1942
1942
|
* 名单还没读到时的触发器:禁用 + `aria-busy` 的按钮,`SelectField` 在 `loading` 那档画它。
|
|
@@ -1948,7 +1948,7 @@ function selectTriggerNode(args) {
|
|
|
1948
1948
|
* @returns 一颗禁用且 `aria-busy` 的按钮。
|
|
1949
1949
|
*/
|
|
1950
1950
|
function selectLoadingNode(args) {
|
|
1951
|
-
return h$
|
|
1951
|
+
return h$67("button", {
|
|
1952
1952
|
type: "button",
|
|
1953
1953
|
id: args.id,
|
|
1954
1954
|
className: `${args.className} wb-selectLoading`,
|
|
@@ -1957,7 +1957,7 @@ function selectLoadingNode(args) {
|
|
|
1957
1957
|
"aria-invalid": args.invalid || void 0,
|
|
1958
1958
|
"aria-label": args.ariaLabel,
|
|
1959
1959
|
title: args.loadingText
|
|
1960
|
-
}, h$
|
|
1960
|
+
}, h$67("span", { className: "wb-selectValue" }, h$67(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { active: true }, args.loadingText ?? "…")), h$67("span", { className: "wb-selectChevron" }, h$67(Spinner, { size: 14 })));
|
|
1961
1961
|
}
|
|
1962
1962
|
//#endregion
|
|
1963
1963
|
//#region ../shared/dist/components/TextField.js
|
|
@@ -1967,7 +1967,7 @@ function selectLoadingNode(args) {
|
|
|
1967
1967
|
* @returns 输入框元素;`className` 是追加在基础类名之后,而不是替换它。
|
|
1968
1968
|
*/
|
|
1969
1969
|
function TextField({ invalid = false, className, ...rest }) {
|
|
1970
|
-
return h$
|
|
1970
|
+
return h$67("input", {
|
|
1971
1971
|
...rest,
|
|
1972
1972
|
className: className === void 0 ? "wb-textField" : `wb-textField ${className}`,
|
|
1973
1973
|
"aria-invalid": invalid || void 0
|
|
@@ -1990,7 +1990,7 @@ function itemOf(option, revealId) {
|
|
|
1990
1990
|
...option.icon === void 0 ? {} : { icon: option.icon },
|
|
1991
1991
|
...option.disabled === true ? { disabled: true } : {}
|
|
1992
1992
|
};
|
|
1993
|
-
const revealed = (node) => h$
|
|
1993
|
+
const revealed = (node) => h$67("span", {
|
|
1994
1994
|
className: "wb-selectReveal",
|
|
1995
1995
|
"data-wb-select-reveal": ""
|
|
1996
1996
|
}, node);
|
|
@@ -2006,20 +2006,20 @@ function revealNode() {
|
|
|
2006
2006
|
return found instanceof HTMLElement ? found : null;
|
|
2007
2007
|
}
|
|
2008
2008
|
function useRevealOnOpen(open, revealId) {
|
|
2009
|
-
useEffect$
|
|
2009
|
+
useEffect$30(() => {
|
|
2010
2010
|
if (!open || revealId === void 0) return;
|
|
2011
2011
|
revealNode()?.scrollIntoView({ block: "nearest" });
|
|
2012
2012
|
}, [open, revealId]);
|
|
2013
2013
|
}
|
|
2014
2014
|
function selectValueNode(current, renderValue, placeholder) {
|
|
2015
|
-
if (current === void 0) return h$
|
|
2015
|
+
if (current === void 0) return h$67("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
|
|
2016
2016
|
return renderValue === void 0 ? current.label : renderValue(current);
|
|
2017
2017
|
}
|
|
2018
2018
|
function searchNode(args) {
|
|
2019
|
-
return h$
|
|
2019
|
+
return h$67("span", {
|
|
2020
2020
|
ref: args.boxRef,
|
|
2021
2021
|
className: args.className
|
|
2022
|
-
}, h$
|
|
2022
|
+
}, h$67("span", { className: "wb-selectSearchIcon" }, h$67(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$67(TextField, {
|
|
2023
2023
|
id: args.id,
|
|
2024
2024
|
name: args.name,
|
|
2025
2025
|
className: "wb-selectSearchInput",
|
|
@@ -2034,7 +2034,7 @@ function searchNode(args) {
|
|
|
2034
2034
|
}));
|
|
2035
2035
|
}
|
|
2036
2036
|
function menuNode(args) {
|
|
2037
|
-
return h$
|
|
2037
|
+
return h$67(_deepseek_ai_dsh_client_ui_primitives.Menu, {
|
|
2038
2038
|
open: args.open,
|
|
2039
2039
|
portal: true,
|
|
2040
2040
|
className: "wb-selectAnchor",
|
|
@@ -2051,11 +2051,11 @@ function menuNode(args) {
|
|
|
2051
2051
|
});
|
|
2052
2052
|
}
|
|
2053
2053
|
function framed(label, hint, className, control) {
|
|
2054
|
-
const inner = label === void 0 ? hint === void 0 ? control : h$
|
|
2054
|
+
const inner = label === void 0 ? hint === void 0 ? control : h$67("span", { className: "wb-select" }, control, h$67("span", { className: "wb-selectHint" }, hint)) : h$67(Field, {
|
|
2055
2055
|
label,
|
|
2056
2056
|
hint
|
|
2057
2057
|
}, control);
|
|
2058
|
-
return className === void 0 ? inner : h$
|
|
2058
|
+
return className === void 0 ? inner : h$67("div", { className }, inner);
|
|
2059
2059
|
}
|
|
2060
2060
|
/** 算候选项用来匹配搜索的文本:有 `searchText` 就用它,否则取字符串标签;标签不是字符串又没给它是空串(这项搜不到)。 */
|
|
2061
2061
|
function searchTextOf(option) {
|
|
@@ -2107,24 +2107,24 @@ function selectEntries(shown, emptyText, revealId) {
|
|
|
2107
2107
|
}
|
|
2108
2108
|
function useSelectState(props) {
|
|
2109
2109
|
const { options, filter = defaultSelectFilter, emptyText, open: openProp, onOpenChange } = props;
|
|
2110
|
-
const [openState, setOpenState] = useState$
|
|
2111
|
-
const [query, setQuery] = useState$
|
|
2112
|
-
const [cursor, setCursor] = useState$
|
|
2113
|
-
const boxRef = useRef$
|
|
2114
|
-
const triggerRef = useRef$
|
|
2115
|
-
const wasOpenRef = useRef$
|
|
2116
|
-
const pickedRef = useRef$
|
|
2117
|
-
const closedByUsRef = useRef$
|
|
2110
|
+
const [openState, setOpenState] = useState$40(false);
|
|
2111
|
+
const [query, setQuery] = useState$40("");
|
|
2112
|
+
const [cursor, setCursor] = useState$40(null);
|
|
2113
|
+
const boxRef = useRef$24(null);
|
|
2114
|
+
const triggerRef = useRef$24(null);
|
|
2115
|
+
const wasOpenRef = useRef$24(false);
|
|
2116
|
+
const pickedRef = useRef$24(false);
|
|
2117
|
+
const closedByUsRef = useRef$24(false);
|
|
2118
2118
|
const open = openProp ?? openState;
|
|
2119
2119
|
const setOpen = (next) => {
|
|
2120
2120
|
if (openProp === void 0) setOpenState(next);
|
|
2121
2121
|
onOpenChange?.(next);
|
|
2122
2122
|
};
|
|
2123
|
-
useEffect$
|
|
2123
|
+
useEffect$30(() => {
|
|
2124
2124
|
if (!open || props.search === false) return;
|
|
2125
2125
|
boxRef.current?.querySelector("input")?.focus();
|
|
2126
2126
|
}, [open, props.search]);
|
|
2127
|
-
useEffect$
|
|
2127
|
+
useEffect$30(() => {
|
|
2128
2128
|
if (open) {
|
|
2129
2129
|
wasOpenRef.current = true;
|
|
2130
2130
|
return;
|
|
@@ -2194,7 +2194,7 @@ function SelectField(props) {
|
|
|
2194
2194
|
ariaLabel,
|
|
2195
2195
|
loadingText
|
|
2196
2196
|
}));
|
|
2197
|
-
if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$
|
|
2197
|
+
if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$67(TextField, {
|
|
2198
2198
|
id,
|
|
2199
2199
|
name,
|
|
2200
2200
|
className: "wb-selectFallback",
|
|
@@ -2277,11 +2277,11 @@ function SelectField(props) {
|
|
|
2277
2277
|
* @returns 一个 `role="group"` 的 section。
|
|
2278
2278
|
*/
|
|
2279
2279
|
function SettingsSection({ label, title, action, children }) {
|
|
2280
|
-
return h$
|
|
2280
|
+
return h$67("section", {
|
|
2281
2281
|
className: "wb-settings",
|
|
2282
2282
|
role: "group",
|
|
2283
2283
|
"aria-label": label
|
|
2284
|
-
}, h$
|
|
2284
|
+
}, h$67("header", { className: "wb-settingsHead" }, h$67("span", { className: "wb-settingsTitle" }, title), action), children);
|
|
2285
2285
|
}
|
|
2286
2286
|
//#endregion
|
|
2287
2287
|
//#region ../shared/dist/components/Stack.js
|
|
@@ -2291,7 +2291,7 @@ function SettingsSection({ label, title, action, children }) {
|
|
|
2291
2291
|
* @returns 竖排的 div。
|
|
2292
2292
|
*/
|
|
2293
2293
|
function Stack({ children }) {
|
|
2294
|
-
return h$
|
|
2294
|
+
return h$67("div", { className: "wb-stack" }, children);
|
|
2295
2295
|
}
|
|
2296
2296
|
//#endregion
|
|
2297
2297
|
//#region ../shared/dist/components/StateBlock.js
|
|
@@ -2306,12 +2306,12 @@ function Stack({ children }) {
|
|
|
2306
2306
|
* @returns 一个 div。
|
|
2307
2307
|
*/
|
|
2308
2308
|
function StateBlock({ title, dot, hint, actions, resolving, children }) {
|
|
2309
|
-
return h$
|
|
2309
|
+
return h$67("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h$67("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h$67("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h$67("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h$67("div", { className: "wb-stateBlockActions" }, actions));
|
|
2310
2310
|
}
|
|
2311
2311
|
//#endregion
|
|
2312
2312
|
//#region ../shared/dist/components/icons.js
|
|
2313
2313
|
function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
|
|
2314
|
-
return h$
|
|
2314
|
+
return h$67("svg", {
|
|
2315
2315
|
width: size,
|
|
2316
2316
|
height: size,
|
|
2317
2317
|
viewBox,
|
|
@@ -2328,10 +2328,10 @@ function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
|
|
|
2328
2328
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2329
2329
|
*/
|
|
2330
2330
|
function IconConversation({ size = 16 }) {
|
|
2331
|
-
return h$
|
|
2331
|
+
return h$67(Shell, {
|
|
2332
2332
|
size,
|
|
2333
2333
|
strokeWidth: 1.3
|
|
2334
|
-
}, h$
|
|
2334
|
+
}, h$67("path", {
|
|
2335
2335
|
d: "M2.5 7.2c0-2.3 2.1-4.2 4.8-4.2h1.4c2.7 0 4.8 1.9 4.8 4.2s-2.1 4.2-4.8 4.2H7.5l-3.2 2v-2.3c-1.1-.8-1.8-2-1.8-3.9Z",
|
|
2336
2336
|
stroke: "currentColor",
|
|
2337
2337
|
strokeLinejoin: "round"
|
|
@@ -2346,30 +2346,30 @@ var BRAND_TAIL_TRANSFORM = "translate(14.6263 10.5853) scale(1.95)";
|
|
|
2346
2346
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2347
2347
|
*/
|
|
2348
2348
|
function IconBrandMark({ size = 24 }) {
|
|
2349
|
-
return h$
|
|
2349
|
+
return h$67(Shell, {
|
|
2350
2350
|
size,
|
|
2351
2351
|
viewBox: "0 0 64 64"
|
|
2352
|
-
}, h$
|
|
2352
|
+
}, h$67("path", {
|
|
2353
2353
|
d: BRAND_FRAME,
|
|
2354
2354
|
fill: "currentColor",
|
|
2355
2355
|
fillRule: "evenodd"
|
|
2356
|
-
}), h$
|
|
2356
|
+
}), h$67("rect", {
|
|
2357
2357
|
x: 27.5,
|
|
2358
2358
|
y: 48,
|
|
2359
2359
|
width: 9,
|
|
2360
2360
|
height: 4.75,
|
|
2361
2361
|
fill: "currentColor"
|
|
2362
|
-
}), h$
|
|
2362
|
+
}), h$67("rect", {
|
|
2363
2363
|
x: 19,
|
|
2364
2364
|
y: 52.75,
|
|
2365
2365
|
width: 26,
|
|
2366
2366
|
height: 4.75,
|
|
2367
2367
|
rx: 2.375,
|
|
2368
2368
|
fill: "currentColor"
|
|
2369
|
-
}), h$
|
|
2369
|
+
}), h$67("g", { transform: BRAND_TAIL_TRANSFORM }, h$67("path", {
|
|
2370
2370
|
d: BRAND_TAIL,
|
|
2371
2371
|
fill: "currentColor"
|
|
2372
|
-
}), h$
|
|
2372
|
+
}), h$67("circle", {
|
|
2373
2373
|
cx: 6.885,
|
|
2374
2374
|
cy: 13.742,
|
|
2375
2375
|
r: 1.95,
|
|
@@ -2382,30 +2382,30 @@ function IconBrandMark({ size = 24 }) {
|
|
|
2382
2382
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2383
2383
|
*/
|
|
2384
2384
|
function IconOpencli({ size = 16 }) {
|
|
2385
|
-
return h$
|
|
2385
|
+
return h$67(Shell, {
|
|
2386
2386
|
size,
|
|
2387
2387
|
viewBox: "0 0 64 64"
|
|
2388
|
-
}, h$
|
|
2388
|
+
}, h$67("defs", null, h$67("linearGradient", {
|
|
2389
2389
|
id: "opencli-mark",
|
|
2390
2390
|
x1: "0%",
|
|
2391
2391
|
y1: "0%",
|
|
2392
2392
|
x2: "100%",
|
|
2393
2393
|
y2: "100%"
|
|
2394
|
-
}, h$
|
|
2394
|
+
}, h$67("stop", {
|
|
2395
2395
|
offset: "0%",
|
|
2396
2396
|
stopColor: "#00e5a0"
|
|
2397
|
-
}), h$
|
|
2397
|
+
}), h$67("stop", {
|
|
2398
2398
|
offset: "50%",
|
|
2399
2399
|
stopColor: "#00b4d8"
|
|
2400
|
-
}), h$
|
|
2400
|
+
}), h$67("stop", {
|
|
2401
2401
|
offset: "100%",
|
|
2402
2402
|
stopColor: "#7b61ff"
|
|
2403
|
-
}))), h$
|
|
2403
|
+
}))), h$67("rect", {
|
|
2404
2404
|
width: 64,
|
|
2405
2405
|
height: 64,
|
|
2406
2406
|
rx: 14,
|
|
2407
2407
|
fill: "#0a0a0f"
|
|
2408
|
-
}), h$
|
|
2408
|
+
}), h$67("text", {
|
|
2409
2409
|
x: "50%",
|
|
2410
2410
|
y: "54%",
|
|
2411
2411
|
dominantBaseline: "middle",
|
|
@@ -2422,10 +2422,10 @@ function IconOpencli({ size = 16 }) {
|
|
|
2422
2422
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2423
2423
|
*/
|
|
2424
2424
|
function IconNpm({ size = 16 }) {
|
|
2425
|
-
return h$
|
|
2425
|
+
return h$67(Shell, {
|
|
2426
2426
|
size,
|
|
2427
2427
|
viewBox: "0 0 1024 1024"
|
|
2428
|
-
}, h$
|
|
2428
|
+
}, h$67("path", {
|
|
2429
2429
|
d: "M64 337.76h896v298.72H512v49.792H312.896v-49.824H64z m49.792 248.928h99.552v-149.376h49.76v149.344h49.792v-199.104H113.792z m248.896-199.136v248.928h99.552v-49.792h99.552v-199.136z m99.552 49.792H512v99.584h-49.792z m149.344-49.792v199.136h99.552v-149.376h49.792v149.344h49.792v-149.344h49.792v149.344h49.792v-199.104z",
|
|
2430
2430
|
fill: "#CB3837"
|
|
2431
2431
|
}));
|
|
@@ -2436,37 +2436,37 @@ function IconNpm({ size = 16 }) {
|
|
|
2436
2436
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2437
2437
|
*/
|
|
2438
2438
|
function IconModuleMark({ size = 16 }) {
|
|
2439
|
-
return h$
|
|
2439
|
+
return h$67(Shell, {
|
|
2440
2440
|
size,
|
|
2441
2441
|
viewBox: "0 0 24 24"
|
|
2442
|
-
}, h$
|
|
2442
|
+
}, h$67("defs", null, h$67("linearGradient", {
|
|
2443
2443
|
id: "workbench-module-mark",
|
|
2444
2444
|
x1: "0%",
|
|
2445
2445
|
y1: "0%",
|
|
2446
2446
|
x2: "100%",
|
|
2447
2447
|
y2: "100%"
|
|
2448
|
-
}, h$
|
|
2448
|
+
}, h$67("stop", {
|
|
2449
2449
|
offset: "0%",
|
|
2450
2450
|
stopColor: "#3b82f6"
|
|
2451
|
-
}), h$
|
|
2451
|
+
}), h$67("stop", {
|
|
2452
2452
|
offset: "55%",
|
|
2453
2453
|
stopColor: "#8b5cf6"
|
|
2454
|
-
}), h$
|
|
2454
|
+
}), h$67("stop", {
|
|
2455
2455
|
offset: "100%",
|
|
2456
2456
|
stopColor: "#14b8a6"
|
|
2457
|
-
}))), h$
|
|
2457
|
+
}))), h$67("rect", {
|
|
2458
2458
|
width: 24,
|
|
2459
2459
|
height: 24,
|
|
2460
2460
|
rx: 7,
|
|
2461
2461
|
fill: "url(#workbench-module-mark)"
|
|
2462
|
-
}), h$
|
|
2462
|
+
}), h$67("rect", {
|
|
2463
2463
|
x: "4.6",
|
|
2464
2464
|
y: "4.6",
|
|
2465
2465
|
width: "6.2",
|
|
2466
2466
|
height: "6.2",
|
|
2467
2467
|
rx: "1.9",
|
|
2468
2468
|
fill: "#ffffff"
|
|
2469
|
-
}), h$
|
|
2469
|
+
}), h$67("rect", {
|
|
2470
2470
|
x: "13.2",
|
|
2471
2471
|
y: "4.6",
|
|
2472
2472
|
width: "6.2",
|
|
@@ -2474,7 +2474,7 @@ function IconModuleMark({ size = 16 }) {
|
|
|
2474
2474
|
rx: "1.9",
|
|
2475
2475
|
fill: "#ffffff",
|
|
2476
2476
|
fillOpacity: .78
|
|
2477
|
-
}), h$
|
|
2477
|
+
}), h$67("rect", {
|
|
2478
2478
|
x: "4.6",
|
|
2479
2479
|
y: "13.2",
|
|
2480
2480
|
width: "6.2",
|
|
@@ -2482,7 +2482,7 @@ function IconModuleMark({ size = 16 }) {
|
|
|
2482
2482
|
rx: "1.9",
|
|
2483
2483
|
fill: "#ffffff",
|
|
2484
2484
|
fillOpacity: .78
|
|
2485
|
-
}), h$
|
|
2485
|
+
}), h$67("rect", {
|
|
2486
2486
|
x: "13.2",
|
|
2487
2487
|
y: "13.2",
|
|
2488
2488
|
width: "6.2",
|
|
@@ -2497,7 +2497,7 @@ function IconModuleMark({ size = 16 }) {
|
|
|
2497
2497
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2498
2498
|
*/
|
|
2499
2499
|
function IconPanelScreen({ size = 16 }) {
|
|
2500
|
-
return h$
|
|
2500
|
+
return h$67("svg", {
|
|
2501
2501
|
width: size,
|
|
2502
2502
|
height: size,
|
|
2503
2503
|
viewBox: "0 0 1024 1024",
|
|
@@ -2508,7 +2508,7 @@ function IconPanelScreen({ size = 16 }) {
|
|
|
2508
2508
|
display: "block",
|
|
2509
2509
|
overflow: "hidden"
|
|
2510
2510
|
}
|
|
2511
|
-
}, h$
|
|
2511
|
+
}, h$67("path", { d: "M939 112c17.673 0 32 14.327 32 32v554.667c0 17.673-14.327 32-32 32l-394.5-0.001v96c0 3.74-0.642 7.331-1.82 10.668H768.4c17.673 0 32 14.326 32 32 0 17.496-14.042 31.712-31.47 31.995l-0.53 0.004H256.6c-17.673 0-32-14.327-32-32 0-17.496 14.042-31.713 31.47-31.995l0.53-0.005h225.721a31.923 31.923 0 0 1-1.817-10.137l-0.004-0.53v-96H86c-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V144c0-17.673 14.327-32 32-32z m-32 64H118v490.666h789V176zM341.9 432c17.496 0 31.713 14.042 31.996 31.47l0.004 0.53v85.333c0 17.673-14.327 32-32 32-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V464c0-17.673 14.327-32 32-32z m170.6-85.333c17.496 0 31.713 14.041 31.996 31.47l0.004 0.53v170.666c0 17.673-14.327 32-32 32-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V378.667c0-17.673 14.327-32 32-32z m170.6-85.334c17.496 0 31.713 14.042 31.996 31.471l0.004 0.53v256c0 17.672-14.327 32-32 32-17.496 0-31.713-14.042-31.996-31.471l-0.004-0.53v-256c0-17.673 14.327-32 32-32z" }));
|
|
2512
2512
|
}
|
|
2513
2513
|
//#endregion
|
|
2514
2514
|
//#region ../shared/dist/config/storage.js
|
|
@@ -3097,6 +3097,7 @@ var en = {
|
|
|
3097
3097
|
"panels.market.confirmUninstallAck": "I understand: using it again means reinstalling it.",
|
|
3098
3098
|
"panels.market.confirmYes": "Uninstall",
|
|
3099
3099
|
"panels.market.confirmNo": "Cancel",
|
|
3100
|
+
"panels.market.noMarketSource": "The index has no newer version of this module (refresh the index and retry)",
|
|
3100
3101
|
"panels.market.failed": "Failed: {reason}",
|
|
3101
3102
|
"panels.market.needEnv": "Set {env} in the terminal that started the workbench first",
|
|
3102
3103
|
"panels.market.needCommands": "Missing commands: {commands}",
|
|
@@ -3133,8 +3134,9 @@ var en = {
|
|
|
3133
3134
|
"panels.market.pluginBroken": "This plugin install is broken: it cannot be identified. Uninstall it first, then ask the agent to reinstall it by package name.",
|
|
3134
3135
|
"panels.market.restartNeeded": "The new version is installed — restart once to pick it up.",
|
|
3135
3136
|
"panels.market.foot": "After installing, enable it in the panel page of that project.",
|
|
3136
|
-
"panels.market.recheck": "Check for updates",
|
|
3137
3137
|
"panels.market.checkUpdates": "Check for updates",
|
|
3138
|
+
"panels.market.checkingNow": "Checking…",
|
|
3139
|
+
"panels.market.checkFailed": "The last check failed. Check your connection and retry.",
|
|
3138
3140
|
"panels.market.checkedAt": "Last checked: {time}",
|
|
3139
3141
|
"panels.market.justNow": "just now",
|
|
3140
3142
|
"panels.market.minutesAgo": "{n} min ago",
|
|
@@ -3312,6 +3314,9 @@ var en = {
|
|
|
3312
3314
|
"panels.discover.transportTest": "Test this address",
|
|
3313
3315
|
"panels.discover.transportPlaceholder": "Or paste another address (mirror, alias)",
|
|
3314
3316
|
"panels.discover.transportNeedsAuth": "This repository needs credentials: clone it once in a terminal, or set up an SSH key / credential helper, then install again.",
|
|
3317
|
+
"panels.discover.transportChange": "Change address",
|
|
3318
|
+
"panels.discover.transportChangeHide": "Hide",
|
|
3319
|
+
"panels.discover.transportNone": "No readable address",
|
|
3315
3320
|
"panels.discover.expand": "Show versions",
|
|
3316
3321
|
"panels.discover.collapse": "Hide versions",
|
|
3317
3322
|
"panels.discover.versionCount": "{n} versions",
|
|
@@ -3792,6 +3797,7 @@ var dictionaries = {
|
|
|
3792
3797
|
"panels.market.confirmUninstallAck": "我明白:卸载后想再用,得重新装一遍。",
|
|
3793
3798
|
"panels.market.confirmYes": "卸载",
|
|
3794
3799
|
"panels.market.confirmNo": "取消",
|
|
3800
|
+
"panels.market.noMarketSource": "索引里没有这个模块的新版本(刷新一次索引再试)",
|
|
3795
3801
|
"panels.market.failed": "没成功:{reason}",
|
|
3796
3802
|
"panels.market.needEnv": "先在启动工作台的终端里设 {env}",
|
|
3797
3803
|
"panels.market.needCommands": "缺这几条命令:{commands}",
|
|
@@ -3828,8 +3834,9 @@ var dictionaries = {
|
|
|
3828
3834
|
"panels.market.pluginBroken": "这份插件装坏了:认不出它是什么。可以先卸载,再让 agent 按包名重装一次。",
|
|
3829
3835
|
"panels.market.restartNeeded": "新版装好了,重启一次才生效。",
|
|
3830
3836
|
"panels.market.foot": "装好后到那个项目的面板页勾选它,模块才会出现。",
|
|
3831
|
-
"panels.market.recheck": "重新检查更新",
|
|
3832
3837
|
"panels.market.checkUpdates": "检查更新",
|
|
3838
|
+
"panels.market.checkingNow": "正在检查…",
|
|
3839
|
+
"panels.market.checkFailed": "最近一次没查到,检查网络后重试",
|
|
3833
3840
|
"panels.market.checkedAt": "最近检查:{time}",
|
|
3834
3841
|
"panels.market.justNow": "刚刚",
|
|
3835
3842
|
"panels.market.minutesAgo": "{n} 分钟前",
|
|
@@ -4007,6 +4014,9 @@ var dictionaries = {
|
|
|
4007
4014
|
"panels.discover.transportTest": "试这个地址",
|
|
4008
4015
|
"panels.discover.transportPlaceholder": "或贴一个别的地址(公司镜像、别名)",
|
|
4009
4016
|
"panels.discover.transportNeedsAuth": "这个仓库要凭证:先在终端里把它 clone 一次,或配好 SSH key / 凭据助手;配好后再点安装。",
|
|
4017
|
+
"panels.discover.transportChange": "换一个地址",
|
|
4018
|
+
"panels.discover.transportChangeHide": "收起",
|
|
4019
|
+
"panels.discover.transportNone": "没有可读的地址",
|
|
4010
4020
|
"panels.discover.expand": "展开版本",
|
|
4011
4021
|
"panels.discover.collapse": "收起版本",
|
|
4012
4022
|
"panels.discover.versionCount": "{n} 个版本",
|
|
@@ -5026,6 +5036,16 @@ function panelRowName(label, hint, t) {
|
|
|
5026
5036
|
//#endregion
|
|
5027
5037
|
//#region src/app/layouts/rightbar/market-freshness.ts
|
|
5028
5038
|
var MARKET_STALE_MS = VERSION_CHECK_TTL_MS;
|
|
5039
|
+
function checkedAgoText(at, now, t) {
|
|
5040
|
+
const seconds = Math.max(0, Math.floor((now - at) / 1e3));
|
|
5041
|
+
if (seconds < 60) return t("panels.market.justNow");
|
|
5042
|
+
const minutes = Math.floor(seconds / 60);
|
|
5043
|
+
if (minutes < 60) return t("panels.market.minutesAgo", { n: String(minutes) });
|
|
5044
|
+
return t("panels.market.hoursAgo", { n: String(Math.floor(minutes / 60)) });
|
|
5045
|
+
}
|
|
5046
|
+
function checkedAgo(at, t) {
|
|
5047
|
+
return checkedAgoText(at, Date.now(), t);
|
|
5048
|
+
}
|
|
5029
5049
|
function marketSettled(freshness, installedRead) {
|
|
5030
5050
|
return freshness.loaded && installedRead !== false;
|
|
5031
5051
|
}
|
|
@@ -5034,85 +5054,6 @@ function shouldProbeOnEnter(input) {
|
|
|
5034
5054
|
return input.now - input.checkedAt >= input.staleMs;
|
|
5035
5055
|
}
|
|
5036
5056
|
//#endregion
|
|
5037
|
-
//#region src/app/layouts/rightbar/market-settle.ts
|
|
5038
|
-
var MODULE_SETTLE_MS = 15e3;
|
|
5039
|
-
function holdBack(installed, roster, active, previous) {
|
|
5040
|
-
const pending = installed.filter((unit) => !roster.has(unit));
|
|
5041
|
-
const fresh = previous === null ? [] : pending.filter((unit) => !previous.has(unit));
|
|
5042
|
-
return pending.filter((unit) => active.has(unit) || fresh.includes(unit));
|
|
5043
|
-
}
|
|
5044
|
-
var WORKBENCH_SWAP_MS = 18e4;
|
|
5045
|
-
function swapLanded(until, installed) {
|
|
5046
|
-
return until !== void 0 && installed === until;
|
|
5047
|
-
}
|
|
5048
|
-
function swapUntil(action, application, latest) {
|
|
5049
|
-
if (action !== "update-workbench" || application !== "restart-required") return void 0;
|
|
5050
|
-
return latest;
|
|
5051
|
-
}
|
|
5052
|
-
var READ_BACK_ACTIONS = /* @__PURE__ */ new Set([
|
|
5053
|
-
"update",
|
|
5054
|
-
"update-bundle",
|
|
5055
|
-
"update-dependency",
|
|
5056
|
-
"update-plugin"
|
|
5057
|
-
]);
|
|
5058
|
-
var REMOVAL_ACTIONS = /* @__PURE__ */ new Set([
|
|
5059
|
-
"remove-bundle",
|
|
5060
|
-
"uninstall",
|
|
5061
|
-
"uninstall-plugin"
|
|
5062
|
-
]);
|
|
5063
|
-
function awaitsReadBack(action, application, version) {
|
|
5064
|
-
if (application !== "applied") return false;
|
|
5065
|
-
if (REMOVAL_ACTIONS.has(action)) return true;
|
|
5066
|
-
if (!READ_BACK_ACTIONS.has(action)) return false;
|
|
5067
|
-
return action === "update-bundle" ? version !== void 0 : true;
|
|
5068
|
-
}
|
|
5069
|
-
function readBackDone(input) {
|
|
5070
|
-
if (input.action === "update") return !input.outdated;
|
|
5071
|
-
if (input.entry === void 0 || input.entry.local === true || input.entry.latest === void 0) return true;
|
|
5072
|
-
if (input.entry.latest === input.entry.installed) return true;
|
|
5073
|
-
if (input.clicked === void 0) return true;
|
|
5074
|
-
return input.entry.installed !== input.clicked;
|
|
5075
|
-
}
|
|
5076
|
-
function settleLanded(input) {
|
|
5077
|
-
if (input.until !== void 0) return swapLanded(input.until, input.installed);
|
|
5078
|
-
if (input.readBack !== true) return true;
|
|
5079
|
-
if (input.action === "remove-bundle" || input.action === "uninstall") return input.unitGone === true;
|
|
5080
|
-
if (input.action === "uninstall-plugin") return input.pluginGone === true;
|
|
5081
|
-
const settled = (state) => state !== void 0 && state !== "outdated" && state !== "unsatisfied" && state !== "checking" && state !== "unchecked";
|
|
5082
|
-
if (input.action === "update-dependency") return settled(input.sharedState);
|
|
5083
|
-
if (input.action === "update-plugin") return input.pluginOutdated === false;
|
|
5084
|
-
return readBackDone({
|
|
5085
|
-
action: input.action,
|
|
5086
|
-
entry: input.entry,
|
|
5087
|
-
clicked: input.clicked,
|
|
5088
|
-
outdated: input.outdated
|
|
5089
|
-
});
|
|
5090
|
-
}
|
|
5091
|
-
function tailReason(tail) {
|
|
5092
|
-
if (tail === void 0) return void 0;
|
|
5093
|
-
const last = tail.split(" / ").map((part) => part.trim()).filter((part) => part !== "").at(-1);
|
|
5094
|
-
if (last === void 0) return void 0;
|
|
5095
|
-
return last.length <= 240 ? last : `${last.slice(0, 240)}…`;
|
|
5096
|
-
}
|
|
5097
|
-
function selfUpdateStop(input) {
|
|
5098
|
-
const { until, since, update } = input;
|
|
5099
|
-
if (until === void 0 || update === void 0 || update === null) return void 0;
|
|
5100
|
-
if (update.state !== "failed" && update.state !== "rolled-back") return void 0;
|
|
5101
|
-
if (update.to !== until && update.version !== until) return void 0;
|
|
5102
|
-
if (since !== void 0 && update.at !== void 0) {
|
|
5103
|
-
const at = (0, import_dayjs_min.default)(update.at).valueOf();
|
|
5104
|
-
if (Number.isFinite(at) && at < since - 5e3) return void 0;
|
|
5105
|
-
}
|
|
5106
|
-
return {
|
|
5107
|
-
kind: update.state,
|
|
5108
|
-
...update.version === void 0 ? {} : { version: update.version },
|
|
5109
|
-
...update.state === "failed" && tailReason(update.tail) !== void 0 ? { reason: tailReason(update.tail) } : {}
|
|
5110
|
-
};
|
|
5111
|
-
}
|
|
5112
|
-
function holdWindowMs(until) {
|
|
5113
|
-
return until === void 0 ? MODULE_SETTLE_MS : WORKBENCH_SWAP_MS;
|
|
5114
|
-
}
|
|
5115
|
-
//#endregion
|
|
5116
5057
|
//#region src/app/layouts/rightbar/market-shared-rows.ts
|
|
5117
5058
|
var SHARED_STATE_KEY = {
|
|
5118
5059
|
checking: "panels.market.checking",
|
|
@@ -5282,8 +5223,10 @@ function installedRows(modules, manifests, listed, names, defaults = /* @__PURE_
|
|
|
5282
5223
|
...outdated ? { moduleUpdate: {
|
|
5283
5224
|
installed: module.installed,
|
|
5284
5225
|
latest,
|
|
5285
|
-
...blocked === void 0 ? {} : { blocked }
|
|
5226
|
+
...blocked === void 0 ? {} : { blocked },
|
|
5227
|
+
...module.market === void 0 ? {} : { market: module.market }
|
|
5286
5228
|
} } : {},
|
|
5229
|
+
...module.market === void 0 ? {} : { market: module.market },
|
|
5287
5230
|
defaultShown: defaults.has(module.unit),
|
|
5288
5231
|
defaultChanged: changed[module.unit] ?? 0
|
|
5289
5232
|
});
|
|
@@ -5302,7 +5245,7 @@ function marketActions$1(row) {
|
|
|
5302
5245
|
if (row.plugin === true) return [...row.canUpdate ? ["update-plugin"] : [], ...row.canUninstall ? ["uninstall-plugin"] : []];
|
|
5303
5246
|
return [
|
|
5304
5247
|
...row.canInstall ? ["install"] : [],
|
|
5305
|
-
...row.moduleUpdate === void 0 ? row.canUpdate ? ["update"] : [] : row.moduleUpdate.blocked === void 0 ? ["update-bundle"] : [],
|
|
5248
|
+
...row.moduleUpdate === void 0 ? row.canUpdate ? ["update"] : [] : row.moduleUpdate.blocked === void 0 ? [row.market === void 0 || row.pkg === void 0 ? "update-bundle" : "install-version"] : [],
|
|
5306
5249
|
...row.canUninstall ? [row.pkg === void 0 ? "uninstall" : "remove-bundle"] : []
|
|
5307
5250
|
];
|
|
5308
5251
|
}
|
|
@@ -5391,7 +5334,8 @@ function marketUpdatesOf(modules) {
|
|
|
5391
5334
|
installed: module.installed,
|
|
5392
5335
|
...local || module.latest === void 0 ? {} : { latest: module.latest },
|
|
5393
5336
|
...local || module.latest === void 0 || module.latestBlocked === void 0 ? {} : { blocked: module.latestBlocked },
|
|
5394
|
-
...local ? { local: true } : {}
|
|
5337
|
+
...local ? { local: true } : {},
|
|
5338
|
+
...local || module.market === void 0 ? {} : { market: module.market }
|
|
5395
5339
|
};
|
|
5396
5340
|
}
|
|
5397
5341
|
return next;
|
|
@@ -5430,7 +5374,8 @@ function marketRows(manifests, capabilities, updates = {}, defaults = /* @__PURE
|
|
|
5430
5374
|
const moduleUpdate = entry === void 0 || entry.latest === void 0 || entry.latest === entry.installed ? void 0 : {
|
|
5431
5375
|
installed: entry.installed,
|
|
5432
5376
|
latest: entry.latest,
|
|
5433
|
-
...entry.blocked === void 0 ? {} : { blocked: entry.blocked }
|
|
5377
|
+
...entry.blocked === void 0 ? {} : { blocked: entry.blocked },
|
|
5378
|
+
...entry.market === void 0 ? {} : { market: entry.market }
|
|
5434
5379
|
};
|
|
5435
5380
|
const shown = moduleUpdate === void 0 ? state : "outdated";
|
|
5436
5381
|
const hint = moduleUpdate?.blocked === void 0 ? shown === "unknown" || shown === "unchecked" ? "panels.market.uncheckedHint" : void 0 : updateBlockHintOf(moduleUpdate.blocked);
|
|
@@ -5447,6 +5392,10 @@ function marketRows(manifests, capabilities, updates = {}, defaults = /* @__PURE
|
|
|
5447
5392
|
...entry.latest === void 0 ? {} : { latest: entry.latest }
|
|
5448
5393
|
} },
|
|
5449
5394
|
...moduleUpdate === void 0 ? {} : { moduleUpdate },
|
|
5395
|
+
...entry?.market === void 0 ? {} : {
|
|
5396
|
+
market: entry.market,
|
|
5397
|
+
pkg: entry.market.pkg
|
|
5398
|
+
},
|
|
5450
5399
|
...moduleUpdate === void 0 ? note === void 0 ? {} : { note } : {},
|
|
5451
5400
|
...local ? { local: true } : {},
|
|
5452
5401
|
defaultShown: defaults.has(manifest.id),
|
|
@@ -5613,6 +5562,86 @@ function marketHintOf(input) {
|
|
|
5613
5562
|
return null;
|
|
5614
5563
|
}
|
|
5615
5564
|
//#endregion
|
|
5565
|
+
//#region src/app/layouts/rightbar/market-settle.ts
|
|
5566
|
+
var MODULE_SETTLE_MS = 15e3;
|
|
5567
|
+
function holdBack(installed, roster, active, previous) {
|
|
5568
|
+
const pending = installed.filter((unit) => !roster.has(unit));
|
|
5569
|
+
const fresh = previous === null ? [] : pending.filter((unit) => !previous.has(unit));
|
|
5570
|
+
return pending.filter((unit) => active.has(unit) || fresh.includes(unit));
|
|
5571
|
+
}
|
|
5572
|
+
var WORKBENCH_SWAP_MS = 18e4;
|
|
5573
|
+
function swapLanded(until, installed) {
|
|
5574
|
+
return until !== void 0 && installed === until;
|
|
5575
|
+
}
|
|
5576
|
+
function swapUntil(action, application, latest) {
|
|
5577
|
+
if (action !== "update-workbench" || application !== "restart-required") return void 0;
|
|
5578
|
+
return latest;
|
|
5579
|
+
}
|
|
5580
|
+
var READ_BACK_ACTIONS = /* @__PURE__ */ new Set([
|
|
5581
|
+
"update",
|
|
5582
|
+
"update-bundle",
|
|
5583
|
+
"install-version",
|
|
5584
|
+
"update-dependency",
|
|
5585
|
+
"update-plugin"
|
|
5586
|
+
]);
|
|
5587
|
+
var REMOVAL_ACTIONS = /* @__PURE__ */ new Set([
|
|
5588
|
+
"remove-bundle",
|
|
5589
|
+
"uninstall",
|
|
5590
|
+
"uninstall-plugin"
|
|
5591
|
+
]);
|
|
5592
|
+
function awaitsReadBack(action, application, version) {
|
|
5593
|
+
if (application !== "applied") return false;
|
|
5594
|
+
if (REMOVAL_ACTIONS.has(action)) return true;
|
|
5595
|
+
if (!READ_BACK_ACTIONS.has(action)) return false;
|
|
5596
|
+
return action === "update-bundle" || action === "install-version" ? version !== void 0 : true;
|
|
5597
|
+
}
|
|
5598
|
+
function readBackDone(input) {
|
|
5599
|
+
if (input.action === "update") return !input.outdated;
|
|
5600
|
+
if (input.entry === void 0 || input.entry.local === true || input.entry.latest === void 0) return true;
|
|
5601
|
+
if (input.entry.latest === input.entry.installed) return true;
|
|
5602
|
+
if (input.clicked === void 0) return true;
|
|
5603
|
+
return input.entry.installed !== input.clicked;
|
|
5604
|
+
}
|
|
5605
|
+
function settleLanded(input) {
|
|
5606
|
+
if (input.until !== void 0) return swapLanded(input.until, input.installed);
|
|
5607
|
+
if (input.readBack !== true) return true;
|
|
5608
|
+
if (input.action === "remove-bundle" || input.action === "uninstall") return input.unitGone === true;
|
|
5609
|
+
if (input.action === "uninstall-plugin") return input.pluginGone === true;
|
|
5610
|
+
const settled = (state) => state !== void 0 && state !== "outdated" && state !== "unsatisfied" && state !== "checking" && state !== "unchecked";
|
|
5611
|
+
if (input.action === "update-dependency") return settled(input.sharedState);
|
|
5612
|
+
if (input.action === "update-plugin") return input.pluginOutdated === false;
|
|
5613
|
+
return readBackDone({
|
|
5614
|
+
action: input.action,
|
|
5615
|
+
entry: input.entry,
|
|
5616
|
+
clicked: input.clicked,
|
|
5617
|
+
outdated: input.outdated
|
|
5618
|
+
});
|
|
5619
|
+
}
|
|
5620
|
+
function tailReason(tail) {
|
|
5621
|
+
if (tail === void 0) return void 0;
|
|
5622
|
+
const last = tail.split(" / ").map((part) => part.trim()).filter((part) => part !== "").at(-1);
|
|
5623
|
+
if (last === void 0) return void 0;
|
|
5624
|
+
return last.length <= 240 ? last : `${last.slice(0, 240)}…`;
|
|
5625
|
+
}
|
|
5626
|
+
function selfUpdateStop(input) {
|
|
5627
|
+
const { until, since, update } = input;
|
|
5628
|
+
if (until === void 0 || update === void 0 || update === null) return void 0;
|
|
5629
|
+
if (update.state !== "failed" && update.state !== "rolled-back") return void 0;
|
|
5630
|
+
if (update.to !== until && update.version !== until) return void 0;
|
|
5631
|
+
if (since !== void 0 && update.at !== void 0) {
|
|
5632
|
+
const at = (0, import_dayjs_min.default)(update.at).valueOf();
|
|
5633
|
+
if (Number.isFinite(at) && at < since - 5e3) return void 0;
|
|
5634
|
+
}
|
|
5635
|
+
return {
|
|
5636
|
+
kind: update.state,
|
|
5637
|
+
...update.version === void 0 ? {} : { version: update.version },
|
|
5638
|
+
...update.state === "failed" && tailReason(update.tail) !== void 0 ? { reason: tailReason(update.tail) } : {}
|
|
5639
|
+
};
|
|
5640
|
+
}
|
|
5641
|
+
function holdWindowMs(until) {
|
|
5642
|
+
return until === void 0 ? MODULE_SETTLE_MS : WORKBENCH_SWAP_MS;
|
|
5643
|
+
}
|
|
5644
|
+
//#endregion
|
|
5616
5645
|
//#region src/app/layouts/rightbar/market-busy.ts
|
|
5617
5646
|
var listeners$5 = /* @__PURE__ */ new Set();
|
|
5618
5647
|
var published = /* @__PURE__ */ new Map();
|
|
@@ -5893,138 +5922,137 @@ function useMarketTransient(input) {
|
|
|
5893
5922
|
};
|
|
5894
5923
|
}
|
|
5895
5924
|
var MarketPage_module_default = {
|
|
5896
|
-
marketList: "
|
|
5897
|
-
marketRow: "
|
|
5898
|
-
marketIcon: "
|
|
5899
|
-
marketMain: "
|
|
5900
|
-
marketName: "
|
|
5901
|
-
marketStatus: "
|
|
5902
|
-
marketStateText: "
|
|
5903
|
-
marketSep: "
|
|
5904
|
-
marketReason: "
|
|
5905
|
-
marketVersion: "
|
|
5906
|
-
marketLocalTag: "
|
|
5907
|
-
marketEnd: "
|
|
5908
|
-
marketSwitchSeat: "
|
|
5909
|
-
marketActions: "
|
|
5910
|
-
marketUpdateAction: "
|
|
5911
|
-
marketSelfDivider: "
|
|
5912
|
-
marketSection: "
|
|
5913
|
-
marketSectionHead: "
|
|
5914
|
-
marketSectionIcon: "
|
|
5915
|
-
marketSectionTitle: "
|
|
5916
|
-
marketSectionCount: "
|
|
5917
|
-
|
|
5918
|
-
|
|
5919
|
-
|
|
5920
|
-
|
|
5921
|
-
|
|
5922
|
-
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
|
|
5926
|
-
|
|
5927
|
-
|
|
5928
|
-
|
|
5929
|
-
|
|
5930
|
-
|
|
5931
|
-
|
|
5932
|
-
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
|
|
5943
|
-
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5953
|
-
|
|
5954
|
-
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
|
|
5961
|
-
|
|
5962
|
-
|
|
5963
|
-
|
|
5964
|
-
|
|
5965
|
-
|
|
5966
|
-
|
|
5967
|
-
|
|
5968
|
-
|
|
5969
|
-
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5974
|
-
|
|
5975
|
-
|
|
5976
|
-
|
|
5977
|
-
|
|
5978
|
-
|
|
5979
|
-
|
|
5980
|
-
|
|
5981
|
-
|
|
5982
|
-
|
|
5983
|
-
|
|
5984
|
-
|
|
5985
|
-
|
|
5986
|
-
|
|
5987
|
-
|
|
5988
|
-
|
|
5989
|
-
|
|
5990
|
-
|
|
5991
|
-
|
|
5992
|
-
|
|
5993
|
-
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
5997
|
-
|
|
5998
|
-
|
|
5999
|
-
|
|
6000
|
-
|
|
6001
|
-
|
|
6002
|
-
|
|
6003
|
-
|
|
6004
|
-
|
|
6005
|
-
|
|
6006
|
-
|
|
6007
|
-
|
|
6008
|
-
|
|
6009
|
-
|
|
6010
|
-
|
|
6011
|
-
|
|
6012
|
-
|
|
6013
|
-
|
|
6014
|
-
|
|
6015
|
-
|
|
6016
|
-
|
|
6017
|
-
|
|
6018
|
-
|
|
6019
|
-
|
|
6020
|
-
|
|
6021
|
-
|
|
6022
|
-
|
|
6023
|
-
|
|
6024
|
-
|
|
6025
|
-
|
|
6026
|
-
|
|
6027
|
-
discoverSkeletonDesc: "_discoverSkeletonDesc_jfyof_1099"
|
|
5925
|
+
marketList: "_marketList_yups9_1",
|
|
5926
|
+
marketRow: "_marketRow_yups9_10",
|
|
5927
|
+
marketIcon: "_marketIcon_yups9_20",
|
|
5928
|
+
marketMain: "_marketMain_yups9_32",
|
|
5929
|
+
marketName: "_marketName_yups9_39",
|
|
5930
|
+
marketStatus: "_marketStatus_yups9_48",
|
|
5931
|
+
marketStateText: "_marketStateText_yups9_58",
|
|
5932
|
+
marketSep: "_marketSep_yups9_62",
|
|
5933
|
+
marketReason: "_marketReason_yups9_66",
|
|
5934
|
+
marketVersion: "_marketVersion_yups9_72",
|
|
5935
|
+
marketLocalTag: "_marketLocalTag_yups9_94",
|
|
5936
|
+
marketEnd: "_marketEnd_yups9_105",
|
|
5937
|
+
marketSwitchSeat: "_marketSwitchSeat_yups9_112",
|
|
5938
|
+
marketActions: "_marketActions_yups9_125",
|
|
5939
|
+
marketUpdateAction: "_marketUpdateAction_yups9_131",
|
|
5940
|
+
marketSelfDivider: "_marketSelfDivider_yups9_137",
|
|
5941
|
+
marketSection: "_marketSection_yups9_143",
|
|
5942
|
+
marketSectionHead: "_marketSectionHead_yups9_150",
|
|
5943
|
+
marketSectionIcon: "_marketSectionIcon_yups9_156",
|
|
5944
|
+
marketSectionTitle: "_marketSectionTitle_yups9_163",
|
|
5945
|
+
marketSectionCount: "_marketSectionCount_yups9_169",
|
|
5946
|
+
marketSectionAction: "_marketSectionAction_yups9_175",
|
|
5947
|
+
marketSectionQuiet: "_marketSectionQuiet_yups9_183",
|
|
5948
|
+
marketProgress: "_marketProgress_yups9_196",
|
|
5949
|
+
marketNote: "_marketNote_yups9_206",
|
|
5950
|
+
marketFailure: "_marketFailure_yups9_213",
|
|
5951
|
+
marketEmpty: "_marketEmpty_yups9_220",
|
|
5952
|
+
marketPage: "_marketPage_yups9_225",
|
|
5953
|
+
marketPageHead: "_marketPageHead_yups9_243",
|
|
5954
|
+
marketPageTitle: "_marketPageTitle_yups9_251",
|
|
5955
|
+
marketPageIntro: "_marketPageIntro_yups9_256",
|
|
5956
|
+
marketPageTools: "_marketPageTools_yups9_262",
|
|
5957
|
+
marketPanel: "_marketPanel_yups9_271",
|
|
5958
|
+
marketTabs: "_marketTabs_yups9_281",
|
|
5959
|
+
marketTabList: "_marketTabList_yups9_286",
|
|
5960
|
+
marketAddButton: "_marketAddButton_yups9_291",
|
|
5961
|
+
marketEmptyTitle: "_marketEmptyTitle_yups9_308",
|
|
5962
|
+
discoverPage: "_discoverPage_yups9_313",
|
|
5963
|
+
discoverBar: "_discoverBar_yups9_320",
|
|
5964
|
+
discoverTools: "_discoverTools_yups9_327",
|
|
5965
|
+
discoverMarket: "_discoverMarket_yups9_333",
|
|
5966
|
+
discoverMarketButton: "_discoverMarketButton_yups9_338",
|
|
5967
|
+
discoverMarketName: "_discoverMarketName_yups9_345",
|
|
5968
|
+
discoverLabels: "_discoverLabels_yups9_351",
|
|
5969
|
+
discoverSort: "_discoverSort_yups9_356",
|
|
5970
|
+
discoverRefresh: "_discoverRefresh_yups9_361",
|
|
5971
|
+
discoverSearch: "_discoverSearch_yups9_365",
|
|
5972
|
+
discoverSearchField: "_discoverSearchField_yups9_373",
|
|
5973
|
+
discoverSearchFieldFilled: "_discoverSearchFieldFilled_yups9_378",
|
|
5974
|
+
discoverSearchClear: "_discoverSearchClear_yups9_387",
|
|
5975
|
+
discoverChips: "_discoverChips_yups9_438",
|
|
5976
|
+
discoverList: "_discoverList_yups9_445",
|
|
5977
|
+
discoverCard: "_discoverCard_yups9_454",
|
|
5978
|
+
discoverArtwork: "_discoverArtwork_yups9_468",
|
|
5979
|
+
discoverArtworkImage: "_discoverArtworkImage_yups9_480",
|
|
5980
|
+
discoverMain: "_discoverMain_yups9_484",
|
|
5981
|
+
discoverTitleRow: "_discoverTitleRow_yups9_492",
|
|
5982
|
+
discoverCardOpen: "_discoverCardOpen_yups9_500",
|
|
5983
|
+
discoverStrong: "_discoverStrong_yups9_531",
|
|
5984
|
+
discoverDesc: "_discoverDesc_yups9_537",
|
|
5985
|
+
discoverMeta: "_discoverMeta_yups9_546",
|
|
5986
|
+
discoverMuted: "_discoverMuted_yups9_553",
|
|
5987
|
+
discoverEnd: "_discoverEnd_yups9_559",
|
|
5988
|
+
discoverUpdateAction: "_discoverUpdateAction_yups9_568",
|
|
5989
|
+
discoverBlocked: "_discoverBlocked_yups9_573",
|
|
5990
|
+
discoverEmpty: "_discoverEmpty_yups9_578",
|
|
5991
|
+
discoverEmptyTitle: "_discoverEmptyTitle_yups9_587",
|
|
5992
|
+
discoverDetail: "_discoverDetail_yups9_597",
|
|
5993
|
+
discoverCrumb: "_discoverCrumb_yups9_603",
|
|
5994
|
+
discoverCrumbIcon: "_discoverCrumbIcon_yups9_626",
|
|
5995
|
+
discoverDetailHead: "_discoverDetailHead_yups9_630",
|
|
5996
|
+
discoverDetailTitle: "_discoverDetailTitle_yups9_636",
|
|
5997
|
+
discoverDetailText: "_discoverDetailText_yups9_642",
|
|
5998
|
+
discoverDetailPanel: "_discoverDetailPanel_yups9_649",
|
|
5999
|
+
discoverDetailTabs: "_discoverDetailTabs_yups9_656",
|
|
6000
|
+
discoverDetailTabList: "_discoverDetailTabList_yups9_661",
|
|
6001
|
+
discoverDocBody: "_discoverDocBody_yups9_666",
|
|
6002
|
+
discoverDocNotice: "_discoverDocNotice_yups9_671",
|
|
6003
|
+
discoverSection: "_discoverSection_yups9_677",
|
|
6004
|
+
discoverSectionTitle: "_discoverSectionTitle_yups9_684",
|
|
6005
|
+
discoverFacts: "_discoverFacts_yups9_690",
|
|
6006
|
+
discoverFactRow: "_discoverFactRow_yups9_695",
|
|
6007
|
+
discoverFactKind: "_discoverFactKind_yups9_705",
|
|
6008
|
+
discoverFactValue: "_discoverFactValue_yups9_711",
|
|
6009
|
+
discoverCode: "_discoverCode_yups9_719",
|
|
6010
|
+
discoverTags: "_discoverTags_yups9_728",
|
|
6011
|
+
discoverLink: "_discoverLink_yups9_735",
|
|
6012
|
+
discoverVersions: "_discoverVersions_yups9_745",
|
|
6013
|
+
discoverVersionRow: "_discoverVersionRow_yups9_753",
|
|
6014
|
+
discoverVersionName: "_discoverVersionName_yups9_761",
|
|
6015
|
+
discoverError: "_discoverError_yups9_766",
|
|
6016
|
+
discoverFailure: "_discoverFailure_yups9_775",
|
|
6017
|
+
discoverLoading: "_discoverLoading_yups9_781",
|
|
6018
|
+
discoverNotice: "_discoverNotice_yups9_790",
|
|
6019
|
+
discoverMore: "_discoverMore_yups9_808",
|
|
6020
|
+
discoverTransport: "_discoverTransport_yups9_812",
|
|
6021
|
+
discoverTransportHead: "_discoverTransportHead_yups9_818",
|
|
6022
|
+
discoverTransportTitle: "_discoverTransportTitle_yups9_825",
|
|
6023
|
+
discoverTransportKind: "_discoverTransportKind_yups9_830",
|
|
6024
|
+
discoverTransportState: "_discoverTransportState_yups9_835",
|
|
6025
|
+
discoverTransportRows: "_discoverTransportRows_yups9_843",
|
|
6026
|
+
discoverTransportRow: "_discoverTransportRow_yups9_843",
|
|
6027
|
+
discoverTransportRadio: "_discoverTransportRadio_yups9_864",
|
|
6028
|
+
discoverTransportCustom: "_discoverTransportCustom_yups9_904",
|
|
6029
|
+
discoverTransportInput: "_discoverTransportInput_yups9_910",
|
|
6030
|
+
discoverInstallBar: "_discoverInstallBar_yups9_915",
|
|
6031
|
+
discoverInstallText: "_discoverInstallText_yups9_926",
|
|
6032
|
+
discoverDialog: "_discoverDialog_yups9_932",
|
|
6033
|
+
discoverDialogBody: "_discoverDialogBody_yups9_936",
|
|
6034
|
+
discoverSourceList: "_discoverSourceList_yups9_942",
|
|
6035
|
+
discoverSourceRow: "_discoverSourceRow_yups9_950",
|
|
6036
|
+
discoverSourceConfirm: "_discoverSourceConfirm_yups9_959",
|
|
6037
|
+
discoverSourcePick: "_discoverSourcePick_yups9_965",
|
|
6038
|
+
discoverSourceRadio: "_discoverSourceRadio_yups9_974",
|
|
6039
|
+
discoverSourceMain: "_discoverSourceMain_yups9_982",
|
|
6040
|
+
discoverSourceHead: "_discoverSourceHead_yups9_990",
|
|
6041
|
+
discoverSourceUrl: "_discoverSourceUrl_yups9_998",
|
|
6042
|
+
discoverSourceMore: "_discoverSourceMore_yups9_1008",
|
|
6043
|
+
discoverSourceLoading: "_discoverSourceLoading_yups9_1012",
|
|
6044
|
+
discoverSourceHint: "_discoverSourceHint_yups9_1022",
|
|
6045
|
+
discoverSourceError: "_discoverSourceError_yups9_1036",
|
|
6046
|
+
discoverSourceForm: "_discoverSourceForm_yups9_1042",
|
|
6047
|
+
discoverGrow: "_discoverGrow_yups9_1048",
|
|
6048
|
+
discoverField: "_discoverField_yups9_1053",
|
|
6049
|
+
discoverFieldLabel: "_discoverFieldLabel_yups9_1059",
|
|
6050
|
+
discoverConfirmHead: "_discoverConfirmHead_yups9_1064",
|
|
6051
|
+
discoverSkeletonFill: "_discoverSkeletonFill_yups9_1070",
|
|
6052
|
+
"wb-skeleton": "_wb-skeleton_yups9_1",
|
|
6053
|
+
discoverSkeletonBar: "_discoverSkeletonBar_yups9_1079",
|
|
6054
|
+
discoverSkeletonTitle: "_discoverSkeletonTitle_yups9_1086",
|
|
6055
|
+
discoverSkeletonDesc: "_discoverSkeletonDesc_yups9_1090"
|
|
6028
6056
|
};
|
|
6029
6057
|
//#endregion
|
|
6030
6058
|
//#region src/app/layouts/market/discover-states.tsx
|
|
@@ -6153,6 +6181,7 @@ var PROGRESS_KEY = {
|
|
|
6153
6181
|
install: "panels.market.installing",
|
|
6154
6182
|
update: "panels.market.updating",
|
|
6155
6183
|
"update-bundle": "panels.market.updating",
|
|
6184
|
+
"install-version": "panels.market.updating",
|
|
6156
6185
|
"remove-bundle": "panels.market.uninstalling",
|
|
6157
6186
|
uninstall: "panels.market.uninstalling",
|
|
6158
6187
|
"update-dependency": "panels.market.updating",
|
|
@@ -6166,6 +6195,7 @@ var ACTION_LABEL_KEY = {
|
|
|
6166
6195
|
install: "panels.market.install",
|
|
6167
6196
|
update: "panels.market.update",
|
|
6168
6197
|
"update-bundle": "panels.market.update",
|
|
6198
|
+
"install-version": "panels.market.update",
|
|
6169
6199
|
"remove-bundle": "panels.market.uninstall",
|
|
6170
6200
|
uninstall: "panels.market.uninstall",
|
|
6171
6201
|
"update-dependency": "panels.market.update",
|
|
@@ -6314,41 +6344,6 @@ function SharedSection({ t, rows, pending, failureOf, act }) {
|
|
|
6314
6344
|
}))));
|
|
6315
6345
|
}
|
|
6316
6346
|
//#endregion
|
|
6317
|
-
//#region src/app/layouts/rightbar/panel-write.ts
|
|
6318
|
-
var PANEL_SETTLE_MS = 4e3;
|
|
6319
|
-
function rowKey(row) {
|
|
6320
|
-
return `${row.id}:${row.shown ? "1" : "0"}:${row.source}`;
|
|
6321
|
-
}
|
|
6322
|
-
function rowKeys(rows) {
|
|
6323
|
-
return rows.map(rowKey).join(",");
|
|
6324
|
-
}
|
|
6325
|
-
function panelBoardSignature(units, plugins, own) {
|
|
6326
|
-
return `${rowKeys(units)}|${rowKeys(plugins)}|${own ? "1" : "0"}`;
|
|
6327
|
-
}
|
|
6328
|
-
function machineBoardSignature(defaults, changed) {
|
|
6329
|
-
const counts = Object.entries(changed).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([id, count]) => `${id}:${String(count)}`);
|
|
6330
|
-
return `${[...defaults].sort().join(",")}|${counts.join(",")}`;
|
|
6331
|
-
}
|
|
6332
|
-
function nextPending(pending, signature) {
|
|
6333
|
-
return pending !== null && pending !== signature ? null : pending;
|
|
6334
|
-
}
|
|
6335
|
-
function useBoardSettle(signature) {
|
|
6336
|
-
const [held, setHeld] = (0, react.useState)(null);
|
|
6337
|
-
(0, react.useEffect)(() => {
|
|
6338
|
-
setHeld((current) => nextPending(current, signature));
|
|
6339
|
-
}, [signature]);
|
|
6340
|
-
(0, react.useEffect)(() => {
|
|
6341
|
-
if (held === null) return void 0;
|
|
6342
|
-
const timer = setTimeout(() => setHeld(null), PANEL_SETTLE_MS);
|
|
6343
|
-
return () => clearTimeout(timer);
|
|
6344
|
-
}, [held]);
|
|
6345
|
-
return {
|
|
6346
|
-
pending: held !== null,
|
|
6347
|
-
begin: () => setHeld(signature),
|
|
6348
|
-
clear: () => setHeld(null)
|
|
6349
|
-
};
|
|
6350
|
-
}
|
|
6351
|
-
//#endregion
|
|
6352
6347
|
//#region src/shared/components/Tip.tsx
|
|
6353
6348
|
/**
|
|
6354
6349
|
* dsh `Tooltip` 的外壳默认值版:说明统一按右栏习惯(`bottom` / `end` / `gap 6` / 挂 body)来,其余 prop 原样转给 `Tooltip`。
|
|
@@ -6495,12 +6490,12 @@ function MarketLine({ t, row, pending, failure, onAct, onDefault, boardBusy }) {
|
|
|
6495
6490
|
}
|
|
6496
6491
|
}));
|
|
6497
6492
|
}
|
|
6498
|
-
function MarketSection({ t, titleKey, icon, rows, pending, failureOf, act, confirmActions, onConfirming, onDefault, boardBusy }) {
|
|
6499
|
-
if (rows.length === 0) return null;
|
|
6493
|
+
function MarketSection({ t, titleKey, icon, rows, pending, failureOf, act, confirmActions, onConfirming, onDefault, boardBusy, headAction, keepHead }) {
|
|
6494
|
+
if (rows.length === 0 && keepHead !== true) return null;
|
|
6500
6495
|
return /* @__PURE__ */ (0, react.createElement)("section", { className: MarketPage_module_default.marketSection }, titleKey === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ (0, react.createElement)("span", {
|
|
6501
6496
|
className: MarketPage_module_default.marketSectionIcon,
|
|
6502
6497
|
"aria-hidden": "true"
|
|
6503
|
-
}, icon), /* @__PURE__ */ (0, react.createElement)("h2", { className: MarketPage_module_default.marketSectionTitle }, t(titleKey)), rows.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.
|
|
6498
|
+
}, icon), /* @__PURE__ */ (0, react.createElement)("h2", { className: MarketPage_module_default.marketSectionTitle }, t(titleKey)), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSectionCount }, rows.length), headAction === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSectionAction }, headAction)), rows.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("ul", { className: MarketPage_module_default.marketList }, rows.map((row) => /* @__PURE__ */ (0, react.createElement)(MarketLine, {
|
|
6504
6499
|
key: row.id,
|
|
6505
6500
|
t,
|
|
6506
6501
|
row,
|
|
@@ -6772,7 +6767,11 @@ function updateVerdictText(verdict, t, input) {
|
|
|
6772
6767
|
}
|
|
6773
6768
|
//#endregion
|
|
6774
6769
|
//#region src/app/layouts/rightbar/market-act.ts
|
|
6775
|
-
var STEADY_ACTIONS = /* @__PURE__ */ new Set([
|
|
6770
|
+
var STEADY_ACTIONS = /* @__PURE__ */ new Set([
|
|
6771
|
+
"update",
|
|
6772
|
+
"update-bundle",
|
|
6773
|
+
"install-version"
|
|
6774
|
+
]);
|
|
6776
6775
|
function assumedApplied(action) {
|
|
6777
6776
|
return action === "update" || action === "update-dependency" || action === "update-plugin" || REMOVAL_ACTIONS.has(action);
|
|
6778
6777
|
}
|
|
@@ -6816,18 +6815,34 @@ function marketActOf(options) {
|
|
|
6816
6815
|
seats.setConfirming(null);
|
|
6817
6816
|
seats.setFailed(null);
|
|
6818
6817
|
seats.setNotice(null);
|
|
6818
|
+
const dependency = action === "update-dependency";
|
|
6819
|
+
const byName = action === "remove-bundle" || action === "update-plugin" || action === "uninstall-plugin" || action === "update-workbench" || action === "migrate-workbench";
|
|
6820
|
+
const market = action === "install-version" ? row?.market : void 0;
|
|
6821
|
+
const marketSpec = market === void 0 || row?.pkg === void 0 ? void 0 : marketInstallTarget(row.pkg, market.version, market.source).spec;
|
|
6822
|
+
if (action === "install-version" && marketSpec === void 0) {
|
|
6823
|
+
seats.setPending(null);
|
|
6824
|
+
seats.setFailed({
|
|
6825
|
+
id,
|
|
6826
|
+
message: t("panels.market.failed", { reason: t("panels.market.noMarketSource") })
|
|
6827
|
+
});
|
|
6828
|
+
return;
|
|
6829
|
+
}
|
|
6819
6830
|
const outcome = await send(action === "dismiss-followup" ? {
|
|
6820
6831
|
action,
|
|
6821
6832
|
id: row?.followUp?.id ?? ""
|
|
6822
|
-
} :
|
|
6833
|
+
} : dependency ? {
|
|
6823
6834
|
action,
|
|
6824
6835
|
id
|
|
6825
|
-
} :
|
|
6836
|
+
} : byName ? {
|
|
6826
6837
|
action,
|
|
6827
6838
|
name: row?.pkg ?? ""
|
|
6828
|
-
} : {
|
|
6839
|
+
} : marketSpec === void 0 ? {
|
|
6829
6840
|
action,
|
|
6830
6841
|
unit: id
|
|
6842
|
+
} : {
|
|
6843
|
+
action,
|
|
6844
|
+
spec: marketSpec,
|
|
6845
|
+
requestId: globalThis.crypto.randomUUID()
|
|
6831
6846
|
});
|
|
6832
6847
|
if (!outcome.ok) {
|
|
6833
6848
|
onChanged({ force: true });
|
|
@@ -6892,6 +6907,99 @@ function marketActOf(options) {
|
|
|
6892
6907
|
});
|
|
6893
6908
|
};
|
|
6894
6909
|
}
|
|
6910
|
+
//#endregion
|
|
6911
|
+
//#region src/app/layouts/rightbar/panel-write.ts
|
|
6912
|
+
var PANEL_SETTLE_MS = 4e3;
|
|
6913
|
+
function rowKey(row) {
|
|
6914
|
+
return `${row.id}:${row.shown ? "1" : "0"}:${row.source}`;
|
|
6915
|
+
}
|
|
6916
|
+
function rowKeys(rows) {
|
|
6917
|
+
return rows.map(rowKey).join(",");
|
|
6918
|
+
}
|
|
6919
|
+
function panelBoardSignature(units, plugins, own) {
|
|
6920
|
+
return `${rowKeys(units)}|${rowKeys(plugins)}|${own ? "1" : "0"}`;
|
|
6921
|
+
}
|
|
6922
|
+
function machineBoardSignature(defaults, changed) {
|
|
6923
|
+
const counts = Object.entries(changed).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([id, count]) => `${id}:${String(count)}`);
|
|
6924
|
+
return `${[...defaults].sort().join(",")}|${counts.join(",")}`;
|
|
6925
|
+
}
|
|
6926
|
+
function nextPending(pending, signature) {
|
|
6927
|
+
return pending !== null && pending !== signature ? null : pending;
|
|
6928
|
+
}
|
|
6929
|
+
function useBoardSettle(signature) {
|
|
6930
|
+
const [held, setHeld] = (0, react.useState)(null);
|
|
6931
|
+
(0, react.useEffect)(() => {
|
|
6932
|
+
setHeld((current) => nextPending(current, signature));
|
|
6933
|
+
}, [signature]);
|
|
6934
|
+
(0, react.useEffect)(() => {
|
|
6935
|
+
if (held === null) return void 0;
|
|
6936
|
+
const timer = setTimeout(() => setHeld(null), PANEL_SETTLE_MS);
|
|
6937
|
+
return () => clearTimeout(timer);
|
|
6938
|
+
}, [held]);
|
|
6939
|
+
return {
|
|
6940
|
+
pending: held !== null,
|
|
6941
|
+
begin: () => setHeld(signature),
|
|
6942
|
+
clear: () => setHeld(null)
|
|
6943
|
+
};
|
|
6944
|
+
}
|
|
6945
|
+
//#endregion
|
|
6946
|
+
//#region src/app/layouts/rightbar/use-market-default.ts
|
|
6947
|
+
function useMarketDefault(input) {
|
|
6948
|
+
const { t, mocked, defaults, changed, setNotice } = input;
|
|
6949
|
+
const boardWrite = useHostWrite({
|
|
6950
|
+
channel: "prefs",
|
|
6951
|
+
resource: "panels",
|
|
6952
|
+
networkText: t("panels.failed")
|
|
6953
|
+
});
|
|
6954
|
+
const [writing, setWriting] = (0, react.useState)(false);
|
|
6955
|
+
const settle = useBoardSettle(machineBoardSignature(defaults, changed));
|
|
6956
|
+
const setDefault = async (id, next) => {
|
|
6957
|
+
if (mocked) return;
|
|
6958
|
+
setWriting(true);
|
|
6959
|
+
settle.begin();
|
|
6960
|
+
const outcome = await boardWrite.send({
|
|
6961
|
+
action: next ? "show" : "hide",
|
|
6962
|
+
id,
|
|
6963
|
+
scope: "machine"
|
|
6964
|
+
});
|
|
6965
|
+
setWriting(false);
|
|
6966
|
+
if (!outcome.ok) {
|
|
6967
|
+
settle.clear();
|
|
6968
|
+
setNotice(t("panels.failed"));
|
|
6969
|
+
}
|
|
6970
|
+
};
|
|
6971
|
+
return {
|
|
6972
|
+
pending: writing || settle.pending,
|
|
6973
|
+
setDefault
|
|
6974
|
+
};
|
|
6975
|
+
}
|
|
6976
|
+
var market_check_module_default = {
|
|
6977
|
+
check: "_check_1g6tv_1",
|
|
6978
|
+
status: "_status_1g6tv_8",
|
|
6979
|
+
button: "_button_1g6tv_15",
|
|
6980
|
+
icon: "_icon_1g6tv_22"
|
|
6981
|
+
};
|
|
6982
|
+
//#endregion
|
|
6983
|
+
//#region src/app/layouts/market/market-check.tsx
|
|
6984
|
+
function MarketCheck({ t, checkedAt, checking, failed, disabled, onCheck }) {
|
|
6985
|
+
const status = checking ? t("panels.market.checkingNow") : failed ? t("panels.market.checkFailed") : checkedAt === null ? null : t("panels.market.checkedAt", { time: checkedAgo(checkedAt, t) });
|
|
6986
|
+
return /* @__PURE__ */ (0, react.createElement)("span", { className: market_check_module_default.check }, status === null ? null : /* @__PURE__ */ (0, react.createElement)("span", {
|
|
6987
|
+
className: market_check_module_default.status,
|
|
6988
|
+
"aria-live": "polite"
|
|
6989
|
+
}, status), /* @__PURE__ */ (0, react.createElement)(Tip, { label: t("panels.market.checkUpdates") }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
6990
|
+
type: "button",
|
|
6991
|
+
variant: "ghost",
|
|
6992
|
+
size: "sm",
|
|
6993
|
+
className: market_check_module_default.button,
|
|
6994
|
+
"aria-label": t("panels.market.checkUpdates"),
|
|
6995
|
+
disabled: disabled || checking,
|
|
6996
|
+
icon: /* @__PURE__ */ (0, react.createElement)("span", {
|
|
6997
|
+
className: `${market_check_module_default.icon}${checking ? " wb-spinning" : ""}`,
|
|
6998
|
+
"aria-hidden": "true"
|
|
6999
|
+
}, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 })),
|
|
7000
|
+
onClick: onCheck
|
|
7001
|
+
})));
|
|
7002
|
+
}
|
|
6895
7003
|
var PanelFoot_module_default = {
|
|
6896
7004
|
foot: "_foot_1ud1j_1",
|
|
6897
7005
|
footText: "_footText_1ud1j_13",
|
|
@@ -6909,6 +7017,7 @@ var CONFIRM_UNINSTALL = [
|
|
|
6909
7017
|
"remove-bundle",
|
|
6910
7018
|
"uninstall-plugin"
|
|
6911
7019
|
];
|
|
7020
|
+
var NO_ROWS = [];
|
|
6912
7021
|
function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
|
|
6913
7022
|
const [acknowledged, setAcknowledged] = (0, react.useState)(false);
|
|
6914
7023
|
return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, {
|
|
@@ -6925,9 +7034,12 @@ function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
|
|
|
6925
7034
|
onConfirm
|
|
6926
7035
|
});
|
|
6927
7036
|
}
|
|
6928
|
-
function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy }) {
|
|
7037
|
+
function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, check }) {
|
|
6929
7038
|
const failureOf = (id) => failed?.id === id ? failed.message : null;
|
|
6930
7039
|
const foot = marketFootVisible(shown, installedList);
|
|
7040
|
+
const sections = marketSections(marketOrder([...shown, ...installedList], (row) => marketRowTitle(row, t)));
|
|
7041
|
+
const installed = sections.find((section) => section.id === "installed");
|
|
7042
|
+
const pendingSection = sections.find((section) => section.id === "not-installed");
|
|
6931
7043
|
return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, notice === null ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketNote }, notice), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
|
|
6932
7044
|
t,
|
|
6933
7045
|
rows: self === void 0 ? [] : [self],
|
|
@@ -6941,12 +7053,25 @@ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending
|
|
|
6941
7053
|
}), self === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", {
|
|
6942
7054
|
className: MarketPage_module_default.marketSelfDivider,
|
|
6943
7055
|
"aria-hidden": "true"
|
|
6944
|
-
}),
|
|
6945
|
-
|
|
7056
|
+
}), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
|
|
7057
|
+
t,
|
|
7058
|
+
titleKey: "panels.market.sectionInstalled",
|
|
7059
|
+
icon: marketSectionIcon("installed"),
|
|
7060
|
+
rows: installed?.rows ?? NO_ROWS,
|
|
7061
|
+
keepHead: true,
|
|
7062
|
+
headAction: check,
|
|
7063
|
+
onDefault: setDefault,
|
|
7064
|
+
boardBusy,
|
|
7065
|
+
pending,
|
|
7066
|
+
failureOf,
|
|
7067
|
+
act,
|
|
7068
|
+
confirmActions: CONFIRM_UNINSTALL,
|
|
7069
|
+
onConfirming
|
|
7070
|
+
}), pendingSection === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(MarketSection, {
|
|
6946
7071
|
t,
|
|
6947
|
-
titleKey:
|
|
6948
|
-
icon: marketSectionIcon(
|
|
6949
|
-
rows:
|
|
7072
|
+
titleKey: pendingSection.titleKey,
|
|
7073
|
+
icon: marketSectionIcon("pending"),
|
|
7074
|
+
rows: pendingSection.rows,
|
|
6950
7075
|
onDefault: setDefault,
|
|
6951
7076
|
boardBusy,
|
|
6952
7077
|
pending,
|
|
@@ -6954,11 +7079,12 @@ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending
|
|
|
6954
7079
|
act,
|
|
6955
7080
|
confirmActions: CONFIRM_UNINSTALL,
|
|
6956
7081
|
onConfirming
|
|
6957
|
-
})
|
|
7082
|
+
}), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
|
|
6958
7083
|
t,
|
|
6959
7084
|
titleKey: "panels.market.sectionPlugins",
|
|
6960
7085
|
icon: marketSectionIcon("plugins"),
|
|
6961
7086
|
rows: pluginList,
|
|
7087
|
+
headAction: check,
|
|
6962
7088
|
onDefault: setDefault,
|
|
6963
7089
|
boardBusy,
|
|
6964
7090
|
pending,
|
|
@@ -7007,7 +7133,7 @@ function useMarketScene(input) {
|
|
|
7007
7133
|
busyId
|
|
7008
7134
|
};
|
|
7009
7135
|
}
|
|
7010
|
-
function MarketView({ t, titleOf, manifests, installable, capabilities, freshness, onChanged, onPending, updates, installed, installedRead, workbench, selfUpdate, plugins, settling, mock, defaults = [], changed = {} }) {
|
|
7136
|
+
function MarketView({ t, titleOf, manifests, installable, capabilities, freshness, onChanged, onPending, updates, updatesCheckedAt = null, updatesFailed = false, installed, installedRead, workbench, selfUpdate, plugins, settling, mock, defaults = [], changed = {} }) {
|
|
7011
7137
|
const { pending, setPending, confirming, setConfirming, failed, setFailed, notice, setNotice } = useMarketTransient({
|
|
7012
7138
|
mock,
|
|
7013
7139
|
onPending
|
|
@@ -7032,29 +7158,14 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
|
|
|
7032
7158
|
channel: "provision",
|
|
7033
7159
|
networkText: t("panels.failed")
|
|
7034
7160
|
});
|
|
7035
|
-
const
|
|
7036
|
-
|
|
7037
|
-
|
|
7038
|
-
|
|
7161
|
+
const { pending: defaultPending, setDefault } = useMarketDefault({
|
|
7162
|
+
t,
|
|
7163
|
+
mocked: mock !== void 0,
|
|
7164
|
+
defaults,
|
|
7165
|
+
changed,
|
|
7166
|
+
setNotice
|
|
7039
7167
|
});
|
|
7040
|
-
const
|
|
7041
|
-
const settleDefault = useBoardSettle(machineBoardSignature(defaults, changed));
|
|
7042
|
-
const { busy: boardBusy } = useVisibleBusy(writingDefault || settleDefault.pending, 500);
|
|
7043
|
-
const setDefault = async (id, next) => {
|
|
7044
|
-
if (mock !== void 0) return;
|
|
7045
|
-
setWritingDefault(true);
|
|
7046
|
-
settleDefault.begin();
|
|
7047
|
-
const outcome = await boardWrite.send({
|
|
7048
|
-
action: next ? "show" : "hide",
|
|
7049
|
-
id,
|
|
7050
|
-
scope: "machine"
|
|
7051
|
-
});
|
|
7052
|
-
setWritingDefault(false);
|
|
7053
|
-
if (!outcome.ok) {
|
|
7054
|
-
settleDefault.clear();
|
|
7055
|
-
setNotice(t("panels.failed"));
|
|
7056
|
-
}
|
|
7057
|
-
};
|
|
7168
|
+
const { busy: boardBusy } = useVisibleBusy(defaultPending, 500);
|
|
7058
7169
|
const pendingRow = pendingRowOf({
|
|
7059
7170
|
pending,
|
|
7060
7171
|
removing,
|
|
@@ -7101,6 +7212,15 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
|
|
|
7101
7212
|
});
|
|
7102
7213
|
const settled = marketSettled(freshness, installedRead);
|
|
7103
7214
|
const nothing = shown.length === 0 && self === void 0 && installedList.length === 0 && pluginList.length === 0;
|
|
7215
|
+
const { busy: checkingShown } = useVisibleBusy(freshness.checking, 500);
|
|
7216
|
+
const check = /* @__PURE__ */ (0, react.createElement)(MarketCheck, {
|
|
7217
|
+
t,
|
|
7218
|
+
checkedAt: updatesCheckedAt,
|
|
7219
|
+
checking: checkingShown,
|
|
7220
|
+
failed: updatesFailed,
|
|
7221
|
+
disabled: pending !== null,
|
|
7222
|
+
onCheck: () => onChanged({ force: true })
|
|
7223
|
+
});
|
|
7104
7224
|
if (!settled || (settling?.size ?? 0) > 0 && shown.length === 0 && installedList.length === 0) return /* @__PURE__ */ (0, react.createElement)(MarketChecking, { t });
|
|
7105
7225
|
if (nothing) return /* @__PURE__ */ (0, react.createElement)(MarketEmpty, { t });
|
|
7106
7226
|
return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(MarketBody, {
|
|
@@ -7116,20 +7236,31 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
|
|
|
7116
7236
|
act,
|
|
7117
7237
|
onConfirming: setConfirming,
|
|
7118
7238
|
setDefault,
|
|
7119
|
-
boardBusy
|
|
7120
|
-
|
|
7239
|
+
boardBusy,
|
|
7240
|
+
check
|
|
7241
|
+
}), /* @__PURE__ */ (0, react.createElement)(UninstallConfirm, {
|
|
7242
|
+
t,
|
|
7243
|
+
confirming,
|
|
7244
|
+
row: confirmingRow,
|
|
7245
|
+
onClose: () => setConfirming(null),
|
|
7246
|
+
act,
|
|
7247
|
+
rowById
|
|
7248
|
+
}));
|
|
7249
|
+
}
|
|
7250
|
+
function UninstallConfirm({ t, confirming, row, onClose, act, rowById }) {
|
|
7251
|
+
return /* @__PURE__ */ (0, react.createElement)(ConfirmUninstall, {
|
|
7121
7252
|
key: confirming ?? "",
|
|
7122
7253
|
t,
|
|
7123
|
-
name:
|
|
7124
|
-
onCancel:
|
|
7254
|
+
name: row === void 0 ? null : marketRowTitle(row, t),
|
|
7255
|
+
onCancel: onClose,
|
|
7125
7256
|
onConfirm: () => {
|
|
7126
7257
|
const id = confirming;
|
|
7127
|
-
|
|
7258
|
+
onClose();
|
|
7128
7259
|
if (id === null) return;
|
|
7129
|
-
const
|
|
7130
|
-
act(id,
|
|
7260
|
+
const target = rowById.get(id);
|
|
7261
|
+
act(id, target?.plugin === true ? "uninstall-plugin" : target?.pkg === void 0 ? "uninstall" : "remove-bundle");
|
|
7131
7262
|
}
|
|
7132
|
-
})
|
|
7263
|
+
});
|
|
7133
7264
|
}
|
|
7134
7265
|
//#endregion
|
|
7135
7266
|
//#region ../../node_modules/.pnpm/dayjs@1.11.23/node_modules/dayjs/plugin/localizedFormat.js
|
|
@@ -7406,13 +7537,17 @@ function MarketIcon({ src, size = ICON }) {
|
|
|
7406
7537
|
function EntryAction({ t, entry, title, onInstall, onShowInstalled, installDisabled = false }) {
|
|
7407
7538
|
const latest = latestVersionOf(entry);
|
|
7408
7539
|
if (latest === void 0) return null;
|
|
7409
|
-
if (latest.install === "installed" || latest.install === "update-available")
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7540
|
+
if (latest.install === "installed" || latest.install === "update-available") {
|
|
7541
|
+
const update = latest.install === "update-available";
|
|
7542
|
+
return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
7543
|
+
type: "button",
|
|
7544
|
+
variant: "ghost",
|
|
7545
|
+
size: "sm",
|
|
7546
|
+
className: update ? MarketPage_module_default.discoverUpdateAction : void 0,
|
|
7547
|
+
"aria-label": t("panels.discover.openInstalled", { name: title }),
|
|
7548
|
+
onClick: () => onShowInstalled(entry.name)
|
|
7549
|
+
}, t(update ? "panels.discover.cardUpdate" : "panels.discover.cardInstalled"));
|
|
7550
|
+
}
|
|
7416
7551
|
if (latest.compat === "incompatible") return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
7417
7552
|
label: t("panels.discover.noCompatibleVersion", { runtime: latest.engines?.dsh ?? "" }),
|
|
7418
7553
|
side: "bottom",
|
|
@@ -7513,6 +7648,7 @@ function DiscoverVersions({ t, locale, entry, onInstall, installDisabled = false
|
|
|
7513
7648
|
var MARKET_DISCOVER_ROUTE = "panels/market-discover";
|
|
7514
7649
|
var MARKET_DOC_ROUTE = "panels/market-doc";
|
|
7515
7650
|
var MARKET_GIT_PROBE_ROUTE = "panels/git-probe";
|
|
7651
|
+
var MARKET_INSTALLED_ROUTE = "panels/market-installed";
|
|
7516
7652
|
var MARKET_PUBLISH_PREVIEW_ROUTE = "panels/market-publish-preview";
|
|
7517
7653
|
var MARKET_SOURCES_ROUTE = "panels/market-sources";
|
|
7518
7654
|
//#endregion
|
|
@@ -7526,6 +7662,9 @@ function readMarketSources() {
|
|
|
7526
7662
|
function readGitProbe(url) {
|
|
7527
7663
|
return apiGet(MARKET_GIT_PROBE_ROUTE, { url });
|
|
7528
7664
|
}
|
|
7665
|
+
function readMarketInstalled() {
|
|
7666
|
+
return apiGet(MARKET_INSTALLED_ROUTE);
|
|
7667
|
+
}
|
|
7529
7668
|
function readMarketDoc(name, version, kind) {
|
|
7530
7669
|
return apiGet(MARKET_DOC_ROUTE, {
|
|
7531
7670
|
name,
|
|
@@ -7729,10 +7868,24 @@ function stateText(t, state) {
|
|
|
7729
7868
|
if (state === "unknown") return t("panels.discover.transportUnknown");
|
|
7730
7869
|
return t("panels.discover.transportChecking");
|
|
7731
7870
|
}
|
|
7871
|
+
function kindText(t, kind) {
|
|
7872
|
+
return t(kind === "ssh" ? "panels.discover.transportSsh" : "panels.discover.transportHttps");
|
|
7873
|
+
}
|
|
7732
7874
|
function DiscoverTransport({ t, transport }) {
|
|
7875
|
+
const [open, setOpen] = (0, react.useState)(false);
|
|
7876
|
+
const chosenRow = transport.rows.find((row) => row.url === transport.chosen);
|
|
7877
|
+
const chosenState = chosenRow === void 0 ? void 0 : transport.states[chosenRow.url] ?? "checking";
|
|
7878
|
+
const probing = transport.probing;
|
|
7879
|
+
const summary = chosenRow !== void 0 ? kindText(t, chosenRow.kind) : probing ? t("panels.discover.transportChecking") : t("panels.discover.transportNone");
|
|
7880
|
+
const summaryState = probing || chosenState === void 0 ? "" : stateText(t, chosenState);
|
|
7733
7881
|
const needsAuth = transport.rows.length > 0 && transport.rows.every((row) => transport.states[row.url] === "auth") && transport.customState !== "ok";
|
|
7734
7882
|
const customBusy = transport.customState === "checking";
|
|
7735
|
-
return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverTransport }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportTitle }, t("panels.discover.transportTitle")), /* @__PURE__ */ (0, react.createElement)("
|
|
7883
|
+
return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverTransport }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverTransportHead }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportTitle }, t("panels.discover.transportTitle")), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportKind }, summary), summaryState === "" ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportState }, summaryState), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
7884
|
+
type: "button",
|
|
7885
|
+
variant: "ghost",
|
|
7886
|
+
size: "sm",
|
|
7887
|
+
onClick: () => setOpen((value) => !value)
|
|
7888
|
+
}, t(open ? "panels.discover.transportChangeHide" : "panels.discover.transportChange"))), open ? /* @__PURE__ */ (0, react.createElement)("div", {
|
|
7736
7889
|
className: MarketPage_module_default.discoverTransportRows,
|
|
7737
7890
|
role: "radiogroup",
|
|
7738
7891
|
"aria-label": t("panels.discover.transportTitle")
|
|
@@ -7751,8 +7904,8 @@ function DiscoverTransport({ t, transport }) {
|
|
|
7751
7904
|
value: row.url,
|
|
7752
7905
|
checked: transport.chosen === row.url,
|
|
7753
7906
|
onChange: () => transport.setChosen(row.url)
|
|
7754
|
-
}), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportKind }, t
|
|
7755
|
-
})), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverTransportCustom }, /* @__PURE__ */ (0, react.createElement)(TextField, {
|
|
7907
|
+
}), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportKind }, kindText(t, row.kind)), label === "" ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportState }, label));
|
|
7908
|
+
})) : null, open ? /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverTransportCustom }, /* @__PURE__ */ (0, react.createElement)(TextField, {
|
|
7756
7909
|
type: "text",
|
|
7757
7910
|
className: MarketPage_module_default.discoverTransportInput,
|
|
7758
7911
|
value: transport.custom,
|
|
@@ -7771,7 +7924,7 @@ function DiscoverTransport({ t, transport }) {
|
|
|
7771
7924
|
disabled: transport.custom.trim() === "" || customBusy,
|
|
7772
7925
|
"aria-busy": customBusy,
|
|
7773
7926
|
onClick: transport.checkCustom
|
|
7774
|
-
}, t(customBusy ? "panels.discover.transportChecking" : "panels.discover.transportTest")), transport.customState === null || stateText(t, transport.customState) === "" ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportState }, stateText(t, transport.customState))), needsAuth ? /* @__PURE__ */ (0, react.createElement)("p", {
|
|
7927
|
+
}, t(customBusy ? "panels.discover.transportChecking" : "panels.discover.transportTest")), transport.customState === null || stateText(t, transport.customState) === "" ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportState }, stateText(t, transport.customState))) : null, needsAuth ? /* @__PURE__ */ (0, react.createElement)("p", {
|
|
7775
7928
|
className: MarketPage_module_default.discoverNotice,
|
|
7776
7929
|
role: "note"
|
|
7777
7930
|
}, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
|
|
@@ -7793,8 +7946,13 @@ function defaultOf(rows, states) {
|
|
|
7793
7946
|
const fallback = rows.find((row) => usable(states[row.url]));
|
|
7794
7947
|
return fallback === void 0 ? null : fallback.url;
|
|
7795
7948
|
}
|
|
7796
|
-
function useGitTransport(source) {
|
|
7797
|
-
const rows = (0, react.useMemo)(() =>
|
|
7949
|
+
function useGitTransport(source, preferredKind) {
|
|
7950
|
+
const rows = (0, react.useMemo)(() => {
|
|
7951
|
+
if (source === null) return [];
|
|
7952
|
+
const candidates = gitTransportCandidates(source.url);
|
|
7953
|
+
if (preferredKind === void 0) return candidates;
|
|
7954
|
+
return [...candidates].sort((left, right) => Number(right.kind === preferredKind) - Number(left.kind === preferredKind));
|
|
7955
|
+
}, [source, preferredKind]);
|
|
7798
7956
|
const [results, setResults] = (0, react.useState)({});
|
|
7799
7957
|
const [picked, setPicked] = (0, react.useState)(null);
|
|
7800
7958
|
const [custom, setCustom] = (0, react.useState)("");
|
|
@@ -7845,12 +8003,13 @@ function useGitTransport(source) {
|
|
|
7845
8003
|
}
|
|
7846
8004
|
//#endregion
|
|
7847
8005
|
//#region src/app/layouts/market/discover-confirm.tsx
|
|
7848
|
-
function DiscoverConfirm({ t, locale, choice, onCancel, onConfirm }) {
|
|
8006
|
+
function DiscoverConfirm({ t, locale, choice, transports, onCancel, onConfirm }) {
|
|
7849
8007
|
if (choice === null) return null;
|
|
7850
8008
|
return /* @__PURE__ */ (0, react.createElement)(DiscoverConfirmBody, {
|
|
7851
8009
|
t,
|
|
7852
8010
|
locale,
|
|
7853
8011
|
choice,
|
|
8012
|
+
transports,
|
|
7854
8013
|
onCancel,
|
|
7855
8014
|
onConfirm
|
|
7856
8015
|
});
|
|
@@ -7858,9 +8017,10 @@ function DiscoverConfirm({ t, locale, choice, onCancel, onConfirm }) {
|
|
|
7858
8017
|
function factLabel(t, kind) {
|
|
7859
8018
|
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");
|
|
7860
8019
|
}
|
|
7861
|
-
function DiscoverConfirmBody({ t, locale, choice, onCancel, onConfirm }) {
|
|
8020
|
+
function DiscoverConfirmBody({ t, locale, choice, transports, onCancel, onConfirm }) {
|
|
7862
8021
|
const git = choice.version.source.type === "git" ? choice.version.source : null;
|
|
7863
|
-
const
|
|
8022
|
+
const host = git === null ? void 0 : gitAddressOf(git.url)?.host;
|
|
8023
|
+
const transport = useGitTransport(git, host === void 0 ? void 0 : transports[host]);
|
|
7864
8024
|
const title = displayTitleOf(choice.entry, locale) || choice.entry.name;
|
|
7865
8025
|
const facts = sourceFactsOf(choice.entry.name, choice.version).filter((fact) => git === null || fact.kind !== "repository");
|
|
7866
8026
|
const ready = git === null || transport.ready;
|
|
@@ -7881,7 +8041,7 @@ function DiscoverConfirmBody({ t, locale, choice, onCancel, onConfirm }) {
|
|
|
7881
8041
|
disabled: !ready,
|
|
7882
8042
|
"aria-busy": git !== null && transport.probing,
|
|
7883
8043
|
onClick: () => onConfirm(transport.chosen ?? void 0)
|
|
7884
|
-
}, t("panels.discover.cardInstall")))
|
|
8044
|
+
}, git !== null && transport.probing ? /* @__PURE__ */ (0, react.createElement)(Spinner, { size: 12 }) : null, t(git !== null && transport.probing ? "panels.discover.transportChecking" : "panels.discover.cardInstall")))
|
|
7885
8045
|
}, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverDialogBody }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverConfirmHead }, /* @__PURE__ */ (0, react.createElement)("span", {
|
|
7886
8046
|
className: MarketPage_module_default.discoverArtwork,
|
|
7887
8047
|
"aria-hidden": "true"
|
|
@@ -8168,6 +8328,7 @@ function DiscoverDialogs({ t, d }) {
|
|
|
8168
8328
|
t,
|
|
8169
8329
|
locale: d.locale,
|
|
8170
8330
|
choice: d.choice,
|
|
8331
|
+
transports: d.transports,
|
|
8171
8332
|
onCancel: () => d.setChoice(null),
|
|
8172
8333
|
onConfirm: d.install
|
|
8173
8334
|
}), /* @__PURE__ */ (0, react.createElement)(DiscoverInitDialog, {
|
|
@@ -8434,7 +8595,8 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8434
8595
|
if (response === null || !response.ok) return;
|
|
8435
8596
|
setKnownSources({
|
|
8436
8597
|
sources: sourceRowsOf(response.sources),
|
|
8437
|
-
selected: response.selected
|
|
8598
|
+
selected: response.selected,
|
|
8599
|
+
transports: response.transports ?? {}
|
|
8438
8600
|
});
|
|
8439
8601
|
}, []);
|
|
8440
8602
|
const load = (0, react.useCallback)(async (force = false) => {
|
|
@@ -8454,7 +8616,8 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8454
8616
|
setPayload(response);
|
|
8455
8617
|
setKnownSources({
|
|
8456
8618
|
sources: response.sources,
|
|
8457
|
-
selected: response.selected
|
|
8619
|
+
selected: response.selected,
|
|
8620
|
+
transports: {}
|
|
8458
8621
|
});
|
|
8459
8622
|
setLimit(50);
|
|
8460
8623
|
}, [t]);
|
|
@@ -8620,7 +8783,7 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8620
8783
|
setDetail(null);
|
|
8621
8784
|
beginSwitch();
|
|
8622
8785
|
setKnownSources((current) => current === null ? current : {
|
|
8623
|
-
|
|
8786
|
+
...current,
|
|
8624
8787
|
selected: id
|
|
8625
8788
|
});
|
|
8626
8789
|
sources.send({
|
|
@@ -8700,6 +8863,7 @@ function useDiscover(t, active, onInstalled) {
|
|
|
8700
8863
|
failure,
|
|
8701
8864
|
sources: knownSources?.sources ?? payload?.sources ?? [],
|
|
8702
8865
|
selected: knownSources?.selected ?? payload?.selected ?? null,
|
|
8866
|
+
transports: knownSources?.transports ?? {},
|
|
8703
8867
|
entries,
|
|
8704
8868
|
shown,
|
|
8705
8869
|
total: sorted.length,
|
|
@@ -8869,7 +9033,7 @@ function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
|
|
|
8869
9033
|
}
|
|
8870
9034
|
//#endregion
|
|
8871
9035
|
//#region src/app/layouts/market/market-header.tsx
|
|
8872
|
-
function MarketHeader({ t, idPrefix, tab, busy,
|
|
9036
|
+
function MarketHeader({ t, idPrefix, tab, busy, onTab, onAdd }) {
|
|
8873
9037
|
const tabItems = (0, react.useMemo)(() => [{
|
|
8874
9038
|
value: "installed",
|
|
8875
9039
|
label: t("panels.market.tabInstalled"),
|
|
@@ -8881,23 +9045,14 @@ function MarketHeader({ t, idPrefix, tab, busy, checking, onTab, onReload, onAdd
|
|
|
8881
9045
|
id: `${idPrefix}-tab-discover`,
|
|
8882
9046
|
panelId: `${idPrefix}-panel-discover`
|
|
8883
9047
|
}], [idPrefix, t]);
|
|
8884
|
-
return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)("header", { className: MarketPage_module_default.marketPageHead }, /* @__PURE__ */ (0, react.createElement)("div", null, /* @__PURE__ */ (0, react.createElement)("h1", { className: MarketPage_module_default.marketPageTitle }, t("panels.tab.market")), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.marketPageIntro }, t("panels.market.lead"))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketPageTools }, tab !== "installed" ? null : /* @__PURE__ */ (0, react.createElement)(
|
|
8885
|
-
type: "button",
|
|
8886
|
-
className: `${MarketPage_module_default.marketIconButton}${checking ? ` ${MarketPage_module_default.marketIconButtonSpinning}` : ""}`,
|
|
8887
|
-
"aria-label": t("panels.market.checkUpdates"),
|
|
8888
|
-
disabled: busy,
|
|
8889
|
-
onClick: onReload
|
|
8890
|
-
}, /* @__PURE__ */ (0, react.createElement)("span", {
|
|
8891
|
-
className: MarketPage_module_default.marketIconWrap,
|
|
8892
|
-
"aria-hidden": "true"
|
|
8893
|
-
}, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, null)))), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
9048
|
+
return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)("header", { className: MarketPage_module_default.marketPageHead }, /* @__PURE__ */ (0, react.createElement)("div", null, /* @__PURE__ */ (0, react.createElement)("h1", { className: MarketPage_module_default.marketPageTitle }, t("panels.tab.market")), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.marketPageIntro }, t("panels.market.lead"))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketPageTools }, tab !== "installed" ? null : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
8894
9049
|
variant: "primary",
|
|
8895
9050
|
size: "sm",
|
|
8896
9051
|
className: MarketPage_module_default.marketAddButton,
|
|
8897
9052
|
icon: /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutlineRegular, { size: 13 }),
|
|
8898
9053
|
disabled: busy,
|
|
8899
9054
|
onClick: onAdd
|
|
8900
|
-
}, t("panels.market.add.open"))))
|
|
9055
|
+
}, t("panels.market.add.open")))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketTabs }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.SegmentedTabs, {
|
|
8901
9056
|
className: MarketPage_module_default.marketTabList,
|
|
8902
9057
|
items: tabItems,
|
|
8903
9058
|
value: tab,
|
|
@@ -9271,6 +9426,30 @@ function useBoardWorkspace(workspaces, sessions) {
|
|
|
9271
9426
|
};
|
|
9272
9427
|
}
|
|
9273
9428
|
//#endregion
|
|
9429
|
+
//#region src/app/layouts/market/use-settling-modules.ts
|
|
9430
|
+
var NO_UNITS = /* @__PURE__ */ new Set();
|
|
9431
|
+
function unitsOf(key) {
|
|
9432
|
+
return key === "" ? [] : key.split("|");
|
|
9433
|
+
}
|
|
9434
|
+
function useSettlingModules(installedKey, rosterKey, activeKey) {
|
|
9435
|
+
const seenRef = (0, react.useRef)(null);
|
|
9436
|
+
const [settling, setSettling] = (0, react.useState)(NO_UNITS);
|
|
9437
|
+
(0, react.useEffect)(() => {
|
|
9438
|
+
const units = unitsOf(installedKey);
|
|
9439
|
+
const held = holdBack(units, new Set(unitsOf(rosterKey)), new Set(unitsOf(activeKey)), seenRef.current);
|
|
9440
|
+
seenRef.current = new Set(units);
|
|
9441
|
+
setSettling(held.length === 0 ? NO_UNITS : new Set(held));
|
|
9442
|
+
if (held.length === 0) return;
|
|
9443
|
+
const timer = setTimeout(() => setSettling(NO_UNITS), MODULE_SETTLE_MS);
|
|
9444
|
+
return () => clearTimeout(timer);
|
|
9445
|
+
}, [
|
|
9446
|
+
installedKey,
|
|
9447
|
+
rosterKey,
|
|
9448
|
+
activeKey
|
|
9449
|
+
]);
|
|
9450
|
+
return settling;
|
|
9451
|
+
}
|
|
9452
|
+
//#endregion
|
|
9274
9453
|
//#region src/shared/api/installed-plugins.ts
|
|
9275
9454
|
var INSTALLED_PLUGINS_ROUTE = "panels/plugins";
|
|
9276
9455
|
//#endregion
|
|
@@ -9297,6 +9476,7 @@ var state = {
|
|
|
9297
9476
|
selfUpdate: null,
|
|
9298
9477
|
read: false,
|
|
9299
9478
|
checking: false,
|
|
9479
|
+
failed: false,
|
|
9300
9480
|
checkedAt: null
|
|
9301
9481
|
};
|
|
9302
9482
|
var listeners$2 = /* @__PURE__ */ new Set();
|
|
@@ -9316,6 +9496,18 @@ function subscribeModuleVersions(listener) {
|
|
|
9316
9496
|
listeners$2.delete(listener);
|
|
9317
9497
|
};
|
|
9318
9498
|
}
|
|
9499
|
+
function withMarketUpdates(modules, rows) {
|
|
9500
|
+
if (rows.length === 0) return modules;
|
|
9501
|
+
const byPkg = new Map(rows.map((row) => [row.pkg, row]));
|
|
9502
|
+
return modules.map((module) => {
|
|
9503
|
+
const row = byPkg.get(module.pkg);
|
|
9504
|
+
return row === void 0 ? module : {
|
|
9505
|
+
...module,
|
|
9506
|
+
latest: row.version,
|
|
9507
|
+
market: row
|
|
9508
|
+
};
|
|
9509
|
+
});
|
|
9510
|
+
}
|
|
9319
9511
|
function publish$1(next) {
|
|
9320
9512
|
state = next;
|
|
9321
9513
|
for (const listener of [...listeners$2]) listener();
|
|
@@ -9329,19 +9521,26 @@ function runModuleVersionsRead(force = false, fresh = false) {
|
|
|
9329
9521
|
...state,
|
|
9330
9522
|
checking: true
|
|
9331
9523
|
});
|
|
9332
|
-
const promise = Promise.all([
|
|
9524
|
+
const promise = Promise.all([
|
|
9525
|
+
readModuleVersions(force),
|
|
9526
|
+
readInstalledPlugins(force),
|
|
9527
|
+
readMarketInstalled()
|
|
9528
|
+
]).catch(() => null).then((responses) => {
|
|
9333
9529
|
if (at !== epoch) return;
|
|
9334
9530
|
if (!force && seq < newestForceSeq) return;
|
|
9335
9531
|
const versions = responses?.[0];
|
|
9336
9532
|
const plugins = responses?.[1];
|
|
9533
|
+
const market = responses?.[2];
|
|
9534
|
+
const read = versions?.ok === true;
|
|
9337
9535
|
publish$1({
|
|
9338
|
-
modules: versions?.ok === true ?
|
|
9536
|
+
modules: read ? withMarketUpdates(versions.modules, market?.ok === true ? market.modules : []) : state.modules,
|
|
9339
9537
|
plugins: plugins?.ok === true ? plugins.plugins : state.plugins,
|
|
9340
|
-
workbench:
|
|
9341
|
-
selfUpdate:
|
|
9538
|
+
workbench: read ? versions.workbench ?? null : state.workbench,
|
|
9539
|
+
selfUpdate: read ? versions.selfUpdate ?? null : state.selfUpdate,
|
|
9342
9540
|
read: true,
|
|
9343
9541
|
checking: false,
|
|
9344
|
-
|
|
9542
|
+
failed: !read,
|
|
9543
|
+
checkedAt: read ? Date.now() : state.checkedAt
|
|
9345
9544
|
});
|
|
9346
9545
|
}).finally(() => {
|
|
9347
9546
|
if (inFlight?.promise === promise) inFlight = null;
|
|
@@ -9377,6 +9576,7 @@ function useModuleVersions() {
|
|
|
9377
9576
|
selfUpdate: value.selfUpdate,
|
|
9378
9577
|
read: value.read,
|
|
9379
9578
|
checking: value.checking,
|
|
9579
|
+
failed: value.failed,
|
|
9380
9580
|
checkedAt: value.checkedAt,
|
|
9381
9581
|
reload
|
|
9382
9582
|
};
|
|
@@ -9923,7 +10123,6 @@ var MOCK_FRESHNESS = {
|
|
|
9923
10123
|
checking: false,
|
|
9924
10124
|
checkedAt: null
|
|
9925
10125
|
};
|
|
9926
|
-
var NO_UNITS = /* @__PURE__ */ new Set();
|
|
9927
10126
|
function useLiveManifests(units) {
|
|
9928
10127
|
const subscribe = (0, react.useCallback)((listener) => units.subscribe(listener), [units]);
|
|
9929
10128
|
const revision = (0, react.useCallback)(() => units.version(), [units]);
|
|
@@ -9965,7 +10164,7 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
9965
10164
|
const manifests = useLiveManifests(units);
|
|
9966
10165
|
const installable = useInstallableUnits(units);
|
|
9967
10166
|
const { capabilities, checkedAt, checking, forceProbe, reload: reloadCapability } = useCapabilityMap(0);
|
|
9968
|
-
const { modules, plugins, workbench, selfUpdate, checking: versionsChecking, read: installedRead, reload: reloadVersions } = useModuleVersions();
|
|
10167
|
+
const { modules, plugins, workbench, selfUpdate, checking: versionsChecking, failed: versionsFailed, checkedAt: versionsCheckedAt, read: installedRead, reload: reloadVersions } = useModuleVersions();
|
|
9969
10168
|
const machineBoard = useEnabledUnits(0, null);
|
|
9970
10169
|
const [adding, setAdding] = (0, react.useState)(false);
|
|
9971
10170
|
const [acting, setActing] = (0, react.useState)(false);
|
|
@@ -10008,27 +10207,10 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
10008
10207
|
forceProbe,
|
|
10009
10208
|
reloadVersions
|
|
10010
10209
|
]);
|
|
10011
|
-
const
|
|
10012
|
-
const rosterKey = manifests.map((manifest) => manifest.id).join("|");
|
|
10013
|
-
const activeKey = Object.keys(capabilities ?? {}).join("|");
|
|
10014
|
-
const seenRef = (0, react.useRef)(null);
|
|
10015
|
-
const [settling, setSettling] = (0, react.useState)(NO_UNITS);
|
|
10016
|
-
(0, react.useEffect)(() => {
|
|
10017
|
-
const units = installedKey === "" ? [] : installedKey.split("|");
|
|
10018
|
-
const held = holdBack(units, new Set(rosterKey === "" ? [] : rosterKey.split("|")), new Set(activeKey === "" ? [] : activeKey.split("|")), seenRef.current);
|
|
10019
|
-
seenRef.current = new Set(units);
|
|
10020
|
-
setSettling(held.length === 0 ? NO_UNITS : new Set(held));
|
|
10021
|
-
if (held.length === 0) return;
|
|
10022
|
-
const timer = setTimeout(() => setSettling(NO_UNITS), MODULE_SETTLE_MS);
|
|
10023
|
-
return () => clearTimeout(timer);
|
|
10024
|
-
}, [
|
|
10025
|
-
installedKey,
|
|
10026
|
-
rosterKey,
|
|
10027
|
-
activeKey
|
|
10028
|
-
]);
|
|
10210
|
+
const settling = useSettlingModules((installed ?? []).map((module) => module.unit).join("|"), manifests.map((manifest) => manifest.id).join("|"), Object.keys(capabilities ?? {}).join("|"));
|
|
10029
10211
|
const freshness = {
|
|
10030
10212
|
loaded: capabilities !== null,
|
|
10031
|
-
checking,
|
|
10213
|
+
checking: checking || versionsChecking,
|
|
10032
10214
|
checkedAt
|
|
10033
10215
|
};
|
|
10034
10216
|
const pendingFreshness = {
|
|
@@ -10041,16 +10223,13 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
10041
10223
|
const mockNonce = devMarket.pick.nonce;
|
|
10042
10224
|
const shownFreshness = mock === void 0 ? freshness : mock.loaded === false ? pendingFreshness : MOCK_FRESHNESS;
|
|
10043
10225
|
const shownRead = mock === void 0 ? installedRead : mock.installedRead ?? true;
|
|
10044
|
-
const
|
|
10045
|
-
const busy = !marketSettled(shownFreshness, shownRead) || shownChecking || acting;
|
|
10226
|
+
const busy = !marketSettled(shownFreshness, shownRead) || acting;
|
|
10046
10227
|
return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketPage }, /* @__PURE__ */ (0, react.createElement)(MarketHeader, {
|
|
10047
10228
|
t,
|
|
10048
10229
|
idPrefix: MARKET_PANEL_ID,
|
|
10049
10230
|
tab,
|
|
10050
10231
|
busy,
|
|
10051
|
-
checking: shownChecking,
|
|
10052
10232
|
onTab: setTab,
|
|
10053
|
-
onReload: () => reload({ force: true }),
|
|
10054
10233
|
onAdd: openAddModule
|
|
10055
10234
|
}), devMarket.strip, /* @__PURE__ */ (0, react.createElement)("div", {
|
|
10056
10235
|
id: `${MARKET_PANEL_ID}-panel-installed`,
|
|
@@ -10068,6 +10247,8 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
10068
10247
|
onChanged: reload,
|
|
10069
10248
|
onPending: setActing,
|
|
10070
10249
|
updates,
|
|
10250
|
+
updatesCheckedAt: versionsCheckedAt,
|
|
10251
|
+
updatesFailed: versionsFailed,
|
|
10071
10252
|
installed,
|
|
10072
10253
|
installedRead: shownRead,
|
|
10073
10254
|
workbench,
|
|
@@ -15449,7 +15630,7 @@ function messagesOf(units) {
|
|
|
15449
15630
|
...face.messages === void 0 ? {} : { messages: face.messages }
|
|
15450
15631
|
}));
|
|
15451
15632
|
}
|
|
15452
|
-
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*/";
|
|
15633
|
+
var COMPONENT_CSS_MARKER = ".wb-activityBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding-top: var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-activityBlock:first-child {\n padding-top: 0;\n border-top: none;\n}\n\n.wb-activityBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}\n\n.wb-activityLine {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-activityLineText {\n flex: none;\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n max-height: var(--wb-len-72);\n overflow-y: auto;\n}\n\n.wb-activityLineAt {\n flex: none;\n margin-left: auto;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-activityLine > .wb-activityLineAt,\n.wb-activityLine > .wb-activityLineActions {\n margin-left: auto;\n}\n\n.wb-activityLine > .wb-activityLineAt + .wb-activityLineActions {\n margin-left: 0;\n}\n\n.wb-activityLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-activityActionFailed {\n color: var(--dsw-alias-state-error-primary);\n}\n.wb-note {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-problem {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n}\n.wb-approvalRow {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n.wb-approvalLabel {\n flex: none;\n width: var(--wb-len-56);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n.wb-cardHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-8) var(--wb-card-gutter);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-cardTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-cardMeta {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-cardMeta::before {\n content: '\\00b7';\n margin-right: var(--wb-len-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen ~ .wb-cardRefresh {\n margin-left: 0;\n}\n\n.wb-cardOpen:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh {\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardRefresh:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-cardGear {\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-3);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardGear:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n.wb-card {\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: none;\n}\n.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-card-gutter);\n font-size: var(--dsw-font-xxs-12-font-size);\n}\n.wb-cardBleed {\n margin-inline: calc(-1 * var(--wb-card-gutter));\n}\n._anchor_yq4s2_1 {\n display: contents;\n}\n.wb-spinner {\n display: inline-flex;\n align-items: center;\n flex: none;\n}\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n background: transparent;\n}\n\n.wb-choiceMenu[data-variant='boxed'] {\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-choiceOption {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-choiceOptionOn {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-checkbox {\n position: absolute;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.wb-checkboxBox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xs);\n corner-shape: round;\n color: var(--dsw-alias-label-primary-foreground);\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-choiceOption:hover .wb-checkboxBox {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-checkbox:checked + .wb-checkboxBox {\n border-color: var(--dsw-alias-brand-primary);\n background: var(--dsw-alias-brand-primary);\n}\n\n.wb-checkbox:disabled + .wb-checkboxBox {\n cursor: default;\n}\n\n.wb-checkbox:focus-visible + .wb-checkboxBox {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.wb-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceOption:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n\n.wb-choiceOption:has(:disabled),\n.wb-choiceOption:has(:disabled):hover {\n background: transparent;\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.wb-choiceLabelText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceLabel:has(.wb-choiceDescription) .wb-choiceLabelText {\n overflow: visible;\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.wb-choiceDescription {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n.wb-choiceLoading {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-choiceLoadingText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceEmpty {\n display: flex;\n align-items: center;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio {\n appearance: none;\n -webkit-appearance: none;\n flex: none;\n box-sizing: border-box;\n width: var(--wb-len-12);\n height: var(--wb-len-12);\n margin: 0;\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: 50%;\n corner-shape: round;\n background-color: transparent;\n cursor: pointer;\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-radio:not(:checked):hover {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio:checked {\n border-color: var(--dsw-alias-brand-primary);\n background-image: radial-gradient(\n circle at center,\n var(--dsw-alias-brand-primary) 0 3px,\n transparent 3px\n );\n}\n\n.wb-radio:disabled {\n cursor: default;\n}\n\n.wb-radio:focus-visible {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.wb-formActions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n\n.wb-formActionDanger {\n color: var(--dsw-alias-state-error-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n.wb-rows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n}\n.wb-rows > :not(.wb-row) {\n grid-column: 1 / -1;\n}\n.wb-row {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}\n.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.wb-rowKey {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-rowValue {\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-rows > .wb-row {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-rows > .wb-row {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-confirmBar {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-confirmBarTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 600;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-confirmBarHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.wb-field {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n.wb-fieldLabel {\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-fieldHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-field:has(:disabled) .wb-fieldLabel {\n opacity: 0.4;\n}\n.wb-formRows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-12);\n}\n\n.wb-formRows > :not(.wb-formRow) {\n grid-column: 1 / -1;\n}\n\n.wb-formRow {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: center;\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-8);\n}\n\n.wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n align-items: stretch;\n gap: var(--wb-len-6);\n}\n\n.wb-formRows > .wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.wb-formLabel {\n justify-self: start;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: nowrap;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formLabel {\n white-space: normal;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formHint,\n.wb-formRow[data-layout='stacked'] .wb-formProblem {\n grid-column: 1 / -1;\n}\n\n.wb-formControl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.wb-formControl\n > :where(\n .wb-selectAnchor,\n .wb-choiceMenu,\n input:not(\n [type='checkbox'],\n [type='radio'],\n [type='button'],\n [type='submit'],\n [type='reset'],\n [type='image'],\n [type='color'],\n [type='range']\n ),\n select,\n textarea\n ) {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n}\n\n.wb-formHint {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-formProblem {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(.wb-formProblem) .wb-formLabel {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(:disabled) .wb-formLabel {\n opacity: 0.4;\n}\n\n.wb-formRows > .wb-formRow {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-formRows > .wb-formRow {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-form {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n width: 100%;\n}\n:where(.wb-link) {\n margin-left: var(--wb-len-2);\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: baseline;\n}\n\n:where(.wb-link:hover) {\n text-decoration: underline;\n}\n\n:where(.wb-link:focus-visible) {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n.wb-longTask {\n padding-top: var(--wb-len-12);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n.wb-longTaskHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n}\n\n.wb-longTaskLink {\n flex: none;\n}\n\n.wb-longTaskHeadline {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-longTaskProblem {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-longTaskDump {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-longTaskDump pre {\n margin: var(--wb-len-4) 0 0;\n max-height: var(--wb-len-220);\n overflow: auto;\n}\n\n.wb-longTaskStop {\n display: inline-flex;\n flex: none;\n align-items: center;\n align-self: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n padding: 0;\n margin-left: auto;\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-specific-menu);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-longTaskStop:hover:not(:disabled),\n.wb-longTaskStop:focus-visible {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStop:disabled {\n cursor: default;\n}\n\n.wb-longTaskStopArmed,\n.wb-longTaskStopArmed:hover:not(:disabled),\n.wb-longTaskStopArmed:focus-visible {\n gap: var(--wb-len-4);\n width: auto;\n padding: 0 var(--wb-len-7);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStopLabel {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n.wb-longTaskStopWhy {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-centered.wb-centeredCompact {\n flex: none;\n min-height: 0;\n gap: var(--wb-len-8);\n padding: var(--wb-len-20) var(--wb-len-16);\n}\n\n.wb-centered.wb-centeredCompact .wb-centeredHero {\n margin-bottom: var(--wb-len-4);\n}\n\n.wb-skeleton {\n display: flex;\n flex-direction: column;\n}\n\n.wb-skeletonRow {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-skeletonRow + .wb-skeletonRow::before {\n content: '';\n align-self: stretch;\n height: var(--wb-len-0-5);\n margin: 0 var(--wb-len-8) var(--wb-len-neg-0-5);\n background: var(--dsw-alias-border-l2);\n}\n\n.wb-skeletonBar {\n display: block;\n height: var(--wb-len-13);\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-bg-skeleton);\n animation: wb-skeleton-pulse var(--wb-dur-1-4) var(--ds-ease-in-out) infinite;\n}\n\n.wb-skeletonBarTitle {\n width: 62%;\n}\n\n.wb-skeletonBarMeta {\n width: 32%;\n height: var(--wb-len-10);\n}\n\n.wb-skeletonRow:nth-child(2n) .wb-skeletonBarTitle {\n width: 74%;\n}\n\n.wb-skeletonRow:nth-child(3n) .wb-skeletonBarTitle {\n width: 52%;\n}\n\n@keyframes wb-skeleton-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.wb-centered {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--wb-len-14);\n flex: 1;\n min-height: var(--wb-len-240);\n padding: 0 var(--wb-len-24) var(--wb-len-24);\n text-align: center;\n}\n\n.wb-centeredHero {\n display: flex;\n margin-bottom: var(--wb-len-16);\n color: var(--dsw-alias-label-dimmed);\n}\n\n.wb-centeredTitle {\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-centeredHint {\n max-width: var(--wb-len-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-centeredDetail {\n max-width: var(--wb-len-320);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-dimmed);\n word-break: break-all;\n}\n\n.wb-centeredAction {\n display: flex;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}\n.wb-textField {\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n outline: none;\n}\n\n.wb-textField:focus {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-textField:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-textField[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-textField[aria-invalid='true']:focus {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n:where(.wb-textField) {\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n}\n:where(.wb-selectTrigger) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n text-align: left;\n cursor: pointer;\n}\n\n.wb-selectTrigger:focus-visible {\n outline: none;\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true']:focus-visible {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-selectLoading:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n background: transparent;\n font-size: var(--wb-font-row);\n}\n\n.wb-selectGhost:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-selectGhost:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n border-color: transparent;\n box-shadow: none;\n}\n\n.wb-selectIconOnly {\n width: var(--wb-len-36);\n height: var(--wb-len-36);\n min-height: 0;\n gap: 0;\n padding: 0;\n justify-content: center;\n}\n\n.wb-selectReveal {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.wb-selectIconOnly .wb-selectIcon {\n width: 100%;\n height: 100%;\n}\n\n.wb-selectAnchor {\n display: block;\n width: 100%;\n}\n\n.wb-selectIcon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectValue {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n.wb-selectPlaceholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n}\n\n.wb-selectMenu {\n min-width: var(--wb-len-240);\n max-width: var(--wb-len-360);\n max-height: min(var(--wb-len-320), calc(100vh - var(--wb-len-24)));\n}\n\n:where(.wb-selectSearch) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n.wb-selectSearch:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectSearch.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: 0.5px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-selectSearch.wb-selectGhost:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: none;\n}\n\n.wb-selectSearchIcon {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-textField.wb-selectSearchInput {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n.wb-textField.wb-selectSearchInput:focus {\n box-shadow: none;\n}\n\n.wb-selectFallback {\n width: 100%;\n}\n\n.wb-selectHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\nsection.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-len-16);\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-settings-card-fill);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.wb-settings .wb-settingsTitle {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-strong-14-font-size);\n line-height: var(--wb-line-24);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\n.wb-stateBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-stateBlockTitle {\n margin: 0;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n.wb-stateBlockHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-stateBlockActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n.wb-stateBlockResolving {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_yups9_1 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._marketRow_yups9_10 {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n column-gap: var(--wb-len-14);\n row-gap: var(--wb-len-4);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketIcon_yups9_20 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_yups9_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_yups9_39 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketStatus_yups9_48 {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketStateText_yups9_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_yups9_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_yups9_66 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketName_yups9_39 ._marketVersion_yups9_72 {\n margin-left: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n}\n\n._marketVersion_yups9_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_yups9_72::before {\n content: '';\n display: inline-block;\n width: var(--wb-len-1);\n height: var(--wb-len-10);\n margin: 0 var(--wb-len-8) 0 var(--wb-len-2);\n vertical-align: -1px;\n background: var(--dsw-alias-border-l2);\n}\n\n._marketLocalTag_yups9_94 {\n margin-left: var(--wb-len-8);\n padding: 0 var(--wb-len-6);\n border: var(--wb-len-1) solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-caption);\n}\n\n._marketEnd_yups9_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_yups9_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_yups9_112::before {\n content: '';\n width: 0;\n height: var(--wb-len-14);\n border-left: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketActions_yups9_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_yups9_131 {\n color: var(--dsw-alias-state-warn-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._marketSelfDivider_yups9_137 {\n height: 0;\n margin-top: calc(0px - var(--wb-len-16));\n border-top: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketSection_yups9_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_yups9_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_yups9_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_yups9_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_yups9_169 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionAction_yups9_175 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n margin-left: auto;\n min-width: 0;\n}\n\n._marketSectionQuiet_yups9_183 ._marketSectionTitle_yups9_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_yups9_183 ._marketName_yups9_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_yups9_183 ._marketIcon_yups9_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n._marketProgress_yups9_196 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-height: var(--wb-len-32);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketNote_yups9_206 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-warn-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailure_yups9_213 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketEmpty_yups9_220 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_yups9_225 {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-32);\n padding: 0 clamp(var(--wb-len-24), 4vw, var(--wb-len-48)) var(--wb-len-48);\n overflow-x: hidden;\n overflow-y: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_yups9_225 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_yups9_243 {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-16);\n padding-top: var(--wb-len-28);\n}\n\n._marketPageTitle_yups9_251 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_yups9_256 {\n margin: var(--wb-len-4) 0 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketPageTools_yups9_262 {\n flex: none;\n align-self: center;\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: var(--wb-len-16);\n}\n\n._marketPanel_yups9_271 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_yups9_271[hidden] {\n display: none;\n}\n\n._marketTabs_yups9_281 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_yups9_286 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_yups9_291 {\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n border-radius: var(--dsw-radius-md);\n}\n\n._marketEmpty_yups9_220 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) var(--wb-len-16);\n text-align: center;\n}\n\n._marketEmptyTitle_yups9_308 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_yups9_313 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_yups9_320 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_yups9_327 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_yups9_333 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_yups9_338 {\n min-width: 0;\n max-width: var(--wb-len-240);\n margin-left: calc(0px - var(--wb-len-8));\n font-weight: 500;\n}\n\n._discoverMarketName_yups9_345 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_yups9_351 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_yups9_356 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_yups9_361 {\n flex: none;\n}\n\n._discoverSearch_yups9_365 {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 var(--wb-len-120);\n min-width: var(--wb-len-120);\n}\n\n._discoverSearchField_yups9_373 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_yups9_378 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_yups9_373 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_yups9_365 ._discoverSearchClear_yups9_387 {\n position: absolute;\n top: 50%;\n inset-inline-end: var(--wb-len-4);\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n transform: translateY(-50%);\n}\n\n._discoverSearchClear_yups9_387:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_yups9_327 {\n display: grid;\n grid-template-columns: minmax(0, auto) minmax(var(--wb-len-120), 1fr) auto;\n grid-template-areas:\n 'market search refresh'\n 'labels sort sort';\n }\n\n ._discoverMarket_yups9_333 {\n grid-area: market;\n }\n\n ._discoverMarketButton_yups9_338 {\n margin-left: 0;\n }\n\n ._discoverLabels_yups9_351 {\n grid-area: labels;\n }\n\n ._discoverSearch_yups9_365 {\n grid-area: search;\n }\n\n ._discoverSort_yups9_356 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_yups9_361 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_yups9_438 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_yups9_445 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._discoverCard_yups9_454 {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n margin: 0 calc(0px - var(--wb-len-8));\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCard_yups9_454:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_yups9_468 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverArtworkImage_yups9_480 {\n object-fit: contain;\n}\n\n._discoverMain_yups9_484 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_yups9_492 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverCardOpen_yups9_500 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n}\n\n._discoverCardOpen_yups9_500::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_yups9_500:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_yups9_500:focus-visible::after {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverStrong_yups9_531 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_yups9_537 {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverMeta_yups9_546 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._discoverMuted_yups9_553 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_yups9_559 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverUpdateAction_yups9_568 {\n color: var(--dsw-alias-state-warn-primary);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._discoverBlocked_yups9_573 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_yups9_578 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) 0;\n text-align: center;\n}\n\n._discoverEmptyTitle_yups9_587 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_yups9_578 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_yups9_597 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_yups9_603 {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n padding: 0;\n border: 0;\n background: 0 0;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--wb-font-12-5);\n cursor: pointer;\n}\n\n._discoverCrumb_yups9_603:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_yups9_603:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverCrumbIcon_yups9_626 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_yups9_630 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_yups9_636 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_yups9_642 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._discoverDetailPanel_yups9_649 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_yups9_656 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_yups9_661 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_yups9_666 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_yups9_671 {\n margin: var(--wb-len-16) 0 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverSection_yups9_677 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_yups9_684 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_yups9_690 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_yups9_695 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--wb-len-16);\n min-height: var(--wb-len-44);\n padding: var(--wb-len-8) var(--wb-len-2);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverFactKind_yups9_705 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_yups9_711 {\n min-width: 0;\n margin: 0;\n text-align: end;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xs-13);\n}\n\n._discoverCode_yups9_719 {\n padding: var(--wb-len-2) var(--wb-len-6);\n border-radius: var(--wb-radius-6);\n background: var(--dsw-alias-bg-module-platform);\n font-family: var(--ds-font-family-code);\n font-size: var(--dsw-font-xxs-12-font-size);\n box-decoration-break: clone;\n}\n\n._discoverTags_yups9_728 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_yups9_735 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_yups9_735:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_yups9_745 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_yups9_753 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverVersionName_yups9_761 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_yups9_766 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverFailure_yups9_775 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_yups9_781 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverNotice_yups9_790 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverNotice_yups9_790 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_yups9_808 {\n align-self: center;\n}\n\n._discoverTransport_yups9_812 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_yups9_818 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_yups9_825 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_yups9_818 ._discoverTransportKind_yups9_830 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_yups9_818 ._discoverTransportState_yups9_835 {\n margin-left: 0;\n}\n\n._discoverTransportHead_yups9_818 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_yups9_843 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_yups9_843 {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n}\n\n._discoverTransportRow_yups9_843:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_yups9_843:has(._discoverTransportRadio_yups9_864:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_yups9_843:has(._discoverTransportRadio_yups9_864:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_yups9_864 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_yups9_830 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_yups9_835 {\n flex: none;\n margin-left: auto;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportRow_yups9_843[data-state='ok'] ._discoverTransportState_yups9_835 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_yups9_843[data-state='auth'] ._discoverTransportState_yups9_835 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_yups9_843[data-state='unreachable'] ._discoverTransportState_yups9_835,\n._discoverTransportRow_yups9_843[data-state='unknown'] ._discoverTransportState_yups9_835 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_yups9_904 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_yups9_910 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_yups9_915 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverInstallText_yups9_926 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_yups9_932 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_yups9_936 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_yups9_942 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_yups9_950 {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wb-len-12);\n padding: var(--wb-len-10) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverSourceConfirm_yups9_959 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_yups9_965 {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: var(--wb-len-10);\n min-width: 0;\n cursor: pointer;\n}\n\n._discoverSourceRadio_yups9_974 {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._discoverSourceMain_yups9_982 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_yups9_990 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverSourceUrl_yups9_998 {\n display: block;\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverSourceMore_yups9_1008 {\n flex: none;\n}\n\n._discoverSourceLoading_yups9_1012 {\n display: flex;\n flex: none;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceHint_yups9_1022 {\n display: flex;\n flex-basis: 100%;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverSourceHint_yups9_1022 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_yups9_1036 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_yups9_1042 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_yups9_1048 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_yups9_1053 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_yups9_1059 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_yups9_1064 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_yups9_1070 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_yups9_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_yups9_468._discoverSkeletonFill_yups9_1070 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_yups9_1079 {\n display: block;\n height: var(--wb-len-12);\n margin: var(--wb-len-4) 0;\n border-radius: var(--dsw-radius-xs);\n}\n\n._discoverSkeletonTitle_yups9_1086 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_yups9_1090 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_yups9_1 {\n 0% {\n opacity: 1;\n }\n 40% {\n opacity: 0.6;\n }\n 80%,\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._discoverSkeletonFill_yups9_1070 {\n animation: none;\n }\n}\n\n._check_1g6tv_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n min-width: 0;\n}\n\n._status_1g6tv_8 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-caption);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n._button_1g6tv_15 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n}\n\n._icon_1g6tv_22 {\n display: inline-flex;\n}\n\n@media (max-width: 720px) {\n ._status_1g6tv_8 {\n display: none;\n }\n}\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1lv8f_1 {\n justify-content: center;\n width: 100%;\n height: var(--wb-len-40);\n border-radius: var(--dsw-radius-md);\n}\n\n._dialog_1lv8f_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1lv8f_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1lv8f_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1lv8f_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1lv8f_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._input_1lv8f_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1lv8f_45 {\n height: var(--wb-len-32);\n margin-left: var(--wb-len-26);\n padding: 0 var(--wb-len-10);\n}\n\n._options_1lv8f_51 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8) var(--wb-len-12);\n}\n\n._guideToggle_1lv8f_59 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-4);\n align-self: flex-start;\n margin-top: var(--wb-len-4);\n padding: 0;\n border: 0;\n background: transparent;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._guideToggle_1lv8f_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1lv8f_59 svg,\n._registryToggle_1lv8f_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1lv8f_59[aria-expanded='true'] svg,\n._registryToggle_1lv8f_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1lv8f_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1lv8f_78 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n height: var(--wb-len-26);\n padding: 0 var(--wb-len-8) 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n font: inherit;\n font-size: var(--wb-font-12-5);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._registryToggle_1lv8f_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1lv8f_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1lv8f_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1lv8f_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1lv8f_45 {\n position: fixed;\n z-index: var(--wb-z-1100);\n box-sizing: border-box;\n width: min(var(--wb-len-440), 100vw - var(--wb-len-24));\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-12);\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-2);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n box-shadow: var(--dsw-elevation-prominent);\n}\n\n._registryOption_1lv8f_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid transparent;\n border-radius: var(--dsw-radius-lg);\n cursor: pointer;\n}\n\nlabel._registryOption_1lv8f_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1lv8f_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1lv8f_143[data-checked='true'] {\n border-color: color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._registryOption_1lv8f_143 input[type='radio'] {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._registryTitle_1lv8f_179 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n font: var(--dsw-font-xs-13);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n._registryHint_1lv8f_189 {\n margin-left: var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._inputError_1lv8f_197 {\n margin: var(--wb-len-neg-4) 0 0 var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._guide_1lv8f_59 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._guideList_1lv8f_214 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._guideItem_1lv8f_223 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0;\n}\n\n._guideIndex_1lv8f_230 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._guideMain_1lv8f_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1lv8f_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1lv8f_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1lv8f_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1lv8f_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1lv8f_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1lv8f_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1lv8f_285 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0 var(--wb-len-4);\n text-align: center;\n}\n\n._heroIcon_1lv8f_294 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-44);\n height: var(--wb-len-44);\n color: var(--dsw-alias-label-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1lv8f_311 {\n margin: 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 500;\n color: var(--dsw-alias-label-secondary);\n}\n\n._wizardTitle_1lv8f_319 {\n margin: 0;\n font-size: var(--wb-font-18);\n line-height: var(--wb-len-26);\n font-weight: 600;\n}\n\n._subject_1lv8f_326 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n text-align: center;\n}\n\n._subjectName_1lv8f_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1lv8f_343,\n._subjectDesc_1lv8f_344 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._result_1lv8f_351,\n._resultWarn_1lv8f_352 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._resultWarn_1lv8f_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._resultMeta_1lv8f_365 {\n margin: 0;\n padding: 0 var(--wb-len-12);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._approval_1lv8f_373 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-state-warn-primary);\n border-radius: var(--dsw-radius-lg);\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._approvalTitle_1lv8f_383 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._approvalText_1lv8f_390 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1lv8f_396 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n font-weight: 600;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._note_1lv8f_403 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._noteWarn_1lv8f_410 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1lv8f_414 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1lv8f_418 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._detailLabel_1lv8f_425 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1lv8f_425 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-3);\n font-family: var(--dsw-font-mono, monospace);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n._note_1enlz_1 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._note_1enlz_1 > svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n._slot_1t7dx_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1t7dx_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1t7dx_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1t7dx_31 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._paused_1t7dx_35 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._trouble_1t7dx_39 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._pulse_1t7dx_43 {\n animation: _wb-debug-breathe_1t7dx_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-debug-breathe_1t7dx_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1t7dx_43 {\n animation: none;\n }\n}\n\n._entry_1t7dx_64 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1t7dx_71 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1t7dx_78 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1t7dx_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: 0;\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n}\n\n._act_1t7dx_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1t7dx_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._actStop_1t7dx_110:hover,\n._actStop_1t7dx_110:focus-visible {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._actArmed_1t7dx_115,\n._actArmed_1t7dx_115:hover,\n._actArmed_1t7dx_115:focus-visible {\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n width: auto;\n color: var(--dsw-alias-state-error-primary);\n gap: var(--wb-len-4);\n padding: 0 var(--wb-len-7);\n}\n\n._actLabel_1t7dx_125 {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._entryLine_1t7dx_131 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1t7dx_138 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1t7dx_150 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1t7dx_156 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1t7dx_162 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._slot_1gkj9_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1gkj9_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1gkj9_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1gkj9_31 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._done_1gkj9_35 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._pulse_1gkj9_39 {\n animation: _wb-record-breathe_1gkj9_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-record-breathe_1gkj9_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1gkj9_39 {\n animation: none;\n }\n}\n\n._entry_1gkj9_60 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1gkj9_67 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1gkj9_74 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1gkj9_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-22);\n padding: 0 var(--wb-len-7);\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._act_1gkj9_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1gkj9_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._entryLine_1gkj9_108 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1gkj9_115 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1gkj9_127 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1gkj9_133 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1gkj9_139 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._item_lyox9_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n}\n\n._item_lyox9_1 + ._item_lyox9_1 {\n padding-top: var(--wb-len-14);\n border-top: var(--wb-len-0-5) solid var(--dsw-alias-settings-card-stroke);\n}\n\n._head_lyox9_12 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._title_lyox9_19 {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._description_lyox9_31 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._rows_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._row_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-settings-card-stroke);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-settings-card-fill);\n}\n\n._head_85r3w_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._pick_85r3w_27 {\n flex: 0 1 auto;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._pick_85r3w_27 > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._code_85r3w_39 {\n --dsl-code-block-background: var(--dsw-alias-bg-layer-1);\n margin: 0;\n}\n\n._missing_85r3w_44,\n._conflict_85r3w_45 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-warn-primary);\n}\n._body_11oac_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._sources_11oac_7 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._sourcesLabel_11oac_14 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\nbutton._sourceOn_11oac_19 {\n border-color: var(--dsw-alias-brand-primary);\n}\n._sourceCount_11oac_22 {\n margin-left: var(--wb-len-4);\n font-variant-numeric: tabular-nums;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._reading_11oac_29 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._status_11oac_35 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failure_11oac_45 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n column-gap: var(--wb-len-10);\n row-gap: var(--wb-len-2);\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n\n._failureTitle_11oac_55 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._failureHint_11oac_62 {\n grid-column: 1;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failureAction_11oac_67 {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n}\n\n._foot_11oac_73 {\n display: flex;\n justify-content: flex-end;\n}\n._body_lox98_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._field_lox98_7 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._input_lox98_13 {\n width: 100%;\n}\n\n._label_lox98_17 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\n._hint_lox98_22 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._copy_lox98_28 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-8) var(--wb-len-16);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n._copy_lox98_28 legend {\n padding: 0;\n margin-bottom: var(--wb-len-6);\n}\n\n._actions_lox98_42 {\n display: flex;\n justify-content: flex-end;\n}\n\n._commandLabel_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n}\n\n._command_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-6) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow-wrap: anywhere;\n}\n._body_zi2j5_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._lead_zi2j5_7 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._title_zi2j5_14 {\n font-size: var(--wb-font-18);\n line-height: var(--wb-line-24);\n}\n._hint_zyzt3_1[hidden],\n._actions_zyzt3_2[hidden],\n._progress_zyzt3_3[hidden],\n._commandRow_zyzt3_4[hidden],\n._bridge_zyzt3_5[hidden],\n._raw_zyzt3_6[hidden] {\n display: none;\n}\n\n._gate_zyzt3_10 {\n position: fixed;\n inset: 0;\n z-index: var(--wb-z-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--wb-len-24);\n background: var(--dsw-alias-bg-base);\n}\n\n._card_zyzt3_21 {\n width: 100%;\n max-width: var(--wb-len-420);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-16);\n text-align: center;\n}\n\n._card_zyzt3_21:has(._actions_zyzt3_2:not([hidden])),\n._card_zyzt3_21:has(._bridge_zyzt3_5:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_zyzt3_36 {\n margin: 0;\n font-size: var(--dsw-font-base-16-font-size);\n line-height: var(--wb-line-24);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._steps_zyzt3_51 {\n list-style: none;\n margin: var(--wb-len-6) 0 0;\n padding: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n text-align: left;\n}\n\n._step_zyzt3_51 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-6) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._step_zyzt3_51[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_zyzt3_78 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-14);\n height: var(--wb-len-14);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._step_zyzt3_51[data-status='ok'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_zyzt3_51[data-status='warn'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_zyzt3_51[data-status='failed'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_zyzt3_103 {\n flex: none;\n}\n\n._detail_zyzt3_107 {\n margin-left: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._progress_zyzt3_3 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._elapsed_zyzt3_125 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._error_zyzt3_133 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n max-height: var(--wb-len-120);\n overflow: auto;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n white-space: pre-wrap;\n word-break: break-all;\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._commandRow_zyzt3_4 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n margin: 0 0 var(--wb-len-8);\n padding-right: var(--wb-len-4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._copy_zyzt3_159 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._copy_zyzt3_159:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_zyzt3_4 {\n flex: 1;\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-primary);\n}\n\n._buttons_zyzt3_192 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_zyzt3_199 {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n justify-content: center;\n background: var(--dsw-alias-bg-base);\n}\n\n._button_zyzt3_192 {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n\n._button_zyzt3_192:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_zyzt3_192:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_zyzt3_2,\n._bridge_zyzt3_5 {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-14) var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-1);\n text-align: left;\n}\n\n._fixTitle_zyzt3_250 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._actions_zyzt3_2 ._hint_zyzt3_1,\n._bridge_zyzt3_5 ._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._actions_zyzt3_2 ._commandRow_zyzt3_4,\n._bridge_zyzt3_5 ._commandRow_zyzt3_4 {\n margin: 0;\n}\n\n._actions_zyzt3_2 ._buttons_zyzt3_192,\n._bridge_zyzt3_5 ._buttons_zyzt3_192 {\n justify-content: flex-start;\n}\n\n._raw_zyzt3_6 {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._rawSummary_zyzt3_286 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_zyzt3_2 ._error_zyzt3_133,\n._bridge_zyzt3_5 ._error_zyzt3_133 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_zyzt3_296 {\n margin: 0;\n padding-left: var(--wb-len-18);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._bridgeLine_zyzt3_296 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_zyzt3_313 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_zyzt3_313::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_zyzt3_313:hover {\n text-decoration: underline;\n}\n\n._loading_zyzt3_327 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_zyzt3_327[hidden] {\n display: none;\n}\n\n._loadingMotion_zyzt3_336 {\n transform-origin: center;\n animation: _wb-spin_zyzt3_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_zyzt3_341,\n._loadingArc_zyzt3_342 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_zyzt3_341 {\n opacity: 0.25;\n}\n\n._loadingArc_zyzt3_342 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_zyzt3_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_zyzt3_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_zyzt3_1 {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }\n to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._loadingMotion_zyzt3_336,\n ._loadingArc_zyzt3_342 {\n animation: none;\n }\n}\n._changelog_1q6pj_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-10);\n min-width: 0;\n}\n\n._changelogTitle_1q6pj_9 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._changelogMissing_1q6pj_15 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._changelogBody_1q6pj_21 {\n max-height: var(--wb-len-320);\n overflow: auto;\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._trigger_15ptp_1 {\n display: flex;\n align-items: center;\n}\n\n._pop_15ptp_6 {\n position: absolute;\n top: calc(var(--wb-len-38) + var(--wb-len-8));\n right: var(--wb-len-6);\n z-index: var(--wb-z-30);\n width: min(var(--wb-len-360), calc(100% - var(--wb-len-12)));\n max-width: calc(100vw - var(--wb-len-48));\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-2);\n box-shadow: var(--dsw-shadow-lv3);\n overflow: hidden;\n}\n\n._head_15ptp_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10) var(--wb-len-12) var(--wb-len-9) var(--wb-len-14);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._title_15ptp_28 {\n flex: 1;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._rowControls_15ptp_36 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._reset_15ptp_43 {\n flex: none;\n padding: var(--wb-len-3) var(--wb-len-8);\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._reset_15ptp_43:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_15ptp_43:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_15ptp_65 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._row_15ptp_36 {\n position: relative;\n display: grid;\n grid-template-columns: 12px minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-sm);\n cursor: default;\n}\n\n._rowDragging_15ptp_85 {\n cursor: grabbing;\n}\n\n._rowBlocked_15ptp_89 {\n cursor: not-allowed;\n}\n\n._listDragging_15ptp_93 ._rowControls_15ptp_36 {\n pointer-events: none;\n}\n\n._row_15ptp_36:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOff_15ptp_101 {\n opacity: 0.55;\n}\n\n._rowOff_15ptp_101:hover {\n opacity: 1;\n}\n\n._rowOver_15ptp_109::before {\n content: '';\n position: absolute;\n top: var(--wb-len-neg-3);\n left: var(--wb-len-8);\n right: var(--wb-len-8);\n height: var(--wb-len-2);\n background: var(--dsw-alias-brand-primary);\n}\n\n._ghost_15ptp_119 {\n position: fixed;\n z-index: var(--wb-z-40);\n pointer-events: none;\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--wb-static-shadow-ghost);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n white-space: nowrap;\n}\n\n._grip_15ptp_134 {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: center;\n color: var(--dsw-alias-label-tertiary);\n user-select: none;\n cursor: grab;\n touch-action: none;\n}\n\n._gripDragging_15ptp_144 {\n cursor: grabbing;\n}\n\n._gripBlocked_15ptp_148 {\n cursor: not-allowed;\n}\n\n._label_15ptp_152 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_15ptp_159 {\n min-width: 0;\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n\n._error_15ptp_170 {\n margin: 0;\n padding: 0 var(--wb-len-14) var(--wb-len-10);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._dep_15ptp_178 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n._group_15ptp_186 {\n padding-top: var(--wb-len-6);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._groupTitle_15ptp_191 {\n margin: 0;\n padding: var(--wb-len-2) var(--wb-len-8) 0 var(--wb-len-14);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n font-weight: 400;\n color: var(--dsw-alias-label-tertiary);\n}\n._panel_1whum_1 {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: var(--wb-z-10);\n visibility: hidden;\n}\n\n._panel_1whum_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1whum_1[data-open] {\n visibility: visible;\n}\n\n._columns_1whum_18 {\n display: block;\n column-gap: var(--wb-len-12);\n}\n\n._cell_1whum_23 {\n display: flow-root;\n min-width: 0;\n break-inside: avoid;\n margin-bottom: var(--wb-len-12);\n}\n._root_1cmz0_1 {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}\n\n._rail_1cmz0_7 {\n margin: 0 0 var(--wb-len-4);\n}\n\n._glyphBox_1cmz0_11 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n._glyph_1cmz0_11 {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._glyphActive_1cmz0_30 {\n color: var(--dsw-alias-state-business-primary);\n}\n\n._triggerName_1cmz0_34 {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n._dir_1cmz0_45 {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._name_1cmz0_53 {\n flex: 0 1 auto;\n max-width: 50%;\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._triggerName_1cmz0_34 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._row_1cmz0_66 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n width: 100%;\n min-width: 0;\n}\n\n._trailing_1cmz0_74 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n margin-inline-start: auto;\n}\n\n._trailing_1cmz0_74 ._rowAction_1cmz0_84 {\n width: var(--wb-len-20);\n min-width: var(--wb-len-20);\n height: var(--wb-len-20);\n min-height: var(--wb-len-20);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n}\n\n._row_1cmz0_66 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._current_1cmz0_97 {\n flex: none;\n display: inline-flex;\n align-items: center;\n color: var(--dsw-alias-label-primary);\n}\n._dot_sosf1_1 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n._overlay_sosf1_8 {\n position: absolute;\n inset-block-start: var(--wb-len-neg-3);\n inset-inline-end: var(--wb-len-neg-3);\n}\n._tag_g9dg8_1 {\n flex: none;\n margin-inline-start: auto;\n}\n._dialog_1vye5_1 {\n width: min(var(--wb-len-420), 100%);\n}\n\n._stack_1vye5_5 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._input_1vye5_12 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-12);\n}\n\n._meta_1vye5_18 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n._dot_14w1n_1 {\n display: inline-flex;\n align-items: center;\n}\n\n._hover_14w1n_6 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._blocker_1oaj0_1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-20) var(--wb-len-16);\n text-align: center;\n}\n\n._icon_1oaj0_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_1oaj0_15 {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_1oaj0_23 {\n margin: 0;\n max-width: var(--wb-len-42em);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n text-wrap: pretty;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 {\n align-items: flex-start;\n gap: var(--wb-len-6);\n padding: var(--wb-len-4) 0 var(--wb-len-2);\n text-align: left;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._title_1oaj0_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._hint_1oaj0_23 {\n max-width: 100%;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._actions_1oaj0_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._raw_1oaj0_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_1oaj0_48 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-6);\n}\n\n._raw_1oaj0_52 {\n margin-top: var(--wb-len-10);\n width: 100%;\n max-width: var(--wb-len-360);\n text-align: left;\n}\n\n._notice_1oaj0_71 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--wb-len-10);\n margin: 0 0 var(--wb-len-10);\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-left: 2px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._notice_1oaj0_71._noticeFlat_1oaj0_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_1oaj0_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_1oaj0_98 {\n font-size: var(--wb-font-12-5);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._noticeHint_1oaj0_105 {\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._noticeActions_1oaj0_112 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-neg-2);\n}\n\n._failure_1oaj0_119 {\n margin: var(--wb-len-8) 0 0;\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._failureDetail_1oaj0_127 {\n display: block;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-label-tertiary);\n white-space: pre-wrap;\n}\n\n._inlineAction_1oaj0_134 {\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n._inlineAction_1oaj0_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n\n._rawText_1oaj0_146 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
|
|
15453
15634
|
function workbenchCss() {
|
|
15454
15635
|
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}`;
|
|
15455
15636
|
}
|