@dsh-workbench/core 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +14 -5
  2. package/bin/dsh-workbench +7 -1
  3. package/client.js +1118 -429
  4. package/dist/client/client.body.js +1118 -429
  5. package/dist/client/index.js +970 -281
  6. package/dist/host/index.js +788 -383
  7. package/dist/types/app/layouts/approval-detail.d.ts +2 -1
  8. package/dist/types/app/layouts/market/discover-confirm.d.ts +1 -1
  9. package/dist/types/app/layouts/market/discover-detail.d.ts +1 -0
  10. package/dist/types/app/layouts/market/discover-installing.d.ts +8 -0
  11. package/dist/types/app/layouts/market/discover-rows.d.ts +4 -2
  12. package/dist/types/app/layouts/market/discover-source-item.d.ts +26 -0
  13. package/dist/types/app/layouts/market/discover-sources-dialog.d.ts +4 -0
  14. package/dist/types/app/layouts/market/discover-states.d.ts +6 -0
  15. package/dist/types/app/layouts/market/discover-transport.d.ts +7 -0
  16. package/dist/types/app/layouts/market/discover-versions.d.ts +2 -1
  17. package/dist/types/app/layouts/market/discover-view.d.ts +2 -0
  18. package/dist/types/app/layouts/market/use-discover.d.ts +11 -1
  19. package/dist/types/app/layouts/market/use-git-transport.d.ts +19 -0
  20. package/dist/types/app/layouts/market/use-module-versions.d.ts +1 -0
  21. package/dist/types/kernel/contract/market-index.d.ts +2 -2
  22. package/dist/types/modules/panels/client.d.ts +1 -1
  23. package/dist/types/modules/panels/model/approval.d.ts +4 -2
  24. package/dist/types/modules/panels/model/diy-publish.d.ts +10 -0
  25. package/dist/types/modules/panels/model/diy-tools.d.ts +0 -1
  26. package/dist/types/modules/panels/model/market-sources-act.d.ts +2 -1
  27. package/dist/types/modules/panels/model/market-sources-tool.d.ts +3 -0
  28. package/dist/types/modules/panels/model/market-sources-tool.test.d.ts +1 -0
  29. package/dist/types/modules/panels/model/market-tools.d.ts +8 -1
  30. package/dist/types/modules/panels/model/publish-claim.d.ts +2 -0
  31. package/dist/types/modules/panels/unit.d.ts +7 -5
  32. package/dist/types/shared/api/host/diy-publish-preview.d.ts +2 -0
  33. package/dist/types/shared/api/host/git-exec.d.ts +2 -0
  34. package/dist/types/shared/api/host/git-probe.d.ts +6 -0
  35. package/dist/types/shared/api/host/git-routes.d.ts +3 -0
  36. package/dist/types/shared/api/host/market-source-init.d.ts +1 -0
  37. package/dist/types/shared/api/host/market-sources-store.d.ts +2 -0
  38. package/dist/types/shared/hooks/market-queries.d.ts +3 -2
  39. package/package.json +3 -3
  40. package/skills/workbench-module-diy/FAMILY.md +3 -4
  41. package/skills/workbench-module-diy/SKILL.md +4 -1
  42. package/skills/workbench-module-diy/WIRING.md +9 -2
  43. package/dist/types/modules/panels/model/diy-changelog.d.ts +0 -2
  44. package/dist/types/shared/api/host/diy-changelog.d.ts +0 -13
