@dsh-workbench/core 1.1.10 → 1.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/client.js CHANGED
@@ -792,17 +792,17 @@ window.__ModuleLoader__.load({
792
792
  //#endregion
793
793
  //#region ../shared/dist/lib/react.js
794
794
  var react$1 = require("react");
795
- var h$70 = react$1.createElement;
796
- var Fragment$22 = react$1.Fragment;
795
+ var h$74 = react$1.createElement;
796
+ var Fragment$24 = react$1.Fragment;
797
797
  var Component = react$1.Component;
798
798
  react$1.createContext;
799
799
  react$1.useContext;
800
- var useState$42 = react$1.useState;
800
+ var useState$43 = react$1.useState;
801
801
  var useEffect$33 = react$1.useEffect;
802
802
  react$1.useLayoutEffect;
803
803
  var useMemo$10 = react$1.useMemo;
804
804
  react$1.useCallback;
805
- var useRef$24 = react$1.useRef;
805
+ var useRef$23 = react$1.useRef;
806
806
  react$1.useSyncExternalStore;
807
807
  //#endregion
808
808
  //#region ../shared/dist/components/Activity.js
@@ -813,7 +813,7 @@ window.__ModuleLoader__.load({
813
813
  * @returns 一个 div。
814
814
  */
815
815
  function ActivityBlock({ head, children }) {
816
- return h$70("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$70("div", { className: "wb-activityBlockHead" }, head), children);
816
+ return h$74("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$74("div", { className: "wb-activityBlockHead" }, head), children);
817
817
  }
818
818
  /**
819
819
  * 一条活动:状态点 + 正文 + 时间,行尾可挂动作;时间一律用它,别自己拼。
@@ -824,7 +824,7 @@ window.__ModuleLoader__.load({
824
824
  * @returns 一行。
825
825
  */
826
826
  function ActivityLine({ dot, text, at, actions }) {
827
- 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));
827
+ return h$74("div", { className: "wb-activityLine" }, dot, h$74("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h$74("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h$74("span", { className: "wb-activityLineActions" }, actions));
828
828
  }
829
829
  /**
830
830
  * 活动行尾那颗动作:给 `href` 就是外链,否则是图标钮并带上 tooltip。
@@ -838,7 +838,7 @@ window.__ModuleLoader__.load({
838
838
  */
839
839
  function ActivityAction({ label, hint, icon, href, onClick, failed }) {
840
840
  const tip = hint ?? label;
841
- if (href !== void 0) return h$70("a", {
841
+ if (href !== void 0) return h$74("a", {
842
842
  className: "wb-iconButton",
843
843
  href,
844
844
  target: "_blank",
@@ -846,13 +846,13 @@ window.__ModuleLoader__.load({
846
846
  title: tip,
847
847
  "aria-label": label
848
848
  }, icon);
849
- return h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
849
+ return h$74(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
850
850
  side: "bottom",
851
851
  align: "end",
852
852
  gap: 6,
853
853
  portal: true,
854
854
  label: tip
855
- }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
855
+ }, h$74(_deepseek_ai_dsh_client_ui_primitives.Button, {
856
856
  type: "button",
857
857
  variant: "ghost",
858
858
  size: "sm",
@@ -874,10 +874,10 @@ window.__ModuleLoader__.load({
874
874
  */
875
875
  function Note({ tone = "muted", as, role, children }) {
876
876
  const className = tone === "problem" ? "wb-problem" : "wb-note";
877
- return as === "span" ? h$70("span", {
877
+ return as === "span" ? h$74("span", {
878
878
  className,
879
879
  role
880
- }, children) : h$70("p", {
880
+ }, children) : h$74("p", {
881
881
  className,
882
882
  role
883
883
  }, children);
@@ -921,10 +921,10 @@ window.__ModuleLoader__.load({
921
921
  render() {
922
922
  const { reason } = this.state;
923
923
  if (reason === null) return this.props.children;
924
- return h$70(Note, { tone: "problem" }, h$70("span", null, this.props.t("panels.cardBroken", {
924
+ return h$74(Note, { tone: "problem" }, h$74("span", null, this.props.t("panels.cardBroken", {
925
925
  unit: this.props.unit,
926
926
  reason
927
- })), " ", h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
927
+ })), " ", h$74(_deepseek_ai_dsh_client_ui_primitives.Button, {
928
928
  type: "button",
929
929
  variant: "outline",
930
930
  size: "sm",
@@ -974,19 +974,19 @@ window.__ModuleLoader__.load({
974
974
  const owner = (props.units ?? []).find((face) => face.approval?.tools.includes(input.tool) === true);
975
975
  if (owner?.approval !== void 0) {
976
976
  const Render = owner.approval.render;
977
- return h$70(CardBoundary, {
977
+ return h$74(CardBoundary, {
978
978
  unit: owner.unit,
979
979
  resetKey: props.callId ?? "",
980
980
  t
981
- }, h$70(Render, {
981
+ }, h$74(Render, {
982
982
  input,
983
983
  t
984
984
  }));
985
985
  }
986
986
  const shell = props.renderShell?.(input, t);
987
- if (shell !== void 0 && shell !== null) return h$70(Fragment$22, null, shell);
987
+ if (shell !== void 0 && shell !== null) return h$74(Fragment$24, null, shell);
988
988
  if (command === "") return null;
989
- return h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
989
+ return h$74(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
990
990
  code: command,
991
991
  className: "wb-approvalCommand",
992
992
  copyLabel: t("blocker.copy"),
@@ -1004,10 +1004,10 @@ window.__ModuleLoader__.load({
1004
1004
  * @returns 一个 div。
1005
1005
  */
1006
1006
  function ApprovalPlan({ rows, hint, warn, children }) {
1007
- 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", {
1007
+ return h$74("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h$74("p", { className: "wb-approvalHint" }, hint), h$74("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h$74("div", {
1008
1008
  className: "wb-approvalRow",
1009
1009
  key: String(index)
1010
- }, 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));
1010
+ }, h$74("dt", { className: "wb-approvalLabel" }, row.label), h$74("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h$74("p", { className: "wb-approvalWarn" }, warn));
1011
1011
  }
1012
1012
  //#endregion
1013
1013
  //#region ../shared/dist/components/CardHead.js
@@ -1024,47 +1024,47 @@ window.__ModuleLoader__.load({
1024
1024
  function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle }) {
1025
1025
  const refreshLabel = refreshing ? t("rightbar.refreshing") : t("rightbar.refresh");
1026
1026
  const platformLabel = platformTitle ?? platform ?? t("rightbar.openPlatform");
1027
- 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, {
1027
+ return h$74("header", { className: "wb-cardHead" }, h$74("h2", { className: "wb-cardTitle" }, title), meta === void 0 ? null : h$74("span", { className: "wb-cardMeta" }, meta), platformHref === void 0 ? null : h$74(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1028
1028
  side: "bottom",
1029
1029
  align: "end",
1030
1030
  gap: 6,
1031
1031
  portal: true,
1032
1032
  label: platformLabel
1033
- }, h$70("a", {
1033
+ }, h$74("a", {
1034
1034
  className: "wb-iconButton wb-cardOpen",
1035
1035
  href: platformHref,
1036
1036
  target: "_blank",
1037
1037
  rel: "noreferrer noopener",
1038
1038
  "aria-label": platform ?? platformLabel
1039
- }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1039
+ }, h$74(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$74(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1040
1040
  side: "bottom",
1041
1041
  align: "end",
1042
1042
  gap: 6,
1043
1043
  portal: true,
1044
1044
  label: refreshLabel
1045
- }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1045
+ }, h$74(_deepseek_ai_dsh_client_ui_primitives.Button, {
1046
1046
  type: "button",
1047
1047
  size: "sm",
1048
1048
  variant: "ghost",
1049
1049
  className: `wb-cardRefresh${refreshing ? " wb-spinning" : ""}`,
1050
1050
  "aria-label": refreshLabel,
1051
1051
  disabled: refreshing,
1052
- icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
1052
+ icon: h$74(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
1053
1053
  onClick: onRefresh
1054
- })), gear === void 0 || onToggleGear === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1054
+ })), gear === void 0 || onToggleGear === void 0 ? null : h$74(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1055
1055
  side: "bottom",
1056
1056
  align: "end",
1057
1057
  gap: 6,
1058
1058
  portal: true,
1059
1059
  label: gear
1060
- }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1060
+ }, h$74(_deepseek_ai_dsh_client_ui_primitives.Button, {
1061
1061
  type: "button",
1062
1062
  size: "sm",
1063
1063
  variant: "ghost",
1064
1064
  className: `wb-cardGear${gearOpen === true ? " wb-iconButtonActive" : ""}`,
1065
1065
  "aria-label": gear,
1066
1066
  "aria-expanded": gearOpen === true,
1067
- icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
1067
+ icon: h$74(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
1068
1068
  onClick: onToggleGear
1069
1069
  })));
1070
1070
  }
@@ -1081,13 +1081,13 @@ window.__ModuleLoader__.load({
1081
1081
  * @returns 一个 `<section>`。
1082
1082
  */
1083
1083
  function Card({ t, title, refreshing, onRefresh, meta, head, children }) {
1084
- return h$70("section", { className: "wb-card" }, head === void 0 ? h$70(CardHead, {
1084
+ return h$74("section", { className: "wb-card" }, head === void 0 ? h$74(CardHead, {
1085
1085
  t,
1086
1086
  title,
1087
1087
  refreshing,
1088
1088
  onRefresh,
1089
1089
  meta
1090
- }) : head, h$70("div", { className: "wb-cardBody" }, children));
1090
+ }) : head, h$74("div", { className: "wb-cardBody" }, children));
1091
1091
  }
1092
1092
  var CardAnchor_module_default = { anchor: "_anchor_yq4s2_1" };
1093
1093
  //#endregion
@@ -1107,7 +1107,7 @@ window.__ModuleLoader__.load({
1107
1107
  * @returns 带 id 的占位 div。
1108
1108
  */
1109
1109
  function CardAnchor({ unit, children }) {
1110
- return h$70("div", {
1110
+ return h$74("div", {
1111
1111
  id: cardIdOf(unit),
1112
1112
  className: CardAnchor_module_default.anchor
1113
1113
  }, children);
@@ -1121,13 +1121,13 @@ window.__ModuleLoader__.load({
1121
1121
  * @returns 一枚 `StateDot state="ongoing"`,自身不带文字。
1122
1122
  */
1123
1123
  function Spinner({ size = 14, label }) {
1124
- return h$70("span", {
1124
+ return h$74("span", {
1125
1125
  className: "wb-spinner",
1126
1126
  ...label === void 0 ? { "aria-hidden": true } : {
1127
1127
  role: "status",
1128
1128
  "aria-label": label
1129
1129
  }
1130
- }, h$70(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1130
+ }, h$74(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1131
1131
  state: "ongoing",
1132
1132
  size
1133
1133
  }));
@@ -1135,24 +1135,24 @@ window.__ModuleLoader__.load({
1135
1135
  //#endregion
1136
1136
  //#region ../shared/dist/components/ChoiceGroup.js
1137
1137
  function ChoiceMenu(input) {
1138
- const body = input.loading ? h$70("span", {
1138
+ const body = input.loading ? h$74("span", {
1139
1139
  className: "wb-choiceLoading",
1140
1140
  role: "status"
1141
- }, 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) => {
1141
+ }, h$74(Spinner, { size: 14 }), h$74("span", { className: "wb-choiceLoadingText" }, input.loadingText ?? "…")) : input.options.length === 0 ? input.emptyText === void 0 ? null : h$74("span", { className: "wb-choiceEmpty" }, input.emptyText) : input.options.map((option) => {
1142
1142
  const row = input.rowOf(option.value);
1143
- return h$70(Fragment$22, { key: option.value }, h$70("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$70("input", {
1143
+ return h$74(Fragment$24, { key: option.value }, h$74("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$74("input", {
1144
1144
  className: input.multi ? "wb-checkbox" : "wb-radio",
1145
1145
  type: input.multi ? "checkbox" : "radio",
1146
1146
  name: input.name,
1147
1147
  checked: row.checked,
1148
1148
  disabled: input.disabled,
1149
1149
  onChange: row.onSelect
1150
- }), input.multi ? h$70("span", {
1150
+ }), input.multi ? h$74("span", {
1151
1151
  className: "wb-checkboxBox",
1152
1152
  "aria-hidden": "true"
1153
- }, 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))));
1153
+ }, row.checked ? h$74(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 }) : null) : null, h$74("span", { className: "wb-choiceLabel" }, h$74("span", { className: "wb-choiceLabelText" }, option.label), option.description === void 0 ? null : h$74("span", { className: "wb-choiceDescription" }, option.description))));
1154
1154
  });
1155
- return h$70("div", {
1155
+ return h$74("div", {
1156
1156
  className: "wb-choiceMenu",
1157
1157
  "data-variant": input.variant,
1158
1158
  role: input.multi ? "group" : "radiogroup",
@@ -1186,7 +1186,7 @@ window.__ModuleLoader__.load({
1186
1186
  if (props.multi === true) {
1187
1187
  const values = props.values;
1188
1188
  const onChange = props.onChange;
1189
- return h$70(ChoiceMenu, {
1189
+ return h$74(ChoiceMenu, {
1190
1190
  label: common.label,
1191
1191
  name: common.name,
1192
1192
  options: common.options,
@@ -1206,7 +1206,7 @@ window.__ModuleLoader__.load({
1206
1206
  }
1207
1207
  const value = props.value;
1208
1208
  const onChange = props.onChange;
1209
- return h$70(ChoiceMenu, {
1209
+ return h$74(ChoiceMenu, {
1210
1210
  label: common.label,
1211
1211
  name: common.name,
1212
1212
  options: common.options,
@@ -1259,17 +1259,17 @@ window.__ModuleLoader__.load({
1259
1259
  function FormActions({ actions }) {
1260
1260
  if (actions.length === 0) return null;
1261
1261
  reportExtraPrimaries(actions);
1262
- return h$70("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
1262
+ return h$74("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
1263
1263
  const kind = kindOf(action);
1264
1264
  const busy = action.busy === true;
1265
- return h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1265
+ return h$74(_deepseek_ai_dsh_client_ui_primitives.Button, {
1266
1266
  key: action.key,
1267
1267
  type: "button",
1268
1268
  size: "sm",
1269
1269
  variant: variantOf(kind),
1270
1270
  className: kind === "danger" ? "wb-formActionDanger" : void 0,
1271
1271
  disabled: busy || action.disabled === true,
1272
- icon: busy ? h$70(Spinner, { size: 12 }) : void 0,
1272
+ icon: busy ? h$74(Spinner, { size: 12 }) : void 0,
1273
1273
  onClick: action.onClick
1274
1274
  }, action.label);
1275
1275
  }));
@@ -1282,7 +1282,7 @@ window.__ModuleLoader__.load({
1282
1282
  * @returns 竖排的 div。
1283
1283
  */
1284
1284
  function Rows({ children }) {
1285
- return h$70("div", { className: "wb-rows" }, children);
1285
+ return h$74("div", { className: "wb-rows" }, children);
1286
1286
  }
1287
1287
  /**
1288
1288
  * 一行键值:左边名字、右边值;要成对说明一项数据就用它,别自己写两栏。
@@ -1291,7 +1291,7 @@ window.__ModuleLoader__.load({
1291
1291
  * @returns 一行两格。
1292
1292
  */
1293
1293
  function Row({ label, value }) {
1294
- return h$70("div", { className: "wb-row" }, h$70("span", { className: "wb-rowKey" }, label), h$70("span", { className: "wb-rowValue" }, value));
1294
+ return h$74("div", { className: "wb-row" }, h$74("span", { className: "wb-rowKey" }, label), h$74("span", { className: "wb-rowValue" }, value));
1295
1295
  }
1296
1296
  //#endregion
1297
1297
  //#region ../shared/dist/components/ConfirmBar.js
@@ -1308,19 +1308,19 @@ window.__ModuleLoader__.load({
1308
1308
  * @returns 一个 `role="group"` 的条;`actions` 空数组时最后那一块不渲染。
1309
1309
  */
1310
1310
  function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
1311
- return h$70("div", {
1311
+ return h$74("div", {
1312
1312
  className: "wb-confirmBar",
1313
1313
  role: "group",
1314
1314
  "aria-label": label ?? (typeof title === "string" ? title : void 0),
1315
1315
  "aria-busy": busy
1316
- }, 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, {
1316
+ }, h$74("p", { className: "wb-confirmBarTitle" }, title), hint === void 0 ? null : h$74("p", { className: "wb-confirmBarHint" }, hint), rows === void 0 || rows.length === 0 ? null : h$74(Rows, null, rows.map((row) => h$74(Row, {
1317
1317
  key: row.key,
1318
1318
  label: row.label,
1319
1319
  value: row.value
1320
- }))), problem === void 0 ? null : h$70(Note, {
1320
+ }))), problem === void 0 ? null : h$74(Note, {
1321
1321
  tone: "problem",
1322
1322
  role: "alert"
1323
- }, problem), h$70(FormActions, { actions }));
1323
+ }, problem), h$74(FormActions, { actions }));
1324
1324
  }
1325
1325
  //#endregion
1326
1326
  //#region ../shared/dist/components/Field.js
@@ -1332,7 +1332,7 @@ window.__ModuleLoader__.load({
1332
1332
  * @returns 一个 `<label>`,点标签会聚焦里面的控件。
1333
1333
  */
1334
1334
  function Field({ label, hint, children }) {
1335
- 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));
1335
+ return h$74("label", { className: "wb-field" }, h$74("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$74("span", { className: "wb-fieldHint" }, hint));
1336
1336
  }
1337
1337
  //#endregion
1338
1338
  //#region ../shared/dist/components/FormRows.js
@@ -1342,7 +1342,7 @@ window.__ModuleLoader__.load({
1342
1342
  * @returns 竖排的 div。
1343
1343
  */
1344
1344
  function FormRows({ children }) {
1345
- return h$70("div", { className: "wb-formRows" }, children);
1345
+ return h$74("div", { className: "wb-formRows" }, children);
1346
1346
  }
1347
1347
  /**
1348
1348
  * 表单一行:左边标签、右边控件,提示与错误占控件下面那一格。
@@ -1355,14 +1355,14 @@ window.__ModuleLoader__.load({
1355
1355
  * @returns 一个 `<div>`:里面的 `<label>` 只包标签文字,不包控件、提示与整行的空白。
1356
1356
  */
1357
1357
  function FormRow({ label, htmlFor, hint, problem, layout = "inline", children }) {
1358
- return h$70("div", {
1358
+ return h$74("div", {
1359
1359
  className: "wb-formRow",
1360
1360
  "data-layout": layout,
1361
1361
  "data-wb-problem": problem === void 0 ? void 0 : ""
1362
- }, h$70("label", {
1362
+ }, h$74("label", {
1363
1363
  className: "wb-formLabel",
1364
1364
  htmlFor
1365
- }, 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));
1365
+ }, label), h$74("span", { className: "wb-formControl" }, children), problem === void 0 ? hint === void 0 ? null : h$74("span", { className: "wb-formHint" }, hint) : h$74("span", { className: "wb-formProblem" }, problem));
1366
1366
  }
1367
1367
  //#endregion
1368
1368
  //#region ../shared/dist/components/FormNodes.js
@@ -1509,7 +1509,7 @@ window.__ModuleLoader__.load({
1509
1509
  * @returns `FormRow` 组成的数组;没有可画的格子时给空数组。
1510
1510
  */
1511
1511
  function formRowsOf(args) {
1512
- return args.fields.map((field) => h$70(FormRow, {
1512
+ return args.fields.map((field) => h$74(FormRow, {
1513
1513
  key: field.key,
1514
1514
  label: field.label,
1515
1515
  htmlFor: controlIdOf(field.key),
@@ -1585,9 +1585,9 @@ window.__ModuleLoader__.load({
1585
1585
  */
1586
1586
  function Form(props) {
1587
1587
  const { fields, onSubmit, submit, cancel, extra, busy = false, disabled = false, problem } = props;
1588
- const [done, setDone] = useState$42(false);
1589
- const [reveal, setReveal] = useState$42(0);
1590
- const rootRef = useRef$24(null);
1588
+ const [done, setDone] = useState$43(false);
1589
+ const [reveal, setReveal] = useState$43(0);
1590
+ const rootRef = useRef$23(null);
1591
1591
  const shown = visibleFieldsOf(fields);
1592
1592
  const problems = formProblemsOf(shown, done);
1593
1593
  reportDuplicateKeys(shown);
@@ -1606,7 +1606,7 @@ window.__ModuleLoader__.load({
1606
1606
  }
1607
1607
  onSubmit(outcome.values);
1608
1608
  };
1609
- return h$70("form", {
1609
+ return h$74("form", {
1610
1610
  className: "wb-form",
1611
1611
  ref: rootRef,
1612
1612
  noValidate: true,
@@ -1614,15 +1614,15 @@ window.__ModuleLoader__.load({
1614
1614
  event.preventDefault();
1615
1615
  submitForm();
1616
1616
  }
1617
- }, h$70(FormRows, null, formRowsOf({
1617
+ }, h$74(FormRows, null, formRowsOf({
1618
1618
  fields: shown,
1619
1619
  problems,
1620
1620
  showProblem: done,
1621
1621
  busy
1622
- })), problem === void 0 ? null : h$70(Note, {
1622
+ })), problem === void 0 ? null : h$74(Note, {
1623
1623
  tone: "problem",
1624
1624
  role: "alert"
1625
- }, problem), h$70(FormActions, { actions: formActionsOf({
1625
+ }, problem), h$74(FormActions, { actions: formActionsOf({
1626
1626
  extra,
1627
1627
  cancel,
1628
1628
  submit,
@@ -1643,7 +1643,7 @@ window.__ModuleLoader__.load({
1643
1643
  * @returns 一个 `<a>`。
1644
1644
  */
1645
1645
  function Link({ href, children, title, external = true, className }) {
1646
- return h$70("a", {
1646
+ return h$74("a", {
1647
1647
  className: className === void 0 ? "wb-link" : `wb-link ${className}`,
1648
1648
  href,
1649
1649
  ...title === void 0 ? {} : { title },
@@ -1651,7 +1651,7 @@ window.__ModuleLoader__.load({
1651
1651
  target: "_blank",
1652
1652
  rel: "noopener noreferrer"
1653
1653
  } : {}
1654
- }, children, external ? h$70(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
1654
+ }, children, external ? h$74(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
1655
1655
  }
1656
1656
  //#endregion
1657
1657
  //#region ../shared/dist/contract/long-task.js
@@ -1743,7 +1743,7 @@ window.__ModuleLoader__.load({
1743
1743
  //#endregion
1744
1744
  //#region ../shared/dist/components/LongTaskRow.js
1745
1745
  function RowLink({ href, text }) {
1746
- return h$70(Link, {
1746
+ return h$74(Link, {
1747
1747
  href,
1748
1748
  className: "wb-longTaskLink"
1749
1749
  }, text);
@@ -1763,9 +1763,9 @@ window.__ModuleLoader__.load({
1763
1763
  * @returns 一行长任务。
1764
1764
  */
1765
1765
  function LongTaskRow(props) {
1766
- const [stepsOpen, setStepsOpen] = useState$42(false);
1767
- const [rawOpen, setRawOpen] = useState$42(false);
1768
- const [armed, setArmed] = useState$42(false);
1766
+ const [stepsOpen, setStepsOpen] = useState$43(false);
1767
+ const [rawOpen, setRawOpen] = useState$43(false);
1768
+ const [armed, setArmed] = useState$43(false);
1769
1769
  const failed = props.status === "failed";
1770
1770
  const problem = props.problem ?? "";
1771
1771
  const raw = (props.raw ?? "").trim();
@@ -1792,14 +1792,14 @@ window.__ModuleLoader__.load({
1792
1792
  setArmed(false);
1793
1793
  stop.onStop();
1794
1794
  };
1795
- return h$70("div", { className: "wb-longTask" }, h$70("p", { className: "wb-longTaskHead" }, h$70(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1795
+ return h$74("div", { className: "wb-longTask" }, h$74("p", { className: "wb-longTaskHead" }, h$74(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1796
1796
  state: longTaskDot(props.status),
1797
1797
  size: 10
1798
- }), h$70("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$70(RowLink, {
1798
+ }), h$74("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$74(RowLink, {
1799
1799
  href: link.href,
1800
1800
  key: `${link.text}@${link.href}`,
1801
1801
  text: link.text
1802
- })), stop === void 0 ? null : h$70("button", {
1802
+ })), stop === void 0 ? null : h$74("button", {
1803
1803
  type: "button",
1804
1804
  className: `wb-longTaskStop${armed ? " wb-longTaskStopArmed" : ""}`,
1805
1805
  "data-stop-state": longTaskStopStage({
@@ -1810,31 +1810,31 @@ window.__ModuleLoader__.load({
1810
1810
  disabled: busy,
1811
1811
  onClick: onStopPress,
1812
1812
  onBlur: () => setArmed(false)
1813
- }, 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, {
1813
+ }, h$74(_deepseek_ai_dsh_client_ui_primitives.IconStopFillRegular, { size: 12 }), armed ? h$74("span", { className: "wb-longTaskStopLabel" }, stop.askLabel) : null)), problem === "" ? null : h$74("p", { className: "wb-longTaskProblem" }, problem), stopWhy === "" ? null : h$74("p", { className: "wb-longTaskStopWhy" }, stopWhy), !failed ? null : h$74(Fragment$24, null, steps.length === 0 || props.stepsTitle === void 0 ? null : h$74(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1814
1814
  className: "wb-longTaskDump",
1815
- icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
1815
+ icon: h$74(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
1816
1816
  title: props.stepsTitle,
1817
1817
  open: stepsOpen,
1818
1818
  expandable: true,
1819
1819
  expandOnRowClick: true,
1820
1820
  previewChevron: true,
1821
1821
  onToggle: () => setStepsOpen(!stepsOpen)
1822
- }, h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1822
+ }, h$74(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1823
1823
  code: steps.join("\n"),
1824
1824
  className: "wb-longTaskDump",
1825
1825
  showHeader: props.copyLabel !== void 0,
1826
1826
  copyLabel: props.copyLabel ?? "",
1827
1827
  copiedLabel: props.copiedLabel ?? ""
1828
- })), raw === "" || props.rawTitle === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1828
+ })), raw === "" || props.rawTitle === void 0 ? null : h$74(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1829
1829
  className: "wb-longTaskDump",
1830
- icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
1830
+ icon: h$74(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
1831
1831
  title: props.rawTitle,
1832
1832
  open: rawOpen,
1833
1833
  expandable: true,
1834
1834
  expandOnRowClick: true,
1835
1835
  previewChevron: true,
1836
1836
  onToggle: () => setRawOpen(!rawOpen)
1837
- }, h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1837
+ }, h$74(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1838
1838
  code: raw,
1839
1839
  className: "wb-longTaskDump",
1840
1840
  showHeader: props.copyLabel !== void 0,
@@ -1850,13 +1850,13 @@ window.__ModuleLoader__.load({
1850
1850
  * @returns 一叠占位条。
1851
1851
  */
1852
1852
  function SkeletonRows({ rows = 4 }) {
1853
- return h$70("div", {
1853
+ return h$74("div", {
1854
1854
  className: "wb-skeleton",
1855
1855
  "aria-hidden": "true"
1856
- }, Array.from({ length: rows }, (_, index) => h$70("span", {
1856
+ }, Array.from({ length: rows }, (_, index) => h$74("span", {
1857
1857
  key: index,
1858
1858
  className: "wb-skeletonRow"
1859
- }, h$70("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$70("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
1859
+ }, h$74("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$74("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
1860
1860
  }
1861
1861
  /**
1862
1862
  * 居中一屏:要他先选一个 / 正在读 / 读不到时用它占住卡片版面。
@@ -1869,13 +1869,13 @@ window.__ModuleLoader__.load({
1869
1869
  * @returns 一个 `role="status"` 的居中块。
1870
1870
  */
1871
1871
  function CenteredState({ icon, title, hint, detail, action, compact = false }) {
1872
- return h$70("div", {
1872
+ return h$74("div", {
1873
1873
  className: compact ? "wb-centered wb-centeredCompact" : "wb-centered",
1874
1874
  role: "status"
1875
- }, icon === null ? null : h$70("span", {
1875
+ }, icon === null ? null : h$74("span", {
1876
1876
  className: "wb-centeredHero",
1877
1877
  "aria-hidden": "true"
1878
- }, 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));
1878
+ }, icon), h$74("div", { className: "wb-centeredTitle" }, title), hint === void 0 ? null : h$74("div", { className: "wb-centeredHint" }, hint), detail === void 0 ? null : h$74("div", { className: "wb-centeredDetail" }, detail), action === void 0 ? null : h$74("div", { className: "wb-centeredAction" }, action));
1879
1879
  }
1880
1880
  /**
1881
1881
  * 就绪但空:它只是 `CenteredState` 的简写,标题就是那句空态文案。
@@ -1885,7 +1885,7 @@ window.__ModuleLoader__.load({
1885
1885
  * @returns 一个居中块。
1886
1886
  */
1887
1887
  function EmptyState({ text, icon = null, compact = false }) {
1888
- return h$70(CenteredState, {
1888
+ return h$74(CenteredState, {
1889
1889
  icon,
1890
1890
  title: text,
1891
1891
  compact
@@ -1903,7 +1903,7 @@ window.__ModuleLoader__.load({
1903
1903
  * @returns 一组按钮。
1904
1904
  */
1905
1905
  function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
1906
- return h$70(FormActions, { actions: [{
1906
+ return h$74(FormActions, { actions: [{
1907
1907
  key: "cancel",
1908
1908
  label: labels.cancel,
1909
1909
  kind: "default",
@@ -1937,7 +1937,7 @@ window.__ModuleLoader__.load({
1937
1937
  * @returns 一颗 `<button>`。
1938
1938
  */
1939
1939
  function selectTriggerNode(args) {
1940
- return h$70("button", {
1940
+ return h$74("button", {
1941
1941
  type: "button",
1942
1942
  ref: args.ref,
1943
1943
  id: args.id,
@@ -1949,7 +1949,7 @@ window.__ModuleLoader__.load({
1949
1949
  "aria-label": args.ariaLabel,
1950
1950
  title: args.title,
1951
1951
  onClick: args.onOpen
1952
- }, 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 }))));
1952
+ }, args.iconOnly ? h$74("span", { className: "wb-selectIcon" }, args.icon) : h$74(Fragment$24, null, args.icon === void 0 ? null : h$74("span", { className: "wb-selectIcon" }, args.icon), h$74("span", { className: "wb-selectValue" }, args.value), h$74("span", { className: "wb-selectChevron" }, h$74(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 14 }))));
1953
1953
  }
1954
1954
  /**
1955
1955
  * 名单还没读到时的触发器:禁用 + `aria-busy` 的按钮,`SelectField` 在 `loading` 那档画它。
@@ -1961,7 +1961,7 @@ window.__ModuleLoader__.load({
1961
1961
  * @returns 一颗禁用且 `aria-busy` 的按钮。
1962
1962
  */
1963
1963
  function selectLoadingNode(args) {
1964
- return h$70("button", {
1964
+ return h$74("button", {
1965
1965
  type: "button",
1966
1966
  id: args.id,
1967
1967
  className: `${args.className} wb-selectLoading`,
@@ -1970,7 +1970,7 @@ window.__ModuleLoader__.load({
1970
1970
  "aria-invalid": args.invalid || void 0,
1971
1971
  "aria-label": args.ariaLabel,
1972
1972
  title: args.loadingText
1973
- }, 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 })));
1973
+ }, h$74("span", { className: "wb-selectValue" }, h$74(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { active: true }, args.loadingText ?? "…")), h$74("span", { className: "wb-selectChevron" }, h$74(Spinner, { size: 14 })));
1974
1974
  }
1975
1975
  //#endregion
1976
1976
  //#region ../shared/dist/components/TextField.js
@@ -1980,7 +1980,7 @@ window.__ModuleLoader__.load({
1980
1980
  * @returns 输入框元素;`className` 是追加在基础类名之后,而不是替换它。
1981
1981
  */
1982
1982
  function TextField({ invalid = false, className, ...rest }) {
1983
- return h$70("input", {
1983
+ return h$74("input", {
1984
1984
  ...rest,
1985
1985
  className: className === void 0 ? "wb-textField" : `wb-textField ${className}`,
1986
1986
  "aria-invalid": invalid || void 0
@@ -2005,14 +2005,14 @@ window.__ModuleLoader__.load({
2005
2005
  };
2006
2006
  }
2007
2007
  function selectValueNode(current, renderValue, placeholder) {
2008
- if (current === void 0) return h$70("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
2008
+ if (current === void 0) return h$74("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
2009
2009
  return renderValue === void 0 ? current.label : renderValue(current);
2010
2010
  }
2011
2011
  function searchNode(args) {
2012
- return h$70("span", {
2012
+ return h$74("span", {
2013
2013
  ref: args.boxRef,
2014
2014
  className: args.className
2015
- }, h$70("span", { className: "wb-selectSearchIcon" }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$70(TextField, {
2015
+ }, h$74("span", { className: "wb-selectSearchIcon" }, h$74(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$74(TextField, {
2016
2016
  id: args.id,
2017
2017
  name: args.name,
2018
2018
  className: "wb-selectSearchInput",
@@ -2027,7 +2027,7 @@ window.__ModuleLoader__.load({
2027
2027
  }));
2028
2028
  }
2029
2029
  function menuNode(args) {
2030
- return h$70(_deepseek_ai_dsh_client_ui_primitives.Menu, {
2030
+ return h$74(_deepseek_ai_dsh_client_ui_primitives.Menu, {
2031
2031
  open: args.open,
2032
2032
  portal: true,
2033
2033
  className: "wb-selectAnchor",
@@ -2044,11 +2044,11 @@ window.__ModuleLoader__.load({
2044
2044
  });
2045
2045
  }
2046
2046
  function framed(label, hint, className, control) {
2047
- 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, {
2047
+ const inner = label === void 0 ? hint === void 0 ? control : h$74("span", { className: "wb-select" }, control, h$74("span", { className: "wb-selectHint" }, hint)) : h$74(Field, {
2048
2048
  label,
2049
2049
  hint
2050
2050
  }, control);
2051
- return className === void 0 ? inner : h$70("div", { className }, inner);
2051
+ return className === void 0 ? inner : h$74("div", { className }, inner);
2052
2052
  }
2053
2053
  /** 算候选项用来匹配搜索的文本:有 `searchText` 就用它,否则取字符串标签;标签不是字符串又没给它是空串(这项搜不到)。 */
2054
2054
  function searchTextOf(option) {
@@ -2100,14 +2100,14 @@ window.__ModuleLoader__.load({
2100
2100
  }
2101
2101
  function useSelectState(props) {
2102
2102
  const { options, filter = defaultSelectFilter, emptyText, open: openProp, onOpenChange } = props;
2103
- const [openState, setOpenState] = useState$42(false);
2104
- const [query, setQuery] = useState$42("");
2105
- const [cursor, setCursor] = useState$42(null);
2106
- const boxRef = useRef$24(null);
2107
- const triggerRef = useRef$24(null);
2108
- const wasOpenRef = useRef$24(false);
2109
- const pickedRef = useRef$24(false);
2110
- const closedByUsRef = useRef$24(false);
2103
+ const [openState, setOpenState] = useState$43(false);
2104
+ const [query, setQuery] = useState$43("");
2105
+ const [cursor, setCursor] = useState$43(null);
2106
+ const boxRef = useRef$23(null);
2107
+ const triggerRef = useRef$23(null);
2108
+ const wasOpenRef = useRef$23(false);
2109
+ const pickedRef = useRef$23(false);
2110
+ const closedByUsRef = useRef$23(false);
2111
2111
  const open = openProp ?? openState;
2112
2112
  const setOpen = (next) => {
2113
2113
  if (openProp === void 0) setOpenState(next);
@@ -2186,7 +2186,7 @@ window.__ModuleLoader__.load({
2186
2186
  ariaLabel,
2187
2187
  loadingText
2188
2188
  }));
2189
- if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$70(TextField, {
2189
+ if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$74(TextField, {
2190
2190
  id,
2191
2191
  name,
2192
2192
  className: "wb-selectFallback",
@@ -2270,11 +2270,11 @@ window.__ModuleLoader__.load({
2270
2270
  * @returns 一个 `role="group"` 的 section。
2271
2271
  */
2272
2272
  function SettingsSection({ label, title, action, children }) {
2273
- return h$70("section", {
2273
+ return h$74("section", {
2274
2274
  className: "wb-settings",
2275
2275
  role: "group",
2276
2276
  "aria-label": label
2277
- }, h$70("header", { className: "wb-settingsHead" }, h$70("span", { className: "wb-settingsTitle" }, title), action), children);
2277
+ }, h$74("header", { className: "wb-settingsHead" }, h$74("span", { className: "wb-settingsTitle" }, title), action), children);
2278
2278
  }
2279
2279
  //#endregion
2280
2280
  //#region ../shared/dist/components/Stack.js
@@ -2284,7 +2284,7 @@ window.__ModuleLoader__.load({
2284
2284
  * @returns 竖排的 div。
2285
2285
  */
2286
2286
  function Stack({ children }) {
2287
- return h$70("div", { className: "wb-stack" }, children);
2287
+ return h$74("div", { className: "wb-stack" }, children);
2288
2288
  }
2289
2289
  //#endregion
2290
2290
  //#region ../shared/dist/components/StateBlock.js
@@ -2299,12 +2299,12 @@ window.__ModuleLoader__.load({
2299
2299
  * @returns 一个 div。
2300
2300
  */
2301
2301
  function StateBlock({ title, dot, hint, actions, resolving, children }) {
2302
- 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));
2302
+ return h$74("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h$74("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h$74("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h$74("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h$74("div", { className: "wb-stateBlockActions" }, actions));
2303
2303
  }
2304
2304
  //#endregion
2305
2305
  //#region ../shared/dist/components/icons.js
2306
2306
  function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
2307
- return h$70("svg", {
2307
+ return h$74("svg", {
2308
2308
  width: size,
2309
2309
  height: size,
2310
2310
  viewBox,
@@ -2321,10 +2321,10 @@ window.__ModuleLoader__.load({
2321
2321
  * @returns 一枚 `aria-hidden` 的 svg。
2322
2322
  */
2323
2323
  function IconConversation({ size = 16 }) {
2324
- return h$70(Shell, {
2324
+ return h$74(Shell, {
2325
2325
  size,
2326
2326
  strokeWidth: 1.3
2327
- }, h$70("path", {
2327
+ }, h$74("path", {
2328
2328
  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",
2329
2329
  stroke: "currentColor",
2330
2330
  strokeLinejoin: "round"
@@ -2339,30 +2339,30 @@ window.__ModuleLoader__.load({
2339
2339
  * @returns 一枚 `aria-hidden` 的 svg。
2340
2340
  */
2341
2341
  function IconBrandMark({ size = 24 }) {
2342
- return h$70(Shell, {
2342
+ return h$74(Shell, {
2343
2343
  size,
2344
2344
  viewBox: "0 0 64 64"
2345
- }, h$70("path", {
2345
+ }, h$74("path", {
2346
2346
  d: BRAND_FRAME,
2347
2347
  fill: "currentColor",
2348
2348
  fillRule: "evenodd"
2349
- }), h$70("rect", {
2349
+ }), h$74("rect", {
2350
2350
  x: 27.5,
2351
2351
  y: 48,
2352
2352
  width: 9,
2353
2353
  height: 4.75,
2354
2354
  fill: "currentColor"
2355
- }), h$70("rect", {
2355
+ }), h$74("rect", {
2356
2356
  x: 19,
2357
2357
  y: 52.75,
2358
2358
  width: 26,
2359
2359
  height: 4.75,
2360
2360
  rx: 2.375,
2361
2361
  fill: "currentColor"
2362
- }), h$70("g", { transform: BRAND_TAIL_TRANSFORM }, h$70("path", {
2362
+ }), h$74("g", { transform: BRAND_TAIL_TRANSFORM }, h$74("path", {
2363
2363
  d: BRAND_TAIL,
2364
2364
  fill: "currentColor"
2365
- }), h$70("circle", {
2365
+ }), h$74("circle", {
2366
2366
  cx: 6.885,
2367
2367
  cy: 13.742,
2368
2368
  r: 1.95,
@@ -2375,30 +2375,30 @@ window.__ModuleLoader__.load({
2375
2375
  * @returns 一枚 `aria-hidden` 的 svg。
2376
2376
  */
2377
2377
  function IconOpencli({ size = 16 }) {
2378
- return h$70(Shell, {
2378
+ return h$74(Shell, {
2379
2379
  size,
2380
2380
  viewBox: "0 0 64 64"
2381
- }, h$70("defs", null, h$70("linearGradient", {
2381
+ }, h$74("defs", null, h$74("linearGradient", {
2382
2382
  id: "opencli-mark",
2383
2383
  x1: "0%",
2384
2384
  y1: "0%",
2385
2385
  x2: "100%",
2386
2386
  y2: "100%"
2387
- }, h$70("stop", {
2387
+ }, h$74("stop", {
2388
2388
  offset: "0%",
2389
2389
  stopColor: "#00e5a0"
2390
- }), h$70("stop", {
2390
+ }), h$74("stop", {
2391
2391
  offset: "50%",
2392
2392
  stopColor: "#00b4d8"
2393
- }), h$70("stop", {
2393
+ }), h$74("stop", {
2394
2394
  offset: "100%",
2395
2395
  stopColor: "#7b61ff"
2396
- }))), h$70("rect", {
2396
+ }))), h$74("rect", {
2397
2397
  width: 64,
2398
2398
  height: 64,
2399
2399
  rx: 14,
2400
2400
  fill: "#0a0a0f"
2401
- }), h$70("text", {
2401
+ }), h$74("text", {
2402
2402
  x: "50%",
2403
2403
  y: "54%",
2404
2404
  dominantBaseline: "middle",
@@ -2415,10 +2415,10 @@ window.__ModuleLoader__.load({
2415
2415
  * @returns 一枚 `aria-hidden` 的 svg。
2416
2416
  */
2417
2417
  function IconNpm({ size = 16 }) {
2418
- return h$70(Shell, {
2418
+ return h$74(Shell, {
2419
2419
  size,
2420
2420
  viewBox: "0 0 1024 1024"
2421
- }, h$70("path", {
2421
+ }, h$74("path", {
2422
2422
  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",
2423
2423
  fill: "#CB3837"
2424
2424
  }));
@@ -2429,37 +2429,37 @@ window.__ModuleLoader__.load({
2429
2429
  * @returns 一枚 `aria-hidden` 的 svg。
2430
2430
  */
2431
2431
  function IconModuleMark({ size = 16 }) {
2432
- return h$70(Shell, {
2432
+ return h$74(Shell, {
2433
2433
  size,
2434
2434
  viewBox: "0 0 24 24"
2435
- }, h$70("defs", null, h$70("linearGradient", {
2435
+ }, h$74("defs", null, h$74("linearGradient", {
2436
2436
  id: "workbench-module-mark",
2437
2437
  x1: "0%",
2438
2438
  y1: "0%",
2439
2439
  x2: "100%",
2440
2440
  y2: "100%"
2441
- }, h$70("stop", {
2441
+ }, h$74("stop", {
2442
2442
  offset: "0%",
2443
2443
  stopColor: "#3b82f6"
2444
- }), h$70("stop", {
2444
+ }), h$74("stop", {
2445
2445
  offset: "55%",
2446
2446
  stopColor: "#8b5cf6"
2447
- }), h$70("stop", {
2447
+ }), h$74("stop", {
2448
2448
  offset: "100%",
2449
2449
  stopColor: "#14b8a6"
2450
- }))), h$70("rect", {
2450
+ }))), h$74("rect", {
2451
2451
  width: 24,
2452
2452
  height: 24,
2453
2453
  rx: 7,
2454
2454
  fill: "url(#workbench-module-mark)"
2455
- }), h$70("rect", {
2455
+ }), h$74("rect", {
2456
2456
  x: "4.6",
2457
2457
  y: "4.6",
2458
2458
  width: "6.2",
2459
2459
  height: "6.2",
2460
2460
  rx: "1.9",
2461
2461
  fill: "#ffffff"
2462
- }), h$70("rect", {
2462
+ }), h$74("rect", {
2463
2463
  x: "13.2",
2464
2464
  y: "4.6",
2465
2465
  width: "6.2",
@@ -2467,7 +2467,7 @@ window.__ModuleLoader__.load({
2467
2467
  rx: "1.9",
2468
2468
  fill: "#ffffff",
2469
2469
  fillOpacity: .78
2470
- }), h$70("rect", {
2470
+ }), h$74("rect", {
2471
2471
  x: "4.6",
2472
2472
  y: "13.2",
2473
2473
  width: "6.2",
@@ -2475,7 +2475,7 @@ window.__ModuleLoader__.load({
2475
2475
  rx: "1.9",
2476
2476
  fill: "#ffffff",
2477
2477
  fillOpacity: .78
2478
- }), h$70("rect", {
2478
+ }), h$74("rect", {
2479
2479
  x: "13.2",
2480
2480
  y: "13.2",
2481
2481
  width: "6.2",
@@ -2490,7 +2490,7 @@ window.__ModuleLoader__.load({
2490
2490
  * @returns 一枚 `aria-hidden` 的 svg。
2491
2491
  */
2492
2492
  function IconPanelScreen({ size = 16 }) {
2493
- return h$70("svg", {
2493
+ return h$74("svg", {
2494
2494
  width: size,
2495
2495
  height: size,
2496
2496
  viewBox: "0 0 1024 1024",
@@ -2501,7 +2501,7 @@ window.__ModuleLoader__.load({
2501
2501
  display: "block",
2502
2502
  overflow: "hidden"
2503
2503
  }
2504
- }, 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" }));
2504
+ }, h$74("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" }));
2505
2505
  }
2506
2506
  //#endregion
2507
2507
  //#region ../shared/dist/config/storage.js
@@ -3188,6 +3188,25 @@ window.__ModuleLoader__.load({
3188
3188
  "panels.market.badSource": "The install method is incomplete — install it yourself",
3189
3189
  "panels.market.empty": "No modules available",
3190
3190
  "panels.market.sectionPlugins": "Installed plugins",
3191
+ "panels.market.openDetail": "View details for {name}",
3192
+ "panels.market.detailBack": "Market",
3193
+ "panels.market.detailSourceTitle": "Source",
3194
+ "panels.market.detailSource": "Install source",
3195
+ "panels.market.detailRegistry": "Registry",
3196
+ "panels.market.detailSpec": "Declared as",
3197
+ "panels.market.detailUnit": "Module ID",
3198
+ "panels.market.detailVersion": "Current version",
3199
+ "panels.market.detailLatest": "Available version",
3200
+ "panels.market.detailPluginName": "Plugin name",
3201
+ "panels.market.detailInstalledAt": "Installed at",
3202
+ "panels.market.detailMarket": "Index source",
3203
+ "panels.market.detailRepository": "Repository",
3204
+ "panels.market.detailCommit": "Commit",
3205
+ "panels.market.detailDirectory": "Directory",
3206
+ "panels.market.detailUpdateSource": "Update source",
3207
+ "panels.market.detailUpdateVersion": "Update version",
3208
+ "panels.market.detailLocalDirectory": "local directory",
3209
+ "panels.market.detailUnknown": "not recorded",
3191
3210
  "panels.market.moduleOutdated": "update available",
3192
3211
  "panels.market.updateNeedsWorkbench": "this version needs a newer workbench first",
3193
3212
  "panels.market.updateIncompatible": "the new version does not match this workbench, so it cannot be installed now",
@@ -3935,6 +3954,25 @@ window.__ModuleLoader__.load({
3935
3954
  "panels.market.badSource": "安装方式没写全,只能自己动手",
3936
3955
  "panels.market.empty": "暂无可用模块",
3937
3956
  "panels.market.sectionPlugins": "已安装的插件",
3957
+ "panels.market.openDetail": "查看 {name} 的详情",
3958
+ "panels.market.detailBack": "市场",
3959
+ "panels.market.detailSourceTitle": "来源信息",
3960
+ "panels.market.detailSource": "安装源",
3961
+ "panels.market.detailRegistry": "注册表",
3962
+ "panels.market.detailSpec": "依赖写法",
3963
+ "panels.market.detailUnit": "模块标识",
3964
+ "panels.market.detailVersion": "当前版本",
3965
+ "panels.market.detailLatest": "可用版本",
3966
+ "panels.market.detailPluginName": "插件名",
3967
+ "panels.market.detailInstalledAt": "安装时间",
3968
+ "panels.market.detailMarket": "索引源",
3969
+ "panels.market.detailRepository": "仓库",
3970
+ "panels.market.detailCommit": "提交",
3971
+ "panels.market.detailDirectory": "目录",
3972
+ "panels.market.detailUpdateSource": "新版来源",
3973
+ "panels.market.detailUpdateVersion": "新版版本",
3974
+ "panels.market.detailLocalDirectory": "本机目录",
3975
+ "panels.market.detailUnknown": "未记录",
3938
3976
  "panels.market.moduleOutdated": "有新版",
3939
3977
  "panels.market.updateNeedsWorkbench": "新版本要先把工作台升级才能用",
3940
3978
  "panels.market.updateIncompatible": "新版本和当前的工作台不匹配,暂时不能更新",
@@ -5397,6 +5435,9 @@ window.__ModuleLoader__.load({
5397
5435
  ...note === void 0 ? {} : { note },
5398
5436
  ...module.local === true ? { local: true } : {},
5399
5437
  pkg: module.pkg,
5438
+ ...module.spec === void 0 ? {} : { spec: module.spec },
5439
+ ...module.registry === void 0 ? {} : { registry: module.registry },
5440
+ removeViaBundle: true,
5400
5441
  canInstall: false,
5401
5442
  canUpdate: outdated && blocked === void 0,
5402
5443
  canUninstall: true,
@@ -5408,7 +5449,10 @@ window.__ModuleLoader__.load({
5408
5449
  installed: module.installed,
5409
5450
  latest,
5410
5451
  ...blocked === void 0 ? {} : { blocked },
5411
- ...module.market === void 0 ? {} : { market: module.market }
5452
+ ...module.market === void 0 ? {} : { market: module.market },
5453
+ pkg: module.pkg,
5454
+ ...module.spec === void 0 ? {} : { spec: module.spec },
5455
+ ...module.registry === void 0 ? {} : { registry: module.registry }
5412
5456
  } } : {},
5413
5457
  ...module.market === void 0 ? {} : { market: module.market },
5414
5458
  defaultShown: defaults.has(module.unit),
@@ -5430,7 +5474,7 @@ window.__ModuleLoader__.load({
5430
5474
  return [
5431
5475
  ...row.canInstall ? ["install"] : [],
5432
5476
  ...row.moduleUpdate === void 0 ? row.canUpdate ? ["update"] : [] : row.moduleUpdate.blocked === void 0 ? [row.market === void 0 || row.pkg === void 0 ? "update-bundle" : "install-version"] : [],
5433
- ...row.canUninstall ? [row.pkg === void 0 ? "uninstall" : "remove-bundle"] : []
5477
+ ...row.canUninstall ? [row.removeViaBundle === true ? "remove-bundle" : "uninstall"] : []
5434
5478
  ];
5435
5479
  }
5436
5480
  function stateOf(capability, manifest, installed) {
@@ -5519,7 +5563,10 @@ window.__ModuleLoader__.load({
5519
5563
  ...local || module.latest === void 0 ? {} : { latest: module.latest },
5520
5564
  ...local || module.latest === void 0 || module.latestBlocked === void 0 ? {} : { blocked: module.latestBlocked },
5521
5565
  ...local ? { local: true } : {},
5522
- ...local || module.market === void 0 ? {} : { market: module.market }
5566
+ ...local || module.market === void 0 ? {} : { market: module.market },
5567
+ pkg: module.pkg,
5568
+ ...module.spec === void 0 ? {} : { spec: module.spec },
5569
+ ...module.registry === void 0 ? {} : { registry: module.registry }
5523
5570
  };
5524
5571
  }
5525
5572
  return next;
@@ -5571,7 +5618,10 @@ window.__ModuleLoader__.load({
5571
5618
  installed: entry.installed,
5572
5619
  latest: entry.latest,
5573
5620
  ...entry.blocked === void 0 ? {} : { blocked: entry.blocked },
5574
- ...entry.market === void 0 ? {} : { market: entry.market }
5621
+ ...entry.market === void 0 ? {} : { market: entry.market },
5622
+ ...entry.pkg === void 0 ? {} : { pkg: entry.pkg },
5623
+ ...entry.spec === void 0 ? {} : { spec: entry.spec },
5624
+ ...entry.registry === void 0 ? {} : { registry: entry.registry }
5575
5625
  };
5576
5626
  const shown = moduleUpdate === void 0 ? state : "outdated";
5577
5627
  const hint = moduleUpdate?.blocked === void 0 ? shown === "unknown" || shown === "unchecked" ? "panels.market.uncheckedHint" : void 0 : updateBlockHintOf(moduleUpdate.blocked);
@@ -5588,10 +5638,11 @@ window.__ModuleLoader__.load({
5588
5638
  ...entry.latest === void 0 ? {} : { latest: entry.latest }
5589
5639
  } },
5590
5640
  ...moduleUpdate === void 0 ? {} : { moduleUpdate },
5591
- ...entry?.market === void 0 ? {} : {
5592
- market: entry.market,
5593
- pkg: entry.market.pkg
5594
- },
5641
+ ...entry?.market === void 0 ? {} : { market: entry.market },
5642
+ ...entry?.pkg === void 0 ? entry?.market === void 0 ? {} : { pkg: entry.market.pkg } : { pkg: entry.pkg },
5643
+ ...entry?.spec === void 0 ? {} : { spec: entry.spec },
5644
+ ...entry?.registry === void 0 ? {} : { registry: entry.registry },
5645
+ ...entry?.market === void 0 ? {} : { removeViaBundle: true },
5595
5646
  ...moduleUpdate === void 0 ? note === void 0 ? {} : { note } : {},
5596
5647
  ...local ? { local: true } : {},
5597
5648
  defaultShown: defaults.has(manifest.id),
@@ -5630,6 +5681,8 @@ window.__ModuleLoader__.load({
5630
5681
  defaultShown: defaults.has(id),
5631
5682
  defaultChanged: changed[id] ?? 0,
5632
5683
  ...note === void 0 ? {} : { note },
5684
+ ...plugin.registry === void 0 ? {} : { registry: plugin.registry },
5685
+ ...plugin.installedAt === void 0 ? {} : { installedAt: plugin.installedAt },
5633
5686
  ...plugin.installed === void 0 ? {} : { versionLabel: `${plugin.pkg}@${plugin.installed}` },
5634
5687
  pkg: plugin.pkg,
5635
5688
  ...plugin.installed === void 0 ? {} : { version: {
@@ -5670,7 +5723,9 @@ window.__ModuleLoader__.load({
5670
5723
  ...update === void 0 ? {} : { moduleUpdate: update },
5671
5724
  ...followUp === void 0 ? {} : { followUp },
5672
5725
  ...followUpState ? { hint: "panels.market.migrationHint" } : {},
5673
- pkg: version.pkg
5726
+ pkg: version.pkg,
5727
+ ...version.spec === void 0 ? {} : { spec: version.spec },
5728
+ ...version.registry === void 0 ? {} : { registry: version.registry }
5674
5729
  };
5675
5730
  }
5676
5731
  //#endregion
@@ -6192,217 +6247,192 @@ window.__ModuleLoader__.load({
6192
6247
  setNotice
6193
6248
  };
6194
6249
  }
6195
- var MarketPage_module_default = {
6196
- marketList: "_marketList_2or0c_1",
6197
- marketRow: "_marketRow_2or0c_10",
6198
- marketIcon: "_marketIcon_2or0c_20",
6199
- marketMain: "_marketMain_2or0c_32",
6200
- marketName: "_marketName_2or0c_39",
6201
- marketStatus: "_marketStatus_2or0c_48",
6202
- marketStateText: "_marketStateText_2or0c_58",
6203
- marketSep: "_marketSep_2or0c_62",
6204
- marketReason: "_marketReason_2or0c_66",
6205
- marketVersion: "_marketVersion_2or0c_72",
6206
- marketLocalTag: "_marketLocalTag_2or0c_94",
6207
- marketEnd: "_marketEnd_2or0c_105",
6208
- marketSwitchSeat: "_marketSwitchSeat_2or0c_112",
6209
- marketActions: "_marketActions_2or0c_125",
6210
- marketUpdateAction: "_marketUpdateAction_2or0c_131",
6211
- marketSelfDivider: "_marketSelfDivider_2or0c_137",
6212
- marketSection: "_marketSection_2or0c_143",
6213
- marketSectionHead: "_marketSectionHead_2or0c_150",
6214
- marketSectionIcon: "_marketSectionIcon_2or0c_156",
6215
- marketSectionTitle: "_marketSectionTitle_2or0c_163",
6216
- marketSectionCount: "_marketSectionCount_2or0c_169",
6217
- marketSectionAction: "_marketSectionAction_2or0c_175",
6218
- marketSectionQuiet: "_marketSectionQuiet_2or0c_183",
6219
- marketProgress: "_marketProgress_2or0c_195",
6220
- marketNote: "_marketNote_2or0c_205",
6221
- marketFailure: "_marketFailure_2or0c_212",
6222
- marketFailureSeat: "_marketFailureSeat_2or0c_219",
6223
- marketEmpty: "_marketEmpty_2or0c_224",
6224
- marketPage: "_marketPage_2or0c_229",
6225
- marketPageHead: "_marketPageHead_2or0c_247",
6226
- marketPageTitle: "_marketPageTitle_2or0c_255",
6227
- marketPageIntro: "_marketPageIntro_2or0c_260",
6228
- marketPageTools: "_marketPageTools_2or0c_266",
6229
- marketPanel: "_marketPanel_2or0c_275",
6230
- marketTabs: "_marketTabs_2or0c_285",
6231
- marketTabList: "_marketTabList_2or0c_290",
6232
- marketAddButton: "_marketAddButton_2or0c_295",
6233
- marketEmptyTitle: "_marketEmptyTitle_2or0c_312",
6234
- discoverPage: "_discoverPage_2or0c_317",
6235
- discoverBar: "_discoverBar_2or0c_324",
6236
- discoverTools: "_discoverTools_2or0c_331",
6237
- discoverMarket: "_discoverMarket_2or0c_337",
6238
- discoverMarketButton: "_discoverMarketButton_2or0c_342",
6239
- discoverMarketName: "_discoverMarketName_2or0c_349",
6240
- discoverLabels: "_discoverLabels_2or0c_355",
6241
- discoverSort: "_discoverSort_2or0c_360",
6242
- discoverRefresh: "_discoverRefresh_2or0c_365",
6243
- discoverSearch: "_discoverSearch_2or0c_369",
6244
- discoverSearchField: "_discoverSearchField_2or0c_377",
6245
- discoverSearchFieldFilled: "_discoverSearchFieldFilled_2or0c_382",
6246
- discoverSearchClear: "_discoverSearchClear_2or0c_391",
6247
- discoverChips: "_discoverChips_2or0c_442",
6248
- discoverList: "_discoverList_2or0c_449",
6249
- discoverCard: "_discoverCard_2or0c_458",
6250
- discoverArtwork: "_discoverArtwork_2or0c_472",
6251
- discoverArtworkImage: "_discoverArtworkImage_2or0c_484",
6252
- discoverMain: "_discoverMain_2or0c_488",
6253
- discoverTitleRow: "_discoverTitleRow_2or0c_496",
6254
- discoverCardOpen: "_discoverCardOpen_2or0c_504",
6255
- discoverStrong: "_discoverStrong_2or0c_535",
6256
- discoverDesc: "_discoverDesc_2or0c_541",
6257
- discoverMeta: "_discoverMeta_2or0c_550",
6258
- discoverMuted: "_discoverMuted_2or0c_557",
6259
- discoverEnd: "_discoverEnd_2or0c_563",
6260
- discoverUpdateAction: "_discoverUpdateAction_2or0c_572",
6261
- discoverBlocked: "_discoverBlocked_2or0c_577",
6262
- discoverEmpty: "_discoverEmpty_2or0c_582",
6263
- discoverEmptyTitle: "_discoverEmptyTitle_2or0c_591",
6264
- discoverDetail: "_discoverDetail_2or0c_601",
6265
- discoverCrumb: "_discoverCrumb_2or0c_607",
6266
- discoverCrumbIcon: "_discoverCrumbIcon_2or0c_630",
6267
- discoverDetailHead: "_discoverDetailHead_2or0c_634",
6268
- discoverDetailTitle: "_discoverDetailTitle_2or0c_640",
6269
- discoverDetailText: "_discoverDetailText_2or0c_646",
6270
- discoverDetailPanel: "_discoverDetailPanel_2or0c_653",
6271
- discoverDetailTabs: "_discoverDetailTabs_2or0c_660",
6272
- discoverDetailTabList: "_discoverDetailTabList_2or0c_665",
6273
- discoverDocBody: "_discoverDocBody_2or0c_670",
6274
- discoverDocNotice: "_discoverDocNotice_2or0c_675",
6275
- discoverSection: "_discoverSection_2or0c_681",
6276
- discoverSectionTitle: "_discoverSectionTitle_2or0c_688",
6277
- discoverFacts: "_discoverFacts_2or0c_694",
6278
- discoverFactRow: "_discoverFactRow_2or0c_699",
6279
- discoverFactKind: "_discoverFactKind_2or0c_709",
6280
- discoverFactValue: "_discoverFactValue_2or0c_715",
6281
- discoverCode: "_discoverCode_2or0c_723",
6282
- discoverTags: "_discoverTags_2or0c_732",
6283
- discoverLink: "_discoverLink_2or0c_739",
6284
- discoverVersions: "_discoverVersions_2or0c_749",
6285
- discoverVersionRow: "_discoverVersionRow_2or0c_757",
6286
- discoverVersionName: "_discoverVersionName_2or0c_765",
6287
- discoverError: "_discoverError_2or0c_770",
6288
- discoverFailure: "_discoverFailure_2or0c_780",
6289
- discoverLoading: "_discoverLoading_2or0c_786",
6290
- discoverNotice: "_discoverNotice_2or0c_795",
6291
- discoverMore: "_discoverMore_2or0c_813",
6292
- discoverTransport: "_discoverTransport_2or0c_817",
6293
- discoverTransportHead: "_discoverTransportHead_2or0c_823",
6294
- discoverTransportTitle: "_discoverTransportTitle_2or0c_830",
6295
- discoverTransportKind: "_discoverTransportKind_2or0c_835",
6296
- discoverTransportState: "_discoverTransportState_2or0c_840",
6297
- discoverTransportRows: "_discoverTransportRows_2or0c_848",
6298
- discoverTransportRow: "_discoverTransportRow_2or0c_848",
6299
- discoverTransportRadio: "_discoverTransportRadio_2or0c_869",
6300
- discoverTransportCustom: "_discoverTransportCustom_2or0c_909",
6301
- discoverTransportInput: "_discoverTransportInput_2or0c_915",
6302
- discoverInstallBar: "_discoverInstallBar_2or0c_920",
6303
- discoverInstallText: "_discoverInstallText_2or0c_931",
6304
- discoverDialog: "_discoverDialog_2or0c_937",
6305
- discoverDialogBody: "_discoverDialogBody_2or0c_941",
6306
- discoverSourceList: "_discoverSourceList_2or0c_947",
6307
- discoverSourceRow: "_discoverSourceRow_2or0c_955",
6308
- discoverSourceConfirm: "_discoverSourceConfirm_2or0c_964",
6309
- discoverSourcePick: "_discoverSourcePick_2or0c_970",
6310
- discoverSourceRadio: "_discoverSourceRadio_2or0c_979",
6311
- discoverSourceMain: "_discoverSourceMain_2or0c_987",
6312
- discoverSourceHead: "_discoverSourceHead_2or0c_995",
6313
- discoverSourceUrl: "_discoverSourceUrl_2or0c_1003",
6314
- discoverSourceMore: "_discoverSourceMore_2or0c_1013",
6315
- discoverSourceLoading: "_discoverSourceLoading_2or0c_1017",
6316
- discoverSourceHint: "_discoverSourceHint_2or0c_1027",
6317
- discoverSourceError: "_discoverSourceError_2or0c_1041",
6318
- discoverSourceForm: "_discoverSourceForm_2or0c_1047",
6319
- discoverGrow: "_discoverGrow_2or0c_1053",
6320
- discoverField: "_discoverField_2or0c_1058",
6321
- discoverFieldLabel: "_discoverFieldLabel_2or0c_1064",
6322
- discoverConfirmHead: "_discoverConfirmHead_2or0c_1069",
6323
- discoverSkeletonFill: "_discoverSkeletonFill_2or0c_1075",
6324
- "wb-skeleton": "_wb-skeleton_2or0c_1",
6325
- discoverSkeletonBar: "_discoverSkeletonBar_2or0c_1084",
6326
- discoverSkeletonTitle: "_discoverSkeletonTitle_2or0c_1091",
6327
- discoverSkeletonDesc: "_discoverSkeletonDesc_2or0c_1095"
6328
- };
6329
6250
  //#endregion
6330
- //#region src/app/layouts/market/discover-states.tsx
6331
- function DiscoverSkeleton({ label }) {
6332
- return /* @__PURE__ */ (0, react.createElement)("ul", {
6333
- className: MarketPage_module_default.discoverList,
6334
- role: "status",
6335
- "aria-label": label,
6336
- "aria-busy": "true"
6337
- }, [
6338
- 0,
6339
- 1,
6340
- 2,
6341
- 3
6342
- ].map((index) => /* @__PURE__ */ (0, react.createElement)("li", {
6343
- key: String(index),
6344
- className: MarketPage_module_default.discoverCard,
6345
- "aria-hidden": "true"
6346
- }, /* @__PURE__ */ (0, react.createElement)("span", { className: `${MarketPage_module_default.discoverArtwork} ${MarketPage_module_default.discoverSkeletonFill}` }), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverMain }, /* @__PURE__ */ (0, react.createElement)("span", { className: `${MarketPage_module_default.discoverSkeletonBar} ${MarketPage_module_default.discoverSkeletonTitle} ${MarketPage_module_default.discoverSkeletonFill}` }), /* @__PURE__ */ (0, react.createElement)("span", { className: `${MarketPage_module_default.discoverSkeletonBar} ${MarketPage_module_default.discoverSkeletonDesc} ${MarketPage_module_default.discoverSkeletonFill}` })))));
6251
+ //#region src/app/layouts/rightbar/market-names.ts
6252
+ function namesOf(t, modules, titleOf) {
6253
+ const shown = /* @__PURE__ */ new Map();
6254
+ for (const module of modules) {
6255
+ const key = unitTitleKey(module.unit);
6256
+ const live = t(key);
6257
+ const name = live !== key && live !== "" ? live : titleOf(module.title);
6258
+ if (name !== "") shown.set(module.unit, name);
6259
+ }
6260
+ return shown;
6347
6261
  }
6348
- function DiscoverEmptyText({ text }) {
6349
- return /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverMuted }, text);
6262
+ //#endregion
6263
+ //#region src/app/layouts/rightbar/market-view-text.ts
6264
+ var PROGRESS_KEY = {
6265
+ install: "panels.market.installing",
6266
+ update: "panels.market.updating",
6267
+ "update-bundle": "panels.market.updating",
6268
+ "install-version": "panels.market.updating",
6269
+ "remove-bundle": "panels.market.uninstalling",
6270
+ uninstall: "panels.market.uninstalling",
6271
+ "update-dependency": "panels.market.updating",
6272
+ "update-plugin": "panels.market.updating",
6273
+ "uninstall-plugin": "panels.market.uninstalling",
6274
+ "update-workbench": "panels.market.updating",
6275
+ "migrate-workbench": "panels.market.migrating",
6276
+ "dismiss-followup": "panels.market.dismissing"
6277
+ };
6278
+ var ACTION_LABEL_KEY = {
6279
+ install: "panels.market.install",
6280
+ update: "panels.market.update",
6281
+ "update-bundle": "panels.market.update",
6282
+ "install-version": "panels.market.update",
6283
+ "remove-bundle": "panels.market.uninstall",
6284
+ uninstall: "panels.market.uninstall",
6285
+ "update-dependency": "panels.market.update",
6286
+ "update-plugin": "panels.market.update",
6287
+ "uninstall-plugin": "panels.market.uninstall",
6288
+ "update-workbench": "panels.market.update",
6289
+ "migrate-workbench": "panels.market.migrateAction",
6290
+ "dismiss-followup": "panels.market.dismissFollowUp"
6291
+ };
6292
+ var UPDATE_ACTIONS = Object.keys(ACTION_LABEL_KEY).filter((action) => ACTION_LABEL_KEY[action] === "panels.market.update");
6293
+ function holdOf(pending, application) {
6294
+ if (pending === null || pending.row === void 0) return void 0;
6295
+ if (application !== "applied") return void 0;
6296
+ return {
6297
+ id: pending.id,
6298
+ row: pending.row
6299
+ };
6350
6300
  }
6351
- function DiscoverLoading({ label }) {
6352
- return /* @__PURE__ */ (0, react.createElement)("p", {
6353
- className: MarketPage_module_default.discoverLoading,
6354
- role: "status",
6355
- "aria-live": "polite"
6356
- }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "ongoing" }), label);
6301
+ function pendingLanded(pending, updates, capabilities, installed, shared = [], plugins = null, removal = {
6302
+ units: null,
6303
+ plugins: null
6304
+ }) {
6305
+ if (pending === null) return true;
6306
+ if (pending.action === "update" && capabilities === null) return false;
6307
+ return settleLanded({
6308
+ action: pending.action,
6309
+ until: pending.until,
6310
+ readBack: pending.readBack,
6311
+ installed,
6312
+ entry: updates[pending.id],
6313
+ clicked: pending.version,
6314
+ outdated: capabilityOutdated(capabilities, pending.id),
6315
+ unitGone: removal.units === null ? null : !removal.units.has(pending.id),
6316
+ pluginGone: removal.plugins === null ? null : !removal.plugins.has(pending.id),
6317
+ ...pending.action === "update-dependency" ? { sharedState: shared.find((row) => row.id === pending.id)?.state } : {},
6318
+ ...pending.action === "update-plugin" ? { pluginOutdated: plugins === null ? null : plugins.find((row) => row.id === pending.id)?.canUpdate ?? false } : {}
6319
+ });
6357
6320
  }
6358
- function DiscoverFailure({ t, text, onRetry }) {
6359
- return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverFailure }, /* @__PURE__ */ (0, react.createElement)("p", {
6360
- className: MarketPage_module_default.discoverError,
6361
- role: "alert"
6362
- }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }), text), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
6363
- type: "button",
6364
- size: "sm",
6365
- variant: "outline",
6366
- onClick: onRetry
6367
- }, t("panels.discover.retry")));
6321
+ function holdExpired(held, backInRoster, elapsedMs) {
6322
+ if (held === void 0) return true;
6323
+ return backInRoster || elapsedMs >= 15e3;
6368
6324
  }
6369
- function DiscoverUninitialized({ t, path, empty, onInit }) {
6370
- return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverEmpty }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.PluginArtworkDefault, { size: 48 }), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverEmptyTitle }, t("panels.discover.initTitle")), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverMuted }, empty ? t("panels.discover.emptyRepo") : t("panels.discover.missingIndex", { path })), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
6371
- type: "button",
6372
- size: "sm",
6373
- variant: "primary",
6374
- onClick: onInit
6375
- }, t("panels.discover.initCta")));
6325
+ function heldIdOf(pending, held) {
6326
+ return pending?.id ?? held?.id ?? null;
6376
6327
  }
6377
- function DiscoverNoSource({ t, onAdd }) {
6378
- return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverEmpty }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.PluginArtworkDefault, { size: 48 }), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverEmptyTitle }, t("panels.discover.noSource")), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverMuted }, t("panels.discover.noSourceHint")), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
6379
- type: "button",
6380
- size: "sm",
6381
- variant: "primary",
6382
- icon: /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutlineRegular, { size: 13 }),
6383
- onClick: onAdd
6384
- }, t("panels.discover.addFirstSource")));
6328
+ function pinnedRowOf(pending, held) {
6329
+ return pending?.row ?? held?.row;
6385
6330
  }
6386
- function DiscoverReadFailure({ t, text, auth, onRetry }) {
6387
- return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(DiscoverFailure, {
6388
- t,
6389
- text,
6390
- onRetry
6391
- }), auth ? /* @__PURE__ */ (0, react.createElement)("p", {
6392
- className: MarketPage_module_default.discoverNotice,
6393
- role: "note"
6394
- }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
6395
- size: 14,
6396
- "aria-hidden": "true"
6397
- }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.discover.sourceAuth"))) : null);
6331
+ function withPinnedRow(rows, pinned) {
6332
+ if (pinned === void 0) return [...rows];
6333
+ if (!rows.some((row) => row.id === pinned.id)) return [...rows, pinned];
6334
+ return rows.map((row) => row.id === pinned.id ? pinned : row);
6335
+ }
6336
+ function marketFootVisible(shown, installed) {
6337
+ return shown.length > 0 || installed.length > 0;
6338
+ }
6339
+ var NO_NAMES = /* @__PURE__ */ new Map();
6340
+ function marketRowMap(shown, self, installed, plugins) {
6341
+ return new Map([
6342
+ ...shown,
6343
+ ...self === void 0 ? [] : [self],
6344
+ ...installed,
6345
+ ...plugins
6346
+ ].map((row) => [row.id, row]));
6347
+ }
6348
+ function marketNamesOf(t, modules, titleOf, mocked) {
6349
+ return mocked ? NO_NAMES : namesOf(t, modules, titleOf);
6350
+ }
6351
+ function useHeldRow(pending, backInRoster) {
6352
+ const [held, setHeld] = (0, react.useState)(void 0);
6353
+ const heldAtRef = (0, react.useRef)(0);
6354
+ const hold = (0, react.useCallback)((next) => {
6355
+ if (next !== void 0) heldAtRef.current = Date.now();
6356
+ setHeld(next);
6357
+ }, []);
6358
+ const back = held === void 0 ? false : backInRoster(held.id);
6359
+ (0, react.useEffect)(() => {
6360
+ if (held === void 0) return;
6361
+ if (holdExpired(held, back, Date.now() - heldAtRef.current)) {
6362
+ setHeld(void 0);
6363
+ return;
6364
+ }
6365
+ const timer = setTimeout(() => setHeld(void 0), MODULE_SETTLE_MS);
6366
+ return () => clearTimeout(timer);
6367
+ }, [held, back]);
6368
+ (0, react.useEffect)(() => {
6369
+ if (pending !== null) setHeld(void 0);
6370
+ }, [pending]);
6371
+ return {
6372
+ held,
6373
+ hold
6374
+ };
6375
+ }
6376
+ var MODULE_REMOVALS = /* @__PURE__ */ new Set(["remove-bundle", "uninstall"]);
6377
+ function removingIdOf(pending, failed) {
6378
+ if (pending === null || !MODULE_REMOVALS.has(pending.action)) return null;
6379
+ return failed?.id === pending.id ? null : pending.id;
6380
+ }
6381
+ function pendingRowOf(input) {
6382
+ const { pending, removing } = input;
6383
+ if (removing === null || pending === null) return void 0;
6384
+ if (input.rows.some((row) => row.id === removing)) return void 0;
6385
+ const name = pending.label ?? input.names.get(removing);
6386
+ return {
6387
+ id: removing,
6388
+ titleKey: pending.titleKey ?? removing,
6389
+ ...name === void 0 ? {} : { label: name },
6390
+ state: "installed",
6391
+ canInstall: false,
6392
+ canUpdate: false,
6393
+ canUninstall: true,
6394
+ ...pending.pkg === void 0 ? {} : { pkg: pending.pkg },
6395
+ ...pending.version === void 0 ? {} : { version: { installed: pending.version } }
6396
+ };
6398
6397
  }
6399
6398
  //#endregion
6400
- //#region src/app/layouts/rightbar/MarketStates.tsx
6401
- function MarketChecking({ t }) {
6402
- return /* @__PURE__ */ (0, react.createElement)(DiscoverSkeleton, { label: t("panels.market.checking") });
6399
+ //#region src/shared/components/Tip.tsx
6400
+ /**
6401
+ * dsh `Tooltip` 的外壳默认值版:说明统一按右栏习惯(`bottom` / `end` / `gap 6` / 挂 body)来,其余 prop 原样转给 `Tooltip`。
6402
+ * @param props.side - 气泡出现在锚点哪一侧(默认 `'bottom'`)。
6403
+ * @param props.align - 底 / 顶气泡贴锚点哪条边(默认 `'end'`)。
6404
+ * @param props.gap - 锚点到气泡的间距(默认 `6`)。
6405
+ * @param props.portal - 是否挂到 `document.body`,以逃出裁剪容器与层叠上下文(默认 `true`)。
6406
+ * @param props.children - 单个锚点元素;`label` / `shortcutKeys` / `openOnClick` 等其余 prop 与 dsh 同形。
6407
+ */
6408
+ function Tip({ side = "bottom", align = "end", gap = 6, portal = true, ...rest }) {
6409
+ return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
6410
+ side,
6411
+ align,
6412
+ gap,
6413
+ portal,
6414
+ ...rest
6415
+ });
6403
6416
  }
6404
- function MarketEmpty({ t }) {
6405
- return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEmpty }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEmptyTitle }, t("panels.market.empty")));
6417
+ //#endregion
6418
+ //#region src/app/layouts/rightbar/market-row-icon.ts
6419
+ var SIZE$1 = 28;
6420
+ var ARTWORK = 36;
6421
+ function packageIcon(kind) {
6422
+ switch (kind) {
6423
+ case "module": return (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.PluginArtworkDefault, { size: ARTWORK });
6424
+ case "plugin": return (0, react.createElement)(IconOpencli, { size: SIZE$1 });
6425
+ case "lib": return (0, react.createElement)(IconNpm, { size: SIZE$1 });
6426
+ case "workbench": return (0, react.createElement)(IconBrandMark, { size: SIZE$1 });
6427
+ }
6428
+ }
6429
+ function marketRowKind(row) {
6430
+ if (row.workbench === true) return "workbench";
6431
+ if (row.plugin === true) return "plugin";
6432
+ return "module";
6433
+ }
6434
+ function sharedRowKind(row) {
6435
+ return row.kind === "extension" ? "plugin" : "lib";
6406
6436
  }
6407
6437
  var FailureCard_module_default = {
6408
6438
  block: "_block_mxnbc_1",
@@ -6565,252 +6595,151 @@ window.__ModuleLoader__.load({
6565
6595
  exitCode: failure.exitCode
6566
6596
  };
6567
6597
  }
6568
- //#endregion
6569
- //#region src/app/layouts/rightbar/market-section-icon.ts
6570
- var SIZE$1 = 14;
6571
- function marketSectionIcon(kind) {
6572
- switch (kind) {
6573
- case "installed": return (0, react.createElement)(IconModules, { size: SIZE$1 });
6574
- case "pending": return (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconDownloadOutlineRegular, { size: SIZE$1 });
6575
- case "plugins": return (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconCordisPluginOutlineRegular, { size: SIZE$1 });
6576
- case "shared": return (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconLinkOutlineRegular, { size: SIZE$1 });
6577
- }
6578
- }
6579
- //#endregion
6580
- //#region src/app/layouts/rightbar/market-row-icon.ts
6581
- var SIZE = 28;
6582
- var ARTWORK = 36;
6583
- function packageIcon(kind) {
6584
- switch (kind) {
6585
- case "module": return (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.PluginArtworkDefault, { size: ARTWORK });
6586
- case "plugin": return (0, react.createElement)(IconOpencli, { size: SIZE });
6587
- case "lib": return (0, react.createElement)(IconNpm, { size: SIZE });
6588
- case "workbench": return (0, react.createElement)(IconBrandMark, { size: SIZE });
6589
- }
6590
- }
6591
- function marketRowKind(row) {
6592
- if (row.workbench === true) return "workbench";
6593
- if (row.plugin === true) return "plugin";
6594
- return "module";
6595
- }
6596
- function sharedRowKind(row) {
6597
- return row.kind === "extension" ? "plugin" : "lib";
6598
- }
6599
- //#endregion
6600
- //#region src/app/layouts/rightbar/market-names.ts
6601
- function namesOf(t, modules, titleOf) {
6602
- const shown = /* @__PURE__ */ new Map();
6603
- for (const module of modules) {
6604
- const key = unitTitleKey(module.unit);
6605
- const live = t(key);
6606
- const name = live !== key && live !== "" ? live : titleOf(module.title);
6607
- if (name !== "") shown.set(module.unit, name);
6608
- }
6609
- return shown;
6610
- }
6611
- //#endregion
6612
- //#region src/app/layouts/rightbar/market-view-text.ts
6613
- var PROGRESS_KEY = {
6614
- install: "panels.market.installing",
6615
- update: "panels.market.updating",
6616
- "update-bundle": "panels.market.updating",
6617
- "install-version": "panels.market.updating",
6618
- "remove-bundle": "panels.market.uninstalling",
6619
- uninstall: "panels.market.uninstalling",
6620
- "update-dependency": "panels.market.updating",
6621
- "update-plugin": "panels.market.updating",
6622
- "uninstall-plugin": "panels.market.uninstalling",
6623
- "update-workbench": "panels.market.updating",
6624
- "migrate-workbench": "panels.market.migrating",
6625
- "dismiss-followup": "panels.market.dismissing"
6626
- };
6627
- var ACTION_LABEL_KEY = {
6628
- install: "panels.market.install",
6629
- update: "panels.market.update",
6630
- "update-bundle": "panels.market.update",
6631
- "install-version": "panels.market.update",
6632
- "remove-bundle": "panels.market.uninstall",
6633
- uninstall: "panels.market.uninstall",
6634
- "update-dependency": "panels.market.update",
6635
- "update-plugin": "panels.market.update",
6636
- "uninstall-plugin": "panels.market.uninstall",
6637
- "update-workbench": "panels.market.update",
6638
- "migrate-workbench": "panels.market.migrateAction",
6639
- "dismiss-followup": "panels.market.dismissFollowUp"
6640
- };
6641
- var UPDATE_ACTIONS = Object.keys(ACTION_LABEL_KEY).filter((action) => ACTION_LABEL_KEY[action] === "panels.market.update");
6642
- function holdOf(pending, application) {
6643
- if (pending === null || pending.row === void 0) return void 0;
6644
- if (application !== "applied") return void 0;
6645
- return {
6646
- id: pending.id,
6647
- row: pending.row
6648
- };
6649
- }
6650
- function pendingLanded(pending, updates, capabilities, installed, shared = [], plugins = null, removal = {
6651
- units: null,
6652
- plugins: null
6653
- }) {
6654
- if (pending === null) return true;
6655
- if (pending.action === "update" && capabilities === null) return false;
6656
- return settleLanded({
6657
- action: pending.action,
6658
- until: pending.until,
6659
- readBack: pending.readBack,
6660
- installed,
6661
- entry: updates[pending.id],
6662
- clicked: pending.version,
6663
- outdated: capabilityOutdated(capabilities, pending.id),
6664
- unitGone: removal.units === null ? null : !removal.units.has(pending.id),
6665
- pluginGone: removal.plugins === null ? null : !removal.plugins.has(pending.id),
6666
- ...pending.action === "update-dependency" ? { sharedState: shared.find((row) => row.id === pending.id)?.state } : {},
6667
- ...pending.action === "update-plugin" ? { pluginOutdated: plugins === null ? null : plugins.find((row) => row.id === pending.id)?.canUpdate ?? false } : {}
6668
- });
6669
- }
6670
- function holdExpired(held, backInRoster, elapsedMs) {
6671
- if (held === void 0) return true;
6672
- return backInRoster || elapsedMs >= 15e3;
6673
- }
6674
- function heldIdOf(pending, held) {
6675
- return pending?.id ?? held?.id ?? null;
6676
- }
6677
- function pinnedRowOf(pending, held) {
6678
- return pending?.row ?? held?.row;
6679
- }
6680
- function withPinnedRow(rows, pinned) {
6681
- if (pinned === void 0) return [...rows];
6682
- if (!rows.some((row) => row.id === pinned.id)) return [...rows, pinned];
6683
- return rows.map((row) => row.id === pinned.id ? pinned : row);
6684
- }
6685
- function marketFootVisible(shown, installed) {
6686
- return shown.length > 0 || installed.length > 0;
6687
- }
6688
- var NO_NAMES = /* @__PURE__ */ new Map();
6689
- function marketNamesOf(t, modules, titleOf, mocked) {
6690
- return mocked ? NO_NAMES : namesOf(t, modules, titleOf);
6691
- }
6692
- function useHeldRow(pending, backInRoster) {
6693
- const [held, setHeld] = (0, react.useState)(void 0);
6694
- const heldAtRef = (0, react.useRef)(0);
6695
- const hold = (0, react.useCallback)((next) => {
6696
- if (next !== void 0) heldAtRef.current = Date.now();
6697
- setHeld(next);
6698
- }, []);
6699
- const back = held === void 0 ? false : backInRoster(held.id);
6700
- (0, react.useEffect)(() => {
6701
- if (held === void 0) return;
6702
- if (holdExpired(held, back, Date.now() - heldAtRef.current)) {
6703
- setHeld(void 0);
6704
- return;
6705
- }
6706
- const timer = setTimeout(() => setHeld(void 0), MODULE_SETTLE_MS);
6707
- return () => clearTimeout(timer);
6708
- }, [held, back]);
6709
- (0, react.useEffect)(() => {
6710
- if (pending !== null) setHeld(void 0);
6711
- }, [pending]);
6712
- return {
6713
- held,
6714
- hold
6715
- };
6716
- }
6717
- var MODULE_REMOVALS = /* @__PURE__ */ new Set(["remove-bundle", "uninstall"]);
6718
- function removingIdOf(pending, failed) {
6719
- if (pending === null || !MODULE_REMOVALS.has(pending.action)) return null;
6720
- return failed?.id === pending.id ? null : pending.id;
6721
- }
6722
- function pendingRowOf(input) {
6723
- const { pending, removing } = input;
6724
- if (removing === null || pending === null) return void 0;
6725
- if (input.rows.some((row) => row.id === removing)) return void 0;
6726
- const name = pending.label ?? input.names.get(removing);
6727
- return {
6728
- id: removing,
6729
- titleKey: pending.titleKey ?? removing,
6730
- ...name === void 0 ? {} : { label: name },
6731
- state: "installed",
6732
- canInstall: false,
6733
- canUpdate: false,
6734
- canUninstall: true,
6735
- ...pending.pkg === void 0 ? {} : { pkg: pending.pkg },
6736
- ...pending.version === void 0 ? {} : { version: { installed: pending.version } }
6737
- };
6738
- }
6739
- //#endregion
6740
- //#region src/app/layouts/rightbar/SharedSection.tsx
6741
- function SharedLine({ t, row, pending, failure, onAct, onRecheck, rechecking }) {
6742
- const running = pending !== null && pending.id === row.id ? pending : null;
6743
- const locked = pending !== null;
6744
- const actions = sharedActions(row);
6745
- const stateText = t(SHARED_STATE_KEY[row.state]);
6746
- const version = row.version;
6747
- const name = /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketName }, row.label, version === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketVersion }, version.installed !== void 0 && version.latest !== void 0 && version.installed !== version.latest ? t("panels.market.versionArrow", {
6748
- from: version.installed,
6749
- to: version.latest
6750
- }) : version.installed ?? version.latest ?? ""));
6751
- return /* @__PURE__ */ (0, react.createElement)("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ (0, react.createElement)("span", {
6752
- className: MarketPage_module_default.marketIcon,
6753
- "aria-hidden": "true"
6754
- }, packageIcon(sharedRowKind(row))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketMain }, name, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketStatus }, row.state === "checking" ? /* @__PURE__ */ (0, react.createElement)(Spinner, { size: 14 }) : null, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketStateText }, stateText), /* @__PURE__ */ (0, react.createElement)("span", {
6755
- className: MarketPage_module_default.marketSep,
6756
- "aria-hidden": "true"
6757
- }, "·"), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketReason }, t("panels.market.sharedUsedBy", { modules: row.usedByKeys.map((key) => t(key)).join(t("panels.market.listSeparator")) })))), /* @__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) => /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
6758
- key: action,
6759
- type: "button",
6760
- size: "sm",
6761
- variant: "outline",
6762
- disabled: locked,
6763
- onClick: () => onAct(action)
6764
- }, t(ACTION_LABEL_KEY[action]))))), failure === null ? null : failure.failure === void 0 ? /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketFailure }, failure.message) : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketFailureSeat }, /* @__PURE__ */ (0, react.createElement)(FailureCard, {
6765
- t,
6766
- model: failureCardOf(failure.failure, t),
6767
- onRecheck,
6768
- rechecking
6769
- })));
6770
- }
6771
- function SharedSection({ t, rows, pending, failureOf, act, onRecheck, rechecking }) {
6772
- if (rows.length === 0) return null;
6773
- return /* @__PURE__ */ (0, react.createElement)("section", { className: `${MarketPage_module_default.marketSection} ${MarketPage_module_default.marketSectionQuiet}` }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ (0, react.createElement)("span", {
6774
- className: MarketPage_module_default.marketSectionIcon,
6775
- "aria-hidden": "true"
6776
- }, marketSectionIcon("shared")), /* @__PURE__ */ (0, react.createElement)("h2", { className: MarketPage_module_default.marketSectionTitle }, t("panels.market.sectionShared")), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSectionCount }, rows.length)), /* @__PURE__ */ (0, react.createElement)("ul", { className: MarketPage_module_default.marketList }, rows.map((row) => /* @__PURE__ */ (0, react.createElement)(SharedLine, {
6777
- key: row.id,
6778
- t,
6779
- row,
6780
- pending,
6781
- failure: failureOf(row.id),
6782
- onAct: (action) => void act(row.id, action),
6783
- onRecheck,
6784
- rechecking
6785
- }))));
6786
- }
6787
- //#endregion
6788
- //#region src/shared/components/Tip.tsx
6789
- /**
6790
- * dsh `Tooltip` 的外壳默认值版:说明统一按右栏习惯(`bottom` / `end` / `gap 6` / 挂 body)来,其余 prop 原样转给 `Tooltip`。
6791
- * @param props.side - 气泡出现在锚点哪一侧(默认 `'bottom'`)。
6792
- * @param props.align - 底 / 顶气泡贴锚点哪条边(默认 `'end'`)。
6793
- * @param props.gap - 锚点到气泡的间距(默认 `6`)。
6794
- * @param props.portal - 是否挂到 `document.body`,以逃出裁剪容器与层叠上下文(默认 `true`)。
6795
- * @param props.children - 单个锚点元素;`label` / `shortcutKeys` / `openOnClick` 等其余 prop 与 dsh 同形。
6796
- */
6797
- function Tip({ side = "bottom", align = "end", gap = 6, portal = true, ...rest }) {
6798
- return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
6799
- side,
6800
- align,
6801
- gap,
6802
- portal,
6803
- ...rest
6804
- });
6805
- }
6598
+ var MarketPage_module_default = {
6599
+ marketList: "_marketList_9z259_1",
6600
+ marketRow: "_marketRow_9z259_10",
6601
+ marketNameOpen: "_marketNameOpen_9z259_25",
6602
+ marketIcon: "_marketIcon_9z259_53",
6603
+ marketMain: "_marketMain_9z259_65",
6604
+ marketName: "_marketName_9z259_25",
6605
+ marketStatus: "_marketStatus_9z259_81",
6606
+ marketStateText: "_marketStateText_9z259_91",
6607
+ marketSep: "_marketSep_9z259_95",
6608
+ marketReason: "_marketReason_9z259_99",
6609
+ marketVersion: "_marketVersion_9z259_105",
6610
+ marketLocalTag: "_marketLocalTag_9z259_127",
6611
+ marketEnd: "_marketEnd_9z259_138",
6612
+ marketSwitchSeat: "_marketSwitchSeat_9z259_147",
6613
+ marketActions: "_marketActions_9z259_160",
6614
+ marketUpdateAction: "_marketUpdateAction_9z259_166",
6615
+ marketSelfDivider: "_marketSelfDivider_9z259_172",
6616
+ marketSection: "_marketSection_9z259_178",
6617
+ marketSectionHead: "_marketSectionHead_9z259_185",
6618
+ marketSectionIcon: "_marketSectionIcon_9z259_191",
6619
+ marketSectionTitle: "_marketSectionTitle_9z259_198",
6620
+ marketSectionCount: "_marketSectionCount_9z259_204",
6621
+ marketSectionAction: "_marketSectionAction_9z259_210",
6622
+ marketSectionQuiet: "_marketSectionQuiet_9z259_218",
6623
+ marketProgress: "_marketProgress_9z259_230",
6624
+ marketNote: "_marketNote_9z259_240",
6625
+ marketFailure: "_marketFailure_9z259_247",
6626
+ marketFailureSeat: "_marketFailureSeat_9z259_254",
6627
+ marketEmpty: "_marketEmpty_9z259_261",
6628
+ marketPage: "_marketPage_9z259_266",
6629
+ marketPageHead: "_marketPageHead_9z259_284",
6630
+ marketPageTitle: "_marketPageTitle_9z259_292",
6631
+ marketPageIntro: "_marketPageIntro_9z259_297",
6632
+ marketPageTools: "_marketPageTools_9z259_303",
6633
+ marketPanel: "_marketPanel_9z259_312",
6634
+ marketTabs: "_marketTabs_9z259_322",
6635
+ marketTabList: "_marketTabList_9z259_327",
6636
+ marketAddButton: "_marketAddButton_9z259_332",
6637
+ marketEmptyTitle: "_marketEmptyTitle_9z259_349",
6638
+ discoverPage: "_discoverPage_9z259_354",
6639
+ discoverBar: "_discoverBar_9z259_361",
6640
+ discoverTools: "_discoverTools_9z259_368",
6641
+ discoverMarket: "_discoverMarket_9z259_374",
6642
+ discoverMarketButton: "_discoverMarketButton_9z259_379",
6643
+ discoverMarketName: "_discoverMarketName_9z259_386",
6644
+ discoverLabels: "_discoverLabels_9z259_392",
6645
+ discoverSort: "_discoverSort_9z259_397",
6646
+ discoverRefresh: "_discoverRefresh_9z259_402",
6647
+ discoverSearch: "_discoverSearch_9z259_406",
6648
+ discoverSearchField: "_discoverSearchField_9z259_414",
6649
+ discoverSearchFieldFilled: "_discoverSearchFieldFilled_9z259_419",
6650
+ discoverSearchClear: "_discoverSearchClear_9z259_428",
6651
+ discoverChips: "_discoverChips_9z259_479",
6652
+ discoverList: "_discoverList_9z259_486",
6653
+ discoverCard: "_discoverCard_9z259_495",
6654
+ discoverArtwork: "_discoverArtwork_9z259_509",
6655
+ discoverArtworkImage: "_discoverArtworkImage_9z259_521",
6656
+ discoverMain: "_discoverMain_9z259_525",
6657
+ discoverTitleRow: "_discoverTitleRow_9z259_533",
6658
+ discoverCardOpen: "_discoverCardOpen_9z259_541",
6659
+ discoverStrong: "_discoverStrong_9z259_572",
6660
+ discoverDesc: "_discoverDesc_9z259_578",
6661
+ discoverMeta: "_discoverMeta_9z259_587",
6662
+ discoverMuted: "_discoverMuted_9z259_594",
6663
+ discoverEnd: "_discoverEnd_9z259_600",
6664
+ discoverUpdateAction: "_discoverUpdateAction_9z259_609",
6665
+ discoverBlocked: "_discoverBlocked_9z259_614",
6666
+ discoverEmpty: "_discoverEmpty_9z259_619",
6667
+ discoverEmptyTitle: "_discoverEmptyTitle_9z259_628",
6668
+ discoverDetail: "_discoverDetail_9z259_638",
6669
+ discoverCrumb: "_discoverCrumb_9z259_644",
6670
+ discoverCrumbIcon: "_discoverCrumbIcon_9z259_667",
6671
+ discoverDetailHead: "_discoverDetailHead_9z259_671",
6672
+ marketDetailHead: "_marketDetailHead_9z259_677",
6673
+ marketDetailName: "_marketDetailName_9z259_682",
6674
+ marketDetailEnd: "_marketDetailEnd_9z259_693",
6675
+ discoverDetailTitle: "_discoverDetailTitle_9z259_703",
6676
+ discoverDetailText: "_discoverDetailText_9z259_709",
6677
+ discoverDetailPanel: "_discoverDetailPanel_9z259_716",
6678
+ discoverDetailTabs: "_discoverDetailTabs_9z259_723",
6679
+ discoverDetailTabList: "_discoverDetailTabList_9z259_728",
6680
+ discoverDocBody: "_discoverDocBody_9z259_733",
6681
+ discoverDocNotice: "_discoverDocNotice_9z259_738",
6682
+ discoverSection: "_discoverSection_9z259_744",
6683
+ discoverSectionTitle: "_discoverSectionTitle_9z259_751",
6684
+ discoverFacts: "_discoverFacts_9z259_757",
6685
+ discoverFactRow: "_discoverFactRow_9z259_762",
6686
+ discoverFactKind: "_discoverFactKind_9z259_772",
6687
+ discoverFactValue: "_discoverFactValue_9z259_778",
6688
+ discoverCode: "_discoverCode_9z259_786",
6689
+ discoverTags: "_discoverTags_9z259_795",
6690
+ discoverLink: "_discoverLink_9z259_802",
6691
+ discoverVersions: "_discoverVersions_9z259_812",
6692
+ discoverVersionRow: "_discoverVersionRow_9z259_820",
6693
+ discoverVersionName: "_discoverVersionName_9z259_828",
6694
+ discoverError: "_discoverError_9z259_833",
6695
+ discoverFailure: "_discoverFailure_9z259_843",
6696
+ discoverLoading: "_discoverLoading_9z259_849",
6697
+ discoverNotice: "_discoverNotice_9z259_858",
6698
+ discoverMore: "_discoverMore_9z259_876",
6699
+ discoverTransport: "_discoverTransport_9z259_880",
6700
+ discoverTransportHead: "_discoverTransportHead_9z259_886",
6701
+ discoverTransportTitle: "_discoverTransportTitle_9z259_893",
6702
+ discoverTransportKind: "_discoverTransportKind_9z259_898",
6703
+ discoverTransportState: "_discoverTransportState_9z259_903",
6704
+ discoverTransportRows: "_discoverTransportRows_9z259_911",
6705
+ discoverTransportRow: "_discoverTransportRow_9z259_911",
6706
+ discoverTransportRadio: "_discoverTransportRadio_9z259_932",
6707
+ discoverTransportCustom: "_discoverTransportCustom_9z259_972",
6708
+ discoverTransportInput: "_discoverTransportInput_9z259_978",
6709
+ discoverInstallBar: "_discoverInstallBar_9z259_983",
6710
+ discoverInstallText: "_discoverInstallText_9z259_994",
6711
+ discoverDialog: "_discoverDialog_9z259_1000",
6712
+ discoverDialogBody: "_discoverDialogBody_9z259_1004",
6713
+ discoverSourceList: "_discoverSourceList_9z259_1010",
6714
+ discoverSourceRow: "_discoverSourceRow_9z259_1018",
6715
+ discoverSourceConfirm: "_discoverSourceConfirm_9z259_1027",
6716
+ discoverSourcePick: "_discoverSourcePick_9z259_1033",
6717
+ discoverSourceRadio: "_discoverSourceRadio_9z259_1042",
6718
+ discoverSourceMain: "_discoverSourceMain_9z259_1050",
6719
+ discoverSourceHead: "_discoverSourceHead_9z259_1058",
6720
+ discoverSourceUrl: "_discoverSourceUrl_9z259_1066",
6721
+ discoverSourceMore: "_discoverSourceMore_9z259_1076",
6722
+ discoverSourceLoading: "_discoverSourceLoading_9z259_1080",
6723
+ discoverSourceHint: "_discoverSourceHint_9z259_1090",
6724
+ discoverSourceError: "_discoverSourceError_9z259_1104",
6725
+ discoverSourceForm: "_discoverSourceForm_9z259_1110",
6726
+ discoverGrow: "_discoverGrow_9z259_1116",
6727
+ discoverField: "_discoverField_9z259_1121",
6728
+ discoverFieldLabel: "_discoverFieldLabel_9z259_1127",
6729
+ discoverConfirmHead: "_discoverConfirmHead_9z259_1132",
6730
+ discoverSkeletonFill: "_discoverSkeletonFill_9z259_1138",
6731
+ "wb-skeleton": "_wb-skeleton_9z259_1",
6732
+ discoverSkeletonBar: "_discoverSkeletonBar_9z259_1147",
6733
+ discoverSkeletonTitle: "_discoverSkeletonTitle_9z259_1154",
6734
+ discoverSkeletonDesc: "_discoverSkeletonDesc_9z259_1158"
6735
+ };
6806
6736
  //#endregion
6807
6737
  //#region src/app/layouts/rightbar/market-section.tsx
6808
- var dangerActions = [
6738
+ var CONFIRM_DANGER = [
6809
6739
  "uninstall",
6810
6740
  "remove-bundle",
6811
6741
  "uninstall-plugin"
6812
6742
  ];
6813
- var updateActions = UPDATE_ACTIONS;
6814
6743
  function MigrationConfirm({ t, onConfirm, onCancel }) {
6815
6744
  const [acknowledged, setAcknowledged] = (0, react.useState)(false);
6816
6745
  return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, {
@@ -6843,17 +6772,6 @@ window.__ModuleLoader__.load({
6843
6772
  onConfirm
6844
6773
  });
6845
6774
  }
6846
- function MarketLineDialogs({ t, migrationOpen, dismissOpen, onMigrationCancel, onMigrationConfirm, onDismissCancel, onDismissConfirm }) {
6847
- return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, migrationOpen ? /* @__PURE__ */ (0, react.createElement)(MigrationConfirm, {
6848
- t,
6849
- onCancel: onMigrationCancel,
6850
- onConfirm: onMigrationConfirm
6851
- }) : null, dismissOpen ? /* @__PURE__ */ (0, react.createElement)(DismissFollowUpConfirm, {
6852
- t,
6853
- onCancel: onDismissCancel,
6854
- onConfirm: onDismissConfirm
6855
- }) : null);
6856
- }
6857
6775
  function MarketLineStatus({ t, row, quiet }) {
6858
6776
  const stateText = t(MARKET_STATE_KEY[row.state]);
6859
6777
  const noteText = row.note === void 0 ? null : t(row.note.key, row.note.params);
@@ -6869,7 +6787,7 @@ window.__ModuleLoader__.load({
6869
6787
  "aria-hidden": "true"
6870
6788
  }, "·"), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketReason }, noteText)));
6871
6789
  }
6872
- function MarketFailureBlock({ t, failure, onRecheck, rechecking }) {
6790
+ function MarketRowFailure({ t, failure, onRecheck, rechecking }) {
6873
6791
  if (failure === null) return null;
6874
6792
  const model = failure.card ?? (failure.failure === void 0 ? void 0 : failureCardOf(failure.failure, t));
6875
6793
  if (model !== void 0) return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketFailureSeat }, /* @__PURE__ */ (0, react.createElement)(FailureCard, {
@@ -6880,27 +6798,16 @@ window.__ModuleLoader__.load({
6880
6798
  }));
6881
6799
  return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketFailure }, failure.message);
6882
6800
  }
6883
- function MarketLine({ t, row, pending, failure, onAct, onDefault, boardBusy, onRecheck, rechecking }) {
6801
+ function MarketRowControls({ t, row, pending, boardBusy, onRequest, onDefault }) {
6884
6802
  const running = pending !== null && pending.id === row.id ? pending : null;
6885
6803
  const locked = pending !== null;
6886
- const [migrationOpen, setMigrationOpen] = (0, react.useState)(false);
6887
- const [dismissOpen, setDismissOpen] = (0, react.useState)(false);
6888
- const quiet = row.workbench === true && row.state === "installed" && row.hint === void 0;
6889
6804
  const actions = marketActions$1(row);
6890
6805
  const switchLocked = marketSwitchLocked(row);
6891
- return /* @__PURE__ */ (0, react.createElement)("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ (0, react.createElement)("span", {
6892
- className: MarketPage_module_default.marketIcon,
6893
- "aria-hidden": "true"
6894
- }, packageIcon(marketRowKind(row))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketMain }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketName }, marketRowTitle(row, t), row.versionLabel === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketVersion }, row.versionLabel), row.version === void 0 || row.versionLabel !== void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketVersion }, row.version.installed !== void 0 && row.version.latest !== void 0 && row.version.installed !== row.version.latest ? t("panels.market.versionArrow", {
6895
- from: row.version.installed,
6896
- to: row.version.latest
6897
- }) : row.version.installed ?? row.version.latest ?? ""), row.local === true ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketLocalTag }, t("panels.market.localMark")) : null), /* @__PURE__ */ (0, react.createElement)(MarketLineStatus, {
6898
- t,
6899
- row,
6900
- quiet
6901
- })), /* @__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) => {
6902
- const danger = dangerActions.includes(action);
6903
- const update = updateActions.includes(action);
6806
+ const [migrationOpen, setMigrationOpen] = (0, react.useState)(false);
6807
+ const [dismissOpen, setDismissOpen] = (0, react.useState)(false);
6808
+ return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, 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) => {
6809
+ const danger = CONFIRM_DANGER.includes(action);
6810
+ const update = UPDATE_ACTIONS.includes(action);
6904
6811
  return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
6905
6812
  key: action,
6906
6813
  type: "button",
@@ -6913,7 +6820,7 @@ window.__ModuleLoader__.load({
6913
6820
  onClick: () => {
6914
6821
  if (action === "migrate-workbench") setMigrationOpen(true);
6915
6822
  else if (action === "dismiss-followup") setDismissOpen(true);
6916
- else onAct(action);
6823
+ else onRequest(action);
6917
6824
  }
6918
6825
  }, t(ACTION_LABEL_KEY[action]));
6919
6826
  })), row.defaultShown === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(Tip, { label: t(switchLocked ? "panels.market.defaultLocked" : "panels.market.defaultHint") }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSwitchSeat }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Switch, {
@@ -6921,44 +6828,560 @@ window.__ModuleLoader__.load({
6921
6828
  disabled: boardBusy === true || locked || switchLocked,
6922
6829
  label: `${marketRowTitle(row, t)} · ${t("panels.market.defaultLabel")}`,
6923
6830
  onChange: (next) => onDefault?.(next)
6924
- })))), /* @__PURE__ */ (0, react.createElement)(MarketFailureBlock, {
6831
+ }))), migrationOpen ? /* @__PURE__ */ (0, react.createElement)(MigrationConfirm, {
6832
+ t,
6833
+ onCancel: () => setMigrationOpen(false),
6834
+ onConfirm: () => {
6835
+ setMigrationOpen(false);
6836
+ onRequest("migrate-workbench");
6837
+ }
6838
+ }) : null, dismissOpen ? /* @__PURE__ */ (0, react.createElement)(DismissFollowUpConfirm, {
6839
+ t,
6840
+ onCancel: () => setDismissOpen(false),
6841
+ onConfirm: () => {
6842
+ setDismissOpen(false);
6843
+ onRequest("dismiss-followup");
6844
+ }
6845
+ }) : null);
6846
+ }
6847
+ function MarketLine({ t, row, pending, failure, onAct, onDefault, onOpenDetail, boardBusy, onRecheck, rechecking }) {
6848
+ const title = marketRowTitle(row, t);
6849
+ const quiet = row.workbench === true && row.state === "installed" && row.hint === void 0;
6850
+ const clickable = row.pkg !== void 0 && onOpenDetail !== void 0;
6851
+ return /* @__PURE__ */ (0, react.createElement)("li", {
6852
+ className: MarketPage_module_default.marketRow,
6853
+ "data-open": clickable ? "true" : void 0
6854
+ }, /* @__PURE__ */ (0, react.createElement)("span", {
6855
+ className: MarketPage_module_default.marketIcon,
6856
+ "aria-hidden": "true"
6857
+ }, packageIcon(marketRowKind(row))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketMain }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketName }, clickable ? /* @__PURE__ */ (0, react.createElement)("button", {
6858
+ type: "button",
6859
+ className: MarketPage_module_default.marketNameOpen,
6860
+ "aria-label": t("panels.market.openDetail", { name: title }),
6861
+ onClick: () => onOpenDetail?.(row.id)
6862
+ }, title) : title, row.versionLabel === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketVersion }, row.versionLabel), row.version === void 0 || row.versionLabel !== void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketVersion }, row.version.installed !== void 0 && row.version.latest !== void 0 && row.version.installed !== row.version.latest ? t("panels.market.versionArrow", {
6863
+ from: row.version.installed,
6864
+ to: row.version.latest
6865
+ }) : row.version.installed ?? row.version.latest ?? ""), row.local === true ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketLocalTag }, t("panels.market.localMark")) : null), /* @__PURE__ */ (0, react.createElement)(MarketLineStatus, {
6866
+ t,
6867
+ row,
6868
+ quiet
6869
+ })), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEnd }, /* @__PURE__ */ (0, react.createElement)(MarketRowControls, {
6870
+ t,
6871
+ row,
6872
+ pending,
6873
+ boardBusy,
6874
+ onDefault: (next) => onDefault?.(next),
6875
+ onRequest: (action) => onAct(action)
6876
+ })), /* @__PURE__ */ (0, react.createElement)(MarketRowFailure, {
6877
+ t,
6878
+ failure,
6879
+ onRecheck,
6880
+ rechecking
6881
+ }));
6882
+ }
6883
+ function MarketSection({ t, titleKey, icon, rows, pending, failureOf, act, confirmActions, onConfirming, onDefault, onOpenDetail, boardBusy, headAction, keepHead, onRecheck, rechecking }) {
6884
+ if (rows.length === 0 && keepHead !== true) return null;
6885
+ const request = (id, action) => {
6886
+ if (confirmActions.includes(action)) onConfirming(id);
6887
+ else act(id, action);
6888
+ };
6889
+ return /* @__PURE__ */ (0, react.createElement)("section", { className: MarketPage_module_default.marketSection }, titleKey === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ (0, react.createElement)("span", {
6890
+ className: MarketPage_module_default.marketSectionIcon,
6891
+ "aria-hidden": "true"
6892
+ }, icon), /* @__PURE__ */ (0, react.createElement)("h2", { className: MarketPage_module_default.marketSectionTitle }, t(titleKey)), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSectionCount }, rows.length), headAction === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSectionAction }, headAction)), rows.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("ul", { className: MarketPage_module_default.marketList }, rows.map((row) => /* @__PURE__ */ (0, react.createElement)(MarketLine, {
6893
+ key: row.id,
6894
+ t,
6895
+ row,
6896
+ pending,
6897
+ failure: failureOf(row.id),
6898
+ onAct: (action) => request(row.id, action),
6899
+ onDefault: (next) => onDefault?.(row.id, next),
6900
+ onOpenDetail,
6901
+ boardBusy,
6902
+ onRecheck,
6903
+ rechecking
6904
+ }))));
6905
+ }
6906
+ //#endregion
6907
+ //#region src/app/layouts/rightbar/market-section-icon.ts
6908
+ var SIZE = 14;
6909
+ function marketSectionIcon(kind) {
6910
+ switch (kind) {
6911
+ case "installed": return (0, react.createElement)(IconModules, { size: SIZE });
6912
+ case "pending": return (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconDownloadOutlineRegular, { size: SIZE });
6913
+ case "plugins": return (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconCordisPluginOutlineRegular, { size: SIZE });
6914
+ case "shared": return (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconLinkOutlineRegular, { size: SIZE });
6915
+ }
6916
+ }
6917
+ //#endregion
6918
+ //#region src/app/layouts/rightbar/SharedSection.tsx
6919
+ function SharedLine({ t, row, pending, failure, onAct, onRecheck, rechecking }) {
6920
+ const running = pending !== null && pending.id === row.id ? pending : null;
6921
+ const locked = pending !== null;
6922
+ const actions = sharedActions(row);
6923
+ const stateText = t(SHARED_STATE_KEY[row.state]);
6924
+ const version = row.version;
6925
+ const name = /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketName }, row.label, version === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketVersion }, version.installed !== void 0 && version.latest !== void 0 && version.installed !== version.latest ? t("panels.market.versionArrow", {
6926
+ from: version.installed,
6927
+ to: version.latest
6928
+ }) : version.installed ?? version.latest ?? ""));
6929
+ return /* @__PURE__ */ (0, react.createElement)("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ (0, react.createElement)("span", {
6930
+ className: MarketPage_module_default.marketIcon,
6931
+ "aria-hidden": "true"
6932
+ }, packageIcon(sharedRowKind(row))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketMain }, name, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketStatus }, row.state === "checking" ? /* @__PURE__ */ (0, react.createElement)(Spinner, { size: 14 }) : null, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketStateText }, stateText), /* @__PURE__ */ (0, react.createElement)("span", {
6933
+ className: MarketPage_module_default.marketSep,
6934
+ "aria-hidden": "true"
6935
+ }, "·"), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketReason }, t("panels.market.sharedUsedBy", { modules: row.usedByKeys.map((key) => t(key)).join(t("panels.market.listSeparator")) })))), /* @__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) => /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
6936
+ key: action,
6937
+ type: "button",
6938
+ size: "sm",
6939
+ variant: "outline",
6940
+ disabled: locked,
6941
+ onClick: () => onAct(action)
6942
+ }, t(ACTION_LABEL_KEY[action]))))), failure === null ? null : failure.failure === void 0 ? /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketFailure }, failure.message) : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketFailureSeat }, /* @__PURE__ */ (0, react.createElement)(FailureCard, {
6943
+ t,
6944
+ model: failureCardOf(failure.failure, t),
6945
+ onRecheck,
6946
+ rechecking
6947
+ })));
6948
+ }
6949
+ function SharedSection({ t, rows, pending, failureOf, act, onRecheck, rechecking }) {
6950
+ if (rows.length === 0) return null;
6951
+ return /* @__PURE__ */ (0, react.createElement)("section", { className: `${MarketPage_module_default.marketSection} ${MarketPage_module_default.marketSectionQuiet}` }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ (0, react.createElement)("span", {
6952
+ className: MarketPage_module_default.marketSectionIcon,
6953
+ "aria-hidden": "true"
6954
+ }, marketSectionIcon("shared")), /* @__PURE__ */ (0, react.createElement)("h2", { className: MarketPage_module_default.marketSectionTitle }, t("panels.market.sectionShared")), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSectionCount }, rows.length)), /* @__PURE__ */ (0, react.createElement)("ul", { className: MarketPage_module_default.marketList }, rows.map((row) => /* @__PURE__ */ (0, react.createElement)(SharedLine, {
6955
+ key: row.id,
6956
+ t,
6957
+ row,
6958
+ pending,
6959
+ failure: failureOf(row.id),
6960
+ onAct: (action) => void act(row.id, action),
6961
+ onRecheck,
6962
+ rechecking
6963
+ }))));
6964
+ }
6965
+ var PanelFoot_module_default = {
6966
+ foot: "_foot_1ud1j_1",
6967
+ footText: "_footText_1ud1j_13",
6968
+ footTextMd: "_footTextMd_1ud1j_18"
6969
+ };
6970
+ //#endregion
6971
+ //#region src/shared/components/PanelFoot.tsx
6972
+ function PanelFoot({ text, size = "sm", children }) {
6973
+ return /* @__PURE__ */ (0, react.createElement)("footer", { className: PanelFoot_module_default.foot }, text === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: size === "md" ? PanelFoot_module_default.footTextMd : PanelFoot_module_default.footText }, text), children ?? null);
6974
+ }
6975
+ //#endregion
6976
+ //#region src/app/layouts/rightbar/market-body.tsx
6977
+ var CONFIRM_UNINSTALL = [
6978
+ "uninstall",
6979
+ "remove-bundle",
6980
+ "uninstall-plugin"
6981
+ ];
6982
+ var NO_ROWS = [];
6983
+ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking, runtimePluginMarket, onOpenDetail }) {
6984
+ const failureOf = (id) => failed?.id === id ? failed : null;
6985
+ const foot = marketFootVisible(shown, installedList);
6986
+ const sections = marketSections(marketOrder([...shown, ...installedList], (row) => marketRowTitle(row, t)));
6987
+ const installed = sections.find((section) => section.id === "installed");
6988
+ const pendingSection = sections.find((section) => section.id === "not-installed");
6989
+ return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, notice === null ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketNote }, notice), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
6990
+ t,
6991
+ rows: self === void 0 ? [] : [self],
6992
+ onDefault: setDefault,
6993
+ boardBusy,
6994
+ pending,
6995
+ failureOf,
6996
+ act,
6997
+ confirmActions: CONFIRM_UNINSTALL,
6998
+ onConfirming,
6999
+ onOpenDetail,
7000
+ onRecheck,
7001
+ rechecking
7002
+ }), self === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", {
7003
+ className: MarketPage_module_default.marketSelfDivider,
7004
+ "aria-hidden": "true"
7005
+ }), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7006
+ t,
7007
+ titleKey: "panels.market.sectionInstalled",
7008
+ icon: marketSectionIcon("installed"),
7009
+ rows: installed?.rows ?? NO_ROWS,
7010
+ keepHead: true,
7011
+ headAction: checks.modules,
7012
+ onDefault: setDefault,
7013
+ boardBusy,
7014
+ pending,
7015
+ failureOf,
7016
+ act,
7017
+ confirmActions: CONFIRM_UNINSTALL,
7018
+ onConfirming,
7019
+ onOpenDetail,
7020
+ onRecheck,
7021
+ rechecking
7022
+ }), pendingSection === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7023
+ t,
7024
+ titleKey: pendingSection.titleKey,
7025
+ icon: marketSectionIcon("pending"),
7026
+ rows: pendingSection.rows,
7027
+ onDefault: setDefault,
7028
+ boardBusy,
7029
+ pending,
7030
+ failureOf,
7031
+ act,
7032
+ confirmActions: CONFIRM_UNINSTALL,
7033
+ onConfirming,
7034
+ onOpenDetail,
7035
+ onRecheck,
7036
+ rechecking
7037
+ }), runtimePluginMarket === false ? null : /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7038
+ t,
7039
+ titleKey: "panels.market.sectionPlugins",
7040
+ icon: marketSectionIcon("plugins"),
7041
+ rows: pluginList,
7042
+ headAction: checks.plugins,
7043
+ onDefault: setDefault,
7044
+ boardBusy,
7045
+ pending,
7046
+ failureOf,
7047
+ act,
7048
+ confirmActions: CONFIRM_UNINSTALL,
7049
+ onConfirming,
7050
+ onOpenDetail,
7051
+ onRecheck,
7052
+ rechecking
7053
+ }), foot ? /* @__PURE__ */ (0, react.createElement)(PanelFoot, {
7054
+ size: "md",
7055
+ text: t("panels.market.foot")
7056
+ }) : null, /* @__PURE__ */ (0, react.createElement)(SharedSection, {
7057
+ t,
7058
+ rows: shared,
7059
+ pending,
7060
+ failureOf,
7061
+ act,
7062
+ onRecheck,
7063
+ rechecking
7064
+ }));
7065
+ }
7066
+ //#endregion
7067
+ //#region src/app/layouts/market/discover-states.tsx
7068
+ function DiscoverSkeleton({ label }) {
7069
+ return /* @__PURE__ */ (0, react.createElement)("ul", {
7070
+ className: MarketPage_module_default.discoverList,
7071
+ role: "status",
7072
+ "aria-label": label,
7073
+ "aria-busy": "true"
7074
+ }, [
7075
+ 0,
7076
+ 1,
7077
+ 2,
7078
+ 3
7079
+ ].map((index) => /* @__PURE__ */ (0, react.createElement)("li", {
7080
+ key: String(index),
7081
+ className: MarketPage_module_default.discoverCard,
7082
+ "aria-hidden": "true"
7083
+ }, /* @__PURE__ */ (0, react.createElement)("span", { className: `${MarketPage_module_default.discoverArtwork} ${MarketPage_module_default.discoverSkeletonFill}` }), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverMain }, /* @__PURE__ */ (0, react.createElement)("span", { className: `${MarketPage_module_default.discoverSkeletonBar} ${MarketPage_module_default.discoverSkeletonTitle} ${MarketPage_module_default.discoverSkeletonFill}` }), /* @__PURE__ */ (0, react.createElement)("span", { className: `${MarketPage_module_default.discoverSkeletonBar} ${MarketPage_module_default.discoverSkeletonDesc} ${MarketPage_module_default.discoverSkeletonFill}` })))));
7084
+ }
7085
+ function DiscoverEmptyText({ text }) {
7086
+ return /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverMuted }, text);
7087
+ }
7088
+ function DiscoverLoading({ label }) {
7089
+ return /* @__PURE__ */ (0, react.createElement)("p", {
7090
+ className: MarketPage_module_default.discoverLoading,
7091
+ role: "status",
7092
+ "aria-live": "polite"
7093
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "ongoing" }), label);
7094
+ }
7095
+ function DiscoverFailure({ t, text, onRetry }) {
7096
+ return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverFailure }, /* @__PURE__ */ (0, react.createElement)("p", {
7097
+ className: MarketPage_module_default.discoverError,
7098
+ role: "alert"
7099
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "error" }), text), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
7100
+ type: "button",
7101
+ size: "sm",
7102
+ variant: "outline",
7103
+ onClick: onRetry
7104
+ }, t("panels.discover.retry")));
7105
+ }
7106
+ function DiscoverUninitialized({ t, path, empty, onInit }) {
7107
+ return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverEmpty }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.PluginArtworkDefault, { size: 48 }), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverEmptyTitle }, t("panels.discover.initTitle")), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverMuted }, empty ? t("panels.discover.emptyRepo") : t("panels.discover.missingIndex", { path })), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
7108
+ type: "button",
7109
+ size: "sm",
7110
+ variant: "primary",
7111
+ onClick: onInit
7112
+ }, t("panels.discover.initCta")));
7113
+ }
7114
+ function DiscoverNoSource({ t, onAdd }) {
7115
+ return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverEmpty }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.PluginArtworkDefault, { size: 48 }), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverEmptyTitle }, t("panels.discover.noSource")), /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverMuted }, t("panels.discover.noSourceHint")), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
7116
+ type: "button",
7117
+ size: "sm",
7118
+ variant: "primary",
7119
+ icon: /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutlineRegular, { size: 13 }),
7120
+ onClick: onAdd
7121
+ }, t("panels.discover.addFirstSource")));
7122
+ }
7123
+ function DiscoverReadFailure({ t, text, auth, onRetry }) {
7124
+ return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(DiscoverFailure, {
7125
+ t,
7126
+ text,
7127
+ onRetry
7128
+ }), auth ? /* @__PURE__ */ (0, react.createElement)("p", {
7129
+ className: MarketPage_module_default.discoverNotice,
7130
+ role: "note"
7131
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
7132
+ size: 14,
7133
+ "aria-hidden": "true"
7134
+ }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.discover.sourceAuth"))) : null);
7135
+ }
7136
+ //#endregion
7137
+ //#region src/app/layouts/rightbar/MarketStates.tsx
7138
+ function MarketChecking({ t }) {
7139
+ return /* @__PURE__ */ (0, react.createElement)(DiscoverSkeleton, { label: t("panels.market.checking") });
7140
+ }
7141
+ function MarketEmpty({ t }) {
7142
+ return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEmpty }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEmptyTitle }, t("panels.market.empty")));
7143
+ }
7144
+ //#endregion
7145
+ //#region src/app/layouts/rightbar/market-detail-facts.ts
7146
+ var DIRECT_SOURCE = /^(?:git\+|git:|github:|gitlab:|bitbucket:|https?:|ssh:|file:|link:|workspace:|\.{0,2}\/|\/)/i;
7147
+ function isDirectSourceSpec(spec) {
7148
+ return DIRECT_SOURCE.test(spec.trim());
7149
+ }
7150
+ function localPathOf(row) {
7151
+ const spec = row.spec?.trim() ?? "";
7152
+ const prefixed = /^(?:link:|file:)(.+)$/i.exec(spec)?.[1]?.trim() ?? "";
7153
+ if (prefixed !== "") return prefixed;
7154
+ if (/^(?:\.{0,2}\/|\/)/.test(spec)) return spec;
7155
+ if (row.plugin === true && row.local === true) {
7156
+ const path = row.pkg?.trim() ?? "";
7157
+ if (path !== "") return path;
7158
+ }
7159
+ }
7160
+ function installSourceOf(row, t) {
7161
+ if (row.local === true) {
7162
+ const path = localPathOf(row);
7163
+ if (path !== void 0) return {
7164
+ text: path,
7165
+ code: false
7166
+ };
7167
+ return {
7168
+ text: t("panels.market.detailLocalDirectory"),
7169
+ code: false
7170
+ };
7171
+ }
7172
+ const spec = row.spec?.trim() ?? "";
7173
+ if (spec !== "" && isDirectSourceSpec(spec)) return {
7174
+ text: spec,
7175
+ code: true
7176
+ };
7177
+ const registry = row.registry?.trim() ?? "";
7178
+ if (registry !== "") return {
7179
+ text: registry,
7180
+ code: true
7181
+ };
7182
+ return {
7183
+ text: t("panels.market.detailUnknown"),
7184
+ code: false
7185
+ };
7186
+ }
7187
+ function marketDetailFacts(row, t) {
7188
+ const facts = [];
7189
+ const add = (labelKey, value, code = false) => {
7190
+ if (value === void 0 || value.trim() === "") return;
7191
+ facts.push({
7192
+ labelKey,
7193
+ value,
7194
+ ...code ? { code: true } : {}
7195
+ });
7196
+ };
7197
+ const source = installSourceOf(row, t);
7198
+ add("panels.market.detailSource", source.text, source.code);
7199
+ if (row.plugin === true) {
7200
+ add("panels.market.detailPluginName", row.label !== void 0 && row.label !== row.pkg ? row.label : void 0);
7201
+ add("panels.market.detailRegistry", row.registry !== void 0 && source.text !== row.registry ? row.registry : void 0, true);
7202
+ add("panels.market.detailInstalledAt", row.installedAt === void 0 ? void 0 : row.installedAt.slice(0, 10));
7203
+ } else {
7204
+ add("panels.market.detailRegistry", row.registry !== void 0 && source.text !== row.registry ? row.registry : void 0, true);
7205
+ add("panels.market.detailSpec", row.spec !== void 0 && source.text !== row.spec ? row.spec : void 0, true);
7206
+ add("panels.market.detailUnit", row.workbench === true ? void 0 : row.id, true);
7207
+ }
7208
+ add("panels.market.detailVersion", row.version?.installed);
7209
+ add("panels.market.detailLatest", row.version?.latest !== void 0 && row.version.latest !== row.version.installed ? row.version.latest : void 0);
7210
+ if (row.market !== void 0) {
7211
+ add("panels.market.detailMarket", row.market.sourceLabel);
7212
+ if (row.market.source.type === "git") {
7213
+ add("panels.market.detailRepository", row.market.source.url);
7214
+ add("panels.market.detailCommit", row.market.source.commit, true);
7215
+ add("panels.market.detailDirectory", row.market.source.path, true);
7216
+ }
7217
+ if (row.pkg !== void 0) {
7218
+ add("panels.market.detailUpdateSource", marketInstallTarget(row.pkg, row.market.version, row.market.source).spec, true);
7219
+ add("panels.market.detailUpdateVersion", row.version?.latest === row.market.version ? void 0 : row.market.version);
7220
+ }
7221
+ }
7222
+ return facts;
7223
+ }
7224
+ //#endregion
7225
+ //#region src/app/layouts/rightbar/market-detail.tsx
7226
+ var STATE_TONE = {
7227
+ checking: "neutral",
7228
+ installed: "success",
7229
+ inactive: "warning",
7230
+ unusable: "danger",
7231
+ broken: "danger",
7232
+ outdated: "warning",
7233
+ "pending-restart": "warning",
7234
+ "pending-followup": "warning",
7235
+ missing: "neutral",
7236
+ unchecked: "neutral",
7237
+ unknown: "neutral"
7238
+ };
7239
+ function MarketDetail({ t, row, pending, failure, notice, boardBusy, onBack, onRequest, onDefault, onRecheck, rechecking }) {
7240
+ const title = marketRowTitle(row, t);
7241
+ const facts = marketDetailFacts(row, t);
7242
+ const version = row.version?.installed;
7243
+ const noteText = row.note === void 0 ? null : t(row.note.key, row.note.params);
7244
+ return /* @__PURE__ */ (0, react.createElement)("div", {
7245
+ className: MarketPage_module_default.discoverDetail,
7246
+ "data-market-detail": row.id
7247
+ }, /* @__PURE__ */ (0, react.createElement)("button", {
7248
+ type: "button",
7249
+ className: MarketPage_module_default.discoverCrumb,
7250
+ onClick: onBack
7251
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, {
7252
+ className: MarketPage_module_default.discoverCrumbIcon,
7253
+ "aria-hidden": "true"
7254
+ }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.market.detailBack"))), /* @__PURE__ */ (0, react.createElement)("div", { className: `${MarketPage_module_default.discoverDetailHead} ${MarketPage_module_default.marketDetailHead}` }, /* @__PURE__ */ (0, react.createElement)("span", {
7255
+ className: MarketPage_module_default.discoverArtwork,
7256
+ "aria-hidden": "true"
7257
+ }, packageIcon(marketRowKind(row))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverMain }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverTitleRow }, /* @__PURE__ */ (0, react.createElement)("h3", { className: MarketPage_module_default.discoverDetailTitle }, title), version === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tag, { tone: "neutral" }, version), row.state === "installed" ? null : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tag, { tone: STATE_TONE[row.state] }, t(MARKET_STATE_KEY[row.state])), row.local === true ? /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tag, { tone: "neutral" }, t("panels.market.localMark")) : null), row.pkg === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.marketDetailName }, /* @__PURE__ */ (0, react.createElement)("code", null, row.pkg))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketDetailEnd }, /* @__PURE__ */ (0, react.createElement)(MarketRowControls, {
7258
+ t,
7259
+ row,
7260
+ pending,
7261
+ boardBusy,
7262
+ onRequest,
7263
+ onDefault
7264
+ }))), notice === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverDetailText }, notice), /* @__PURE__ */ (0, react.createElement)(MarketRowFailure, {
7265
+ t,
7266
+ failure,
7267
+ onRecheck,
7268
+ rechecking
7269
+ }), row.hint === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverMuted }, t(row.hint)), noteText === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: row.note?.tone === "alert" ? MarketPage_module_default.discoverError : MarketPage_module_default.discoverMuted }, noteText), facts.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("section", { className: MarketPage_module_default.discoverSection }, /* @__PURE__ */ (0, react.createElement)("h4", { className: MarketPage_module_default.discoverSectionTitle }, t("panels.market.detailSourceTitle")), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverFacts }, facts.map((fact) => /* @__PURE__ */ (0, react.createElement)("div", {
7270
+ key: `${fact.labelKey}:${fact.value}`,
7271
+ className: MarketPage_module_default.discoverFactRow
7272
+ }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactKind }, t(fact.labelKey)), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactValue }, fact.code === true ? /* @__PURE__ */ (0, react.createElement)("code", { className: MarketPage_module_default.discoverCode }, fact.value) : fact.value))))));
7273
+ }
7274
+ //#endregion
7275
+ //#region src/app/layouts/rightbar/market-uninstall.tsx
7276
+ function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
7277
+ const [acknowledged, setAcknowledged] = (0, react.useState)(false);
7278
+ return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, {
7279
+ open: name !== null,
7280
+ title: t("panels.market.confirmUninstallTitle", { name: name ?? "" }),
7281
+ description: t("panels.market.confirmUninstallDetail"),
7282
+ acknowledgeLabel: t("panels.market.confirmUninstallAck"),
7283
+ cancelLabel: t("panels.market.confirmNo"),
7284
+ closeLabel: t("panels.market.confirmNo"),
7285
+ confirmLabel: t("panels.market.confirmYes"),
7286
+ acknowledged,
7287
+ onAcknowledgedChange: setAcknowledged,
7288
+ onCancel,
7289
+ onConfirm
7290
+ });
7291
+ }
7292
+ function UninstallConfirm({ t, confirming, row, onClose, act, rowById }) {
7293
+ return /* @__PURE__ */ (0, react.createElement)(ConfirmUninstall, {
7294
+ key: confirming ?? "",
6925
7295
  t,
7296
+ name: row === void 0 ? null : marketRowTitle(row, t),
7297
+ onCancel: onClose,
7298
+ onConfirm: () => {
7299
+ const id = confirming;
7300
+ onClose();
7301
+ if (id === null) return;
7302
+ const target = rowById.get(id);
7303
+ act(id, target?.plugin === true ? "uninstall-plugin" : target?.removeViaBundle === true ? "remove-bundle" : "uninstall");
7304
+ }
7305
+ });
7306
+ }
7307
+ //#endregion
7308
+ //#region src/app/layouts/rightbar/market-detail-page.tsx
7309
+ var CONFIRM_ACTIONS = [
7310
+ "uninstall",
7311
+ "remove-bundle",
7312
+ "uninstall-plugin"
7313
+ ];
7314
+ function MarketDetailPage({ t, row, pending, failure, notice, boardBusy, confirming, confirmingRow, rowById, onBack, onConfirming, onDefault, onAct, onRecheck, rechecking }) {
7315
+ return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(MarketDetail, {
7316
+ t,
7317
+ row,
7318
+ pending,
6926
7319
  failure,
7320
+ notice,
7321
+ boardBusy,
7322
+ onBack,
7323
+ onRequest: (action) => CONFIRM_ACTIONS.includes(action) ? onConfirming(row.id) : void onAct(row.id, action),
7324
+ onDefault: (next) => void onDefault(row.id, next),
6927
7325
  onRecheck,
6928
7326
  rechecking
6929
- }), /* @__PURE__ */ (0, react.createElement)(MarketLineDialogs, {
7327
+ }), /* @__PURE__ */ (0, react.createElement)(UninstallConfirm, {
6930
7328
  t,
6931
- migrationOpen,
6932
- dismissOpen,
6933
- onMigrationCancel: () => setMigrationOpen(false),
6934
- onMigrationConfirm: () => {
6935
- setMigrationOpen(false);
6936
- onAct("migrate-workbench");
6937
- },
6938
- onDismissCancel: () => setDismissOpen(false),
6939
- onDismissConfirm: () => {
6940
- setDismissOpen(false);
6941
- onAct("dismiss-followup");
6942
- }
7329
+ confirming,
7330
+ row: confirmingRow,
7331
+ onClose: () => onConfirming(null),
7332
+ act: onAct,
7333
+ rowById
6943
7334
  }));
6944
7335
  }
6945
- function MarketSection({ t, titleKey, icon, rows, pending, failureOf, act, confirmActions, onConfirming, onDefault, boardBusy, headAction, keepHead, onRecheck, rechecking }) {
6946
- if (rows.length === 0 && keepHead !== true) return null;
6947
- return /* @__PURE__ */ (0, react.createElement)("section", { className: MarketPage_module_default.marketSection }, titleKey === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ (0, react.createElement)("span", {
6948
- className: MarketPage_module_default.marketSectionIcon,
6949
- "aria-hidden": "true"
6950
- }, icon), /* @__PURE__ */ (0, react.createElement)("h2", { className: MarketPage_module_default.marketSectionTitle }, t(titleKey)), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSectionCount }, rows.length), headAction === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketSectionAction }, headAction)), rows.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("ul", { className: MarketPage_module_default.marketList }, rows.map((row) => /* @__PURE__ */ (0, react.createElement)(MarketLine, {
6951
- key: row.id,
7336
+ //#endregion
7337
+ //#region src/app/layouts/rightbar/market-scene-view.tsx
7338
+ function MarketSceneView({ t, runtimePluginMarket, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking, onOpenDetail, detailRow, confirming, confirmingRow, rowById, settled, nothing, settlingSize, onBack }) {
7339
+ if (detailRow !== void 0) return /* @__PURE__ */ (0, react.createElement)(MarketDetailPage, {
6952
7340
  t,
6953
- row,
7341
+ row: detailRow,
6954
7342
  pending,
6955
- failure: failureOf(row.id),
6956
- onAct: (action) => confirmActions.includes(action) ? onConfirming(row.id) : void act(row.id, action),
6957
- onDefault: (next) => onDefault?.(row.id, next),
7343
+ failure: failed?.id === detailRow.id ? failed : null,
7344
+ notice,
6958
7345
  boardBusy,
7346
+ confirming,
7347
+ confirmingRow,
7348
+ rowById,
7349
+ onBack,
7350
+ onConfirming,
7351
+ onDefault: setDefault,
7352
+ onAct: act,
6959
7353
  onRecheck,
6960
7354
  rechecking
6961
- }))));
7355
+ });
7356
+ if (!settled || settlingSize > 0 && shown.length === 0 && installedList.length === 0) return /* @__PURE__ */ (0, react.createElement)(MarketChecking, { t });
7357
+ if (nothing) return /* @__PURE__ */ (0, react.createElement)(MarketEmpty, { t });
7358
+ return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(MarketBody, {
7359
+ t,
7360
+ runtimePluginMarket,
7361
+ self,
7362
+ shown,
7363
+ pluginList,
7364
+ installedList,
7365
+ shared,
7366
+ pending,
7367
+ failed,
7368
+ notice,
7369
+ act,
7370
+ onConfirming,
7371
+ setDefault,
7372
+ boardBusy,
7373
+ checks,
7374
+ onRecheck,
7375
+ rechecking,
7376
+ onOpenDetail
7377
+ }), /* @__PURE__ */ (0, react.createElement)(UninstallConfirm, {
7378
+ t,
7379
+ confirming,
7380
+ row: confirmingRow,
7381
+ onClose: () => onConfirming(null),
7382
+ act,
7383
+ rowById
7384
+ }));
6962
7385
  }
6963
7386
  //#endregion
6964
7387
  //#region src/app/layouts/market/add-module-text.ts
@@ -7512,141 +7935,13 @@ window.__ModuleLoader__.load({
7512
7935
  });
7513
7936
  }
7514
7937
  //#endregion
7515
- //#region src/app/layouts/rightbar/market-uninstall.tsx
7516
- function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
7517
- const [acknowledged, setAcknowledged] = (0, react.useState)(false);
7518
- return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, {
7519
- open: name !== null,
7520
- title: t("panels.market.confirmUninstallTitle", { name: name ?? "" }),
7521
- description: t("panels.market.confirmUninstallDetail"),
7522
- acknowledgeLabel: t("panels.market.confirmUninstallAck"),
7523
- cancelLabel: t("panels.market.confirmNo"),
7524
- closeLabel: t("panels.market.confirmNo"),
7525
- confirmLabel: t("panels.market.confirmYes"),
7526
- acknowledged,
7527
- onAcknowledgedChange: setAcknowledged,
7528
- onCancel,
7529
- onConfirm
7530
- });
7531
- }
7532
- function UninstallConfirm({ t, confirming, row, onClose, act, rowById }) {
7533
- return /* @__PURE__ */ (0, react.createElement)(ConfirmUninstall, {
7534
- key: confirming ?? "",
7535
- t,
7536
- name: row === void 0 ? null : marketRowTitle(row, t),
7537
- onCancel: onClose,
7538
- onConfirm: () => {
7539
- const id = confirming;
7540
- onClose();
7541
- if (id === null) return;
7542
- const target = rowById.get(id);
7543
- act(id, target?.plugin === true ? "uninstall-plugin" : target?.pkg === void 0 ? "uninstall" : "remove-bundle");
7544
- }
7545
- });
7546
- }
7547
- var PanelFoot_module_default = {
7548
- foot: "_foot_1ud1j_1",
7549
- footText: "_footText_1ud1j_13",
7550
- footTextMd: "_footTextMd_1ud1j_18"
7551
- };
7552
- //#endregion
7553
- //#region src/shared/components/PanelFoot.tsx
7554
- function PanelFoot({ text, size = "sm", children }) {
7555
- return /* @__PURE__ */ (0, react.createElement)("footer", { className: PanelFoot_module_default.foot }, text === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: size === "md" ? PanelFoot_module_default.footTextMd : PanelFoot_module_default.footText }, text), children ?? null);
7556
- }
7557
- //#endregion
7558
7938
  //#region src/app/layouts/rightbar/MarketView.tsx
7559
- var CONFIRM_UNINSTALL = [
7560
- "uninstall",
7561
- "remove-bundle",
7562
- "uninstall-plugin"
7563
- ];
7564
7939
  var NO_CHECK = {
7565
7940
  checking: false,
7566
7941
  failed: false,
7567
7942
  checkedAt: null
7568
7943
  };
7569
- var NO_ROWS = [];
7570
7944
  var NO_UNITS$1 = /* @__PURE__ */ new Set();
7571
- function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking, runtimePluginMarket }) {
7572
- const failureOf = (id) => failed?.id === id ? failed : null;
7573
- const foot = marketFootVisible(shown, installedList);
7574
- const sections = marketSections(marketOrder([...shown, ...installedList], (row) => marketRowTitle(row, t)));
7575
- const installed = sections.find((section) => section.id === "installed");
7576
- const pendingSection = sections.find((section) => section.id === "not-installed");
7577
- return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, notice === null ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketNote }, notice), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7578
- t,
7579
- rows: self === void 0 ? [] : [self],
7580
- onDefault: setDefault,
7581
- boardBusy,
7582
- pending,
7583
- failureOf,
7584
- act,
7585
- confirmActions: CONFIRM_UNINSTALL,
7586
- onConfirming,
7587
- onRecheck,
7588
- rechecking
7589
- }), self === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", {
7590
- className: MarketPage_module_default.marketSelfDivider,
7591
- "aria-hidden": "true"
7592
- }), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7593
- t,
7594
- titleKey: "panels.market.sectionInstalled",
7595
- icon: marketSectionIcon("installed"),
7596
- rows: installed?.rows ?? NO_ROWS,
7597
- keepHead: true,
7598
- headAction: checks.modules,
7599
- onDefault: setDefault,
7600
- boardBusy,
7601
- pending,
7602
- failureOf,
7603
- act,
7604
- confirmActions: CONFIRM_UNINSTALL,
7605
- onConfirming,
7606
- onRecheck,
7607
- rechecking
7608
- }), pendingSection === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7609
- t,
7610
- titleKey: pendingSection.titleKey,
7611
- icon: marketSectionIcon("pending"),
7612
- rows: pendingSection.rows,
7613
- onDefault: setDefault,
7614
- boardBusy,
7615
- pending,
7616
- failureOf,
7617
- act,
7618
- confirmActions: CONFIRM_UNINSTALL,
7619
- onConfirming,
7620
- onRecheck,
7621
- rechecking
7622
- }), runtimePluginMarket === false ? null : /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7623
- t,
7624
- titleKey: "panels.market.sectionPlugins",
7625
- icon: marketSectionIcon("plugins"),
7626
- rows: pluginList,
7627
- headAction: checks.plugins,
7628
- onDefault: setDefault,
7629
- boardBusy,
7630
- pending,
7631
- failureOf,
7632
- act,
7633
- confirmActions: CONFIRM_UNINSTALL,
7634
- onConfirming,
7635
- onRecheck,
7636
- rechecking
7637
- }), foot ? /* @__PURE__ */ (0, react.createElement)(PanelFoot, {
7638
- size: "md",
7639
- text: t("panels.market.foot")
7640
- }) : null, /* @__PURE__ */ (0, react.createElement)(SharedSection, {
7641
- t,
7642
- rows: shared,
7643
- pending,
7644
- failureOf,
7645
- act,
7646
- onRecheck,
7647
- rechecking
7648
- }));
7649
- }
7650
7945
  function useMarketScene(input) {
7651
7946
  const { t, titleOf, manifests, installable, capabilities, updates, installed, settling, installing, mock, defaults, changed, pending, failed } = input;
7652
7947
  const names = marketNamesOf(t, installed ?? [], titleOf, mock !== void 0);
@@ -7705,6 +8000,7 @@ window.__ModuleLoader__.load({
7705
8000
  mock,
7706
8001
  onPending
7707
8002
  });
8003
+ const [detailId, setDetailId] = (0, react.useState)(null);
7708
8004
  const { names, effective, updateMap, rows, shared, installedList, byDefault, steady, pinned, removing, busyId } = useMarketScene({
7709
8005
  t,
7710
8006
  titleOf,
@@ -7744,13 +8040,9 @@ window.__ModuleLoader__.load({
7744
8040
  const shown = withPinnedRow(pendingRow === void 0 ? rows : [...rows, pendingRow], pinned);
7745
8041
  const pluginSource = mock?.plugins ?? plugins ?? null;
7746
8042
  const pluginList = installedPluginRows(pluginSource ?? [], byDefault, changed);
7747
- const rowById = new Map([
7748
- ...shown,
7749
- ...self === void 0 ? [] : [self],
7750
- ...installedList,
7751
- ...pluginList
7752
- ].map((row) => [row.id, row]));
8043
+ const rowById = marketRowMap(shown, self, installedList, pluginList);
7753
8044
  const confirmingRow = confirming === null ? void 0 : rowById.get(confirming);
8045
+ const detailRow = detailId === null ? void 0 : rowById.get(detailId);
7754
8046
  const seats = {
7755
8047
  setPending,
7756
8048
  setHeld: steady.hold,
@@ -7797,9 +8089,7 @@ window.__ModuleLoader__.load({
7797
8089
  disabled: pending !== null,
7798
8090
  onCheck: mock === void 0 ? onCheck : void 0
7799
8091
  });
7800
- if (!settled || (settling?.size ?? 0) > 0 && shown.length === 0 && installedList.length === 0) return /* @__PURE__ */ (0, react.createElement)(MarketChecking, { t });
7801
- if (nothing) return /* @__PURE__ */ (0, react.createElement)(MarketEmpty, { t });
7802
- return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(MarketBody, {
8092
+ return /* @__PURE__ */ (0, react.createElement)(MarketSceneView, {
7803
8093
  t,
7804
8094
  runtimePluginMarket,
7805
8095
  self,
@@ -7816,15 +8106,17 @@ window.__ModuleLoader__.load({
7816
8106
  boardBusy,
7817
8107
  checks,
7818
8108
  onRecheck: recheck,
7819
- rechecking: checkingShown
7820
- }), /* @__PURE__ */ (0, react.createElement)(UninstallConfirm, {
7821
- t,
8109
+ rechecking: checkingShown,
8110
+ onOpenDetail: setDetailId,
8111
+ detailRow,
7822
8112
  confirming,
7823
- row: confirmingRow,
7824
- onClose: () => setConfirming(null),
7825
- act,
7826
- rowById
7827
- }));
8113
+ confirmingRow,
8114
+ rowById,
8115
+ settled,
8116
+ nothing,
8117
+ settlingSize: settling?.size ?? 0,
8118
+ onBack: () => setDetailId(null)
8119
+ });
7828
8120
  }
7829
8121
  //#endregion
7830
8122
  //#region src/shared/hooks/runtime-queries.ts
@@ -10098,11 +10390,17 @@ window.__ModuleLoader__.load({
10098
10390
  ...registry === void 0 || registry === "" ? {} : { registry }
10099
10391
  });
10100
10392
  }
10101
- function readModuleVersions(force = false) {
10102
- return apiGet(MODULE_VERSIONS_ROUTE, force ? { force: "1" } : void 0);
10393
+ function readModuleVersions(force = false, check = true) {
10394
+ return apiGet(MODULE_VERSIONS_ROUTE, {
10395
+ ...force ? { force: "1" } : {},
10396
+ ...check ? {} : { check: "0" }
10397
+ });
10103
10398
  }
10104
- function readInstalledPlugins(force = false) {
10105
- return apiGet(INSTALLED_PLUGINS_ROUTE, force ? { force: "1" } : void 0);
10399
+ function readInstalledPlugins(force = false, check = true) {
10400
+ return apiGet(INSTALLED_PLUGINS_ROUTE, {
10401
+ ...force ? { force: "1" } : {},
10402
+ ...check ? {} : { check: "0" }
10403
+ });
10106
10404
  }
10107
10405
  //#endregion
10108
10406
  //#region src/app/layouts/market/use-module-versions.ts
@@ -10131,6 +10429,10 @@ window.__ModuleLoader__.load({
10131
10429
  modules: -1,
10132
10430
  plugins: -1
10133
10431
  };
10432
+ var newestDataSeq = {
10433
+ modules: -1,
10434
+ plugins: -1
10435
+ };
10134
10436
  var epoch = 0;
10135
10437
  var allSeq = 0;
10136
10438
  function bumpModuleVersionsEpoch() {
@@ -10157,9 +10459,39 @@ window.__ModuleLoader__.load({
10157
10459
  };
10158
10460
  });
10159
10461
  }
10160
- function moduleVersionsCheckedAt(now) {
10161
- const at = [now.modulesCheck.checkedAt, now.pluginsCheck.checkedAt].filter((one) => one !== null);
10162
- return at.length === 0 ? null : Math.max(...at);
10462
+ function withPreviousLatest(modules, previous) {
10463
+ if (previous.length === 0) return modules;
10464
+ const byPkg = new Map(previous.map((module) => [module.pkg, module]));
10465
+ return modules.map((module) => {
10466
+ const old = byPkg.get(module.pkg);
10467
+ if (old === void 0) return module;
10468
+ return {
10469
+ ...module,
10470
+ ...module.latest === void 0 && old.latest !== void 0 ? { latest: old.latest } : {},
10471
+ ...module.latestBlocked === void 0 && old.latestBlocked !== void 0 ? { latestBlocked: old.latestBlocked } : {},
10472
+ ...module.latestUnavailable === void 0 && old.latestUnavailable !== void 0 ? { latestUnavailable: old.latestUnavailable } : {}
10473
+ };
10474
+ });
10475
+ }
10476
+ function withPreviousPluginLatest(plugins, previous) {
10477
+ if (previous.length === 0) return plugins;
10478
+ const byPkg = new Map(previous.map((plugin) => [plugin.pkg, plugin]));
10479
+ return plugins.map((plugin) => {
10480
+ const old = byPkg.get(plugin.pkg);
10481
+ if (old === void 0 || plugin.latest !== void 0 || old.latest === void 0) return plugin;
10482
+ return {
10483
+ ...plugin,
10484
+ latest: old.latest
10485
+ };
10486
+ });
10487
+ }
10488
+ function withPreviousWorkbenchLatest(next, previous) {
10489
+ if (next === null || previous === null) return next;
10490
+ if (next.latest !== void 0 || previous.latest === void 0 || next.pkg !== previous.pkg) return next;
10491
+ return {
10492
+ ...next,
10493
+ latest: previous.latest
10494
+ };
10163
10495
  }
10164
10496
  function moduleVersionsChecking(value) {
10165
10497
  return value.allChecking || value.modulesCheck.checking || value.pluginsCheck.checking;
@@ -10190,72 +10522,104 @@ window.__ModuleLoader__.load({
10190
10522
  checkedAt: ok ? at : seat.checkedAt
10191
10523
  };
10192
10524
  }
10193
- function readModulesOnce(force) {
10194
- return Promise.all([readModuleVersions(force), readMarketInstalled()]).catch(() => null);
10525
+ function readModulesOnce(force, check) {
10526
+ return Promise.all([readModuleVersions(force, check), readMarketInstalled()]).catch(() => null);
10195
10527
  }
10196
- function readPluginsOnce(force) {
10197
- return readInstalledPlugins(force).catch(() => null);
10528
+ function readPluginsOnce(force, check) {
10529
+ return readInstalledPlugins(force, check).catch(() => null);
10198
10530
  }
10199
- function runModuleVersionsRead(force = false, fresh = false, scope = "all") {
10531
+ function readKey(run) {
10532
+ return `${run.kind}:${run.scope}:${run.force ? "force" : "cached"}`;
10533
+ }
10534
+ function superseded(run, part, ticket) {
10535
+ if (run.kind === "data") return ticket < newestDataSeq[part];
10536
+ return !run.force && ticket < newestForceSeq[part];
10537
+ }
10538
+ function runRead(run) {
10200
10539
  const at = epoch;
10201
- const running = inFlight.get(scope);
10202
- if (!fresh && running !== void 0 && running.force === force && running.epoch === at) return running.promise;
10203
- const allTicket = scope === "all" ? allSeq += 1 : allSeq;
10540
+ const key = readKey(run);
10541
+ const running = inFlight.get(key);
10542
+ if (!run.fresh && running !== void 0 && running.epoch === at) return running.promise;
10543
+ const check = run.kind === "check";
10544
+ const allTicket = run.scope === "all" ? allSeq += 1 : allSeq;
10204
10545
  const tickets = /* @__PURE__ */ new Map();
10205
- for (const part of partsOf(scope)) {
10546
+ for (const part of partsOf(run.scope)) {
10206
10547
  const ticket = seq$1[part] += 1;
10207
10548
  tickets.set(part, ticket);
10208
- if (force) newestForceSeq[part] = ticket;
10549
+ if (run.force) newestForceSeq[part] = ticket;
10550
+ if (!check) newestDataSeq[part] = ticket;
10209
10551
  }
10210
- publish$1(checking(scope));
10211
- const modulesRead = tickets.has("modules") ? readModulesOnce(force) : null;
10212
- const pluginsRead = tickets.has("plugins") ? readPluginsOnce(force) : null;
10213
- const promise = Promise.all([modulesRead, pluginsRead]).then(([modules, plugins]) => {
10214
- if (at !== epoch) return;
10215
- const now = Date.now();
10216
- const modulesTicket = tickets.get("modules");
10217
- const pluginsTicket = tickets.get("plugins");
10218
- const modulesLanded = modulesTicket !== void 0 && (force || modulesTicket >= newestForceSeq.modules);
10219
- const pluginsLanded = pluginsTicket !== void 0 && (force || pluginsTicket >= newestForceSeq.plugins);
10220
- const modulesOk = modulesLanded && modules !== null && modules[0].ok === true;
10221
- const pluginsOk = pluginsLanded && plugins !== null && plugins.ok === true;
10552
+ if (check) publish$1(checking(run.scope));
10553
+ const modulesTicket = tickets.get("modules");
10554
+ const pluginsTicket = tickets.get("plugins");
10555
+ const modulesRead = modulesTicket === void 0 ? null : readModulesOnce(run.force, check).then((response) => {
10556
+ if (at !== epoch || response === null || superseded(run, "modules", modulesTicket)) return;
10557
+ const [modules, market] = response;
10558
+ const payload = modules.ok === true ? modules : null;
10559
+ const listed = payload === null ? null : withMarketUpdates(payload.modules, market.ok === true ? market.modules : []);
10560
+ const shown = listed === null ? null : check ? listed : withPreviousLatest(listed, state.modules ?? []);
10222
10561
  publish$1({
10223
10562
  ...state,
10224
- modules: modulesOk ? withMarketUpdates(modules[0].modules, modules[1].ok === true ? modules[1].modules : []) : state.modules,
10225
- workbench: modulesOk ? modules[0].workbench ?? null : state.workbench,
10226
- selfUpdate: modulesOk ? modules[0].selfUpdate ?? null : state.selfUpdate,
10227
- plugins: pluginsOk ? plugins.plugins : state.plugins,
10563
+ modules: shown ?? state.modules,
10564
+ workbench: payload === null ? state.workbench : check ? payload.workbench ?? null : withPreviousWorkbenchLatest(payload.workbench ?? null, state.workbench),
10565
+ selfUpdate: payload === null ? state.selfUpdate : payload.selfUpdate ?? null,
10228
10566
  read: true,
10229
- allChecking: scope === "all" && allTicket === allSeq ? false : state.allChecking,
10230
- modulesCheck: modulesLanded && modulesTicket !== void 0 ? landed(state.modulesCheck, modulesTicket, seq$1.modules, modulesOk, now) : state.modulesCheck,
10231
- pluginsCheck: pluginsLanded && pluginsTicket !== void 0 ? landed(state.pluginsCheck, pluginsTicket, seq$1.plugins, pluginsOk, now) : state.pluginsCheck
10567
+ ...check ? { modulesCheck: landed(state.modulesCheck, modulesTicket, seq$1.modules, payload !== null, Date.now()) } : {}
10568
+ });
10569
+ });
10570
+ const pluginsRead = pluginsTicket === void 0 ? null : readPluginsOnce(run.force, check).then((response) => {
10571
+ if (at !== epoch || response === null || superseded(run, "plugins", pluginsTicket)) return;
10572
+ const ok = response.ok === true;
10573
+ publish$1({
10574
+ ...state,
10575
+ plugins: ok ? check ? response.plugins : withPreviousPluginLatest(response.plugins, state.plugins ?? []) : state.plugins,
10576
+ ...check ? { pluginsCheck: landed(state.pluginsCheck, pluginsTicket, seq$1.plugins, ok, Date.now()) } : {}
10577
+ });
10578
+ });
10579
+ const promise = Promise.all([modulesRead, pluginsRead]).then(() => {
10580
+ if (at !== epoch || !check || run.scope !== "all" || allTicket !== allSeq) return;
10581
+ if (!state.allChecking) return;
10582
+ publish$1({
10583
+ ...state,
10584
+ allChecking: false
10232
10585
  });
10233
10586
  }).finally(() => {
10234
- if (inFlight.get(scope)?.promise === promise) inFlight.delete(scope);
10587
+ if (inFlight.get(key)?.promise === promise) inFlight.delete(key);
10235
10588
  });
10236
- inFlight.set(scope, {
10237
- force,
10589
+ inFlight.set(key, {
10238
10590
  epoch: at,
10239
10591
  promise
10240
10592
  });
10241
10593
  return promise;
10242
10594
  }
10595
+ function runModuleVersionsRead(force = false, fresh = false, scope = "all") {
10596
+ return runRead({
10597
+ kind: "check",
10598
+ force,
10599
+ fresh,
10600
+ scope
10601
+ });
10602
+ }
10603
+ function runInstalledRead(options = {}) {
10604
+ return runRead({
10605
+ kind: "data",
10606
+ force: false,
10607
+ fresh: options.fresh === true,
10608
+ scope: "all"
10609
+ });
10610
+ }
10243
10611
  function useModuleVersions() {
10244
10612
  const value = (0, react.useSyncExternalStore)(subscribeModuleVersions, moduleVersionsValue);
10245
10613
  const factRev = useFactRevision(CAPABILITY_FACT);
10246
- const mountedRef = (0, react.useRef)(false);
10247
10614
  (0, react.useEffect)(() => {
10248
- const first = !mountedRef.current;
10249
- mountedRef.current = true;
10250
- if (first && !shouldProbeOnEnter({
10251
- checkedAt: moduleVersionsCheckedAt(state),
10252
- now: Date.now(),
10253
- staleMs: MARKET_STALE_MS
10254
- })) return;
10255
- runModuleVersionsRead(false);
10615
+ runInstalledRead();
10256
10616
  }, [factRev]);
10257
10617
  const reload = (0, react.useCallback)((options) => {
10258
- runModuleVersionsRead(options?.force === true, options?.fresh === true, options?.scope ?? "all");
10618
+ if (options?.check === true) {
10619
+ runModuleVersionsRead(options.force === true, options.fresh === true, options.scope ?? "all");
10620
+ return;
10621
+ }
10622
+ runInstalledRead({ fresh: options?.fresh === true });
10259
10623
  }, []);
10260
10624
  return {
10261
10625
  ...value,
@@ -10272,29 +10636,36 @@ window.__ModuleLoader__.load({
10272
10636
  bumpModuleVersionsEpoch();
10273
10637
  bumpCapabilityEpoch();
10274
10638
  forceProbe();
10275
- reloadVersions({
10276
- force: true,
10277
- fresh: true
10278
- });
10279
- return;
10280
- }
10281
- reloadCapability();
10639
+ } else reloadCapability();
10282
10640
  reloadVersions();
10283
10641
  }, [
10284
10642
  reloadCapability,
10285
10643
  reloadVersions,
10286
10644
  forceProbe
10287
10645
  ]);
10288
- const checkPart = (0, react.useCallback)((part) => reloadVersions({
10289
- force: true,
10290
- fresh: true,
10291
- scope: part
10292
- }), [reloadVersions]);
10646
+ const check = (0, react.useCallback)((options) => {
10647
+ reloadVersions({
10648
+ check: true,
10649
+ force: options?.force === true,
10650
+ fresh: true,
10651
+ ...options?.scope === void 0 ? {} : { scope: options.scope }
10652
+ });
10653
+ }, [reloadVersions]);
10654
+ const recheck = (0, react.useCallback)(() => {
10655
+ bumpCapabilityEpoch();
10656
+ forceProbe();
10657
+ check({ force: true });
10658
+ }, [check, forceProbe]);
10659
+ const checkPart = (0, react.useCallback)((part) => {
10660
+ check({
10661
+ force: true,
10662
+ scope: part
10663
+ });
10664
+ }, [check]);
10293
10665
  const enteredRef = (0, react.useRef)(false);
10294
10666
  (0, react.useEffect)(() => {
10295
10667
  if (enteredRef.current) return;
10296
10668
  enteredRef.current = true;
10297
- reloadVersions();
10298
10669
  if (!shouldProbeOnEnter({
10299
10670
  checkedAt,
10300
10671
  now: Date.now(),
@@ -10302,13 +10673,15 @@ window.__ModuleLoader__.load({
10302
10673
  })) return;
10303
10674
  markNextProbeSilent();
10304
10675
  forceProbe();
10676
+ check();
10305
10677
  }, [
10306
10678
  checkedAt,
10307
10679
  forceProbe,
10308
- reloadVersions
10680
+ check
10309
10681
  ]);
10310
10682
  return {
10311
10683
  reload,
10684
+ recheck,
10312
10685
  checkPart
10313
10686
  };
10314
10687
  }
@@ -11005,7 +11378,7 @@ window.__ModuleLoader__.load({
11005
11378
  const openAddModule = (0, react.useCallback)(() => setAdding(true), []);
11006
11379
  const updates = (0, react.useMemo)(() => marketUpdatesOf(modules), [modules]);
11007
11380
  const installed = modules === null ? void 0 : withClientRefusals(modules, units.refusals());
11008
- const { reload, checkPart } = useMarketReload({
11381
+ const { reload, recheck, checkPart } = useMarketReload({
11009
11382
  checkedAt,
11010
11383
  forceProbe,
11011
11384
  reloadCapability,
@@ -11036,7 +11409,7 @@ window.__ModuleLoader__.load({
11036
11409
  busy,
11037
11410
  checking: checking || versionsAllChecking,
11038
11411
  onTab: setTab,
11039
- onReload: () => reload({ force: true }),
11412
+ onReload: recheck,
11040
11413
  onAdd: openAddModule
11041
11414
  }), devMarket.strip, /* @__PURE__ */ (0, react.createElement)("div", {
11042
11415
  id: `${MARKET_PANEL_ID}-panel-installed`,
@@ -16538,7 +16911,7 @@ window.__ModuleLoader__.load({
16538
16911
  ...face.messages === void 0 ? {} : { messages: face.messages }
16539
16912
  }));
16540
16913
  }
16541
- 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_2or0c_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_2or0c_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_2or0c_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_2or0c_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_2or0c_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_2or0c_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_2or0c_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_2or0c_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_2or0c_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_2or0c_39 ._marketVersion_2or0c_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_2or0c_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_2or0c_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_2or0c_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_2or0c_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_2or0c_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_2or0c_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_2or0c_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_2or0c_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_2or0c_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_2or0c_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_2or0c_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_2or0c_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_2or0c_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_2or0c_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_2or0c_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_2or0c_183 ._marketSectionTitle_2or0c_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_2or0c_183 ._marketName_2or0c_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_2or0c_183 ._marketIcon_2or0c_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketProgress_2or0c_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_2or0c_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_2or0c_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_2or0c_219 {\n grid-column: 2 / -1;\n min-width: 0;\n}\n\n._marketEmpty_2or0c_224 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_2or0c_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_2or0c_229 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_2or0c_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_2or0c_255 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_2or0c_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_2or0c_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_2or0c_275 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_2or0c_275[hidden] {\n display: none;\n}\n\n._marketTabs_2or0c_285 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_2or0c_290 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_2or0c_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_2or0c_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_2or0c_312 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_2or0c_317 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_2or0c_324 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_2or0c_331 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_2or0c_337 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_2or0c_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_2or0c_349 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_2or0c_355 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_2or0c_360 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_2or0c_365 {\n flex: none;\n}\n\n._discoverSearch_2or0c_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_2or0c_377 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_2or0c_382 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_2or0c_377 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_2or0c_369 ._discoverSearchClear_2or0c_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_2or0c_391:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_2or0c_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_2or0c_337 {\n grid-area: market;\n }\n\n ._discoverMarketButton_2or0c_342 {\n margin-left: 0;\n }\n\n ._discoverLabels_2or0c_355 {\n grid-area: labels;\n }\n\n ._discoverSearch_2or0c_369 {\n grid-area: search;\n }\n\n ._discoverSort_2or0c_360 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_2or0c_365 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_2or0c_442 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_2or0c_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_2or0c_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_2or0c_458:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_2or0c_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_2or0c_484 {\n object-fit: contain;\n}\n\n._discoverMain_2or0c_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_2or0c_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_2or0c_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_2or0c_504::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_2or0c_504:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_2or0c_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_2or0c_535 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_2or0c_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_2or0c_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_2or0c_557 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_2or0c_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_2or0c_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_2or0c_577 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_2or0c_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_2or0c_591 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_2or0c_582 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_2or0c_601 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_2or0c_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_2or0c_607:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_2or0c_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_2or0c_630 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_2or0c_634 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_2or0c_640 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_2or0c_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_2or0c_653 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_2or0c_660 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_2or0c_665 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_2or0c_670 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_2or0c_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_2or0c_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_2or0c_688 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_2or0c_694 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_2or0c_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_2or0c_709 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_2or0c_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_2or0c_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_2or0c_732 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_2or0c_739 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_2or0c_739:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_2or0c_749 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_2or0c_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_2or0c_765 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_2or0c_770 {\n display: flex;\n align-items: flex-start;\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 white-space: pre-line;\n}\n\n._discoverFailure_2or0c_780 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_2or0c_786 {\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_2or0c_795 {\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_2or0c_795 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_2or0c_813 {\n align-self: center;\n}\n\n._discoverTransport_2or0c_817 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_2or0c_823 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_2or0c_830 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_2or0c_823 ._discoverTransportKind_2or0c_835 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_2or0c_823 ._discoverTransportState_2or0c_840 {\n margin-left: 0;\n}\n\n._discoverTransportHead_2or0c_823 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_2or0c_848 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_2or0c_848 {\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_2or0c_848:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_2or0c_848:has(._discoverTransportRadio_2or0c_869:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_2or0c_848:has(._discoverTransportRadio_2or0c_869:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_2or0c_869 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_2or0c_835 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_2or0c_840 {\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_2or0c_848[data-state='ok'] ._discoverTransportState_2or0c_840 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_2or0c_848[data-state='auth'] ._discoverTransportState_2or0c_840 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_2or0c_848[data-state='unreachable'] ._discoverTransportState_2or0c_840,\n._discoverTransportRow_2or0c_848[data-state='unknown'] ._discoverTransportState_2or0c_840 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_2or0c_909 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_2or0c_915 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_2or0c_920 {\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_2or0c_931 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_2or0c_937 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_2or0c_941 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_2or0c_947 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_2or0c_955 {\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_2or0c_964 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_2or0c_970 {\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_2or0c_979 {\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_2or0c_987 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_2or0c_995 {\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_2or0c_1003 {\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_2or0c_1013 {\n flex: none;\n}\n\n._discoverSourceLoading_2or0c_1017 {\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_2or0c_1027 {\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_2or0c_1027 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_2or0c_1041 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_2or0c_1047 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_2or0c_1053 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_2or0c_1058 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_2or0c_1064 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_2or0c_1069 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_2or0c_1075 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_2or0c_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_2or0c_472._discoverSkeletonFill_2or0c_1075 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_2or0c_1084 {\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_2or0c_1091 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_2or0c_1095 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_2or0c_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_2or0c_1075 {\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*/";
16914
+ 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._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._marketList_9z259_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_9z259_10 {\n position: relative;\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._marketRow_9z259_10[data-open='true']:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._marketNameOpen_9z259_25 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n white-space: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n._marketNameOpen_9z259_25::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketNameOpen_9z259_25:focus-visible {\n outline: none;\n}\n\n._marketNameOpen_9z259_25: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._marketIcon_9z259_53 {\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_9z259_65 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_9z259_25 {\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_9z259_81 {\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_9z259_91 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_9z259_95 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_9z259_99 {\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_9z259_25 ._marketVersion_9z259_105 {\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_9z259_105 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_9z259_105::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_9z259_127 {\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_9z259_138 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_9z259_147 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_9z259_147::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_9z259_160 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_9z259_166 {\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_9z259_172 {\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_9z259_178 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_9z259_185 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_9z259_191 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_9z259_198 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_9z259_204 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionAction_9z259_210 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n margin-left: auto;\n min-width: 0;\n}\n\n._marketSectionQuiet_9z259_218 ._marketSectionTitle_9z259_198 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_9z259_218 ._marketName_9z259_25 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_9z259_218 ._marketIcon_9z259_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketProgress_9z259_230 {\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_9z259_240 {\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_9z259_247 {\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_9z259_254 {\n position: relative;\n z-index: var(--wb-z-10);\n grid-column: 2 / -1;\n min-width: 0;\n}\n\n._marketEmpty_9z259_261 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_9z259_266 {\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_9z259_266 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_9z259_284 {\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_9z259_292 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_9z259_297 {\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_9z259_303 {\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_9z259_312 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_9z259_312[hidden] {\n display: none;\n}\n\n._marketTabs_9z259_322 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_9z259_327 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_9z259_332 {\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_9z259_261 {\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_9z259_349 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_9z259_354 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_9z259_361 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_9z259_368 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_9z259_374 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_9z259_379 {\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_9z259_386 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_9z259_392 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_9z259_397 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_9z259_402 {\n flex: none;\n}\n\n._discoverSearch_9z259_406 {\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_9z259_414 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_9z259_419 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_9z259_414 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_9z259_406 ._discoverSearchClear_9z259_428 {\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_9z259_428:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_9z259_368 {\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_9z259_374 {\n grid-area: market;\n }\n\n ._discoverMarketButton_9z259_379 {\n margin-left: 0;\n }\n\n ._discoverLabels_9z259_392 {\n grid-area: labels;\n }\n\n ._discoverSearch_9z259_406 {\n grid-area: search;\n }\n\n ._discoverSort_9z259_397 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_9z259_402 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_9z259_479 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_9z259_486 {\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_9z259_495 {\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_9z259_495:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_9z259_509 {\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_9z259_521 {\n object-fit: contain;\n}\n\n._discoverMain_9z259_525 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_9z259_533 {\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_9z259_541 {\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_9z259_541::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_9z259_541:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_9z259_541: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_9z259_572 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_9z259_578 {\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_9z259_587 {\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_9z259_594 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_9z259_600 {\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_9z259_609 {\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_9z259_614 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_9z259_619 {\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_9z259_628 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_9z259_619 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_9z259_638 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_9z259_644 {\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_9z259_644:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_9z259_644: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_9z259_667 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_9z259_671 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._marketDetailHead_9z259_677 {\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n._marketDetailName_9z259_682 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._marketDetailName_9z259_682 code {\n font-family: var(--ds-font-family-code);\n}\n\n._marketDetailEnd_9z259_693 {\n flex: none;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-10);\n margin-left: auto;\n}\n\n._discoverDetailTitle_9z259_703 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_9z259_709 {\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_9z259_716 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_9z259_723 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_9z259_728 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_9z259_733 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_9z259_738 {\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_9z259_744 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_9z259_751 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_9z259_757 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_9z259_762 {\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_9z259_772 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_9z259_778 {\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_9z259_786 {\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_9z259_795 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_9z259_802 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_9z259_802:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_9z259_812 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_9z259_820 {\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_9z259_828 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_9z259_833 {\n display: flex;\n align-items: flex-start;\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 white-space: pre-line;\n}\n\n._discoverFailure_9z259_843 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_9z259_849 {\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_9z259_858 {\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_9z259_858 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_9z259_876 {\n align-self: center;\n}\n\n._discoverTransport_9z259_880 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_9z259_886 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_9z259_893 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_9z259_886 ._discoverTransportKind_9z259_898 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_9z259_886 ._discoverTransportState_9z259_903 {\n margin-left: 0;\n}\n\n._discoverTransportHead_9z259_886 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_9z259_911 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_9z259_911 {\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_9z259_911:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_9z259_911:has(._discoverTransportRadio_9z259_932:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_9z259_911:has(._discoverTransportRadio_9z259_932:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_9z259_932 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_9z259_898 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_9z259_903 {\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_9z259_911[data-state='ok'] ._discoverTransportState_9z259_903 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_9z259_911[data-state='auth'] ._discoverTransportState_9z259_903 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_9z259_911[data-state='unreachable'] ._discoverTransportState_9z259_903,\n._discoverTransportRow_9z259_911[data-state='unknown'] ._discoverTransportState_9z259_903 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_9z259_972 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_9z259_978 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_9z259_983 {\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_9z259_994 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_9z259_1000 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_9z259_1004 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_9z259_1010 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_9z259_1018 {\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_9z259_1027 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_9z259_1033 {\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_9z259_1042 {\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_9z259_1050 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_9z259_1058 {\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_9z259_1066 {\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_9z259_1076 {\n flex: none;\n}\n\n._discoverSourceLoading_9z259_1080 {\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_9z259_1090 {\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_9z259_1090 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_9z259_1104 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_9z259_1110 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_9z259_1116 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_9z259_1121 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_9z259_1127 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_9z259_1132 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_9z259_1138 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_9z259_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_9z259_509._discoverSkeletonFill_9z259_1138 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_9z259_1147 {\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_9z259_1154 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_9z259_1158 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_9z259_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_9z259_1138 {\n animation: none;\n }\n}\n\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._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._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*/";
16542
16915
  function workbenchCss() {
16543
16916
  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}`;
16544
16917
  }