@dsh-workbench/core 1.1.7 → 1.1.9
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/bin/dsh-workbench +11 -45
- package/client.js +379 -305
- package/dist/client/client.body.js +379 -305
- package/dist/client/index.js +252 -178
- package/dist/host/index.js +4684 -4129
- package/dist/types/app/layouts/approval-detail.d.ts +5 -5
- package/dist/types/app/layouts/env-gate/gate-text.d.ts +5 -4
- package/dist/types/app/layouts/rightbar/MarketView.d.ts +25 -3
- package/dist/types/app/layouts/rightbar/market-rows.d.ts +0 -1
- package/dist/types/app/layouts/rightbar/market-view-text.d.ts +1 -2
- package/dist/types/app/layouts/sidebar/ProjectSwitcher.d.ts +1 -1
- package/dist/types/app/layouts/sidebar/workspace-groups.d.ts +4 -1
- package/dist/types/kernel/contract/index.d.ts +1 -0
- package/dist/types/modules/panels/model/approval-questions.d.ts +6 -0
- package/dist/types/modules/panels/model/diy-browser-act.d.ts +2 -2
- package/dist/types/modules/panels/model/diy-browser.d.ts +4 -2
- package/dist/types/modules/panels/model/diy-page.d.ts +2 -1
- package/dist/types/modules/panels/model/diy-record.d.ts +2 -1
- package/dist/types/modules/panels/model/diy-tools.d.ts +1 -0
- package/dist/types/modules/panels/model/market-dependency.d.ts +1 -1
- package/dist/types/modules/panels/model/market-env.d.ts +2 -0
- package/dist/types/modules/panels/model/market.d.ts +1 -1
- package/dist/types/modules/panels/model/plugin-ledger.d.ts +3 -0
- package/dist/types/modules/panels/model/plugin-name.d.ts +7 -3
- package/dist/types/modules/sessions/index.d.ts +1 -1
- package/dist/types/modules/sessions/model/attention.d.ts +1 -0
- package/dist/types/shared/api/host/diy-recon-fs.d.ts +1 -1
- package/dist/types/shared/api/host/diy-recon.d.ts +12 -5
- package/dist/types/shared/api/host/flow/task.d.ts +10 -0
- package/dist/types/shared/api/host/flow/tool.d.ts +12 -0
- package/dist/types/shared/api/host/host-routes.d.ts +2 -2
- package/dist/types/shared/api/host/plugin-term.d.ts +2 -0
- package/dist/types/shared/api/host/runtime-surface.d.ts +3 -0
- package/dist/types/shared/hooks/locale-text.d.ts +3 -0
- package/dist/types/shared/hooks/runtime-queries.d.ts +6 -0
- package/dist/types/shared/hooks/runtime-terms.d.ts +2 -0
- package/dist/types/shared/hooks/use-runtime-capabilities.d.ts +6 -0
- package/package.json +6 -3
- package/scripts/seed-workshop.sh +1 -1
- package/skills/workbench-module-diy/DESIGN.md +3 -1
- package/skills/workbench-module-diy/FAMILY.md +1 -0
- package/skills/workbench-module-diy/FLOW.md +117 -0
- package/skills/workbench-module-diy/PANEL.md +9 -7
- package/skills/workbench-module-diy/SKILL.md +8 -1
- package/skills/workbench-module-diy/STEPS.md +12 -1
- package/skills/workbench-module-diy/TOOLS.md +16 -4
- package/skills/workbench-module-diy/WIRING.md +6 -4
- package/skills/workbench-module-diy/WRITES.md +2 -2
- package/bin/opencli-isolated +0 -62
- package/bin/opencli-isolated.mjs +0 -44
- package/bin/opencli-node-mode.cjs +0 -1
- package/dist/types/app/layouts/rightbar/AskAgentButton.d.ts +0 -6
- package/dist/types/app/layouts/rightbar/board-columns.test.d.ts +0 -1
- package/dist/types/app/layouts/rightbar/dsh-borrow.test.d.ts +0 -1
- package/dist/types/app/layouts/rightbar/dsh-column-source.test.d.ts +0 -1
- package/dist/types/app/layouts/rightbar/dsh-surface.test.d.ts +0 -1
- package/dist/types/app/layouts/rightbar/presentation.test.d.ts +0 -1
- package/dist/types/app/layouts/rightbar/rightbar-width.test.d.ts +0 -1
- package/dist/types/app/layouts/rightbar/store.test.d.ts +0 -1
- package/dist/types/kernel/contract/contracts.test.d.ts +0 -1
- package/dist/types/kernel/contract/index.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-browser-act.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-browser-tools-shot.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-browser-tools.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-browser.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-components.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-context.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-debug-routes.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-debug-tools.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-logs.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-observers.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-page.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-bar.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-beat.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-capture.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-close.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-failure.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-hook.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-open.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-routes.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-shot.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record-text.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-record.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-schema.test.d.ts +0 -1
- package/dist/types/modules/panels/model/diy-spec.test.d.ts +0 -1
- package/dist/types/modules/panels/model/handoff.test.d.ts +0 -1
- package/dist/types/modules/panels/model/long-task-tools.test.d.ts +0 -1
- package/dist/types/modules/panels/model/market-install-error.test.d.ts +0 -1
- package/dist/types/modules/panels/model/market-installed.test.d.ts +0 -1
- package/dist/types/modules/panels/model/market-registry.test.d.ts +0 -1
- package/dist/types/modules/panels/model/market-remove.test.d.ts +0 -1
- package/dist/types/modules/panels/model/market-restart.test.d.ts +0 -1
- package/dist/types/modules/panels/model/market-sources-tool.test.d.ts +0 -1
- package/dist/types/modules/panels/model/market-swap-stuck.test.d.ts +0 -1
- package/dist/types/modules/panels/model/plugin-name.test.d.ts +0 -1
- package/dist/types/modules/panels/model/routes.test.d.ts +0 -1
- package/dist/types/modules/sessions/model/attention-long-task.test.d.ts +0 -1
- package/dist/types/modules/sessions/model/attention.test.d.ts +0 -1
- package/dist/types/modules/sessions/model/scroll-edges.test.d.ts +0 -1
- package/dist/types/modules/sessions/model/session-node.test.d.ts +0 -1
- package/dist/types/shared/api/config-sync.test.d.ts +0 -1
- package/dist/types/shared/api/diy.test.d.ts +0 -1
- package/dist/types/shared/api/dsh-plugins.test.d.ts +0 -1
- package/dist/types/shared/api/host/bundle-inspect-kind.test.d.ts +0 -1
- package/dist/types/shared/api/host/bundle-routes-self.test.d.ts +0 -1
- package/dist/types/shared/api/host/bundle-routes.test.d.ts +0 -1
- package/dist/types/shared/api/host/diy-facts.test.d.ts +0 -1
- package/dist/types/shared/api/host/diy-recon-fs.test.d.ts +0 -1
- package/dist/types/shared/api/host/diy-recon.test.d.ts +0 -1
- package/dist/types/shared/api/host/diy.test.d.ts +0 -1
- package/dist/types/shared/api/host/http.test.d.ts +0 -1
- package/dist/types/shared/api/host/png-crop.test.d.ts +0 -1
- package/dist/types/shared/api/host/runtime-seed.test.d.ts +0 -1
- package/dist/types/shared/api/host/self-update-marker.test.d.ts +0 -1
- package/dist/types/shared/api/host/shell.test.d.ts +0 -1
- package/dist/types/shared/api/unit-manifests.test.d.ts +0 -1
- package/dist/types/shared/components/blocker-action.test.d.ts +0 -1
- package/dist/types/shared/hooks/panel-state-report.test.d.ts +0 -1
|
@@ -576,7 +576,7 @@ function blockerOfError(error, t, context = {}) {
|
|
|
576
576
|
id: "cli-exec-failed",
|
|
577
577
|
severity: "block",
|
|
578
578
|
title: error.message,
|
|
579
|
-
hint: error.hint ?? t("blocker.exec.hint"),
|
|
579
|
+
hint: error.hint ?? context.diagnose?.exec ?? t("blocker.exec.hint"),
|
|
580
580
|
...error.detail === void 0 ? {} : { detail: error.detail },
|
|
581
581
|
actions: [retryAction(t)]
|
|
582
582
|
};
|
|
@@ -785,13 +785,13 @@ async function apiPost(route, body) {
|
|
|
785
785
|
//#endregion
|
|
786
786
|
//#region ../shared/dist/lib/react.js
|
|
787
787
|
var react$1 = require("react");
|
|
788
|
-
var h$
|
|
788
|
+
var h$70 = react$1.createElement;
|
|
789
789
|
var Fragment$22 = react$1.Fragment;
|
|
790
790
|
var Component = react$1.Component;
|
|
791
791
|
react$1.createContext;
|
|
792
792
|
react$1.useContext;
|
|
793
793
|
var useState$42 = react$1.useState;
|
|
794
|
-
var useEffect$
|
|
794
|
+
var useEffect$33 = react$1.useEffect;
|
|
795
795
|
react$1.useLayoutEffect;
|
|
796
796
|
var useMemo$10 = react$1.useMemo;
|
|
797
797
|
react$1.useCallback;
|
|
@@ -806,7 +806,7 @@ react$1.useSyncExternalStore;
|
|
|
806
806
|
* @returns 一个 div。
|
|
807
807
|
*/
|
|
808
808
|
function ActivityBlock({ head, children }) {
|
|
809
|
-
return h$
|
|
809
|
+
return h$70("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$70("div", { className: "wb-activityBlockHead" }, head), children);
|
|
810
810
|
}
|
|
811
811
|
/**
|
|
812
812
|
* 一条活动:状态点 + 正文 + 时间,行尾可挂动作;时间一律用它,别自己拼。
|
|
@@ -817,7 +817,7 @@ function ActivityBlock({ head, children }) {
|
|
|
817
817
|
* @returns 一行。
|
|
818
818
|
*/
|
|
819
819
|
function ActivityLine({ dot, text, at, actions }) {
|
|
820
|
-
return h$
|
|
820
|
+
return h$70("div", { className: "wb-activityLine" }, dot, h$70("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h$70("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h$70("span", { className: "wb-activityLineActions" }, actions));
|
|
821
821
|
}
|
|
822
822
|
/**
|
|
823
823
|
* 活动行尾那颗动作:给 `href` 就是外链,否则是图标钮并带上 tooltip。
|
|
@@ -831,7 +831,7 @@ function ActivityLine({ dot, text, at, actions }) {
|
|
|
831
831
|
*/
|
|
832
832
|
function ActivityAction({ label, hint, icon, href, onClick, failed }) {
|
|
833
833
|
const tip = hint ?? label;
|
|
834
|
-
if (href !== void 0) return h$
|
|
834
|
+
if (href !== void 0) return h$70("a", {
|
|
835
835
|
className: "wb-iconButton",
|
|
836
836
|
href,
|
|
837
837
|
target: "_blank",
|
|
@@ -839,13 +839,13 @@ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
|
|
|
839
839
|
title: tip,
|
|
840
840
|
"aria-label": label
|
|
841
841
|
}, icon);
|
|
842
|
-
return h$
|
|
842
|
+
return h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
843
843
|
side: "bottom",
|
|
844
844
|
align: "end",
|
|
845
845
|
gap: 6,
|
|
846
846
|
portal: true,
|
|
847
847
|
label: tip
|
|
848
|
-
}, h$
|
|
848
|
+
}, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
849
849
|
type: "button",
|
|
850
850
|
variant: "ghost",
|
|
851
851
|
size: "sm",
|
|
@@ -867,10 +867,10 @@ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
|
|
|
867
867
|
*/
|
|
868
868
|
function Note({ tone = "muted", as, role, children }) {
|
|
869
869
|
const className = tone === "problem" ? "wb-problem" : "wb-note";
|
|
870
|
-
return as === "span" ? h$
|
|
870
|
+
return as === "span" ? h$70("span", {
|
|
871
871
|
className,
|
|
872
872
|
role
|
|
873
|
-
}, children) : h$
|
|
873
|
+
}, children) : h$70("p", {
|
|
874
874
|
className,
|
|
875
875
|
role
|
|
876
876
|
}, children);
|
|
@@ -914,10 +914,10 @@ var CardBoundary = class extends Component {
|
|
|
914
914
|
render() {
|
|
915
915
|
const { reason } = this.state;
|
|
916
916
|
if (reason === null) return this.props.children;
|
|
917
|
-
return h$
|
|
917
|
+
return h$70(Note, { tone: "problem" }, h$70("span", null, this.props.t("panels.cardBroken", {
|
|
918
918
|
unit: this.props.unit,
|
|
919
919
|
reason
|
|
920
|
-
})), " ", h$
|
|
920
|
+
})), " ", h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
921
921
|
type: "button",
|
|
922
922
|
variant: "outline",
|
|
923
923
|
size: "sm",
|
|
@@ -967,19 +967,19 @@ function ApprovalDetail(props) {
|
|
|
967
967
|
const owner = (props.units ?? []).find((face) => face.approval?.tools.includes(input.tool) === true);
|
|
968
968
|
if (owner?.approval !== void 0) {
|
|
969
969
|
const Render = owner.approval.render;
|
|
970
|
-
return h$
|
|
970
|
+
return h$70(CardBoundary, {
|
|
971
971
|
unit: owner.unit,
|
|
972
972
|
resetKey: props.callId ?? "",
|
|
973
973
|
t
|
|
974
|
-
}, h$
|
|
974
|
+
}, h$70(Render, {
|
|
975
975
|
input,
|
|
976
976
|
t
|
|
977
977
|
}));
|
|
978
978
|
}
|
|
979
979
|
const shell = props.renderShell?.(input, t);
|
|
980
|
-
if (shell !== void 0 && shell !== null) return h$
|
|
980
|
+
if (shell !== void 0 && shell !== null) return h$70(Fragment$22, null, shell);
|
|
981
981
|
if (command === "") return null;
|
|
982
|
-
return h$
|
|
982
|
+
return h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
|
|
983
983
|
code: command,
|
|
984
984
|
className: "wb-approvalCommand",
|
|
985
985
|
copyLabel: t("blocker.copy"),
|
|
@@ -997,10 +997,10 @@ function ApprovalDetail(props) {
|
|
|
997
997
|
* @returns 一个 div。
|
|
998
998
|
*/
|
|
999
999
|
function ApprovalPlan({ rows, hint, warn, children }) {
|
|
1000
|
-
return h$
|
|
1000
|
+
return h$70("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h$70("p", { className: "wb-approvalHint" }, hint), h$70("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h$70("div", {
|
|
1001
1001
|
className: "wb-approvalRow",
|
|
1002
1002
|
key: String(index)
|
|
1003
|
-
}, h$
|
|
1003
|
+
}, h$70("dt", { className: "wb-approvalLabel" }, row.label), h$70("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h$70("p", { className: "wb-approvalWarn" }, warn));
|
|
1004
1004
|
}
|
|
1005
1005
|
//#endregion
|
|
1006
1006
|
//#region ../shared/dist/components/CardHead.js
|
|
@@ -1017,47 +1017,47 @@ function ApprovalPlan({ rows, hint, warn, children }) {
|
|
|
1017
1017
|
function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle }) {
|
|
1018
1018
|
const refreshLabel = refreshing ? t("rightbar.refreshing") : t("rightbar.refresh");
|
|
1019
1019
|
const platformLabel = platformTitle ?? platform ?? t("rightbar.openPlatform");
|
|
1020
|
-
return h$
|
|
1020
|
+
return h$70("header", { className: "wb-cardHead" }, h$70("h2", { className: "wb-cardTitle" }, title), meta === void 0 ? null : h$70("span", { className: "wb-cardMeta" }, meta), platformHref === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
1021
1021
|
side: "bottom",
|
|
1022
1022
|
align: "end",
|
|
1023
1023
|
gap: 6,
|
|
1024
1024
|
portal: true,
|
|
1025
1025
|
label: platformLabel
|
|
1026
|
-
}, h$
|
|
1026
|
+
}, h$70("a", {
|
|
1027
1027
|
className: "wb-iconButton wb-cardOpen",
|
|
1028
1028
|
href: platformHref,
|
|
1029
1029
|
target: "_blank",
|
|
1030
1030
|
rel: "noreferrer noopener",
|
|
1031
1031
|
"aria-label": platform ?? platformLabel
|
|
1032
|
-
}, h$
|
|
1032
|
+
}, h$70(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
1033
1033
|
side: "bottom",
|
|
1034
1034
|
align: "end",
|
|
1035
1035
|
gap: 6,
|
|
1036
1036
|
portal: true,
|
|
1037
1037
|
label: refreshLabel
|
|
1038
|
-
}, h$
|
|
1038
|
+
}, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1039
1039
|
type: "button",
|
|
1040
1040
|
size: "sm",
|
|
1041
1041
|
variant: "ghost",
|
|
1042
1042
|
className: `wb-cardRefresh${refreshing ? " wb-spinning" : ""}`,
|
|
1043
1043
|
"aria-label": refreshLabel,
|
|
1044
1044
|
disabled: refreshing,
|
|
1045
|
-
icon: h$
|
|
1045
|
+
icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
|
|
1046
1046
|
onClick: onRefresh
|
|
1047
|
-
})), gear === void 0 || onToggleGear === void 0 ? null : h$
|
|
1047
|
+
})), gear === void 0 || onToggleGear === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
1048
1048
|
side: "bottom",
|
|
1049
1049
|
align: "end",
|
|
1050
1050
|
gap: 6,
|
|
1051
1051
|
portal: true,
|
|
1052
1052
|
label: gear
|
|
1053
|
-
}, h$
|
|
1053
|
+
}, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1054
1054
|
type: "button",
|
|
1055
1055
|
size: "sm",
|
|
1056
1056
|
variant: "ghost",
|
|
1057
1057
|
className: `wb-cardGear${gearOpen === true ? " wb-iconButtonActive" : ""}`,
|
|
1058
1058
|
"aria-label": gear,
|
|
1059
1059
|
"aria-expanded": gearOpen === true,
|
|
1060
|
-
icon: h$
|
|
1060
|
+
icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
|
|
1061
1061
|
onClick: onToggleGear
|
|
1062
1062
|
})));
|
|
1063
1063
|
}
|
|
@@ -1074,13 +1074,13 @@ function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onTog
|
|
|
1074
1074
|
* @returns 一个 `<section>`。
|
|
1075
1075
|
*/
|
|
1076
1076
|
function Card({ t, title, refreshing, onRefresh, meta, head, children }) {
|
|
1077
|
-
return h$
|
|
1077
|
+
return h$70("section", { className: "wb-card" }, head === void 0 ? h$70(CardHead, {
|
|
1078
1078
|
t,
|
|
1079
1079
|
title,
|
|
1080
1080
|
refreshing,
|
|
1081
1081
|
onRefresh,
|
|
1082
1082
|
meta
|
|
1083
|
-
}) : head, h$
|
|
1083
|
+
}) : head, h$70("div", { className: "wb-cardBody" }, children));
|
|
1084
1084
|
}
|
|
1085
1085
|
var CardAnchor_module_default = { anchor: "_anchor_yq4s2_1" };
|
|
1086
1086
|
//#endregion
|
|
@@ -1100,7 +1100,7 @@ function cardIdOf(unit) {
|
|
|
1100
1100
|
* @returns 带 id 的占位 div。
|
|
1101
1101
|
*/
|
|
1102
1102
|
function CardAnchor({ unit, children }) {
|
|
1103
|
-
return h$
|
|
1103
|
+
return h$70("div", {
|
|
1104
1104
|
id: cardIdOf(unit),
|
|
1105
1105
|
className: CardAnchor_module_default.anchor
|
|
1106
1106
|
}, children);
|
|
@@ -1114,13 +1114,13 @@ function CardAnchor({ unit, children }) {
|
|
|
1114
1114
|
* @returns 一枚 `StateDot state="ongoing"`,自身不带文字。
|
|
1115
1115
|
*/
|
|
1116
1116
|
function Spinner({ size = 14, label }) {
|
|
1117
|
-
return h$
|
|
1117
|
+
return h$70("span", {
|
|
1118
1118
|
className: "wb-spinner",
|
|
1119
1119
|
...label === void 0 ? { "aria-hidden": true } : {
|
|
1120
1120
|
role: "status",
|
|
1121
1121
|
"aria-label": label
|
|
1122
1122
|
}
|
|
1123
|
-
}, h$
|
|
1123
|
+
}, h$70(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
|
|
1124
1124
|
state: "ongoing",
|
|
1125
1125
|
size
|
|
1126
1126
|
}));
|
|
@@ -1128,24 +1128,24 @@ function Spinner({ size = 14, label }) {
|
|
|
1128
1128
|
//#endregion
|
|
1129
1129
|
//#region ../shared/dist/components/ChoiceGroup.js
|
|
1130
1130
|
function ChoiceMenu(input) {
|
|
1131
|
-
const body = input.loading ? h$
|
|
1131
|
+
const body = input.loading ? h$70("span", {
|
|
1132
1132
|
className: "wb-choiceLoading",
|
|
1133
1133
|
role: "status"
|
|
1134
|
-
}, h$
|
|
1134
|
+
}, h$70(Spinner, { size: 14 }), h$70("span", { className: "wb-choiceLoadingText" }, input.loadingText ?? "…")) : input.options.length === 0 ? input.emptyText === void 0 ? null : h$70("span", { className: "wb-choiceEmpty" }, input.emptyText) : input.options.map((option) => {
|
|
1135
1135
|
const row = input.rowOf(option.value);
|
|
1136
|
-
return h$
|
|
1136
|
+
return h$70(Fragment$22, { key: option.value }, h$70("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$70("input", {
|
|
1137
1137
|
className: input.multi ? "wb-checkbox" : "wb-radio",
|
|
1138
1138
|
type: input.multi ? "checkbox" : "radio",
|
|
1139
1139
|
name: input.name,
|
|
1140
1140
|
checked: row.checked,
|
|
1141
1141
|
disabled: input.disabled,
|
|
1142
1142
|
onChange: row.onSelect
|
|
1143
|
-
}), input.multi ? h$
|
|
1143
|
+
}), input.multi ? h$70("span", {
|
|
1144
1144
|
className: "wb-checkboxBox",
|
|
1145
1145
|
"aria-hidden": "true"
|
|
1146
|
-
}, row.checked ? h$
|
|
1146
|
+
}, row.checked ? h$70(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 }) : null) : null, h$70("span", { className: "wb-choiceLabel" }, h$70("span", { className: "wb-choiceLabelText" }, option.label), option.description === void 0 ? null : h$70("span", { className: "wb-choiceDescription" }, option.description))));
|
|
1147
1147
|
});
|
|
1148
|
-
return h$
|
|
1148
|
+
return h$70("div", {
|
|
1149
1149
|
className: "wb-choiceMenu",
|
|
1150
1150
|
"data-variant": input.variant,
|
|
1151
1151
|
role: input.multi ? "group" : "radiogroup",
|
|
@@ -1179,7 +1179,7 @@ function ChoiceGroup(props) {
|
|
|
1179
1179
|
if (props.multi === true) {
|
|
1180
1180
|
const values = props.values;
|
|
1181
1181
|
const onChange = props.onChange;
|
|
1182
|
-
return h$
|
|
1182
|
+
return h$70(ChoiceMenu, {
|
|
1183
1183
|
label: common.label,
|
|
1184
1184
|
name: common.name,
|
|
1185
1185
|
options: common.options,
|
|
@@ -1199,7 +1199,7 @@ function ChoiceGroup(props) {
|
|
|
1199
1199
|
}
|
|
1200
1200
|
const value = props.value;
|
|
1201
1201
|
const onChange = props.onChange;
|
|
1202
|
-
return h$
|
|
1202
|
+
return h$70(ChoiceMenu, {
|
|
1203
1203
|
label: common.label,
|
|
1204
1204
|
name: common.name,
|
|
1205
1205
|
options: common.options,
|
|
@@ -1252,17 +1252,17 @@ function variantOf(kind) {
|
|
|
1252
1252
|
function FormActions({ actions }) {
|
|
1253
1253
|
if (actions.length === 0) return null;
|
|
1254
1254
|
reportExtraPrimaries(actions);
|
|
1255
|
-
return h$
|
|
1255
|
+
return h$70("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
|
|
1256
1256
|
const kind = kindOf(action);
|
|
1257
1257
|
const busy = action.busy === true;
|
|
1258
|
-
return h$
|
|
1258
|
+
return h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
1259
1259
|
key: action.key,
|
|
1260
1260
|
type: "button",
|
|
1261
1261
|
size: "sm",
|
|
1262
1262
|
variant: variantOf(kind),
|
|
1263
1263
|
className: kind === "danger" ? "wb-formActionDanger" : void 0,
|
|
1264
1264
|
disabled: busy || action.disabled === true,
|
|
1265
|
-
icon: busy ? h$
|
|
1265
|
+
icon: busy ? h$70(Spinner, { size: 12 }) : void 0,
|
|
1266
1266
|
onClick: action.onClick
|
|
1267
1267
|
}, action.label);
|
|
1268
1268
|
}));
|
|
@@ -1275,7 +1275,7 @@ function FormActions({ actions }) {
|
|
|
1275
1275
|
* @returns 竖排的 div。
|
|
1276
1276
|
*/
|
|
1277
1277
|
function Rows({ children }) {
|
|
1278
|
-
return h$
|
|
1278
|
+
return h$70("div", { className: "wb-rows" }, children);
|
|
1279
1279
|
}
|
|
1280
1280
|
/**
|
|
1281
1281
|
* 一行键值:左边名字、右边值;要成对说明一项数据就用它,别自己写两栏。
|
|
@@ -1284,7 +1284,7 @@ function Rows({ children }) {
|
|
|
1284
1284
|
* @returns 一行两格。
|
|
1285
1285
|
*/
|
|
1286
1286
|
function Row({ label, value }) {
|
|
1287
|
-
return h$
|
|
1287
|
+
return h$70("div", { className: "wb-row" }, h$70("span", { className: "wb-rowKey" }, label), h$70("span", { className: "wb-rowValue" }, value));
|
|
1288
1288
|
}
|
|
1289
1289
|
//#endregion
|
|
1290
1290
|
//#region ../shared/dist/components/ConfirmBar.js
|
|
@@ -1301,19 +1301,19 @@ function Row({ label, value }) {
|
|
|
1301
1301
|
* @returns 一个 `role="group"` 的条;`actions` 空数组时最后那一块不渲染。
|
|
1302
1302
|
*/
|
|
1303
1303
|
function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
|
|
1304
|
-
return h$
|
|
1304
|
+
return h$70("div", {
|
|
1305
1305
|
className: "wb-confirmBar",
|
|
1306
1306
|
role: "group",
|
|
1307
1307
|
"aria-label": label ?? (typeof title === "string" ? title : void 0),
|
|
1308
1308
|
"aria-busy": busy
|
|
1309
|
-
}, h$
|
|
1309
|
+
}, h$70("p", { className: "wb-confirmBarTitle" }, title), hint === void 0 ? null : h$70("p", { className: "wb-confirmBarHint" }, hint), rows === void 0 || rows.length === 0 ? null : h$70(Rows, null, rows.map((row) => h$70(Row, {
|
|
1310
1310
|
key: row.key,
|
|
1311
1311
|
label: row.label,
|
|
1312
1312
|
value: row.value
|
|
1313
|
-
}))), problem === void 0 ? null : h$
|
|
1313
|
+
}))), problem === void 0 ? null : h$70(Note, {
|
|
1314
1314
|
tone: "problem",
|
|
1315
1315
|
role: "alert"
|
|
1316
|
-
}, problem), h$
|
|
1316
|
+
}, problem), h$70(FormActions, { actions }));
|
|
1317
1317
|
}
|
|
1318
1318
|
//#endregion
|
|
1319
1319
|
//#region ../shared/dist/components/Field.js
|
|
@@ -1325,7 +1325,7 @@ function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
|
|
|
1325
1325
|
* @returns 一个 `<label>`,点标签会聚焦里面的控件。
|
|
1326
1326
|
*/
|
|
1327
1327
|
function Field({ label, hint, children }) {
|
|
1328
|
-
return h$
|
|
1328
|
+
return h$70("label", { className: "wb-field" }, h$70("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$70("span", { className: "wb-fieldHint" }, hint));
|
|
1329
1329
|
}
|
|
1330
1330
|
//#endregion
|
|
1331
1331
|
//#region ../shared/dist/components/FormRows.js
|
|
@@ -1335,7 +1335,7 @@ function Field({ label, hint, children }) {
|
|
|
1335
1335
|
* @returns 竖排的 div。
|
|
1336
1336
|
*/
|
|
1337
1337
|
function FormRows({ children }) {
|
|
1338
|
-
return h$
|
|
1338
|
+
return h$70("div", { className: "wb-formRows" }, children);
|
|
1339
1339
|
}
|
|
1340
1340
|
/**
|
|
1341
1341
|
* 表单一行:左边标签、右边控件,提示与错误占控件下面那一格。
|
|
@@ -1348,14 +1348,14 @@ function FormRows({ children }) {
|
|
|
1348
1348
|
* @returns 一个 `<div>`:里面的 `<label>` 只包标签文字,不包控件、提示与整行的空白。
|
|
1349
1349
|
*/
|
|
1350
1350
|
function FormRow({ label, htmlFor, hint, problem, layout = "inline", children }) {
|
|
1351
|
-
return h$
|
|
1351
|
+
return h$70("div", {
|
|
1352
1352
|
className: "wb-formRow",
|
|
1353
1353
|
"data-layout": layout,
|
|
1354
1354
|
"data-wb-problem": problem === void 0 ? void 0 : ""
|
|
1355
|
-
}, h$
|
|
1355
|
+
}, h$70("label", {
|
|
1356
1356
|
className: "wb-formLabel",
|
|
1357
1357
|
htmlFor
|
|
1358
|
-
}, label), h$
|
|
1358
|
+
}, label), h$70("span", { className: "wb-formControl" }, children), problem === void 0 ? hint === void 0 ? null : h$70("span", { className: "wb-formHint" }, hint) : h$70("span", { className: "wb-formProblem" }, problem));
|
|
1359
1359
|
}
|
|
1360
1360
|
//#endregion
|
|
1361
1361
|
//#region ../shared/dist/components/FormNodes.js
|
|
@@ -1502,7 +1502,7 @@ function formActionsOf(args) {
|
|
|
1502
1502
|
* @returns `FormRow` 组成的数组;没有可画的格子时给空数组。
|
|
1503
1503
|
*/
|
|
1504
1504
|
function formRowsOf(args) {
|
|
1505
|
-
return args.fields.map((field) => h$
|
|
1505
|
+
return args.fields.map((field) => h$70(FormRow, {
|
|
1506
1506
|
key: field.key,
|
|
1507
1507
|
label: field.label,
|
|
1508
1508
|
htmlFor: controlIdOf(field.key),
|
|
@@ -1584,7 +1584,7 @@ function Form(props) {
|
|
|
1584
1584
|
const shown = visibleFieldsOf(fields);
|
|
1585
1585
|
const problems = formProblemsOf(shown, done);
|
|
1586
1586
|
reportDuplicateKeys(shown);
|
|
1587
|
-
useEffect$
|
|
1587
|
+
useEffect$33(() => {
|
|
1588
1588
|
if (reveal === 0) return;
|
|
1589
1589
|
const root = rootRef.current;
|
|
1590
1590
|
if (root !== null) revealFirstProblem(root);
|
|
@@ -1599,7 +1599,7 @@ function Form(props) {
|
|
|
1599
1599
|
}
|
|
1600
1600
|
onSubmit(outcome.values);
|
|
1601
1601
|
};
|
|
1602
|
-
return h$
|
|
1602
|
+
return h$70("form", {
|
|
1603
1603
|
className: "wb-form",
|
|
1604
1604
|
ref: rootRef,
|
|
1605
1605
|
noValidate: true,
|
|
@@ -1607,15 +1607,15 @@ function Form(props) {
|
|
|
1607
1607
|
event.preventDefault();
|
|
1608
1608
|
submitForm();
|
|
1609
1609
|
}
|
|
1610
|
-
}, h$
|
|
1610
|
+
}, h$70(FormRows, null, formRowsOf({
|
|
1611
1611
|
fields: shown,
|
|
1612
1612
|
problems,
|
|
1613
1613
|
showProblem: done,
|
|
1614
1614
|
busy
|
|
1615
|
-
})), problem === void 0 ? null : h$
|
|
1615
|
+
})), problem === void 0 ? null : h$70(Note, {
|
|
1616
1616
|
tone: "problem",
|
|
1617
1617
|
role: "alert"
|
|
1618
|
-
}, problem), h$
|
|
1618
|
+
}, problem), h$70(FormActions, { actions: formActionsOf({
|
|
1619
1619
|
extra,
|
|
1620
1620
|
cancel,
|
|
1621
1621
|
submit,
|
|
@@ -1636,7 +1636,7 @@ function Form(props) {
|
|
|
1636
1636
|
* @returns 一个 `<a>`。
|
|
1637
1637
|
*/
|
|
1638
1638
|
function Link({ href, children, title, external = true, className }) {
|
|
1639
|
-
return h$
|
|
1639
|
+
return h$70("a", {
|
|
1640
1640
|
className: className === void 0 ? "wb-link" : `wb-link ${className}`,
|
|
1641
1641
|
href,
|
|
1642
1642
|
...title === void 0 ? {} : { title },
|
|
@@ -1644,7 +1644,7 @@ function Link({ href, children, title, external = true, className }) {
|
|
|
1644
1644
|
target: "_blank",
|
|
1645
1645
|
rel: "noopener noreferrer"
|
|
1646
1646
|
} : {}
|
|
1647
|
-
}, children, external ? h$
|
|
1647
|
+
}, children, external ? h$70(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
|
|
1648
1648
|
}
|
|
1649
1649
|
//#endregion
|
|
1650
1650
|
//#region ../shared/dist/contract/long-task.js
|
|
@@ -1736,7 +1736,7 @@ var LONG_TASK_STOP_ARM_MS = 3e3;
|
|
|
1736
1736
|
//#endregion
|
|
1737
1737
|
//#region ../shared/dist/components/LongTaskRow.js
|
|
1738
1738
|
function RowLink({ href, text }) {
|
|
1739
|
-
return h$
|
|
1739
|
+
return h$70(Link, {
|
|
1740
1740
|
href,
|
|
1741
1741
|
className: "wb-longTaskLink"
|
|
1742
1742
|
}, text);
|
|
@@ -1766,7 +1766,7 @@ function LongTaskRow(props) {
|
|
|
1766
1766
|
const stop = props.stop;
|
|
1767
1767
|
const busy = stop?.busy === true;
|
|
1768
1768
|
const stopWhy = stop?.failed ?? "";
|
|
1769
|
-
useEffect$
|
|
1769
|
+
useEffect$33(() => {
|
|
1770
1770
|
if (!armed) return void 0;
|
|
1771
1771
|
const timer = setTimeout(() => setArmed(false), LONG_TASK_STOP_ARM_MS);
|
|
1772
1772
|
return () => clearTimeout(timer);
|
|
@@ -1785,14 +1785,14 @@ function LongTaskRow(props) {
|
|
|
1785
1785
|
setArmed(false);
|
|
1786
1786
|
stop.onStop();
|
|
1787
1787
|
};
|
|
1788
|
-
return h$
|
|
1788
|
+
return h$70("div", { className: "wb-longTask" }, h$70("p", { className: "wb-longTaskHead" }, h$70(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
|
|
1789
1789
|
state: longTaskDot(props.status),
|
|
1790
1790
|
size: 10
|
|
1791
|
-
}), h$
|
|
1791
|
+
}), h$70("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$70(RowLink, {
|
|
1792
1792
|
href: link.href,
|
|
1793
1793
|
key: `${link.text}@${link.href}`,
|
|
1794
1794
|
text: link.text
|
|
1795
|
-
})), stop === void 0 ? null : h$
|
|
1795
|
+
})), stop === void 0 ? null : h$70("button", {
|
|
1796
1796
|
type: "button",
|
|
1797
1797
|
className: `wb-longTaskStop${armed ? " wb-longTaskStopArmed" : ""}`,
|
|
1798
1798
|
"data-stop-state": longTaskStopStage({
|
|
@@ -1803,31 +1803,31 @@ function LongTaskRow(props) {
|
|
|
1803
1803
|
disabled: busy,
|
|
1804
1804
|
onClick: onStopPress,
|
|
1805
1805
|
onBlur: () => setArmed(false)
|
|
1806
|
-
}, h$
|
|
1806
|
+
}, h$70(_deepseek_ai_dsh_client_ui_primitives.IconStopFillRegular, { size: 12 }), armed ? h$70("span", { className: "wb-longTaskStopLabel" }, stop.askLabel) : null)), problem === "" ? null : h$70("p", { className: "wb-longTaskProblem" }, problem), stopWhy === "" ? null : h$70("p", { className: "wb-longTaskStopWhy" }, stopWhy), !failed ? null : h$70(Fragment$22, null, steps.length === 0 || props.stepsTitle === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
|
|
1807
1807
|
className: "wb-longTaskDump",
|
|
1808
|
-
icon: h$
|
|
1808
|
+
icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
|
|
1809
1809
|
title: props.stepsTitle,
|
|
1810
1810
|
open: stepsOpen,
|
|
1811
1811
|
expandable: true,
|
|
1812
1812
|
expandOnRowClick: true,
|
|
1813
1813
|
previewChevron: true,
|
|
1814
1814
|
onToggle: () => setStepsOpen(!stepsOpen)
|
|
1815
|
-
}, h$
|
|
1815
|
+
}, h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
|
|
1816
1816
|
code: steps.join("\n"),
|
|
1817
1817
|
className: "wb-longTaskDump",
|
|
1818
1818
|
showHeader: props.copyLabel !== void 0,
|
|
1819
1819
|
copyLabel: props.copyLabel ?? "",
|
|
1820
1820
|
copiedLabel: props.copiedLabel ?? ""
|
|
1821
|
-
})), raw === "" || props.rawTitle === void 0 ? null : h$
|
|
1821
|
+
})), raw === "" || props.rawTitle === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
|
|
1822
1822
|
className: "wb-longTaskDump",
|
|
1823
|
-
icon: h$
|
|
1823
|
+
icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
|
|
1824
1824
|
title: props.rawTitle,
|
|
1825
1825
|
open: rawOpen,
|
|
1826
1826
|
expandable: true,
|
|
1827
1827
|
expandOnRowClick: true,
|
|
1828
1828
|
previewChevron: true,
|
|
1829
1829
|
onToggle: () => setRawOpen(!rawOpen)
|
|
1830
|
-
}, h$
|
|
1830
|
+
}, h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
|
|
1831
1831
|
code: raw,
|
|
1832
1832
|
className: "wb-longTaskDump",
|
|
1833
1833
|
showHeader: props.copyLabel !== void 0,
|
|
@@ -1843,13 +1843,13 @@ function LongTaskRow(props) {
|
|
|
1843
1843
|
* @returns 一叠占位条。
|
|
1844
1844
|
*/
|
|
1845
1845
|
function SkeletonRows({ rows = 4 }) {
|
|
1846
|
-
return h$
|
|
1846
|
+
return h$70("div", {
|
|
1847
1847
|
className: "wb-skeleton",
|
|
1848
1848
|
"aria-hidden": "true"
|
|
1849
|
-
}, Array.from({ length: rows }, (_, index) => h$
|
|
1849
|
+
}, Array.from({ length: rows }, (_, index) => h$70("span", {
|
|
1850
1850
|
key: index,
|
|
1851
1851
|
className: "wb-skeletonRow"
|
|
1852
|
-
}, h$
|
|
1852
|
+
}, h$70("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$70("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
|
|
1853
1853
|
}
|
|
1854
1854
|
/**
|
|
1855
1855
|
* 居中一屏:要他先选一个 / 正在读 / 读不到时用它占住卡片版面。
|
|
@@ -1862,13 +1862,13 @@ function SkeletonRows({ rows = 4 }) {
|
|
|
1862
1862
|
* @returns 一个 `role="status"` 的居中块。
|
|
1863
1863
|
*/
|
|
1864
1864
|
function CenteredState({ icon, title, hint, detail, action, compact = false }) {
|
|
1865
|
-
return h$
|
|
1865
|
+
return h$70("div", {
|
|
1866
1866
|
className: compact ? "wb-centered wb-centeredCompact" : "wb-centered",
|
|
1867
1867
|
role: "status"
|
|
1868
|
-
}, icon === null ? null : h$
|
|
1868
|
+
}, icon === null ? null : h$70("span", {
|
|
1869
1869
|
className: "wb-centeredHero",
|
|
1870
1870
|
"aria-hidden": "true"
|
|
1871
|
-
}, icon), h$
|
|
1871
|
+
}, icon), h$70("div", { className: "wb-centeredTitle" }, title), hint === void 0 ? null : h$70("div", { className: "wb-centeredHint" }, hint), detail === void 0 ? null : h$70("div", { className: "wb-centeredDetail" }, detail), action === void 0 ? null : h$70("div", { className: "wb-centeredAction" }, action));
|
|
1872
1872
|
}
|
|
1873
1873
|
/**
|
|
1874
1874
|
* 就绪但空:它只是 `CenteredState` 的简写,标题就是那句空态文案。
|
|
@@ -1878,7 +1878,7 @@ function CenteredState({ icon, title, hint, detail, action, compact = false }) {
|
|
|
1878
1878
|
* @returns 一个居中块。
|
|
1879
1879
|
*/
|
|
1880
1880
|
function EmptyState({ text, icon = null, compact = false }) {
|
|
1881
|
-
return h$
|
|
1881
|
+
return h$70(CenteredState, {
|
|
1882
1882
|
icon,
|
|
1883
1883
|
title: text,
|
|
1884
1884
|
compact
|
|
@@ -1896,7 +1896,7 @@ function EmptyState({ text, icon = null, compact = false }) {
|
|
|
1896
1896
|
* @returns 一组按钮。
|
|
1897
1897
|
*/
|
|
1898
1898
|
function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
|
|
1899
|
-
return h$
|
|
1899
|
+
return h$70(FormActions, { actions: [{
|
|
1900
1900
|
key: "cancel",
|
|
1901
1901
|
label: labels.cancel,
|
|
1902
1902
|
kind: "default",
|
|
@@ -1926,11 +1926,13 @@ function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
|
|
|
1926
1926
|
* @param args.value - 已渲染好的当前值节点(文本或占位)。
|
|
1927
1927
|
* @param args.iconOnly - 只画图标(窄栏那颗切换钮),值与箭头都不画。
|
|
1928
1928
|
* @param args.onOpen - 点它做什么,通常是把列表打开。
|
|
1929
|
+
* @param args.ref - 挂到这颗 `<button>` 上,取消后回焦点、菜单开着头条滚轮要用它。
|
|
1929
1930
|
* @returns 一颗 `<button>`。
|
|
1930
1931
|
*/
|
|
1931
1932
|
function selectTriggerNode(args) {
|
|
1932
|
-
return h$
|
|
1933
|
+
return h$70("button", {
|
|
1933
1934
|
type: "button",
|
|
1935
|
+
ref: args.ref,
|
|
1934
1936
|
id: args.id,
|
|
1935
1937
|
className: args.className,
|
|
1936
1938
|
disabled: args.disabled,
|
|
@@ -1940,7 +1942,7 @@ function selectTriggerNode(args) {
|
|
|
1940
1942
|
"aria-label": args.ariaLabel,
|
|
1941
1943
|
title: args.title,
|
|
1942
1944
|
onClick: args.onOpen
|
|
1943
|
-
}, args.iconOnly ? h$
|
|
1945
|
+
}, args.iconOnly ? h$70("span", { className: "wb-selectIcon" }, args.icon) : h$70(Fragment$22, null, args.icon === void 0 ? null : h$70("span", { className: "wb-selectIcon" }, args.icon), h$70("span", { className: "wb-selectValue" }, args.value), h$70("span", { className: "wb-selectChevron" }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 14 }))));
|
|
1944
1946
|
}
|
|
1945
1947
|
/**
|
|
1946
1948
|
* 名单还没读到时的触发器:禁用 + `aria-busy` 的按钮,`SelectField` 在 `loading` 那档画它。
|
|
@@ -1952,7 +1954,7 @@ function selectTriggerNode(args) {
|
|
|
1952
1954
|
* @returns 一颗禁用且 `aria-busy` 的按钮。
|
|
1953
1955
|
*/
|
|
1954
1956
|
function selectLoadingNode(args) {
|
|
1955
|
-
return h$
|
|
1957
|
+
return h$70("button", {
|
|
1956
1958
|
type: "button",
|
|
1957
1959
|
id: args.id,
|
|
1958
1960
|
className: `${args.className} wb-selectLoading`,
|
|
@@ -1961,7 +1963,7 @@ function selectLoadingNode(args) {
|
|
|
1961
1963
|
"aria-invalid": args.invalid || void 0,
|
|
1962
1964
|
"aria-label": args.ariaLabel,
|
|
1963
1965
|
title: args.loadingText
|
|
1964
|
-
}, h$
|
|
1966
|
+
}, h$70("span", { className: "wb-selectValue" }, h$70(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { active: true }, args.loadingText ?? "…")), h$70("span", { className: "wb-selectChevron" }, h$70(Spinner, { size: 14 })));
|
|
1965
1967
|
}
|
|
1966
1968
|
//#endregion
|
|
1967
1969
|
//#region ../shared/dist/components/TextField.js
|
|
@@ -1971,7 +1973,7 @@ function selectLoadingNode(args) {
|
|
|
1971
1973
|
* @returns 输入框元素;`className` 是追加在基础类名之后,而不是替换它。
|
|
1972
1974
|
*/
|
|
1973
1975
|
function TextField({ invalid = false, className, ...rest }) {
|
|
1974
|
-
return h$
|
|
1976
|
+
return h$70("input", {
|
|
1975
1977
|
...rest,
|
|
1976
1978
|
className: className === void 0 ? "wb-textField" : `wb-textField ${className}`,
|
|
1977
1979
|
"aria-invalid": invalid || void 0
|
|
@@ -1987,43 +1989,23 @@ function mergeClass(...parts) {
|
|
|
1987
1989
|
function triggerClassOf(variantClass, iconOnly) {
|
|
1988
1990
|
return mergeClass("wb-selectTrigger", variantClass, iconOnly ? "wb-selectIconOnly" : void 0);
|
|
1989
1991
|
}
|
|
1990
|
-
function itemOf(option
|
|
1991
|
-
|
|
1992
|
+
function itemOf(option) {
|
|
1993
|
+
return {
|
|
1992
1994
|
id: option.value,
|
|
1993
1995
|
label: option.label,
|
|
1994
1996
|
...option.icon === void 0 ? {} : { icon: option.icon },
|
|
1995
1997
|
...option.disabled === true ? { disabled: true } : {}
|
|
1996
1998
|
};
|
|
1997
|
-
const revealed = (node) => h$71("span", {
|
|
1998
|
-
className: "wb-selectReveal",
|
|
1999
|
-
"data-wb-select-reveal": ""
|
|
2000
|
-
}, node);
|
|
2001
|
-
return {
|
|
2002
|
-
id: option.value,
|
|
2003
|
-
label: option.icon === void 0 ? revealed(option.label) : option.label,
|
|
2004
|
-
...option.icon === void 0 ? {} : { icon: revealed(option.icon) },
|
|
2005
|
-
...option.disabled === true ? { disabled: true } : {}
|
|
2006
|
-
};
|
|
2007
|
-
}
|
|
2008
|
-
function revealNode() {
|
|
2009
|
-
const found = document.querySelector("[data-wb-select-reveal]");
|
|
2010
|
-
return found instanceof HTMLElement ? found : null;
|
|
2011
|
-
}
|
|
2012
|
-
function useRevealOnOpen(open, revealId) {
|
|
2013
|
-
useEffect$32(() => {
|
|
2014
|
-
if (!open || revealId === void 0) return;
|
|
2015
|
-
revealNode()?.scrollIntoView({ block: "nearest" });
|
|
2016
|
-
}, [open, revealId]);
|
|
2017
1999
|
}
|
|
2018
2000
|
function selectValueNode(current, renderValue, placeholder) {
|
|
2019
|
-
if (current === void 0) return h$
|
|
2001
|
+
if (current === void 0) return h$70("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
|
|
2020
2002
|
return renderValue === void 0 ? current.label : renderValue(current);
|
|
2021
2003
|
}
|
|
2022
2004
|
function searchNode(args) {
|
|
2023
|
-
return h$
|
|
2005
|
+
return h$70("span", {
|
|
2024
2006
|
ref: args.boxRef,
|
|
2025
2007
|
className: args.className
|
|
2026
|
-
}, h$
|
|
2008
|
+
}, h$70("span", { className: "wb-selectSearchIcon" }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$70(TextField, {
|
|
2027
2009
|
id: args.id,
|
|
2028
2010
|
name: args.name,
|
|
2029
2011
|
className: "wb-selectSearchInput",
|
|
@@ -2038,7 +2020,7 @@ function searchNode(args) {
|
|
|
2038
2020
|
}));
|
|
2039
2021
|
}
|
|
2040
2022
|
function menuNode(args) {
|
|
2041
|
-
return h$
|
|
2023
|
+
return h$70(_deepseek_ai_dsh_client_ui_primitives.Menu, {
|
|
2042
2024
|
open: args.open,
|
|
2043
2025
|
portal: true,
|
|
2044
2026
|
className: "wb-selectAnchor",
|
|
@@ -2055,11 +2037,11 @@ function menuNode(args) {
|
|
|
2055
2037
|
});
|
|
2056
2038
|
}
|
|
2057
2039
|
function framed(label, hint, className, control) {
|
|
2058
|
-
const inner = label === void 0 ? hint === void 0 ? control : h$
|
|
2040
|
+
const inner = label === void 0 ? hint === void 0 ? control : h$70("span", { className: "wb-select" }, control, h$70("span", { className: "wb-selectHint" }, hint)) : h$70(Field, {
|
|
2059
2041
|
label,
|
|
2060
2042
|
hint
|
|
2061
2043
|
}, control);
|
|
2062
|
-
return className === void 0 ? inner : h$
|
|
2044
|
+
return className === void 0 ? inner : h$70("div", { className }, inner);
|
|
2063
2045
|
}
|
|
2064
2046
|
/** 算候选项用来匹配搜索的文本:有 `searchText` 就用它,否则取字符串标签;标签不是字符串又没给它是空串(这项搜不到)。 */
|
|
2065
2047
|
function searchTextOf(option) {
|
|
@@ -2087,8 +2069,8 @@ function stepSelectCursor(shown, cursor, step) {
|
|
|
2087
2069
|
if (cursor === null) return step === 1 ? 0 : shown.length - 1;
|
|
2088
2070
|
return (cursor + step + shown.length) % shown.length;
|
|
2089
2071
|
}
|
|
2090
|
-
/** 把候选排成 `Menu` 要的条目表:按 `group` 插分组标题;一项都没有时退回 `emptyText`
|
|
2091
|
-
function selectEntries(shown, emptyText
|
|
2072
|
+
/** 把候选排成 `Menu` 要的条目表:按 `group` 插分组标题;一项都没有时退回 `emptyText` 那一行(不给就是空表)。 */
|
|
2073
|
+
function selectEntries(shown, emptyText) {
|
|
2092
2074
|
if (shown.length === 0) return emptyText === void 0 ? [] : [{
|
|
2093
2075
|
type: "label",
|
|
2094
2076
|
id: EMPTY_ID,
|
|
@@ -2105,7 +2087,7 @@ function selectEntries(shown, emptyText, revealId) {
|
|
|
2105
2087
|
});
|
|
2106
2088
|
group = option.group;
|
|
2107
2089
|
}
|
|
2108
|
-
out.push(itemOf(option
|
|
2090
|
+
out.push(itemOf(option));
|
|
2109
2091
|
}
|
|
2110
2092
|
return out;
|
|
2111
2093
|
}
|
|
@@ -2124,11 +2106,11 @@ function useSelectState(props) {
|
|
|
2124
2106
|
if (openProp === void 0) setOpenState(next);
|
|
2125
2107
|
onOpenChange?.(next);
|
|
2126
2108
|
};
|
|
2127
|
-
useEffect$
|
|
2109
|
+
useEffect$33(() => {
|
|
2128
2110
|
if (!open || props.search === false) return;
|
|
2129
2111
|
boxRef.current?.querySelector("input")?.focus();
|
|
2130
2112
|
}, [open, props.search]);
|
|
2131
|
-
useEffect$
|
|
2113
|
+
useEffect$33(() => {
|
|
2132
2114
|
if (open) {
|
|
2133
2115
|
wasOpenRef.current = true;
|
|
2134
2116
|
return;
|
|
@@ -2185,10 +2167,9 @@ function useSelectState(props) {
|
|
|
2185
2167
|
* @returns 触发器,以及打开时的搜索框与列表。
|
|
2186
2168
|
*/
|
|
2187
2169
|
function SelectField(props) {
|
|
2188
|
-
const { value, options, onChange, label, hint, icon, renderValue, placeholder, search = true, searchLabel, searchPlaceholder, footer, onFooter, disabled = false, invalid = false, loading = false, loadingText, fallback, selection = "fill", variant = "boxed", iconOnly = false,
|
|
2170
|
+
const { value, options, onChange, label, hint, icon, renderValue, placeholder, search = true, searchLabel, searchPlaceholder, footer, onFooter, disabled = false, invalid = false, loading = false, loadingText, fallback, selection = "fill", variant = "boxed", iconOnly = false, ariaLabel, title, id, name, className, menuClassName } = props;
|
|
2189
2171
|
const state = useSelectState(props);
|
|
2190
2172
|
const current = options.find((option) => option.value === value);
|
|
2191
|
-
useRevealOnOpen(state.open, revealId);
|
|
2192
2173
|
const variantClass = variant === "ghost" ? "wb-selectGhost" : void 0;
|
|
2193
2174
|
const triggerClass = triggerClassOf(variantClass, iconOnly);
|
|
2194
2175
|
if (loading) return framed(label, hint, className, selectLoadingNode({
|
|
@@ -2198,7 +2179,7 @@ function SelectField(props) {
|
|
|
2198
2179
|
ariaLabel,
|
|
2199
2180
|
loadingText
|
|
2200
2181
|
}));
|
|
2201
|
-
if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$
|
|
2182
|
+
if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$70(TextField, {
|
|
2202
2183
|
id,
|
|
2203
2184
|
name,
|
|
2204
2185
|
className: "wb-selectFallback",
|
|
@@ -2218,7 +2199,8 @@ function SelectField(props) {
|
|
|
2218
2199
|
icon,
|
|
2219
2200
|
value: selectValueNode(current, renderValue, placeholder),
|
|
2220
2201
|
iconOnly,
|
|
2221
|
-
onOpen: () => state.setOpen(true)
|
|
2202
|
+
onOpen: () => state.setOpen(true),
|
|
2203
|
+
ref: state.triggerRef
|
|
2222
2204
|
});
|
|
2223
2205
|
const anchor = state.open && search ? searchNode({
|
|
2224
2206
|
boxRef: state.boxRef,
|
|
@@ -2253,7 +2235,7 @@ function SelectField(props) {
|
|
|
2253
2235
|
anchor,
|
|
2254
2236
|
selection,
|
|
2255
2237
|
selectedId: selectCursorValue(state.shown, state.cursor) ?? void 0,
|
|
2256
|
-
items: selectEntries(state.shown, state.empty
|
|
2238
|
+
items: selectEntries(state.shown, state.empty),
|
|
2257
2239
|
footer: footer === void 0 ? void 0 : [{
|
|
2258
2240
|
id: FOOTER_ID,
|
|
2259
2241
|
label: footer.label,
|
|
@@ -2281,11 +2263,11 @@ function SelectField(props) {
|
|
|
2281
2263
|
* @returns 一个 `role="group"` 的 section。
|
|
2282
2264
|
*/
|
|
2283
2265
|
function SettingsSection({ label, title, action, children }) {
|
|
2284
|
-
return h$
|
|
2266
|
+
return h$70("section", {
|
|
2285
2267
|
className: "wb-settings",
|
|
2286
2268
|
role: "group",
|
|
2287
2269
|
"aria-label": label
|
|
2288
|
-
}, h$
|
|
2270
|
+
}, h$70("header", { className: "wb-settingsHead" }, h$70("span", { className: "wb-settingsTitle" }, title), action), children);
|
|
2289
2271
|
}
|
|
2290
2272
|
//#endregion
|
|
2291
2273
|
//#region ../shared/dist/components/Stack.js
|
|
@@ -2295,7 +2277,7 @@ function SettingsSection({ label, title, action, children }) {
|
|
|
2295
2277
|
* @returns 竖排的 div。
|
|
2296
2278
|
*/
|
|
2297
2279
|
function Stack({ children }) {
|
|
2298
|
-
return h$
|
|
2280
|
+
return h$70("div", { className: "wb-stack" }, children);
|
|
2299
2281
|
}
|
|
2300
2282
|
//#endregion
|
|
2301
2283
|
//#region ../shared/dist/components/StateBlock.js
|
|
@@ -2310,12 +2292,12 @@ function Stack({ children }) {
|
|
|
2310
2292
|
* @returns 一个 div。
|
|
2311
2293
|
*/
|
|
2312
2294
|
function StateBlock({ title, dot, hint, actions, resolving, children }) {
|
|
2313
|
-
return h$
|
|
2295
|
+
return h$70("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h$70("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h$70("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h$70("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h$70("div", { className: "wb-stateBlockActions" }, actions));
|
|
2314
2296
|
}
|
|
2315
2297
|
//#endregion
|
|
2316
2298
|
//#region ../shared/dist/components/icons.js
|
|
2317
2299
|
function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
|
|
2318
|
-
return h$
|
|
2300
|
+
return h$70("svg", {
|
|
2319
2301
|
width: size,
|
|
2320
2302
|
height: size,
|
|
2321
2303
|
viewBox,
|
|
@@ -2332,10 +2314,10 @@ function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
|
|
|
2332
2314
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2333
2315
|
*/
|
|
2334
2316
|
function IconConversation({ size = 16 }) {
|
|
2335
|
-
return h$
|
|
2317
|
+
return h$70(Shell, {
|
|
2336
2318
|
size,
|
|
2337
2319
|
strokeWidth: 1.3
|
|
2338
|
-
}, h$
|
|
2320
|
+
}, h$70("path", {
|
|
2339
2321
|
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",
|
|
2340
2322
|
stroke: "currentColor",
|
|
2341
2323
|
strokeLinejoin: "round"
|
|
@@ -2350,30 +2332,30 @@ var BRAND_TAIL_TRANSFORM = "translate(14.6263 10.5853) scale(1.95)";
|
|
|
2350
2332
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2351
2333
|
*/
|
|
2352
2334
|
function IconBrandMark({ size = 24 }) {
|
|
2353
|
-
return h$
|
|
2335
|
+
return h$70(Shell, {
|
|
2354
2336
|
size,
|
|
2355
2337
|
viewBox: "0 0 64 64"
|
|
2356
|
-
}, h$
|
|
2338
|
+
}, h$70("path", {
|
|
2357
2339
|
d: BRAND_FRAME,
|
|
2358
2340
|
fill: "currentColor",
|
|
2359
2341
|
fillRule: "evenodd"
|
|
2360
|
-
}), h$
|
|
2342
|
+
}), h$70("rect", {
|
|
2361
2343
|
x: 27.5,
|
|
2362
2344
|
y: 48,
|
|
2363
2345
|
width: 9,
|
|
2364
2346
|
height: 4.75,
|
|
2365
2347
|
fill: "currentColor"
|
|
2366
|
-
}), h$
|
|
2348
|
+
}), h$70("rect", {
|
|
2367
2349
|
x: 19,
|
|
2368
2350
|
y: 52.75,
|
|
2369
2351
|
width: 26,
|
|
2370
2352
|
height: 4.75,
|
|
2371
2353
|
rx: 2.375,
|
|
2372
2354
|
fill: "currentColor"
|
|
2373
|
-
}), h$
|
|
2355
|
+
}), h$70("g", { transform: BRAND_TAIL_TRANSFORM }, h$70("path", {
|
|
2374
2356
|
d: BRAND_TAIL,
|
|
2375
2357
|
fill: "currentColor"
|
|
2376
|
-
}), h$
|
|
2358
|
+
}), h$70("circle", {
|
|
2377
2359
|
cx: 6.885,
|
|
2378
2360
|
cy: 13.742,
|
|
2379
2361
|
r: 1.95,
|
|
@@ -2386,30 +2368,30 @@ function IconBrandMark({ size = 24 }) {
|
|
|
2386
2368
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2387
2369
|
*/
|
|
2388
2370
|
function IconOpencli({ size = 16 }) {
|
|
2389
|
-
return h$
|
|
2371
|
+
return h$70(Shell, {
|
|
2390
2372
|
size,
|
|
2391
2373
|
viewBox: "0 0 64 64"
|
|
2392
|
-
}, h$
|
|
2374
|
+
}, h$70("defs", null, h$70("linearGradient", {
|
|
2393
2375
|
id: "opencli-mark",
|
|
2394
2376
|
x1: "0%",
|
|
2395
2377
|
y1: "0%",
|
|
2396
2378
|
x2: "100%",
|
|
2397
2379
|
y2: "100%"
|
|
2398
|
-
}, h$
|
|
2380
|
+
}, h$70("stop", {
|
|
2399
2381
|
offset: "0%",
|
|
2400
2382
|
stopColor: "#00e5a0"
|
|
2401
|
-
}), h$
|
|
2383
|
+
}), h$70("stop", {
|
|
2402
2384
|
offset: "50%",
|
|
2403
2385
|
stopColor: "#00b4d8"
|
|
2404
|
-
}), h$
|
|
2386
|
+
}), h$70("stop", {
|
|
2405
2387
|
offset: "100%",
|
|
2406
2388
|
stopColor: "#7b61ff"
|
|
2407
|
-
}))), h$
|
|
2389
|
+
}))), h$70("rect", {
|
|
2408
2390
|
width: 64,
|
|
2409
2391
|
height: 64,
|
|
2410
2392
|
rx: 14,
|
|
2411
2393
|
fill: "#0a0a0f"
|
|
2412
|
-
}), h$
|
|
2394
|
+
}), h$70("text", {
|
|
2413
2395
|
x: "50%",
|
|
2414
2396
|
y: "54%",
|
|
2415
2397
|
dominantBaseline: "middle",
|
|
@@ -2426,10 +2408,10 @@ function IconOpencli({ size = 16 }) {
|
|
|
2426
2408
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2427
2409
|
*/
|
|
2428
2410
|
function IconNpm({ size = 16 }) {
|
|
2429
|
-
return h$
|
|
2411
|
+
return h$70(Shell, {
|
|
2430
2412
|
size,
|
|
2431
2413
|
viewBox: "0 0 1024 1024"
|
|
2432
|
-
}, h$
|
|
2414
|
+
}, h$70("path", {
|
|
2433
2415
|
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",
|
|
2434
2416
|
fill: "#CB3837"
|
|
2435
2417
|
}));
|
|
@@ -2440,37 +2422,37 @@ function IconNpm({ size = 16 }) {
|
|
|
2440
2422
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2441
2423
|
*/
|
|
2442
2424
|
function IconModuleMark({ size = 16 }) {
|
|
2443
|
-
return h$
|
|
2425
|
+
return h$70(Shell, {
|
|
2444
2426
|
size,
|
|
2445
2427
|
viewBox: "0 0 24 24"
|
|
2446
|
-
}, h$
|
|
2428
|
+
}, h$70("defs", null, h$70("linearGradient", {
|
|
2447
2429
|
id: "workbench-module-mark",
|
|
2448
2430
|
x1: "0%",
|
|
2449
2431
|
y1: "0%",
|
|
2450
2432
|
x2: "100%",
|
|
2451
2433
|
y2: "100%"
|
|
2452
|
-
}, h$
|
|
2434
|
+
}, h$70("stop", {
|
|
2453
2435
|
offset: "0%",
|
|
2454
2436
|
stopColor: "#3b82f6"
|
|
2455
|
-
}), h$
|
|
2437
|
+
}), h$70("stop", {
|
|
2456
2438
|
offset: "55%",
|
|
2457
2439
|
stopColor: "#8b5cf6"
|
|
2458
|
-
}), h$
|
|
2440
|
+
}), h$70("stop", {
|
|
2459
2441
|
offset: "100%",
|
|
2460
2442
|
stopColor: "#14b8a6"
|
|
2461
|
-
}))), h$
|
|
2443
|
+
}))), h$70("rect", {
|
|
2462
2444
|
width: 24,
|
|
2463
2445
|
height: 24,
|
|
2464
2446
|
rx: 7,
|
|
2465
2447
|
fill: "url(#workbench-module-mark)"
|
|
2466
|
-
}), h$
|
|
2448
|
+
}), h$70("rect", {
|
|
2467
2449
|
x: "4.6",
|
|
2468
2450
|
y: "4.6",
|
|
2469
2451
|
width: "6.2",
|
|
2470
2452
|
height: "6.2",
|
|
2471
2453
|
rx: "1.9",
|
|
2472
2454
|
fill: "#ffffff"
|
|
2473
|
-
}), h$
|
|
2455
|
+
}), h$70("rect", {
|
|
2474
2456
|
x: "13.2",
|
|
2475
2457
|
y: "4.6",
|
|
2476
2458
|
width: "6.2",
|
|
@@ -2478,7 +2460,7 @@ function IconModuleMark({ size = 16 }) {
|
|
|
2478
2460
|
rx: "1.9",
|
|
2479
2461
|
fill: "#ffffff",
|
|
2480
2462
|
fillOpacity: .78
|
|
2481
|
-
}), h$
|
|
2463
|
+
}), h$70("rect", {
|
|
2482
2464
|
x: "4.6",
|
|
2483
2465
|
y: "13.2",
|
|
2484
2466
|
width: "6.2",
|
|
@@ -2486,7 +2468,7 @@ function IconModuleMark({ size = 16 }) {
|
|
|
2486
2468
|
rx: "1.9",
|
|
2487
2469
|
fill: "#ffffff",
|
|
2488
2470
|
fillOpacity: .78
|
|
2489
|
-
}), h$
|
|
2471
|
+
}), h$70("rect", {
|
|
2490
2472
|
x: "13.2",
|
|
2491
2473
|
y: "13.2",
|
|
2492
2474
|
width: "6.2",
|
|
@@ -2501,7 +2483,7 @@ function IconModuleMark({ size = 16 }) {
|
|
|
2501
2483
|
* @returns 一枚 `aria-hidden` 的 svg。
|
|
2502
2484
|
*/
|
|
2503
2485
|
function IconPanelScreen({ size = 16 }) {
|
|
2504
|
-
return h$
|
|
2486
|
+
return h$70("svg", {
|
|
2505
2487
|
width: size,
|
|
2506
2488
|
height: size,
|
|
2507
2489
|
viewBox: "0 0 1024 1024",
|
|
@@ -2512,7 +2494,7 @@ function IconPanelScreen({ size = 16 }) {
|
|
|
2512
2494
|
display: "block",
|
|
2513
2495
|
overflow: "hidden"
|
|
2514
2496
|
}
|
|
2515
|
-
}, h$
|
|
2497
|
+
}, h$70("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" }));
|
|
2516
2498
|
}
|
|
2517
2499
|
//#endregion
|
|
2518
2500
|
//#region ../shared/dist/config/storage.js
|
|
@@ -2820,7 +2802,7 @@ function perKindProblemsOf(kind, raw, at) {
|
|
|
2820
2802
|
if (raw["docs"] !== void 0 && text(raw["docs"]) === "") errors.push(`${at}.docs 是空串`);
|
|
2821
2803
|
if (kind === "lib") errors.push(...libRunsProblemsOf(raw["runs"], at));
|
|
2822
2804
|
if (kind === "extension") {
|
|
2823
|
-
if (text(raw["runtime"]) === "") errors.push(`${at}.runtime 没写 ——
|
|
2805
|
+
if (text(raw["runtime"]) === "") errors.push(`${at}.runtime 没写 —— 扩展属于哪个运行时`);
|
|
2824
2806
|
if (text(raw["name"]) === "") errors.push(`${at}.name 没写`);
|
|
2825
2807
|
if (raw["commands"] !== void 0) {
|
|
2826
2808
|
if (!Array.isArray(raw["commands"])) errors.push(`${at}.commands 要是数组`);
|
|
@@ -3077,7 +3059,11 @@ var en = {
|
|
|
3077
3059
|
"time.short.years": "{n}y",
|
|
3078
3060
|
"panels.title": "Panel modules",
|
|
3079
3061
|
"panels.groupBoardless": "No-board modules",
|
|
3080
|
-
"panels.groupPlugins": "
|
|
3062
|
+
"panels.groupPlugins": "Plugins",
|
|
3063
|
+
"runtime.plugin": "plugin",
|
|
3064
|
+
"runtime.pluginOf": "a plugin the runtime provides",
|
|
3065
|
+
"runtime.pluginThing": "a plugin",
|
|
3066
|
+
"runtime.pluginArea": "the plugin area",
|
|
3081
3067
|
"panels.market.defaultHint": "When on, it is on by default in every workspace; you can also turn it off for a single workspace in Panel setup.",
|
|
3082
3068
|
"panels.market.defaultLabel": "On by default everywhere",
|
|
3083
3069
|
"panels.market.defaultLocked": "Unusable right now — update or uninstall it first",
|
|
@@ -3155,9 +3141,6 @@ var en = {
|
|
|
3155
3141
|
"panels.market.confirmNo": "Cancel",
|
|
3156
3142
|
"panels.market.noMarketSource": "The index has no newer version of this module (refresh the index and retry)",
|
|
3157
3143
|
"panels.market.failed": "Failed: {reason}",
|
|
3158
|
-
"panels.market.askAgent": "Ask the agent",
|
|
3159
|
-
"panels.market.askAgentCopied": "Copied",
|
|
3160
|
-
"panels.market.askAgentText": "This workbench module cannot be used: \"{name}\" (unit {unit}) — {reason}. Work out what is missing and how to add it, then confirm it works.",
|
|
3161
3144
|
"panels.market.failure.permission": "Didn't install: no write access",
|
|
3162
3145
|
"panels.market.failure.diskFull": "Didn't install: the disk is full",
|
|
3163
3146
|
"panels.market.failure.sandbox": "Didn't install: the system blocked it",
|
|
@@ -3197,7 +3180,7 @@ var en = {
|
|
|
3197
3180
|
"panels.market.noSource": "This module declares no install method — install it yourself",
|
|
3198
3181
|
"panels.market.badSource": "The install method is incomplete — install it yourself",
|
|
3199
3182
|
"panels.market.empty": "No modules available",
|
|
3200
|
-
"panels.market.sectionPlugins": "Installed
|
|
3183
|
+
"panels.market.sectionPlugins": "Installed plugins",
|
|
3201
3184
|
"panels.market.moduleOutdated": "update available",
|
|
3202
3185
|
"panels.market.updateNeedsWorkbench": "this version needs a newer workbench first",
|
|
3203
3186
|
"panels.market.updateIncompatible": "the new version does not match this workbench, so it cannot be installed now",
|
|
@@ -3235,7 +3218,7 @@ var en = {
|
|
|
3235
3218
|
"panels.market.justNow": "just now",
|
|
3236
3219
|
"panels.market.minutesAgo": "{n} min ago",
|
|
3237
3220
|
"panels.market.hoursAgo": "{n} h ago",
|
|
3238
|
-
"panels.market.add.description": "Enter a module or
|
|
3221
|
+
"panels.market.add.description": "Enter a module or {plugin} package name, Git repository URL, or local directory path.",
|
|
3239
3222
|
"panels.market.add.specPlaceholder": "e.g. @dsh-workbench/module-hello",
|
|
3240
3223
|
"panels.market.add.guideToggle": "Install guide and examples",
|
|
3241
3224
|
"panels.market.add.guideHide": "Hide guide",
|
|
@@ -3274,12 +3257,12 @@ var en = {
|
|
|
3274
3257
|
"panels.market.add.problemInstalled": "This module is already installed (add @version to switch versions)",
|
|
3275
3258
|
"panels.market.add.problemNotFound": "No such module found",
|
|
3276
3259
|
"panels.market.add.problemNotPackage": "That path does not exist or is not a valid module package",
|
|
3277
|
-
"panels.market.add.problemNotBundle": "This package cannot be installed here: {reason}. This entry recognises workbench modules and
|
|
3260
|
+
"panels.market.add.problemNotBundle": "This package cannot be installed here: {reason}. This entry recognises workbench modules and {plugin}s by package name, and installs either; but a git URL or a tarball does not reveal what it is — if it is really one of those two, use its package name or a local folder instead.",
|
|
3278
3261
|
"panels.market.add.problemNotWorkbenchModule": "This package does not match the workbench you are running, so installing it would not work. Pick another version, or ask the module author.",
|
|
3279
|
-
"panels.market.add.problemNotModuleOrPlugin": "This package is neither a workbench module nor
|
|
3280
|
-
"panels.market.add.failureNotModuleOrPlugin": "This package is neither a workbench module nor
|
|
3281
|
-
"panels.market.add.installedPlugin": "Installed:
|
|
3282
|
-
"panels.market.add.pluginPreview": "This is
|
|
3262
|
+
"panels.market.add.problemNotModuleOrPlugin": "This package is neither a workbench module nor {pluginOf}, so installing it would do nothing. Pick another version, or ask the package author.",
|
|
3263
|
+
"panels.market.add.failureNotModuleOrPlugin": "This package is neither a workbench module nor {pluginOf}, so installing it would do nothing",
|
|
3264
|
+
"panels.market.add.installedPlugin": "Installed: {plugin} {name}",
|
|
3265
|
+
"panels.market.add.pluginPreview": "This is {pluginThing}: it goes into {pluginArea} and works as soon as it is installed — no restart.",
|
|
3283
3266
|
"panels.market.add.pluginAlias": "Plugin name: {name}",
|
|
3284
3267
|
"panels.market.add.problemNetwork": "Cannot reach the module source; check the network and retry",
|
|
3285
3268
|
"panels.market.add.problemUnknown": "Cannot fetch module information: {reason}",
|
|
@@ -3375,7 +3358,7 @@ var en = {
|
|
|
3375
3358
|
"panels.discover.missingIndex": "This repository has no {path} yet.",
|
|
3376
3359
|
"panels.discover.initTitle": "Initialize this repository as a module market index?",
|
|
3377
3360
|
"panels.discover.initCta": "Initialize market index",
|
|
3378
|
-
"panels.discover.initWhat": "It will write the index directory market/ and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under artifacts/<package-name
|
|
3361
|
+
"panels.discover.initWhat": "It will write the index directory market/ and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under artifacts/<package-name>/ and their entry in market/<package-name>.json. The repository stays owned by its owner.",
|
|
3379
3362
|
"panels.discover.initBranch": "Branch",
|
|
3380
3363
|
"panels.discover.initBranchHint": "The index and build files go to this branch; an empty repository gets it created.",
|
|
3381
3364
|
"panels.discover.initBranchBad": "Use only letters, digits, dots, underscores, slashes, or dashes in a branch name.",
|
|
@@ -3555,7 +3538,7 @@ var en = {
|
|
|
3555
3538
|
"blocker.forbidden.hint": "You are signed in, but this project/repo is not permitted for your account.",
|
|
3556
3539
|
"blocker.forbidden.open": "Open permissions page",
|
|
3557
3540
|
"blocker.timeout.hint": "The background browser may not have started; retrying usually helps.",
|
|
3558
|
-
"blocker.exec.hint": "Make sure
|
|
3541
|
+
"blocker.exec.hint": "Make sure the runtime is installed and runs from your terminal.",
|
|
3559
3542
|
"blocker.unknown.title": "Something went wrong",
|
|
3560
3543
|
"panels.reading": "Reading the panel setup…",
|
|
3561
3544
|
"panels.cardBroken": "This module will not render: {unit} ({reason})",
|
|
@@ -3572,16 +3555,11 @@ var en = {
|
|
|
3572
3555
|
"env.stepFailed.shell": "cannot reach the command line",
|
|
3573
3556
|
"env.toolchain.ok": "Looks good",
|
|
3574
3557
|
"env.toolchain.warn": "Almost ready",
|
|
3575
|
-
"env.
|
|
3558
|
+
"env.runtime.ok": "Ready",
|
|
3576
3559
|
"env.bridge.ok": "Connected",
|
|
3577
3560
|
"env.bridge.short": "Not connected yet",
|
|
3578
3561
|
"env.bridge.why": "Panel data uses the login state in your browser. Without this connection, modules cannot fetch data. It does not block startup: fix it, or enter the workbench first.",
|
|
3579
3562
|
"env.bridge.hold": "The browser is not connected yet — fix it below and hit Retry, or enter the workbench first.",
|
|
3580
|
-
"env.bridge.daemon": "The background service is not running. It usually starts by itself — run the command below in your terminal first.",
|
|
3581
|
-
"env.bridge.extension": "The browser extension is not connected. Make sure the browser is running and the extension is enabled; install it once from the store if needed (then hit Retry here).",
|
|
3582
|
-
"env.bridge.extensionLink": "Get the extension in the Chrome Web Store",
|
|
3583
|
-
"env.bridge.profile": "Several browser accounts are connected but none is the default: list them (command below), then pick one.",
|
|
3584
|
-
"env.bridge.stale": "The default browser account is stale (it names an extension instance that no longer exists): pick one again.",
|
|
3585
3563
|
"env.bridge.unknown": "Could not tell what went wrong. Expand the raw output and follow the steps in it.",
|
|
3586
3564
|
"env.fix.title": "How to fix it",
|
|
3587
3565
|
"env.fix.why": "The workbench uses its own background tool (installed separately from the one in your terminal), and it is not set up on this machine yet.",
|
|
@@ -3611,7 +3589,8 @@ var en = {
|
|
|
3611
3589
|
"env.copyCommand": "Copy command",
|
|
3612
3590
|
"env.copied": "Copied",
|
|
3613
3591
|
"env.step.toolchain": "Runtime",
|
|
3614
|
-
"env.step.
|
|
3592
|
+
"env.step.adapter": "Runtime",
|
|
3593
|
+
"env.step.runtime": "Background tools",
|
|
3615
3594
|
"env.step.bridge": "Browser connection",
|
|
3616
3595
|
"env.step.diy": "DIY mode",
|
|
3617
3596
|
"env.step.warm": "Site sign-in",
|
|
@@ -3706,6 +3685,8 @@ var en = {
|
|
|
3706
3685
|
"approval.publish.version": "Version",
|
|
3707
3686
|
"approval.publish.author": "Author",
|
|
3708
3687
|
"approval.publish.authorMissing": "unsigned",
|
|
3688
|
+
"approval.publish.labels": "Labels",
|
|
3689
|
+
"approval.publish.labelsMissing": "none yet (1–2 picked on publish)",
|
|
3709
3690
|
"approval.publish.owner": "Owner",
|
|
3710
3691
|
"approval.publish.ownerUnowned": "originally unattributed",
|
|
3711
3692
|
"approval.publish.ownerTaken": "Owned by {owner}",
|
|
@@ -3823,7 +3804,11 @@ var dictionaries = {
|
|
|
3823
3804
|
"time.short.years": "{n}年",
|
|
3824
3805
|
"panels.title": "面板模块",
|
|
3825
3806
|
"panels.groupBoardless": "无看板模块",
|
|
3826
|
-
"panels.groupPlugins": "
|
|
3807
|
+
"panels.groupPlugins": "插件",
|
|
3808
|
+
"runtime.plugin": "插件",
|
|
3809
|
+
"runtime.pluginOf": "运行时提供的插件",
|
|
3810
|
+
"runtime.pluginThing": "插件",
|
|
3811
|
+
"runtime.pluginArea": "插件区",
|
|
3827
3812
|
"panels.market.defaultHint": "打开后所有工作区默认开启,也可在工作区面板配置中单独关闭",
|
|
3828
3813
|
"panels.market.defaultLabel": "全局默认开启",
|
|
3829
3814
|
"panels.market.defaultLocked": "这份现在用不了,先更新或卸载",
|
|
@@ -3901,9 +3886,6 @@ var dictionaries = {
|
|
|
3901
3886
|
"panels.market.confirmNo": "取消",
|
|
3902
3887
|
"panels.market.noMarketSource": "索引里没有这个模块的新版本(刷新一次索引再试)",
|
|
3903
3888
|
"panels.market.failed": "没成功:{reason}",
|
|
3904
|
-
"panels.market.askAgent": "问 agent",
|
|
3905
|
-
"panels.market.askAgentCopied": "已复制",
|
|
3906
|
-
"panels.market.askAgentText": "工作台里「{name}」(单元 {unit})用不了:{reason}。帮我查清缺什么、怎么补,补完确认真能用。",
|
|
3907
3889
|
"panels.market.failure.permission": "没装上:没有写入权限",
|
|
3908
3890
|
"panels.market.failure.diskFull": "没装上:磁盘满了",
|
|
3909
3891
|
"panels.market.failure.sandbox": "没装上:被系统拦住了",
|
|
@@ -3943,7 +3925,7 @@ var dictionaries = {
|
|
|
3943
3925
|
"panels.market.noSource": "这个模块没声明怎么装,只能自己动手",
|
|
3944
3926
|
"panels.market.badSource": "安装方式没写全,只能自己动手",
|
|
3945
3927
|
"panels.market.empty": "暂无可用模块",
|
|
3946
|
-
"panels.market.sectionPlugins": "
|
|
3928
|
+
"panels.market.sectionPlugins": "已安装的插件",
|
|
3947
3929
|
"panels.market.moduleOutdated": "有新版",
|
|
3948
3930
|
"panels.market.updateNeedsWorkbench": "新版本要先把工作台升级才能用",
|
|
3949
3931
|
"panels.market.updateIncompatible": "新版本和当前的工作台不匹配,暂时不能更新",
|
|
@@ -3981,7 +3963,7 @@ var dictionaries = {
|
|
|
3981
3963
|
"panels.market.justNow": "刚刚",
|
|
3982
3964
|
"panels.market.minutesAgo": "{n} 分钟前",
|
|
3983
3965
|
"panels.market.hoursAgo": "{n} 小时前",
|
|
3984
|
-
"panels.market.add.description": "输入模块或
|
|
3966
|
+
"panels.market.add.description": "输入模块或 {plugin}的包名、Git 仓库地址或本地目录路径。",
|
|
3985
3967
|
"panels.market.add.specPlaceholder": "例如 @dsh-workbench/module-hello",
|
|
3986
3968
|
"panels.market.add.guideToggle": "模块安装引导和示例",
|
|
3987
3969
|
"panels.market.add.guideHide": "收起引导",
|
|
@@ -4020,12 +4002,12 @@ var dictionaries = {
|
|
|
4020
4002
|
"panels.market.add.problemInstalled": "这个模块已经装过了(要换版本请带上 @版本)",
|
|
4021
4003
|
"panels.market.add.problemNotFound": "未找到相关模块",
|
|
4022
4004
|
"panels.market.add.problemNotPackage": "该路径不存在或不是有效的模块包",
|
|
4023
|
-
"panels.market.add.problemNotBundle": "这个包装不进这里:{reason}。这个入口按包名认工作台模块和
|
|
4005
|
+
"panels.market.add.problemNotBundle": "这个包装不进这里:{reason}。这个入口按包名认工作台模块和 {plugin},两种都能装;但 git 地址和 tarball 判断不出它是什么 —— 要是它其实是这两样之一,请改填包名或本地目录。",
|
|
4024
4006
|
"panels.market.add.problemNotWorkbenchModule": "这个包跟现在的工作台对不上,装上也用不了。换一个版本,或者找这个模块的作者。",
|
|
4025
|
-
"panels.market.add.problemNotModuleOrPlugin": "这个包既不是工作台的模块,也不是
|
|
4026
|
-
"panels.market.add.failureNotModuleOrPlugin": "这个包既不是工作台的模块,也不是
|
|
4027
|
-
"panels.market.add.installedPlugin": "装上了:
|
|
4028
|
-
"panels.market.add.pluginPreview": "这是一份
|
|
4007
|
+
"panels.market.add.problemNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 {pluginOf},装了也用不上。换一个版本,或者找这个包的作者。",
|
|
4008
|
+
"panels.market.add.failureNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 {pluginOf},装了也用不上",
|
|
4009
|
+
"panels.market.add.installedPlugin": "装上了:{plugin} {name}",
|
|
4010
|
+
"panels.market.add.pluginPreview": "这是一份 {pluginThing}:装进 {pluginArea},装完就能用,不用重启。",
|
|
4029
4011
|
"panels.market.add.pluginAlias": "插件名:{name}",
|
|
4030
4012
|
"panels.market.add.problemNetwork": "无法连接模块源,请检查网络后重试",
|
|
4031
4013
|
"panels.market.add.problemUnknown": "无法获取模块信息:{reason}",
|
|
@@ -4121,7 +4103,7 @@ var dictionaries = {
|
|
|
4121
4103
|
"panels.discover.missingIndex": "仓库里还没有索引文件 {path}",
|
|
4122
4104
|
"panels.discover.initTitle": "把这个仓库初始化成模块市场索引?",
|
|
4123
4105
|
"panels.discover.initCta": "初始化成市场索引",
|
|
4124
|
-
"panels.discover.initWhat": "会在 {branch} 分支写索引目录 market/ 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 artifacts
|
|
4106
|
+
"panels.discover.initWhat": "会在 {branch} 分支写索引目录 market/ 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 artifacts/<包名>/,条目写到 market/<包名>.json。仓库的写权限归它的所有者。",
|
|
4125
4107
|
"panels.discover.initBranch": "分支",
|
|
4126
4108
|
"panels.discover.initBranchHint": "索引和打包文件都发到这个分支;空仓库会新建它。",
|
|
4127
4109
|
"panels.discover.initBranchBad": "分支名只能用字母、数字、点、下划线、斜杠或短横线",
|
|
@@ -4301,7 +4283,7 @@ var dictionaries = {
|
|
|
4301
4283
|
"blocker.forbidden.hint": "账号已登录,但没有这个项目/仓库的权限;申请之后再试。",
|
|
4302
4284
|
"blocker.forbidden.open": "打开权限页",
|
|
4303
4285
|
"blocker.timeout.hint": "后台浏览器没起来,重试一次通常就好。",
|
|
4304
|
-
"blocker.exec.hint": "
|
|
4286
|
+
"blocker.exec.hint": "确认运行时已经装好、在终端里能直接跑起来。",
|
|
4305
4287
|
"blocker.unknown.title": "出了点问题",
|
|
4306
4288
|
"panels.reading": "正在读取面板配置…",
|
|
4307
4289
|
"panels.cardBroken": "这个模块起不来:{unit}({reason})",
|
|
@@ -4318,16 +4300,11 @@ var dictionaries = {
|
|
|
4318
4300
|
"env.stepFailed.shell": "连不上命令行",
|
|
4319
4301
|
"env.toolchain.ok": "正常",
|
|
4320
4302
|
"env.toolchain.warn": "还没完全准备好",
|
|
4321
|
-
"env.
|
|
4303
|
+
"env.runtime.ok": "已就绪",
|
|
4322
4304
|
"env.bridge.ok": "已连接",
|
|
4323
4305
|
"env.bridge.short": "还没连上",
|
|
4324
4306
|
"env.bridge.why": "面板的数据要用你浏览器里的登录状态。这个连接没通,模块就取不到数据;不拦路:修好它,或者先进入工作台。",
|
|
4325
4307
|
"env.bridge.hold": "浏览器还没连上 —— 按下面修好后点「重试」,也可以先进工作台。",
|
|
4326
|
-
"env.bridge.daemon": "后台服务没起来:正常它会自己起,先在终端跑下面这条命令。",
|
|
4327
|
-
"env.bridge.extension": "浏览器扩展没连上:确认浏览器开着、扩展已启用;没装就从商店装一次(装完回来点「重试」)。",
|
|
4328
|
-
"env.bridge.extensionLink": "去 Chrome 应用商店装扩展",
|
|
4329
|
-
"env.bridge.profile": "连上了多个浏览器账号,但没选默认的那个:先看有哪些(下面这条命令),再选一个。",
|
|
4330
|
-
"env.bridge.stale": "默认的浏览器账号已经失效(它记的是上一次的扩展实例):重新选一个。",
|
|
4331
4308
|
"env.bridge.unknown": "没认出是哪种问题:展开原文,按里面的步骤处理。",
|
|
4332
4309
|
"env.fix.title": "怎么解决",
|
|
4333
4310
|
"env.fix.why": "工作台用它自己那份后台工具(与你在终端里那套分开装,互不影响),这台机器上还没装好它。",
|
|
@@ -4357,7 +4334,8 @@ var dictionaries = {
|
|
|
4357
4334
|
"env.copyCommand": "复制命令",
|
|
4358
4335
|
"env.copied": "已复制",
|
|
4359
4336
|
"env.step.toolchain": "运行环境",
|
|
4360
|
-
"env.step.
|
|
4337
|
+
"env.step.adapter": "运行时",
|
|
4338
|
+
"env.step.runtime": "后台工具",
|
|
4361
4339
|
"env.step.bridge": "浏览器连接",
|
|
4362
4340
|
"env.step.diy": "DIY 模式",
|
|
4363
4341
|
"env.step.warm": "站点登录状态",
|
|
@@ -4452,6 +4430,8 @@ var dictionaries = {
|
|
|
4452
4430
|
"approval.publish.version": "版本",
|
|
4453
4431
|
"approval.publish.author": "作者",
|
|
4454
4432
|
"approval.publish.authorMissing": "未署名",
|
|
4433
|
+
"approval.publish.labels": "标签",
|
|
4434
|
+
"approval.publish.labelsMissing": "还没有(发布到市场时补 1–2 个)",
|
|
4455
4435
|
"approval.publish.owner": "认领人",
|
|
4456
4436
|
"approval.publish.ownerUnowned": "原来没署名",
|
|
4457
4437
|
"approval.publish.ownerTaken": "已有主人:{owner}",
|
|
@@ -4552,6 +4532,30 @@ function mergeMessagesSkipping(base, contributions) {
|
|
|
4552
4532
|
};
|
|
4553
4533
|
}
|
|
4554
4534
|
//#endregion
|
|
4535
|
+
//#region ../shared/dist/i18n/runtime-terms.js
|
|
4536
|
+
/**
|
|
4537
|
+
* 把适配器给的 zh / en 两份文案落到当前语言。
|
|
4538
|
+
* @param text 适配器档案里的那段话。
|
|
4539
|
+
* @param resolve dsh 的语言解析器;没有就取中文那份。
|
|
4540
|
+
* @returns 当前语言的那一段。
|
|
4541
|
+
*/
|
|
4542
|
+
function resolveRuntimeText(text, resolve) {
|
|
4543
|
+
return resolve === void 0 ? text.zh : resolve(text);
|
|
4544
|
+
}
|
|
4545
|
+
/**
|
|
4546
|
+
* 取当前语言的运行时术语(没给档案时的兜底)。
|
|
4547
|
+
* @param t 文案函数。
|
|
4548
|
+
* @returns `plugin` / `pluginOf` / `pluginThing` / `pluginArea` 四个名词短语。
|
|
4549
|
+
*/
|
|
4550
|
+
function runtimeTermsOf$1(t) {
|
|
4551
|
+
return {
|
|
4552
|
+
plugin: t("runtime.plugin"),
|
|
4553
|
+
pluginOf: t("runtime.pluginOf"),
|
|
4554
|
+
pluginThing: t("runtime.pluginThing"),
|
|
4555
|
+
pluginArea: t("runtime.pluginArea")
|
|
4556
|
+
};
|
|
4557
|
+
}
|
|
4558
|
+
//#endregion
|
|
4555
4559
|
//#region ../shared/dist/lib/market-index.js
|
|
4556
4560
|
var BRANCH = /^[A-Za-z0-9][A-Za-z0-9._/-]*$/;
|
|
4557
4561
|
function marketBranchOk(value) {
|
|
@@ -4997,14 +5001,14 @@ function bumpCapabilityEpoch() {
|
|
|
4997
5001
|
epoch$1 += 1;
|
|
4998
5002
|
}
|
|
4999
5003
|
var current$1 = null;
|
|
5000
|
-
var listeners$
|
|
5004
|
+
var listeners$9 = /* @__PURE__ */ new Set();
|
|
5001
5005
|
function capabilityValue() {
|
|
5002
5006
|
return current$1;
|
|
5003
5007
|
}
|
|
5004
5008
|
function subscribeCapabilities(listener) {
|
|
5005
|
-
listeners$
|
|
5009
|
+
listeners$9.add(listener);
|
|
5006
5010
|
return () => {
|
|
5007
|
-
listeners$
|
|
5011
|
+
listeners$9.delete(listener);
|
|
5008
5012
|
};
|
|
5009
5013
|
}
|
|
5010
5014
|
function setCapabilities(next, rechecked = false) {
|
|
@@ -5017,7 +5021,7 @@ function setCapabilities(next, rechecked = false) {
|
|
|
5017
5021
|
});
|
|
5018
5022
|
if (next === current$1) return;
|
|
5019
5023
|
current$1 = next;
|
|
5020
|
-
for (const listener of [...listeners$
|
|
5024
|
+
for (const listener of [...listeners$9]) listener();
|
|
5021
5025
|
}
|
|
5022
5026
|
function beginProbe() {
|
|
5023
5027
|
probing += 1;
|
|
@@ -5145,7 +5149,7 @@ function useCapabilityMap(refreshToken) {
|
|
|
5145
5149
|
//#endregion
|
|
5146
5150
|
//#region src/app/layouts/panel-hint.ts
|
|
5147
5151
|
var hints = /* @__PURE__ */ new Map();
|
|
5148
|
-
var listeners$
|
|
5152
|
+
var listeners$8 = /* @__PURE__ */ new Set();
|
|
5149
5153
|
function sameHint(left, right) {
|
|
5150
5154
|
if (left === null || right === null) return left === right;
|
|
5151
5155
|
if (left.labelKey !== right.labelKey || left.tone !== right.tone) return false;
|
|
@@ -5157,15 +5161,15 @@ function publishPanelHint(id, hint) {
|
|
|
5157
5161
|
if (sameHint(hints.get(id) ?? null, hint)) return;
|
|
5158
5162
|
if (hint === null) hints.delete(id);
|
|
5159
5163
|
else hints.set(id, hint);
|
|
5160
|
-
for (const listener of [...listeners$
|
|
5164
|
+
for (const listener of [...listeners$8]) listener();
|
|
5161
5165
|
}
|
|
5162
5166
|
function panelHintOf(id) {
|
|
5163
5167
|
return id === null ? null : hints.get(id) ?? null;
|
|
5164
5168
|
}
|
|
5165
5169
|
function subscribePanelHints(listener) {
|
|
5166
|
-
listeners$
|
|
5170
|
+
listeners$8.add(listener);
|
|
5167
5171
|
return () => {
|
|
5168
|
-
listeners$
|
|
5172
|
+
listeners$8.delete(listener);
|
|
5169
5173
|
};
|
|
5170
5174
|
}
|
|
5171
5175
|
function usePanelHint(id) {
|
|
@@ -5406,13 +5410,6 @@ var SWITCH_LOCKED = /* @__PURE__ */ new Set(["unusable", "broken"]);
|
|
|
5406
5410
|
function marketSwitchLocked(row) {
|
|
5407
5411
|
return SWITCH_LOCKED.has(row.state);
|
|
5408
5412
|
}
|
|
5409
|
-
function marketAsksAgent(row) {
|
|
5410
|
-
if (row.workbench === true || row.plugin === true) return false;
|
|
5411
|
-
if (row.state === "installed" || row.state === "inactive" || row.state === "outdated") return false;
|
|
5412
|
-
if (row.state === "checking" || row.state === "pending-restart") return false;
|
|
5413
|
-
if (row.state === "pending-followup") return false;
|
|
5414
|
-
return !marketActions$1(row).includes("install");
|
|
5415
|
-
}
|
|
5416
5413
|
function marketActions$1(row) {
|
|
5417
5414
|
if (row.workbench === true) {
|
|
5418
5415
|
if (row.followUp !== void 0 && row.state === "pending-followup") return row.followUp.hard ? ["migrate-workbench"] : ["migrate-workbench", "dismiss-followup"];
|
|
@@ -5833,7 +5830,7 @@ function holdWindowMs(until) {
|
|
|
5833
5830
|
}
|
|
5834
5831
|
//#endregion
|
|
5835
5832
|
//#region src/app/layouts/rightbar/market-busy.ts
|
|
5836
|
-
var listeners$
|
|
5833
|
+
var listeners$7 = /* @__PURE__ */ new Set();
|
|
5837
5834
|
var published = /* @__PURE__ */ new Map();
|
|
5838
5835
|
var live$2 = /* @__PURE__ */ new Set();
|
|
5839
5836
|
var timer$3;
|
|
@@ -5849,9 +5846,9 @@ function publishMarketBusy(ids) {
|
|
|
5849
5846
|
refresh$1(now);
|
|
5850
5847
|
}
|
|
5851
5848
|
function subscribeMarketBusy(listener) {
|
|
5852
|
-
listeners$
|
|
5849
|
+
listeners$7.add(listener);
|
|
5853
5850
|
return () => {
|
|
5854
|
-
listeners$
|
|
5851
|
+
listeners$7.delete(listener);
|
|
5855
5852
|
};
|
|
5856
5853
|
}
|
|
5857
5854
|
function useMarketBusy() {
|
|
@@ -5880,7 +5877,7 @@ function refresh$1(now) {
|
|
|
5880
5877
|
const next = new Set(published.keys());
|
|
5881
5878
|
if (!sameSet(live$2, next)) {
|
|
5882
5879
|
live$2 = next;
|
|
5883
|
-
for (const listener of [...listeners$
|
|
5880
|
+
for (const listener of [...listeners$7]) listener();
|
|
5884
5881
|
}
|
|
5885
5882
|
schedule$2(now);
|
|
5886
5883
|
}
|
|
@@ -5893,7 +5890,7 @@ var IDLE$2 = {
|
|
|
5893
5890
|
};
|
|
5894
5891
|
var tokens = /* @__PURE__ */ new Set();
|
|
5895
5892
|
var applied = /* @__PURE__ */ new Map();
|
|
5896
|
-
var listeners$
|
|
5893
|
+
var listeners$6 = /* @__PURE__ */ new Set();
|
|
5897
5894
|
var snapshot$1 = IDLE$2;
|
|
5898
5895
|
var timer$2;
|
|
5899
5896
|
function sameUnits(left, right) {
|
|
@@ -5917,7 +5914,7 @@ function refresh(now) {
|
|
|
5917
5914
|
};
|
|
5918
5915
|
if (next.installing !== snapshot$1.installing || !sameUnits(next.applied, snapshot$1.applied)) {
|
|
5919
5916
|
snapshot$1 = next;
|
|
5920
|
-
for (const listener of [...listeners$
|
|
5917
|
+
for (const listener of [...listeners$6]) listener();
|
|
5921
5918
|
}
|
|
5922
5919
|
schedule$1(now);
|
|
5923
5920
|
}
|
|
@@ -5925,9 +5922,9 @@ function marketInstallState() {
|
|
|
5925
5922
|
return snapshot$1;
|
|
5926
5923
|
}
|
|
5927
5924
|
function subscribeMarketInstall(listener) {
|
|
5928
|
-
listeners$
|
|
5925
|
+
listeners$6.add(listener);
|
|
5929
5926
|
return () => {
|
|
5930
|
-
listeners$
|
|
5927
|
+
listeners$6.delete(listener);
|
|
5931
5928
|
};
|
|
5932
5929
|
}
|
|
5933
5930
|
function publishMarketInstalling(token, active) {
|
|
@@ -6407,7 +6404,7 @@ var FailureCard_module_default = {
|
|
|
6407
6404
|
};
|
|
6408
6405
|
//#endregion
|
|
6409
6406
|
//#region src/app/layouts/rightbar/FailureCard.tsx
|
|
6410
|
-
var COPIED_MS
|
|
6407
|
+
var COPIED_MS = 1200;
|
|
6411
6408
|
function terminalLabels(t) {
|
|
6412
6409
|
return {
|
|
6413
6410
|
commandLine: (line) => t("panels.market.failure.term.commandLine", { line }),
|
|
@@ -6434,7 +6431,7 @@ function FailureCard({ t, model, onRecheck, rechecking }) {
|
|
|
6434
6431
|
(0, _deepseek_ai_dsh_client_ui_primitives.writeClipboard)(model.fix).then((ok) => {
|
|
6435
6432
|
if (!ok) return;
|
|
6436
6433
|
setCopied(true);
|
|
6437
|
-
setTimeout(() => setCopied(false), COPIED_MS
|
|
6434
|
+
setTimeout(() => setCopied(false), COPIED_MS);
|
|
6438
6435
|
});
|
|
6439
6436
|
}, [model.fix]);
|
|
6440
6437
|
return /* @__PURE__ */ (0, react.createElement)("div", { className: FailureCard_module_default.block }, /* @__PURE__ */ (0, react.createElement)("div", { className: FailureCard_module_default.head }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
|
|
@@ -6630,6 +6627,7 @@ var ACTION_LABEL_KEY = {
|
|
|
6630
6627
|
"migrate-workbench": "panels.market.migrateAction",
|
|
6631
6628
|
"dismiss-followup": "panels.market.dismissFollowUp"
|
|
6632
6629
|
};
|
|
6630
|
+
var UPDATE_ACTIONS = Object.keys(ACTION_LABEL_KEY).filter((action) => ACTION_LABEL_KEY[action] === "panels.market.update");
|
|
6633
6631
|
function holdOf(pending, application) {
|
|
6634
6632
|
if (pending === null || pending.row === void 0) return void 0;
|
|
6635
6633
|
if (application !== "applied") return void 0;
|
|
@@ -6727,18 +6725,6 @@ function pendingRowOf(input) {
|
|
|
6727
6725
|
...pending.version === void 0 ? {} : { version: { installed: pending.version } }
|
|
6728
6726
|
};
|
|
6729
6727
|
}
|
|
6730
|
-
function askAgentReason(row, t) {
|
|
6731
|
-
if (row.hint !== void 0) return t(row.hint);
|
|
6732
|
-
if (row.note !== void 0) return t(row.note.key, row.note.params);
|
|
6733
|
-
return t(MARKET_STATE_KEY[row.state]);
|
|
6734
|
-
}
|
|
6735
|
-
function askAgentText(row, t) {
|
|
6736
|
-
return t("panels.market.askAgentText", {
|
|
6737
|
-
name: marketRowTitle(row, t),
|
|
6738
|
-
unit: row.id,
|
|
6739
|
-
reason: askAgentReason(row, t)
|
|
6740
|
-
});
|
|
6741
|
-
}
|
|
6742
6728
|
//#endregion
|
|
6743
6729
|
//#region src/app/layouts/rightbar/SharedSection.tsx
|
|
6744
6730
|
function SharedLine({ t, row, pending, failure, onAct, onRecheck, rechecking }) {
|
|
@@ -6807,37 +6793,13 @@ function Tip({ side = "bottom", align = "end", gap = 6, portal = true, ...rest }
|
|
|
6807
6793
|
});
|
|
6808
6794
|
}
|
|
6809
6795
|
//#endregion
|
|
6810
|
-
//#region src/app/layouts/rightbar/AskAgentButton.tsx
|
|
6811
|
-
var COPIED_MS = 1200;
|
|
6812
|
-
function AskAgentButton({ t, text, label }) {
|
|
6813
|
-
const [copied, setCopied] = (0, react.useState)(false);
|
|
6814
|
-
const onCopy = (0, react.useCallback)(() => {
|
|
6815
|
-
(0, _deepseek_ai_dsh_client_ui_primitives.writeClipboard)(text).then((ok) => {
|
|
6816
|
-
if (!ok) return;
|
|
6817
|
-
setCopied(true);
|
|
6818
|
-
setTimeout(() => setCopied(false), COPIED_MS);
|
|
6819
|
-
});
|
|
6820
|
-
}, [text]);
|
|
6821
|
-
return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
6822
|
-
type: "button",
|
|
6823
|
-
size: "sm",
|
|
6824
|
-
variant: "ghost",
|
|
6825
|
-
onClick: onCopy
|
|
6826
|
-
}, copied ? t("panels.market.askAgentCopied") : label);
|
|
6827
|
-
}
|
|
6828
|
-
//#endregion
|
|
6829
6796
|
//#region src/app/layouts/rightbar/market-section.tsx
|
|
6830
6797
|
var dangerActions = [
|
|
6831
6798
|
"uninstall",
|
|
6832
6799
|
"remove-bundle",
|
|
6833
6800
|
"uninstall-plugin"
|
|
6834
6801
|
];
|
|
6835
|
-
var updateActions =
|
|
6836
|
-
"update",
|
|
6837
|
-
"update-bundle",
|
|
6838
|
-
"update-plugin",
|
|
6839
|
-
"update-workbench"
|
|
6840
|
-
];
|
|
6802
|
+
var updateActions = UPDATE_ACTIONS;
|
|
6841
6803
|
function MigrationConfirm({ t, onConfirm, onCancel }) {
|
|
6842
6804
|
const [acknowledged, setAcknowledged] = (0, react.useState)(false);
|
|
6843
6805
|
return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, {
|
|
@@ -6914,7 +6876,6 @@ function MarketLine({ t, row, pending, failure, onAct, onDefault, boardBusy, onR
|
|
|
6914
6876
|
const [dismissOpen, setDismissOpen] = (0, react.useState)(false);
|
|
6915
6877
|
const quiet = row.workbench === true && row.state === "installed" && row.hint === void 0;
|
|
6916
6878
|
const actions = marketActions$1(row);
|
|
6917
|
-
const asksAgent = marketAsksAgent(row);
|
|
6918
6879
|
const switchLocked = marketSwitchLocked(row);
|
|
6919
6880
|
return /* @__PURE__ */ (0, react.createElement)("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ (0, react.createElement)("span", {
|
|
6920
6881
|
className: MarketPage_module_default.marketIcon,
|
|
@@ -6926,11 +6887,7 @@ function MarketLine({ t, row, pending, failure, onAct, onDefault, boardBusy, onR
|
|
|
6926
6887
|
t,
|
|
6927
6888
|
row,
|
|
6928
6889
|
quiet
|
|
6929
|
-
})), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEnd }, running !== null ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketProgress }, /* @__PURE__ */ (0, react.createElement)(Spinner, { size: 14 }), t(PROGRESS_KEY[running.action])) : actions.length === 0
|
|
6930
|
-
t,
|
|
6931
|
-
text: askAgentText(row, t),
|
|
6932
|
-
label: t("panels.market.askAgent")
|
|
6933
|
-
}) : null, actions.map((action) => {
|
|
6890
|
+
})), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEnd }, running !== null ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketProgress }, /* @__PURE__ */ (0, react.createElement)(Spinner, { size: 14 }), t(PROGRESS_KEY[running.action])) : actions.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketActions }, actions.map((action) => {
|
|
6934
6891
|
const danger = dangerActions.includes(action);
|
|
6935
6892
|
const update = updateActions.includes(action);
|
|
6936
6893
|
return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
@@ -7600,7 +7557,7 @@ var NO_CHECK = {
|
|
|
7600
7557
|
};
|
|
7601
7558
|
var NO_ROWS = [];
|
|
7602
7559
|
var NO_UNITS$1 = /* @__PURE__ */ new Set();
|
|
7603
|
-
function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking }) {
|
|
7560
|
+
function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking, runtimePluginMarket }) {
|
|
7604
7561
|
const failureOf = (id) => failed?.id === id ? failed : null;
|
|
7605
7562
|
const foot = marketFootVisible(shown, installedList);
|
|
7606
7563
|
const sections = marketSections(marketOrder([...shown, ...installedList], (row) => marketRowTitle(row, t)));
|
|
@@ -7651,7 +7608,7 @@ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending
|
|
|
7651
7608
|
onConfirming,
|
|
7652
7609
|
onRecheck,
|
|
7653
7610
|
rechecking
|
|
7654
|
-
}), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
|
|
7611
|
+
}), runtimePluginMarket === false ? null : /* @__PURE__ */ (0, react.createElement)(MarketSection, {
|
|
7655
7612
|
t,
|
|
7656
7613
|
titleKey: "panels.market.sectionPlugins",
|
|
7657
7614
|
icon: marketSectionIcon("plugins"),
|
|
@@ -7732,7 +7689,7 @@ function sectionChecksOf(input) {
|
|
|
7732
7689
|
})
|
|
7733
7690
|
};
|
|
7734
7691
|
}
|
|
7735
|
-
function MarketView({ t, titleOf, manifests, installable, capabilities, freshness, onChanged, onPending, updates, modulesCheck, pluginsCheck, onCheck, installed, installedRead, workbench, selfUpdate, plugins, settling, installing = false, mock, defaults = [], changed = {} }) {
|
|
7692
|
+
function MarketView({ t, titleOf, manifests, installable, capabilities, runtimePluginMarket, freshness, onChanged, onPending, updates, modulesCheck, pluginsCheck, onCheck, installed, installedRead, workbench, selfUpdate, plugins, settling, installing = false, mock, defaults = [], changed = {} }) {
|
|
7736
7693
|
const { pending, setPending, confirming, setConfirming, failed, setFailed, notice, setNotice } = useMarketTransient({
|
|
7737
7694
|
mock,
|
|
7738
7695
|
onPending
|
|
@@ -7833,6 +7790,7 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
|
|
|
7833
7790
|
if (nothing) return /* @__PURE__ */ (0, react.createElement)(MarketEmpty, { t });
|
|
7834
7791
|
return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(MarketBody, {
|
|
7835
7792
|
t,
|
|
7793
|
+
runtimePluginMarket,
|
|
7836
7794
|
self,
|
|
7837
7795
|
shown,
|
|
7838
7796
|
pluginList,
|
|
@@ -7858,6 +7816,55 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
|
|
|
7858
7816
|
}));
|
|
7859
7817
|
}
|
|
7860
7818
|
//#endregion
|
|
7819
|
+
//#region src/shared/hooks/runtime-queries.ts
|
|
7820
|
+
function readRuntimeCapabilities() {
|
|
7821
|
+
return apiGet("health");
|
|
7822
|
+
}
|
|
7823
|
+
//#endregion
|
|
7824
|
+
//#region src/shared/hooks/use-runtime-capabilities.ts
|
|
7825
|
+
var value;
|
|
7826
|
+
var profile;
|
|
7827
|
+
var started = false;
|
|
7828
|
+
var listeners$5 = /* @__PURE__ */ new Set();
|
|
7829
|
+
function publish$2(next, nextProfile) {
|
|
7830
|
+
value = next;
|
|
7831
|
+
profile = nextProfile;
|
|
7832
|
+
for (const listener of listeners$5) listener();
|
|
7833
|
+
}
|
|
7834
|
+
function pluginMarketOf(capabilities) {
|
|
7835
|
+
return capabilities?.pluginMarket !== false;
|
|
7836
|
+
}
|
|
7837
|
+
function runtimeProfileValue() {
|
|
7838
|
+
return profile;
|
|
7839
|
+
}
|
|
7840
|
+
async function load() {
|
|
7841
|
+
const answer = await readRuntimeCapabilities();
|
|
7842
|
+
if (answer.ok) publish$2(answer.capabilities, answer.runtimeProfile ?? void 0);
|
|
7843
|
+
else publish$2(void 0);
|
|
7844
|
+
}
|
|
7845
|
+
function useRuntimeCapabilities() {
|
|
7846
|
+
const [caps, setCaps] = (0, react.useState)(value);
|
|
7847
|
+
(0, react.useEffect)(() => {
|
|
7848
|
+
let alive = true;
|
|
7849
|
+
const listener = () => {
|
|
7850
|
+
if (alive) setCaps(value);
|
|
7851
|
+
};
|
|
7852
|
+
listeners$5.add(listener);
|
|
7853
|
+
if (value === void 0 && !started) {
|
|
7854
|
+
started = true;
|
|
7855
|
+
load().catch(() => {
|
|
7856
|
+
started = false;
|
|
7857
|
+
publish$2(void 0);
|
|
7858
|
+
});
|
|
7859
|
+
}
|
|
7860
|
+
return () => {
|
|
7861
|
+
alive = false;
|
|
7862
|
+
listeners$5.delete(listener);
|
|
7863
|
+
};
|
|
7864
|
+
}, []);
|
|
7865
|
+
return caps;
|
|
7866
|
+
}
|
|
7867
|
+
//#endregion
|
|
7861
7868
|
//#region ../../node_modules/.pnpm/dayjs@1.11.23/node_modules/dayjs/plugin/localizedFormat.js
|
|
7862
7869
|
var require_localizedFormat = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
7863
7870
|
(function(e, t) {
|
|
@@ -9822,6 +9829,14 @@ var RANK = {
|
|
|
9822
9829
|
done: 1,
|
|
9823
9830
|
ongoing: 0
|
|
9824
9831
|
};
|
|
9832
|
+
var LIST_ORDER = {
|
|
9833
|
+
warning: 0,
|
|
9834
|
+
done: 1,
|
|
9835
|
+
ongoing: 2
|
|
9836
|
+
};
|
|
9837
|
+
function attentionListRank(attention) {
|
|
9838
|
+
return attention === null || attention === void 0 ? 3 : LIST_ORDER[attention.severity];
|
|
9839
|
+
}
|
|
9825
9840
|
var SENTENCES = {
|
|
9826
9841
|
warning: {
|
|
9827
9842
|
one: "project.attention.warning.one",
|
|
@@ -10280,6 +10295,27 @@ function useMarketReload(input) {
|
|
|
10280
10295
|
checkPart
|
|
10281
10296
|
};
|
|
10282
10297
|
}
|
|
10298
|
+
//#endregion
|
|
10299
|
+
//#region src/shared/hooks/locale-text.ts
|
|
10300
|
+
var resolver;
|
|
10301
|
+
function setRuntimeTextResolver(next) {
|
|
10302
|
+
resolver = next;
|
|
10303
|
+
}
|
|
10304
|
+
function runtimeText(text) {
|
|
10305
|
+
return resolveRuntimeText(text, resolver);
|
|
10306
|
+
}
|
|
10307
|
+
//#endregion
|
|
10308
|
+
//#region src/shared/hooks/runtime-terms.ts
|
|
10309
|
+
function runtimeTermsOf(t) {
|
|
10310
|
+
const profile = runtimeProfileValue();
|
|
10311
|
+
if (profile === void 0) return runtimeTermsOf$1(t);
|
|
10312
|
+
return {
|
|
10313
|
+
plugin: runtimeText(profile.terms.plugin),
|
|
10314
|
+
pluginOf: runtimeText(profile.terms.pluginOf),
|
|
10315
|
+
pluginThing: runtimeText(profile.terms.pluginThing),
|
|
10316
|
+
pluginArea: runtimeText(profile.terms.pluginArea)
|
|
10317
|
+
};
|
|
10318
|
+
}
|
|
10283
10319
|
var AddModule_module_default = {
|
|
10284
10320
|
wide: "_wide_1lv8f_1",
|
|
10285
10321
|
dialog: "_dialog_1lv8f_8",
|
|
@@ -10436,7 +10472,10 @@ function AddModuleForm({ t, state }) {
|
|
|
10436
10472
|
})), state.problem === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
|
|
10437
10473
|
className: AddModule_module_default.problem,
|
|
10438
10474
|
role: "alert"
|
|
10439
|
-
}, t(problemKey(state.problem.problem), {
|
|
10475
|
+
}, t(problemKey(state.problem.problem), {
|
|
10476
|
+
...runtimeTermsOf(t),
|
|
10477
|
+
reason: state.problem.reason
|
|
10478
|
+
})), state.failure === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
|
|
10440
10479
|
className: AddModule_module_default.problem,
|
|
10441
10480
|
role: "alert"
|
|
10442
10481
|
}, state.failure), /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.options }, /* @__PURE__ */ (0, react.createElement)("button", {
|
|
@@ -10499,7 +10538,7 @@ function AddModulePreview({ t, state }) {
|
|
|
10499
10538
|
const source = preview.registry === "" ? t("panels.market.add.registryDefault") : preview.registry;
|
|
10500
10539
|
const plugin = preview.kind === "plugin";
|
|
10501
10540
|
const pluginName = plugin ? preview.pluginName : void 0;
|
|
10502
|
-
return /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.body }, /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.subject }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectName }, preview.name), preview.version === "" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.installVersion", { version: preview.version })), pluginName === void 0 || pluginName === preview.name ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.pluginAlias", { name: pluginName })), preview.description === "" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectDesc }, preview.description), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, source)), plugin ? /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.pluginPreview")) : null);
|
|
10541
|
+
return /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.body }, /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.subject }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectName }, preview.name), preview.version === "" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.installVersion", { version: preview.version })), pluginName === void 0 || pluginName === preview.name ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.pluginAlias", { name: pluginName })), preview.description === "" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectDesc }, preview.description), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, source)), plugin ? /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.pluginPreview", runtimeTermsOf(t))) : null);
|
|
10503
10542
|
}
|
|
10504
10543
|
function AddModuleResult({ t, state }) {
|
|
10505
10544
|
const outcome = state.outcome;
|
|
@@ -10525,7 +10564,10 @@ function AddModuleResult({ t, state }) {
|
|
|
10525
10564
|
}) : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconCheckCircleFillRegular, { size: 28 })), /* @__PURE__ */ (0, react.createElement)("h2", {
|
|
10526
10565
|
className: AddModule_module_default.wizardTitle,
|
|
10527
10566
|
role: kind === "failed" ? "alert" : "status"
|
|
10528
|
-
}, kind === "failed" ? t("panels.market.add.failedTitle") : kind === "cancelled" ? t("panels.market.add.cancelledTitle") : t("panels.market.add.installedTitle"))), /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.subject }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectName }, outcome.module.pkg), name === outcome.module.pkg ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, name), outcome.module.version === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.installVersion", { version: outcome.module.version }))), kind === "plugin" && plugin !== void 0 ? /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.installedPlugin", {
|
|
10567
|
+
}, kind === "failed" ? t("panels.market.add.failedTitle") : kind === "cancelled" ? t("panels.market.add.cancelledTitle") : t("panels.market.add.installedTitle"))), /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.subject }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectName }, outcome.module.pkg), name === outcome.module.pkg ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, name), outcome.module.version === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.installVersion", { version: outcome.module.version }))), kind === "plugin" && plugin !== void 0 ? /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.installedPlugin", {
|
|
10568
|
+
...runtimeTermsOf(t),
|
|
10569
|
+
name: plugin.name ?? plugin.pkg
|
|
10570
|
+
})) : kind === "failed" ? /* @__PURE__ */ (0, react.createElement)("p", {
|
|
10529
10571
|
className: AddModule_module_default.resultWarn,
|
|
10530
10572
|
role: "alert"
|
|
10531
10573
|
}, t("panels.market.add.failed", { reason })) : kind === "restart" ? /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.resultWarn }, t("panels.market.add.doneRestart")), why === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.resultMeta }, why)) : kind === "quiet" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.tookEffect")), builds.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.approval }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.approvalTitle }, t("panels.market.add.approveTitle")), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.approvalText }, t("panels.market.add.approveHint", { packages: builds.join("、") })), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.approvalCaution }, t("panels.market.add.approveCaution"))), supply === void 0 || outcome.supply.state !== "failed" && (kind === "failed" || kind === "cancelled") ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: supplyTone(outcome.supply.state) }, t(supply, { reason: outcome.supply.reason ?? "" })), state.failure === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.problem }, state.failure), outcome.change.errorDetail === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.detailLabel }, t("panels.market.add.details")), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.detail }, outcome.change.errorDetail)));
|
|
@@ -10864,7 +10906,7 @@ function AddModuleContent({ t, onClose, onInstalled }) {
|
|
|
10864
10906
|
if (!installing) onClose();
|
|
10865
10907
|
},
|
|
10866
10908
|
title: t("panels.market.add.title"),
|
|
10867
|
-
description: t("panels.market.add.description"),
|
|
10909
|
+
description: t("panels.market.add.description", runtimeTermsOf(t)),
|
|
10868
10910
|
closeLabel: t("panels.market.add.close"),
|
|
10869
10911
|
className: AddModule_module_default.dialog,
|
|
10870
10912
|
contentClassName: AddModule_module_default.content,
|
|
@@ -10939,6 +10981,7 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
10939
10981
|
const { modules, plugins, workbench, selfUpdate, checking: versionsChecking, allChecking: versionsAllChecking, modulesCheck, pluginsCheck, read: installedRead, reload: reloadVersions } = useModuleVersions();
|
|
10940
10982
|
const machineBoard = useEnabledUnits(0, null);
|
|
10941
10983
|
const install = useMarketInstallState();
|
|
10984
|
+
const runtimeCapabilities = useRuntimeCapabilities();
|
|
10942
10985
|
const [adding, setAdding] = (0, react.useState)(false);
|
|
10943
10986
|
const [acting, setActing] = (0, react.useState)(false);
|
|
10944
10987
|
const [tab, setTab] = (0, react.useState)("installed");
|
|
@@ -10990,6 +11033,7 @@ function MarketPanel({ t, units, titleOf }) {
|
|
|
10990
11033
|
manifests,
|
|
10991
11034
|
installable,
|
|
10992
11035
|
capabilities,
|
|
11036
|
+
runtimePluginMarket: pluginMarketOf(runtimeCapabilities),
|
|
10993
11037
|
freshness: shownFreshness,
|
|
10994
11038
|
onChanged: reload,
|
|
10995
11039
|
onPending: setActing,
|
|
@@ -11819,7 +11863,13 @@ function ConfigSyncItem({ t }) {
|
|
|
11819
11863
|
const value = snapshot.phase === "ready" ? snapshot.value : void 0;
|
|
11820
11864
|
const failure = (0, react.useMemo)(() => {
|
|
11821
11865
|
if (snapshot.phase !== "error") return null;
|
|
11822
|
-
const
|
|
11866
|
+
const diagnose = runtimeProfileValue()?.diagnose;
|
|
11867
|
+
const resolved = diagnose === void 0 ? void 0 : {
|
|
11868
|
+
exec: diagnose.exec === void 0 ? void 0 : runtimeText(diagnose.exec),
|
|
11869
|
+
login: diagnose.login === void 0 ? void 0 : runtimeText(diagnose.login),
|
|
11870
|
+
bridge: diagnose.bridge === void 0 ? void 0 : runtimeText(diagnose.bridge)
|
|
11871
|
+
};
|
|
11872
|
+
const blocker = blockerOfError(snapshot.error, t, { diagnose: resolved });
|
|
11823
11873
|
return blocker.hint === void 0 ? {
|
|
11824
11874
|
...blocker,
|
|
11825
11875
|
hint: t("configSync.readHint")
|
|
@@ -12605,7 +12655,7 @@ function stepDetailText(step, snapshot, t) {
|
|
|
12605
12655
|
if (step.status === "failed") return failedStepText(snapshot.guidance, t);
|
|
12606
12656
|
if (step.status === "pending" || step.status === "running") return "";
|
|
12607
12657
|
if (step.id === "toolchain") return step.status === "ok" ? t("env.toolchain.ok") : t("env.toolchain.warn");
|
|
12608
|
-
if (step.id === "
|
|
12658
|
+
if (step.id === "cli") return step.status === "ok" ? t("env.runtime.ok") : "";
|
|
12609
12659
|
if (step.id === "bridge") return step.status === "ok" ? t("env.bridge.ok") : t("env.bridge.short");
|
|
12610
12660
|
if (step.id === "diy") return step.status === "ok" ? t("env.diy.ok") : t("env.diy.short");
|
|
12611
12661
|
if (step.id === "warm") return step.status === "ok" ? t("env.warm.done", { n: step.detail ?? "0" }) : t("env.warm.short");
|
|
@@ -12615,19 +12665,19 @@ function showsRawDetails(snapshot) {
|
|
|
12615
12665
|
if (snapshot.phase === "failed") return true;
|
|
12616
12666
|
return snapshot.steps.some((step) => step.status === "warn" || step.status === "failed");
|
|
12617
12667
|
}
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
|
|
12621
|
-
|
|
12622
|
-
|
|
12623
|
-
|
|
12624
|
-
|
|
12625
|
-
|
|
12626
|
-
|
|
12668
|
+
function showsRawAll(snapshot, panelShown) {
|
|
12669
|
+
return !panelShown && showsRawDetails(snapshot);
|
|
12670
|
+
}
|
|
12671
|
+
function bridgeAdvice(issue, t, fixes) {
|
|
12672
|
+
const fix = fixes?.[issue];
|
|
12673
|
+
if (fix !== void 0) return {
|
|
12674
|
+
text: runtimeText(fix.text),
|
|
12675
|
+
...fix.link === void 0 ? {} : { link: {
|
|
12676
|
+
label: runtimeText(fix.link.label),
|
|
12677
|
+
href: fix.link.href
|
|
12678
|
+
} }
|
|
12627
12679
|
};
|
|
12628
|
-
|
|
12629
|
-
if (issue === "stale") return { textKey: "env.bridge.stale" };
|
|
12630
|
-
return { textKey: "env.bridge.unknown" };
|
|
12680
|
+
return { text: t("env.bridge.unknown") };
|
|
12631
12681
|
}
|
|
12632
12682
|
//#endregion
|
|
12633
12683
|
//#region src/app/layouts/env-gate/gate-deadline.ts
|
|
@@ -12701,9 +12751,11 @@ function el(tag, className, text) {
|
|
|
12701
12751
|
//#region src/app/layouts/env-gate/boot-gate.ts
|
|
12702
12752
|
var POLL_MS = 400;
|
|
12703
12753
|
var GIVE_UP_MS = 12e4;
|
|
12704
|
-
function stepLabel$1(
|
|
12754
|
+
function stepLabel$1(step, t) {
|
|
12755
|
+
const id = step.id;
|
|
12705
12756
|
if (id === "toolchain") return t("env.step.toolchain");
|
|
12706
|
-
if (id === "
|
|
12757
|
+
if (id === "runtime") return step.label ?? t("env.step.adapter");
|
|
12758
|
+
if (id === "cli") return t("env.step.runtime");
|
|
12707
12759
|
if (id === "warm") return t("env.step.warm");
|
|
12708
12760
|
if (id === "diy") return t("env.step.diy");
|
|
12709
12761
|
return t("env.step.bridge");
|
|
@@ -12892,7 +12944,7 @@ function createBootGate(ctx, options = {}) {
|
|
|
12892
12944
|
detail: el("span", BootGate_module_default.detail),
|
|
12893
12945
|
status: ""
|
|
12894
12946
|
};
|
|
12895
|
-
item.append(mark, el("span", BootGate_module_default.label, stepLabel$1(step
|
|
12947
|
+
item.append(mark, el("span", BootGate_module_default.label, stepLabel$1(step, t)), row.detail);
|
|
12896
12948
|
rows.set(step.id, row);
|
|
12897
12949
|
return row;
|
|
12898
12950
|
}
|
|
@@ -12918,10 +12970,9 @@ function createBootGate(ctx, options = {}) {
|
|
|
12918
12970
|
}
|
|
12919
12971
|
const rawLines = snapshot.steps.flatMap((step) => {
|
|
12920
12972
|
const detail = step.detail ?? "";
|
|
12921
|
-
return detail === "" ? [] : [`${stepLabel$1(step
|
|
12973
|
+
return detail === "" ? [] : [`${stepLabel$1(step, t)}: ${detail}`];
|
|
12922
12974
|
});
|
|
12923
12975
|
rawAllBody.textContent = rawLines.join("\n");
|
|
12924
|
-
rawAll.hidden = !showsRawDetails(snapshot) || rawLines.length === 0;
|
|
12925
12976
|
progressRow.hidden = snapshot.phase !== "installing";
|
|
12926
12977
|
if (snapshot.phase === "installing") startElapsed();
|
|
12927
12978
|
else stopElapsed();
|
|
@@ -12947,12 +12998,12 @@ function createBootGate(ctx, options = {}) {
|
|
|
12947
12998
|
if (bridgeBroken) {
|
|
12948
12999
|
const listed = bridgeIssues.length === 0 ? ["unknown"] : bridgeIssues;
|
|
12949
13000
|
bridgeLines.replaceChildren(...listed.map((issue) => {
|
|
12950
|
-
const advice = bridgeAdvice(issue);
|
|
12951
|
-
const item = el("li", BootGate_module_default.bridgeLine,
|
|
13001
|
+
const advice = bridgeAdvice(issue, t, runtimeProfileValue()?.bridge);
|
|
13002
|
+
const item = el("li", BootGate_module_default.bridgeLine, advice.text);
|
|
12952
13003
|
if (advice.link !== void 0) {
|
|
12953
13004
|
const link = document.createElement("a");
|
|
12954
13005
|
link.className = BootGate_module_default.link;
|
|
12955
|
-
link.textContent =
|
|
13006
|
+
link.textContent = advice.link.label;
|
|
12956
13007
|
link.href = advice.link.href;
|
|
12957
13008
|
link.target = "_blank";
|
|
12958
13009
|
link.rel = "noreferrer noopener";
|
|
@@ -12976,6 +13027,8 @@ function createBootGate(ctx, options = {}) {
|
|
|
12976
13027
|
diyRawText.textContent = gap.detail;
|
|
12977
13028
|
diyRaw.hidden = gap.detail === "";
|
|
12978
13029
|
}
|
|
13030
|
+
const panelShown = !actions.hidden || !bridge.hidden || !diy.hidden;
|
|
13031
|
+
rawAll.hidden = !showsRawAll(snapshot, panelShown) || rawLines.length === 0;
|
|
12979
13032
|
}
|
|
12980
13033
|
async function poll() {
|
|
12981
13034
|
if (cancelled) return;
|
|
@@ -13240,6 +13293,11 @@ function textOf(args, key) {
|
|
|
13240
13293
|
const value = args[key];
|
|
13241
13294
|
return typeof value === "string" ? value.replace(/\s+/g, " ").trim() : "";
|
|
13242
13295
|
}
|
|
13296
|
+
function labelsOf(args) {
|
|
13297
|
+
const value = args["labels"];
|
|
13298
|
+
if (!Array.isArray(value)) return [];
|
|
13299
|
+
return [...new Set(value.flatMap((one) => typeof one === "string" && one.trim() !== "" ? [one.trim()] : []))];
|
|
13300
|
+
}
|
|
13243
13301
|
function recordApprovalRows(args, t) {
|
|
13244
13302
|
const unit = textOf(args, "unit");
|
|
13245
13303
|
const doing = textOf(args, "doing");
|
|
@@ -13311,6 +13369,14 @@ function publishRows(args, preview, t) {
|
|
|
13311
13369
|
value: author !== "" ? author : preview === void 0 ? t("approval.publish.reading") : preview?.author === void 0 || preview.author === "" ? t("approval.publish.authorMissing") : preview.author
|
|
13312
13370
|
}
|
|
13313
13371
|
];
|
|
13372
|
+
if (target === "market" || target === "" && preview?.market !== void 0) {
|
|
13373
|
+
const asked = labelsOf(args);
|
|
13374
|
+
const labels = asked.length > 0 ? asked : preview?.labels ?? [];
|
|
13375
|
+
rows.push({
|
|
13376
|
+
label: t("approval.publish.labels"),
|
|
13377
|
+
value: preview === void 0 && asked.length === 0 ? t("approval.publish.reading") : labels.length === 0 ? t("approval.publish.labelsMissing") : labels.join(" · ")
|
|
13378
|
+
});
|
|
13379
|
+
}
|
|
13314
13380
|
const claim = preview?.claim;
|
|
13315
13381
|
if (claim !== void 0 && claim.state !== "new" && claim.state !== "unknown") {
|
|
13316
13382
|
if (claim.state === "unit-taken") rows.push({
|
|
@@ -13438,8 +13504,8 @@ function MarketSourceApprovalSeat({ tool, args, t }) {
|
|
|
13438
13504
|
function pluginToolIndexOf(manifests) {
|
|
13439
13505
|
const index = /* @__PURE__ */ new Map();
|
|
13440
13506
|
for (const manifest of manifests) for (const tool of manifest.tools) {
|
|
13441
|
-
if (tool.
|
|
13442
|
-
index.set(tool.name, tool.
|
|
13507
|
+
if (tool.runtime === void 0) continue;
|
|
13508
|
+
index.set(tool.name, tool.runtime);
|
|
13443
13509
|
}
|
|
13444
13510
|
return index;
|
|
13445
13511
|
}
|
|
@@ -15493,29 +15559,31 @@ function WorkspaceRenameDialog({ workspace, t, onClose, onSubmit }) {
|
|
|
15493
15559
|
}
|
|
15494
15560
|
//#endregion
|
|
15495
15561
|
//#region src/app/layouts/sidebar/workspace-groups.ts
|
|
15496
|
-
function workspaceSections(items, headings) {
|
|
15562
|
+
function workspaceSections(items, headings, options = {}) {
|
|
15497
15563
|
const workspaces = [];
|
|
15498
15564
|
const defaults = [];
|
|
15499
15565
|
const workshop = [];
|
|
15500
15566
|
for (const item of items) if (isWorkshopPath(item.path)) workshop.push(item);
|
|
15501
15567
|
else if (item.title === "default-workspace") defaults.push(item);
|
|
15502
15568
|
else workspaces.push(item);
|
|
15569
|
+
const rankOf = options.rankOf;
|
|
15570
|
+
const ordered = (rows) => rankOf === void 0 ? rows : [...rows].sort((left, right) => rankOf(left) - rankOf(right));
|
|
15503
15571
|
const special = defaults.length > 0 || workshop.length > 0;
|
|
15504
15572
|
const sections = [];
|
|
15505
15573
|
if (workspaces.length > 0) sections.push({
|
|
15506
15574
|
id: "workspaces",
|
|
15507
15575
|
heading: special ? headings.workspaces : null,
|
|
15508
|
-
items: workspaces
|
|
15576
|
+
items: ordered(workspaces)
|
|
15509
15577
|
});
|
|
15510
15578
|
if (defaults.length > 0) sections.push({
|
|
15511
15579
|
id: "defaultWorkspace",
|
|
15512
15580
|
heading: headings.defaultWorkspace,
|
|
15513
|
-
items: defaults
|
|
15581
|
+
items: ordered(defaults)
|
|
15514
15582
|
});
|
|
15515
15583
|
if (workshop.length > 0) sections.push({
|
|
15516
15584
|
id: "workshop",
|
|
15517
15585
|
heading: headings.workshop,
|
|
15518
|
-
items: workshop
|
|
15586
|
+
items: ordered(workshop)
|
|
15519
15587
|
});
|
|
15520
15588
|
return sections;
|
|
15521
15589
|
}
|
|
@@ -15603,7 +15671,11 @@ function ProjectSwitcher({ items, current, attention, compact = false, onPick, o
|
|
|
15603
15671
|
workspaces: t("project.group.workspaces"),
|
|
15604
15672
|
defaultWorkspace: t("project.group.defaultWorkspace"),
|
|
15605
15673
|
workshop: t("project.group.workshop")
|
|
15606
|
-
}), [
|
|
15674
|
+
}, { rankOf: (workspace) => attentionListRank(attention.byWorkspace.get(workspace.workspaceId)) }), [
|
|
15675
|
+
items,
|
|
15676
|
+
attention.byWorkspace,
|
|
15677
|
+
t
|
|
15678
|
+
]);
|
|
15607
15679
|
const options = (0, react.useMemo)(() => workspaceOptions({
|
|
15608
15680
|
sections,
|
|
15609
15681
|
currentId,
|
|
@@ -15622,7 +15694,6 @@ function ProjectSwitcher({ items, current, attention, compact = false, onPick, o
|
|
|
15622
15694
|
t,
|
|
15623
15695
|
attention.byWorkspace
|
|
15624
15696
|
]);
|
|
15625
|
-
const revealId = (0, react.useMemo)(() => options.find((option) => attention.byWorkspace.has(option.value))?.value, [options, attention.byWorkspace]);
|
|
15626
15697
|
const valueNodes = (0, react.useMemo)(() => {
|
|
15627
15698
|
const out = /* @__PURE__ */ new Map();
|
|
15628
15699
|
for (const workspace of items) {
|
|
@@ -15654,7 +15725,6 @@ function ProjectSwitcher({ items, current, attention, compact = false, onPick, o
|
|
|
15654
15725
|
variant: "ghost",
|
|
15655
15726
|
iconOnly: compact,
|
|
15656
15727
|
search: !compact,
|
|
15657
|
-
revealId,
|
|
15658
15728
|
ariaLabel: t("project.label"),
|
|
15659
15729
|
searchLabel: t("project.search.label"),
|
|
15660
15730
|
searchPlaceholder: t("project.search.placeholder"),
|
|
@@ -16428,7 +16498,7 @@ function messagesOf(units) {
|
|
|
16428
16498
|
...face.messages === void 0 ? {} : { messages: face.messages }
|
|
16429
16499
|
}));
|
|
16430
16500
|
}
|
|
16431
|
-
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: grid;\n grid-template-columns: minmax(var(--wb-len-56), auto) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-2);\n align-items: baseline;\n margin: 0;\n}\n.wb-approvalRow {\n display: contents;\n}\n.wb-approvalLabel {\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.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_1vpw3_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_1vpw3_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_1vpw3_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_1vpw3_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_1vpw3_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_1vpw3_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_1vpw3_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_1vpw3_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_1vpw3_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_1vpw3_39 ._marketVersion_1vpw3_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_1vpw3_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_1vpw3_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_1vpw3_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_1vpw3_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1vpw3_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1vpw3_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_1vpw3_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_1vpw3_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_1vpw3_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_1vpw3_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_1vpw3_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_1vpw3_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_1vpw3_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_1vpw3_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_1vpw3_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_1vpw3_183 ._marketSectionTitle_1vpw3_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketName_1vpw3_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketIcon_1vpw3_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketProgress_1vpw3_195 {\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_1vpw3_205 {\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_1vpw3_212 {\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._marketFailureSeat_1vpw3_219 {\n grid-column: 2 / -1;\n min-width: 0;\n}\n\n._marketEmpty_1vpw3_224 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_1vpw3_229 {\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_1vpw3_229 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_1vpw3_247 {\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_1vpw3_255 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_1vpw3_260 {\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_1vpw3_266 {\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_1vpw3_275 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_1vpw3_275[hidden] {\n display: none;\n}\n\n._marketTabs_1vpw3_285 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_1vpw3_290 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_1vpw3_295 {\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_1vpw3_224 {\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_1vpw3_312 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_1vpw3_317 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_1vpw3_324 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_1vpw3_331 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_1vpw3_337 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_1vpw3_342 {\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_1vpw3_349 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_1vpw3_355 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_1vpw3_360 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_1vpw3_365 {\n flex: none;\n}\n\n._discoverSearch_1vpw3_369 {\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_1vpw3_377 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_1vpw3_382 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_1vpw3_377 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_1vpw3_369 ._discoverSearchClear_1vpw3_391 {\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_1vpw3_391:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_1vpw3_331 {\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_1vpw3_337 {\n grid-area: market;\n }\n\n ._discoverMarketButton_1vpw3_342 {\n margin-left: 0;\n }\n\n ._discoverLabels_1vpw3_355 {\n grid-area: labels;\n }\n\n ._discoverSearch_1vpw3_369 {\n grid-area: search;\n }\n\n ._discoverSort_1vpw3_360 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_1vpw3_365 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_1vpw3_442 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_1vpw3_449 {\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_1vpw3_458 {\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_1vpw3_458:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_1vpw3_472 {\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_1vpw3_484 {\n object-fit: contain;\n}\n\n._discoverMain_1vpw3_488 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_1vpw3_496 {\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_1vpw3_504 {\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_1vpw3_504::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_1vpw3_504:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_1vpw3_504: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_1vpw3_535 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_1vpw3_541 {\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_1vpw3_550 {\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_1vpw3_557 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_1vpw3_563 {\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_1vpw3_572 {\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_1vpw3_577 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_1vpw3_582 {\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_1vpw3_591 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_1vpw3_582 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_1vpw3_601 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_1vpw3_607 {\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_1vpw3_607:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_1vpw3_607: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_1vpw3_630 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_1vpw3_634 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_1vpw3_640 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_1vpw3_646 {\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_1vpw3_653 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_1vpw3_660 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_1vpw3_665 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_1vpw3_670 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_1vpw3_675 {\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_1vpw3_681 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_1vpw3_688 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_1vpw3_694 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_1vpw3_699 {\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_1vpw3_709 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_1vpw3_715 {\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_1vpw3_723 {\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_1vpw3_732 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_1vpw3_739 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_1vpw3_739:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_1vpw3_749 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_1vpw3_757 {\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_1vpw3_765 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_1vpw3_770 {\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_1vpw3_779 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_1vpw3_785 {\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_1vpw3_794 {\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_1vpw3_794 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_1vpw3_812 {\n align-self: center;\n}\n\n._discoverTransport_1vpw3_816 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_1vpw3_822 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_1vpw3_829 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_1vpw3_822 ._discoverTransportKind_1vpw3_834 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_1vpw3_822 ._discoverTransportState_1vpw3_839 {\n margin-left: 0;\n}\n\n._discoverTransportHead_1vpw3_822 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_1vpw3_847 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_1vpw3_847 {\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_1vpw3_847:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_1vpw3_847:has(._discoverTransportRadio_1vpw3_868:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_1vpw3_847:has(._discoverTransportRadio_1vpw3_868:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_1vpw3_868 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_1vpw3_834 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_1vpw3_839 {\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_1vpw3_847[data-state='ok'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='auth'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='unreachable'] ._discoverTransportState_1vpw3_839,\n._discoverTransportRow_1vpw3_847[data-state='unknown'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_1vpw3_908 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_1vpw3_914 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_1vpw3_919 {\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_1vpw3_930 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_1vpw3_936 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_1vpw3_940 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_1vpw3_946 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_1vpw3_954 {\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_1vpw3_963 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_1vpw3_969 {\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_1vpw3_978 {\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_1vpw3_986 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_1vpw3_994 {\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_1vpw3_1002 {\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_1vpw3_1012 {\n flex: none;\n}\n\n._discoverSourceLoading_1vpw3_1016 {\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_1vpw3_1026 {\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_1vpw3_1026 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_1vpw3_1040 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_1vpw3_1046 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_1vpw3_1052 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_1vpw3_1057 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_1vpw3_1063 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_1vpw3_1068 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_1vpw3_1074 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_1vpw3_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_1vpw3_472._discoverSkeletonFill_1vpw3_1074 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_1vpw3_1083 {\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_1vpw3_1090 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_1vpw3_1094 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_1vpw3_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_1vpw3_1074 {\n animation: none;\n }\n}\n\n._block_mxnbc_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-2) 0 var(--wb-len-8);\n min-width: 0;\n}\n\n._head_mxnbc_9 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._title_mxnbc_16 {\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._fact_mxnbc_22 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._actions_mxnbc_30 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-2);\n margin-left: calc(-1 * var(--wb-len-8));\n}\n\n._hint_mxnbc_38 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._output_mxnbc_44 {\n margin-top: var(--wb-len-2);\n min-width: 0;\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._actions_smeq7_1 {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--wb-len-8);\n max-width: 100%;\n}\n\n._action_smeq7_1 {\n flex: none;\n white-space: nowrap;\n}\n\n@container (max-width: 340px) {\n ._actions_smeq7_1 {\n flex-direction: column;\n width: var(--wb-len-220);\n max-width: 100%;\n }\n\n ._action_smeq7_1 {\n width: 100%;\n }\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*/";
|
|
16501
|
+
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: grid;\n grid-template-columns: minmax(var(--wb-len-56), auto) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-2);\n align-items: baseline;\n margin: 0;\n}\n.wb-approvalRow {\n display: contents;\n}\n.wb-approvalLabel {\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.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-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_1vpw3_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_1vpw3_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_1vpw3_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_1vpw3_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_1vpw3_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_1vpw3_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_1vpw3_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_1vpw3_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_1vpw3_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_1vpw3_39 ._marketVersion_1vpw3_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_1vpw3_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_1vpw3_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_1vpw3_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_1vpw3_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1vpw3_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1vpw3_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_1vpw3_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_1vpw3_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_1vpw3_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_1vpw3_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_1vpw3_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_1vpw3_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_1vpw3_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_1vpw3_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_1vpw3_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_1vpw3_183 ._marketSectionTitle_1vpw3_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketName_1vpw3_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketIcon_1vpw3_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketProgress_1vpw3_195 {\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_1vpw3_205 {\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_1vpw3_212 {\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._marketFailureSeat_1vpw3_219 {\n grid-column: 2 / -1;\n min-width: 0;\n}\n\n._marketEmpty_1vpw3_224 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_1vpw3_229 {\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_1vpw3_229 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_1vpw3_247 {\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_1vpw3_255 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_1vpw3_260 {\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_1vpw3_266 {\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_1vpw3_275 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_1vpw3_275[hidden] {\n display: none;\n}\n\n._marketTabs_1vpw3_285 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_1vpw3_290 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_1vpw3_295 {\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_1vpw3_224 {\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_1vpw3_312 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_1vpw3_317 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_1vpw3_324 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_1vpw3_331 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_1vpw3_337 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_1vpw3_342 {\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_1vpw3_349 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_1vpw3_355 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_1vpw3_360 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_1vpw3_365 {\n flex: none;\n}\n\n._discoverSearch_1vpw3_369 {\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_1vpw3_377 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_1vpw3_382 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_1vpw3_377 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_1vpw3_369 ._discoverSearchClear_1vpw3_391 {\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_1vpw3_391:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_1vpw3_331 {\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_1vpw3_337 {\n grid-area: market;\n }\n\n ._discoverMarketButton_1vpw3_342 {\n margin-left: 0;\n }\n\n ._discoverLabels_1vpw3_355 {\n grid-area: labels;\n }\n\n ._discoverSearch_1vpw3_369 {\n grid-area: search;\n }\n\n ._discoverSort_1vpw3_360 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_1vpw3_365 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_1vpw3_442 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_1vpw3_449 {\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_1vpw3_458 {\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_1vpw3_458:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_1vpw3_472 {\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_1vpw3_484 {\n object-fit: contain;\n}\n\n._discoverMain_1vpw3_488 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_1vpw3_496 {\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_1vpw3_504 {\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_1vpw3_504::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_1vpw3_504:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_1vpw3_504: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_1vpw3_535 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_1vpw3_541 {\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_1vpw3_550 {\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_1vpw3_557 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_1vpw3_563 {\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_1vpw3_572 {\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_1vpw3_577 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_1vpw3_582 {\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_1vpw3_591 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_1vpw3_582 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_1vpw3_601 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_1vpw3_607 {\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_1vpw3_607:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_1vpw3_607: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_1vpw3_630 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_1vpw3_634 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_1vpw3_640 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_1vpw3_646 {\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_1vpw3_653 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_1vpw3_660 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_1vpw3_665 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_1vpw3_670 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_1vpw3_675 {\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_1vpw3_681 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_1vpw3_688 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_1vpw3_694 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_1vpw3_699 {\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_1vpw3_709 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_1vpw3_715 {\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_1vpw3_723 {\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_1vpw3_732 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_1vpw3_739 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_1vpw3_739:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_1vpw3_749 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_1vpw3_757 {\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_1vpw3_765 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_1vpw3_770 {\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_1vpw3_779 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_1vpw3_785 {\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_1vpw3_794 {\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_1vpw3_794 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_1vpw3_812 {\n align-self: center;\n}\n\n._discoverTransport_1vpw3_816 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_1vpw3_822 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_1vpw3_829 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_1vpw3_822 ._discoverTransportKind_1vpw3_834 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_1vpw3_822 ._discoverTransportState_1vpw3_839 {\n margin-left: 0;\n}\n\n._discoverTransportHead_1vpw3_822 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_1vpw3_847 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_1vpw3_847 {\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_1vpw3_847:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_1vpw3_847:has(._discoverTransportRadio_1vpw3_868:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_1vpw3_847:has(._discoverTransportRadio_1vpw3_868:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_1vpw3_868 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_1vpw3_834 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_1vpw3_839 {\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_1vpw3_847[data-state='ok'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='auth'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='unreachable'] ._discoverTransportState_1vpw3_839,\n._discoverTransportRow_1vpw3_847[data-state='unknown'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_1vpw3_908 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_1vpw3_914 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_1vpw3_919 {\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_1vpw3_930 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_1vpw3_936 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_1vpw3_940 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_1vpw3_946 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_1vpw3_954 {\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_1vpw3_963 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_1vpw3_969 {\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_1vpw3_978 {\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_1vpw3_986 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_1vpw3_994 {\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_1vpw3_1002 {\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_1vpw3_1012 {\n flex: none;\n}\n\n._discoverSourceLoading_1vpw3_1016 {\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_1vpw3_1026 {\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_1vpw3_1026 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_1vpw3_1040 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_1vpw3_1046 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_1vpw3_1052 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_1vpw3_1057 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_1vpw3_1063 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_1vpw3_1068 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_1vpw3_1074 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_1vpw3_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_1vpw3_472._discoverSkeletonFill_1vpw3_1074 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_1vpw3_1083 {\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_1vpw3_1090 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_1vpw3_1094 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_1vpw3_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_1vpw3_1074 {\n animation: none;\n }\n}\n\n._block_mxnbc_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-2) 0 var(--wb-len-8);\n min-width: 0;\n}\n\n._head_mxnbc_9 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._title_mxnbc_16 {\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._fact_mxnbc_22 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._actions_mxnbc_30 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-2);\n margin-left: calc(-1 * var(--wb-len-8));\n}\n\n._hint_mxnbc_38 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._output_mxnbc_44 {\n margin-top: var(--wb-len-2);\n min-width: 0;\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._actions_smeq7_1 {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--wb-len-8);\n max-width: 100%;\n}\n\n._action_smeq7_1 {\n flex: none;\n white-space: nowrap;\n}\n\n@container (max-width: 340px) {\n ._actions_smeq7_1 {\n flex-direction: column;\n width: var(--wb-len-220);\n max-width: 100%;\n }\n\n ._action_smeq7_1 {\n width: 100%;\n }\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*/";
|
|
16432
16502
|
function workbenchCss() {
|
|
16433
16503
|
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}`;
|
|
16434
16504
|
}
|
|
@@ -16458,6 +16528,10 @@ function apply(ctx) {
|
|
|
16458
16528
|
}
|
|
16459
16529
|
}
|
|
16460
16530
|
function mount(ctx) {
|
|
16531
|
+
setRuntimeTextResolver((text) => ctx.locale.resolveText?.({
|
|
16532
|
+
zh: text.zh,
|
|
16533
|
+
en: text.en
|
|
16534
|
+
}) ?? text.zh);
|
|
16461
16535
|
const loadUnitManifests = createUnitManifestLoader();
|
|
16462
16536
|
const units = createClientUnitRegistry({ onUnknownUnit: () => loadUnitManifests(units) });
|
|
16463
16537
|
ctx.provide(UNITS_SERVICE, {
|