@@ -781,17 +781,17 @@ async function apiPost(route, body) {
781
781
  //#endregion
782
782
  //#region ../shared/dist/lib/react.js
783
783
  var react$1 = require("react");
784
- var h$63 = react$1.createElement;
785
- var Fragment$20 = react$1.Fragment;
784
+ var h$66 = react$1.createElement;
785
+ var Fragment$23 = react$1.Fragment;
786
786
  var Component = react$1.Component;
787
787
  react$1.createContext;
788
788
  react$1.useContext;
789
- var useState$35 = react$1.useState;
790
- var useEffect$28 = react$1.useEffect;
789
+ var useState$37 = react$1.useState;
790
+ var useEffect$29 = react$1.useEffect;
791
791
  react$1.useLayoutEffect;
792
- var useMemo$9 = react$1.useMemo;
792
+ var useMemo$10 = react$1.useMemo;
793
793
  react$1.useCallback;
794
- var useRef$22 = react$1.useRef;
794
+ var useRef$23 = react$1.useRef;
795
795
  react$1.useSyncExternalStore;
796
796
  //#endregion
797
797
  //#region ../shared/dist/components/Activity.js
@@ -802,7 +802,7 @@ react$1.useSyncExternalStore;
802
802
  * @returns 一个 div。
803
803
  */
804
804
  function ActivityBlock({ head, children }) {
805
- return h$63("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$63("div", { className: "wb-activityBlockHead" }, head), children);
805
+ return h$66("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$66("div", { className: "wb-activityBlockHead" }, head), children);
806
806
  }
807
807
  /**
808
808
  * 一条活动:状态点 + 正文 + 时间,行尾可挂动作;时间一律用它,别自己拼。
@@ -813,7 +813,7 @@ function ActivityBlock({ head, children }) {
813
813
  * @returns 一行。
814
814
  */
815
815
  function ActivityLine({ dot, text, at, actions }) {
816
- return h$63("div", { className: "wb-activityLine" }, dot, h$63("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h$63("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h$63("span", { className: "wb-activityLineActions" }, actions));
816
+ return h$66("div", { className: "wb-activityLine" }, dot, h$66("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h$66("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h$66("span", { className: "wb-activityLineActions" }, actions));
817
817
  }
818
818
  /**
819
819
  * 活动行尾那颗动作:给 `href` 就是外链,否则是图标钮并带上 tooltip。
@@ -827,7 +827,7 @@ function ActivityLine({ dot, text, at, actions }) {
827
827
  */
828
828
  function ActivityAction({ label, hint, icon, href, onClick, failed }) {
829
829
  const tip = hint ?? label;
830
- if (href !== void 0) return h$63("a", {
830
+ if (href !== void 0) return h$66("a", {
831
831
  className: "wb-iconButton",
832
832
  href,
833
833
  target: "_blank",
@@ -835,13 +835,13 @@ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
835
835
  title: tip,
836
836
  "aria-label": label
837
837
  }, icon);
838
- return h$63(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
838
+ return h$66(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
839
839
  side: "bottom",
840
840
  align: "end",
841
841
  gap: 6,
842
842
  portal: true,
843
843
  label: tip
844
- }, h$63(_deepseek_ai_dsh_client_ui_primitives.Button, {
844
+ }, h$66(_deepseek_ai_dsh_client_ui_primitives.Button, {
845
845
  type: "button",
846
846
  variant: "ghost",
847
847
  size: "sm",
@@ -863,10 +863,10 @@ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
863
863
  */
864
864
  function Note({ tone = "muted", as, role, children }) {
865
865
  const className = tone === "problem" ? "wb-problem" : "wb-note";
866
- return as === "span" ? h$63("span", {
866
+ return as === "span" ? h$66("span", {
867
867
  className,
868
868
  role
869
- }, children) : h$63("p", {
869
+ }, children) : h$66("p", {
870
870
  className,
871
871
  role
872
872
  }, children);
@@ -910,10 +910,10 @@ var CardBoundary = class extends Component {
910
910
  render() {
911
911
  const { reason } = this.state;
912
912
  if (reason === null) return this.props.children;
913
- return h$63(Note, { tone: "problem" }, h$63("span", null, this.props.t("panels.cardBroken", {
913
+ return h$66(Note, { tone: "problem" }, h$66("span", null, this.props.t("panels.cardBroken", {
914
914
  unit: this.props.unit,
915
915
  reason
916
- })), " ", h$63(_deepseek_ai_dsh_client_ui_primitives.Button, {
916
+ })), " ", h$66(_deepseek_ai_dsh_client_ui_primitives.Button, {
917
917
  type: "button",
918
918
  variant: "outline",
919
919
  size: "sm",
@@ -963,19 +963,19 @@ function ApprovalDetail(props) {
963
963
  const owner = (props.units ?? []).find((face) => face.approval?.tools.includes(input.tool) === true);
964
964
  if (owner?.approval !== void 0) {
965
965
  const Render = owner.approval.render;
966
- return h$63(CardBoundary, {
966
+ return h$66(CardBoundary, {
967
967
  unit: owner.unit,
968
968
  resetKey: props.callId ?? "",
969
969
  t
970
- }, h$63(Render, {
970
+ }, h$66(Render, {
971
971
  input,
972
972
  t
973
973
  }));
974
974
  }
975
975
  const shell = props.renderShell?.(input, t);
976
- if (shell !== void 0 && shell !== null) return h$63(Fragment$20, null, shell);
976
+ if (shell !== void 0 && shell !== null) return h$66(Fragment$23, null, shell);
977
977
  if (command === "") return null;
978
- return h$63(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
978
+ return h$66(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
979
979
  code: command,
980
980
  className: "wb-approvalCommand",
981
981
  copyLabel: t("blocker.copy"),
@@ -993,10 +993,10 @@ function ApprovalDetail(props) {
993
993
  * @returns 一个 div。
994
994
  */
995
995
  function ApprovalPlan({ rows, hint, warn, children }) {
996
- return h$63("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h$63("p", { className: "wb-approvalHint" }, hint), h$63("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h$63("div", {
996
+ return h$66("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h$66("p", { className: "wb-approvalHint" }, hint), h$66("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h$66("div", {
997
997
  className: "wb-approvalRow",
998
998
  key: String(index)
999
- }, h$63("dt", { className: "wb-approvalLabel" }, row.label), h$63("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h$63("p", { className: "wb-approvalWarn" }, warn));
999
+ }, h$66("dt", { className: "wb-approvalLabel" }, row.label), h$66("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h$66("p", { className: "wb-approvalWarn" }, warn));
1000
1000
  }
1001
1001
  //#endregion
1002
1002
  //#region ../shared/dist/components/CardHead.js
@@ -1013,47 +1013,47 @@ function ApprovalPlan({ rows, hint, warn, children }) {
1013
1013
  function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle }) {
1014
1014
  const refreshLabel = refreshing ? t("rightbar.refreshing") : t("rightbar.refresh");
1015
1015
  const platformLabel = platformTitle ?? platform ?? t("rightbar.openPlatform");
1016
- return h$63("header", { className: "wb-cardHead" }, h$63("h2", { className: "wb-cardTitle" }, title), meta === void 0 ? null : h$63("span", { className: "wb-cardMeta" }, meta), platformHref === void 0 ? null : h$63(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1016
+ return h$66("header", { className: "wb-cardHead" }, h$66("h2", { className: "wb-cardTitle" }, title), meta === void 0 ? null : h$66("span", { className: "wb-cardMeta" }, meta), platformHref === void 0 ? null : h$66(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1017
1017
  side: "bottom",
1018
1018
  align: "end",
1019
1019
  gap: 6,
1020
1020
  portal: true,
1021
1021
  label: platformLabel
1022
- }, h$63("a", {
1022
+ }, h$66("a", {
1023
1023
  className: "wb-iconButton wb-cardOpen",
1024
1024
  href: platformHref,
1025
1025
  target: "_blank",
1026
1026
  rel: "noreferrer noopener",
1027
1027
  "aria-label": platform ?? platformLabel
1028
- }, h$63(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$63(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1028
+ }, h$66(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$66(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1029
1029
  side: "bottom",
1030
1030
  align: "end",
1031
1031
  gap: 6,
1032
1032
  portal: true,
1033
1033
  label: refreshLabel
1034
- }, h$63(_deepseek_ai_dsh_client_ui_primitives.Button, {
1034
+ }, h$66(_deepseek_ai_dsh_client_ui_primitives.Button, {
1035
1035
  type: "button",
1036
1036
  size: "sm",
1037
1037
  variant: "ghost",
1038
1038
  className: `wb-cardRefresh${refreshing ? " wb-spinning" : ""}`,
1039
1039
  "aria-label": refreshLabel,
1040
1040
  disabled: refreshing,
1041
- icon: h$63(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
1041
+ icon: h$66(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
1042
1042
  onClick: onRefresh
1043
- })), gear === void 0 || onToggleGear === void 0 ? null : h$63(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1043
+ })), gear === void 0 || onToggleGear === void 0 ? null : h$66(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1044
1044
  side: "bottom",
1045
1045
  align: "end",
1046
1046
  gap: 6,
1047
1047
  portal: true,
1048
1048
  label: gear
1049
- }, h$63(_deepseek_ai_dsh_client_ui_primitives.Button, {
1049
+ }, h$66(_deepseek_ai_dsh_client_ui_primitives.Button, {
1050
1050
  type: "button",
1051
1051
  size: "sm",
1052
1052
  variant: "ghost",
1053
1053
  className: `wb-cardGear${gearOpen === true ? " wb-iconButtonActive" : ""}`,
1054
1054
  "aria-label": gear,
1055
1055
  "aria-expanded": gearOpen === true,
1056
- icon: h$63(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
1056
+ icon: h$66(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
1057
1057
  onClick: onToggleGear
1058
1058
  })));
1059
1059
  }
@@ -1070,13 +1070,13 @@ function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onTog
1070
1070
  * @returns 一个 `<section>`。
1071
1071
  */
1072
1072
  function Card({ t, title, refreshing, onRefresh, meta, head, children }) {
1073
- return h$63("section", { className: "wb-card" }, head === void 0 ? h$63(CardHead, {
1073
+ return h$66("section", { className: "wb-card" }, head === void 0 ? h$66(CardHead, {
1074
1074
  t,
1075
1075
  title,
1076
1076
  refreshing,
1077
1077
  onRefresh,
1078
1078
  meta
1079
- }) : head, h$63("div", { className: "wb-cardBody" }, children));
1079
+ }) : head, h$66("div", { className: "wb-cardBody" }, children));
1080
1080
  }
1081
1081
  var CardAnchor_module_default = { anchor: "_anchor_yq4s2_1" };
1082
1082
  //#endregion
@@ -1096,7 +1096,7 @@ function cardIdOf(unit) {
1096
1096
  * @returns 带 id 的占位 div。
1097
1097
  */
1098
1098
  function CardAnchor({ unit, children }) {
1099
- return h$63("div", {
1099
+ return h$66("div", {
1100
1100
  id: cardIdOf(unit),
1101
1101
  className: CardAnchor_module_default.anchor
1102
1102
  }, children);
@@ -1110,13 +1110,13 @@ function CardAnchor({ unit, children }) {
1110
1110
  * @returns 一枚 `StateDot state="ongoing"`,自身不带文字。
1111
1111
  */
1112
1112
  function Spinner({ size = 14, label }) {
1113
- return h$63("span", {
1113
+ return h$66("span", {
1114
1114
  className: "wb-spinner",
1115
1115
  ...label === void 0 ? { "aria-hidden": true } : {
1116
1116
  role: "status",
1117
1117
  "aria-label": label
1118
1118
  }
1119
- }, h$63(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1119
+ }, h$66(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1120
1120
  state: "ongoing",
1121
1121
  size
1122
1122
  }));
@@ -1124,24 +1124,24 @@ function Spinner({ size = 14, label }) {
1124
1124
  //#endregion
1125
1125
  //#region ../shared/dist/components/ChoiceGroup.js
1126
1126
  function ChoiceMenu(input) {
1127
- const body = input.loading ? h$63("span", {
1127
+ const body = input.loading ? h$66("span", {
1128
1128
  className: "wb-choiceLoading",
1129
1129
  role: "status"
1130
- }, h$63(Spinner, { size: 14 }), h$63("span", { className: "wb-choiceLoadingText" }, input.loadingText ?? "…")) : input.options.length === 0 ? input.emptyText === void 0 ? null : h$63("span", { className: "wb-choiceEmpty" }, input.emptyText) : input.options.map((option) => {
1130
+ }, h$66(Spinner, { size: 14 }), h$66("span", { className: "wb-choiceLoadingText" }, input.loadingText ?? "…")) : input.options.length === 0 ? input.emptyText === void 0 ? null : h$66("span", { className: "wb-choiceEmpty" }, input.emptyText) : input.options.map((option) => {
1131
1131
  const row = input.rowOf(option.value);
1132
- return h$63(Fragment$20, { key: option.value }, h$63("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$63("input", {
1132
+ return h$66(Fragment$23, { key: option.value }, h$66("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$66("input", {
1133
1133
  className: input.multi ? "wb-checkbox" : "wb-radio",
1134
1134
  type: input.multi ? "checkbox" : "radio",
1135
1135
  name: input.name,
1136
1136
  checked: row.checked,
1137
1137
  disabled: input.disabled,
1138
1138
  onChange: row.onSelect
1139
- }), input.multi ? h$63("span", {
1139
+ }), input.multi ? h$66("span", {
1140
1140
  className: "wb-checkboxBox",
1141
1141
  "aria-hidden": "true"
1142
- }, row.checked ? h$63(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 }) : null) : null, h$63("span", { className: "wb-choiceLabel" }, h$63("span", { className: "wb-choiceLabelText" }, option.label), option.description === void 0 ? null : h$63("span", { className: "wb-choiceDescription" }, option.description))));
1142
+ }, row.checked ? h$66(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 }) : null) : null, h$66("span", { className: "wb-choiceLabel" }, h$66("span", { className: "wb-choiceLabelText" }, option.label), option.description === void 0 ? null : h$66("span", { className: "wb-choiceDescription" }, option.description))));
1143
1143
  });
1144
- return h$63("div", {
1144
+ return h$66("div", {
1145
1145
  className: "wb-choiceMenu",
1146
1146
  "data-variant": input.variant,
1147
1147
  role: input.multi ? "group" : "radiogroup",
@@ -1175,7 +1175,7 @@ function ChoiceGroup(props) {
1175
1175
  if (props.multi === true) {
1176
1176
  const values = props.values;
1177
1177
  const onChange = props.onChange;
1178
- return h$63(ChoiceMenu, {
1178
+ return h$66(ChoiceMenu, {
1179
1179
  label: common.label,
1180
1180
  name: common.name,
1181
1181
  options: common.options,
@@ -1195,7 +1195,7 @@ function ChoiceGroup(props) {
1195
1195
  }
1196
1196
  const value = props.value;
1197
1197
  const onChange = props.onChange;
1198
- return h$63(ChoiceMenu, {
1198
+ return h$66(ChoiceMenu, {
1199
1199
  label: common.label,
1200
1200
  name: common.name,
1201
1201
  options: common.options,
@@ -1248,17 +1248,17 @@ function variantOf(kind) {
1248
1248
  function FormActions({ actions }) {
1249
1249
  if (actions.length === 0) return null;
1250
1250
  reportExtraPrimaries(actions);
1251
- return h$63("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
1251
+ return h$66("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
1252
1252
  const kind = kindOf(action);
1253
1253
  const busy = action.busy === true;
1254
- return h$63(_deepseek_ai_dsh_client_ui_primitives.Button, {
1254
+ return h$66(_deepseek_ai_dsh_client_ui_primitives.Button, {
1255
1255
  key: action.key,
1256
1256
  type: "button",
1257
1257
  size: "sm",
1258
1258
  variant: variantOf(kind),
1259
1259
  className: kind === "danger" ? "wb-formActionDanger" : void 0,
1260
1260
  disabled: busy || action.disabled === true,
1261
- icon: busy ? h$63(Spinner, { size: 12 }) : void 0,
1261
+ icon: busy ? h$66(Spinner, { size: 12 }) : void 0,
1262
1262
  onClick: action.onClick
1263
1263
  }, action.label);
1264
1264
  }));
@@ -1271,7 +1271,7 @@ function FormActions({ actions }) {
1271
1271
  * @returns 竖排的 div。
1272
1272
  */
1273
1273
  function Rows({ children }) {
1274
- return h$63("div", { className: "wb-rows" }, children);
1274
+ return h$66("div", { className: "wb-rows" }, children);
1275
1275
  }
1276
1276
  /**
1277
1277
  * 一行键值:左边名字、右边值;要成对说明一项数据就用它,别自己写两栏。
@@ -1280,7 +1280,7 @@ function Rows({ children }) {
1280
1280
  * @returns 一行两格。
1281
1281
  */
1282
1282
  function Row({ label, value }) {
1283
- return h$63("div", { className: "wb-row" }, h$63("span", { className: "wb-rowKey" }, label), h$63("span", { className: "wb-rowValue" }, value));
1283
+ return h$66("div", { className: "wb-row" }, h$66("span", { className: "wb-rowKey" }, label), h$66("span", { className: "wb-rowValue" }, value));
1284
1284
  }
1285
1285
  //#endregion
1286
1286
  //#region ../shared/dist/components/ConfirmBar.js
@@ -1297,19 +1297,19 @@ function Row({ label, value }) {
1297
1297
  * @returns 一个 `role="group"` 的条;`actions` 空数组时最后那一块不渲染。
1298
1298
  */
1299
1299
  function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
1300
- return h$63("div", {
1300
+ return h$66("div", {
1301
1301
  className: "wb-confirmBar",
1302
1302
  role: "group",
1303
1303
  "aria-label": label ?? (typeof title === "string" ? title : void 0),
1304
1304
  "aria-busy": busy
1305
- }, h$63("p", { className: "wb-confirmBarTitle" }, title), hint === void 0 ? null : h$63("p", { className: "wb-confirmBarHint" }, hint), rows === void 0 || rows.length === 0 ? null : h$63(Rows, null, rows.map((row) => h$63(Row, {
1305
+ }, h$66("p", { className: "wb-confirmBarTitle" }, title), hint === void 0 ? null : h$66("p", { className: "wb-confirmBarHint" }, hint), rows === void 0 || rows.length === 0 ? null : h$66(Rows, null, rows.map((row) => h$66(Row, {
1306
1306
  key: row.key,
1307
1307
  label: row.label,
1308
1308
  value: row.value
1309
- }))), problem === void 0 ? null : h$63(Note, {
1309
+ }))), problem === void 0 ? null : h$66(Note, {
1310
1310
  tone: "problem",
1311
1311
  role: "alert"
1312
- }, problem), h$63(FormActions, { actions }));
1312
+ }, problem), h$66(FormActions, { actions }));
1313
1313
  }
1314
1314
  //#endregion
1315
1315
  //#region ../shared/dist/components/Field.js
@@ -1321,7 +1321,7 @@ function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
1321
1321
  * @returns 一个 `<label>`,点标签会聚焦里面的控件。
1322
1322
  */
1323
1323
  function Field({ label, hint, children }) {
1324
- return h$63("label", { className: "wb-field" }, h$63("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$63("span", { className: "wb-fieldHint" }, hint));
1324
+ return h$66("label", { className: "wb-field" }, h$66("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$66("span", { className: "wb-fieldHint" }, hint));
1325
1325
  }
1326
1326
  //#endregion
1327
1327
  //#region ../shared/dist/components/FormRows.js
@@ -1331,7 +1331,7 @@ function Field({ label, hint, children }) {
1331
1331
  * @returns 竖排的 div。
1332
1332
  */
1333
1333
  function FormRows({ children }) {
1334
- return h$63("div", { className: "wb-formRows" }, children);
1334
+ return h$66("div", { className: "wb-formRows" }, children);
1335
1335
  }
1336
1336
  /**
1337
1337
  * 表单一行:左边标签、右边控件,提示与错误占控件下面那一格。
@@ -1344,14 +1344,14 @@ function FormRows({ children }) {
1344
1344
  * @returns 一个 `<div>`:里面的 `<label>` 只包标签文字,不包控件、提示与整行的空白。
1345
1345
  */
1346
1346
  function FormRow({ label, htmlFor, hint, problem, layout = "inline", children }) {
1347
- return h$63("div", {
1347
+ return h$66("div", {
1348
1348
  className: "wb-formRow",
1349
1349
  "data-layout": layout,
1350
1350
  "data-wb-problem": problem === void 0 ? void 0 : ""
1351
- }, h$63("label", {
1351
+ }, h$66("label", {
1352
1352
  className: "wb-formLabel",
1353
1353
  htmlFor
1354
- }, label), h$63("span", { className: "wb-formControl" }, children), problem === void 0 ? hint === void 0 ? null : h$63("span", { className: "wb-formHint" }, hint) : h$63("span", { className: "wb-formProblem" }, problem));
1354
+ }, label), h$66("span", { className: "wb-formControl" }, children), problem === void 0 ? hint === void 0 ? null : h$66("span", { className: "wb-formHint" }, hint) : h$66("span", { className: "wb-formProblem" }, problem));
1355
1355
  }
1356
1356
  //#endregion
1357
1357
  //#region ../shared/dist/components/FormNodes.js
@@ -1498,7 +1498,7 @@ function formActionsOf(args) {
1498
1498
  * @returns `FormRow` 组成的数组;没有可画的格子时给空数组。
1499
1499
  */
1500
1500
  function formRowsOf(args) {
1501
- return args.fields.map((field) => h$63(FormRow, {
1501
+ return args.fields.map((field) => h$66(FormRow, {
1502
1502
  key: field.key,
1503
1503
  label: field.label,
1504
1504
  htmlFor: controlIdOf(field.key),
@@ -1574,13 +1574,13 @@ function revealFirstProblem(root) {
1574
1574
  */
1575
1575
  function Form(props) {
1576
1576
  const { fields, onSubmit, submit, cancel, extra, busy = false, disabled = false, problem } = props;
1577
- const [done, setDone] = useState$35(false);
1578
- const [reveal, setReveal] = useState$35(0);
1579
- const rootRef = useRef$22(null);
1577
+ const [done, setDone] = useState$37(false);
1578
+ const [reveal, setReveal] = useState$37(0);
1579
+ const rootRef = useRef$23(null);
1580
1580
  const shown = visibleFieldsOf(fields);
1581
1581
  const problems = formProblemsOf(shown, done);
1582
1582
  reportDuplicateKeys(shown);
1583
- useEffect$28(() => {
1583
+ useEffect$29(() => {
1584
1584
  if (reveal === 0) return;
1585
1585
  const root = rootRef.current;
1586
1586
  if (root !== null) revealFirstProblem(root);
@@ -1595,7 +1595,7 @@ function Form(props) {
1595
1595
  }
1596
1596
  onSubmit(outcome.values);
1597
1597
  };
1598
- return h$63("form", {
1598
+ return h$66("form", {
1599
1599
  className: "wb-form",
1600
1600
  ref: rootRef,
1601
1601
  noValidate: true,
@@ -1603,15 +1603,15 @@ function Form(props) {
1603
1603
  event.preventDefault();
1604
1604
  submitForm();
1605
1605
  }
1606
- }, h$63(FormRows, null, formRowsOf({
1606
+ }, h$66(FormRows, null, formRowsOf({
1607
1607
  fields: shown,
1608
1608
  problems,
1609
1609
  showProblem: done,
1610
1610
  busy
1611
- })), problem === void 0 ? null : h$63(Note, {
1611
+ })), problem === void 0 ? null : h$66(Note, {
1612
1612
  tone: "problem",
1613
1613
  role: "alert"
1614
- }, problem), h$63(FormActions, { actions: formActionsOf({
1614
+ }, problem), h$66(FormActions, { actions: formActionsOf({
1615
1615
  extra,
1616
1616
  cancel,
1617
1617
  submit,
@@ -1632,7 +1632,7 @@ function Form(props) {
1632
1632
  * @returns 一个 `<a>`。
1633
1633
  */
1634
1634
  function Link({ href, children, title, external = true, className }) {
1635
- return h$63("a", {
1635
+ return h$66("a", {
1636
1636
  className: className === void 0 ? "wb-link" : `wb-link ${className}`,
1637
1637
  href,
1638
1638
  ...title === void 0 ? {} : { title },
@@ -1640,7 +1640,7 @@ function Link({ href, children, title, external = true, className }) {
1640
1640
  target: "_blank",
1641
1641
  rel: "noopener noreferrer"
1642
1642
  } : {}
1643
- }, children, external ? h$63(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
1643
+ }, children, external ? h$66(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
1644
1644
  }
1645
1645
  //#endregion
1646
1646
  //#region ../shared/dist/contract/long-task.js
@@ -1732,7 +1732,7 @@ var LONG_TASK_STOP_ARM_MS = 3e3;
1732
1732
  //#endregion
1733
1733
  //#region ../shared/dist/components/LongTaskRow.js
1734
1734
  function RowLink({ href, text }) {
1735
- return h$63(Link, {
1735
+ return h$66(Link, {
1736
1736
  href,
1737
1737
  className: "wb-longTaskLink"
1738
1738
  }, text);
@@ -1752,9 +1752,9 @@ function RowLink({ href, text }) {
1752
1752
  * @returns 一行长任务。
1753
1753
  */
1754
1754
  function LongTaskRow(props) {
1755
- const [stepsOpen, setStepsOpen] = useState$35(false);
1756
- const [rawOpen, setRawOpen] = useState$35(false);
1757
- const [armed, setArmed] = useState$35(false);
1755
+ const [stepsOpen, setStepsOpen] = useState$37(false);
1756
+ const [rawOpen, setRawOpen] = useState$37(false);
1757
+ const [armed, setArmed] = useState$37(false);
1758
1758
  const failed = props.status === "failed";
1759
1759
  const problem = props.problem ?? "";
1760
1760
  const raw = (props.raw ?? "").trim();
@@ -1762,7 +1762,7 @@ function LongTaskRow(props) {
1762
1762
  const stop = props.stop;
1763
1763
  const busy = stop?.busy === true;
1764
1764
  const stopWhy = stop?.failed ?? "";
1765
- useEffect$28(() => {
1765
+ useEffect$29(() => {
1766
1766
  if (!armed) return void 0;
1767
1767
  const timer = setTimeout(() => setArmed(false), LONG_TASK_STOP_ARM_MS);
1768
1768
  return () => clearTimeout(timer);
@@ -1781,14 +1781,14 @@ function LongTaskRow(props) {
1781
1781
  setArmed(false);
1782
1782
  stop.onStop();
1783
1783
  };
1784
- return h$63("div", { className: "wb-longTask" }, h$63("p", { className: "wb-longTaskHead" }, h$63(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1784
+ return h$66("div", { className: "wb-longTask" }, h$66("p", { className: "wb-longTaskHead" }, h$66(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1785
1785
  state: longTaskDot(props.status),
1786
1786
  size: 10
1787
- }), h$63("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$63(RowLink, {
1787
+ }), h$66("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$66(RowLink, {
1788
1788
  href: link.href,
1789
1789
  key: `${link.text}@${link.href}`,
1790
1790
  text: link.text
1791
- })), stop === void 0 ? null : h$63("button", {
1791
+ })), stop === void 0 ? null : h$66("button", {
1792
1792
  type: "button",
1793
1793
  className: `wb-longTaskStop${armed ? " wb-longTaskStopArmed" : ""}`,
1794
1794
  "data-stop-state": longTaskStopStage({
@@ -1799,31 +1799,31 @@ function LongTaskRow(props) {
1799
1799
  disabled: busy,
1800
1800
  onClick: onStopPress,
1801
1801
  onBlur: () => setArmed(false)
1802
- }, h$63(_deepseek_ai_dsh_client_ui_primitives.IconStopFillRegular, { size: 12 }), armed ? h$63("span", { className: "wb-longTaskStopLabel" }, stop.askLabel) : null)), problem === "" ? null : h$63("p", { className: "wb-longTaskProblem" }, problem), stopWhy === "" ? null : h$63("p", { className: "wb-longTaskStopWhy" }, stopWhy), !failed ? null : h$63(Fragment$20, null, steps.length === 0 || props.stepsTitle === void 0 ? null : h$63(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1802
+ }, h$66(_deepseek_ai_dsh_client_ui_primitives.IconStopFillRegular, { size: 12 }), armed ? h$66("span", { className: "wb-longTaskStopLabel" }, stop.askLabel) : null)), problem === "" ? null : h$66("p", { className: "wb-longTaskProblem" }, problem), stopWhy === "" ? null : h$66("p", { className: "wb-longTaskStopWhy" }, stopWhy), !failed ? null : h$66(Fragment$23, null, steps.length === 0 || props.stepsTitle === void 0 ? null : h$66(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1803
1803
  className: "wb-longTaskDump",
1804
- icon: h$63(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
1804
+ icon: h$66(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
1805
1805
  title: props.stepsTitle,
1806
1806
  open: stepsOpen,
1807
1807
  expandable: true,
1808
1808
  expandOnRowClick: true,
1809
1809
  previewChevron: true,
1810
1810
  onToggle: () => setStepsOpen(!stepsOpen)
1811
- }, h$63(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1811
+ }, h$66(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1812
1812
  code: steps.join("\n"),
1813
1813
  className: "wb-longTaskDump",
1814
1814
  showHeader: props.copyLabel !== void 0,
1815
1815
  copyLabel: props.copyLabel ?? "",
1816
1816
  copiedLabel: props.copiedLabel ?? ""
1817
- })), raw === "" || props.rawTitle === void 0 ? null : h$63(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1817
+ })), raw === "" || props.rawTitle === void 0 ? null : h$66(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1818
1818
  className: "wb-longTaskDump",
1819
- icon: h$63(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
1819
+ icon: h$66(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
1820
1820
  title: props.rawTitle,
1821
1821
  open: rawOpen,
1822
1822
  expandable: true,
1823
1823
  expandOnRowClick: true,
1824
1824
  previewChevron: true,
1825
1825
  onToggle: () => setRawOpen(!rawOpen)
1826
- }, h$63(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1826
+ }, h$66(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1827
1827
  code: raw,
1828
1828
  className: "wb-longTaskDump",
1829
1829
  showHeader: props.copyLabel !== void 0,
@@ -1839,13 +1839,13 @@ function LongTaskRow(props) {
1839
1839
  * @returns 一叠占位条。
1840
1840
  */
1841
1841
  function SkeletonRows({ rows = 4 }) {
1842
- return h$63("div", {
1842
+ return h$66("div", {
1843
1843
  className: "wb-skeleton",
1844
1844
  "aria-hidden": "true"
1845
- }, Array.from({ length: rows }, (_, index) => h$63("span", {
1845
+ }, Array.from({ length: rows }, (_, index) => h$66("span", {
1846
1846
  key: index,
1847
1847
  className: "wb-skeletonRow"
1848
- }, h$63("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$63("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
1848
+ }, h$66("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$66("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
1849
1849
  }
1850
1850
  /**
1851
1851
  * 居中一屏:要他先选一个 / 正在读 / 读不到时用它占住卡片版面。
@@ -1858,13 +1858,13 @@ function SkeletonRows({ rows = 4 }) {
1858
1858
  * @returns 一个 `role="status"` 的居中块。
1859
1859
  */
1860
1860
  function CenteredState({ icon, title, hint, detail, action, compact = false }) {
1861
- return h$63("div", {
1861
+ return h$66("div", {
1862
1862
  className: compact ? "wb-centered wb-centeredCompact" : "wb-centered",
1863
1863
  role: "status"
1864
- }, icon === null ? null : h$63("span", {
1864
+ }, icon === null ? null : h$66("span", {
1865
1865
  className: "wb-centeredHero",
1866
1866
  "aria-hidden": "true"
1867
- }, icon), h$63("div", { className: "wb-centeredTitle" }, title), hint === void 0 ? null : h$63("div", { className: "wb-centeredHint" }, hint), detail === void 0 ? null : h$63("div", { className: "wb-centeredDetail" }, detail), action === void 0 ? null : h$63("div", { className: "wb-centeredAction" }, action));
1867
+ }, icon), h$66("div", { className: "wb-centeredTitle" }, title), hint === void 0 ? null : h$66("div", { className: "wb-centeredHint" }, hint), detail === void 0 ? null : h$66("div", { className: "wb-centeredDetail" }, detail), action === void 0 ? null : h$66("div", { className: "wb-centeredAction" }, action));
1868
1868
  }
1869
1869
  /**
1870
1870
  * 就绪但空:它只是 `CenteredState` 的简写,标题就是那句空态文案。
@@ -1874,7 +1874,7 @@ function CenteredState({ icon, title, hint, detail, action, compact = false }) {
1874
1874
  * @returns 一个居中块。
1875
1875
  */
1876
1876
  function EmptyState({ text, icon = null, compact = false }) {
1877
- return h$63(CenteredState, {
1877
+ return h$66(CenteredState, {
1878
1878
  icon,
1879
1879
  title: text,
1880
1880
  compact
@@ -1892,7 +1892,7 @@ function EmptyState({ text, icon = null, compact = false }) {
1892
1892
  * @returns 一组按钮。
1893
1893
  */
1894
1894
  function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
1895
- return h$63(FormActions, { actions: [{
1895
+ return h$66(FormActions, { actions: [{
1896
1896
  key: "cancel",
1897
1897
  label: labels.cancel,
1898
1898
  kind: "default",
@@ -1925,7 +1925,7 @@ function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
1925
1925
  * @returns 一颗 `<button>`。
1926
1926
  */
1927
1927
  function selectTriggerNode(args) {
1928
- return h$63("button", {
1928
+ return h$66("button", {
1929
1929
  type: "button",
1930
1930
  id: args.id,
1931
1931
  className: args.className,
@@ -1936,7 +1936,7 @@ function selectTriggerNode(args) {
1936
1936
  "aria-label": args.ariaLabel,
1937
1937
  title: args.title,
1938
1938
  onClick: args.onOpen
1939
- }, args.iconOnly ? h$63("span", { className: "wb-selectIcon" }, args.icon) : h$63(Fragment$20, null, args.icon === void 0 ? null : h$63("span", { className: "wb-selectIcon" }, args.icon), h$63("span", { className: "wb-selectValue" }, args.value), h$63("span", { className: "wb-selectChevron" }, h$63(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 14 }))));
1939
+ }, args.iconOnly ? h$66("span", { className: "wb-selectIcon" }, args.icon) : h$66(Fragment$23, null, args.icon === void 0 ? null : h$66("span", { className: "wb-selectIcon" }, args.icon), h$66("span", { className: "wb-selectValue" }, args.value), h$66("span", { className: "wb-selectChevron" }, h$66(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 14 }))));
1940
1940
  }
1941
1941
  /**
1942
1942
  * 名单还没读到时的触发器:禁用 + `aria-busy` 的按钮,`SelectField` 在 `loading` 那档画它。
@@ -1948,7 +1948,7 @@ function selectTriggerNode(args) {
1948
1948
  * @returns 一颗禁用且 `aria-busy` 的按钮。
1949
1949
  */
1950
1950
  function selectLoadingNode(args) {
1951
- return h$63("button", {
1951
+ return h$66("button", {
1952
1952
  type: "button",
1953
1953
  id: args.id,
1954
1954
  className: `${args.className} wb-selectLoading`,
@@ -1957,7 +1957,7 @@ function selectLoadingNode(args) {
1957
1957
  "aria-invalid": args.invalid || void 0,
1958
1958
  "aria-label": args.ariaLabel,
1959
1959
  title: args.loadingText
1960
- }, h$63("span", { className: "wb-selectValue" }, h$63(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { active: true }, args.loadingText ?? "…")), h$63("span", { className: "wb-selectChevron" }, h$63(Spinner, { size: 14 })));
1960
+ }, h$66("span", { className: "wb-selectValue" }, h$66(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { active: true }, args.loadingText ?? "…")), h$66("span", { className: "wb-selectChevron" }, h$66(Spinner, { size: 14 })));
1961
1961
  }
1962
1962
  //#endregion
1963
1963
  //#region ../shared/dist/components/TextField.js
@@ -1967,7 +1967,7 @@ function selectLoadingNode(args) {
1967
1967
  * @returns 输入框元素;`className` 是追加在基础类名之后,而不是替换它。
1968
1968
  */
1969
1969
  function TextField({ invalid = false, className, ...rest }) {
1970
- return h$63("input", {
1970
+ return h$66("input", {
1971
1971
  ...rest,
1972
1972
  className: className === void 0 ? "wb-textField" : `wb-textField ${className}`,
1973
1973
  "aria-invalid": invalid || void 0
@@ -1990,7 +1990,7 @@ function itemOf(option, revealId) {
1990
1990
  ...option.icon === void 0 ? {} : { icon: option.icon },
1991
1991
  ...option.disabled === true ? { disabled: true } : {}
1992
1992
  };
1993
- const revealed = (node) => h$63("span", {
1993
+ const revealed = (node) => h$66("span", {
1994
1994
  className: "wb-selectReveal",
1995
1995
  "data-wb-select-reveal": ""
1996
1996
  }, node);
@@ -2006,20 +2006,20 @@ function revealNode() {
2006
2006
  return found instanceof HTMLElement ? found : null;
2007
2007
  }
2008
2008
  function useRevealOnOpen(open, revealId) {
2009
- useEffect$28(() => {
2009
+ useEffect$29(() => {
2010
2010
  if (!open || revealId === void 0) return;
2011
2011
  revealNode()?.scrollIntoView({ block: "nearest" });
2012
2012
  }, [open, revealId]);
2013
2013
  }
2014
2014
  function selectValueNode(current, renderValue, placeholder) {
2015
- if (current === void 0) return h$63("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
2015
+ if (current === void 0) return h$66("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
2016
2016
  return renderValue === void 0 ? current.label : renderValue(current);
2017
2017
  }
2018
2018
  function searchNode(args) {
2019
- return h$63("span", {
2019
+ return h$66("span", {
2020
2020
  ref: args.boxRef,
2021
2021
  className: args.className
2022
- }, h$63("span", { className: "wb-selectSearchIcon" }, h$63(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$63(TextField, {
2022
+ }, h$66("span", { className: "wb-selectSearchIcon" }, h$66(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$66(TextField, {
2023
2023
  id: args.id,
2024
2024
  name: args.name,
2025
2025
  className: "wb-selectSearchInput",
@@ -2034,7 +2034,7 @@ function searchNode(args) {
2034
2034
  }));
2035
2035
  }
2036
2036
  function menuNode(args) {
2037
- return h$63(_deepseek_ai_dsh_client_ui_primitives.Menu, {
2037
+ return h$66(_deepseek_ai_dsh_client_ui_primitives.Menu, {
2038
2038
  open: args.open,
2039
2039
  portal: true,
2040
2040
  className: "wb-selectAnchor",
@@ -2051,11 +2051,11 @@ function menuNode(args) {
2051
2051
  });
2052
2052
  }
2053
2053
  function framed(label, hint, className, control) {
2054
- const inner = label === void 0 ? hint === void 0 ? control : h$63("span", { className: "wb-select" }, control, h$63("span", { className: "wb-selectHint" }, hint)) : h$63(Field, {
2054
+ const inner = label === void 0 ? hint === void 0 ? control : h$66("span", { className: "wb-select" }, control, h$66("span", { className: "wb-selectHint" }, hint)) : h$66(Field, {
2055
2055
  label,
2056
2056
  hint
2057
2057
  }, control);
2058
- return className === void 0 ? inner : h$63("div", { className }, inner);
2058
+ return className === void 0 ? inner : h$66("div", { className }, inner);
2059
2059
  }
2060
2060
  /** 算候选项用来匹配搜索的文本:有 `searchText` 就用它,否则取字符串标签;标签不是字符串又没给它是空串(这项搜不到)。 */
2061
2061
  function searchTextOf(option) {
@@ -2107,24 +2107,24 @@ function selectEntries(shown, emptyText, revealId) {
2107
2107
  }
2108
2108
  function useSelectState(props) {
2109
2109
  const { options, filter = defaultSelectFilter, emptyText, open: openProp, onOpenChange } = props;
2110
- const [openState, setOpenState] = useState$35(false);
2111
- const [query, setQuery] = useState$35("");
2112
- const [cursor, setCursor] = useState$35(null);
2113
- const boxRef = useRef$22(null);
2114
- const triggerRef = useRef$22(null);
2115
- const wasOpenRef = useRef$22(false);
2116
- const pickedRef = useRef$22(false);
2117
- const closedByUsRef = useRef$22(false);
2110
+ const [openState, setOpenState] = useState$37(false);
2111
+ const [query, setQuery] = useState$37("");
2112
+ const [cursor, setCursor] = useState$37(null);
2113
+ const boxRef = useRef$23(null);
2114
+ const triggerRef = useRef$23(null);
2115
+ const wasOpenRef = useRef$23(false);
2116
+ const pickedRef = useRef$23(false);
2117
+ const closedByUsRef = useRef$23(false);
2118
2118
  const open = openProp ?? openState;
2119
2119
  const setOpen = (next) => {
2120
2120
  if (openProp === void 0) setOpenState(next);
2121
2121
  onOpenChange?.(next);
2122
2122
  };
2123
- useEffect$28(() => {
2123
+ useEffect$29(() => {
2124
2124
  if (!open || props.search === false) return;
2125
2125
  boxRef.current?.querySelector("input")?.focus();
2126
2126
  }, [open, props.search]);
2127
- useEffect$28(() => {
2127
+ useEffect$29(() => {
2128
2128
  if (open) {
2129
2129
  wasOpenRef.current = true;
2130
2130
  return;
@@ -2138,7 +2138,7 @@ function useSelectState(props) {
2138
2138
  if (!closedByUs || picked) return;
2139
2139
  triggerRef.current?.focus();
2140
2140
  }, [open]);
2141
- const shown = useMemo$9(() => filterSelectOptions(options, query, filter), [
2141
+ const shown = useMemo$10(() => filterSelectOptions(options, query, filter), [
2142
2142
  options,
2143
2143
  query,
2144
2144
  filter
@@ -2194,7 +2194,7 @@ function SelectField(props) {
2194
2194
  ariaLabel,
2195
2195
  loadingText
2196
2196
  }));
2197
- if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$63(TextField, {
2197
+ if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$66(TextField, {
2198
2198
  id,
2199
2199
  name,
2200
2200
  className: "wb-selectFallback",
@@ -2277,11 +2277,11 @@ function SelectField(props) {
2277
2277
  * @returns 一个 `role="group"` 的 section。
2278
2278
  */
2279
2279
  function SettingsSection({ label, title, action, children }) {
2280
- return h$63("section", {
2280
+ return h$66("section", {
2281
2281
  className: "wb-settings",
2282
2282
  role: "group",
2283
2283
  "aria-label": label
2284
- }, h$63("header", { className: "wb-settingsHead" }, h$63("span", { className: "wb-settingsTitle" }, title), action), children);
2284
+ }, h$66("header", { className: "wb-settingsHead" }, h$66("span", { className: "wb-settingsTitle" }, title), action), children);
2285
2285
  }
2286
2286
  //#endregion
2287
2287
  //#region ../shared/dist/components/Stack.js
@@ -2291,7 +2291,7 @@ function SettingsSection({ label, title, action, children }) {
2291
2291
  * @returns 竖排的 div。
2292
2292
  */
2293
2293
  function Stack({ children }) {
2294
- return h$63("div", { className: "wb-stack" }, children);
2294
+ return h$66("div", { className: "wb-stack" }, children);
2295
2295
  }
2296
2296
  //#endregion
2297
2297
  //#region ../shared/dist/components/StateBlock.js
@@ -2306,12 +2306,12 @@ function Stack({ children }) {
2306
2306
  * @returns 一个 div。
2307
2307
  */
2308
2308
  function StateBlock({ title, dot, hint, actions, resolving, children }) {
2309
- return h$63("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h$63("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h$63("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h$63("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h$63("div", { className: "wb-stateBlockActions" }, actions));
2309
+ return h$66("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h$66("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h$66("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h$66("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h$66("div", { className: "wb-stateBlockActions" }, actions));
2310
2310
  }
2311
2311
  //#endregion
2312
2312
  //#region ../shared/dist/components/icons.js
2313
2313
  function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
2314
- return h$63("svg", {
2314
+ return h$66("svg", {
2315
2315
  width: size,
2316
2316
  height: size,
2317
2317
  viewBox,
@@ -2328,10 +2328,10 @@ function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
2328
2328
  * @returns 一枚 `aria-hidden` 的 svg。
2329
2329
  */
2330
2330
  function IconConversation({ size = 16 }) {
2331
- return h$63(Shell, {
2331
+ return h$66(Shell, {
2332
2332
  size,
2333
2333
  strokeWidth: 1.3
2334
- }, h$63("path", {
2334
+ }, h$66("path", {
2335
2335
  d: "M2.5 7.2c0-2.3 2.1-4.2 4.8-4.2h1.4c2.7 0 4.8 1.9 4.8 4.2s-2.1 4.2-4.8 4.2H7.5l-3.2 2v-2.3c-1.1-.8-1.8-2-1.8-3.9Z",
2336
2336
  stroke: "currentColor",
2337
2337
  strokeLinejoin: "round"
@@ -2346,30 +2346,30 @@ var BRAND_TAIL_TRANSFORM = "translate(14.6263 10.5853) scale(1.95)";
2346
2346
  * @returns 一枚 `aria-hidden` 的 svg。
2347
2347
  */
2348
2348
  function IconBrandMark({ size = 24 }) {
2349
- return h$63(Shell, {
2349
+ return h$66(Shell, {
2350
2350
  size,
2351
2351
  viewBox: "0 0 64 64"
2352
- }, h$63("path", {
2352
+ }, h$66("path", {
2353
2353
  d: BRAND_FRAME,
2354
2354
  fill: "currentColor",
2355
2355
  fillRule: "evenodd"
2356
- }), h$63("rect", {
2356
+ }), h$66("rect", {
2357
2357
  x: 27.5,
2358
2358
  y: 48,
2359
2359
  width: 9,
2360
2360
  height: 4.75,
2361
2361
  fill: "currentColor"
2362
- }), h$63("rect", {
2362
+ }), h$66("rect", {
2363
2363
  x: 19,
2364
2364
  y: 52.75,
2365
2365
  width: 26,
2366
2366
  height: 4.75,
2367
2367
  rx: 2.375,
2368
2368
  fill: "currentColor"
2369
- }), h$63("g", { transform: BRAND_TAIL_TRANSFORM }, h$63("path", {
2369
+ }), h$66("g", { transform: BRAND_TAIL_TRANSFORM }, h$66("path", {
2370
2370
  d: BRAND_TAIL,
2371
2371
  fill: "currentColor"
2372
- }), h$63("circle", {
2372
+ }), h$66("circle", {
2373
2373
  cx: 6.885,
2374
2374
  cy: 13.742,
2375
2375
  r: 1.95,
@@ -2382,30 +2382,30 @@ function IconBrandMark({ size = 24 }) {
2382
2382
  * @returns 一枚 `aria-hidden` 的 svg。
2383
2383
  */
2384
2384
  function IconOpencli({ size = 16 }) {
2385
- return h$63(Shell, {
2385
+ return h$66(Shell, {
2386
2386
  size,
2387
2387
  viewBox: "0 0 64 64"
2388
- }, h$63("defs", null, h$63("linearGradient", {
2388
+ }, h$66("defs", null, h$66("linearGradient", {
2389
2389
  id: "opencli-mark",
2390
2390
  x1: "0%",
2391
2391
  y1: "0%",
2392
2392
  x2: "100%",
2393
2393
  y2: "100%"
2394
- }, h$63("stop", {
2394
+ }, h$66("stop", {
2395
2395
  offset: "0%",
2396
2396
  stopColor: "#00e5a0"
2397
- }), h$63("stop", {
2397
+ }), h$66("stop", {
2398
2398
  offset: "50%",
2399
2399
  stopColor: "#00b4d8"
2400
- }), h$63("stop", {
2400
+ }), h$66("stop", {
2401
2401
  offset: "100%",
2402
2402
  stopColor: "#7b61ff"
2403
- }))), h$63("rect", {
2403
+ }))), h$66("rect", {
2404
2404
  width: 64,
2405
2405
  height: 64,
2406
2406
  rx: 14,
2407
2407
  fill: "#0a0a0f"
2408
- }), h$63("text", {
2408
+ }), h$66("text", {
2409
2409
  x: "50%",
2410
2410
  y: "54%",
2411
2411
  dominantBaseline: "middle",
@@ -2422,10 +2422,10 @@ function IconOpencli({ size = 16 }) {
2422
2422
  * @returns 一枚 `aria-hidden` 的 svg。
2423
2423
  */
2424
2424
  function IconNpm({ size = 16 }) {
2425
- return h$63(Shell, {
2425
+ return h$66(Shell, {
2426
2426
  size,
2427
2427
  viewBox: "0 0 1024 1024"
2428
- }, h$63("path", {
2428
+ }, h$66("path", {
2429
2429
  d: "M64 337.76h896v298.72H512v49.792H312.896v-49.824H64z m49.792 248.928h99.552v-149.376h49.76v149.344h49.792v-199.104H113.792z m248.896-199.136v248.928h99.552v-49.792h99.552v-199.136z m99.552 49.792H512v99.584h-49.792z m149.344-49.792v199.136h99.552v-149.376h49.792v149.344h49.792v-149.344h49.792v149.344h49.792v-199.104z",
2430
2430
  fill: "#CB3837"
2431
2431
  }));
@@ -2436,37 +2436,37 @@ function IconNpm({ size = 16 }) {
2436
2436
  * @returns 一枚 `aria-hidden` 的 svg。
2437
2437
  */
2438
2438
  function IconModuleMark({ size = 16 }) {
2439
- return h$63(Shell, {
2439
+ return h$66(Shell, {
2440
2440
  size,
2441
2441
  viewBox: "0 0 24 24"
2442
- }, h$63("defs", null, h$63("linearGradient", {
2442
+ }, h$66("defs", null, h$66("linearGradient", {
2443
2443
  id: "workbench-module-mark",
2444
2444
  x1: "0%",
2445
2445
  y1: "0%",
2446
2446
  x2: "100%",
2447
2447
  y2: "100%"
2448
- }, h$63("stop", {
2448
+ }, h$66("stop", {
2449
2449
  offset: "0%",
2450
2450
  stopColor: "#3b82f6"
2451
- }), h$63("stop", {
2451
+ }), h$66("stop", {
2452
2452
  offset: "55%",
2453
2453
  stopColor: "#8b5cf6"
2454
- }), h$63("stop", {
2454
+ }), h$66("stop", {
2455
2455
  offset: "100%",
2456
2456
  stopColor: "#14b8a6"
2457
- }))), h$63("rect", {
2457
+ }))), h$66("rect", {
2458
2458
  width: 24,
2459
2459
  height: 24,
2460
2460
  rx: 7,
2461
2461
  fill: "url(#workbench-module-mark)"
2462
- }), h$63("rect", {
2462
+ }), h$66("rect", {
2463
2463
  x: "4.6",
2464
2464
  y: "4.6",
2465
2465
  width: "6.2",
2466
2466
  height: "6.2",
2467
2467
  rx: "1.9",
2468
2468
  fill: "#ffffff"
2469
- }), h$63("rect", {
2469
+ }), h$66("rect", {
2470
2470
  x: "13.2",
2471
2471
  y: "4.6",
2472
2472
  width: "6.2",
@@ -2474,7 +2474,7 @@ function IconModuleMark({ size = 16 }) {
2474
2474
  rx: "1.9",
2475
2475
  fill: "#ffffff",
2476
2476
  fillOpacity: .78
2477
- }), h$63("rect", {
2477
+ }), h$66("rect", {
2478
2478
  x: "4.6",
2479
2479
  y: "13.2",
2480
2480
  width: "6.2",
@@ -2482,7 +2482,7 @@ function IconModuleMark({ size = 16 }) {
2482
2482
  rx: "1.9",
2483
2483
  fill: "#ffffff",
2484
2484
  fillOpacity: .78
2485
- }), h$63("rect", {
2485
+ }), h$66("rect", {
2486
2486
  x: "13.2",
2487
2487
  y: "13.2",
2488
2488
  width: "6.2",
@@ -2497,7 +2497,7 @@ function IconModuleMark({ size = 16 }) {
2497
2497
  * @returns 一枚 `aria-hidden` 的 svg。
2498
2498
  */
2499
2499
  function IconPanelScreen({ size = 16 }) {
2500
- return h$63("svg", {
2500
+ return h$66("svg", {
2501
2501
  width: size,
2502
2502
  height: size,
2503
2503
  viewBox: "0 0 1024 1024",
@@ -2508,7 +2508,7 @@ function IconPanelScreen({ size = 16 }) {
2508
2508
  display: "block",
2509
2509
  overflow: "hidden"
2510
2510
  }
2511
- }, h$63("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" }));
2511
+ }, h$66("path", { d: "M939 112c17.673 0 32 14.327 32 32v554.667c0 17.673-14.327 32-32 32l-394.5-0.001v96c0 3.74-0.642 7.331-1.82 10.668H768.4c17.673 0 32 14.326 32 32 0 17.496-14.042 31.712-31.47 31.995l-0.53 0.004H256.6c-17.673 0-32-14.327-32-32 0-17.496 14.042-31.713 31.47-31.995l0.53-0.005h225.721a31.923 31.923 0 0 1-1.817-10.137l-0.004-0.53v-96H86c-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V144c0-17.673 14.327-32 32-32z m-32 64H118v490.666h789V176zM341.9 432c17.496 0 31.713 14.042 31.996 31.47l0.004 0.53v85.333c0 17.673-14.327 32-32 32-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V464c0-17.673 14.327-32 32-32z m170.6-85.333c17.496 0 31.713 14.041 31.996 31.47l0.004 0.53v170.666c0 17.673-14.327 32-32 32-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V378.667c0-17.673 14.327-32 32-32z m170.6-85.334c17.496 0 31.713 14.042 31.996 31.471l0.004 0.53v256c0 17.672-14.327 32-32 32-17.496 0-31.713-14.042-31.996-31.471l-0.004-0.53v-256c0-17.673 14.327-32 32-32z" }));
2512
2512
  }
2513
2513
  //#endregion
2514
2514
  //#region ../shared/dist/config/storage.js
@@ -3198,6 +3198,7 @@ var en = {
3198
3198
  "panels.market.add.failurePnpmMissing": "pnpm was not found, cannot install",
3199
3199
  "panels.market.add.failureInstalled": "It is already installed in this workbench. The same package cannot be installed over itself: uninstall it first, then install again. The uninstall did not succeed this time.",
3200
3200
  "panels.market.add.failureGeneric": "Something went wrong during install — see the install details",
3201
+ "panels.market.add.failureCredentials": "This repository needs credentials: this machine has none for it. Clone it once in a terminal, set up a credential helper, or install from the SSH address.",
3201
3202
  "panels.market.add.approveTitle": "Your approval is needed for install scripts",
3202
3203
  "panels.market.add.approveCaution": "Only allow packages you trust: install scripts run on this machine with your permissions.",
3203
3204
  "panels.market.add.approveRun": "Allow and continue installing",
@@ -3239,10 +3240,16 @@ var en = {
3239
3240
  "panels.discover.addingSource": "Adding…",
3240
3241
  "panels.discover.addFirstSource": "Add index source",
3241
3242
  "panels.discover.removeSource": "Remove",
3242
- "panels.discover.removeSourceNamed": "Remove {url}",
3243
- "panels.discover.useSource": "Use",
3244
- "panels.discover.useSourceNamed": "Use {label}",
3245
- "panels.discover.sourceCurrent": "In use",
3243
+ "panels.discover.removeTitle": "Remove this index source?",
3244
+ "panels.discover.removeBody": "\"{label}\" will be removed from this list; the repository itself is not deleted, and you can add it back later.",
3245
+ "panels.discover.sourceActions": "Actions for {label}",
3246
+ "panels.discover.sourceStateWritable": "Publish target",
3247
+ "panels.discover.sourceStateReadOnly": "Read-only list",
3248
+ "panels.discover.sourceEnable": "Set up for publishing",
3249
+ "panels.discover.sourceDisable": "Set to read-only",
3250
+ "panels.discover.sourceWorking": "Updating…",
3251
+ "panels.discover.sourceEnabled": "\"{label}\" is ready for publishing",
3252
+ "panels.discover.sourceReadOnly": "\"{label}\" is now read-only",
3246
3253
  "panels.discover.refresh": "Refresh",
3247
3254
  "panels.discover.search": "Search modules",
3248
3255
  "panels.discover.clearSearch": "Clear search",
@@ -3264,12 +3271,13 @@ var en = {
3264
3271
  "panels.discover.noSourceHint": "Add a module market index (http address or git repository) to browse and install its modules here",
3265
3272
  "panels.discover.sourcesFailed": "Could not read the index sources.",
3266
3273
  "panels.discover.unreadable": "Could not read this index.",
3274
+ "panels.discover.sourceAuth": "This index source could not be read: this machine has no git credentials for it. Set up credentials (or switch the source to its SSH address), then refresh.",
3267
3275
  "panels.discover.invalid": "This index is not in a valid format.",
3268
3276
  "panels.discover.emptyRepo": "This repository has no commits yet.",
3269
3277
  "panels.discover.missingIndex": "This repository has no {path} yet.",
3270
3278
  "panels.discover.initTitle": "Initialize this repository as a module market index?",
3271
3279
  "panels.discover.initCta": "Initialize market index",
3272
- "panels.discover.initWhat": "It will write market.json and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under packages/<unit>/. The repository stays owned by its owner.",
3280
+ "panels.discover.initWhat": "It will write market.json and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under packages/<package-name>/. The repository stays owned by its owner.",
3273
3281
  "panels.discover.initBranch": "Branch",
3274
3282
  "panels.discover.initBranchHint": "The index and build files go to this branch; an empty repository gets it created.",
3275
3283
  "panels.discover.initBranchBad": "Use only letters, digits, dots, underscores, slashes, or dashes in a branch name.",
@@ -3287,8 +3295,23 @@ var en = {
3287
3295
  "panels.discover.badShellDetail": "This version is not compatible with the running workbench {current}; it requires {peer}",
3288
3296
  "panels.discover.unverified": "Workbench unverified",
3289
3297
  "panels.discover.installing": "Installing…",
3298
+ "panels.discover.installingNamed": "Installing {name}…",
3299
+ "panels.discover.cancelInstall": "Cancel install",
3300
+ "panels.discover.cancelling": "Cancelling…",
3301
+ "panels.discover.installCancelled": "Install cancelled: {name}",
3290
3302
  "panels.discover.installedDone": "Installed: {name}",
3291
3303
  "panels.discover.failed": "Failed: {reason}",
3304
+ "panels.discover.transportTitle": "Where to read this repository",
3305
+ "panels.discover.transportSsh": "SSH",
3306
+ "panels.discover.transportHttps": "HTTPS",
3307
+ "panels.discover.transportOk": "Readable",
3308
+ "panels.discover.transportAuth": "Needs credentials",
3309
+ "panels.discover.transportUnreachable": "Unreachable",
3310
+ "panels.discover.transportUnknown": "Not probed",
3311
+ "panels.discover.transportChecking": "Checking…",
3312
+ "panels.discover.transportTest": "Test this address",
3313
+ "panels.discover.transportPlaceholder": "Or paste another address (mirror, alias)",
3314
+ "panels.discover.transportNeedsAuth": "This repository needs credentials: clone it once in a terminal, or set up an SSH key / credential helper, then install again.",
3292
3315
  "panels.discover.expand": "Show versions",
3293
3316
  "panels.discover.collapse": "Hide versions",
3294
3317
  "panels.discover.versionCount": "{n} versions",
@@ -3579,6 +3602,13 @@ var en = {
3579
3602
  "approval.publish.version": "Version",
3580
3603
  "approval.publish.author": "Author",
3581
3604
  "approval.publish.authorMissing": "unsigned",
3605
+ "approval.publish.owner": "Owner",
3606
+ "approval.publish.ownerUnowned": "originally unattributed",
3607
+ "approval.publish.ownerTaken": "Owned by {owner}",
3608
+ "approval.publish.unit": "Module id",
3609
+ "approval.publish.unitTaken": "Taken by {entry}",
3610
+ "approval.publish.path": "Artifact dir",
3611
+ "approval.publish.pathTaken": "Taken by {entry}",
3582
3612
  "approval.publish.registry": "Registry",
3583
3613
  "approval.publish.repo": "Repository",
3584
3614
  "approval.publish.branch": "Branch",
@@ -3589,6 +3619,7 @@ var en = {
3589
3619
  "approval.publish.twoCommits": "build files + market.json in 2 commits, one push",
3590
3620
  "approval.publish.reading": "Reading…",
3591
3621
  "approval.publish.changelog": "Changelog for {version}",
3622
+ "approval.publish.changelogPending": "This release writes the {version} changelog entry",
3592
3623
  "approval.publish.changelogMissing": "No changelog entry for {version}; publishing will be blocked",
3593
3624
  "approval.publish.targetAuto": "configured default",
3594
3625
  "approval.publish.targetTeam": "team registry",
@@ -3597,6 +3628,15 @@ var en = {
3597
3628
  "approval.publish.targetGit": "git repository",
3598
3629
  "approval.publish.targetMarket": "module market index",
3599
3630
  "approval.publish.targetLocal": "keep local",
3631
+ "approval.market.source": "Index source",
3632
+ "approval.market.url": "URL",
3633
+ "approval.market.action": "This action",
3634
+ "approval.market.policy": "Current state",
3635
+ "approval.market.enable": "make it publishable",
3636
+ "approval.market.disable": "make it read-only",
3637
+ "approval.market.writable": "publishable",
3638
+ "approval.market.readOnly": "read-only module list",
3639
+ "approval.market.reading": "Reading…",
3600
3640
  "markdown.copy": "Copy",
3601
3641
  "markdown.copied": "Copied",
3602
3642
  "markdown.footnotes": "Footnotes",
@@ -3853,6 +3893,7 @@ var dictionaries = {
3853
3893
  "panels.market.add.failurePnpmMissing": "没有找到 pnpm,无法安装",
3854
3894
  "panels.market.add.failureInstalled": "它已经装在这份工作台里了。同一个包不能就地覆盖,得先卸载再装;这次卸载也没成功。",
3855
3895
  "panels.market.add.failureGeneric": "安装过程中出错,原因见安装详情",
3896
+ "panels.market.add.failureCredentials": "这个仓库要凭证:本机没有它的 git 凭据。先在终端里 clone 一次、配好凭据助手,或改用 SSH 地址,再装一次。",
3856
3897
  "panels.market.add.approveTitle": "需要你允许安装脚本",
3857
3898
  "panels.market.add.approveCaution": "只允许你信得过的包:安装脚本会以你的权限在这台机器上运行。",
3858
3899
  "panels.market.add.approveRun": "允许并继续安装",
@@ -3894,10 +3935,16 @@ var dictionaries = {
3894
3935
  "panels.discover.addingSource": "正在添加…",
3895
3936
  "panels.discover.addFirstSource": "添加索引源",
3896
3937
  "panels.discover.removeSource": "移除",
3897
- "panels.discover.removeSourceNamed": "移除 {url}",
3898
- "panels.discover.useSource": "使用",
3899
- "panels.discover.useSourceNamed": "使用 {label}",
3900
- "panels.discover.sourceCurrent": "当前使用",
3938
+ "panels.discover.removeTitle": "移除这个索引源?",
3939
+ "panels.discover.removeBody": "会把「{label}」从这份列表里移除;仓库本身不会被删,之后还能再添加。",
3940
+ "panels.discover.sourceActions": "「{label}」的操作",
3941
+ "panels.discover.sourceStateWritable": "可发布",
3942
+ "panels.discover.sourceStateReadOnly": "仅读取模块列表",
3943
+ "panels.discover.sourceEnable": "设为可发布",
3944
+ "panels.discover.sourceDisable": "设为只读",
3945
+ "panels.discover.sourceWorking": "设置中…",
3946
+ "panels.discover.sourceEnabled": "已把「{label}」设为可发布",
3947
+ "panels.discover.sourceReadOnly": "已把「{label}」设为只读",
3901
3948
  "panels.discover.refresh": "刷新",
3902
3949
  "panels.discover.search": "搜索模块",
3903
3950
  "panels.discover.clearSearch": "清除搜索",
@@ -3919,12 +3966,13 @@ var dictionaries = {
3919
3966
  "panels.discover.noSourceHint": "添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块",
3920
3967
  "panels.discover.sourcesFailed": "无法读取索引源",
3921
3968
  "panels.discover.unreadable": "无法读取此索引",
3969
+ "panels.discover.sourceAuth": "这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。",
3922
3970
  "panels.discover.invalid": "此索引的格式无效",
3923
3971
  "panels.discover.emptyRepo": "这个仓库还没有任何提交",
3924
3972
  "panels.discover.missingIndex": "仓库里还没有索引文件 {path}",
3925
3973
  "panels.discover.initTitle": "把这个仓库初始化成模块市场索引?",
3926
3974
  "panels.discover.initCta": "初始化成市场索引",
3927
- "panels.discover.initWhat": "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 packages/<unit>/。仓库的写权限归它的所有者。",
3975
+ "panels.discover.initWhat": "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到按包名分的 packages/<包名>/。仓库的写权限归它的所有者。",
3928
3976
  "panels.discover.initBranch": "分支",
3929
3977
  "panels.discover.initBranchHint": "索引和打包文件都发到这个分支;空仓库会新建它。",
3930
3978
  "panels.discover.initBranchBad": "分支名只能用字母、数字、点、下划线、斜杠或短横线",
@@ -3942,8 +3990,23 @@ var dictionaries = {
3942
3990
  "panels.discover.badShellDetail": "此版本与当前的工作台 {current} 不兼容,它要求 {peer}",
3943
3991
  "panels.discover.unverified": "工作台未验证",
3944
3992
  "panels.discover.installing": "正在安装…",
3993
+ "panels.discover.installingNamed": "正在安装「{name}」…",
3994
+ "panels.discover.cancelInstall": "取消安装",
3995
+ "panels.discover.cancelling": "正在取消…",
3996
+ "panels.discover.installCancelled": "已取消安装:{name}",
3945
3997
  "panels.discover.installedDone": "装好了:{name}",
3946
3998
  "panels.discover.failed": "操作失败:{reason}",
3999
+ "panels.discover.transportTitle": "从哪读这个仓库",
4000
+ "panels.discover.transportSsh": "SSH",
4001
+ "panels.discover.transportHttps": "HTTPS",
4002
+ "panels.discover.transportOk": "能读",
4003
+ "panels.discover.transportAuth": "要凭证",
4004
+ "panels.discover.transportUnreachable": "连不上",
4005
+ "panels.discover.transportUnknown": "没探成",
4006
+ "panels.discover.transportChecking": "正在探测…",
4007
+ "panels.discover.transportTest": "试这个地址",
4008
+ "panels.discover.transportPlaceholder": "或贴一个别的地址(公司镜像、别名)",
4009
+ "panels.discover.transportNeedsAuth": "这个仓库要凭证:先在终端里把它 clone 一次,或配好 SSH key / 凭据助手;配好后再点安装。",
3947
4010
  "panels.discover.expand": "展开版本",
3948
4011
  "panels.discover.collapse": "收起版本",
3949
4012
  "panels.discover.versionCount": "{n} 个版本",
@@ -4234,6 +4297,13 @@ var dictionaries = {
4234
4297
  "approval.publish.version": "版本",
4235
4298
  "approval.publish.author": "作者",
4236
4299
  "approval.publish.authorMissing": "未署名",
4300
+ "approval.publish.owner": "认领人",
4301
+ "approval.publish.ownerUnowned": "原来没署名",
4302
+ "approval.publish.ownerTaken": "已有主人:{owner}",
4303
+ "approval.publish.unit": "模块 id",
4304
+ "approval.publish.unitTaken": "已被 {entry} 占用",
4305
+ "approval.publish.path": "产物目录",
4306
+ "approval.publish.pathTaken": "已被 {entry} 占用",
4237
4307
  "approval.publish.registry": "源",
4238
4308
  "approval.publish.repo": "仓库",
4239
4309
  "approval.publish.branch": "分支",
@@ -4244,6 +4314,7 @@ var dictionaries = {
4244
4314
  "approval.publish.twoCommits": "打包文件 + market.json 两次提交,一次推送",
4245
4315
  "approval.publish.reading": "读取中…",
4246
4316
  "approval.publish.changelog": "{version} 的更新日志",
4317
+ "approval.publish.changelogPending": "{version} 这一版会写进更新日志,随包发布",
4247
4318
  "approval.publish.changelogMissing": "这一版还没有更新日志({version}),发布会被拦下",
4248
4319
  "approval.publish.targetAuto": "按配置默认",
4249
4320
  "approval.publish.targetTeam": "团队源",
@@ -4252,6 +4323,15 @@ var dictionaries = {
4252
4323
  "approval.publish.targetGit": "git 仓库",
4253
4324
  "approval.publish.targetMarket": "模块市场索引",
4254
4325
  "approval.publish.targetLocal": "留在本机",
4326
+ "approval.market.source": "索引源",
4327
+ "approval.market.url": "地址",
4328
+ "approval.market.action": "这次操作",
4329
+ "approval.market.policy": "当前状态",
4330
+ "approval.market.enable": "设为可发布",
4331
+ "approval.market.disable": "改回只读",
4332
+ "approval.market.writable": "可发布",
4333
+ "approval.market.readOnly": "仅读取模块列表",
4334
+ "approval.market.reading": "正在读取…",
4255
4335
  "markdown.copy": "复制",
4256
4336
  "markdown.copied": "已复制",
4257
4337
  "markdown.footnotes": "脚注",
@@ -4342,6 +4422,99 @@ function marketInstallTarget(name, version, source) {
4342
4422
  return { spec: path === "" ? base : `${base}&path:/${path}` };
4343
4423
  }
4344
4424
  //#endregion
4425
+ //#region ../shared/dist/lib/git-address.js
4426
+ var SCP = /^(?:([A-Za-z0-9._-]+)@)?([A-Za-z0-9.-]+):(?!\/)(\S+)$/;
4427
+ function bare(url) {
4428
+ return url.trim().replace(/^git\+/, "");
4429
+ }
4430
+ function pathOf(pathname) {
4431
+ return pathname.replace(/^\/+/, "").replace(/\/+$/, "");
4432
+ }
4433
+ /**
4434
+ * 把一个 git 地址拆成「哪台主机 + 哪个路径」,不管发布者当初用的是 https、ssh 还是
4435
+ * scp 那种 `git@host:path` 写法;认不出来给 undefined。
4436
+ */
4437
+ function gitAddressOf(url) {
4438
+ const text = bare(url);
4439
+ if (text === "") return void 0;
4440
+ if (text.includes("://")) {
4441
+ let parsed;
4442
+ try {
4443
+ parsed = new URL(text);
4444
+ } catch {
4445
+ return;
4446
+ }
4447
+ if (parsed.protocol !== "https:" && parsed.protocol !== "http:" && parsed.protocol !== "ssh:") return;
4448
+ const path = pathOf(parsed.pathname);
4449
+ if (path === "") return void 0;
4450
+ const port = parsed.port === "" ? void 0 : Number(parsed.port);
4451
+ const shared = {
4452
+ host: parsed.hostname,
4453
+ path,
4454
+ ...port === void 0 ? {} : { port }
4455
+ };
4456
+ if (parsed.protocol !== "ssh:") return {
4457
+ kind: "https",
4458
+ ...shared
4459
+ };
4460
+ return {
4461
+ kind: "ssh",
4462
+ ...shared,
4463
+ ...parsed.username === "" ? {} : { user: parsed.username }
4464
+ };
4465
+ }
4466
+ const scp = SCP.exec(text);
4467
+ if (scp === null) return void 0;
4468
+ const path = pathOf(scp[3] ?? "");
4469
+ if (path === "") return void 0;
4470
+ return {
4471
+ kind: "ssh",
4472
+ host: scp[2] ?? "",
4473
+ path,
4474
+ ...scp[1] === void 0 ? {} : { user: scp[1] }
4475
+ };
4476
+ }
4477
+ /** 一份地址的规范写法:ssh 一律成 `ssh://user@host/path`(pnpm 认这个),https 原样。 */
4478
+ function gitAddressText(address) {
4479
+ const port = address.port === void 0 ? "" : `:${String(address.port)}`;
4480
+ if (address.kind === "ssh") return `ssh://${address.user === void 0 || address.user === "" ? "git" : address.user}@${address.host}${port}/${address.path}`;
4481
+ return `https://${address.host}${port}/${address.path}`;
4482
+ }
4483
+ /**
4484
+ * 同一个仓库的两种读法,发布者用的那种排前面。ssh 那条一律规范成 `ssh://` 形式,
4485
+ * 因为 `git@host:path` 拼进安装 spec 时 pnpm 不认;https 那条保留发布者的原样(含 http)。
4486
+ */
4487
+ function gitTransportCandidates(url) {
4488
+ const address = gitAddressOf(url);
4489
+ if (address === void 0) {
4490
+ const only = bare(url);
4491
+ return only === "" ? [] : [{
4492
+ kind: only.startsWith("ssh") ? "ssh" : "https",
4493
+ url: only
4494
+ }];
4495
+ }
4496
+ const primary = {
4497
+ kind: address.kind,
4498
+ url: address.kind === "ssh" ? gitAddressText(address) : bare(url)
4499
+ };
4500
+ const other = address.kind === "https" ? {
4501
+ kind: "ssh",
4502
+ url: gitAddressText({
4503
+ kind: "ssh",
4504
+ host: address.host,
4505
+ path: address.path
4506
+ })
4507
+ } : {
4508
+ kind: "https",
4509
+ url: gitAddressText({
4510
+ kind: "https",
4511
+ host: address.host,
4512
+ path: address.path
4513
+ })
4514
+ };
4515
+ return other.url === primary.url ? [primary] : [primary, other];
4516
+ }
4517
+ //#endregion
4345
4518
  //#region ../shared/dist/lib/board-fact.js
4346
4519
  /**
4347
4520
  * 判一个路径落不落在这个工作区里(按路径前缀比,不是字符串包含)。
@@ -4619,6 +4792,7 @@ function markNextProbeSilent() {
4619
4792
  silentNextProbe = true;
4620
4793
  }
4621
4794
  var probe$1 = NO_PROBE;
4795
+ var probing = 0;
4622
4796
  var probeListeners = /* @__PURE__ */ new Set();
4623
4797
  function probeValue() {
4624
4798
  return probe$1;
@@ -4652,8 +4826,10 @@ function subscribeCapabilities(listener) {
4652
4826
  };
4653
4827
  }
4654
4828
  function setCapabilities(next, rechecked = false) {
4655
- if (next === null) setProbe(NO_PROBE);
4656
- else if (rechecked) setProbe({
4829
+ if (next === null) {
4830
+ probing = 0;
4831
+ setProbe(NO_PROBE);
4832
+ } else if (rechecked) setProbe({
4657
4833
  ...probe$1,
4658
4834
  checkedAt: Date.now()
4659
4835
  });
@@ -4662,13 +4838,17 @@ function setCapabilities(next, rechecked = false) {
4662
4838
  for (const listener of [...listeners$7]) listener();
4663
4839
  }
4664
4840
  function beginProbe() {
4665
- if (probe$1.checking) return;
4841
+ probing += 1;
4842
+ if (probing > 1) return;
4666
4843
  setProbe({
4667
4844
  ...probe$1,
4668
4845
  checking: true
4669
4846
  });
4670
4847
  }
4671
4848
  function endProbe() {
4849
+ if (probing === 0) return;
4850
+ probing -= 1;
4851
+ if (probing > 0) return;
4672
4852
  setProbe({
4673
4853
  ...probe$1,
4674
4854
  checking: false
@@ -4708,13 +4888,14 @@ function runCapabilityRead(options) {
4708
4888
  const at = epoch$1;
4709
4889
  const seq = readSeq$1 += 1;
4710
4890
  if (force) newestForceSeq$1 = seq;
4711
- if (force && !silent) beginProbe();
4891
+ const shown = force && !silent;
4892
+ if (shown) beginProbe();
4712
4893
  return shareCapabilityFetch(force, load).then((result) => {
4713
4894
  if (at !== epoch$1) return;
4714
4895
  if (!force && seq < newestForceSeq$1) return;
4715
4896
  publishCapability(result, force);
4716
4897
  }).finally(() => {
4717
- if (force) endProbe();
4898
+ if (shown) endProbe();
4718
4899
  });
4719
4900
  }
4720
4901
  function useCapabilities(refreshToken, reloadToken = 0) {
@@ -5712,121 +5893,138 @@ function useMarketTransient(input) {
5712
5893
  };
5713
5894
  }
5714
5895
  var MarketPage_module_default = {
5715
- marketList: "_marketList_1idrk_1",
5716
- marketRow: "_marketRow_1idrk_10",
5717
- marketIcon: "_marketIcon_1idrk_20",
5718
- marketMain: "_marketMain_1idrk_32",
5719
- marketName: "_marketName_1idrk_39",
5720
- marketStatus: "_marketStatus_1idrk_48",
5721
- marketStateText: "_marketStateText_1idrk_58",
5722
- marketSep: "_marketSep_1idrk_62",
5723
- marketReason: "_marketReason_1idrk_66",
5724
- marketVersion: "_marketVersion_1idrk_72",
5725
- marketLocalTag: "_marketLocalTag_1idrk_94",
5726
- marketEnd: "_marketEnd_1idrk_105",
5727
- marketSwitchSeat: "_marketSwitchSeat_1idrk_112",
5728
- marketActions: "_marketActions_1idrk_125",
5729
- marketUpdateAction: "_marketUpdateAction_1idrk_131",
5730
- marketSelfDivider: "_marketSelfDivider_1idrk_137",
5731
- marketSection: "_marketSection_1idrk_143",
5732
- marketSectionHead: "_marketSectionHead_1idrk_150",
5733
- marketSectionIcon: "_marketSectionIcon_1idrk_156",
5734
- marketSectionTitle: "_marketSectionTitle_1idrk_163",
5735
- marketSectionCount: "_marketSectionCount_1idrk_169",
5736
- marketSectionQuiet: "_marketSectionQuiet_1idrk_175",
5737
- marketProgress: "_marketProgress_1idrk_188",
5738
- marketNote: "_marketNote_1idrk_198",
5739
- marketFailure: "_marketFailure_1idrk_205",
5740
- marketEmpty: "_marketEmpty_1idrk_212",
5741
- marketPage: "_marketPage_1idrk_217",
5742
- marketPageHead: "_marketPageHead_1idrk_235",
5743
- marketPageTitle: "_marketPageTitle_1idrk_243",
5744
- marketPageIntro: "_marketPageIntro_1idrk_248",
5745
- marketPageTools: "_marketPageTools_1idrk_254",
5746
- marketPanel: "_marketPanel_1idrk_263",
5747
- marketTabs: "_marketTabs_1idrk_273",
5748
- marketTabList: "_marketTabList_1idrk_278",
5749
- marketIconButton: "_marketIconButton_1idrk_283",
5750
- marketIconWrap: "_marketIconWrap_1idrk_308",
5751
- marketIconButtonSpinning: "_marketIconButtonSpinning_1idrk_312",
5752
- "wb-spin": "_wb-spin_1idrk_1",
5753
- marketAddButton: "_marketAddButton_1idrk_316",
5754
- marketEmptyTitle: "_marketEmptyTitle_1idrk_333",
5755
- discoverPage: "_discoverPage_1idrk_347",
5756
- discoverBar: "_discoverBar_1idrk_354",
5757
- discoverTools: "_discoverTools_1idrk_361",
5758
- discoverMarket: "_discoverMarket_1idrk_367",
5759
- discoverMarketButton: "_discoverMarketButton_1idrk_372",
5760
- discoverMarketName: "_discoverMarketName_1idrk_379",
5761
- discoverLabels: "_discoverLabels_1idrk_385",
5762
- discoverSort: "_discoverSort_1idrk_390",
5763
- discoverRefresh: "_discoverRefresh_1idrk_395",
5764
- discoverSearch: "_discoverSearch_1idrk_399",
5765
- discoverSearchField: "_discoverSearchField_1idrk_407",
5766
- discoverSearchFieldFilled: "_discoverSearchFieldFilled_1idrk_412",
5767
- discoverSearchClear: "_discoverSearchClear_1idrk_421",
5768
- discoverChips: "_discoverChips_1idrk_472",
5769
- discoverList: "_discoverList_1idrk_479",
5770
- discoverCard: "_discoverCard_1idrk_488",
5771
- discoverArtwork: "_discoverArtwork_1idrk_502",
5772
- discoverArtworkImage: "_discoverArtworkImage_1idrk_514",
5773
- discoverMain: "_discoverMain_1idrk_518",
5774
- discoverTitleRow: "_discoverTitleRow_1idrk_526",
5775
- discoverCardOpen: "_discoverCardOpen_1idrk_534",
5776
- discoverStrong: "_discoverStrong_1idrk_565",
5777
- discoverDesc: "_discoverDesc_1idrk_571",
5778
- discoverMeta: "_discoverMeta_1idrk_580",
5779
- discoverMuted: "_discoverMuted_1idrk_587",
5780
- discoverEnd: "_discoverEnd_1idrk_593",
5781
- discoverBlocked: "_discoverBlocked_1idrk_602",
5782
- discoverEmpty: "_discoverEmpty_1idrk_607",
5783
- discoverEmptyTitle: "_discoverEmptyTitle_1idrk_616",
5784
- discoverDetail: "_discoverDetail_1idrk_626",
5785
- discoverCrumb: "_discoverCrumb_1idrk_632",
5786
- discoverCrumbIcon: "_discoverCrumbIcon_1idrk_655",
5787
- discoverDetailHead: "_discoverDetailHead_1idrk_659",
5788
- discoverDetailTitle: "_discoverDetailTitle_1idrk_665",
5789
- discoverDetailText: "_discoverDetailText_1idrk_671",
5790
- discoverDetailPanel: "_discoverDetailPanel_1idrk_678",
5791
- discoverDetailTabs: "_discoverDetailTabs_1idrk_685",
5792
- discoverDetailTabList: "_discoverDetailTabList_1idrk_690",
5793
- discoverDocBody: "_discoverDocBody_1idrk_695",
5794
- discoverDocNotice: "_discoverDocNotice_1idrk_700",
5795
- discoverSection: "_discoverSection_1idrk_706",
5796
- discoverSectionTitle: "_discoverSectionTitle_1idrk_713",
5797
- discoverFacts: "_discoverFacts_1idrk_719",
5798
- discoverFactRow: "_discoverFactRow_1idrk_724",
5799
- discoverFactKind: "_discoverFactKind_1idrk_734",
5800
- discoverFactValue: "_discoverFactValue_1idrk_740",
5801
- discoverCode: "_discoverCode_1idrk_748",
5802
- discoverTags: "_discoverTags_1idrk_757",
5803
- discoverLink: "_discoverLink_1idrk_764",
5804
- discoverVersions: "_discoverVersions_1idrk_774",
5805
- discoverVersionRow: "_discoverVersionRow_1idrk_782",
5806
- discoverVersionName: "_discoverVersionName_1idrk_790",
5807
- discoverError: "_discoverError_1idrk_795",
5808
- discoverFailure: "_discoverFailure_1idrk_804",
5809
- discoverLoading: "_discoverLoading_1idrk_810",
5810
- discoverNotice: "_discoverNotice_1idrk_819",
5811
- discoverMore: "_discoverMore_1idrk_837",
5812
- discoverDialog: "_discoverDialog_1idrk_841",
5813
- discoverDialogBody: "_discoverDialogBody_1idrk_845",
5814
- discoverSourceList: "_discoverSourceList_1idrk_851",
5815
- discoverSourceRow: "_discoverSourceRow_1idrk_859",
5816
- discoverSourceCurrent: "_discoverSourceCurrent_1idrk_868",
5817
- discoverSourceLoading: "_discoverSourceLoading_1idrk_875",
5818
- discoverSourceHint: "_discoverSourceHint_1idrk_885",
5819
- discoverSourceError: "_discoverSourceError_1idrk_899",
5820
- discoverSourceForm: "_discoverSourceForm_1idrk_905",
5821
- discoverGrow: "_discoverGrow_1idrk_911",
5822
- discoverField: "_discoverField_1idrk_916",
5823
- discoverFieldLabel: "_discoverFieldLabel_1idrk_922",
5824
- discoverConfirmHead: "_discoverConfirmHead_1idrk_927",
5825
- discoverSkeletonFill: "_discoverSkeletonFill_1idrk_933",
5826
- "wb-skeleton": "_wb-skeleton_1idrk_1",
5827
- discoverSkeletonBar: "_discoverSkeletonBar_1idrk_942",
5828
- discoverSkeletonTitle: "_discoverSkeletonTitle_1idrk_949",
5829
- discoverSkeletonDesc: "_discoverSkeletonDesc_1idrk_953"
5896
+ marketList: "_marketList_jfyof_1",
5897
+ marketRow: "_marketRow_jfyof_10",
5898
+ marketIcon: "_marketIcon_jfyof_20",
5899
+ marketMain: "_marketMain_jfyof_32",
5900
+ marketName: "_marketName_jfyof_39",
5901
+ marketStatus: "_marketStatus_jfyof_48",
5902
+ marketStateText: "_marketStateText_jfyof_58",
5903
+ marketSep: "_marketSep_jfyof_62",
5904
+ marketReason: "_marketReason_jfyof_66",
5905
+ marketVersion: "_marketVersion_jfyof_72",
5906
+ marketLocalTag: "_marketLocalTag_jfyof_94",
5907
+ marketEnd: "_marketEnd_jfyof_105",
5908
+ marketSwitchSeat: "_marketSwitchSeat_jfyof_112",
5909
+ marketActions: "_marketActions_jfyof_125",
5910
+ marketUpdateAction: "_marketUpdateAction_jfyof_131",
5911
+ marketSelfDivider: "_marketSelfDivider_jfyof_137",
5912
+ marketSection: "_marketSection_jfyof_143",
5913
+ marketSectionHead: "_marketSectionHead_jfyof_150",
5914
+ marketSectionIcon: "_marketSectionIcon_jfyof_156",
5915
+ marketSectionTitle: "_marketSectionTitle_jfyof_163",
5916
+ marketSectionCount: "_marketSectionCount_jfyof_169",
5917
+ marketSectionQuiet: "_marketSectionQuiet_jfyof_175",
5918
+ marketProgress: "_marketProgress_jfyof_188",
5919
+ marketNote: "_marketNote_jfyof_198",
5920
+ marketFailure: "_marketFailure_jfyof_205",
5921
+ marketEmpty: "_marketEmpty_jfyof_212",
5922
+ marketPage: "_marketPage_jfyof_217",
5923
+ marketPageHead: "_marketPageHead_jfyof_235",
5924
+ marketPageTitle: "_marketPageTitle_jfyof_243",
5925
+ marketPageIntro: "_marketPageIntro_jfyof_248",
5926
+ marketPageTools: "_marketPageTools_jfyof_254",
5927
+ marketPanel: "_marketPanel_jfyof_263",
5928
+ marketTabs: "_marketTabs_jfyof_273",
5929
+ marketTabList: "_marketTabList_jfyof_278",
5930
+ marketIconButton: "_marketIconButton_jfyof_283",
5931
+ marketIconWrap: "_marketIconWrap_jfyof_308",
5932
+ marketIconButtonSpinning: "_marketIconButtonSpinning_jfyof_312",
5933
+ "wb-spin": "_wb-spin_jfyof_1",
5934
+ marketAddButton: "_marketAddButton_jfyof_316",
5935
+ marketEmptyTitle: "_marketEmptyTitle_jfyof_333",
5936
+ discoverPage: "_discoverPage_jfyof_347",
5937
+ discoverBar: "_discoverBar_jfyof_354",
5938
+ discoverTools: "_discoverTools_jfyof_361",
5939
+ discoverMarket: "_discoverMarket_jfyof_367",
5940
+ discoverMarketButton: "_discoverMarketButton_jfyof_372",
5941
+ discoverMarketName: "_discoverMarketName_jfyof_379",
5942
+ discoverLabels: "_discoverLabels_jfyof_385",
5943
+ discoverSort: "_discoverSort_jfyof_390",
5944
+ discoverRefresh: "_discoverRefresh_jfyof_395",
5945
+ discoverSearch: "_discoverSearch_jfyof_399",
5946
+ discoverSearchField: "_discoverSearchField_jfyof_407",
5947
+ discoverSearchFieldFilled: "_discoverSearchFieldFilled_jfyof_412",
5948
+ discoverSearchClear: "_discoverSearchClear_jfyof_421",
5949
+ discoverChips: "_discoverChips_jfyof_472",
5950
+ discoverList: "_discoverList_jfyof_479",
5951
+ discoverCard: "_discoverCard_jfyof_488",
5952
+ discoverArtwork: "_discoverArtwork_jfyof_502",
5953
+ discoverArtworkImage: "_discoverArtworkImage_jfyof_514",
5954
+ discoverMain: "_discoverMain_jfyof_518",
5955
+ discoverTitleRow: "_discoverTitleRow_jfyof_526",
5956
+ discoverCardOpen: "_discoverCardOpen_jfyof_534",
5957
+ discoverStrong: "_discoverStrong_jfyof_565",
5958
+ discoverDesc: "_discoverDesc_jfyof_571",
5959
+ discoverMeta: "_discoverMeta_jfyof_580",
5960
+ discoverMuted: "_discoverMuted_jfyof_587",
5961
+ discoverEnd: "_discoverEnd_jfyof_593",
5962
+ discoverBlocked: "_discoverBlocked_jfyof_602",
5963
+ discoverEmpty: "_discoverEmpty_jfyof_607",
5964
+ discoverEmptyTitle: "_discoverEmptyTitle_jfyof_616",
5965
+ discoverDetail: "_discoverDetail_jfyof_626",
5966
+ discoverCrumb: "_discoverCrumb_jfyof_632",
5967
+ discoverCrumbIcon: "_discoverCrumbIcon_jfyof_655",
5968
+ discoverDetailHead: "_discoverDetailHead_jfyof_659",
5969
+ discoverDetailTitle: "_discoverDetailTitle_jfyof_665",
5970
+ discoverDetailText: "_discoverDetailText_jfyof_671",
5971
+ discoverDetailPanel: "_discoverDetailPanel_jfyof_678",
5972
+ discoverDetailTabs: "_discoverDetailTabs_jfyof_685",
5973
+ discoverDetailTabList: "_discoverDetailTabList_jfyof_690",
5974
+ discoverDocBody: "_discoverDocBody_jfyof_695",
5975
+ discoverDocNotice: "_discoverDocNotice_jfyof_700",
5976
+ discoverSection: "_discoverSection_jfyof_706",
5977
+ discoverSectionTitle: "_discoverSectionTitle_jfyof_713",
5978
+ discoverFacts: "_discoverFacts_jfyof_719",
5979
+ discoverFactRow: "_discoverFactRow_jfyof_724",
5980
+ discoverFactKind: "_discoverFactKind_jfyof_734",
5981
+ discoverFactValue: "_discoverFactValue_jfyof_740",
5982
+ discoverCode: "_discoverCode_jfyof_748",
5983
+ discoverTags: "_discoverTags_jfyof_757",
5984
+ discoverLink: "_discoverLink_jfyof_764",
5985
+ discoverVersions: "_discoverVersions_jfyof_774",
5986
+ discoverVersionRow: "_discoverVersionRow_jfyof_782",
5987
+ discoverVersionName: "_discoverVersionName_jfyof_790",
5988
+ discoverError: "_discoverError_jfyof_795",
5989
+ discoverFailure: "_discoverFailure_jfyof_804",
5990
+ discoverLoading: "_discoverLoading_jfyof_810",
5991
+ discoverNotice: "_discoverNotice_jfyof_819",
5992
+ discoverMore: "_discoverMore_jfyof_837",
5993
+ discoverTransport: "_discoverTransport_jfyof_841",
5994
+ discoverTransportTitle: "_discoverTransportTitle_jfyof_847",
5995
+ discoverTransportRows: "_discoverTransportRows_jfyof_852",
5996
+ discoverTransportRow: "_discoverTransportRow_jfyof_852",
5997
+ discoverTransportRadio: "_discoverTransportRadio_jfyof_873",
5998
+ discoverTransportKind: "_discoverTransportKind_jfyof_887",
5999
+ discoverTransportState: "_discoverTransportState_jfyof_893",
6000
+ discoverTransportCustom: "_discoverTransportCustom_jfyof_913",
6001
+ discoverTransportInput: "_discoverTransportInput_jfyof_919",
6002
+ discoverInstallBar: "_discoverInstallBar_jfyof_924",
6003
+ discoverInstallText: "_discoverInstallText_jfyof_935",
6004
+ discoverDialog: "_discoverDialog_jfyof_941",
6005
+ discoverDialogBody: "_discoverDialogBody_jfyof_945",
6006
+ discoverSourceList: "_discoverSourceList_jfyof_951",
6007
+ discoverSourceRow: "_discoverSourceRow_jfyof_959",
6008
+ discoverSourceConfirm: "_discoverSourceConfirm_jfyof_968",
6009
+ discoverSourcePick: "_discoverSourcePick_jfyof_974",
6010
+ discoverSourceRadio: "_discoverSourceRadio_jfyof_983",
6011
+ discoverSourceMain: "_discoverSourceMain_jfyof_991",
6012
+ discoverSourceHead: "_discoverSourceHead_jfyof_999",
6013
+ discoverSourceUrl: "_discoverSourceUrl_jfyof_1007",
6014
+ discoverSourceMore: "_discoverSourceMore_jfyof_1017",
6015
+ discoverSourceLoading: "_discoverSourceLoading_jfyof_1021",
6016
+ discoverSourceHint: "_discoverSourceHint_jfyof_1031",
6017
+ discoverSourceError: "_discoverSourceError_jfyof_1045",
6018
+ discoverSourceForm: "_discoverSourceForm_jfyof_1051",
6019
+ discoverGrow: "_discoverGrow_jfyof_1057",
6020
+ discoverField: "_discoverField_jfyof_1062",
6021
+ discoverFieldLabel: "_discoverFieldLabel_jfyof_1068",
6022
+ discoverConfirmHead: "_discoverConfirmHead_jfyof_1073",
6023
+ discoverSkeletonFill: "_discoverSkeletonFill_jfyof_1079",
6024
+ "wb-skeleton": "_wb-skeleton_jfyof_1",
6025
+ discoverSkeletonBar: "_discoverSkeletonBar_jfyof_1088",
6026
+ discoverSkeletonTitle: "_discoverSkeletonTitle_jfyof_1095",
6027
+ discoverSkeletonDesc: "_discoverSkeletonDesc_jfyof_1099"
5830
6028
  };
5831
6029
  //#endregion
5832
6030
  //#region src/app/layouts/market/discover-states.tsx
@@ -5885,6 +6083,19 @@ function DiscoverNoSource({ t, onAdd }) {
5885
6083
  onClick: onAdd
5886
6084
  }, t("panels.discover.addFirstSource")));
5887
6085
  }
6086
+ function DiscoverReadFailure({ t, text, auth, onRetry }) {
6087
+ return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(DiscoverFailure, {
6088
+ t,
6089
+ text,
6090
+ onRetry
6091
+ }), auth ? /* @__PURE__ */ (0, react.createElement)("p", {
6092
+ className: MarketPage_module_default.discoverNotice,
6093
+ role: "note"
6094
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
6095
+ size: 14,
6096
+ "aria-hidden": "true"
6097
+ }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.discover.sourceAuth"))) : null);
6098
+ }
5888
6099
  //#endregion
5889
6100
  //#region src/app/layouts/rightbar/MarketStates.tsx
5890
6101
  function MarketChecking({ t }) {
@@ -6454,7 +6665,9 @@ function problemKey(problem) {
6454
6665
  function heldWizardPhase(phase, classifying) {
6455
6666
  return classifying && (phase === "preview" || phase === "idle") ? "inspecting" : phase;
6456
6667
  }
6668
+ var CREDENTIAL_TEXT = /authentication failed|could not read (username|password)|permission denied \(publickey\)|terminal prompts disabled|host key verification failed|repository not found|no such identity/i;
6457
6669
  var FAILURE_KEYS = {
6670
+ credentials: "panels.market.add.failureCredentials",
6458
6671
  network: "panels.market.add.failureNetwork",
6459
6672
  "spec-host": "panels.market.add.failureNetworkHost",
6460
6673
  "not-found": "panels.market.add.failureNotFound",
@@ -6476,9 +6689,15 @@ var FAILURE_KEYS = {
6476
6689
  "stop-profile": "panels.market.add.failureGeneric",
6477
6690
  "stale-approval": "panels.market.add.failureGeneric"
6478
6691
  };
6692
+ function needsCredentials(change) {
6693
+ const text = `${change.errorDetail ?? ""}\n${change.packageResult?.output ?? ""}`;
6694
+ return CREDENTIAL_TEXT.test(text);
6695
+ }
6479
6696
  function failureCode(change) {
6480
6697
  if (change.failedAt === "spec-host") return "spec-host";
6481
- return change.errorCode ?? change.packageResult?.kind ?? change.application;
6698
+ const code = change.errorCode ?? change.packageResult?.kind ?? change.application;
6699
+ if (code === "operation-error" && needsCredentials(change)) return "credentials";
6700
+ return code;
6482
6701
  }
6483
6702
  function failureReasonKey(code) {
6484
6703
  return FAILURE_KEYS[code];
@@ -7139,6 +7358,9 @@ function sourceFromUrl(raw) {
7139
7358
  function sameSourceUrl(left, right) {
7140
7359
  return withoutTrailingSlash(left.trim()) === withoutTrailingSlash(right.trim());
7141
7360
  }
7361
+ function sourceStateOf(source) {
7362
+ return source.kind === "git" && source.policy === "artifacts-in-repo" ? "writable" : "read-only";
7363
+ }
7142
7364
  function sourceSuffix(url) {
7143
7365
  return (withoutTrailingSlash(url).split(/[/:]/).filter((part) => part !== "").pop() ?? "").replace(/\.git$/, "");
7144
7366
  }
@@ -7181,7 +7403,7 @@ function MarketIcon({ src, size = ICON }) {
7181
7403
  onError: () => setFailed(src)
7182
7404
  });
7183
7405
  }
7184
- function EntryAction({ t, entry, title, onInstall, onShowInstalled }) {
7406
+ function EntryAction({ t, entry, title, onInstall, onShowInstalled, installDisabled = false }) {
7185
7407
  const latest = latestVersionOf(entry);
7186
7408
  if (latest === void 0) return null;
7187
7409
  if (latest.install === "installed" || latest.install === "update-available") return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
@@ -7208,11 +7430,12 @@ function EntryAction({ t, entry, title, onInstall, onShowInstalled }) {
7208
7430
  type: "button",
7209
7431
  variant: "outline",
7210
7432
  size: "sm",
7433
+ disabled: installDisabled,
7211
7434
  "aria-label": t("panels.discover.installTitle", { name: title }),
7212
7435
  onClick: () => onInstall(entry, latest)
7213
7436
  }, t("panels.discover.cardInstall"));
7214
7437
  }
7215
- function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled }) {
7438
+ function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled, installDisabled = false }) {
7216
7439
  const title = displayTitleOf(entry, locale);
7217
7440
  const latest = latestVersionOf(entry);
7218
7441
  const description = marketText(entry.description, locale);
@@ -7237,10 +7460,11 @@ function EntryCard({ t, locale, entry, onOpen, onInstall, onShowInstalled }) {
7237
7460
  entry,
7238
7461
  title,
7239
7462
  onInstall,
7240
- onShowInstalled
7463
+ onShowInstalled,
7464
+ installDisabled
7241
7465
  })));
7242
7466
  }
7243
- function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled }) {
7467
+ function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled, installDisabled }) {
7244
7468
  return /* @__PURE__ */ (0, react.createElement)("ul", { className: MarketPage_module_default.discoverList }, entries.map((entry) => /* @__PURE__ */ (0, react.createElement)(EntryCard, {
7245
7469
  key: entry.name,
7246
7470
  t,
@@ -7248,12 +7472,13 @@ function DiscoverRows({ t, locale, entries, onOpen, onInstall, onShowInstalled }
7248
7472
  entry,
7249
7473
  onOpen,
7250
7474
  onInstall,
7251
- onShowInstalled
7475
+ onShowInstalled,
7476
+ installDisabled: installDisabled === true
7252
7477
  })));
7253
7478
  }
7254
7479
  //#endregion
7255
7480
  //#region src/app/layouts/market/discover-versions.tsx
7256
- function DiscoverVersions({ t, locale, entry, onInstall }) {
7481
+ function DiscoverVersions({ t, locale, entry, onInstall, installDisabled = false }) {
7257
7482
  const latest = latestVersionOf(entry);
7258
7483
  return /* @__PURE__ */ (0, react.createElement)("ul", {
7259
7484
  className: MarketPage_module_default.discoverVersions,
@@ -7274,6 +7499,7 @@ function DiscoverVersions({ t, locale, entry, onInstall }) {
7274
7499
  type: "button",
7275
7500
  variant: "ghost",
7276
7501
  size: "sm",
7502
+ disabled: installDisabled,
7277
7503
  "aria-label": t("panels.discover.installVersionTitle", {
7278
7504
  name: entry.name,
7279
7505
  version: version.version
@@ -7286,6 +7512,7 @@ function DiscoverVersions({ t, locale, entry, onInstall }) {
7286
7512
  //#region ../shared/dist/contract/protocol/market-index.js
7287
7513
  var MARKET_DISCOVER_ROUTE = "panels/market-discover";
7288
7514
  var MARKET_DOC_ROUTE = "panels/market-doc";
7515
+ var MARKET_GIT_PROBE_ROUTE = "panels/git-probe";
7289
7516
  var MARKET_PUBLISH_PREVIEW_ROUTE = "panels/market-publish-preview";
7290
7517
  var MARKET_SOURCES_ROUTE = "panels/market-sources";
7291
7518
  //#endregion
@@ -7296,6 +7523,9 @@ function readMarketDiscover(options = {}) {
7296
7523
  function readMarketSources() {
7297
7524
  return apiGet(MARKET_SOURCES_ROUTE);
7298
7525
  }
7526
+ function readGitProbe(url) {
7527
+ return apiGet(MARKET_GIT_PROBE_ROUTE, { url });
7528
+ }
7299
7529
  function readMarketDoc(name, version, kind) {
7300
7530
  return apiGet(MARKET_DOC_ROUTE, {
7301
7531
  name,
@@ -7303,11 +7533,13 @@ function readMarketDoc(name, version, kind) {
7303
7533
  kind
7304
7534
  });
7305
7535
  }
7306
- function readPublishPreview(unit, version, author) {
7536
+ function readPublishPreview(unit, version, author, changelog, changelogType) {
7307
7537
  return apiGet(MARKET_PUBLISH_PREVIEW_ROUTE, {
7308
7538
  unit,
7309
7539
  ...version === void 0 || version === "" ? {} : { version },
7310
- ...author === void 0 || author === "" ? {} : { author }
7540
+ ...author === void 0 || author === "" ? {} : { author },
7541
+ ...changelog === void 0 || changelog.trim() === "" ? {} : { changelog },
7542
+ ...changelogType === void 0 || changelogType === "" ? {} : { changelogType }
7311
7543
  });
7312
7544
  }
7313
7545
  //#endregion
@@ -7360,13 +7592,13 @@ function DiscoverDocPanel({ t, name, version, kind }) {
7360
7592
  }
7361
7593
  //#endregion
7362
7594
  //#region src/app/layouts/market/discover-detail.tsx
7363
- function factLabel(t, fact) {
7595
+ function factLabel$1(t, fact) {
7364
7596
  return t(fact.kind === "package" ? "panels.discover.factPackage" : fact.kind === "registry" ? "panels.discover.factRegistry" : fact.kind === "repository" ? "panels.discover.factRepository" : fact.kind === "commit" ? "panels.discover.factCommit" : "panels.discover.factDirectory");
7365
7597
  }
7366
7598
  function FactRow({ kind, children }) {
7367
7599
  return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverFactRow }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactKind }, kind), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactValue }, children));
7368
7600
  }
7369
- function OverviewPanel({ t, locale, entry, latest, market, onInstall }) {
7601
+ function OverviewPanel({ t, locale, entry, latest, market, onInstall, installDisabled }) {
7370
7602
  const description = marketText(entry.description, locale);
7371
7603
  const date = publishDateText(latest?.publishTimestamp, locale, "long");
7372
7604
  const facts = latest === void 0 ? [] : sourceFactsOf(entry.name, latest);
@@ -7386,12 +7618,13 @@ function OverviewPanel({ t, locale, entry, latest, market, onInstall }) {
7386
7618
  rel: "noopener noreferrer"
7387
7619
  }, entry.homepage)), facts.map((fact) => /* @__PURE__ */ (0, react.createElement)(FactRow, {
7388
7620
  key: `${fact.kind}:${fact.value}`,
7389
- kind: factLabel(t, fact)
7621
+ kind: factLabel$1(t, fact)
7390
7622
  }, /* @__PURE__ */ (0, react.createElement)("code", { className: MarketPage_module_default.discoverCode }, fact.value))), latest === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(FactRow, { kind: t("panels.discover.factPublished") }, date), entry.category === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(FactRow, { kind: t("panels.discover.factCategory") }, entry.category), entry.labels.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)(FactRow, { kind: t("panels.discover.factLabels") }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTags }, entry.labels.map((label) => /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tag, { key: label }, label)))), /* @__PURE__ */ (0, react.createElement)(FactRow, { kind: t("panels.discover.factMarket") }, market))), latest === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("section", { className: MarketPage_module_default.discoverSection }, /* @__PURE__ */ (0, react.createElement)("h4", { className: MarketPage_module_default.discoverSectionTitle }, t("panels.discover.detailVersions")), /* @__PURE__ */ (0, react.createElement)(DiscoverVersions, {
7391
7623
  t,
7392
7624
  locale,
7393
7625
  entry,
7394
- onInstall
7626
+ onInstall,
7627
+ installDisabled: installDisabled === true
7395
7628
  })));
7396
7629
  }
7397
7630
  function DiscoverDetail(props) {
@@ -7438,7 +7671,8 @@ function DiscoverDetail(props) {
7438
7671
  entry,
7439
7672
  title,
7440
7673
  onInstall: props.onInstall,
7441
- onShowInstalled: props.onShowInstalled
7674
+ onShowInstalled: props.onShowInstalled,
7675
+ installDisabled: props.installDisabled === true
7442
7676
  })), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverDetailTabs }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.SegmentedTabs, {
7443
7677
  className: MarketPage_module_default.discoverDetailTabList,
7444
7678
  items: tabItems,
@@ -7456,7 +7690,8 @@ function DiscoverDetail(props) {
7456
7690
  entry,
7457
7691
  latest,
7458
7692
  market: props.market,
7459
- onInstall: props.onInstall
7693
+ onInstall: props.onInstall,
7694
+ installDisabled: props.installDisabled === true
7460
7695
  })) : null, tab === "overview" || latest === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", {
7461
7696
  className: MarketPage_module_default.discoverDetailPanel,
7462
7697
  id: `${idPrefix}-panel-${tab}`,
@@ -7471,12 +7706,164 @@ function DiscoverDetail(props) {
7471
7706
  })));
7472
7707
  }
7473
7708
  //#endregion
7709
+ //#region src/app/layouts/market/discover-installing.tsx
7710
+ function DiscoverInstalling({ t, name, cancelling, onCancel }) {
7711
+ return /* @__PURE__ */ (0, react.createElement)("p", {
7712
+ className: MarketPage_module_default.discoverInstallBar,
7713
+ role: "status"
7714
+ }, /* @__PURE__ */ (0, react.createElement)(Spinner, { size: 14 }), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverInstallText }, t("panels.discover.installingNamed", { name })), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
7715
+ type: "button",
7716
+ variant: "outline",
7717
+ size: "sm",
7718
+ disabled: cancelling,
7719
+ "aria-busy": cancelling,
7720
+ onClick: onCancel
7721
+ }, t(cancelling ? "panels.discover.cancelling" : "panels.discover.cancelInstall")));
7722
+ }
7723
+ //#endregion
7724
+ //#region src/app/layouts/market/discover-transport.tsx
7725
+ function stateText(t, state) {
7726
+ if (state === "ok") return "";
7727
+ if (state === "auth") return t("panels.discover.transportAuth");
7728
+ if (state === "unreachable") return t("panels.discover.transportUnreachable");
7729
+ if (state === "unknown") return t("panels.discover.transportUnknown");
7730
+ return t("panels.discover.transportChecking");
7731
+ }
7732
+ function DiscoverTransport({ t, transport }) {
7733
+ const needsAuth = transport.rows.length > 0 && transport.rows.every((row) => transport.states[row.url] === "auth") && transport.customState !== "ok";
7734
+ const customBusy = transport.customState === "checking";
7735
+ return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverTransport }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportTitle }, t("panels.discover.transportTitle")), /* @__PURE__ */ (0, react.createElement)("div", {
7736
+ className: MarketPage_module_default.discoverTransportRows,
7737
+ role: "radiogroup",
7738
+ "aria-label": t("panels.discover.transportTitle")
7739
+ }, transport.rows.map((row) => {
7740
+ const state = transport.states[row.url] ?? "checking";
7741
+ const label = stateText(t, state);
7742
+ return /* @__PURE__ */ (0, react.createElement)("label", {
7743
+ key: row.url,
7744
+ className: MarketPage_module_default.discoverTransportRow,
7745
+ "data-state": state,
7746
+ title: row.url
7747
+ }, /* @__PURE__ */ (0, react.createElement)("input", {
7748
+ type: "radio",
7749
+ className: MarketPage_module_default.discoverTransportRadio,
7750
+ name: "discover-git-transport",
7751
+ value: row.url,
7752
+ checked: transport.chosen === row.url,
7753
+ onChange: () => transport.setChosen(row.url)
7754
+ }), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportKind }, t(row.kind === "ssh" ? "panels.discover.transportSsh" : "panels.discover.transportHttps")), label === "" ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportState }, label));
7755
+ })), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverTransportCustom }, /* @__PURE__ */ (0, react.createElement)(TextField, {
7756
+ type: "text",
7757
+ className: MarketPage_module_default.discoverTransportInput,
7758
+ value: transport.custom,
7759
+ placeholder: t("panels.discover.transportPlaceholder"),
7760
+ "aria-label": t("panels.discover.transportPlaceholder"),
7761
+ spellCheck: false,
7762
+ autoComplete: "off",
7763
+ onChange: (event) => transport.setCustom(event.target.value),
7764
+ onKeyDown: (event) => {
7765
+ if (event.key === "Enter") transport.checkCustom();
7766
+ }
7767
+ }), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
7768
+ type: "button",
7769
+ variant: "outline",
7770
+ size: "sm",
7771
+ disabled: transport.custom.trim() === "" || customBusy,
7772
+ "aria-busy": customBusy,
7773
+ onClick: transport.checkCustom
7774
+ }, t(customBusy ? "panels.discover.transportChecking" : "panels.discover.transportTest")), transport.customState === null || stateText(t, transport.customState) === "" ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverTransportState }, stateText(t, transport.customState))), needsAuth ? /* @__PURE__ */ (0, react.createElement)("p", {
7775
+ className: MarketPage_module_default.discoverNotice,
7776
+ role: "note"
7777
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
7778
+ size: 14,
7779
+ "aria-hidden": "true"
7780
+ }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.discover.transportNeedsAuth"))) : null);
7781
+ }
7782
+ //#endregion
7783
+ //#region src/app/layouts/market/use-git-transport.ts
7784
+ function probeOrUnknown(url) {
7785
+ return readGitProbe(url).then((response) => response.ok ? response.status : "unknown").catch(() => "unknown");
7786
+ }
7787
+ function usable(state) {
7788
+ return state !== void 0 && state !== "auth" && state !== "checking";
7789
+ }
7790
+ function defaultOf(rows, states) {
7791
+ const readable = rows.find((row) => states[row.url] === "ok");
7792
+ if (readable !== void 0) return readable.url;
7793
+ const fallback = rows.find((row) => usable(states[row.url]));
7794
+ return fallback === void 0 ? null : fallback.url;
7795
+ }
7796
+ function useGitTransport(source) {
7797
+ const rows = (0, react.useMemo)(() => source === null ? [] : gitTransportCandidates(source.url), [source]);
7798
+ const [results, setResults] = (0, react.useState)({});
7799
+ const [picked, setPicked] = (0, react.useState)(null);
7800
+ const [custom, setCustom] = (0, react.useState)("");
7801
+ const [customState, setCustomState] = (0, react.useState)(null);
7802
+ const generation = (0, react.useRef)(0);
7803
+ (0, react.useEffect)(() => {
7804
+ const mirror = ++generation.current;
7805
+ for (const row of rows) probeOrUnknown(row.url).then((state) => {
7806
+ if (generation.current !== mirror) return;
7807
+ setResults((current) => ({
7808
+ ...current,
7809
+ [row.url]: state
7810
+ }));
7811
+ });
7812
+ return () => {
7813
+ generation.current += 1;
7814
+ };
7815
+ }, [rows]);
7816
+ const checkCustom = (0, react.useCallback)(() => {
7817
+ const wanted = custom.trim();
7818
+ if (wanted === "") return;
7819
+ const mirror = ++generation.current;
7820
+ setCustomState("checking");
7821
+ probeOrUnknown(wanted).then((state) => {
7822
+ if (generation.current !== mirror) return;
7823
+ setCustomState(state);
7824
+ if (usable(state)) setPicked(wanted);
7825
+ });
7826
+ }, [custom]);
7827
+ const states = (0, react.useMemo)(() => {
7828
+ const next = {};
7829
+ for (const row of rows) next[row.url] = results[row.url] ?? "checking";
7830
+ return next;
7831
+ }, [results, rows]);
7832
+ const chosen = picked !== null && (rows.some((row) => row.url === picked) || picked === custom.trim()) ? picked : defaultOf(rows, states);
7833
+ return {
7834
+ rows,
7835
+ chosen,
7836
+ states,
7837
+ custom,
7838
+ customState,
7839
+ probing: rows.some((row) => states[row.url] === "checking"),
7840
+ ready: chosen !== null,
7841
+ setChosen: setPicked,
7842
+ setCustom,
7843
+ checkCustom
7844
+ };
7845
+ }
7846
+ //#endregion
7474
7847
  //#region src/app/layouts/market/discover-confirm.tsx
7475
7848
  function DiscoverConfirm({ t, locale, choice, onCancel, onConfirm }) {
7476
7849
  if (choice === null) return null;
7850
+ return /* @__PURE__ */ (0, react.createElement)(DiscoverConfirmBody, {
7851
+ t,
7852
+ locale,
7853
+ choice,
7854
+ onCancel,
7855
+ onConfirm
7856
+ });
7857
+ }
7858
+ function factLabel(t, kind) {
7859
+ return t(kind === "package" ? "panels.discover.factPackage" : kind === "registry" ? "panels.discover.factRegistry" : kind === "repository" ? "panels.discover.factRepository" : kind === "commit" ? "panels.discover.factCommit" : "panels.discover.factDirectory");
7860
+ }
7861
+ function DiscoverConfirmBody({ t, locale, choice, onCancel, onConfirm }) {
7862
+ const git = choice.version.source.type === "git" ? choice.version.source : null;
7863
+ const transport = useGitTransport(git);
7477
7864
  const title = displayTitleOf(choice.entry, locale) || choice.entry.name;
7478
- const facts = sourceFactsOf(choice.entry.name, choice.version);
7479
- const factLabel = (kind) => t(kind === "package" ? "panels.discover.factPackage" : kind === "registry" ? "panels.discover.factRegistry" : kind === "repository" ? "panels.discover.factRepository" : kind === "commit" ? "panels.discover.factCommit" : "panels.discover.factDirectory");
7865
+ const facts = sourceFactsOf(choice.entry.name, choice.version).filter((fact) => git === null || fact.kind !== "repository");
7866
+ const ready = git === null || transport.ready;
7480
7867
  return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
7481
7868
  open: true,
7482
7869
  onClose: onCancel,
@@ -7491,15 +7878,20 @@ function DiscoverConfirm({ t, locale, choice, onCancel, onConfirm }) {
7491
7878
  type: "button",
7492
7879
  variant: "primary",
7493
7880
  autoFocus: true,
7494
- onClick: onConfirm
7881
+ disabled: !ready,
7882
+ "aria-busy": git !== null && transport.probing,
7883
+ onClick: () => onConfirm(transport.chosen ?? void 0)
7495
7884
  }, t("panels.discover.cardInstall")))
7496
7885
  }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverDialogBody }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverConfirmHead }, /* @__PURE__ */ (0, react.createElement)("span", {
7497
7886
  className: MarketPage_module_default.discoverArtwork,
7498
7887
  "aria-hidden": "true"
7499
- }, /* @__PURE__ */ (0, react.createElement)(MarketIcon, { src: choice.entry.icon })), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverMain }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverStrong }, title), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverMeta }, choice.version.version))), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverFacts }, choice.entry.author === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverFactRow }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactKind }, t("panels.discover.factAuthor")), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactValue }, choice.entry.author)), facts.map((fact) => /* @__PURE__ */ (0, react.createElement)("div", {
7888
+ }, /* @__PURE__ */ (0, react.createElement)(MarketIcon, { src: choice.entry.icon })), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverMain }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverStrong }, title), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverMeta }, choice.version.version))), git === null ? null : /* @__PURE__ */ (0, react.createElement)(DiscoverTransport, {
7889
+ t,
7890
+ transport
7891
+ }), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverFacts }, choice.entry.author === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverFactRow }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactKind }, t("panels.discover.factAuthor")), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactValue }, choice.entry.author)), facts.map((fact) => /* @__PURE__ */ (0, react.createElement)("div", {
7500
7892
  key: `${fact.kind}:${fact.value}`,
7501
7893
  className: MarketPage_module_default.discoverFactRow
7502
- }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactKind }, factLabel(fact.kind)), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactValue }, /* @__PURE__ */ (0, react.createElement)("code", { className: MarketPage_module_default.discoverCode }, fact.value))))), /* @__PURE__ */ (0, react.createElement)("p", {
7894
+ }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactKind }, factLabel(t, fact.kind)), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverFactValue }, /* @__PURE__ */ (0, react.createElement)("code", { className: MarketPage_module_default.discoverCode }, fact.value))))), /* @__PURE__ */ (0, react.createElement)("p", {
7503
7895
  className: MarketPage_module_default.discoverNotice,
7504
7896
  role: "note"
7505
7897
  }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
@@ -7555,12 +7947,104 @@ function DiscoverInitDialog(props) {
7555
7947
  }, t("panels.discover.initBranchBad")) : null));
7556
7948
  }
7557
7949
  //#endregion
7950
+ //#region src/app/layouts/market/discover-source-item.tsx
7951
+ function stateTextOf(source, t) {
7952
+ return sourceStateOf(source) === "writable" ? t("panels.discover.sourceStateWritable") : t("panels.discover.sourceStateReadOnly");
7953
+ }
7954
+ function DiscoverSourceItem(props) {
7955
+ const { t, source } = props;
7956
+ const [menuOpen, setMenuOpen] = (0, react.useState)(false);
7957
+ const menu = [];
7958
+ if (props.enable) menu.push({
7959
+ id: "enable",
7960
+ label: t("panels.discover.sourceEnable"),
7961
+ disabled: props.pending
7962
+ });
7963
+ if (props.disable) menu.push({
7964
+ id: "read-only",
7965
+ label: t("panels.discover.sourceDisable"),
7966
+ disabled: props.pending
7967
+ });
7968
+ if (menu.length > 0) menu.push({
7969
+ type: "separator",
7970
+ id: "separator"
7971
+ });
7972
+ menu.push({
7973
+ id: "remove",
7974
+ label: t("panels.discover.removeSource"),
7975
+ icon: /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 14 }),
7976
+ danger: true,
7977
+ disabled: props.pending
7978
+ });
7979
+ const choose = (id) => {
7980
+ setMenuOpen(false);
7981
+ if (id === "enable") props.onEnable();
7982
+ else if (id === "read-only") props.onReadOnly();
7983
+ else if (id === "remove") props.onRemove();
7984
+ };
7985
+ return /* @__PURE__ */ (0, react.createElement)("li", { className: MarketPage_module_default.discoverSourceRow }, /* @__PURE__ */ (0, react.createElement)("label", { className: MarketPage_module_default.discoverSourcePick }, /* @__PURE__ */ (0, react.createElement)("input", {
7986
+ type: "radio",
7987
+ name: "market-source",
7988
+ className: MarketPage_module_default.discoverSourceRadio,
7989
+ checked: props.selected,
7990
+ disabled: props.pending,
7991
+ onChange: props.onSelect
7992
+ }), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverSourceMain }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverSourceHead }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverStrong }, source.label), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tag, { tone: sourceStateOf(source) === "writable" ? "success" : "neutral" }, stateTextOf(source, t)), props.selected && props.loading ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverSourceLoading }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "ongoing" }), t("panels.discover.loading")) : null, props.working ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverSourceLoading }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "ongoing" }), t("panels.discover.sourceWorking")) : null), /* @__PURE__ */ (0, react.createElement)("span", {
7993
+ className: MarketPage_module_default.discoverSourceUrl,
7994
+ title: source.url
7995
+ }, source.url), props.problem === null ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverSourceError }, props.problem))), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Menu, {
7996
+ className: MarketPage_module_default.discoverSourceMore,
7997
+ open: menuOpen,
7998
+ onClose: () => setMenuOpen(false),
7999
+ align: "end",
8000
+ portal: true,
8001
+ autoFocus: true,
8002
+ items: menu,
8003
+ onSelect: choose,
8004
+ anchor: /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
8005
+ type: "button",
8006
+ variant: "ghost",
8007
+ size: "sm",
8008
+ icon: /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconEllipsisOutlineRegular, { size: 14 }),
8009
+ "aria-label": t("panels.discover.sourceActions", { label: source.label }),
8010
+ "aria-haspopup": "menu",
8011
+ "aria-expanded": menuOpen,
8012
+ disabled: props.pending,
8013
+ onClick: () => setMenuOpen(!menuOpen)
8014
+ })
8015
+ }), props.selected && props.loading && props.slow ? /* @__PURE__ */ (0, react.createElement)("span", {
8016
+ className: MarketPage_module_default.discoverSourceHint,
8017
+ role: "note"
8018
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
8019
+ size: 12,
8020
+ "aria-hidden": "true"
8021
+ }), t("panels.discover.slowHint")) : null);
8022
+ }
8023
+ function DiscoverSourceConfirm(props) {
8024
+ const { t } = props;
8025
+ return /* @__PURE__ */ (0, react.createElement)("li", { className: MarketPage_module_default.discoverSourceConfirm }, /* @__PURE__ */ (0, react.createElement)(ConfirmBar, {
8026
+ title: t("panels.discover.removeTitle"),
8027
+ hint: t("panels.discover.removeBody", { label: props.label }),
8028
+ actions: [{
8029
+ key: "cancel",
8030
+ label: t("panels.discover.cancel"),
8031
+ onClick: props.onCancel
8032
+ }, {
8033
+ key: "remove",
8034
+ label: t("panels.discover.removeSource"),
8035
+ kind: "danger",
8036
+ onClick: props.onConfirm
8037
+ }]
8038
+ }));
8039
+ }
8040
+ //#endregion
7558
8041
  //#region src/app/layouts/market/discover-sources-dialog.tsx
7559
8042
  function DiscoverSourcesDialog(props) {
7560
8043
  const { t } = props;
7561
8044
  const [url, setUrl] = (0, react.useState)("");
7562
8045
  const [problem, setProblem] = (0, react.useState)(null);
7563
- const pending = props.busy || props.adding;
8046
+ const [removing, setRemoving] = (0, react.useState)(null);
8047
+ const pending = props.busy || props.adding || props.pendingSourceId !== null;
7564
8048
  const selectedVisible = props.sources.some((source) => source.id === props.selected);
7565
8049
  const add = () => {
7566
8050
  if (pending) return;
@@ -7579,7 +8063,12 @@ function DiscoverSourcesDialog(props) {
7579
8063
  };
7580
8064
  return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
7581
8065
  open: props.open,
7582
- onClose: props.onClose,
8066
+ onClose: () => {
8067
+ setUrl("");
8068
+ setProblem(null);
8069
+ setRemoving(null);
8070
+ props.onClose();
8071
+ },
7583
8072
  title: t("panels.discover.sourcesTitle"),
7584
8073
  closeLabel: t("panels.discover.close"),
7585
8074
  description: t("panels.discover.sourcesIntro"),
@@ -7593,39 +8082,30 @@ function DiscoverSourcesDialog(props) {
7593
8082
  }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.discover.slowHint"))) : /* @__PURE__ */ (0, react.createElement)(DiscoverLoading, { label: t("panels.discover.loading") }) : null, props.sources.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("ul", {
7594
8083
  className: MarketPage_module_default.discoverSourceList,
7595
8084
  "aria-label": t("panels.discover.sourcesLabel")
7596
- }, props.sources.map((source) => /* @__PURE__ */ (0, react.createElement)("li", {
7597
- key: source.id,
7598
- className: MarketPage_module_default.discoverSourceRow
7599
- }, /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverMain }, /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverStrong }, source.label), /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverMeta }, source.url), !props.loading && props.problem?.id === source.id ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverSourceError }, props.problem.detail) : null), source.id === props.selected ? props.loading ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverSourceLoading }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "ongoing" }), t("panels.discover.loading")) : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.discoverSourceCurrent }, t("panels.discover.sourceCurrent")) : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
7600
- type: "button",
7601
- variant: "ghost",
7602
- size: "sm",
7603
- "aria-label": t("panels.discover.useSourceNamed", { label: source.label }),
7604
- disabled: pending,
7605
- onClick: () => {
7606
- props.onSelect(source.id);
7607
- props.onClose();
8085
+ }, props.sources.map((source) => /* @__PURE__ */ (0, react.createElement)(react.Fragment, { key: source.id }, /* @__PURE__ */ (0, react.createElement)(DiscoverSourceItem, {
8086
+ t,
8087
+ source,
8088
+ selected: source.id === props.selected,
8089
+ loading: props.loading,
8090
+ slow: props.slow,
8091
+ problem: !props.loading && props.problem?.id === source.id ? props.problem.detail : null,
8092
+ pending,
8093
+ enable: source.kind === "git" && source.policy !== "artifacts-in-repo",
8094
+ disable: source.kind === "git" && source.policy === "artifacts-in-repo",
8095
+ working: source.id === props.pendingSourceId,
8096
+ onSelect: () => props.onSelect(source.id),
8097
+ onRemove: () => setRemoving(source.id),
8098
+ onEnable: () => props.onEnable(source.id),
8099
+ onReadOnly: () => props.onReadOnly(source.id)
8100
+ }), removing === source.id ? /* @__PURE__ */ (0, react.createElement)(DiscoverSourceConfirm, {
8101
+ t,
8102
+ label: source.label,
8103
+ onCancel: () => setRemoving(null),
8104
+ onConfirm: () => {
8105
+ props.onRemove(source.id);
8106
+ setRemoving(null);
7608
8107
  }
7609
- }, t("panels.discover.useSource")), /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
7610
- label: t("panels.discover.removeSource"),
7611
- side: "bottom",
7612
- portal: true,
7613
- delayMs: 300
7614
- }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
7615
- type: "button",
7616
- variant: "ghost",
7617
- size: "sm",
7618
- icon: /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 13 }),
7619
- "aria-label": t("panels.discover.removeSourceNamed", { url: source.url }),
7620
- disabled: pending,
7621
- onClick: () => props.onRemove(source.id)
7622
- })), source.id === props.selected && props.loading && props.slow ? /* @__PURE__ */ (0, react.createElement)("span", {
7623
- className: MarketPage_module_default.discoverSourceHint,
7624
- role: "note"
7625
- }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
7626
- size: 12,
7627
- "aria-hidden": "true"
7628
- }), t("panels.discover.slowHint")) : null))), /* @__PURE__ */ (0, react.createElement)("form", {
8108
+ }) : null))), /* @__PURE__ */ (0, react.createElement)("form", {
7629
8109
  className: MarketPage_module_default.discoverSourceForm,
7630
8110
  onSubmit: (event) => {
7631
8111
  event.preventDefault();
@@ -7649,7 +8129,10 @@ function DiscoverSourcesDialog(props) {
7649
8129
  "aria-busy": props.adding,
7650
8130
  icon: props.adding ? /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: "ongoing" }) : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutlineRegular, { size: 13 }),
7651
8131
  disabled: pending || url.trim() === ""
7652
- }, props.adding ? t("panels.discover.addingSource") : t("panels.discover.addSource"))), problem === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
8132
+ }, props.adding ? t("panels.discover.addingSource") : t("panels.discover.addSource"))), props.failure === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
8133
+ className: MarketPage_module_default.discoverError,
8134
+ role: "alert"
8135
+ }, props.failure), problem === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
7653
8136
  className: MarketPage_module_default.discoverError,
7654
8137
  role: "alert"
7655
8138
  }, problem === "duplicate" ? t("panels.discover.sourceDuplicate") : t("panels.discover.sourceBadUrl")), /* @__PURE__ */ (0, react.createElement)("p", {
@@ -7664,7 +8147,6 @@ function DiscoverSourcesDialog(props) {
7664
8147
  //#region src/app/layouts/market/discover-dialogs.tsx
7665
8148
  function DiscoverDialogs({ t, d }) {
7666
8149
  return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(DiscoverSourcesDialog, {
7667
- key: d.manageOpen ? "open" : "closed",
7668
8150
  t,
7669
8151
  open: d.manageOpen,
7670
8152
  sources: d.sources,
@@ -7672,12 +8154,16 @@ function DiscoverDialogs({ t, d }) {
7672
8154
  loading: d.loading,
7673
8155
  slow: d.slow,
7674
8156
  problem: d.problem,
8157
+ failure: d.writeFailed,
7675
8158
  busy: d.busy,
7676
8159
  adding: d.addingSource,
8160
+ pendingSourceId: d.pendingSourceId,
7677
8161
  onClose: () => d.setManageOpen(false),
7678
8162
  onAdd: d.addSource,
7679
8163
  onRemove: d.removeSourceById,
7680
- onSelect: d.selectSource
8164
+ onSelect: d.selectSource,
8165
+ onEnable: d.enableSource,
8166
+ onReadOnly: d.readOnlySource
7681
8167
  }), /* @__PURE__ */ (0, react.createElement)(DiscoverConfirm, {
7682
8168
  t,
7683
8169
  locale: d.locale,
@@ -7896,6 +8382,7 @@ function installVerdictOf(value, t) {
7896
8382
  const change = changeOf(value);
7897
8383
  if (change === void 0) return { kind: "quiet" };
7898
8384
  if (SHIPPED.includes(change.application)) return { kind: "done" };
8385
+ if (change.application === "cancelled") return { kind: "cancelled" };
7899
8386
  if (change.application !== "failed") return { kind: "quiet" };
7900
8387
  return {
7901
8388
  kind: "failed",
@@ -7916,8 +8403,11 @@ function useDiscover(t, active, onInstalled) {
7916
8403
  const [manageOpen, setManageOpen] = (0, react.useState)(false);
7917
8404
  const [initOpen, setInitOpen] = (0, react.useState)(false);
7918
8405
  const [choice, setChoice] = (0, react.useState)(null);
8406
+ const [installing, setInstalling] = (0, react.useState)(null);
8407
+ const [cancelling, setCancelling] = (0, react.useState)(false);
7919
8408
  const [notice, setNotice] = (0, react.useState)(null);
7920
8409
  const [addingSource, setAddingSource] = (0, react.useState)(false);
8410
+ const [pendingSourceId, setPendingSourceId] = (0, react.useState)(null);
7921
8411
  const [knownSources, setKnownSources] = (0, react.useState)(null);
7922
8412
  const loaded = (0, react.useRef)(false);
7923
8413
  const loadTicket = (0, react.useRef)(0);
@@ -7932,6 +8422,10 @@ function useDiscover(t, active, onInstalled) {
7932
8422
  channel: "provision",
7933
8423
  networkText: t("panels.discover.failed")
7934
8424
  });
8425
+ const cancel = useHostWrite({
8426
+ channel: "provision",
8427
+ networkText: t("panels.discover.failed")
8428
+ });
7935
8429
  const loadSources = (0, react.useCallback)(async () => {
7936
8430
  const ticket = sourceTicket.current + 1;
7937
8431
  sourceTicket.current = ticket;
@@ -7958,6 +8452,10 @@ function useDiscover(t, active, onInstalled) {
7958
8452
  return;
7959
8453
  }
7960
8454
  setPayload(response);
8455
+ setKnownSources({
8456
+ sources: response.sources,
8457
+ selected: response.selected
8458
+ });
7961
8459
  setLimit(50);
7962
8460
  }, [t]);
7963
8461
  const beginSwitch = () => {
@@ -8008,6 +8506,7 @@ function useDiscover(t, active, onInstalled) {
8008
8506
  if (payload?.problem === void 0 || payload.selected === null) return null;
8009
8507
  return {
8010
8508
  id: payload.selected,
8509
+ kind: payload.problem.kind,
8011
8510
  detail: payload.problem.detail ?? ""
8012
8511
  };
8013
8512
  }, [payload]);
@@ -8022,6 +8521,35 @@ function useDiscover(t, active, onInstalled) {
8022
8521
  };
8023
8522
  }, [payload, selectedSource]);
8024
8523
  const defaultBranch = payload?.problem?.branch ?? selectedSource?.ref ?? "main";
8524
+ const enableSource = (id) => {
8525
+ setNotice(null);
8526
+ setPendingSourceId(id);
8527
+ sources.send({
8528
+ action: "init",
8529
+ id,
8530
+ stampOnly: true
8531
+ }).then(async (outcome) => {
8532
+ if (!outcome.ok) return;
8533
+ const label = payload?.sources.find((one) => one.id === id)?.label ?? id;
8534
+ setNotice(t("panels.discover.sourceEnabled", { label }));
8535
+ await loadSources();
8536
+ await load(true);
8537
+ }).finally(() => setPendingSourceId(null));
8538
+ };
8539
+ const readOnlySource = (id) => {
8540
+ setNotice(null);
8541
+ setPendingSourceId(id);
8542
+ sources.send({
8543
+ action: "read-only",
8544
+ id
8545
+ }).then(async (outcome) => {
8546
+ if (!outcome.ok) return;
8547
+ const label = payload?.sources.find((one) => one.id === id)?.label ?? id;
8548
+ setNotice(t("panels.discover.sourceReadOnly", { label }));
8549
+ await loadSources();
8550
+ await load(true);
8551
+ }).finally(() => setPendingSourceId(null));
8552
+ };
8025
8553
  const initialize = (branch) => {
8026
8554
  if (payload === null || payload.selected === null) return;
8027
8555
  const id = payload.selected;
@@ -8053,27 +8581,32 @@ function useDiscover(t, active, onInstalled) {
8053
8581
  source: {
8054
8582
  ...parsed.source,
8055
8583
  id
8056
- },
8057
- select: true
8584
+ }
8058
8585
  }).then((outcome) => {
8059
8586
  if (!outcome.ok) return;
8060
- beginSwitch();
8587
+ const value = typeof outcome.value === "object" && outcome.value !== null ? outcome.value : void 0;
8061
8588
  loadSources();
8062
- load(true);
8589
+ if (value?.["selected"] === id) load(true);
8063
8590
  }).finally(() => setAddingSource(false));
8064
8591
  };
8065
8592
  const removeSourceById = (id) => {
8066
8593
  setNotice(null);
8067
8594
  setInitOpen(false);
8595
+ const wasSelected = (payload?.selected ?? knownSources?.selected ?? null) === id;
8068
8596
  sources.send({
8069
8597
  action: "remove",
8070
8598
  id
8071
8599
  }).then(async (outcome) => {
8072
8600
  if (!outcome.ok) return;
8073
- setDetail(null);
8074
- beginSwitch();
8601
+ if (wasSelected) {
8602
+ setQuery("");
8603
+ setCategory(null);
8604
+ setSelectedLabels([]);
8605
+ setSort("default");
8606
+ setDetail(null);
8607
+ }
8075
8608
  await loadSources();
8076
- await load(true);
8609
+ if (wasSelected) await load(true);
8077
8610
  });
8078
8611
  };
8079
8612
  const selectSource = (id) => {
@@ -8104,14 +8637,25 @@ function useDiscover(t, active, onInstalled) {
8104
8637
  await load(true);
8105
8638
  });
8106
8639
  };
8107
- const install = () => {
8108
- if (choice === null) return;
8109
- const target = marketInstallTarget(choice.entry.name, choice.version.version, choice.version.source);
8640
+ const install = (url) => {
8641
+ if (choice === null || installing !== null) return;
8642
+ const source = choice.version.source;
8643
+ const target = marketInstallTarget(choice.entry.name, choice.version.version, source.type === "git" && url !== void 0 ? {
8644
+ ...source,
8645
+ url
8646
+ } : source);
8647
+ const name = displayTitleOf(choice.entry, locale);
8648
+ const requestId = globalThis.crypto.randomUUID();
8110
8649
  setChoice(null);
8111
8650
  setNotice(null);
8651
+ setInstalling({
8652
+ name,
8653
+ requestId
8654
+ });
8112
8655
  provision.send({
8113
8656
  action: "install-version",
8114
8657
  spec: target.spec,
8658
+ requestId,
8115
8659
  ...target.registry === void 0 ? {} : { registry: target.registry }
8116
8660
  }).then((outcome) => {
8117
8661
  if (!outcome.ok) return;
@@ -8121,9 +8665,25 @@ function useDiscover(t, active, onInstalled) {
8121
8665
  onInstalled();
8122
8666
  return;
8123
8667
  }
8668
+ if (verdict.kind === "cancelled") {
8669
+ setNotice(t("panels.discover.installCancelled", { name }));
8670
+ onInstalled();
8671
+ return;
8672
+ }
8124
8673
  if (verdict.kind !== "done") return;
8125
- setNotice(t("panels.discover.installedDone", { name: choice.entry.name }));
8674
+ setNotice(t("panels.discover.installedDone", { name }));
8126
8675
  onInstalled();
8676
+ }).finally(() => {
8677
+ setInstalling(null);
8678
+ setCancelling(false);
8679
+ });
8680
+ };
8681
+ const cancelInstall = () => {
8682
+ if (installing === null || cancelling) return;
8683
+ setCancelling(true);
8684
+ cancel.send({
8685
+ action: "cancel-install",
8686
+ requestId: installing.requestId
8127
8687
  });
8128
8688
  };
8129
8689
  const reload = () => {
@@ -8138,8 +8698,8 @@ function useDiscover(t, active, onInstalled) {
8138
8698
  loading,
8139
8699
  slow,
8140
8700
  failure,
8141
- sources: payload?.sources ?? knownSources?.sources ?? [],
8142
- selected: payload?.selected ?? knownSources?.selected ?? null,
8701
+ sources: knownSources?.sources ?? payload?.sources ?? [],
8702
+ selected: knownSources?.selected ?? payload?.selected ?? null,
8143
8703
  entries,
8144
8704
  shown,
8145
8705
  total: sorted.length,
@@ -8155,11 +8715,15 @@ function useDiscover(t, active, onInstalled) {
8155
8715
  writeFailed: sources.failed,
8156
8716
  provisionFailed: provision.failed,
8157
8717
  busy: sources.busy,
8718
+ installing: installing === null ? null : installing.name,
8719
+ cancelling,
8720
+ installDisabled: installing !== null,
8158
8721
  addingSource,
8159
8722
  manageOpen,
8160
8723
  problem,
8161
8724
  uninitialized,
8162
8725
  defaultBranch,
8726
+ pendingSourceId,
8163
8727
  initOpen,
8164
8728
  reload,
8165
8729
  setQuery,
@@ -8171,14 +8735,20 @@ function useDiscover(t, active, onInstalled) {
8171
8735
  openDetail: (name) => setDetail(name),
8172
8736
  closeDetail: () => setDetail(null),
8173
8737
  setDetailEntry: setDetail,
8174
- setChoice,
8738
+ setChoice: (value) => {
8739
+ if (value !== null && installing !== null) return;
8740
+ setChoice(value);
8741
+ },
8175
8742
  setManageOpen,
8176
8743
  setInitOpen,
8177
8744
  initialize,
8745
+ enableSource,
8746
+ readOnlySource,
8178
8747
  addSource,
8179
8748
  removeSourceById,
8180
8749
  selectSource,
8181
- install
8750
+ install,
8751
+ cancelInstall
8182
8752
  };
8183
8753
  }
8184
8754
  //#endregion
@@ -8217,73 +8787,85 @@ function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
8217
8787
  size: 14,
8218
8788
  "aria-hidden": "true"
8219
8789
  }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.discover.slowHint"))) : null;
8220
- if (d.payload === null) return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverPage }, d.sources.length === 0 ? null : toolbar, d.loading ? /* @__PURE__ */ (0, react.createElement)(DiscoverSkeleton, { label: t("panels.discover.loading") }) : /* @__PURE__ */ (0, react.createElement)(DiscoverFailure, {
8790
+ let body;
8791
+ if (d.payload === null) body = /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, d.sources.length === 0 ? null : toolbar, d.loading ? /* @__PURE__ */ (0, react.createElement)(DiscoverSkeleton, { label: t("panels.discover.loading") }) : /* @__PURE__ */ (0, react.createElement)(DiscoverFailure, {
8221
8792
  t,
8222
8793
  text: t("panels.discover.sourcesFailed"),
8223
8794
  onRetry: d.reload
8224
- }), slowHint, d.writeFailed === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverError }, d.writeFailed), dialogs);
8225
- if (d.payload.state === "no-source") return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverPage }, /* @__PURE__ */ (0, react.createElement)(DiscoverNoSource, {
8795
+ }), slowHint, d.writeFailed === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverError }, d.writeFailed));
8796
+ else if (d.payload.state === "no-source") body = /* @__PURE__ */ (0, react.createElement)(DiscoverNoSource, {
8226
8797
  t,
8227
8798
  onAdd: () => d.setManageOpen(true)
8228
- }), dialogs);
8229
- const failed = d.payload.state === "invalid" || d.payload.state === "unreadable";
8230
- const readFailed = !d.loading && failed ? d.payload.state === "invalid" ? t("panels.discover.invalid") : t("panels.discover.unreadable") : null;
8231
- const uninitialized = d.loading ? null : d.uninitialized;
8232
- const retrying = d.loading && failed;
8233
- const emptyText = unfiltered({
8234
- query: d.query,
8235
- category: d.category,
8236
- labels: d.selectedLabels
8237
- }) ? t("panels.discover.empty") : t("panels.discover.noMatch");
8238
- return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverPage }, toolbar, d.loading && !d.manageOpen ? /* @__PURE__ */ (0, react.createElement)(DiscoverLoading, { label: t("panels.discover.loading") }) : null, slowHint, !d.loading && d.payload.stale === true ? /* @__PURE__ */ (0, react.createElement)("p", {
8239
- className: MarketPage_module_default.discoverNotice,
8240
- role: "note"
8241
- }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
8242
- size: 14,
8243
- "aria-hidden": "true"
8244
- }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.discover.stale"))) : null, uninitialized === null ? readFailed === null ? null : /* @__PURE__ */ (0, react.createElement)(DiscoverFailure, {
8245
- t,
8246
- text: readFailed,
8247
- onRetry: d.reload
8248
- }) : /* @__PURE__ */ (0, react.createElement)(DiscoverUninitialized, {
8249
- t,
8250
- path: uninitialized.path,
8251
- empty: uninitialized.empty,
8252
- onInit: () => d.setInitOpen(true)
8253
- }), d.notice === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
8254
- className: MarketPage_module_default.discoverNotice,
8255
- role: "note"
8256
- }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
8257
- size: 14,
8258
- "aria-hidden": "true"
8259
- }), /* @__PURE__ */ (0, react.createElement)("span", null, d.notice)), d.writeFailed === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverError }, d.writeFailed), d.provisionFailed === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverError }, d.provisionFailed), d.detailEntry !== null ? /* @__PURE__ */ (0, react.createElement)(DiscoverDetail, {
8260
- t,
8261
- locale: d.locale,
8262
- entry: d.detailEntry,
8263
- market: marketLabel,
8264
- onBack: d.closeDetail,
8265
- onInstall: (entry, version) => d.setChoice({
8266
- entry,
8267
- version
8268
- }),
8269
- onShowInstalled
8270
- }) : readFailed !== null || uninitialized !== null || retrying ? null : d.shown.length === 0 ? /* @__PURE__ */ (0, react.createElement)(DiscoverEmptyText, { text: emptyText }) : /* @__PURE__ */ (0, react.createElement)(DiscoverRows, {
8271
- t,
8272
- locale: d.locale,
8273
- entries: d.shown,
8274
- onOpen: d.openDetail,
8275
- onInstall: (entry, version) => d.setChoice({
8276
- entry,
8277
- version
8278
- }),
8279
- onShowInstalled
8280
- }), d.detailEntry !== null || d.total <= d.shown.length ? null : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
8281
- type: "button",
8282
- variant: "outline",
8283
- size: "sm",
8284
- className: MarketPage_module_default.discoverMore,
8285
- onClick: d.showMore
8286
- }, t("panels.discover.showMore")), dialogs);
8799
+ });
8800
+ else {
8801
+ const failed = d.payload.state === "invalid" || d.payload.state === "unreadable";
8802
+ const readFailed = !d.loading && failed ? d.payload.state === "invalid" ? t("panels.discover.invalid") : t("panels.discover.unreadable") : null;
8803
+ const uninitialized = d.loading ? null : d.uninitialized;
8804
+ const retrying = d.loading && failed;
8805
+ const emptyText = unfiltered({
8806
+ query: d.query,
8807
+ category: d.category,
8808
+ labels: d.selectedLabels
8809
+ }) ? t("panels.discover.empty") : t("panels.discover.noMatch");
8810
+ body = /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, d.detailEntry === null ? toolbar : null, d.loading && !d.manageOpen ? /* @__PURE__ */ (0, react.createElement)(DiscoverLoading, { label: t("panels.discover.loading") }) : null, slowHint, !d.loading && d.payload.stale === true ? /* @__PURE__ */ (0, react.createElement)("p", {
8811
+ className: MarketPage_module_default.discoverNotice,
8812
+ role: "note"
8813
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
8814
+ size: 14,
8815
+ "aria-hidden": "true"
8816
+ }), /* @__PURE__ */ (0, react.createElement)("span", null, t("panels.discover.stale"))) : null, uninitialized === null ? readFailed === null ? null : /* @__PURE__ */ (0, react.createElement)(DiscoverReadFailure, {
8817
+ t,
8818
+ text: readFailed,
8819
+ auth: d.problem?.kind === "git-auth",
8820
+ onRetry: d.reload
8821
+ }) : /* @__PURE__ */ (0, react.createElement)(DiscoverUninitialized, {
8822
+ t,
8823
+ path: uninitialized.path,
8824
+ empty: uninitialized.empty,
8825
+ onInit: () => d.setInitOpen(true)
8826
+ }), d.installing === null ? null : /* @__PURE__ */ (0, react.createElement)(DiscoverInstalling, {
8827
+ t,
8828
+ name: d.installing,
8829
+ cancelling: d.cancelling,
8830
+ onCancel: d.cancelInstall
8831
+ }), d.notice === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
8832
+ className: MarketPage_module_default.discoverNotice,
8833
+ role: "note"
8834
+ }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconWarningOutlineRegular, {
8835
+ size: 14,
8836
+ "aria-hidden": "true"
8837
+ }), /* @__PURE__ */ (0, react.createElement)("span", null, d.notice)), d.writeFailed === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverError }, d.writeFailed), d.provisionFailed === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: MarketPage_module_default.discoverError }, d.provisionFailed), d.detailEntry !== null ? /* @__PURE__ */ (0, react.createElement)(DiscoverDetail, {
8838
+ t,
8839
+ locale: d.locale,
8840
+ entry: d.detailEntry,
8841
+ market: marketLabel,
8842
+ onBack: d.closeDetail,
8843
+ onInstall: (entry, version) => d.setChoice({
8844
+ entry,
8845
+ version
8846
+ }),
8847
+ onShowInstalled,
8848
+ installDisabled: d.installDisabled
8849
+ }) : readFailed !== null || uninitialized !== null || retrying ? null : d.shown.length === 0 ? /* @__PURE__ */ (0, react.createElement)(DiscoverEmptyText, { text: emptyText }) : /* @__PURE__ */ (0, react.createElement)(DiscoverRows, {
8850
+ t,
8851
+ locale: d.locale,
8852
+ entries: d.shown,
8853
+ onOpen: d.openDetail,
8854
+ onInstall: (entry, version) => d.setChoice({
8855
+ entry,
8856
+ version
8857
+ }),
8858
+ onShowInstalled,
8859
+ installDisabled: d.installDisabled
8860
+ }), d.detailEntry !== null || d.total <= d.shown.length ? null : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
8861
+ type: "button",
8862
+ variant: "outline",
8863
+ size: "sm",
8864
+ className: MarketPage_module_default.discoverMore,
8865
+ onClick: d.showMore
8866
+ }, t("panels.discover.showMore")));
8867
+ }
8868
+ return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.discoverPage }, body, dialogs);
8287
8869
  }
8288
8870
  //#endregion
8289
8871
  //#region src/app/layouts/market/market-header.tsx
@@ -8714,6 +9296,7 @@ var state = {
8714
9296
  workbench: null,
8715
9297
  selfUpdate: null,
8716
9298
  read: false,
9299
+ checking: false,
8717
9300
  checkedAt: null
8718
9301
  };
8719
9302
  var listeners$2 = /* @__PURE__ */ new Set();
@@ -8742,6 +9325,10 @@ function runModuleVersionsRead(force = false, fresh = false) {
8742
9325
  if (!fresh && inFlight !== null && inFlight.force === force && inFlight.epoch === at) return inFlight.promise;
8743
9326
  const seq = readSeq += 1;
8744
9327
  if (force) newestForceSeq = seq;
9328
+ if (!state.checking) publish$1({
9329
+ ...state,
9330
+ checking: true
9331
+ });
8745
9332
  const promise = Promise.all([readModuleVersions(force), readInstalledPlugins(force)]).catch(() => null).then((responses) => {
8746
9333
  if (at !== epoch) return;
8747
9334
  if (!force && seq < newestForceSeq) return;
@@ -8753,6 +9340,7 @@ function runModuleVersionsRead(force = false, fresh = false) {
8753
9340
  workbench: versions?.ok === true ? versions.workbench ?? null : state.workbench,
8754
9341
  selfUpdate: versions?.ok === true ? versions.selfUpdate ?? null : state.selfUpdate,
8755
9342
  read: true,
9343
+ checking: false,
8756
9344
  checkedAt: Date.now()
8757
9345
  });
8758
9346
  }).finally(() => {
@@ -8788,6 +9376,7 @@ function useModuleVersions() {
8788
9376
  workbench: value.workbench,
8789
9377
  selfUpdate: value.selfUpdate,
8790
9378
  read: value.read,
9379
+ checking: value.checking,
8791
9380
  checkedAt: value.checkedAt,
8792
9381
  reload
8793
9382
  };
@@ -9376,7 +9965,7 @@ function MarketPanel({ t, units, titleOf }) {
9376
9965
  const manifests = useLiveManifests(units);
9377
9966
  const installable = useInstallableUnits(units);
9378
9967
  const { capabilities, checkedAt, checking, forceProbe, reload: reloadCapability } = useCapabilityMap(0);
9379
- const { modules, plugins, workbench, selfUpdate, read: installedRead, reload: reloadVersions } = useModuleVersions();
9968
+ const { modules, plugins, workbench, selfUpdate, checking: versionsChecking, read: installedRead, reload: reloadVersions } = useModuleVersions();
9380
9969
  const machineBoard = useEnabledUnits(0, null);
9381
9970
  const [adding, setAdding] = (0, react.useState)(false);
9382
9971
  const [acting, setActing] = (0, react.useState)(false);
@@ -9452,13 +10041,14 @@ function MarketPanel({ t, units, titleOf }) {
9452
10041
  const mockNonce = devMarket.pick.nonce;
9453
10042
  const shownFreshness = mock === void 0 ? freshness : mock.loaded === false ? pendingFreshness : MOCK_FRESHNESS;
9454
10043
  const shownRead = mock === void 0 ? installedRead : mock.installedRead ?? true;
9455
- const busy = !marketSettled(shownFreshness, shownRead) || shownFreshness.checking || acting;
10044
+ const shownChecking = shownFreshness.checking || mock === void 0 && versionsChecking;
10045
+ const busy = !marketSettled(shownFreshness, shownRead) || shownChecking || acting;
9456
10046
  return /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketPage }, /* @__PURE__ */ (0, react.createElement)(MarketHeader, {
9457
10047
  t,
9458
10048
  idPrefix: MARKET_PANEL_ID,
9459
10049
  tab,
9460
10050
  busy,
9461
- checking: shownFreshness.checking,
10051
+ checking: shownChecking,
9462
10052
  onTab: setTab,
9463
10053
  onReload: () => reload({ force: true }),
9464
10054
  onAdd: openAddModule
@@ -11550,12 +12140,14 @@ var MODULES_UPDATE_DEPENDENCY_TOOL = "workbench_modules_update_dependency";
11550
12140
  var MODULES_UPDATE_PLUGIN_TOOL = "workbench_modules_update_plugin";
11551
12141
  var MODULES_UNINSTALL_PLUGIN_TOOL = "workbench_modules_uninstall_plugin";
11552
12142
  var MODULES_UPDATE_WORKBENCH_TOOL = "workbench_modules_update_workbench";
12143
+ var MARKET_SOURCES_TOOL = "workbench_market_sources";
12144
+ var MARKET_ENABLE_TOOL = "workbench_market_enable";
12145
+ var MARKET_DISABLE_TOOL = "workbench_market_disable";
11553
12146
  var DIY_STATUS_TOOL = "workbench_diy_status";
11554
12147
  var DIY_PANEL_TOOL = "workbench_diy_panel";
11555
12148
  var DIY_COMPONENTS_TOOL = "workbench_diy_components";
11556
12149
  var DIY_RECON_TOOL = "workbench_diy_recon";
11557
12150
  var DIY_SPEC_TOOL = "workbench_diy_spec";
11558
- var DIY_CHANGELOG_TOOL = "workbench_diy_changelog";
11559
12151
  var DIY_INSTALL_TOOL = "workbench_diy_install";
11560
12152
  var DIY_PUBLISH_TOOL = "workbench_diy_publish";
11561
12153
  var DIY_SHOW_TOOL = "workbench_diy_show";
@@ -11602,12 +12194,14 @@ var ALL_TOOLS = [
11602
12194
  MODULES_UPDATE_PLUGIN_TOOL,
11603
12195
  MODULES_UNINSTALL_PLUGIN_TOOL,
11604
12196
  MODULES_UPDATE_WORKBENCH_TOOL,
12197
+ MARKET_SOURCES_TOOL,
12198
+ MARKET_ENABLE_TOOL,
12199
+ MARKET_DISABLE_TOOL,
11605
12200
  DIY_STATUS_TOOL,
11606
12201
  DIY_PANEL_TOOL,
11607
12202
  DIY_COMPONENTS_TOOL,
11608
12203
  DIY_RECON_TOOL,
11609
12204
  DIY_SPEC_TOOL,
11610
- DIY_CHANGELOG_TOOL,
11611
12205
  DIY_INSTALL_TOOL,
11612
12206
  DIY_PUBLISH_TOOL,
11613
12207
  DIY_SHOW_TOOL,
@@ -11642,6 +12236,7 @@ var ALL_TOOLS = [
11642
12236
  var READ_TOOLS = [
11643
12237
  PANELS_LIST_TOOL,
11644
12238
  MODULES_LIST_TOOL,
12239
+ MARKET_SOURCES_TOOL,
11645
12240
  DIY_STATUS_TOOL,
11646
12241
  DIY_PANEL_TOOL,
11647
12242
  DIY_COMPONENTS_TOOL,
@@ -11683,7 +12278,8 @@ var WRITE_TOOLS = [
11683
12278
  MODULES_UPDATE_PLUGIN_TOOL,
11684
12279
  MODULES_UNINSTALL_PLUGIN_TOOL,
11685
12280
  MODULES_UPDATE_WORKBENCH_TOOL,
11686
- DIY_CHANGELOG_TOOL,
12281
+ MARKET_ENABLE_TOOL,
12282
+ MARKET_DISABLE_TOOL,
11687
12283
  DIY_INSTALL_TOOL,
11688
12284
  DIY_PUBLISH_TOOL,
11689
12285
  DIY_SHOW_TOOL,
@@ -11784,6 +12380,21 @@ function publishRows(args, preview, t) {
11784
12380
  value: author !== "" ? author : preview === void 0 ? t("approval.publish.reading") : preview?.author === void 0 || preview.author === "" ? t("approval.publish.authorMissing") : preview.author
11785
12381
  }
11786
12382
  ];
12383
+ const claim = preview?.claim;
12384
+ if (claim !== void 0 && claim.state !== "new" && claim.state !== "unknown") {
12385
+ if (claim.state === "unit-taken") rows.push({
12386
+ label: t("approval.publish.unit"),
12387
+ value: t("approval.publish.unitTaken", { entry: claim.entry })
12388
+ });
12389
+ else if (claim.state === "path-taken") rows.push({
12390
+ label: t("approval.publish.path"),
12391
+ value: t("approval.publish.pathTaken", { entry: claim.entry })
12392
+ });
12393
+ else rows.push({
12394
+ label: t("approval.publish.owner"),
12395
+ value: claim.state === "owned" ? claim.owner : claim.state === "unowned" ? t("approval.publish.ownerUnowned") : t("approval.publish.ownerTaken", { owner: claim.owner })
12396
+ });
12397
+ }
11787
12398
  const market = preview?.market;
11788
12399
  if (market !== void 0) rows.push({
11789
12400
  label: t("approval.publish.repo"),
@@ -11813,7 +12424,7 @@ function PublishChangelogSeat({ changelog, t }) {
11813
12424
  className: approval_detail_module_default.changelogMissing,
11814
12425
  role: "note"
11815
12426
  }, t("approval.publish.changelogMissing", { version: changelog.version }));
11816
- return (0, react.createElement)("section", { className: approval_detail_module_default.changelog }, (0, react.createElement)("p", { className: approval_detail_module_default.changelogTitle }, t("approval.publish.changelog", { version: changelog.version })), (0, react.createElement)("div", { className: approval_detail_module_default.changelogBody }, (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
12427
+ return (0, react.createElement)("section", { className: approval_detail_module_default.changelog }, (0, react.createElement)("p", { className: approval_detail_module_default.changelogTitle }, changelog.pending === true ? t("approval.publish.changelogPending", { version: changelog.version }) : t("approval.publish.changelog", { version: changelog.version })), (0, react.createElement)("div", { className: approval_detail_module_default.changelogBody }, (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
11817
12428
  text: changelog.text,
11818
12429
  variant: "compact",
11819
12430
  labels: {
@@ -11829,11 +12440,13 @@ function PublishApprovalSeat({ args, t }) {
11829
12440
  const unit = textOf(args, "unit");
11830
12441
  const version = textOf(args, "version");
11831
12442
  const author = textOf(args, "author");
12443
+ const changelog = typeof args["changelogNote"] === "string" ? args["changelogNote"] : "";
12444
+ const changelogType = textOf(args, "changelogType");
11832
12445
  const [preview, setPreview] = (0, react.useState)(() => unit === "" ? null : void 0);
11833
12446
  (0, react.useEffect)(() => {
11834
12447
  if (unit === "") return;
11835
12448
  let live = true;
11836
- readPublishPreview(unit, version, author).then((response) => {
12449
+ readPublishPreview(unit, version, author, changelog, changelogType).then((response) => {
11837
12450
  if (live) setPreview(response.ok ? response.preview : null);
11838
12451
  });
11839
12452
  return () => {
@@ -11842,13 +12455,55 @@ function PublishApprovalSeat({ args, t }) {
11842
12455
  }, [
11843
12456
  unit,
11844
12457
  version,
11845
- author
12458
+ author,
12459
+ changelog,
12460
+ changelogType
11846
12461
  ]);
11847
12462
  return (0, react.createElement)(ApprovalPlan, { rows: publishRows(args, preview, t) }, (0, react.createElement)(PublishChangelogSeat, {
11848
12463
  changelog: preview?.changelog,
11849
12464
  t
11850
12465
  }));
11851
12466
  }
12467
+ function marketSourceRows(tool, args, payload, t) {
12468
+ const id = textOf(args, "id");
12469
+ const source = payload === void 0 || payload === null ? void 0 : payload.sources.find((one) => one.id === (id === "" ? payload.selected : id));
12470
+ const reading = t("approval.market.reading");
12471
+ const rows = [
12472
+ {
12473
+ label: t("approval.market.source"),
12474
+ value: payload === void 0 ? reading : source === void 0 ? id === "" ? "—" : id : `${source.label}(${source.id})`
12475
+ },
12476
+ {
12477
+ label: t("approval.market.url"),
12478
+ value: source?.url ?? (payload === void 0 ? reading : "—")
12479
+ },
12480
+ {
12481
+ label: t("approval.market.action"),
12482
+ value: tool === "workbench_market_enable" ? t("approval.market.enable") : t("approval.market.disable")
12483
+ }
12484
+ ];
12485
+ if (source !== void 0) rows.push({
12486
+ label: t("approval.market.policy"),
12487
+ value: source.policy === "artifacts-in-repo" ? t("approval.market.writable") : t("approval.market.readOnly")
12488
+ });
12489
+ return rows;
12490
+ }
12491
+ function MarketSourceApprovalSeat({ tool, args, t }) {
12492
+ const [payload, setPayload] = (0, react.useState)(void 0);
12493
+ (0, react.useEffect)(() => {
12494
+ let live = true;
12495
+ readMarketSources().then((response) => {
12496
+ if (live) setPayload(response.ok ? {
12497
+ sources: response.sources,
12498
+ selected: response.selected
12499
+ } : null);
12500
+ });
12501
+ return () => {
12502
+ live = false;
12503
+ };
12504
+ }, []);
12505
+ return (0, react.createElement)(ApprovalPlan, { rows: marketSourceRows(tool, args, payload, t) });
12506
+ }
11852
12507
  function shellClaimsApprovalDetail(tool) {
11853
12508
  return ALL_TOOLS.includes(tool);
11854
12509
  }
@@ -11876,6 +12531,11 @@ function shellApprovalDetail(input, t) {
11876
12531
  args: input.args,
11877
12532
  t
11878
12533
  });
12534
+ if (input.tool === "workbench_market_enable" || input.tool === "workbench_market_disable") return (0, react.createElement)(MarketSourceApprovalSeat, {
12535
+ tool: input.tool,
12536
+ args: input.args,
12537
+ t
12538
+ });
11879
12539
  const plan = shellApprovalPlan(input, t);
11880
12540
  if (plan === void 0) return void 0;
11881
12541
  if (plan.rows.length === 0) return (0, react.createElement)(react.Fragment, null);
@@ -12047,20 +12707,37 @@ function dshSeatOnScreen(host) {
12047
12707
  }
12048
12708
  function createDshSurfaceWatch(read, onReady, intervalMs) {
12049
12709
  let timer;
12710
+ let observer;
12050
12711
  const disarm = () => {
12051
- if (timer === void 0) return;
12052
- clearInterval(timer);
12053
- timer = void 0;
12712
+ if (timer !== void 0) {
12713
+ clearInterval(timer);
12714
+ timer = void 0;
12715
+ }
12716
+ observer?.disconnect();
12717
+ observer = void 0;
12054
12718
  };
12055
12719
  const tick = () => {
12056
12720
  if (!read()) return;
12057
12721
  disarm();
12058
12722
  onReady();
12059
12723
  };
12724
+ const observe = () => {
12725
+ if (observer !== void 0 || typeof MutationObserver === "undefined") return;
12726
+ const root = typeof document === "undefined" ? void 0 : document.documentElement;
12727
+ if (root === void 0 || root === null) return;
12728
+ observer = new MutationObserver(tick);
12729
+ observer.observe(root, {
12730
+ attributes: true,
12731
+ attributeFilter: [DSH_SEAT_ATTRIBUTE],
12732
+ childList: true,
12733
+ subtree: true
12734
+ });
12735
+ };
12060
12736
  return {
12061
12737
  arm() {
12062
12738
  if (timer !== void 0) return;
12063
12739
  timer = setInterval(tick, intervalMs);
12740
+ observe();
12064
12741
  },
12065
12742
  disarm
12066
12743
  };
@@ -12073,18 +12750,30 @@ function createDshBorrow(host) {
12073
12750
  let unsubscribe;
12074
12751
  let restore;
12075
12752
  let shimmed = false;
12753
+ const expand = (official) => {
12754
+ if (official.isExpanded()) return true;
12755
+ try {
12756
+ official.toggleExpanded();
12757
+ return true;
12758
+ } catch {
12759
+ return false;
12760
+ }
12761
+ };
12076
12762
  const flush = () => {
12077
12763
  const official = host.official();
12078
- if (official === void 0 || !dshSeatOnScreen(document)) return;
12764
+ if (official === void 0) return;
12079
12765
  if (pendingOpen) {
12766
+ if (!expand(official)) {
12767
+ watch.arm();
12768
+ return;
12769
+ }
12080
12770
  pendingOpen = false;
12081
- if (!official.isExpanded()) official.toggleExpanded();
12082
12771
  }
12083
12772
  const call = pendingCall;
12084
12773
  pendingCall = void 0;
12085
12774
  call?.();
12086
12775
  };
12087
- const watch = createDshSurfaceWatch(() => dshSeatOnScreen(document), flush, 60);
12776
+ const watch = createDshSurfaceWatch(() => host.official()?.mounted.getSnapshot() !== void 0, flush, 60);
12088
12777
  const subscribe = () => {
12089
12778
  const official = host.official();
12090
12779
  if (official === void 0 || unsubscribe !== void 0) return;
@@ -14383,7 +15072,7 @@ var tokens_default = ".wb-root,\n.wb-rightbar {\n --wb-gap-xs: 6px;\n --wb-fon
14383
15072
  var palette_default = ":root {\n --wb-static-mask-opaque: #000;\n --wb-static-shadow-ghost: 0 8px 20px rgba(0, 0, 0, 0.4);\n}\n";
14384
15073
  //#endregion
14385
15074
  //#region src/shared/styles/tokens/scale.css?raw
14386
- var scale_default = ":root {\n --wb-dur-0-12: 0.12s;\n --wb-dur-0-9: 0.9s;\n --wb-dur-1-4: 1.4s;\n --wb-dur-1-5: 1.5s;\n --wb-font-10: 10px;\n --wb-font-11-5: 11.5px;\n --wb-font-12-5: 12.5px;\n --wb-font-18: 18px;\n --wb-len-0-5: 0.5px;\n --wb-len-1: 1px;\n --wb-len-10: 10px;\n --wb-len-12: 12px;\n --wb-len-120: 120px;\n --wb-len-13: 13px;\n --wb-len-132: 132px;\n --wb-len-14: 14px;\n --wb-len-144: 144px;\n --wb-len-15: 15px;\n --wb-len-16: 16px;\n --wb-len-18: 18px;\n --wb-len-2: 2px;\n --wb-len-20: 20px;\n --wb-len-22: 22px;\n --wb-len-220: 220px;\n --wb-len-24: 24px;\n --wb-len-240: 240px;\n --wb-len-26: 26px;\n --wb-len-28: 28px;\n --wb-len-280: 280px;\n --wb-len-3: 3px;\n --wb-len-3-4em: 3.4em;\n --wb-len-30: 30px;\n --wb-len-300: 300px;\n --wb-len-32: 32px;\n --wb-len-320: 320px;\n --wb-len-34: 34px;\n --wb-len-36: 36px;\n --wb-len-360: 360px;\n --wb-len-38: 38px;\n --wb-len-4: 4px;\n --wb-len-440: 440px;\n --wb-len-40: 40px;\n --wb-len-420: 420px;\n --wb-len-42em: 42em;\n --wb-len-44: 44px;\n --wb-len-48: 48px;\n --wb-len-480: 480px;\n --wb-len-5: 5px;\n --wb-len-52: 52px;\n --wb-len-520: 520px;\n --wb-len-56: 56px;\n --wb-len-560: 560px;\n --wb-len-6: 6px;\n --wb-len-60: 60px;\n --wb-len-64: 64px;\n --wb-len-7: 7px;\n --wb-len-72: 72px;\n --wb-len-8: 8px;\n --wb-len-800: 800px;\n --wb-len-9: 9px;\n --wb-len-96: 96px;\n --wb-len-960: 960px;\n --wb-len-neg-0-5: -0.5px;\n --wb-len-neg-1-5: -1.5px;\n --wb-len-neg-2: -2px;\n --wb-len-neg-3: -3px;\n --wb-len-neg-4: -4px;\n --wb-len-neg-8: -8px;\n --wb-line-14: 14px;\n --wb-line-15: 15px;\n --wb-line-16: 16px;\n --wb-line-17: 17px;\n --wb-line-18: 18px;\n --wb-line-19: 19px;\n --wb-line-20: 20px;\n --wb-line-22: 22px;\n --wb-line-24: 24px;\n --wb-radius-14: 14px;\n --wb-radius-6: 6px;\n --wb-radius-pill: 999px;\n --wb-track-brand: .04em;\n --wb-z-1100: 1100;\n --wb-z-10: 10;\n --wb-z-30: 30;\n --wb-z-40: 40;\n --wb-z-top: 2147483000;\n}\n";
15075
+ var scale_default = ":root {\n --wb-dur-0-12: 0.12s;\n --wb-dur-0-9: 0.9s;\n --wb-dur-1-4: 1.4s;\n --wb-dur-1-5: 1.5s;\n --wb-font-10: 10px;\n --wb-font-11-5: 11.5px;\n --wb-font-12-5: 12.5px;\n --wb-font-18: 18px;\n --wb-len-0-5: 0.5px;\n --wb-len-1: 1px;\n --wb-len-10: 10px;\n --wb-len-12: 12px;\n --wb-len-120: 120px;\n --wb-len-13: 13px;\n --wb-len-132: 132px;\n --wb-len-14: 14px;\n --wb-len-144: 144px;\n --wb-len-15: 15px;\n --wb-len-16: 16px;\n --wb-len-18: 18px;\n --wb-len-2: 2px;\n --wb-len-20: 20px;\n --wb-len-22: 22px;\n --wb-len-220: 220px;\n --wb-len-24: 24px;\n --wb-len-240: 240px;\n --wb-len-26: 26px;\n --wb-len-28: 28px;\n --wb-len-280: 280px;\n --wb-len-3: 3px;\n --wb-len-3-4em: 3.4em;\n --wb-len-30: 30px;\n --wb-len-300: 300px;\n --wb-len-32: 32px;\n --wb-len-320: 320px;\n --wb-len-34: 34px;\n --wb-len-36: 36px;\n --wb-len-360: 360px;\n --wb-len-38: 38px;\n --wb-len-4: 4px;\n --wb-len-440: 440px;\n --wb-len-40: 40px;\n --wb-len-420: 420px;\n --wb-len-42em: 42em;\n --wb-len-44: 44px;\n --wb-len-48: 48px;\n --wb-len-5: 5px;\n --wb-len-52: 52px;\n --wb-len-520: 520px;\n --wb-len-56: 56px;\n --wb-len-560: 560px;\n --wb-len-6: 6px;\n --wb-len-60: 60px;\n --wb-len-64: 64px;\n --wb-len-7: 7px;\n --wb-len-72: 72px;\n --wb-len-8: 8px;\n --wb-len-800: 800px;\n --wb-len-9: 9px;\n --wb-len-96: 96px;\n --wb-len-960: 960px;\n --wb-len-neg-0-5: -0.5px;\n --wb-len-neg-1-5: -1.5px;\n --wb-len-neg-2: -2px;\n --wb-len-neg-3: -3px;\n --wb-len-neg-4: -4px;\n --wb-len-neg-8: -8px;\n --wb-line-14: 14px;\n --wb-line-15: 15px;\n --wb-line-16: 16px;\n --wb-line-17: 17px;\n --wb-line-18: 18px;\n --wb-line-19: 19px;\n --wb-line-20: 20px;\n --wb-line-22: 22px;\n --wb-line-24: 24px;\n --wb-radius-14: 14px;\n --wb-radius-6: 6px;\n --wb-radius-pill: 999px;\n --wb-track-brand: .04em;\n --wb-z-1100: 1100;\n --wb-z-10: 10;\n --wb-z-30: 30;\n --wb-z-40: 40;\n --wb-z-top: 2147483000;\n}\n";
14387
15076
  //#endregion
14388
15077
  //#region src/shared/styles/sidebar-app.css?raw
14389
15078
  var sidebar_app_default = ".wb-wsSection {\n position: relative;\n flex: none;\n --dsh-session-list-edge-inset: var(--dsh-sidebar-inline-padding);\n --dsh-session-list-scrollbar-width: 5px;\n --dsh-session-list-scrollbar-offset: 2px;\n margin: 0 var(--dsh-session-list-scrollbar-offset) var(--wb-len-4) 0;\n padding-right: calc( var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset) );\n}.wb-sectionHeader {\n box-sizing: border-box;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--wb-len-4);\n height: var(--wb-len-36);\n flex: none;\n margin-bottom: var(--wb-len-4);\n padding-left: var(--wb-len-8);\n padding-right: var(--wb-len-2);\n border-radius: var(--dsw-radius-md);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n}.wb-wsNew {\n margin-left: auto;\n}.wb-sectionLabel {\n flex: none;\n min-width: 0;\n max-width: 45%;\n overflow: hidden;\n white-space: nowrap;\n line-height: var(--wb-line-20);\n}.wb-collapsed .wb-wsSection {\n margin: 0 0 var(--wb-len-12);\n padding-right: 0;\n}.wb-collapsed .wb-sectionHeader {\n justify-content: flex-start;\n gap: 0;\n margin-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n}.wb-collapsed .wb-wsNew {\n margin-left: 0;\n}.wb-sessions {\n --dsh-session-list-edge-inset: var(--dsh-sidebar-inline-padding);\n --dsh-session-list-scrollbar-width: 5px;\n --dsh-session-list-scrollbar-offset: 2px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n margin-left: var(--wb-len-neg-4);\n margin-right: var(--dsh-session-list-scrollbar-offset);\n padding-left: var(--wb-len-4);\n padding-right: calc( var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset) );\n padding-bottom: var(--wb-len-16);\n scrollbar-gutter: stable;\n --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);\n --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2);\n}.wb-sessions.wb-fadeTop {\n mask-image: linear-gradient(\n to bottom,\n transparent 0,\n var(--wb-static-mask-opaque) var(--wb-len-24),\n var(--wb-static-mask-opaque) 100%\n );\n}.wb-sessions.wb-fadeBottom {\n mask-image: linear-gradient(\n to bottom,\n var(--wb-static-mask-opaque) 0,\n var(--wb-static-mask-opaque) calc(100% - var(--wb-len-24)),\n transparent 100%\n );\n}.wb-sessions.wb-fadeTop.wb-fadeBottom {\n mask-image: linear-gradient(\n to bottom,\n transparent 0,\n var(--wb-static-mask-opaque) var(--wb-len-24),\n var(--wb-static-mask-opaque) calc(100% - var(--wb-len-24)),\n transparent 100%\n );\n}.wb-sessions > * {\n flex: none;\n}.wb-sessions > * + * {\n margin-top: var(--wb-len-2);\n}.wb-sessionLeading {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}.wb-sessionPin {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n margin-left: var(--wb-len-6);\n color: var(--dsw-alias-label-caption);\n}.wb-rowActions {\n flex: none;\n display: none;\n align-items: center;\n gap: var(--wb-len-15);\n}.wb-rowActions .wb-iconButton {\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-tertiary);\n}.wb-rowActions .wb-iconButton:hover {\n background: transparent;\n color: var(--dsw-alias-label-primary);\n}.wb-sessionRow:hover .wb-rowActions,\n.wb-sessionRow.wb-menuOpen .wb-rowActions {\n display: inline-flex;\n}.wb-sessionRow:hover .wb-sessionTime,\n.wb-sessionRow.wb-menuOpen .wb-sessionTime,\n.wb-sessionRow:hover .wb-sessionPin,\n.wb-sessionRow.wb-menuOpen .wb-sessionPin {\n display: none;\n}.wb-sessionRow.wb-menuOpen {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-sessionRow {\n position: relative;\n flex: none;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 0;\n width: 100%;\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-8);\n border: none;\n border-radius: var(--dsw-radius-md);\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n user-select: none;\n}.wb-sessionRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-sessionRow:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}.wb-visuallyHidden {\n clip: rect(0 0 0 0);\n white-space: nowrap;\n width: var(--wb-len-1);\n height: var(--wb-len-1);\n position: absolute;\n overflow: hidden;\n}.wb-sessionTitle {\n flex: 1;\n min-width: 0;\n margin: 0 var(--wb-len-6) 0 var(--wb-len-4);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}.wb-sessionTitle[data-scrolled] {\n mask-image: linear-gradient(90deg, transparent, var(--wb-static-mask-opaque) var(--wb-len-12));\n}.wb-sessionTitle[data-clipped] {\n mask-image: linear-gradient(270deg, transparent, var(--wb-static-mask-opaque) var(--wb-len-12));\n}.wb-sessionTitle[data-scrolled][data-clipped] {\n mask-image: linear-gradient(\n 90deg,\n transparent,\n var(--wb-static-mask-opaque) var(--wb-len-12) calc(100% - var(--wb-len-12)),\n transparent\n );\n}@media (hover: hover) {\n .wb-sessionRow:hover .wb-sessionTitle,\n .wb-sessionRow.wb-menuOpen .wb-sessionTitle {\n text-overflow: clip;\n }\n}.wb-sessionHover {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}.wb-sessionHoverTitle {\n color: var(--dsw-static-neutral-bluish-00);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n overflow-wrap: break-word;\n}.wb-sessionHoverTime {\n color: var(--dsw-static-neutral-bluish-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-16);\n}.wb-sessionHoverStatus {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n color: var(--dsw-static-neutral-bluish-400);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-20);\n}.wb-sessionTime {\n flex: none;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}.wb-workspaceBusy {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: var(--wb-len-4) var(--wb-len-8) 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}.wb-workspaceError {\n margin: var(--wb-len-4) var(--wb-len-8) 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}.wb-empty {\n padding: var(--wb-len-16) var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-tertiary);\n}.wb-sessionRow.wb-selected {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-panelTag {\n flex: none;\n margin-left: auto;\n}.wb-panelGlyph {\n position: relative;\n}.wb-panelDot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: var(--wb-len-neg-3);\n right: var(--wb-len-neg-3);\n}button[class$=_workspace] {\n display: none;\n}\n";
@@ -14760,7 +15449,7 @@ function messagesOf(units) {
14760
15449
  ...face.messages === void 0 ? {} : { messages: face.messages }
14761
15450
  }));
14762
15451
  }
14763
- var COMPONENT_CSS_MARKER = ".wb-activityBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding-top: var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-activityBlock:first-child {\n padding-top: 0;\n border-top: none;\n}\n\n.wb-activityBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}\n\n.wb-activityLine {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-activityLineText {\n flex: none;\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n max-height: var(--wb-len-72);\n overflow-y: auto;\n}\n\n.wb-activityLineAt {\n flex: none;\n margin-left: auto;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-activityLine > .wb-activityLineAt,\n.wb-activityLine > .wb-activityLineActions {\n margin-left: auto;\n}\n\n.wb-activityLine > .wb-activityLineAt + .wb-activityLineActions {\n margin-left: 0;\n}\n\n.wb-activityLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-activityActionFailed {\n color: var(--dsw-alias-state-error-primary);\n}\n.wb-note {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-problem {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n}\n.wb-approvalRow {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n.wb-approvalLabel {\n flex: none;\n width: var(--wb-len-56);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n.wb-cardHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-8) var(--wb-card-gutter);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-cardTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-cardMeta {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-cardMeta::before {\n content: '\\00b7';\n margin-right: var(--wb-len-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen ~ .wb-cardRefresh {\n margin-left: 0;\n}\n\n.wb-cardOpen:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh {\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardRefresh:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-cardGear {\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-3);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardGear:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n.wb-card {\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: none;\n}\n.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-card-gutter);\n font-size: var(--dsw-font-xxs-12-font-size);\n}\n.wb-cardBleed {\n margin-inline: calc(-1 * var(--wb-card-gutter));\n}\n._anchor_yq4s2_1 {\n display: contents;\n}\n.wb-spinner {\n display: inline-flex;\n align-items: center;\n flex: none;\n}\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n background: transparent;\n}\n\n.wb-choiceMenu[data-variant='boxed'] {\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-choiceOption {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-choiceOptionOn {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-checkbox {\n position: absolute;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.wb-checkboxBox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xs);\n corner-shape: round;\n color: var(--dsw-alias-label-primary-foreground);\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-choiceOption:hover .wb-checkboxBox {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-checkbox:checked + .wb-checkboxBox {\n border-color: var(--dsw-alias-brand-primary);\n background: var(--dsw-alias-brand-primary);\n}\n\n.wb-checkbox:disabled + .wb-checkboxBox {\n cursor: default;\n}\n\n.wb-checkbox:focus-visible + .wb-checkboxBox {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.wb-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceOption:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n\n.wb-choiceOption:has(:disabled),\n.wb-choiceOption:has(:disabled):hover {\n background: transparent;\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.wb-choiceLabelText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceLabel:has(.wb-choiceDescription) .wb-choiceLabelText {\n overflow: visible;\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.wb-choiceDescription {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n.wb-choiceLoading {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-choiceLoadingText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceEmpty {\n display: flex;\n align-items: center;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio {\n appearance: none;\n -webkit-appearance: none;\n flex: none;\n box-sizing: border-box;\n width: var(--wb-len-12);\n height: var(--wb-len-12);\n margin: 0;\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: 50%;\n corner-shape: round;\n background-color: transparent;\n cursor: pointer;\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-radio:not(:checked):hover {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio:checked {\n border-color: var(--dsw-alias-brand-primary);\n background-image: radial-gradient(\n circle at center,\n var(--dsw-alias-brand-primary) 0 3px,\n transparent 3px\n );\n}\n\n.wb-radio:disabled {\n cursor: default;\n}\n\n.wb-radio:focus-visible {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.wb-formActions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n\n.wb-formActionDanger {\n color: var(--dsw-alias-state-error-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n.wb-rows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n}\n.wb-rows > :not(.wb-row) {\n grid-column: 1 / -1;\n}\n.wb-row {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}\n.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.wb-rowKey {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-rowValue {\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-rows > .wb-row {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-rows > .wb-row {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-confirmBar {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-confirmBarTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 600;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-confirmBarHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.wb-field {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n.wb-fieldLabel {\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-fieldHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-field:has(:disabled) .wb-fieldLabel {\n opacity: 0.4;\n}\n.wb-formRows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-12);\n}\n\n.wb-formRows > :not(.wb-formRow) {\n grid-column: 1 / -1;\n}\n\n.wb-formRow {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: center;\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-8);\n}\n\n.wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n align-items: stretch;\n gap: var(--wb-len-6);\n}\n\n.wb-formRows > .wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.wb-formLabel {\n justify-self: start;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: nowrap;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formLabel {\n white-space: normal;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formHint,\n.wb-formRow[data-layout='stacked'] .wb-formProblem {\n grid-column: 1 / -1;\n}\n\n.wb-formControl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.wb-formControl\n > :where(\n .wb-selectAnchor,\n .wb-choiceMenu,\n input:not(\n [type='checkbox'],\n [type='radio'],\n [type='button'],\n [type='submit'],\n [type='reset'],\n [type='image'],\n [type='color'],\n [type='range']\n ),\n select,\n textarea\n ) {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n}\n\n.wb-formHint {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-formProblem {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(.wb-formProblem) .wb-formLabel {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(:disabled) .wb-formLabel {\n opacity: 0.4;\n}\n\n.wb-formRows > .wb-formRow {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-formRows > .wb-formRow {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-form {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n width: 100%;\n}\n:where(.wb-link) {\n margin-left: var(--wb-len-2);\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: baseline;\n}\n\n:where(.wb-link:hover) {\n text-decoration: underline;\n}\n\n:where(.wb-link:focus-visible) {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n.wb-longTask {\n padding-top: var(--wb-len-12);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n.wb-longTaskHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n}\n\n.wb-longTaskLink {\n flex: none;\n}\n\n.wb-longTaskHeadline {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-longTaskProblem {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-longTaskDump {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-longTaskDump pre {\n margin: var(--wb-len-4) 0 0;\n max-height: var(--wb-len-220);\n overflow: auto;\n}\n\n.wb-longTaskStop {\n display: inline-flex;\n flex: none;\n align-items: center;\n align-self: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n padding: 0;\n margin-left: auto;\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-specific-menu);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-longTaskStop:hover:not(:disabled),\n.wb-longTaskStop:focus-visible {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStop:disabled {\n cursor: default;\n}\n\n.wb-longTaskStopArmed,\n.wb-longTaskStopArmed:hover:not(:disabled),\n.wb-longTaskStopArmed:focus-visible {\n gap: var(--wb-len-4);\n width: auto;\n padding: 0 var(--wb-len-7);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStopLabel {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n.wb-longTaskStopWhy {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-centered.wb-centeredCompact {\n flex: none;\n min-height: 0;\n gap: var(--wb-len-8);\n padding: var(--wb-len-20) var(--wb-len-16);\n}\n\n.wb-centered.wb-centeredCompact .wb-centeredHero {\n margin-bottom: var(--wb-len-4);\n}\n\n.wb-skeleton {\n display: flex;\n flex-direction: column;\n}\n\n.wb-skeletonRow {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-skeletonRow + .wb-skeletonRow::before {\n content: '';\n align-self: stretch;\n height: var(--wb-len-0-5);\n margin: 0 var(--wb-len-8) var(--wb-len-neg-0-5);\n background: var(--dsw-alias-border-l2);\n}\n\n.wb-skeletonBar {\n display: block;\n height: var(--wb-len-13);\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-bg-skeleton);\n animation: wb-skeleton-pulse var(--wb-dur-1-4) var(--ds-ease-in-out) infinite;\n}\n\n.wb-skeletonBarTitle {\n width: 62%;\n}\n\n.wb-skeletonBarMeta {\n width: 32%;\n height: var(--wb-len-10);\n}\n\n.wb-skeletonRow:nth-child(2n) .wb-skeletonBarTitle {\n width: 74%;\n}\n\n.wb-skeletonRow:nth-child(3n) .wb-skeletonBarTitle {\n width: 52%;\n}\n\n@keyframes wb-skeleton-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.wb-centered {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--wb-len-14);\n flex: 1;\n min-height: var(--wb-len-240);\n padding: 0 var(--wb-len-24) var(--wb-len-24);\n text-align: center;\n}\n\n.wb-centeredHero {\n display: flex;\n margin-bottom: var(--wb-len-16);\n color: var(--dsw-alias-label-dimmed);\n}\n\n.wb-centeredTitle {\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-centeredHint {\n max-width: var(--wb-len-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-centeredDetail {\n max-width: var(--wb-len-320);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-dimmed);\n word-break: break-all;\n}\n\n.wb-centeredAction {\n display: flex;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}\n.wb-textField {\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n outline: none;\n}\n\n.wb-textField:focus {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-textField:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-textField[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-textField[aria-invalid='true']:focus {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n:where(.wb-textField) {\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n}\n:where(.wb-selectTrigger) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n text-align: left;\n cursor: pointer;\n}\n\n.wb-selectTrigger:focus-visible {\n outline: none;\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true']:focus-visible {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-selectLoading:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n background: transparent;\n font-size: var(--wb-font-row);\n}\n\n.wb-selectGhost:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-selectGhost:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n border-color: transparent;\n box-shadow: none;\n}\n\n.wb-selectIconOnly {\n width: var(--wb-len-36);\n height: var(--wb-len-36);\n min-height: 0;\n gap: 0;\n padding: 0;\n justify-content: center;\n}\n\n.wb-selectReveal {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.wb-selectIconOnly .wb-selectIcon {\n width: 100%;\n height: 100%;\n}\n\n.wb-selectAnchor {\n display: block;\n width: 100%;\n}\n\n.wb-selectIcon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectValue {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n.wb-selectPlaceholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n}\n\n.wb-selectMenu {\n min-width: var(--wb-len-240);\n max-width: var(--wb-len-360);\n max-height: min(var(--wb-len-320), calc(100vh - var(--wb-len-24)));\n}\n\n:where(.wb-selectSearch) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n.wb-selectSearch:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectSearch.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: 0.5px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-selectSearch.wb-selectGhost:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: none;\n}\n\n.wb-selectSearchIcon {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-textField.wb-selectSearchInput {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n.wb-textField.wb-selectSearchInput:focus {\n box-shadow: none;\n}\n\n.wb-selectFallback {\n width: 100%;\n}\n\n.wb-selectHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\nsection.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-len-16);\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-settings-card-fill);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.wb-settings .wb-settingsTitle {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-strong-14-font-size);\n line-height: var(--wb-line-24);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\n.wb-stateBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-stateBlockTitle {\n margin: 0;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n.wb-stateBlockHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-stateBlockActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n.wb-stateBlockResolving {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_1idrk_1 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._marketRow_1idrk_10 {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n column-gap: var(--wb-len-14);\n row-gap: var(--wb-len-4);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketIcon_1idrk_20 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_1idrk_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_1idrk_39 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketStatus_1idrk_48 {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketStateText_1idrk_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_1idrk_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_1idrk_66 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketName_1idrk_39 ._marketVersion_1idrk_72 {\n margin-left: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n}\n\n._marketVersion_1idrk_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_1idrk_72::before {\n content: '';\n display: inline-block;\n width: var(--wb-len-1);\n height: var(--wb-len-10);\n margin: 0 var(--wb-len-8) 0 var(--wb-len-2);\n vertical-align: -1px;\n background: var(--dsw-alias-border-l2);\n}\n\n._marketLocalTag_1idrk_94 {\n margin-left: var(--wb-len-8);\n padding: 0 var(--wb-len-6);\n border: var(--wb-len-1) solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-caption);\n}\n\n._marketEnd_1idrk_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1idrk_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1idrk_112::before {\n content: '';\n width: 0;\n height: var(--wb-len-14);\n border-left: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketActions_1idrk_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_1idrk_131 {\n color: var(--dsw-alias-state-warn-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._marketSelfDivider_1idrk_137 {\n height: 0;\n margin-top: calc(0px - var(--wb-len-16));\n border-top: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketSection_1idrk_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_1idrk_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_1idrk_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_1idrk_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_1idrk_169 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionQuiet_1idrk_175 ._marketSectionTitle_1idrk_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1idrk_175 ._marketName_1idrk_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1idrk_175 ._marketIcon_1idrk_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n._marketProgress_1idrk_188 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-height: var(--wb-len-32);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketNote_1idrk_198 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-warn-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailure_1idrk_205 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketEmpty_1idrk_212 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_1idrk_217 {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-32);\n padding: 0 clamp(var(--wb-len-24), 4vw, var(--wb-len-48)) var(--wb-len-48);\n overflow-x: hidden;\n overflow-y: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_1idrk_217 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_1idrk_235 {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-16);\n padding-top: var(--wb-len-28);\n}\n\n._marketPageTitle_1idrk_243 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_1idrk_248 {\n margin: var(--wb-len-4) 0 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketPageTools_1idrk_254 {\n flex: none;\n align-self: center;\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: var(--wb-len-16);\n}\n\n._marketPanel_1idrk_263 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_1idrk_263[hidden] {\n display: none;\n}\n\n._marketTabs_1idrk_273 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_1idrk_278 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketIconButton_1idrk_283 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-caption);\n cursor: pointer;\n}\n\n._marketIconButton_1idrk_283:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketIconButton_1idrk_283:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._marketIconWrap_1idrk_308 {\n display: inline-flex;\n}\n\n._marketIconButtonSpinning_1idrk_312 svg {\n animation: _wb-spin_1idrk_1 var(--wb-dur-0-9) linear infinite;\n}\n\n._marketAddButton_1idrk_316 {\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n border-radius: var(--dsw-radius-md);\n}\n\n._marketEmpty_1idrk_212 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) var(--wb-len-16);\n text-align: center;\n}\n\n._marketEmptyTitle_1idrk_333 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n@keyframes _wb-spin_1idrk_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n._discoverPage_1idrk_347 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_1idrk_354 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_1idrk_361 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_1idrk_367 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_1idrk_372 {\n min-width: 0;\n max-width: var(--wb-len-240);\n margin-left: calc(0px - var(--wb-len-8));\n font-weight: 500;\n}\n\n._discoverMarketName_1idrk_379 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_1idrk_385 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_1idrk_390 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_1idrk_395 {\n flex: none;\n}\n\n._discoverSearch_1idrk_399 {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 var(--wb-len-120);\n min-width: var(--wb-len-120);\n}\n\n._discoverSearchField_1idrk_407 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_1idrk_412 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_1idrk_407 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_1idrk_399 ._discoverSearchClear_1idrk_421 {\n position: absolute;\n top: 50%;\n inset-inline-end: var(--wb-len-4);\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n transform: translateY(-50%);\n}\n\n._discoverSearchClear_1idrk_421:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_1idrk_361 {\n display: grid;\n grid-template-columns: minmax(0, auto) minmax(var(--wb-len-120), 1fr) auto;\n grid-template-areas:\n 'market search refresh'\n 'labels sort sort';\n }\n\n ._discoverMarket_1idrk_367 {\n grid-area: market;\n }\n\n ._discoverMarketButton_1idrk_372 {\n margin-left: 0;\n }\n\n ._discoverLabels_1idrk_385 {\n grid-area: labels;\n }\n\n ._discoverSearch_1idrk_399 {\n grid-area: search;\n }\n\n ._discoverSort_1idrk_390 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_1idrk_395 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_1idrk_472 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_1idrk_479 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._discoverCard_1idrk_488 {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n margin: 0 calc(0px - var(--wb-len-8));\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCard_1idrk_488:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_1idrk_502 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverArtworkImage_1idrk_514 {\n object-fit: contain;\n}\n\n._discoverMain_1idrk_518 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_1idrk_526 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverCardOpen_1idrk_534 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n}\n\n._discoverCardOpen_1idrk_534::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_1idrk_534:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_1idrk_534:focus-visible::after {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverStrong_1idrk_565 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_1idrk_571 {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverMeta_1idrk_580 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._discoverMuted_1idrk_587 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_1idrk_593 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverBlocked_1idrk_602 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_1idrk_607 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) 0;\n text-align: center;\n}\n\n._discoverEmptyTitle_1idrk_616 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_1idrk_607 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_1idrk_626 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_1idrk_632 {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n padding: 0;\n border: 0;\n background: 0 0;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--wb-font-12-5);\n cursor: pointer;\n}\n\n._discoverCrumb_1idrk_632:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_1idrk_632:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverCrumbIcon_1idrk_655 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_1idrk_659 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_1idrk_665 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_1idrk_671 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._discoverDetailPanel_1idrk_678 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_1idrk_685 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_1idrk_690 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_1idrk_695 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_1idrk_700 {\n margin: var(--wb-len-16) 0 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverSection_1idrk_706 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_1idrk_713 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_1idrk_719 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_1idrk_724 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--wb-len-16);\n min-height: var(--wb-len-44);\n padding: var(--wb-len-8) var(--wb-len-2);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverFactKind_1idrk_734 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_1idrk_740 {\n min-width: 0;\n margin: 0;\n text-align: end;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xs-13);\n}\n\n._discoverCode_1idrk_748 {\n padding: var(--wb-len-2) var(--wb-len-6);\n border-radius: var(--wb-radius-6);\n background: var(--dsw-alias-bg-module-platform);\n font-family: var(--ds-font-family-code);\n font-size: var(--dsw-font-xxs-12-font-size);\n box-decoration-break: clone;\n}\n\n._discoverTags_1idrk_757 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_1idrk_764 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_1idrk_764:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_1idrk_774 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_1idrk_782 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverVersionName_1idrk_790 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_1idrk_795 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverFailure_1idrk_804 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_1idrk_810 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverNotice_1idrk_819 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverNotice_1idrk_819 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_1idrk_837 {\n align-self: center;\n}\n\n._discoverDialog_1idrk_841 {\n width: min(var(--wb-len-480), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_1idrk_845 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_1idrk_851 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_1idrk_859 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverSourceCurrent_1idrk_868 {\n flex: none;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceLoading_1idrk_875 {\n display: flex;\n flex: none;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceHint_1idrk_885 {\n display: flex;\n flex-basis: 100%;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverSourceHint_1idrk_885 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_1idrk_899 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_1idrk_905 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_1idrk_911 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_1idrk_916 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_1idrk_922 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_1idrk_927 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_1idrk_933 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_1idrk_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_1idrk_502._discoverSkeletonFill_1idrk_933 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_1idrk_942 {\n display: block;\n height: var(--wb-len-12);\n margin: var(--wb-len-4) 0;\n border-radius: var(--dsw-radius-xs);\n}\n\n._discoverSkeletonTitle_1idrk_949 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_1idrk_953 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_1idrk_1 {\n 0% {\n opacity: 1;\n }\n 40% {\n opacity: 0.6;\n }\n 80%,\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._discoverSkeletonFill_1idrk_933 {\n animation: none;\n }\n}\n\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1lv8f_1 {\n justify-content: center;\n width: 100%;\n height: var(--wb-len-40);\n border-radius: var(--dsw-radius-md);\n}\n\n._dialog_1lv8f_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1lv8f_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1lv8f_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1lv8f_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1lv8f_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._input_1lv8f_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1lv8f_45 {\n height: var(--wb-len-32);\n margin-left: var(--wb-len-26);\n padding: 0 var(--wb-len-10);\n}\n\n._options_1lv8f_51 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8) var(--wb-len-12);\n}\n\n._guideToggle_1lv8f_59 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-4);\n align-self: flex-start;\n margin-top: var(--wb-len-4);\n padding: 0;\n border: 0;\n background: transparent;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._guideToggle_1lv8f_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1lv8f_59 svg,\n._registryToggle_1lv8f_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1lv8f_59[aria-expanded='true'] svg,\n._registryToggle_1lv8f_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1lv8f_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1lv8f_78 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n height: var(--wb-len-26);\n padding: 0 var(--wb-len-8) 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n font: inherit;\n font-size: var(--wb-font-12-5);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._registryToggle_1lv8f_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1lv8f_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1lv8f_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1lv8f_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1lv8f_45 {\n position: fixed;\n z-index: var(--wb-z-1100);\n box-sizing: border-box;\n width: min(var(--wb-len-440), 100vw - var(--wb-len-24));\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-12);\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-2);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n box-shadow: var(--dsw-elevation-prominent);\n}\n\n._registryOption_1lv8f_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid transparent;\n border-radius: var(--dsw-radius-lg);\n cursor: pointer;\n}\n\nlabel._registryOption_1lv8f_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1lv8f_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1lv8f_143[data-checked='true'] {\n border-color: color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._registryOption_1lv8f_143 input[type='radio'] {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._registryTitle_1lv8f_179 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n font: var(--dsw-font-xs-13);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n._registryHint_1lv8f_189 {\n margin-left: var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._inputError_1lv8f_197 {\n margin: var(--wb-len-neg-4) 0 0 var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._guide_1lv8f_59 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._guideList_1lv8f_214 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._guideItem_1lv8f_223 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0;\n}\n\n._guideIndex_1lv8f_230 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._guideMain_1lv8f_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1lv8f_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1lv8f_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1lv8f_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1lv8f_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1lv8f_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1lv8f_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1lv8f_285 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0 var(--wb-len-4);\n text-align: center;\n}\n\n._heroIcon_1lv8f_294 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-44);\n height: var(--wb-len-44);\n color: var(--dsw-alias-label-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1lv8f_311 {\n margin: 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 500;\n color: var(--dsw-alias-label-secondary);\n}\n\n._wizardTitle_1lv8f_319 {\n margin: 0;\n font-size: var(--wb-font-18);\n line-height: var(--wb-len-26);\n font-weight: 600;\n}\n\n._subject_1lv8f_326 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n text-align: center;\n}\n\n._subjectName_1lv8f_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1lv8f_343,\n._subjectDesc_1lv8f_344 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._result_1lv8f_351,\n._resultWarn_1lv8f_352 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._resultWarn_1lv8f_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._resultMeta_1lv8f_365 {\n margin: 0;\n padding: 0 var(--wb-len-12);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._approval_1lv8f_373 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-state-warn-primary);\n border-radius: var(--dsw-radius-lg);\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._approvalTitle_1lv8f_383 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._approvalText_1lv8f_390 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1lv8f_396 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n font-weight: 600;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._note_1lv8f_403 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._noteWarn_1lv8f_410 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1lv8f_414 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1lv8f_418 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._detailLabel_1lv8f_425 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1lv8f_425 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-3);\n font-family: var(--dsw-font-mono, monospace);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n._note_1enlz_1 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._note_1enlz_1 > svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n._slot_1t7dx_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1t7dx_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1t7dx_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1t7dx_31 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._paused_1t7dx_35 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._trouble_1t7dx_39 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._pulse_1t7dx_43 {\n animation: _wb-debug-breathe_1t7dx_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-debug-breathe_1t7dx_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1t7dx_43 {\n animation: none;\n }\n}\n\n._entry_1t7dx_64 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1t7dx_71 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1t7dx_78 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1t7dx_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: 0;\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n}\n\n._act_1t7dx_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1t7dx_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._actStop_1t7dx_110:hover,\n._actStop_1t7dx_110:focus-visible {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._actArmed_1t7dx_115,\n._actArmed_1t7dx_115:hover,\n._actArmed_1t7dx_115:focus-visible {\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n width: auto;\n color: var(--dsw-alias-state-error-primary);\n gap: var(--wb-len-4);\n padding: 0 var(--wb-len-7);\n}\n\n._actLabel_1t7dx_125 {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._entryLine_1t7dx_131 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1t7dx_138 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1t7dx_150 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1t7dx_156 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1t7dx_162 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._slot_1gkj9_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1gkj9_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1gkj9_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1gkj9_31 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._done_1gkj9_35 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._pulse_1gkj9_39 {\n animation: _wb-record-breathe_1gkj9_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-record-breathe_1gkj9_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1gkj9_39 {\n animation: none;\n }\n}\n\n._entry_1gkj9_60 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1gkj9_67 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1gkj9_74 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1gkj9_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-22);\n padding: 0 var(--wb-len-7);\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._act_1gkj9_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1gkj9_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._entryLine_1gkj9_108 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1gkj9_115 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1gkj9_127 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1gkj9_133 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1gkj9_139 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._item_lyox9_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n}\n\n._item_lyox9_1 + ._item_lyox9_1 {\n padding-top: var(--wb-len-14);\n border-top: var(--wb-len-0-5) solid var(--dsw-alias-settings-card-stroke);\n}\n\n._head_lyox9_12 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._title_lyox9_19 {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._description_lyox9_31 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._rows_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._row_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-settings-card-stroke);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-settings-card-fill);\n}\n\n._head_85r3w_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._pick_85r3w_27 {\n flex: 0 1 auto;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._pick_85r3w_27 > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._code_85r3w_39 {\n --dsl-code-block-background: var(--dsw-alias-bg-layer-1);\n margin: 0;\n}\n\n._missing_85r3w_44,\n._conflict_85r3w_45 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-warn-primary);\n}\n._body_11oac_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._sources_11oac_7 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._sourcesLabel_11oac_14 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\nbutton._sourceOn_11oac_19 {\n border-color: var(--dsw-alias-brand-primary);\n}\n._sourceCount_11oac_22 {\n margin-left: var(--wb-len-4);\n font-variant-numeric: tabular-nums;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._reading_11oac_29 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._status_11oac_35 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failure_11oac_45 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n column-gap: var(--wb-len-10);\n row-gap: var(--wb-len-2);\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n\n._failureTitle_11oac_55 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._failureHint_11oac_62 {\n grid-column: 1;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failureAction_11oac_67 {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n}\n\n._foot_11oac_73 {\n display: flex;\n justify-content: flex-end;\n}\n._body_lox98_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._field_lox98_7 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._input_lox98_13 {\n width: 100%;\n}\n\n._label_lox98_17 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\n._hint_lox98_22 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._copy_lox98_28 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-8) var(--wb-len-16);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n._copy_lox98_28 legend {\n padding: 0;\n margin-bottom: var(--wb-len-6);\n}\n\n._actions_lox98_42 {\n display: flex;\n justify-content: flex-end;\n}\n\n._commandLabel_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n}\n\n._command_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-6) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow-wrap: anywhere;\n}\n._body_zi2j5_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._lead_zi2j5_7 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._title_zi2j5_14 {\n font-size: var(--wb-font-18);\n line-height: var(--wb-line-24);\n}\n._hint_zyzt3_1[hidden],\n._actions_zyzt3_2[hidden],\n._progress_zyzt3_3[hidden],\n._commandRow_zyzt3_4[hidden],\n._bridge_zyzt3_5[hidden],\n._raw_zyzt3_6[hidden] {\n display: none;\n}\n\n._gate_zyzt3_10 {\n position: fixed;\n inset: 0;\n z-index: var(--wb-z-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--wb-len-24);\n background: var(--dsw-alias-bg-base);\n}\n\n._card_zyzt3_21 {\n width: 100%;\n max-width: var(--wb-len-420);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-16);\n text-align: center;\n}\n\n._card_zyzt3_21:has(._actions_zyzt3_2:not([hidden])),\n._card_zyzt3_21:has(._bridge_zyzt3_5:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_zyzt3_36 {\n margin: 0;\n font-size: var(--dsw-font-base-16-font-size);\n line-height: var(--wb-line-24);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._steps_zyzt3_51 {\n list-style: none;\n margin: var(--wb-len-6) 0 0;\n padding: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n text-align: left;\n}\n\n._step_zyzt3_51 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-6) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._step_zyzt3_51[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_zyzt3_78 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-14);\n height: var(--wb-len-14);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._step_zyzt3_51[data-status='ok'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_zyzt3_51[data-status='warn'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_zyzt3_51[data-status='failed'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_zyzt3_103 {\n flex: none;\n}\n\n._detail_zyzt3_107 {\n margin-left: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._progress_zyzt3_3 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._elapsed_zyzt3_125 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._error_zyzt3_133 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n max-height: var(--wb-len-120);\n overflow: auto;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n white-space: pre-wrap;\n word-break: break-all;\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._commandRow_zyzt3_4 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n margin: 0 0 var(--wb-len-8);\n padding-right: var(--wb-len-4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._copy_zyzt3_159 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._copy_zyzt3_159:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_zyzt3_4 {\n flex: 1;\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-primary);\n}\n\n._buttons_zyzt3_192 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_zyzt3_199 {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n justify-content: center;\n background: var(--dsw-alias-bg-base);\n}\n\n._button_zyzt3_192 {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n\n._button_zyzt3_192:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_zyzt3_192:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_zyzt3_2,\n._bridge_zyzt3_5 {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-14) var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-1);\n text-align: left;\n}\n\n._fixTitle_zyzt3_250 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._actions_zyzt3_2 ._hint_zyzt3_1,\n._bridge_zyzt3_5 ._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._actions_zyzt3_2 ._commandRow_zyzt3_4,\n._bridge_zyzt3_5 ._commandRow_zyzt3_4 {\n margin: 0;\n}\n\n._actions_zyzt3_2 ._buttons_zyzt3_192,\n._bridge_zyzt3_5 ._buttons_zyzt3_192 {\n justify-content: flex-start;\n}\n\n._raw_zyzt3_6 {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._rawSummary_zyzt3_286 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_zyzt3_2 ._error_zyzt3_133,\n._bridge_zyzt3_5 ._error_zyzt3_133 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_zyzt3_296 {\n margin: 0;\n padding-left: var(--wb-len-18);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._bridgeLine_zyzt3_296 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_zyzt3_313 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_zyzt3_313::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_zyzt3_313:hover {\n text-decoration: underline;\n}\n\n._loading_zyzt3_327 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_zyzt3_327[hidden] {\n display: none;\n}\n\n._loadingMotion_zyzt3_336 {\n transform-origin: center;\n animation: _wb-spin_zyzt3_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_zyzt3_341,\n._loadingArc_zyzt3_342 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_zyzt3_341 {\n opacity: 0.25;\n}\n\n._loadingArc_zyzt3_342 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_zyzt3_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_zyzt3_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_zyzt3_1 {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }\n to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._loadingMotion_zyzt3_336,\n ._loadingArc_zyzt3_342 {\n animation: none;\n }\n}\n._changelog_1q6pj_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-10);\n min-width: 0;\n}\n\n._changelogTitle_1q6pj_9 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._changelogMissing_1q6pj_15 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._changelogBody_1q6pj_21 {\n max-height: var(--wb-len-320);\n overflow: auto;\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._trigger_15ptp_1 {\n display: flex;\n align-items: center;\n}\n\n._pop_15ptp_6 {\n position: absolute;\n top: calc(var(--wb-len-38) + var(--wb-len-8));\n right: var(--wb-len-6);\n z-index: var(--wb-z-30);\n width: min(var(--wb-len-360), calc(100% - var(--wb-len-12)));\n max-width: calc(100vw - var(--wb-len-48));\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-2);\n box-shadow: var(--dsw-shadow-lv3);\n overflow: hidden;\n}\n\n._head_15ptp_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10) var(--wb-len-12) var(--wb-len-9) var(--wb-len-14);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._title_15ptp_28 {\n flex: 1;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._rowControls_15ptp_36 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._reset_15ptp_43 {\n flex: none;\n padding: var(--wb-len-3) var(--wb-len-8);\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._reset_15ptp_43:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_15ptp_43:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_15ptp_65 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._row_15ptp_36 {\n position: relative;\n display: grid;\n grid-template-columns: 12px minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-sm);\n cursor: default;\n}\n\n._rowDragging_15ptp_85 {\n cursor: grabbing;\n}\n\n._rowBlocked_15ptp_89 {\n cursor: not-allowed;\n}\n\n._listDragging_15ptp_93 ._rowControls_15ptp_36 {\n pointer-events: none;\n}\n\n._row_15ptp_36:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOff_15ptp_101 {\n opacity: 0.55;\n}\n\n._rowOff_15ptp_101:hover {\n opacity: 1;\n}\n\n._rowOver_15ptp_109::before {\n content: '';\n position: absolute;\n top: var(--wb-len-neg-3);\n left: var(--wb-len-8);\n right: var(--wb-len-8);\n height: var(--wb-len-2);\n background: var(--dsw-alias-brand-primary);\n}\n\n._ghost_15ptp_119 {\n position: fixed;\n z-index: var(--wb-z-40);\n pointer-events: none;\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--wb-static-shadow-ghost);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n white-space: nowrap;\n}\n\n._grip_15ptp_134 {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: center;\n color: var(--dsw-alias-label-tertiary);\n user-select: none;\n cursor: grab;\n touch-action: none;\n}\n\n._gripDragging_15ptp_144 {\n cursor: grabbing;\n}\n\n._gripBlocked_15ptp_148 {\n cursor: not-allowed;\n}\n\n._label_15ptp_152 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_15ptp_159 {\n min-width: 0;\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n\n._error_15ptp_170 {\n margin: 0;\n padding: 0 var(--wb-len-14) var(--wb-len-10);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._dep_15ptp_178 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n._group_15ptp_186 {\n padding-top: var(--wb-len-6);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._groupTitle_15ptp_191 {\n margin: 0;\n padding: var(--wb-len-2) var(--wb-len-8) 0 var(--wb-len-14);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n font-weight: 400;\n color: var(--dsw-alias-label-tertiary);\n}\n._panel_1whum_1 {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: var(--wb-z-10);\n visibility: hidden;\n}\n\n._panel_1whum_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1whum_1[data-open] {\n visibility: visible;\n}\n\n._columns_1whum_18 {\n display: block;\n column-gap: var(--wb-len-12);\n}\n\n._cell_1whum_23 {\n display: flow-root;\n min-width: 0;\n break-inside: avoid;\n margin-bottom: var(--wb-len-12);\n}\n._root_1cmz0_1 {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}\n\n._rail_1cmz0_7 {\n margin: 0 0 var(--wb-len-4);\n}\n\n._glyphBox_1cmz0_11 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n._glyph_1cmz0_11 {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._glyphActive_1cmz0_30 {\n color: var(--dsw-alias-state-business-primary);\n}\n\n._triggerName_1cmz0_34 {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n._dir_1cmz0_45 {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._name_1cmz0_53 {\n flex: 0 1 auto;\n max-width: 50%;\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._triggerName_1cmz0_34 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._row_1cmz0_66 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n width: 100%;\n min-width: 0;\n}\n\n._trailing_1cmz0_74 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n margin-inline-start: auto;\n}\n\n._trailing_1cmz0_74 ._rowAction_1cmz0_84 {\n width: var(--wb-len-20);\n min-width: var(--wb-len-20);\n height: var(--wb-len-20);\n min-height: var(--wb-len-20);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n}\n\n._row_1cmz0_66 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._current_1cmz0_97 {\n flex: none;\n display: inline-flex;\n align-items: center;\n color: var(--dsw-alias-label-primary);\n}\n._dot_sosf1_1 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n._overlay_sosf1_8 {\n position: absolute;\n inset-block-start: var(--wb-len-neg-3);\n inset-inline-end: var(--wb-len-neg-3);\n}\n._tag_g9dg8_1 {\n flex: none;\n margin-inline-start: auto;\n}\n._dialog_1vye5_1 {\n width: min(var(--wb-len-420), 100%);\n}\n\n._stack_1vye5_5 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._input_1vye5_12 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-12);\n}\n\n._meta_1vye5_18 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n._dot_14w1n_1 {\n display: inline-flex;\n align-items: center;\n}\n\n._hover_14w1n_6 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._blocker_1oaj0_1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-20) var(--wb-len-16);\n text-align: center;\n}\n\n._icon_1oaj0_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_1oaj0_15 {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_1oaj0_23 {\n margin: 0;\n max-width: var(--wb-len-42em);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n text-wrap: pretty;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 {\n align-items: flex-start;\n gap: var(--wb-len-6);\n padding: var(--wb-len-4) 0 var(--wb-len-2);\n text-align: left;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._title_1oaj0_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._hint_1oaj0_23 {\n max-width: 100%;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._actions_1oaj0_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._raw_1oaj0_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_1oaj0_48 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-6);\n}\n\n._raw_1oaj0_52 {\n margin-top: var(--wb-len-10);\n width: 100%;\n max-width: var(--wb-len-360);\n text-align: left;\n}\n\n._notice_1oaj0_71 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--wb-len-10);\n margin: 0 0 var(--wb-len-10);\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-left: 2px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._notice_1oaj0_71._noticeFlat_1oaj0_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_1oaj0_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_1oaj0_98 {\n font-size: var(--wb-font-12-5);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._noticeHint_1oaj0_105 {\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._noticeActions_1oaj0_112 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-neg-2);\n}\n\n._failure_1oaj0_119 {\n margin: var(--wb-len-8) 0 0;\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._failureDetail_1oaj0_127 {\n display: block;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-label-tertiary);\n white-space: pre-wrap;\n}\n\n._inlineAction_1oaj0_134 {\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n._inlineAction_1oaj0_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n\n._rawText_1oaj0_146 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
15452
+ var COMPONENT_CSS_MARKER = ".wb-activityBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding-top: var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-activityBlock:first-child {\n padding-top: 0;\n border-top: none;\n}\n\n.wb-activityBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}\n\n.wb-activityLine {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-activityLineText {\n flex: none;\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n max-height: var(--wb-len-72);\n overflow-y: auto;\n}\n\n.wb-activityLineAt {\n flex: none;\n margin-left: auto;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-activityLine > .wb-activityLineAt,\n.wb-activityLine > .wb-activityLineActions {\n margin-left: auto;\n}\n\n.wb-activityLine > .wb-activityLineAt + .wb-activityLineActions {\n margin-left: 0;\n}\n\n.wb-activityLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-activityActionFailed {\n color: var(--dsw-alias-state-error-primary);\n}\n.wb-note {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-problem {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n}\n.wb-approvalRow {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n.wb-approvalLabel {\n flex: none;\n width: var(--wb-len-56);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n.wb-cardHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-8) var(--wb-card-gutter);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-cardTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-cardMeta {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-cardMeta::before {\n content: '\\00b7';\n margin-right: var(--wb-len-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen ~ .wb-cardRefresh {\n margin-left: 0;\n}\n\n.wb-cardOpen:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh {\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardRefresh:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-cardGear {\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-3);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardGear:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n.wb-card {\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: none;\n}\n.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-card-gutter);\n font-size: var(--dsw-font-xxs-12-font-size);\n}\n.wb-cardBleed {\n margin-inline: calc(-1 * var(--wb-card-gutter));\n}\n._anchor_yq4s2_1 {\n display: contents;\n}\n.wb-spinner {\n display: inline-flex;\n align-items: center;\n flex: none;\n}\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n background: transparent;\n}\n\n.wb-choiceMenu[data-variant='boxed'] {\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-choiceOption {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-choiceOptionOn {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-checkbox {\n position: absolute;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.wb-checkboxBox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xs);\n corner-shape: round;\n color: var(--dsw-alias-label-primary-foreground);\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-choiceOption:hover .wb-checkboxBox {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-checkbox:checked + .wb-checkboxBox {\n border-color: var(--dsw-alias-brand-primary);\n background: var(--dsw-alias-brand-primary);\n}\n\n.wb-checkbox:disabled + .wb-checkboxBox {\n cursor: default;\n}\n\n.wb-checkbox:focus-visible + .wb-checkboxBox {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.wb-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceOption:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n\n.wb-choiceOption:has(:disabled),\n.wb-choiceOption:has(:disabled):hover {\n background: transparent;\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.wb-choiceLabelText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceLabel:has(.wb-choiceDescription) .wb-choiceLabelText {\n overflow: visible;\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.wb-choiceDescription {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n.wb-choiceLoading {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-choiceLoadingText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceEmpty {\n display: flex;\n align-items: center;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio {\n appearance: none;\n -webkit-appearance: none;\n flex: none;\n box-sizing: border-box;\n width: var(--wb-len-12);\n height: var(--wb-len-12);\n margin: 0;\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: 50%;\n corner-shape: round;\n background-color: transparent;\n cursor: pointer;\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-radio:not(:checked):hover {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio:checked {\n border-color: var(--dsw-alias-brand-primary);\n background-image: radial-gradient(\n circle at center,\n var(--dsw-alias-brand-primary) 0 3px,\n transparent 3px\n );\n}\n\n.wb-radio:disabled {\n cursor: default;\n}\n\n.wb-radio:focus-visible {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.wb-formActions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n\n.wb-formActionDanger {\n color: var(--dsw-alias-state-error-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n.wb-rows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n}\n.wb-rows > :not(.wb-row) {\n grid-column: 1 / -1;\n}\n.wb-row {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}\n.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.wb-rowKey {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-rowValue {\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-rows > .wb-row {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-rows > .wb-row {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-confirmBar {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-confirmBarTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 600;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-confirmBarHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.wb-field {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n.wb-fieldLabel {\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-fieldHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-field:has(:disabled) .wb-fieldLabel {\n opacity: 0.4;\n}\n.wb-formRows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-12);\n}\n\n.wb-formRows > :not(.wb-formRow) {\n grid-column: 1 / -1;\n}\n\n.wb-formRow {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: center;\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-8);\n}\n\n.wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n align-items: stretch;\n gap: var(--wb-len-6);\n}\n\n.wb-formRows > .wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.wb-formLabel {\n justify-self: start;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: nowrap;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formLabel {\n white-space: normal;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formHint,\n.wb-formRow[data-layout='stacked'] .wb-formProblem {\n grid-column: 1 / -1;\n}\n\n.wb-formControl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.wb-formControl\n > :where(\n .wb-selectAnchor,\n .wb-choiceMenu,\n input:not(\n [type='checkbox'],\n [type='radio'],\n [type='button'],\n [type='submit'],\n [type='reset'],\n [type='image'],\n [type='color'],\n [type='range']\n ),\n select,\n textarea\n ) {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n}\n\n.wb-formHint {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-formProblem {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(.wb-formProblem) .wb-formLabel {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(:disabled) .wb-formLabel {\n opacity: 0.4;\n}\n\n.wb-formRows > .wb-formRow {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-formRows > .wb-formRow {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-form {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n width: 100%;\n}\n:where(.wb-link) {\n margin-left: var(--wb-len-2);\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: baseline;\n}\n\n:where(.wb-link:hover) {\n text-decoration: underline;\n}\n\n:where(.wb-link:focus-visible) {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n.wb-longTask {\n padding-top: var(--wb-len-12);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n.wb-longTaskHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n}\n\n.wb-longTaskLink {\n flex: none;\n}\n\n.wb-longTaskHeadline {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-longTaskProblem {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-longTaskDump {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-longTaskDump pre {\n margin: var(--wb-len-4) 0 0;\n max-height: var(--wb-len-220);\n overflow: auto;\n}\n\n.wb-longTaskStop {\n display: inline-flex;\n flex: none;\n align-items: center;\n align-self: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n padding: 0;\n margin-left: auto;\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-specific-menu);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-longTaskStop:hover:not(:disabled),\n.wb-longTaskStop:focus-visible {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStop:disabled {\n cursor: default;\n}\n\n.wb-longTaskStopArmed,\n.wb-longTaskStopArmed:hover:not(:disabled),\n.wb-longTaskStopArmed:focus-visible {\n gap: var(--wb-len-4);\n width: auto;\n padding: 0 var(--wb-len-7);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStopLabel {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n.wb-longTaskStopWhy {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-centered.wb-centeredCompact {\n flex: none;\n min-height: 0;\n gap: var(--wb-len-8);\n padding: var(--wb-len-20) var(--wb-len-16);\n}\n\n.wb-centered.wb-centeredCompact .wb-centeredHero {\n margin-bottom: var(--wb-len-4);\n}\n\n.wb-skeleton {\n display: flex;\n flex-direction: column;\n}\n\n.wb-skeletonRow {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-skeletonRow + .wb-skeletonRow::before {\n content: '';\n align-self: stretch;\n height: var(--wb-len-0-5);\n margin: 0 var(--wb-len-8) var(--wb-len-neg-0-5);\n background: var(--dsw-alias-border-l2);\n}\n\n.wb-skeletonBar {\n display: block;\n height: var(--wb-len-13);\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-bg-skeleton);\n animation: wb-skeleton-pulse var(--wb-dur-1-4) var(--ds-ease-in-out) infinite;\n}\n\n.wb-skeletonBarTitle {\n width: 62%;\n}\n\n.wb-skeletonBarMeta {\n width: 32%;\n height: var(--wb-len-10);\n}\n\n.wb-skeletonRow:nth-child(2n) .wb-skeletonBarTitle {\n width: 74%;\n}\n\n.wb-skeletonRow:nth-child(3n) .wb-skeletonBarTitle {\n width: 52%;\n}\n\n@keyframes wb-skeleton-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.wb-centered {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--wb-len-14);\n flex: 1;\n min-height: var(--wb-len-240);\n padding: 0 var(--wb-len-24) var(--wb-len-24);\n text-align: center;\n}\n\n.wb-centeredHero {\n display: flex;\n margin-bottom: var(--wb-len-16);\n color: var(--dsw-alias-label-dimmed);\n}\n\n.wb-centeredTitle {\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-centeredHint {\n max-width: var(--wb-len-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-centeredDetail {\n max-width: var(--wb-len-320);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-dimmed);\n word-break: break-all;\n}\n\n.wb-centeredAction {\n display: flex;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}\n.wb-textField {\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n outline: none;\n}\n\n.wb-textField:focus {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-textField:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-textField[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-textField[aria-invalid='true']:focus {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n:where(.wb-textField) {\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n}\n:where(.wb-selectTrigger) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n text-align: left;\n cursor: pointer;\n}\n\n.wb-selectTrigger:focus-visible {\n outline: none;\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true']:focus-visible {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-selectLoading:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n background: transparent;\n font-size: var(--wb-font-row);\n}\n\n.wb-selectGhost:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-selectGhost:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n border-color: transparent;\n box-shadow: none;\n}\n\n.wb-selectIconOnly {\n width: var(--wb-len-36);\n height: var(--wb-len-36);\n min-height: 0;\n gap: 0;\n padding: 0;\n justify-content: center;\n}\n\n.wb-selectReveal {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.wb-selectIconOnly .wb-selectIcon {\n width: 100%;\n height: 100%;\n}\n\n.wb-selectAnchor {\n display: block;\n width: 100%;\n}\n\n.wb-selectIcon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectValue {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n.wb-selectPlaceholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n}\n\n.wb-selectMenu {\n min-width: var(--wb-len-240);\n max-width: var(--wb-len-360);\n max-height: min(var(--wb-len-320), calc(100vh - var(--wb-len-24)));\n}\n\n:where(.wb-selectSearch) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n.wb-selectSearch:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectSearch.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: 0.5px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-selectSearch.wb-selectGhost:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: none;\n}\n\n.wb-selectSearchIcon {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-textField.wb-selectSearchInput {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n.wb-textField.wb-selectSearchInput:focus {\n box-shadow: none;\n}\n\n.wb-selectFallback {\n width: 100%;\n}\n\n.wb-selectHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\nsection.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-len-16);\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-settings-card-fill);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.wb-settings .wb-settingsTitle {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-strong-14-font-size);\n line-height: var(--wb-line-24);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\n.wb-stateBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-stateBlockTitle {\n margin: 0;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n.wb-stateBlockHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-stateBlockActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n.wb-stateBlockResolving {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_jfyof_1 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._marketRow_jfyof_10 {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n column-gap: var(--wb-len-14);\n row-gap: var(--wb-len-4);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketIcon_jfyof_20 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_jfyof_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_jfyof_39 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketStatus_jfyof_48 {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketStateText_jfyof_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_jfyof_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_jfyof_66 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketName_jfyof_39 ._marketVersion_jfyof_72 {\n margin-left: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n}\n\n._marketVersion_jfyof_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_jfyof_72::before {\n content: '';\n display: inline-block;\n width: var(--wb-len-1);\n height: var(--wb-len-10);\n margin: 0 var(--wb-len-8) 0 var(--wb-len-2);\n vertical-align: -1px;\n background: var(--dsw-alias-border-l2);\n}\n\n._marketLocalTag_jfyof_94 {\n margin-left: var(--wb-len-8);\n padding: 0 var(--wb-len-6);\n border: var(--wb-len-1) solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-caption);\n}\n\n._marketEnd_jfyof_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_jfyof_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_jfyof_112::before {\n content: '';\n width: 0;\n height: var(--wb-len-14);\n border-left: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketActions_jfyof_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_jfyof_131 {\n color: var(--dsw-alias-state-warn-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._marketSelfDivider_jfyof_137 {\n height: 0;\n margin-top: calc(0px - var(--wb-len-16));\n border-top: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketSection_jfyof_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_jfyof_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_jfyof_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_jfyof_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_jfyof_169 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionQuiet_jfyof_175 ._marketSectionTitle_jfyof_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_jfyof_175 ._marketName_jfyof_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_jfyof_175 ._marketIcon_jfyof_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n\n._marketProgress_jfyof_188 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-height: var(--wb-len-32);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketNote_jfyof_198 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-warn-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailure_jfyof_205 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketEmpty_jfyof_212 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_jfyof_217 {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-32);\n padding: 0 clamp(var(--wb-len-24), 4vw, var(--wb-len-48)) var(--wb-len-48);\n overflow-x: hidden;\n overflow-y: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_jfyof_217 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_jfyof_235 {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-16);\n padding-top: var(--wb-len-28);\n}\n\n._marketPageTitle_jfyof_243 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_jfyof_248 {\n margin: var(--wb-len-4) 0 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketPageTools_jfyof_254 {\n flex: none;\n align-self: center;\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: var(--wb-len-16);\n}\n\n._marketPanel_jfyof_263 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_jfyof_263[hidden] {\n display: none;\n}\n\n._marketTabs_jfyof_273 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_jfyof_278 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketIconButton_jfyof_283 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-caption);\n cursor: pointer;\n}\n\n._marketIconButton_jfyof_283:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketIconButton_jfyof_283:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._marketIconWrap_jfyof_308 {\n display: inline-flex;\n}\n\n._marketIconButtonSpinning_jfyof_312 svg {\n animation: _wb-spin_jfyof_1 var(--wb-dur-0-9) linear infinite;\n}\n\n._marketAddButton_jfyof_316 {\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n border-radius: var(--dsw-radius-md);\n}\n\n._marketEmpty_jfyof_212 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) var(--wb-len-16);\n text-align: center;\n}\n\n._marketEmptyTitle_jfyof_333 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n@keyframes _wb-spin_jfyof_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n._discoverPage_jfyof_347 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_jfyof_354 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_jfyof_361 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_jfyof_367 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_jfyof_372 {\n min-width: 0;\n max-width: var(--wb-len-240);\n margin-left: calc(0px - var(--wb-len-8));\n font-weight: 500;\n}\n\n._discoverMarketName_jfyof_379 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_jfyof_385 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_jfyof_390 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_jfyof_395 {\n flex: none;\n}\n\n._discoverSearch_jfyof_399 {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 var(--wb-len-120);\n min-width: var(--wb-len-120);\n}\n\n._discoverSearchField_jfyof_407 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_jfyof_412 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_jfyof_407 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_jfyof_399 ._discoverSearchClear_jfyof_421 {\n position: absolute;\n top: 50%;\n inset-inline-end: var(--wb-len-4);\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n transform: translateY(-50%);\n}\n\n._discoverSearchClear_jfyof_421:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_jfyof_361 {\n display: grid;\n grid-template-columns: minmax(0, auto) minmax(var(--wb-len-120), 1fr) auto;\n grid-template-areas:\n 'market search refresh'\n 'labels sort sort';\n }\n\n ._discoverMarket_jfyof_367 {\n grid-area: market;\n }\n\n ._discoverMarketButton_jfyof_372 {\n margin-left: 0;\n }\n\n ._discoverLabels_jfyof_385 {\n grid-area: labels;\n }\n\n ._discoverSearch_jfyof_399 {\n grid-area: search;\n }\n\n ._discoverSort_jfyof_390 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_jfyof_395 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_jfyof_472 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_jfyof_479 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._discoverCard_jfyof_488 {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n margin: 0 calc(0px - var(--wb-len-8));\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCard_jfyof_488:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_jfyof_502 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverArtworkImage_jfyof_514 {\n object-fit: contain;\n}\n\n._discoverMain_jfyof_518 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_jfyof_526 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverCardOpen_jfyof_534 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n}\n\n._discoverCardOpen_jfyof_534::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_jfyof_534:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_jfyof_534:focus-visible::after {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverStrong_jfyof_565 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_jfyof_571 {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverMeta_jfyof_580 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._discoverMuted_jfyof_587 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_jfyof_593 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverBlocked_jfyof_602 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_jfyof_607 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) 0;\n text-align: center;\n}\n\n._discoverEmptyTitle_jfyof_616 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_jfyof_607 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_jfyof_626 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_jfyof_632 {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n padding: 0;\n border: 0;\n background: 0 0;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--wb-font-12-5);\n cursor: pointer;\n}\n\n._discoverCrumb_jfyof_632:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_jfyof_632:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverCrumbIcon_jfyof_655 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_jfyof_659 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_jfyof_665 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_jfyof_671 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._discoverDetailPanel_jfyof_678 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_jfyof_685 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_jfyof_690 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_jfyof_695 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_jfyof_700 {\n margin: var(--wb-len-16) 0 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverSection_jfyof_706 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_jfyof_713 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_jfyof_719 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_jfyof_724 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--wb-len-16);\n min-height: var(--wb-len-44);\n padding: var(--wb-len-8) var(--wb-len-2);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverFactKind_jfyof_734 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_jfyof_740 {\n min-width: 0;\n margin: 0;\n text-align: end;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xs-13);\n}\n\n._discoverCode_jfyof_748 {\n padding: var(--wb-len-2) var(--wb-len-6);\n border-radius: var(--wb-radius-6);\n background: var(--dsw-alias-bg-module-platform);\n font-family: var(--ds-font-family-code);\n font-size: var(--dsw-font-xxs-12-font-size);\n box-decoration-break: clone;\n}\n\n._discoverTags_jfyof_757 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_jfyof_764 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_jfyof_764:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_jfyof_774 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_jfyof_782 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverVersionName_jfyof_790 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_jfyof_795 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverFailure_jfyof_804 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_jfyof_810 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverNotice_jfyof_819 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverNotice_jfyof_819 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_jfyof_837 {\n align-self: center;\n}\n\n._discoverTransport_jfyof_841 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_jfyof_847 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportRows_jfyof_852 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_jfyof_852 {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n}\n\n._discoverTransportRow_jfyof_852:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_jfyof_852:has(._discoverTransportRadio_jfyof_873:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_jfyof_852:has(._discoverTransportRadio_jfyof_873:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_jfyof_873 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_jfyof_887 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_jfyof_893 {\n flex: none;\n margin-left: auto;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportRow_jfyof_852[data-state='ok'] ._discoverTransportState_jfyof_893 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_jfyof_852[data-state='auth'] ._discoverTransportState_jfyof_893 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_jfyof_852[data-state='unreachable'] ._discoverTransportState_jfyof_893,\n._discoverTransportRow_jfyof_852[data-state='unknown'] ._discoverTransportState_jfyof_893 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_jfyof_913 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_jfyof_919 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_jfyof_924 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverInstallText_jfyof_935 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_jfyof_941 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_jfyof_945 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_jfyof_951 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_jfyof_959 {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wb-len-12);\n padding: var(--wb-len-10) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverSourceConfirm_jfyof_968 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_jfyof_974 {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: var(--wb-len-10);\n min-width: 0;\n cursor: pointer;\n}\n\n._discoverSourceRadio_jfyof_983 {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._discoverSourceMain_jfyof_991 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_jfyof_999 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverSourceUrl_jfyof_1007 {\n display: block;\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverSourceMore_jfyof_1017 {\n flex: none;\n}\n\n._discoverSourceLoading_jfyof_1021 {\n display: flex;\n flex: none;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceHint_jfyof_1031 {\n display: flex;\n flex-basis: 100%;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverSourceHint_jfyof_1031 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_jfyof_1045 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_jfyof_1051 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_jfyof_1057 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_jfyof_1062 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_jfyof_1068 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_jfyof_1073 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_jfyof_1079 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_jfyof_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_jfyof_502._discoverSkeletonFill_jfyof_1079 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_jfyof_1088 {\n display: block;\n height: var(--wb-len-12);\n margin: var(--wb-len-4) 0;\n border-radius: var(--dsw-radius-xs);\n}\n\n._discoverSkeletonTitle_jfyof_1095 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_jfyof_1099 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_jfyof_1 {\n 0% {\n opacity: 1;\n }\n 40% {\n opacity: 0.6;\n }\n 80%,\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._discoverSkeletonFill_jfyof_1079 {\n animation: none;\n }\n}\n\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1lv8f_1 {\n justify-content: center;\n width: 100%;\n height: var(--wb-len-40);\n border-radius: var(--dsw-radius-md);\n}\n\n._dialog_1lv8f_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1lv8f_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1lv8f_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1lv8f_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1lv8f_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._input_1lv8f_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1lv8f_45 {\n height: var(--wb-len-32);\n margin-left: var(--wb-len-26);\n padding: 0 var(--wb-len-10);\n}\n\n._options_1lv8f_51 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8) var(--wb-len-12);\n}\n\n._guideToggle_1lv8f_59 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-4);\n align-self: flex-start;\n margin-top: var(--wb-len-4);\n padding: 0;\n border: 0;\n background: transparent;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._guideToggle_1lv8f_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1lv8f_59 svg,\n._registryToggle_1lv8f_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1lv8f_59[aria-expanded='true'] svg,\n._registryToggle_1lv8f_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1lv8f_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1lv8f_78 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n height: var(--wb-len-26);\n padding: 0 var(--wb-len-8) 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n font: inherit;\n font-size: var(--wb-font-12-5);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._registryToggle_1lv8f_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1lv8f_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1lv8f_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1lv8f_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1lv8f_45 {\n position: fixed;\n z-index: var(--wb-z-1100);\n box-sizing: border-box;\n width: min(var(--wb-len-440), 100vw - var(--wb-len-24));\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-12);\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-2);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n box-shadow: var(--dsw-elevation-prominent);\n}\n\n._registryOption_1lv8f_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid transparent;\n border-radius: var(--dsw-radius-lg);\n cursor: pointer;\n}\n\nlabel._registryOption_1lv8f_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1lv8f_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1lv8f_143[data-checked='true'] {\n border-color: color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._registryOption_1lv8f_143 input[type='radio'] {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._registryTitle_1lv8f_179 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n font: var(--dsw-font-xs-13);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n._registryHint_1lv8f_189 {\n margin-left: var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._inputError_1lv8f_197 {\n margin: var(--wb-len-neg-4) 0 0 var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._guide_1lv8f_59 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._guideList_1lv8f_214 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._guideItem_1lv8f_223 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0;\n}\n\n._guideIndex_1lv8f_230 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._guideMain_1lv8f_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1lv8f_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1lv8f_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1lv8f_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1lv8f_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1lv8f_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1lv8f_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1lv8f_285 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0 var(--wb-len-4);\n text-align: center;\n}\n\n._heroIcon_1lv8f_294 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-44);\n height: var(--wb-len-44);\n color: var(--dsw-alias-label-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1lv8f_311 {\n margin: 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 500;\n color: var(--dsw-alias-label-secondary);\n}\n\n._wizardTitle_1lv8f_319 {\n margin: 0;\n font-size: var(--wb-font-18);\n line-height: var(--wb-len-26);\n font-weight: 600;\n}\n\n._subject_1lv8f_326 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n text-align: center;\n}\n\n._subjectName_1lv8f_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1lv8f_343,\n._subjectDesc_1lv8f_344 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._result_1lv8f_351,\n._resultWarn_1lv8f_352 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._resultWarn_1lv8f_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._resultMeta_1lv8f_365 {\n margin: 0;\n padding: 0 var(--wb-len-12);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._approval_1lv8f_373 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-state-warn-primary);\n border-radius: var(--dsw-radius-lg);\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._approvalTitle_1lv8f_383 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._approvalText_1lv8f_390 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1lv8f_396 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n font-weight: 600;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._note_1lv8f_403 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._noteWarn_1lv8f_410 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1lv8f_414 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1lv8f_418 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._detailLabel_1lv8f_425 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1lv8f_425 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-3);\n font-family: var(--dsw-font-mono, monospace);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n._note_1enlz_1 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._note_1enlz_1 > svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n._slot_1t7dx_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1t7dx_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1t7dx_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1t7dx_31 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._paused_1t7dx_35 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._trouble_1t7dx_39 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._pulse_1t7dx_43 {\n animation: _wb-debug-breathe_1t7dx_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-debug-breathe_1t7dx_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1t7dx_43 {\n animation: none;\n }\n}\n\n._entry_1t7dx_64 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1t7dx_71 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1t7dx_78 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1t7dx_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: 0;\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n}\n\n._act_1t7dx_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1t7dx_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._actStop_1t7dx_110:hover,\n._actStop_1t7dx_110:focus-visible {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._actArmed_1t7dx_115,\n._actArmed_1t7dx_115:hover,\n._actArmed_1t7dx_115:focus-visible {\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n width: auto;\n color: var(--dsw-alias-state-error-primary);\n gap: var(--wb-len-4);\n padding: 0 var(--wb-len-7);\n}\n\n._actLabel_1t7dx_125 {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._entryLine_1t7dx_131 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1t7dx_138 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1t7dx_150 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1t7dx_156 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1t7dx_162 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._slot_1gkj9_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1gkj9_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1gkj9_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1gkj9_31 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._done_1gkj9_35 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._pulse_1gkj9_39 {\n animation: _wb-record-breathe_1gkj9_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-record-breathe_1gkj9_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1gkj9_39 {\n animation: none;\n }\n}\n\n._entry_1gkj9_60 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1gkj9_67 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1gkj9_74 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1gkj9_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-22);\n padding: 0 var(--wb-len-7);\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._act_1gkj9_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1gkj9_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._entryLine_1gkj9_108 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1gkj9_115 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1gkj9_127 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1gkj9_133 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1gkj9_139 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._item_lyox9_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n}\n\n._item_lyox9_1 + ._item_lyox9_1 {\n padding-top: var(--wb-len-14);\n border-top: var(--wb-len-0-5) solid var(--dsw-alias-settings-card-stroke);\n}\n\n._head_lyox9_12 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._title_lyox9_19 {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._description_lyox9_31 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._rows_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._row_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-settings-card-stroke);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-settings-card-fill);\n}\n\n._head_85r3w_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._pick_85r3w_27 {\n flex: 0 1 auto;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._pick_85r3w_27 > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._code_85r3w_39 {\n --dsl-code-block-background: var(--dsw-alias-bg-layer-1);\n margin: 0;\n}\n\n._missing_85r3w_44,\n._conflict_85r3w_45 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-warn-primary);\n}\n._body_11oac_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._sources_11oac_7 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._sourcesLabel_11oac_14 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\nbutton._sourceOn_11oac_19 {\n border-color: var(--dsw-alias-brand-primary);\n}\n._sourceCount_11oac_22 {\n margin-left: var(--wb-len-4);\n font-variant-numeric: tabular-nums;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._reading_11oac_29 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._status_11oac_35 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failure_11oac_45 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n column-gap: var(--wb-len-10);\n row-gap: var(--wb-len-2);\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n\n._failureTitle_11oac_55 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._failureHint_11oac_62 {\n grid-column: 1;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failureAction_11oac_67 {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n}\n\n._foot_11oac_73 {\n display: flex;\n justify-content: flex-end;\n}\n._body_lox98_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._field_lox98_7 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._input_lox98_13 {\n width: 100%;\n}\n\n._label_lox98_17 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\n._hint_lox98_22 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._copy_lox98_28 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-8) var(--wb-len-16);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n._copy_lox98_28 legend {\n padding: 0;\n margin-bottom: var(--wb-len-6);\n}\n\n._actions_lox98_42 {\n display: flex;\n justify-content: flex-end;\n}\n\n._commandLabel_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n}\n\n._command_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-6) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow-wrap: anywhere;\n}\n._body_zi2j5_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._lead_zi2j5_7 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._title_zi2j5_14 {\n font-size: var(--wb-font-18);\n line-height: var(--wb-line-24);\n}\n._hint_zyzt3_1[hidden],\n._actions_zyzt3_2[hidden],\n._progress_zyzt3_3[hidden],\n._commandRow_zyzt3_4[hidden],\n._bridge_zyzt3_5[hidden],\n._raw_zyzt3_6[hidden] {\n display: none;\n}\n\n._gate_zyzt3_10 {\n position: fixed;\n inset: 0;\n z-index: var(--wb-z-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--wb-len-24);\n background: var(--dsw-alias-bg-base);\n}\n\n._card_zyzt3_21 {\n width: 100%;\n max-width: var(--wb-len-420);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-16);\n text-align: center;\n}\n\n._card_zyzt3_21:has(._actions_zyzt3_2:not([hidden])),\n._card_zyzt3_21:has(._bridge_zyzt3_5:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_zyzt3_36 {\n margin: 0;\n font-size: var(--dsw-font-base-16-font-size);\n line-height: var(--wb-line-24);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._steps_zyzt3_51 {\n list-style: none;\n margin: var(--wb-len-6) 0 0;\n padding: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n text-align: left;\n}\n\n._step_zyzt3_51 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-6) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._step_zyzt3_51[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_zyzt3_78 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-14);\n height: var(--wb-len-14);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._step_zyzt3_51[data-status='ok'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_zyzt3_51[data-status='warn'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_zyzt3_51[data-status='failed'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_zyzt3_103 {\n flex: none;\n}\n\n._detail_zyzt3_107 {\n margin-left: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._progress_zyzt3_3 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._elapsed_zyzt3_125 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._error_zyzt3_133 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n max-height: var(--wb-len-120);\n overflow: auto;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n white-space: pre-wrap;\n word-break: break-all;\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._commandRow_zyzt3_4 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n margin: 0 0 var(--wb-len-8);\n padding-right: var(--wb-len-4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._copy_zyzt3_159 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._copy_zyzt3_159:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_zyzt3_4 {\n flex: 1;\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-primary);\n}\n\n._buttons_zyzt3_192 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_zyzt3_199 {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n justify-content: center;\n background: var(--dsw-alias-bg-base);\n}\n\n._button_zyzt3_192 {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n\n._button_zyzt3_192:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_zyzt3_192:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_zyzt3_2,\n._bridge_zyzt3_5 {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-14) var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-1);\n text-align: left;\n}\n\n._fixTitle_zyzt3_250 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._actions_zyzt3_2 ._hint_zyzt3_1,\n._bridge_zyzt3_5 ._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._actions_zyzt3_2 ._commandRow_zyzt3_4,\n._bridge_zyzt3_5 ._commandRow_zyzt3_4 {\n margin: 0;\n}\n\n._actions_zyzt3_2 ._buttons_zyzt3_192,\n._bridge_zyzt3_5 ._buttons_zyzt3_192 {\n justify-content: flex-start;\n}\n\n._raw_zyzt3_6 {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._rawSummary_zyzt3_286 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_zyzt3_2 ._error_zyzt3_133,\n._bridge_zyzt3_5 ._error_zyzt3_133 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_zyzt3_296 {\n margin: 0;\n padding-left: var(--wb-len-18);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._bridgeLine_zyzt3_296 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_zyzt3_313 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_zyzt3_313::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_zyzt3_313:hover {\n text-decoration: underline;\n}\n\n._loading_zyzt3_327 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_zyzt3_327[hidden] {\n display: none;\n}\n\n._loadingMotion_zyzt3_336 {\n transform-origin: center;\n animation: _wb-spin_zyzt3_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_zyzt3_341,\n._loadingArc_zyzt3_342 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_zyzt3_341 {\n opacity: 0.25;\n}\n\n._loadingArc_zyzt3_342 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_zyzt3_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_zyzt3_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_zyzt3_1 {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }\n to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._loadingMotion_zyzt3_336,\n ._loadingArc_zyzt3_342 {\n animation: none;\n }\n}\n._changelog_1q6pj_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-10);\n min-width: 0;\n}\n\n._changelogTitle_1q6pj_9 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._changelogMissing_1q6pj_15 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._changelogBody_1q6pj_21 {\n max-height: var(--wb-len-320);\n overflow: auto;\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._trigger_15ptp_1 {\n display: flex;\n align-items: center;\n}\n\n._pop_15ptp_6 {\n position: absolute;\n top: calc(var(--wb-len-38) + var(--wb-len-8));\n right: var(--wb-len-6);\n z-index: var(--wb-z-30);\n width: min(var(--wb-len-360), calc(100% - var(--wb-len-12)));\n max-width: calc(100vw - var(--wb-len-48));\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-2);\n box-shadow: var(--dsw-shadow-lv3);\n overflow: hidden;\n}\n\n._head_15ptp_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10) var(--wb-len-12) var(--wb-len-9) var(--wb-len-14);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._title_15ptp_28 {\n flex: 1;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._rowControls_15ptp_36 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._reset_15ptp_43 {\n flex: none;\n padding: var(--wb-len-3) var(--wb-len-8);\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._reset_15ptp_43:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_15ptp_43:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_15ptp_65 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._row_15ptp_36 {\n position: relative;\n display: grid;\n grid-template-columns: 12px minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-sm);\n cursor: default;\n}\n\n._rowDragging_15ptp_85 {\n cursor: grabbing;\n}\n\n._rowBlocked_15ptp_89 {\n cursor: not-allowed;\n}\n\n._listDragging_15ptp_93 ._rowControls_15ptp_36 {\n pointer-events: none;\n}\n\n._row_15ptp_36:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOff_15ptp_101 {\n opacity: 0.55;\n}\n\n._rowOff_15ptp_101:hover {\n opacity: 1;\n}\n\n._rowOver_15ptp_109::before {\n content: '';\n position: absolute;\n top: var(--wb-len-neg-3);\n left: var(--wb-len-8);\n right: var(--wb-len-8);\n height: var(--wb-len-2);\n background: var(--dsw-alias-brand-primary);\n}\n\n._ghost_15ptp_119 {\n position: fixed;\n z-index: var(--wb-z-40);\n pointer-events: none;\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--wb-static-shadow-ghost);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n white-space: nowrap;\n}\n\n._grip_15ptp_134 {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: center;\n color: var(--dsw-alias-label-tertiary);\n user-select: none;\n cursor: grab;\n touch-action: none;\n}\n\n._gripDragging_15ptp_144 {\n cursor: grabbing;\n}\n\n._gripBlocked_15ptp_148 {\n cursor: not-allowed;\n}\n\n._label_15ptp_152 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_15ptp_159 {\n min-width: 0;\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n\n._error_15ptp_170 {\n margin: 0;\n padding: 0 var(--wb-len-14) var(--wb-len-10);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._dep_15ptp_178 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n._group_15ptp_186 {\n padding-top: var(--wb-len-6);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._groupTitle_15ptp_191 {\n margin: 0;\n padding: var(--wb-len-2) var(--wb-len-8) 0 var(--wb-len-14);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n font-weight: 400;\n color: var(--dsw-alias-label-tertiary);\n}\n._panel_1whum_1 {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: var(--wb-z-10);\n visibility: hidden;\n}\n\n._panel_1whum_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1whum_1[data-open] {\n visibility: visible;\n}\n\n._columns_1whum_18 {\n display: block;\n column-gap: var(--wb-len-12);\n}\n\n._cell_1whum_23 {\n display: flow-root;\n min-width: 0;\n break-inside: avoid;\n margin-bottom: var(--wb-len-12);\n}\n._root_1cmz0_1 {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}\n\n._rail_1cmz0_7 {\n margin: 0 0 var(--wb-len-4);\n}\n\n._glyphBox_1cmz0_11 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n._glyph_1cmz0_11 {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._glyphActive_1cmz0_30 {\n color: var(--dsw-alias-state-business-primary);\n}\n\n._triggerName_1cmz0_34 {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n._dir_1cmz0_45 {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._name_1cmz0_53 {\n flex: 0 1 auto;\n max-width: 50%;\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._triggerName_1cmz0_34 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._row_1cmz0_66 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n width: 100%;\n min-width: 0;\n}\n\n._trailing_1cmz0_74 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n margin-inline-start: auto;\n}\n\n._trailing_1cmz0_74 ._rowAction_1cmz0_84 {\n width: var(--wb-len-20);\n min-width: var(--wb-len-20);\n height: var(--wb-len-20);\n min-height: var(--wb-len-20);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n}\n\n._row_1cmz0_66 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._current_1cmz0_97 {\n flex: none;\n display: inline-flex;\n align-items: center;\n color: var(--dsw-alias-label-primary);\n}\n._dot_sosf1_1 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n._overlay_sosf1_8 {\n position: absolute;\n inset-block-start: var(--wb-len-neg-3);\n inset-inline-end: var(--wb-len-neg-3);\n}\n._tag_g9dg8_1 {\n flex: none;\n margin-inline-start: auto;\n}\n._dialog_1vye5_1 {\n width: min(var(--wb-len-420), 100%);\n}\n\n._stack_1vye5_5 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._input_1vye5_12 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-12);\n}\n\n._meta_1vye5_18 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n._dot_14w1n_1 {\n display: inline-flex;\n align-items: center;\n}\n\n._hover_14w1n_6 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._blocker_1oaj0_1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-20) var(--wb-len-16);\n text-align: center;\n}\n\n._icon_1oaj0_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_1oaj0_15 {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_1oaj0_23 {\n margin: 0;\n max-width: var(--wb-len-42em);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n text-wrap: pretty;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 {\n align-items: flex-start;\n gap: var(--wb-len-6);\n padding: var(--wb-len-4) 0 var(--wb-len-2);\n text-align: left;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._title_1oaj0_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._hint_1oaj0_23 {\n max-width: 100%;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._actions_1oaj0_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._raw_1oaj0_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_1oaj0_48 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-6);\n}\n\n._raw_1oaj0_52 {\n margin-top: var(--wb-len-10);\n width: 100%;\n max-width: var(--wb-len-360);\n text-align: left;\n}\n\n._notice_1oaj0_71 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--wb-len-10);\n margin: 0 0 var(--wb-len-10);\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-left: 2px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._notice_1oaj0_71._noticeFlat_1oaj0_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_1oaj0_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_1oaj0_98 {\n font-size: var(--wb-font-12-5);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._noticeHint_1oaj0_105 {\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._noticeActions_1oaj0_112 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-neg-2);\n}\n\n._failure_1oaj0_119 {\n margin: var(--wb-len-8) 0 0;\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._failureDetail_1oaj0_127 {\n display: block;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-label-tertiary);\n white-space: pre-wrap;\n}\n\n._inlineAction_1oaj0_134 {\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n._inlineAction_1oaj0_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n\n._rawText_1oaj0_146 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
14764
15453
  function workbenchCss() {
14765
15454
  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}`;
14766
15455
  }