@dsh-workbench/core 1.1.8 → 1.1.10

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 (127) hide show
  1. package/README.md +3 -3
  2. package/bin/dsh-workbench +11 -45
  3. package/client.js +549 -459
  4. package/dist/client/client.body.js +549 -459
  5. package/dist/client/index.js +422 -332
  6. package/dist/host/index.js +4661 -3954
  7. package/dist/types/app/layouts/approval-detail.d.ts +5 -5
  8. package/dist/types/app/layouts/env-gate/gate-text.d.ts +6 -4
  9. package/dist/types/app/layouts/market/discover-view.d.ts +1 -0
  10. package/dist/types/app/layouts/rightbar/MarketView.d.ts +25 -3
  11. package/dist/types/app/layouts/rightbar/market-rows.d.ts +0 -1
  12. package/dist/types/app/layouts/rightbar/market-view-text.d.ts +1 -2
  13. package/dist/types/app/layouts/sidebar/ProjectSwitcher.d.ts +1 -1
  14. package/dist/types/app/layouts/sidebar/workspace-groups.d.ts +4 -1
  15. package/dist/types/kernel/contract/index.d.ts +1 -0
  16. package/dist/types/modules/panels/model/diy-browser-act.d.ts +2 -2
  17. package/dist/types/modules/panels/model/diy-browser.d.ts +4 -2
  18. package/dist/types/modules/panels/model/diy-page.d.ts +2 -1
  19. package/dist/types/modules/panels/model/diy-record.d.ts +2 -1
  20. package/dist/types/modules/panels/model/diy-tools.d.ts +1 -0
  21. package/dist/types/modules/panels/model/market-dependency.d.ts +1 -1
  22. package/dist/types/modules/panels/model/market-discover.d.ts +1 -0
  23. package/dist/types/modules/panels/model/market-env.d.ts +2 -0
  24. package/dist/types/modules/panels/model/market.d.ts +1 -1
  25. package/dist/types/modules/panels/model/plugin-ledger.d.ts +3 -0
  26. package/dist/types/modules/panels/model/plugin-name.d.ts +7 -3
  27. package/dist/types/modules/sessions/index.d.ts +1 -1
  28. package/dist/types/modules/sessions/model/attention.d.ts +1 -0
  29. package/dist/types/shared/api/host/diy-publish-preview.d.ts +4 -4
  30. package/dist/types/shared/api/host/diy-recon-fs.d.ts +1 -1
  31. package/dist/types/shared/api/host/diy-recon.d.ts +12 -5
  32. package/dist/types/shared/api/host/flow/task.d.ts +10 -0
  33. package/dist/types/shared/api/host/flow/tool.d.ts +12 -0
  34. package/dist/types/shared/api/host/git-exec.d.ts +1 -0
  35. package/dist/types/shared/api/host/git-probe.d.ts +6 -6
  36. package/dist/types/shared/api/host/git-process.d.ts +13 -0
  37. package/dist/types/shared/api/host/git-routes.d.ts +5 -2
  38. package/dist/types/shared/api/host/host-routes.d.ts +2 -2
  39. package/dist/types/shared/api/host/market-doc.d.ts +2 -2
  40. package/dist/types/shared/api/host/market-index-fetch.d.ts +2 -2
  41. package/dist/types/shared/api/host/market-source-init.d.ts +2 -2
  42. package/dist/types/shared/api/host/plugin-term.d.ts +2 -0
  43. package/dist/types/shared/api/host/runtime-surface.d.ts +3 -0
  44. package/dist/types/shared/hooks/locale-text.d.ts +3 -0
  45. package/dist/types/shared/hooks/runtime-queries.d.ts +6 -0
  46. package/dist/types/shared/hooks/runtime-terms.d.ts +2 -0
  47. package/dist/types/shared/hooks/use-runtime-capabilities.d.ts +6 -0
  48. package/package.json +6 -3
  49. package/scripts/seed-workshop.sh +1 -1
  50. package/skills/workbench-module-diy/DESIGN.md +3 -1
  51. package/skills/workbench-module-diy/FLOW.md +117 -0
  52. package/skills/workbench-module-diy/PANEL.md +9 -7
  53. package/skills/workbench-module-diy/SKILL.md +7 -1
  54. package/skills/workbench-module-diy/STEPS.md +12 -1
  55. package/skills/workbench-module-diy/TOOLS.md +16 -4
  56. package/skills/workbench-module-diy/WIRING.md +2 -2
  57. package/skills/workbench-module-diy/WRITES.md +2 -2
  58. package/bin/opencli-isolated +0 -62
  59. package/bin/opencli-isolated.mjs +0 -44
  60. package/bin/opencli-node-mode.cjs +0 -1
  61. package/dist/types/app/layouts/rightbar/AskAgentButton.d.ts +0 -6
  62. package/dist/types/app/layouts/rightbar/board-columns.test.d.ts +0 -1
  63. package/dist/types/app/layouts/rightbar/dsh-borrow.test.d.ts +0 -1
  64. package/dist/types/app/layouts/rightbar/dsh-column-source.test.d.ts +0 -1
  65. package/dist/types/app/layouts/rightbar/dsh-surface.test.d.ts +0 -1
  66. package/dist/types/app/layouts/rightbar/presentation.test.d.ts +0 -1
  67. package/dist/types/app/layouts/rightbar/rightbar-width.test.d.ts +0 -1
  68. package/dist/types/app/layouts/rightbar/store.test.d.ts +0 -1
  69. package/dist/types/kernel/contract/contracts.test.d.ts +0 -1
  70. package/dist/types/kernel/contract/index.test.d.ts +0 -1
  71. package/dist/types/modules/panels/model/diy-browser-act.test.d.ts +0 -1
  72. package/dist/types/modules/panels/model/diy-browser-tools-shot.test.d.ts +0 -1
  73. package/dist/types/modules/panels/model/diy-browser-tools.test.d.ts +0 -1
  74. package/dist/types/modules/panels/model/diy-browser.test.d.ts +0 -1
  75. package/dist/types/modules/panels/model/diy-components.test.d.ts +0 -1
  76. package/dist/types/modules/panels/model/diy-context.test.d.ts +0 -1
  77. package/dist/types/modules/panels/model/diy-debug-routes.test.d.ts +0 -1
  78. package/dist/types/modules/panels/model/diy-debug-tools.test.d.ts +0 -1
  79. package/dist/types/modules/panels/model/diy-logs.test.d.ts +0 -1
  80. package/dist/types/modules/panels/model/diy-observers.test.d.ts +0 -1
  81. package/dist/types/modules/panels/model/diy-page.test.d.ts +0 -1
  82. package/dist/types/modules/panels/model/diy-record-bar.test.d.ts +0 -1
  83. package/dist/types/modules/panels/model/diy-record-beat.test.d.ts +0 -1
  84. package/dist/types/modules/panels/model/diy-record-capture.test.d.ts +0 -1
  85. package/dist/types/modules/panels/model/diy-record-close.test.d.ts +0 -1
  86. package/dist/types/modules/panels/model/diy-record-failure.test.d.ts +0 -1
  87. package/dist/types/modules/panels/model/diy-record-hook.test.d.ts +0 -1
  88. package/dist/types/modules/panels/model/diy-record-open.test.d.ts +0 -1
  89. package/dist/types/modules/panels/model/diy-record-routes.test.d.ts +0 -1
  90. package/dist/types/modules/panels/model/diy-record-shot.test.d.ts +0 -1
  91. package/dist/types/modules/panels/model/diy-record-text.test.d.ts +0 -1
  92. package/dist/types/modules/panels/model/diy-record.test.d.ts +0 -1
  93. package/dist/types/modules/panels/model/diy-schema.test.d.ts +0 -1
  94. package/dist/types/modules/panels/model/diy-spec.test.d.ts +0 -1
  95. package/dist/types/modules/panels/model/handoff.test.d.ts +0 -1
  96. package/dist/types/modules/panels/model/long-task-tools.test.d.ts +0 -1
  97. package/dist/types/modules/panels/model/market-install-error.test.d.ts +0 -1
  98. package/dist/types/modules/panels/model/market-installed.test.d.ts +0 -1
  99. package/dist/types/modules/panels/model/market-registry.test.d.ts +0 -1
  100. package/dist/types/modules/panels/model/market-remove.test.d.ts +0 -1
  101. package/dist/types/modules/panels/model/market-restart.test.d.ts +0 -1
  102. package/dist/types/modules/panels/model/market-sources-tool.test.d.ts +0 -1
  103. package/dist/types/modules/panels/model/market-swap-stuck.test.d.ts +0 -1
  104. package/dist/types/modules/panels/model/plugin-name.test.d.ts +0 -1
  105. package/dist/types/modules/panels/model/routes.test.d.ts +0 -1
  106. package/dist/types/modules/sessions/model/attention-long-task.test.d.ts +0 -1
  107. package/dist/types/modules/sessions/model/attention.test.d.ts +0 -1
  108. package/dist/types/modules/sessions/model/scroll-edges.test.d.ts +0 -1
  109. package/dist/types/modules/sessions/model/session-node.test.d.ts +0 -1
  110. package/dist/types/shared/api/config-sync.test.d.ts +0 -1
  111. package/dist/types/shared/api/diy.test.d.ts +0 -1
  112. package/dist/types/shared/api/dsh-plugins.test.d.ts +0 -1
  113. package/dist/types/shared/api/host/bundle-inspect-kind.test.d.ts +0 -1
  114. package/dist/types/shared/api/host/bundle-routes-self.test.d.ts +0 -1
  115. package/dist/types/shared/api/host/bundle-routes.test.d.ts +0 -1
  116. package/dist/types/shared/api/host/diy-facts.test.d.ts +0 -1
  117. package/dist/types/shared/api/host/diy-recon-fs.test.d.ts +0 -1
  118. package/dist/types/shared/api/host/diy-recon.test.d.ts +0 -1
  119. package/dist/types/shared/api/host/diy.test.d.ts +0 -1
  120. package/dist/types/shared/api/host/http.test.d.ts +0 -1
  121. package/dist/types/shared/api/host/png-crop.test.d.ts +0 -1
  122. package/dist/types/shared/api/host/runtime-seed.test.d.ts +0 -1
  123. package/dist/types/shared/api/host/self-update-marker.test.d.ts +0 -1
  124. package/dist/types/shared/api/host/shell.test.d.ts +0 -1
  125. package/dist/types/shared/api/unit-manifests.test.d.ts +0 -1
  126. package/dist/types/shared/components/blocker-action.test.d.ts +0 -1
  127. package/dist/types/shared/hooks/panel-state-report.test.d.ts +0 -1
@@ -576,7 +576,7 @@ function blockerOfError(error, t, context = {}) {
576
576
  id: "cli-exec-failed",
577
577
  severity: "block",
578
578
  title: error.message,
579
- hint: error.hint ?? t("blocker.exec.hint"),
579
+ hint: error.hint ?? context.diagnose?.exec ?? t("blocker.exec.hint"),
580
580
  ...error.detail === void 0 ? {} : { detail: error.detail },
581
581
  actions: [retryAction(t)]
582
582
  };
@@ -785,13 +785,13 @@ async function apiPost(route, body) {
785
785
  //#endregion
786
786
  //#region ../shared/dist/lib/react.js
787
787
  var react$1 = require("react");
788
- var h$71 = react$1.createElement;
788
+ var h$70 = react$1.createElement;
789
789
  var Fragment$22 = react$1.Fragment;
790
790
  var Component = react$1.Component;
791
791
  react$1.createContext;
792
792
  react$1.useContext;
793
793
  var useState$42 = react$1.useState;
794
- var useEffect$32 = react$1.useEffect;
794
+ var useEffect$33 = react$1.useEffect;
795
795
  react$1.useLayoutEffect;
796
796
  var useMemo$10 = react$1.useMemo;
797
797
  react$1.useCallback;
@@ -806,7 +806,7 @@ react$1.useSyncExternalStore;
806
806
  * @returns 一个 div。
807
807
  */
808
808
  function ActivityBlock({ head, children }) {
809
- return h$71("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$71("div", { className: "wb-activityBlockHead" }, head), children);
809
+ return h$70("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$70("div", { className: "wb-activityBlockHead" }, head), children);
810
810
  }
811
811
  /**
812
812
  * 一条活动:状态点 + 正文 + 时间,行尾可挂动作;时间一律用它,别自己拼。
@@ -817,7 +817,7 @@ function ActivityBlock({ head, children }) {
817
817
  * @returns 一行。
818
818
  */
819
819
  function ActivityLine({ dot, text, at, actions }) {
820
- return h$71("div", { className: "wb-activityLine" }, dot, h$71("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h$71("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h$71("span", { className: "wb-activityLineActions" }, actions));
820
+ return h$70("div", { className: "wb-activityLine" }, dot, h$70("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h$70("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h$70("span", { className: "wb-activityLineActions" }, actions));
821
821
  }
822
822
  /**
823
823
  * 活动行尾那颗动作:给 `href` 就是外链,否则是图标钮并带上 tooltip。
@@ -831,7 +831,7 @@ function ActivityLine({ dot, text, at, actions }) {
831
831
  */
832
832
  function ActivityAction({ label, hint, icon, href, onClick, failed }) {
833
833
  const tip = hint ?? label;
834
- if (href !== void 0) return h$71("a", {
834
+ if (href !== void 0) return h$70("a", {
835
835
  className: "wb-iconButton",
836
836
  href,
837
837
  target: "_blank",
@@ -839,13 +839,13 @@ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
839
839
  title: tip,
840
840
  "aria-label": label
841
841
  }, icon);
842
- return h$71(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
842
+ return h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
843
843
  side: "bottom",
844
844
  align: "end",
845
845
  gap: 6,
846
846
  portal: true,
847
847
  label: tip
848
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
848
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
849
849
  type: "button",
850
850
  variant: "ghost",
851
851
  size: "sm",
@@ -867,10 +867,10 @@ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
867
867
  */
868
868
  function Note({ tone = "muted", as, role, children }) {
869
869
  const className = tone === "problem" ? "wb-problem" : "wb-note";
870
- return as === "span" ? h$71("span", {
870
+ return as === "span" ? h$70("span", {
871
871
  className,
872
872
  role
873
- }, children) : h$71("p", {
873
+ }, children) : h$70("p", {
874
874
  className,
875
875
  role
876
876
  }, children);
@@ -914,10 +914,10 @@ var CardBoundary = class extends Component {
914
914
  render() {
915
915
  const { reason } = this.state;
916
916
  if (reason === null) return this.props.children;
917
- return h$71(Note, { tone: "problem" }, h$71("span", null, this.props.t("panels.cardBroken", {
917
+ return h$70(Note, { tone: "problem" }, h$70("span", null, this.props.t("panels.cardBroken", {
918
918
  unit: this.props.unit,
919
919
  reason
920
- })), " ", h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
920
+ })), " ", h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
921
921
  type: "button",
922
922
  variant: "outline",
923
923
  size: "sm",
@@ -967,19 +967,19 @@ function ApprovalDetail(props) {
967
967
  const owner = (props.units ?? []).find((face) => face.approval?.tools.includes(input.tool) === true);
968
968
  if (owner?.approval !== void 0) {
969
969
  const Render = owner.approval.render;
970
- return h$71(CardBoundary, {
970
+ return h$70(CardBoundary, {
971
971
  unit: owner.unit,
972
972
  resetKey: props.callId ?? "",
973
973
  t
974
- }, h$71(Render, {
974
+ }, h$70(Render, {
975
975
  input,
976
976
  t
977
977
  }));
978
978
  }
979
979
  const shell = props.renderShell?.(input, t);
980
- if (shell !== void 0 && shell !== null) return h$71(Fragment$22, null, shell);
980
+ if (shell !== void 0 && shell !== null) return h$70(Fragment$22, null, shell);
981
981
  if (command === "") return null;
982
- return h$71(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
982
+ return h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
983
983
  code: command,
984
984
  className: "wb-approvalCommand",
985
985
  copyLabel: t("blocker.copy"),
@@ -997,10 +997,10 @@ function ApprovalDetail(props) {
997
997
  * @returns 一个 div。
998
998
  */
999
999
  function ApprovalPlan({ rows, hint, warn, children }) {
1000
- return h$71("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h$71("p", { className: "wb-approvalHint" }, hint), h$71("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h$71("div", {
1000
+ return h$70("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h$70("p", { className: "wb-approvalHint" }, hint), h$70("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h$70("div", {
1001
1001
  className: "wb-approvalRow",
1002
1002
  key: String(index)
1003
- }, h$71("dt", { className: "wb-approvalLabel" }, row.label), h$71("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h$71("p", { className: "wb-approvalWarn" }, warn));
1003
+ }, h$70("dt", { className: "wb-approvalLabel" }, row.label), h$70("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h$70("p", { className: "wb-approvalWarn" }, warn));
1004
1004
  }
1005
1005
  //#endregion
1006
1006
  //#region ../shared/dist/components/CardHead.js
@@ -1017,47 +1017,47 @@ function ApprovalPlan({ rows, hint, warn, children }) {
1017
1017
  function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle }) {
1018
1018
  const refreshLabel = refreshing ? t("rightbar.refreshing") : t("rightbar.refresh");
1019
1019
  const platformLabel = platformTitle ?? platform ?? t("rightbar.openPlatform");
1020
- return h$71("header", { className: "wb-cardHead" }, h$71("h2", { className: "wb-cardTitle" }, title), meta === void 0 ? null : h$71("span", { className: "wb-cardMeta" }, meta), platformHref === void 0 ? null : h$71(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1020
+ return h$70("header", { className: "wb-cardHead" }, h$70("h2", { className: "wb-cardTitle" }, title), meta === void 0 ? null : h$70("span", { className: "wb-cardMeta" }, meta), platformHref === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1021
1021
  side: "bottom",
1022
1022
  align: "end",
1023
1023
  gap: 6,
1024
1024
  portal: true,
1025
1025
  label: platformLabel
1026
- }, h$71("a", {
1026
+ }, h$70("a", {
1027
1027
  className: "wb-iconButton wb-cardOpen",
1028
1028
  href: platformHref,
1029
1029
  target: "_blank",
1030
1030
  rel: "noreferrer noopener",
1031
1031
  "aria-label": platform ?? platformLabel
1032
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$71(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1032
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1033
1033
  side: "bottom",
1034
1034
  align: "end",
1035
1035
  gap: 6,
1036
1036
  portal: true,
1037
1037
  label: refreshLabel
1038
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
1038
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1039
1039
  type: "button",
1040
1040
  size: "sm",
1041
1041
  variant: "ghost",
1042
1042
  className: `wb-cardRefresh${refreshing ? " wb-spinning" : ""}`,
1043
1043
  "aria-label": refreshLabel,
1044
1044
  disabled: refreshing,
1045
- icon: h$71(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
1045
+ icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
1046
1046
  onClick: onRefresh
1047
- })), gear === void 0 || onToggleGear === void 0 ? null : h$71(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1047
+ })), gear === void 0 || onToggleGear === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1048
1048
  side: "bottom",
1049
1049
  align: "end",
1050
1050
  gap: 6,
1051
1051
  portal: true,
1052
1052
  label: gear
1053
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
1053
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1054
1054
  type: "button",
1055
1055
  size: "sm",
1056
1056
  variant: "ghost",
1057
1057
  className: `wb-cardGear${gearOpen === true ? " wb-iconButtonActive" : ""}`,
1058
1058
  "aria-label": gear,
1059
1059
  "aria-expanded": gearOpen === true,
1060
- icon: h$71(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
1060
+ icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
1061
1061
  onClick: onToggleGear
1062
1062
  })));
1063
1063
  }
@@ -1074,13 +1074,13 @@ function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onTog
1074
1074
  * @returns 一个 `<section>`。
1075
1075
  */
1076
1076
  function Card({ t, title, refreshing, onRefresh, meta, head, children }) {
1077
- return h$71("section", { className: "wb-card" }, head === void 0 ? h$71(CardHead, {
1077
+ return h$70("section", { className: "wb-card" }, head === void 0 ? h$70(CardHead, {
1078
1078
  t,
1079
1079
  title,
1080
1080
  refreshing,
1081
1081
  onRefresh,
1082
1082
  meta
1083
- }) : head, h$71("div", { className: "wb-cardBody" }, children));
1083
+ }) : head, h$70("div", { className: "wb-cardBody" }, children));
1084
1084
  }
1085
1085
  var CardAnchor_module_default = { anchor: "_anchor_yq4s2_1" };
1086
1086
  //#endregion
@@ -1100,7 +1100,7 @@ function cardIdOf(unit) {
1100
1100
  * @returns 带 id 的占位 div。
1101
1101
  */
1102
1102
  function CardAnchor({ unit, children }) {
1103
- return h$71("div", {
1103
+ return h$70("div", {
1104
1104
  id: cardIdOf(unit),
1105
1105
  className: CardAnchor_module_default.anchor
1106
1106
  }, children);
@@ -1114,13 +1114,13 @@ function CardAnchor({ unit, children }) {
1114
1114
  * @returns 一枚 `StateDot state="ongoing"`,自身不带文字。
1115
1115
  */
1116
1116
  function Spinner({ size = 14, label }) {
1117
- return h$71("span", {
1117
+ return h$70("span", {
1118
1118
  className: "wb-spinner",
1119
1119
  ...label === void 0 ? { "aria-hidden": true } : {
1120
1120
  role: "status",
1121
1121
  "aria-label": label
1122
1122
  }
1123
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1123
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1124
1124
  state: "ongoing",
1125
1125
  size
1126
1126
  }));
@@ -1128,24 +1128,24 @@ function Spinner({ size = 14, label }) {
1128
1128
  //#endregion
1129
1129
  //#region ../shared/dist/components/ChoiceGroup.js
1130
1130
  function ChoiceMenu(input) {
1131
- const body = input.loading ? h$71("span", {
1131
+ const body = input.loading ? h$70("span", {
1132
1132
  className: "wb-choiceLoading",
1133
1133
  role: "status"
1134
- }, h$71(Spinner, { size: 14 }), h$71("span", { className: "wb-choiceLoadingText" }, input.loadingText ?? "…")) : input.options.length === 0 ? input.emptyText === void 0 ? null : h$71("span", { className: "wb-choiceEmpty" }, input.emptyText) : input.options.map((option) => {
1134
+ }, h$70(Spinner, { size: 14 }), h$70("span", { className: "wb-choiceLoadingText" }, input.loadingText ?? "…")) : input.options.length === 0 ? input.emptyText === void 0 ? null : h$70("span", { className: "wb-choiceEmpty" }, input.emptyText) : input.options.map((option) => {
1135
1135
  const row = input.rowOf(option.value);
1136
- return h$71(Fragment$22, { key: option.value }, h$71("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$71("input", {
1136
+ return h$70(Fragment$22, { key: option.value }, h$70("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$70("input", {
1137
1137
  className: input.multi ? "wb-checkbox" : "wb-radio",
1138
1138
  type: input.multi ? "checkbox" : "radio",
1139
1139
  name: input.name,
1140
1140
  checked: row.checked,
1141
1141
  disabled: input.disabled,
1142
1142
  onChange: row.onSelect
1143
- }), input.multi ? h$71("span", {
1143
+ }), input.multi ? h$70("span", {
1144
1144
  className: "wb-checkboxBox",
1145
1145
  "aria-hidden": "true"
1146
- }, row.checked ? h$71(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 }) : null) : null, h$71("span", { className: "wb-choiceLabel" }, h$71("span", { className: "wb-choiceLabelText" }, option.label), option.description === void 0 ? null : h$71("span", { className: "wb-choiceDescription" }, option.description))));
1146
+ }, row.checked ? h$70(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 }) : null) : null, h$70("span", { className: "wb-choiceLabel" }, h$70("span", { className: "wb-choiceLabelText" }, option.label), option.description === void 0 ? null : h$70("span", { className: "wb-choiceDescription" }, option.description))));
1147
1147
  });
1148
- return h$71("div", {
1148
+ return h$70("div", {
1149
1149
  className: "wb-choiceMenu",
1150
1150
  "data-variant": input.variant,
1151
1151
  role: input.multi ? "group" : "radiogroup",
@@ -1179,7 +1179,7 @@ function ChoiceGroup(props) {
1179
1179
  if (props.multi === true) {
1180
1180
  const values = props.values;
1181
1181
  const onChange = props.onChange;
1182
- return h$71(ChoiceMenu, {
1182
+ return h$70(ChoiceMenu, {
1183
1183
  label: common.label,
1184
1184
  name: common.name,
1185
1185
  options: common.options,
@@ -1199,7 +1199,7 @@ function ChoiceGroup(props) {
1199
1199
  }
1200
1200
  const value = props.value;
1201
1201
  const onChange = props.onChange;
1202
- return h$71(ChoiceMenu, {
1202
+ return h$70(ChoiceMenu, {
1203
1203
  label: common.label,
1204
1204
  name: common.name,
1205
1205
  options: common.options,
@@ -1252,17 +1252,17 @@ function variantOf(kind) {
1252
1252
  function FormActions({ actions }) {
1253
1253
  if (actions.length === 0) return null;
1254
1254
  reportExtraPrimaries(actions);
1255
- return h$71("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
1255
+ return h$70("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
1256
1256
  const kind = kindOf(action);
1257
1257
  const busy = action.busy === true;
1258
- return h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
1258
+ return h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1259
1259
  key: action.key,
1260
1260
  type: "button",
1261
1261
  size: "sm",
1262
1262
  variant: variantOf(kind),
1263
1263
  className: kind === "danger" ? "wb-formActionDanger" : void 0,
1264
1264
  disabled: busy || action.disabled === true,
1265
- icon: busy ? h$71(Spinner, { size: 12 }) : void 0,
1265
+ icon: busy ? h$70(Spinner, { size: 12 }) : void 0,
1266
1266
  onClick: action.onClick
1267
1267
  }, action.label);
1268
1268
  }));
@@ -1275,7 +1275,7 @@ function FormActions({ actions }) {
1275
1275
  * @returns 竖排的 div。
1276
1276
  */
1277
1277
  function Rows({ children }) {
1278
- return h$71("div", { className: "wb-rows" }, children);
1278
+ return h$70("div", { className: "wb-rows" }, children);
1279
1279
  }
1280
1280
  /**
1281
1281
  * 一行键值:左边名字、右边值;要成对说明一项数据就用它,别自己写两栏。
@@ -1284,7 +1284,7 @@ function Rows({ children }) {
1284
1284
  * @returns 一行两格。
1285
1285
  */
1286
1286
  function Row({ label, value }) {
1287
- return h$71("div", { className: "wb-row" }, h$71("span", { className: "wb-rowKey" }, label), h$71("span", { className: "wb-rowValue" }, value));
1287
+ return h$70("div", { className: "wb-row" }, h$70("span", { className: "wb-rowKey" }, label), h$70("span", { className: "wb-rowValue" }, value));
1288
1288
  }
1289
1289
  //#endregion
1290
1290
  //#region ../shared/dist/components/ConfirmBar.js
@@ -1301,19 +1301,19 @@ function Row({ label, value }) {
1301
1301
  * @returns 一个 `role="group"` 的条;`actions` 空数组时最后那一块不渲染。
1302
1302
  */
1303
1303
  function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
1304
- return h$71("div", {
1304
+ return h$70("div", {
1305
1305
  className: "wb-confirmBar",
1306
1306
  role: "group",
1307
1307
  "aria-label": label ?? (typeof title === "string" ? title : void 0),
1308
1308
  "aria-busy": busy
1309
- }, h$71("p", { className: "wb-confirmBarTitle" }, title), hint === void 0 ? null : h$71("p", { className: "wb-confirmBarHint" }, hint), rows === void 0 || rows.length === 0 ? null : h$71(Rows, null, rows.map((row) => h$71(Row, {
1309
+ }, h$70("p", { className: "wb-confirmBarTitle" }, title), hint === void 0 ? null : h$70("p", { className: "wb-confirmBarHint" }, hint), rows === void 0 || rows.length === 0 ? null : h$70(Rows, null, rows.map((row) => h$70(Row, {
1310
1310
  key: row.key,
1311
1311
  label: row.label,
1312
1312
  value: row.value
1313
- }))), problem === void 0 ? null : h$71(Note, {
1313
+ }))), problem === void 0 ? null : h$70(Note, {
1314
1314
  tone: "problem",
1315
1315
  role: "alert"
1316
- }, problem), h$71(FormActions, { actions }));
1316
+ }, problem), h$70(FormActions, { actions }));
1317
1317
  }
1318
1318
  //#endregion
1319
1319
  //#region ../shared/dist/components/Field.js
@@ -1325,7 +1325,7 @@ function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
1325
1325
  * @returns 一个 `<label>`,点标签会聚焦里面的控件。
1326
1326
  */
1327
1327
  function Field({ label, hint, children }) {
1328
- return h$71("label", { className: "wb-field" }, h$71("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$71("span", { className: "wb-fieldHint" }, hint));
1328
+ return h$70("label", { className: "wb-field" }, h$70("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$70("span", { className: "wb-fieldHint" }, hint));
1329
1329
  }
1330
1330
  //#endregion
1331
1331
  //#region ../shared/dist/components/FormRows.js
@@ -1335,7 +1335,7 @@ function Field({ label, hint, children }) {
1335
1335
  * @returns 竖排的 div。
1336
1336
  */
1337
1337
  function FormRows({ children }) {
1338
- return h$71("div", { className: "wb-formRows" }, children);
1338
+ return h$70("div", { className: "wb-formRows" }, children);
1339
1339
  }
1340
1340
  /**
1341
1341
  * 表单一行:左边标签、右边控件,提示与错误占控件下面那一格。
@@ -1348,14 +1348,14 @@ function FormRows({ children }) {
1348
1348
  * @returns 一个 `<div>`:里面的 `<label>` 只包标签文字,不包控件、提示与整行的空白。
1349
1349
  */
1350
1350
  function FormRow({ label, htmlFor, hint, problem, layout = "inline", children }) {
1351
- return h$71("div", {
1351
+ return h$70("div", {
1352
1352
  className: "wb-formRow",
1353
1353
  "data-layout": layout,
1354
1354
  "data-wb-problem": problem === void 0 ? void 0 : ""
1355
- }, h$71("label", {
1355
+ }, h$70("label", {
1356
1356
  className: "wb-formLabel",
1357
1357
  htmlFor
1358
- }, label), h$71("span", { className: "wb-formControl" }, children), problem === void 0 ? hint === void 0 ? null : h$71("span", { className: "wb-formHint" }, hint) : h$71("span", { className: "wb-formProblem" }, problem));
1358
+ }, label), h$70("span", { className: "wb-formControl" }, children), problem === void 0 ? hint === void 0 ? null : h$70("span", { className: "wb-formHint" }, hint) : h$70("span", { className: "wb-formProblem" }, problem));
1359
1359
  }
1360
1360
  //#endregion
1361
1361
  //#region ../shared/dist/components/FormNodes.js
@@ -1502,7 +1502,7 @@ function formActionsOf(args) {
1502
1502
  * @returns `FormRow` 组成的数组;没有可画的格子时给空数组。
1503
1503
  */
1504
1504
  function formRowsOf(args) {
1505
- return args.fields.map((field) => h$71(FormRow, {
1505
+ return args.fields.map((field) => h$70(FormRow, {
1506
1506
  key: field.key,
1507
1507
  label: field.label,
1508
1508
  htmlFor: controlIdOf(field.key),
@@ -1584,7 +1584,7 @@ function Form(props) {
1584
1584
  const shown = visibleFieldsOf(fields);
1585
1585
  const problems = formProblemsOf(shown, done);
1586
1586
  reportDuplicateKeys(shown);
1587
- useEffect$32(() => {
1587
+ useEffect$33(() => {
1588
1588
  if (reveal === 0) return;
1589
1589
  const root = rootRef.current;
1590
1590
  if (root !== null) revealFirstProblem(root);
@@ -1599,7 +1599,7 @@ function Form(props) {
1599
1599
  }
1600
1600
  onSubmit(outcome.values);
1601
1601
  };
1602
- return h$71("form", {
1602
+ return h$70("form", {
1603
1603
  className: "wb-form",
1604
1604
  ref: rootRef,
1605
1605
  noValidate: true,
@@ -1607,15 +1607,15 @@ function Form(props) {
1607
1607
  event.preventDefault();
1608
1608
  submitForm();
1609
1609
  }
1610
- }, h$71(FormRows, null, formRowsOf({
1610
+ }, h$70(FormRows, null, formRowsOf({
1611
1611
  fields: shown,
1612
1612
  problems,
1613
1613
  showProblem: done,
1614
1614
  busy
1615
- })), problem === void 0 ? null : h$71(Note, {
1615
+ })), problem === void 0 ? null : h$70(Note, {
1616
1616
  tone: "problem",
1617
1617
  role: "alert"
1618
- }, problem), h$71(FormActions, { actions: formActionsOf({
1618
+ }, problem), h$70(FormActions, { actions: formActionsOf({
1619
1619
  extra,
1620
1620
  cancel,
1621
1621
  submit,
@@ -1636,7 +1636,7 @@ function Form(props) {
1636
1636
  * @returns 一个 `<a>`。
1637
1637
  */
1638
1638
  function Link({ href, children, title, external = true, className }) {
1639
- return h$71("a", {
1639
+ return h$70("a", {
1640
1640
  className: className === void 0 ? "wb-link" : `wb-link ${className}`,
1641
1641
  href,
1642
1642
  ...title === void 0 ? {} : { title },
@@ -1644,7 +1644,7 @@ function Link({ href, children, title, external = true, className }) {
1644
1644
  target: "_blank",
1645
1645
  rel: "noopener noreferrer"
1646
1646
  } : {}
1647
- }, children, external ? h$71(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
1647
+ }, children, external ? h$70(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
1648
1648
  }
1649
1649
  //#endregion
1650
1650
  //#region ../shared/dist/contract/long-task.js
@@ -1736,7 +1736,7 @@ var LONG_TASK_STOP_ARM_MS = 3e3;
1736
1736
  //#endregion
1737
1737
  //#region ../shared/dist/components/LongTaskRow.js
1738
1738
  function RowLink({ href, text }) {
1739
- return h$71(Link, {
1739
+ return h$70(Link, {
1740
1740
  href,
1741
1741
  className: "wb-longTaskLink"
1742
1742
  }, text);
@@ -1766,7 +1766,7 @@ function LongTaskRow(props) {
1766
1766
  const stop = props.stop;
1767
1767
  const busy = stop?.busy === true;
1768
1768
  const stopWhy = stop?.failed ?? "";
1769
- useEffect$32(() => {
1769
+ useEffect$33(() => {
1770
1770
  if (!armed) return void 0;
1771
1771
  const timer = setTimeout(() => setArmed(false), LONG_TASK_STOP_ARM_MS);
1772
1772
  return () => clearTimeout(timer);
@@ -1785,14 +1785,14 @@ function LongTaskRow(props) {
1785
1785
  setArmed(false);
1786
1786
  stop.onStop();
1787
1787
  };
1788
- return h$71("div", { className: "wb-longTask" }, h$71("p", { className: "wb-longTaskHead" }, h$71(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1788
+ return h$70("div", { className: "wb-longTask" }, h$70("p", { className: "wb-longTaskHead" }, h$70(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1789
1789
  state: longTaskDot(props.status),
1790
1790
  size: 10
1791
- }), h$71("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$71(RowLink, {
1791
+ }), h$70("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$70(RowLink, {
1792
1792
  href: link.href,
1793
1793
  key: `${link.text}@${link.href}`,
1794
1794
  text: link.text
1795
- })), stop === void 0 ? null : h$71("button", {
1795
+ })), stop === void 0 ? null : h$70("button", {
1796
1796
  type: "button",
1797
1797
  className: `wb-longTaskStop${armed ? " wb-longTaskStopArmed" : ""}`,
1798
1798
  "data-stop-state": longTaskStopStage({
@@ -1803,31 +1803,31 @@ function LongTaskRow(props) {
1803
1803
  disabled: busy,
1804
1804
  onClick: onStopPress,
1805
1805
  onBlur: () => setArmed(false)
1806
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.IconStopFillRegular, { size: 12 }), armed ? h$71("span", { className: "wb-longTaskStopLabel" }, stop.askLabel) : null)), problem === "" ? null : h$71("p", { className: "wb-longTaskProblem" }, problem), stopWhy === "" ? null : h$71("p", { className: "wb-longTaskStopWhy" }, stopWhy), !failed ? null : h$71(Fragment$22, null, steps.length === 0 || props.stepsTitle === void 0 ? null : h$71(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1806
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconStopFillRegular, { size: 12 }), armed ? h$70("span", { className: "wb-longTaskStopLabel" }, stop.askLabel) : null)), problem === "" ? null : h$70("p", { className: "wb-longTaskProblem" }, problem), stopWhy === "" ? null : h$70("p", { className: "wb-longTaskStopWhy" }, stopWhy), !failed ? null : h$70(Fragment$22, null, steps.length === 0 || props.stepsTitle === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1807
1807
  className: "wb-longTaskDump",
1808
- icon: h$71(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
1808
+ icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
1809
1809
  title: props.stepsTitle,
1810
1810
  open: stepsOpen,
1811
1811
  expandable: true,
1812
1812
  expandOnRowClick: true,
1813
1813
  previewChevron: true,
1814
1814
  onToggle: () => setStepsOpen(!stepsOpen)
1815
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1815
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1816
1816
  code: steps.join("\n"),
1817
1817
  className: "wb-longTaskDump",
1818
1818
  showHeader: props.copyLabel !== void 0,
1819
1819
  copyLabel: props.copyLabel ?? "",
1820
1820
  copiedLabel: props.copiedLabel ?? ""
1821
- })), raw === "" || props.rawTitle === void 0 ? null : h$71(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1821
+ })), raw === "" || props.rawTitle === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1822
1822
  className: "wb-longTaskDump",
1823
- icon: h$71(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
1823
+ icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
1824
1824
  title: props.rawTitle,
1825
1825
  open: rawOpen,
1826
1826
  expandable: true,
1827
1827
  expandOnRowClick: true,
1828
1828
  previewChevron: true,
1829
1829
  onToggle: () => setRawOpen(!rawOpen)
1830
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1830
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1831
1831
  code: raw,
1832
1832
  className: "wb-longTaskDump",
1833
1833
  showHeader: props.copyLabel !== void 0,
@@ -1843,13 +1843,13 @@ function LongTaskRow(props) {
1843
1843
  * @returns 一叠占位条。
1844
1844
  */
1845
1845
  function SkeletonRows({ rows = 4 }) {
1846
- return h$71("div", {
1846
+ return h$70("div", {
1847
1847
  className: "wb-skeleton",
1848
1848
  "aria-hidden": "true"
1849
- }, Array.from({ length: rows }, (_, index) => h$71("span", {
1849
+ }, Array.from({ length: rows }, (_, index) => h$70("span", {
1850
1850
  key: index,
1851
1851
  className: "wb-skeletonRow"
1852
- }, h$71("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$71("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
1852
+ }, h$70("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$70("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
1853
1853
  }
1854
1854
  /**
1855
1855
  * 居中一屏:要他先选一个 / 正在读 / 读不到时用它占住卡片版面。
@@ -1862,13 +1862,13 @@ function SkeletonRows({ rows = 4 }) {
1862
1862
  * @returns 一个 `role="status"` 的居中块。
1863
1863
  */
1864
1864
  function CenteredState({ icon, title, hint, detail, action, compact = false }) {
1865
- return h$71("div", {
1865
+ return h$70("div", {
1866
1866
  className: compact ? "wb-centered wb-centeredCompact" : "wb-centered",
1867
1867
  role: "status"
1868
- }, icon === null ? null : h$71("span", {
1868
+ }, icon === null ? null : h$70("span", {
1869
1869
  className: "wb-centeredHero",
1870
1870
  "aria-hidden": "true"
1871
- }, icon), h$71("div", { className: "wb-centeredTitle" }, title), hint === void 0 ? null : h$71("div", { className: "wb-centeredHint" }, hint), detail === void 0 ? null : h$71("div", { className: "wb-centeredDetail" }, detail), action === void 0 ? null : h$71("div", { className: "wb-centeredAction" }, action));
1871
+ }, icon), h$70("div", { className: "wb-centeredTitle" }, title), hint === void 0 ? null : h$70("div", { className: "wb-centeredHint" }, hint), detail === void 0 ? null : h$70("div", { className: "wb-centeredDetail" }, detail), action === void 0 ? null : h$70("div", { className: "wb-centeredAction" }, action));
1872
1872
  }
1873
1873
  /**
1874
1874
  * 就绪但空:它只是 `CenteredState` 的简写,标题就是那句空态文案。
@@ -1878,7 +1878,7 @@ function CenteredState({ icon, title, hint, detail, action, compact = false }) {
1878
1878
  * @returns 一个居中块。
1879
1879
  */
1880
1880
  function EmptyState({ text, icon = null, compact = false }) {
1881
- return h$71(CenteredState, {
1881
+ return h$70(CenteredState, {
1882
1882
  icon,
1883
1883
  title: text,
1884
1884
  compact
@@ -1896,7 +1896,7 @@ function EmptyState({ text, icon = null, compact = false }) {
1896
1896
  * @returns 一组按钮。
1897
1897
  */
1898
1898
  function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
1899
- return h$71(FormActions, { actions: [{
1899
+ return h$70(FormActions, { actions: [{
1900
1900
  key: "cancel",
1901
1901
  label: labels.cancel,
1902
1902
  kind: "default",
@@ -1926,11 +1926,13 @@ function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
1926
1926
  * @param args.value - 已渲染好的当前值节点(文本或占位)。
1927
1927
  * @param args.iconOnly - 只画图标(窄栏那颗切换钮),值与箭头都不画。
1928
1928
  * @param args.onOpen - 点它做什么,通常是把列表打开。
1929
+ * @param args.ref - 挂到这颗 `<button>` 上,取消后回焦点、菜单开着头条滚轮要用它。
1929
1930
  * @returns 一颗 `<button>`。
1930
1931
  */
1931
1932
  function selectTriggerNode(args) {
1932
- return h$71("button", {
1933
+ return h$70("button", {
1933
1934
  type: "button",
1935
+ ref: args.ref,
1934
1936
  id: args.id,
1935
1937
  className: args.className,
1936
1938
  disabled: args.disabled,
@@ -1940,7 +1942,7 @@ function selectTriggerNode(args) {
1940
1942
  "aria-label": args.ariaLabel,
1941
1943
  title: args.title,
1942
1944
  onClick: args.onOpen
1943
- }, args.iconOnly ? h$71("span", { className: "wb-selectIcon" }, args.icon) : h$71(Fragment$22, null, args.icon === void 0 ? null : h$71("span", { className: "wb-selectIcon" }, args.icon), h$71("span", { className: "wb-selectValue" }, args.value), h$71("span", { className: "wb-selectChevron" }, h$71(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 14 }))));
1945
+ }, args.iconOnly ? h$70("span", { className: "wb-selectIcon" }, args.icon) : h$70(Fragment$22, null, args.icon === void 0 ? null : h$70("span", { className: "wb-selectIcon" }, args.icon), h$70("span", { className: "wb-selectValue" }, args.value), h$70("span", { className: "wb-selectChevron" }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 14 }))));
1944
1946
  }
1945
1947
  /**
1946
1948
  * 名单还没读到时的触发器:禁用 + `aria-busy` 的按钮,`SelectField` 在 `loading` 那档画它。
@@ -1952,7 +1954,7 @@ function selectTriggerNode(args) {
1952
1954
  * @returns 一颗禁用且 `aria-busy` 的按钮。
1953
1955
  */
1954
1956
  function selectLoadingNode(args) {
1955
- return h$71("button", {
1957
+ return h$70("button", {
1956
1958
  type: "button",
1957
1959
  id: args.id,
1958
1960
  className: `${args.className} wb-selectLoading`,
@@ -1961,7 +1963,7 @@ function selectLoadingNode(args) {
1961
1963
  "aria-invalid": args.invalid || void 0,
1962
1964
  "aria-label": args.ariaLabel,
1963
1965
  title: args.loadingText
1964
- }, h$71("span", { className: "wb-selectValue" }, h$71(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { active: true }, args.loadingText ?? "…")), h$71("span", { className: "wb-selectChevron" }, h$71(Spinner, { size: 14 })));
1966
+ }, h$70("span", { className: "wb-selectValue" }, h$70(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { active: true }, args.loadingText ?? "…")), h$70("span", { className: "wb-selectChevron" }, h$70(Spinner, { size: 14 })));
1965
1967
  }
1966
1968
  //#endregion
1967
1969
  //#region ../shared/dist/components/TextField.js
@@ -1971,7 +1973,7 @@ function selectLoadingNode(args) {
1971
1973
  * @returns 输入框元素;`className` 是追加在基础类名之后,而不是替换它。
1972
1974
  */
1973
1975
  function TextField({ invalid = false, className, ...rest }) {
1974
- return h$71("input", {
1976
+ return h$70("input", {
1975
1977
  ...rest,
1976
1978
  className: className === void 0 ? "wb-textField" : `wb-textField ${className}`,
1977
1979
  "aria-invalid": invalid || void 0
@@ -1987,43 +1989,23 @@ function mergeClass(...parts) {
1987
1989
  function triggerClassOf(variantClass, iconOnly) {
1988
1990
  return mergeClass("wb-selectTrigger", variantClass, iconOnly ? "wb-selectIconOnly" : void 0);
1989
1991
  }
1990
- function itemOf(option, revealId) {
1991
- if (!(option.value === revealId)) return {
1992
+ function itemOf(option) {
1993
+ return {
1992
1994
  id: option.value,
1993
1995
  label: option.label,
1994
1996
  ...option.icon === void 0 ? {} : { icon: option.icon },
1995
1997
  ...option.disabled === true ? { disabled: true } : {}
1996
1998
  };
1997
- const revealed = (node) => h$71("span", {
1998
- className: "wb-selectReveal",
1999
- "data-wb-select-reveal": ""
2000
- }, node);
2001
- return {
2002
- id: option.value,
2003
- label: option.icon === void 0 ? revealed(option.label) : option.label,
2004
- ...option.icon === void 0 ? {} : { icon: revealed(option.icon) },
2005
- ...option.disabled === true ? { disabled: true } : {}
2006
- };
2007
- }
2008
- function revealNode() {
2009
- const found = document.querySelector("[data-wb-select-reveal]");
2010
- return found instanceof HTMLElement ? found : null;
2011
- }
2012
- function useRevealOnOpen(open, revealId) {
2013
- useEffect$32(() => {
2014
- if (!open || revealId === void 0) return;
2015
- revealNode()?.scrollIntoView({ block: "nearest" });
2016
- }, [open, revealId]);
2017
1999
  }
2018
2000
  function selectValueNode(current, renderValue, placeholder) {
2019
- if (current === void 0) return h$71("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
2001
+ if (current === void 0) return h$70("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
2020
2002
  return renderValue === void 0 ? current.label : renderValue(current);
2021
2003
  }
2022
2004
  function searchNode(args) {
2023
- return h$71("span", {
2005
+ return h$70("span", {
2024
2006
  ref: args.boxRef,
2025
2007
  className: args.className
2026
- }, h$71("span", { className: "wb-selectSearchIcon" }, h$71(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$71(TextField, {
2008
+ }, h$70("span", { className: "wb-selectSearchIcon" }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$70(TextField, {
2027
2009
  id: args.id,
2028
2010
  name: args.name,
2029
2011
  className: "wb-selectSearchInput",
@@ -2038,7 +2020,7 @@ function searchNode(args) {
2038
2020
  }));
2039
2021
  }
2040
2022
  function menuNode(args) {
2041
- return h$71(_deepseek_ai_dsh_client_ui_primitives.Menu, {
2023
+ return h$70(_deepseek_ai_dsh_client_ui_primitives.Menu, {
2042
2024
  open: args.open,
2043
2025
  portal: true,
2044
2026
  className: "wb-selectAnchor",
@@ -2055,11 +2037,11 @@ function menuNode(args) {
2055
2037
  });
2056
2038
  }
2057
2039
  function framed(label, hint, className, control) {
2058
- const inner = label === void 0 ? hint === void 0 ? control : h$71("span", { className: "wb-select" }, control, h$71("span", { className: "wb-selectHint" }, hint)) : h$71(Field, {
2040
+ const inner = label === void 0 ? hint === void 0 ? control : h$70("span", { className: "wb-select" }, control, h$70("span", { className: "wb-selectHint" }, hint)) : h$70(Field, {
2059
2041
  label,
2060
2042
  hint
2061
2043
  }, control);
2062
- return className === void 0 ? inner : h$71("div", { className }, inner);
2044
+ return className === void 0 ? inner : h$70("div", { className }, inner);
2063
2045
  }
2064
2046
  /** 算候选项用来匹配搜索的文本:有 `searchText` 就用它,否则取字符串标签;标签不是字符串又没给它是空串(这项搜不到)。 */
2065
2047
  function searchTextOf(option) {
@@ -2087,8 +2069,8 @@ function stepSelectCursor(shown, cursor, step) {
2087
2069
  if (cursor === null) return step === 1 ? 0 : shown.length - 1;
2088
2070
  return (cursor + step + shown.length) % shown.length;
2089
2071
  }
2090
- /** 把候选排成 `Menu` 要的条目表:按 `group` 插分组标题;一项都没有时退回 `emptyText` 那一行(不给就是空表)。`revealId` 是开列表时要滚进可视区的那个 value。 */
2091
- function selectEntries(shown, emptyText, revealId) {
2072
+ /** 把候选排成 `Menu` 要的条目表:按 `group` 插分组标题;一项都没有时退回 `emptyText` 那一行(不给就是空表)。 */
2073
+ function selectEntries(shown, emptyText) {
2092
2074
  if (shown.length === 0) return emptyText === void 0 ? [] : [{
2093
2075
  type: "label",
2094
2076
  id: EMPTY_ID,
@@ -2105,7 +2087,7 @@ function selectEntries(shown, emptyText, revealId) {
2105
2087
  });
2106
2088
  group = option.group;
2107
2089
  }
2108
- out.push(itemOf(option, revealId));
2090
+ out.push(itemOf(option));
2109
2091
  }
2110
2092
  return out;
2111
2093
  }
@@ -2124,11 +2106,11 @@ function useSelectState(props) {
2124
2106
  if (openProp === void 0) setOpenState(next);
2125
2107
  onOpenChange?.(next);
2126
2108
  };
2127
- useEffect$32(() => {
2109
+ useEffect$33(() => {
2128
2110
  if (!open || props.search === false) return;
2129
2111
  boxRef.current?.querySelector("input")?.focus();
2130
2112
  }, [open, props.search]);
2131
- useEffect$32(() => {
2113
+ useEffect$33(() => {
2132
2114
  if (open) {
2133
2115
  wasOpenRef.current = true;
2134
2116
  return;
@@ -2185,10 +2167,9 @@ function useSelectState(props) {
2185
2167
  * @returns 触发器,以及打开时的搜索框与列表。
2186
2168
  */
2187
2169
  function SelectField(props) {
2188
- const { value, options, onChange, label, hint, icon, renderValue, placeholder, search = true, searchLabel, searchPlaceholder, footer, onFooter, disabled = false, invalid = false, loading = false, loadingText, fallback, selection = "fill", variant = "boxed", iconOnly = false, revealId, ariaLabel, title, id, name, className, menuClassName } = props;
2170
+ const { value, options, onChange, label, hint, icon, renderValue, placeholder, search = true, searchLabel, searchPlaceholder, footer, onFooter, disabled = false, invalid = false, loading = false, loadingText, fallback, selection = "fill", variant = "boxed", iconOnly = false, ariaLabel, title, id, name, className, menuClassName } = props;
2189
2171
  const state = useSelectState(props);
2190
2172
  const current = options.find((option) => option.value === value);
2191
- useRevealOnOpen(state.open, revealId);
2192
2173
  const variantClass = variant === "ghost" ? "wb-selectGhost" : void 0;
2193
2174
  const triggerClass = triggerClassOf(variantClass, iconOnly);
2194
2175
  if (loading) return framed(label, hint, className, selectLoadingNode({
@@ -2198,7 +2179,7 @@ function SelectField(props) {
2198
2179
  ariaLabel,
2199
2180
  loadingText
2200
2181
  }));
2201
- if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$71(TextField, {
2182
+ if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$70(TextField, {
2202
2183
  id,
2203
2184
  name,
2204
2185
  className: "wb-selectFallback",
@@ -2218,7 +2199,8 @@ function SelectField(props) {
2218
2199
  icon,
2219
2200
  value: selectValueNode(current, renderValue, placeholder),
2220
2201
  iconOnly,
2221
- onOpen: () => state.setOpen(true)
2202
+ onOpen: () => state.setOpen(true),
2203
+ ref: state.triggerRef
2222
2204
  });
2223
2205
  const anchor = state.open && search ? searchNode({
2224
2206
  boxRef: state.boxRef,
@@ -2253,7 +2235,7 @@ function SelectField(props) {
2253
2235
  anchor,
2254
2236
  selection,
2255
2237
  selectedId: selectCursorValue(state.shown, state.cursor) ?? void 0,
2256
- items: selectEntries(state.shown, state.empty, revealId),
2238
+ items: selectEntries(state.shown, state.empty),
2257
2239
  footer: footer === void 0 ? void 0 : [{
2258
2240
  id: FOOTER_ID,
2259
2241
  label: footer.label,
@@ -2281,11 +2263,11 @@ function SelectField(props) {
2281
2263
  * @returns 一个 `role="group"` 的 section。
2282
2264
  */
2283
2265
  function SettingsSection({ label, title, action, children }) {
2284
- return h$71("section", {
2266
+ return h$70("section", {
2285
2267
  className: "wb-settings",
2286
2268
  role: "group",
2287
2269
  "aria-label": label
2288
- }, h$71("header", { className: "wb-settingsHead" }, h$71("span", { className: "wb-settingsTitle" }, title), action), children);
2270
+ }, h$70("header", { className: "wb-settingsHead" }, h$70("span", { className: "wb-settingsTitle" }, title), action), children);
2289
2271
  }
2290
2272
  //#endregion
2291
2273
  //#region ../shared/dist/components/Stack.js
@@ -2295,7 +2277,7 @@ function SettingsSection({ label, title, action, children }) {
2295
2277
  * @returns 竖排的 div。
2296
2278
  */
2297
2279
  function Stack({ children }) {
2298
- return h$71("div", { className: "wb-stack" }, children);
2280
+ return h$70("div", { className: "wb-stack" }, children);
2299
2281
  }
2300
2282
  //#endregion
2301
2283
  //#region ../shared/dist/components/StateBlock.js
@@ -2310,12 +2292,12 @@ function Stack({ children }) {
2310
2292
  * @returns 一个 div。
2311
2293
  */
2312
2294
  function StateBlock({ title, dot, hint, actions, resolving, children }) {
2313
- return h$71("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h$71("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h$71("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h$71("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h$71("div", { className: "wb-stateBlockActions" }, actions));
2295
+ return h$70("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h$70("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h$70("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h$70("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h$70("div", { className: "wb-stateBlockActions" }, actions));
2314
2296
  }
2315
2297
  //#endregion
2316
2298
  //#region ../shared/dist/components/icons.js
2317
2299
  function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
2318
- return h$71("svg", {
2300
+ return h$70("svg", {
2319
2301
  width: size,
2320
2302
  height: size,
2321
2303
  viewBox,
@@ -2332,10 +2314,10 @@ function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
2332
2314
  * @returns 一枚 `aria-hidden` 的 svg。
2333
2315
  */
2334
2316
  function IconConversation({ size = 16 }) {
2335
- return h$71(Shell, {
2317
+ return h$70(Shell, {
2336
2318
  size,
2337
2319
  strokeWidth: 1.3
2338
- }, h$71("path", {
2320
+ }, h$70("path", {
2339
2321
  d: "M2.5 7.2c0-2.3 2.1-4.2 4.8-4.2h1.4c2.7 0 4.8 1.9 4.8 4.2s-2.1 4.2-4.8 4.2H7.5l-3.2 2v-2.3c-1.1-.8-1.8-2-1.8-3.9Z",
2340
2322
  stroke: "currentColor",
2341
2323
  strokeLinejoin: "round"
@@ -2350,30 +2332,30 @@ var BRAND_TAIL_TRANSFORM = "translate(14.6263 10.5853) scale(1.95)";
2350
2332
  * @returns 一枚 `aria-hidden` 的 svg。
2351
2333
  */
2352
2334
  function IconBrandMark({ size = 24 }) {
2353
- return h$71(Shell, {
2335
+ return h$70(Shell, {
2354
2336
  size,
2355
2337
  viewBox: "0 0 64 64"
2356
- }, h$71("path", {
2338
+ }, h$70("path", {
2357
2339
  d: BRAND_FRAME,
2358
2340
  fill: "currentColor",
2359
2341
  fillRule: "evenodd"
2360
- }), h$71("rect", {
2342
+ }), h$70("rect", {
2361
2343
  x: 27.5,
2362
2344
  y: 48,
2363
2345
  width: 9,
2364
2346
  height: 4.75,
2365
2347
  fill: "currentColor"
2366
- }), h$71("rect", {
2348
+ }), h$70("rect", {
2367
2349
  x: 19,
2368
2350
  y: 52.75,
2369
2351
  width: 26,
2370
2352
  height: 4.75,
2371
2353
  rx: 2.375,
2372
2354
  fill: "currentColor"
2373
- }), h$71("g", { transform: BRAND_TAIL_TRANSFORM }, h$71("path", {
2355
+ }), h$70("g", { transform: BRAND_TAIL_TRANSFORM }, h$70("path", {
2374
2356
  d: BRAND_TAIL,
2375
2357
  fill: "currentColor"
2376
- }), h$71("circle", {
2358
+ }), h$70("circle", {
2377
2359
  cx: 6.885,
2378
2360
  cy: 13.742,
2379
2361
  r: 1.95,
@@ -2386,30 +2368,30 @@ function IconBrandMark({ size = 24 }) {
2386
2368
  * @returns 一枚 `aria-hidden` 的 svg。
2387
2369
  */
2388
2370
  function IconOpencli({ size = 16 }) {
2389
- return h$71(Shell, {
2371
+ return h$70(Shell, {
2390
2372
  size,
2391
2373
  viewBox: "0 0 64 64"
2392
- }, h$71("defs", null, h$71("linearGradient", {
2374
+ }, h$70("defs", null, h$70("linearGradient", {
2393
2375
  id: "opencli-mark",
2394
2376
  x1: "0%",
2395
2377
  y1: "0%",
2396
2378
  x2: "100%",
2397
2379
  y2: "100%"
2398
- }, h$71("stop", {
2380
+ }, h$70("stop", {
2399
2381
  offset: "0%",
2400
2382
  stopColor: "#00e5a0"
2401
- }), h$71("stop", {
2383
+ }), h$70("stop", {
2402
2384
  offset: "50%",
2403
2385
  stopColor: "#00b4d8"
2404
- }), h$71("stop", {
2386
+ }), h$70("stop", {
2405
2387
  offset: "100%",
2406
2388
  stopColor: "#7b61ff"
2407
- }))), h$71("rect", {
2389
+ }))), h$70("rect", {
2408
2390
  width: 64,
2409
2391
  height: 64,
2410
2392
  rx: 14,
2411
2393
  fill: "#0a0a0f"
2412
- }), h$71("text", {
2394
+ }), h$70("text", {
2413
2395
  x: "50%",
2414
2396
  y: "54%",
2415
2397
  dominantBaseline: "middle",
@@ -2426,10 +2408,10 @@ function IconOpencli({ size = 16 }) {
2426
2408
  * @returns 一枚 `aria-hidden` 的 svg。
2427
2409
  */
2428
2410
  function IconNpm({ size = 16 }) {
2429
- return h$71(Shell, {
2411
+ return h$70(Shell, {
2430
2412
  size,
2431
2413
  viewBox: "0 0 1024 1024"
2432
- }, h$71("path", {
2414
+ }, h$70("path", {
2433
2415
  d: "M64 337.76h896v298.72H512v49.792H312.896v-49.824H64z m49.792 248.928h99.552v-149.376h49.76v149.344h49.792v-199.104H113.792z m248.896-199.136v248.928h99.552v-49.792h99.552v-199.136z m99.552 49.792H512v99.584h-49.792z m149.344-49.792v199.136h99.552v-149.376h49.792v149.344h49.792v-149.344h49.792v149.344h49.792v-199.104z",
2434
2416
  fill: "#CB3837"
2435
2417
  }));
@@ -2440,37 +2422,37 @@ function IconNpm({ size = 16 }) {
2440
2422
  * @returns 一枚 `aria-hidden` 的 svg。
2441
2423
  */
2442
2424
  function IconModuleMark({ size = 16 }) {
2443
- return h$71(Shell, {
2425
+ return h$70(Shell, {
2444
2426
  size,
2445
2427
  viewBox: "0 0 24 24"
2446
- }, h$71("defs", null, h$71("linearGradient", {
2428
+ }, h$70("defs", null, h$70("linearGradient", {
2447
2429
  id: "workbench-module-mark",
2448
2430
  x1: "0%",
2449
2431
  y1: "0%",
2450
2432
  x2: "100%",
2451
2433
  y2: "100%"
2452
- }, h$71("stop", {
2434
+ }, h$70("stop", {
2453
2435
  offset: "0%",
2454
2436
  stopColor: "#3b82f6"
2455
- }), h$71("stop", {
2437
+ }), h$70("stop", {
2456
2438
  offset: "55%",
2457
2439
  stopColor: "#8b5cf6"
2458
- }), h$71("stop", {
2440
+ }), h$70("stop", {
2459
2441
  offset: "100%",
2460
2442
  stopColor: "#14b8a6"
2461
- }))), h$71("rect", {
2443
+ }))), h$70("rect", {
2462
2444
  width: 24,
2463
2445
  height: 24,
2464
2446
  rx: 7,
2465
2447
  fill: "url(#workbench-module-mark)"
2466
- }), h$71("rect", {
2448
+ }), h$70("rect", {
2467
2449
  x: "4.6",
2468
2450
  y: "4.6",
2469
2451
  width: "6.2",
2470
2452
  height: "6.2",
2471
2453
  rx: "1.9",
2472
2454
  fill: "#ffffff"
2473
- }), h$71("rect", {
2455
+ }), h$70("rect", {
2474
2456
  x: "13.2",
2475
2457
  y: "4.6",
2476
2458
  width: "6.2",
@@ -2478,7 +2460,7 @@ function IconModuleMark({ size = 16 }) {
2478
2460
  rx: "1.9",
2479
2461
  fill: "#ffffff",
2480
2462
  fillOpacity: .78
2481
- }), h$71("rect", {
2463
+ }), h$70("rect", {
2482
2464
  x: "4.6",
2483
2465
  y: "13.2",
2484
2466
  width: "6.2",
@@ -2486,7 +2468,7 @@ function IconModuleMark({ size = 16 }) {
2486
2468
  rx: "1.9",
2487
2469
  fill: "#ffffff",
2488
2470
  fillOpacity: .78
2489
- }), h$71("rect", {
2471
+ }), h$70("rect", {
2490
2472
  x: "13.2",
2491
2473
  y: "13.2",
2492
2474
  width: "6.2",
@@ -2501,7 +2483,7 @@ function IconModuleMark({ size = 16 }) {
2501
2483
  * @returns 一枚 `aria-hidden` 的 svg。
2502
2484
  */
2503
2485
  function IconPanelScreen({ size = 16 }) {
2504
- return h$71("svg", {
2486
+ return h$70("svg", {
2505
2487
  width: size,
2506
2488
  height: size,
2507
2489
  viewBox: "0 0 1024 1024",
@@ -2512,7 +2494,7 @@ function IconPanelScreen({ size = 16 }) {
2512
2494
  display: "block",
2513
2495
  overflow: "hidden"
2514
2496
  }
2515
- }, h$71("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" }));
2497
+ }, h$70("path", { d: "M939 112c17.673 0 32 14.327 32 32v554.667c0 17.673-14.327 32-32 32l-394.5-0.001v96c0 3.74-0.642 7.331-1.82 10.668H768.4c17.673 0 32 14.326 32 32 0 17.496-14.042 31.712-31.47 31.995l-0.53 0.004H256.6c-17.673 0-32-14.327-32-32 0-17.496 14.042-31.713 31.47-31.995l0.53-0.005h225.721a31.923 31.923 0 0 1-1.817-10.137l-0.004-0.53v-96H86c-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V144c0-17.673 14.327-32 32-32z m-32 64H118v490.666h789V176zM341.9 432c17.496 0 31.713 14.042 31.996 31.47l0.004 0.53v85.333c0 17.673-14.327 32-32 32-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V464c0-17.673 14.327-32 32-32z m170.6-85.333c17.496 0 31.713 14.041 31.996 31.47l0.004 0.53v170.666c0 17.673-14.327 32-32 32-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V378.667c0-17.673 14.327-32 32-32z m170.6-85.334c17.496 0 31.713 14.042 31.996 31.471l0.004 0.53v256c0 17.672-14.327 32-32 32-17.496 0-31.713-14.042-31.996-31.471l-0.004-0.53v-256c0-17.673 14.327-32 32-32z" }));
2516
2498
  }
2517
2499
  //#endregion
2518
2500
  //#region ../shared/dist/config/storage.js
@@ -2820,7 +2802,7 @@ function perKindProblemsOf(kind, raw, at) {
2820
2802
  if (raw["docs"] !== void 0 && text(raw["docs"]) === "") errors.push(`${at}.docs 是空串`);
2821
2803
  if (kind === "lib") errors.push(...libRunsProblemsOf(raw["runs"], at));
2822
2804
  if (kind === "extension") {
2823
- if (text(raw["runtime"]) === "") errors.push(`${at}.runtime 没写 —— 扩展属于哪个运行时(如 opencli)`);
2805
+ if (text(raw["runtime"]) === "") errors.push(`${at}.runtime 没写 —— 扩展属于哪个运行时`);
2824
2806
  if (text(raw["name"]) === "") errors.push(`${at}.name 没写`);
2825
2807
  if (raw["commands"] !== void 0) {
2826
2808
  if (!Array.isArray(raw["commands"])) errors.push(`${at}.commands 要是数组`);
@@ -3077,7 +3059,11 @@ var en = {
3077
3059
  "time.short.years": "{n}y",
3078
3060
  "panels.title": "Panel modules",
3079
3061
  "panels.groupBoardless": "No-board modules",
3080
- "panels.groupPlugins": "opencli plugins",
3062
+ "panels.groupPlugins": "Plugins",
3063
+ "runtime.plugin": "plugin",
3064
+ "runtime.pluginOf": "a plugin the runtime provides",
3065
+ "runtime.pluginThing": "a plugin",
3066
+ "runtime.pluginArea": "the plugin area",
3081
3067
  "panels.market.defaultHint": "When on, it is on by default in every workspace; you can also turn it off for a single workspace in Panel setup.",
3082
3068
  "panels.market.defaultLabel": "On by default everywhere",
3083
3069
  "panels.market.defaultLocked": "Unusable right now — update or uninstall it first",
@@ -3155,9 +3141,6 @@ var en = {
3155
3141
  "panels.market.confirmNo": "Cancel",
3156
3142
  "panels.market.noMarketSource": "The index has no newer version of this module (refresh the index and retry)",
3157
3143
  "panels.market.failed": "Failed: {reason}",
3158
- "panels.market.askAgent": "Ask the agent",
3159
- "panels.market.askAgentCopied": "Copied",
3160
- "panels.market.askAgentText": "This workbench module cannot be used: \"{name}\" (unit {unit}) — {reason}. Work out what is missing and how to add it, then confirm it works.",
3161
3144
  "panels.market.failure.permission": "Didn't install: no write access",
3162
3145
  "panels.market.failure.diskFull": "Didn't install: the disk is full",
3163
3146
  "panels.market.failure.sandbox": "Didn't install: the system blocked it",
@@ -3197,7 +3180,7 @@ var en = {
3197
3180
  "panels.market.noSource": "This module declares no install method — install it yourself",
3198
3181
  "panels.market.badSource": "The install method is incomplete — install it yourself",
3199
3182
  "panels.market.empty": "No modules available",
3200
- "panels.market.sectionPlugins": "Installed opencli plugins",
3183
+ "panels.market.sectionPlugins": "Installed plugins",
3201
3184
  "panels.market.moduleOutdated": "update available",
3202
3185
  "panels.market.updateNeedsWorkbench": "this version needs a newer workbench first",
3203
3186
  "panels.market.updateIncompatible": "the new version does not match this workbench, so it cannot be installed now",
@@ -3235,7 +3218,7 @@ var en = {
3235
3218
  "panels.market.justNow": "just now",
3236
3219
  "panels.market.minutesAgo": "{n} min ago",
3237
3220
  "panels.market.hoursAgo": "{n} h ago",
3238
- "panels.market.add.description": "Enter a module or opencli plugin package name, Git repository URL, or local directory path.",
3221
+ "panels.market.add.description": "Enter a module or {plugin} package name, Git repository URL, or local directory path.",
3239
3222
  "panels.market.add.specPlaceholder": "e.g. @dsh-workbench/module-hello",
3240
3223
  "panels.market.add.guideToggle": "Install guide and examples",
3241
3224
  "panels.market.add.guideHide": "Hide guide",
@@ -3274,12 +3257,12 @@ var en = {
3274
3257
  "panels.market.add.problemInstalled": "This module is already installed (add @version to switch versions)",
3275
3258
  "panels.market.add.problemNotFound": "No such module found",
3276
3259
  "panels.market.add.problemNotPackage": "That path does not exist or is not a valid module package",
3277
- "panels.market.add.problemNotBundle": "This package cannot be installed here: {reason}. This entry recognises workbench modules and opencli plugins by package name, and installs either; but a git URL or a tarball does not reveal what it is — if it is really one of those two, use its package name or a local folder instead.",
3260
+ "panels.market.add.problemNotBundle": "This package cannot be installed here: {reason}. This entry recognises workbench modules and {plugin}s by package name, and installs either; but a git URL or a tarball does not reveal what it is — if it is really one of those two, use its package name or a local folder instead.",
3278
3261
  "panels.market.add.problemNotWorkbenchModule": "This package does not match the workbench you are running, so installing it would not work. Pick another version, or ask the module author.",
3279
- "panels.market.add.problemNotModuleOrPlugin": "This package is neither a workbench module nor an opencli plugin, so installing it would do nothing. Pick another version, or ask the package author.",
3280
- "panels.market.add.failureNotModuleOrPlugin": "This package is neither a workbench module nor an opencli plugin, so installing it would do nothing",
3281
- "panels.market.add.installedPlugin": "Installed: the opencli plugin {name}",
3282
- "panels.market.add.pluginPreview": "This is an opencli plugin: it goes into the opencli plugin area and works as soon as it is installed — no restart.",
3262
+ "panels.market.add.problemNotModuleOrPlugin": "This package is neither a workbench module nor {pluginOf}, so installing it would do nothing. Pick another version, or ask the package author.",
3263
+ "panels.market.add.failureNotModuleOrPlugin": "This package is neither a workbench module nor {pluginOf}, so installing it would do nothing",
3264
+ "panels.market.add.installedPlugin": "Installed: {plugin} {name}",
3265
+ "panels.market.add.pluginPreview": "This is {pluginThing}: it goes into {pluginArea} and works as soon as it is installed — no restart.",
3283
3266
  "panels.market.add.pluginAlias": "Plugin name: {name}",
3284
3267
  "panels.market.add.problemNetwork": "Cannot reach the module source; check the network and retry",
3285
3268
  "panels.market.add.problemUnknown": "Cannot fetch module information: {reason}",
@@ -3369,6 +3352,7 @@ var en = {
3369
3352
  "panels.discover.noSourceHint": "Add a module market index (http address or git repository) to browse and install its modules here",
3370
3353
  "panels.discover.sourcesFailed": "Could not read the index sources.",
3371
3354
  "panels.discover.unreadable": "Could not read this index.",
3355
+ "panels.discover.sandbox": "Blocked by the system: this profile does not allow the workbench to write its own cache directory.",
3372
3356
  "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.",
3373
3357
  "panels.discover.invalid": "This index is not in a valid format.",
3374
3358
  "panels.discover.emptyRepo": "This repository has no commits yet.",
@@ -3555,7 +3539,7 @@ var en = {
3555
3539
  "blocker.forbidden.hint": "You are signed in, but this project/repo is not permitted for your account.",
3556
3540
  "blocker.forbidden.open": "Open permissions page",
3557
3541
  "blocker.timeout.hint": "The background browser may not have started; retrying usually helps.",
3558
- "blocker.exec.hint": "Make sure opencli is installed and runs from your terminal (which opencli).",
3542
+ "blocker.exec.hint": "Make sure the runtime is installed and runs from your terminal.",
3559
3543
  "blocker.unknown.title": "Something went wrong",
3560
3544
  "panels.reading": "Reading the panel setup…",
3561
3545
  "panels.cardBroken": "This module will not render: {unit} ({reason})",
@@ -3565,6 +3549,7 @@ var en = {
3565
3549
  "env.title": "Preparing the workbench",
3566
3550
  "env.checking": "Getting the runtime ready…",
3567
3551
  "env.installing": "Installing background tools — the first run takes a moment…",
3552
+ "env.installingToolchain": "Installing the workbench’s own npm / pnpm — the first run downloads them, so it can take a while.",
3568
3553
  "env.failed": "One step away",
3569
3554
  "env.elapsed": "Waiting {seconds}s",
3570
3555
  "env.stepFailed.install": "install failed",
@@ -3572,16 +3557,11 @@ var en = {
3572
3557
  "env.stepFailed.shell": "cannot reach the command line",
3573
3558
  "env.toolchain.ok": "Looks good",
3574
3559
  "env.toolchain.warn": "Almost ready",
3575
- "env.opencli.ok": "Ready",
3560
+ "env.runtime.ok": "Ready",
3576
3561
  "env.bridge.ok": "Connected",
3577
3562
  "env.bridge.short": "Not connected yet",
3578
3563
  "env.bridge.why": "Panel data uses the login state in your browser. Without this connection, modules cannot fetch data. It does not block startup: fix it, or enter the workbench first.",
3579
3564
  "env.bridge.hold": "The browser is not connected yet — fix it below and hit Retry, or enter the workbench first.",
3580
- "env.bridge.daemon": "The background service is not running. It usually starts by itself — run the command below in your terminal first.",
3581
- "env.bridge.extension": "The browser extension is not connected. Make sure the browser is running and the extension is enabled; install it once from the store if needed (then hit Retry here).",
3582
- "env.bridge.extensionLink": "Get the extension in the Chrome Web Store",
3583
- "env.bridge.profile": "Several browser accounts are connected but none is the default: list them (command below), then pick one.",
3584
- "env.bridge.stale": "The default browser account is stale (it names an extension instance that no longer exists): pick one again.",
3585
3565
  "env.bridge.unknown": "Could not tell what went wrong. Expand the raw output and follow the steps in it.",
3586
3566
  "env.fix.title": "How to fix it",
3587
3567
  "env.fix.why": "The workbench uses its own background tool (installed separately from the one in your terminal), and it is not set up on this machine yet.",
@@ -3610,13 +3590,14 @@ var en = {
3610
3590
  "env.diy.continue": "Enter the workbench anyway",
3611
3591
  "env.copyCommand": "Copy command",
3612
3592
  "env.copied": "Copied",
3613
- "env.step.toolchain": "Runtime",
3614
- "env.step.opencli": "Background tools",
3615
- "env.step.bridge": "Browser connection",
3616
- "env.step.diy": "DIY mode",
3617
- "env.step.warm": "Site sign-in",
3593
+ "env.step.toolchain": "Check the environment",
3594
+ "env.step.adapter": "Check the runtime",
3595
+ "env.step.runtime": "Install background tools",
3596
+ "env.step.bridge": "Connect your browser",
3597
+ "env.step.diy": "Check DIY mode",
3598
+ "env.step.warm": "Reach your sites",
3618
3599
  "env.warm.done": "Ready ({n} sites)",
3619
- "env.warm.short": "Could not sign in early this time — nothing breaks; the first read fills it in",
3600
+ "env.warm.short": "Could not reach your sites early this time — nothing breaks; the first read fills it in",
3620
3601
  "env.unit.failed": "This module cannot start",
3621
3602
  "env.unit.failedHint": "It failed while starting up; other modules are unaffected.",
3622
3603
  "env.unit.unchecked": "Cannot check: no command line",
@@ -3825,7 +3806,11 @@ var dictionaries = {
3825
3806
  "time.short.years": "{n}年",
3826
3807
  "panels.title": "面板模块",
3827
3808
  "panels.groupBoardless": "无看板模块",
3828
- "panels.groupPlugins": "opencli 插件",
3809
+ "panels.groupPlugins": "插件",
3810
+ "runtime.plugin": "插件",
3811
+ "runtime.pluginOf": "运行时提供的插件",
3812
+ "runtime.pluginThing": "插件",
3813
+ "runtime.pluginArea": "插件区",
3829
3814
  "panels.market.defaultHint": "打开后所有工作区默认开启,也可在工作区面板配置中单独关闭",
3830
3815
  "panels.market.defaultLabel": "全局默认开启",
3831
3816
  "panels.market.defaultLocked": "这份现在用不了,先更新或卸载",
@@ -3903,9 +3888,6 @@ var dictionaries = {
3903
3888
  "panels.market.confirmNo": "取消",
3904
3889
  "panels.market.noMarketSource": "索引里没有这个模块的新版本(刷新一次索引再试)",
3905
3890
  "panels.market.failed": "没成功:{reason}",
3906
- "panels.market.askAgent": "问 agent",
3907
- "panels.market.askAgentCopied": "已复制",
3908
- "panels.market.askAgentText": "工作台里「{name}」(单元 {unit})用不了:{reason}。帮我查清缺什么、怎么补,补完确认真能用。",
3909
3891
  "panels.market.failure.permission": "没装上:没有写入权限",
3910
3892
  "panels.market.failure.diskFull": "没装上:磁盘满了",
3911
3893
  "panels.market.failure.sandbox": "没装上:被系统拦住了",
@@ -3945,7 +3927,7 @@ var dictionaries = {
3945
3927
  "panels.market.noSource": "这个模块没声明怎么装,只能自己动手",
3946
3928
  "panels.market.badSource": "安装方式没写全,只能自己动手",
3947
3929
  "panels.market.empty": "暂无可用模块",
3948
- "panels.market.sectionPlugins": "已安装 opencli 插件",
3930
+ "panels.market.sectionPlugins": "已安装的插件",
3949
3931
  "panels.market.moduleOutdated": "有新版",
3950
3932
  "panels.market.updateNeedsWorkbench": "新版本要先把工作台升级才能用",
3951
3933
  "panels.market.updateIncompatible": "新版本和当前的工作台不匹配,暂时不能更新",
@@ -3983,7 +3965,7 @@ var dictionaries = {
3983
3965
  "panels.market.justNow": "刚刚",
3984
3966
  "panels.market.minutesAgo": "{n} 分钟前",
3985
3967
  "panels.market.hoursAgo": "{n} 小时前",
3986
- "panels.market.add.description": "输入模块或 opencli 插件的包名、Git 仓库地址或本地目录路径。",
3968
+ "panels.market.add.description": "输入模块或 {plugin}的包名、Git 仓库地址或本地目录路径。",
3987
3969
  "panels.market.add.specPlaceholder": "例如 @dsh-workbench/module-hello",
3988
3970
  "panels.market.add.guideToggle": "模块安装引导和示例",
3989
3971
  "panels.market.add.guideHide": "收起引导",
@@ -4022,12 +4004,12 @@ var dictionaries = {
4022
4004
  "panels.market.add.problemInstalled": "这个模块已经装过了(要换版本请带上 @版本)",
4023
4005
  "panels.market.add.problemNotFound": "未找到相关模块",
4024
4006
  "panels.market.add.problemNotPackage": "该路径不存在或不是有效的模块包",
4025
- "panels.market.add.problemNotBundle": "这个包装不进这里:{reason}。这个入口按包名认工作台模块和 opencli 插件,两种都能装;但 git 地址和 tarball 判断不出它是什么 —— 要是它其实是这两样之一,请改填包名或本地目录。",
4007
+ "panels.market.add.problemNotBundle": "这个包装不进这里:{reason}。这个入口按包名认工作台模块和 {plugin},两种都能装;但 git 地址和 tarball 判断不出它是什么 —— 要是它其实是这两样之一,请改填包名或本地目录。",
4026
4008
  "panels.market.add.problemNotWorkbenchModule": "这个包跟现在的工作台对不上,装上也用不了。换一个版本,或者找这个模块的作者。",
4027
- "panels.market.add.problemNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 opencli 的插件,装了也用不上。换一个版本,或者找这个包的作者。",
4028
- "panels.market.add.failureNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 opencli 的插件,装了也用不上",
4029
- "panels.market.add.installedPlugin": "装上了:opencli 插件 {name}",
4030
- "panels.market.add.pluginPreview": "这是一份 opencli 插件:装进 opencli 的插件区,装完就能用,不用重启。",
4009
+ "panels.market.add.problemNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 {pluginOf},装了也用不上。换一个版本,或者找这个包的作者。",
4010
+ "panels.market.add.failureNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 {pluginOf},装了也用不上",
4011
+ "panels.market.add.installedPlugin": "装上了:{plugin} {name}",
4012
+ "panels.market.add.pluginPreview": "这是一份 {pluginThing}:装进 {pluginArea},装完就能用,不用重启。",
4031
4013
  "panels.market.add.pluginAlias": "插件名:{name}",
4032
4014
  "panels.market.add.problemNetwork": "无法连接模块源,请检查网络后重试",
4033
4015
  "panels.market.add.problemUnknown": "无法获取模块信息:{reason}",
@@ -4117,6 +4099,7 @@ var dictionaries = {
4117
4099
  "panels.discover.noSourceHint": "添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块",
4118
4100
  "panels.discover.sourcesFailed": "无法读取索引源",
4119
4101
  "panels.discover.unreadable": "无法读取此索引",
4102
+ "panels.discover.sandbox": "被系统拦住了:这个 profile 的可写根盖不住工作台的缓存目录",
4120
4103
  "panels.discover.sourceAuth": "这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。",
4121
4104
  "panels.discover.invalid": "此索引的格式无效",
4122
4105
  "panels.discover.emptyRepo": "这个仓库还没有任何提交",
@@ -4303,7 +4286,7 @@ var dictionaries = {
4303
4286
  "blocker.forbidden.hint": "账号已登录,但没有这个项目/仓库的权限;申请之后再试。",
4304
4287
  "blocker.forbidden.open": "打开权限页",
4305
4288
  "blocker.timeout.hint": "后台浏览器没起来,重试一次通常就好。",
4306
- "blocker.exec.hint": "确认 opencli 已经装好、在终端里能直接运行(which opencli)。",
4289
+ "blocker.exec.hint": "确认运行时已经装好、在终端里能直接跑起来。",
4307
4290
  "blocker.unknown.title": "出了点问题",
4308
4291
  "panels.reading": "正在读取面板配置…",
4309
4292
  "panels.cardBroken": "这个模块起不来:{unit}({reason})",
@@ -4313,6 +4296,7 @@ var dictionaries = {
4313
4296
  "env.title": "准备工作台",
4314
4297
  "env.checking": "正在准备运行环境…",
4315
4298
  "env.installing": "正在安装后台工具,第一次会慢一点…",
4299
+ "env.installingToolchain": "正在装工作台自己那份 npm / pnpm —— 第一次要下载,慢一点正常。",
4316
4300
  "env.failed": "还差一步就能用了",
4317
4301
  "env.elapsed": "已等待 {seconds} 秒",
4318
4302
  "env.stepFailed.install": "装不上",
@@ -4320,16 +4304,11 @@ var dictionaries = {
4320
4304
  "env.stepFailed.shell": "连不上命令行",
4321
4305
  "env.toolchain.ok": "正常",
4322
4306
  "env.toolchain.warn": "还没完全准备好",
4323
- "env.opencli.ok": "已就绪",
4307
+ "env.runtime.ok": "已就绪",
4324
4308
  "env.bridge.ok": "已连接",
4325
4309
  "env.bridge.short": "还没连上",
4326
4310
  "env.bridge.why": "面板的数据要用你浏览器里的登录状态。这个连接没通,模块就取不到数据;不拦路:修好它,或者先进入工作台。",
4327
4311
  "env.bridge.hold": "浏览器还没连上 —— 按下面修好后点「重试」,也可以先进工作台。",
4328
- "env.bridge.daemon": "后台服务没起来:正常它会自己起,先在终端跑下面这条命令。",
4329
- "env.bridge.extension": "浏览器扩展没连上:确认浏览器开着、扩展已启用;没装就从商店装一次(装完回来点「重试」)。",
4330
- "env.bridge.extensionLink": "去 Chrome 应用商店装扩展",
4331
- "env.bridge.profile": "连上了多个浏览器账号,但没选默认的那个:先看有哪些(下面这条命令),再选一个。",
4332
- "env.bridge.stale": "默认的浏览器账号已经失效(它记的是上一次的扩展实例):重新选一个。",
4333
4312
  "env.bridge.unknown": "没认出是哪种问题:展开原文,按里面的步骤处理。",
4334
4313
  "env.fix.title": "怎么解决",
4335
4314
  "env.fix.why": "工作台用它自己那份后台工具(与你在终端里那套分开装,互不影响),这台机器上还没装好它。",
@@ -4358,11 +4337,12 @@ var dictionaries = {
4358
4337
  "env.diy.continue": "先进入工作台",
4359
4338
  "env.copyCommand": "复制命令",
4360
4339
  "env.copied": "已复制",
4361
- "env.step.toolchain": "运行环境",
4362
- "env.step.opencli": "后台工具",
4363
- "env.step.bridge": "浏览器连接",
4364
- "env.step.diy": "DIY 模式",
4365
- "env.step.warm": "站点登录状态",
4340
+ "env.step.toolchain": "检查运行环境",
4341
+ "env.step.adapter": "检查运行时",
4342
+ "env.step.runtime": "安装后台工具",
4343
+ "env.step.bridge": "连接浏览器",
4344
+ "env.step.diy": "检查 DIY 模式",
4345
+ "env.step.warm": "连上站点",
4366
4346
  "env.warm.done": "已就绪({n} 个站点)",
4367
4347
  "env.warm.short": "这次没提前连上 —— 不影响用,第一次取数会自己补",
4368
4348
  "env.unit.failed": "这个模块起不来",
@@ -4556,6 +4536,30 @@ function mergeMessagesSkipping(base, contributions) {
4556
4536
  };
4557
4537
  }
4558
4538
  //#endregion
4539
+ //#region ../shared/dist/i18n/runtime-terms.js
4540
+ /**
4541
+ * 把适配器给的 zh / en 两份文案落到当前语言。
4542
+ * @param text 适配器档案里的那段话。
4543
+ * @param resolve dsh 的语言解析器;没有就取中文那份。
4544
+ * @returns 当前语言的那一段。
4545
+ */
4546
+ function resolveRuntimeText(text, resolve) {
4547
+ return resolve === void 0 ? text.zh : resolve(text);
4548
+ }
4549
+ /**
4550
+ * 取当前语言的运行时术语(没给档案时的兜底)。
4551
+ * @param t 文案函数。
4552
+ * @returns `plugin` / `pluginOf` / `pluginThing` / `pluginArea` 四个名词短语。
4553
+ */
4554
+ function runtimeTermsOf$1(t) {
4555
+ return {
4556
+ plugin: t("runtime.plugin"),
4557
+ pluginOf: t("runtime.pluginOf"),
4558
+ pluginThing: t("runtime.pluginThing"),
4559
+ pluginArea: t("runtime.pluginArea")
4560
+ };
4561
+ }
4562
+ //#endregion
4559
4563
  //#region ../shared/dist/lib/market-index.js
4560
4564
  var BRANCH = /^[A-Za-z0-9][A-Za-z0-9._/-]*$/;
4561
4565
  function marketBranchOk(value) {
@@ -5001,14 +5005,14 @@ function bumpCapabilityEpoch() {
5001
5005
  epoch$1 += 1;
5002
5006
  }
5003
5007
  var current$1 = null;
5004
- var listeners$8 = /* @__PURE__ */ new Set();
5008
+ var listeners$9 = /* @__PURE__ */ new Set();
5005
5009
  function capabilityValue() {
5006
5010
  return current$1;
5007
5011
  }
5008
5012
  function subscribeCapabilities(listener) {
5009
- listeners$8.add(listener);
5013
+ listeners$9.add(listener);
5010
5014
  return () => {
5011
- listeners$8.delete(listener);
5015
+ listeners$9.delete(listener);
5012
5016
  };
5013
5017
  }
5014
5018
  function setCapabilities(next, rechecked = false) {
@@ -5021,7 +5025,7 @@ function setCapabilities(next, rechecked = false) {
5021
5025
  });
5022
5026
  if (next === current$1) return;
5023
5027
  current$1 = next;
5024
- for (const listener of [...listeners$8]) listener();
5028
+ for (const listener of [...listeners$9]) listener();
5025
5029
  }
5026
5030
  function beginProbe() {
5027
5031
  probing += 1;
@@ -5149,7 +5153,7 @@ function useCapabilityMap(refreshToken) {
5149
5153
  //#endregion
5150
5154
  //#region src/app/layouts/panel-hint.ts
5151
5155
  var hints = /* @__PURE__ */ new Map();
5152
- var listeners$7 = /* @__PURE__ */ new Set();
5156
+ var listeners$8 = /* @__PURE__ */ new Set();
5153
5157
  function sameHint(left, right) {
5154
5158
  if (left === null || right === null) return left === right;
5155
5159
  if (left.labelKey !== right.labelKey || left.tone !== right.tone) return false;
@@ -5161,15 +5165,15 @@ function publishPanelHint(id, hint) {
5161
5165
  if (sameHint(hints.get(id) ?? null, hint)) return;
5162
5166
  if (hint === null) hints.delete(id);
5163
5167
  else hints.set(id, hint);
5164
- for (const listener of [...listeners$7]) listener();
5168
+ for (const listener of [...listeners$8]) listener();
5165
5169
  }
5166
5170
  function panelHintOf(id) {
5167
5171
  return id === null ? null : hints.get(id) ?? null;
5168
5172
  }
5169
5173
  function subscribePanelHints(listener) {
5170
- listeners$7.add(listener);
5174
+ listeners$8.add(listener);
5171
5175
  return () => {
5172
- listeners$7.delete(listener);
5176
+ listeners$8.delete(listener);
5173
5177
  };
5174
5178
  }
5175
5179
  function usePanelHint(id) {
@@ -5410,13 +5414,6 @@ var SWITCH_LOCKED = /* @__PURE__ */ new Set(["unusable", "broken"]);
5410
5414
  function marketSwitchLocked(row) {
5411
5415
  return SWITCH_LOCKED.has(row.state);
5412
5416
  }
5413
- function marketAsksAgent(row) {
5414
- if (row.workbench === true || row.plugin === true) return false;
5415
- if (row.state === "installed" || row.state === "inactive" || row.state === "outdated") return false;
5416
- if (row.state === "checking" || row.state === "pending-restart") return false;
5417
- if (row.state === "pending-followup") return false;
5418
- return !marketActions$1(row).includes("install");
5419
- }
5420
5417
  function marketActions$1(row) {
5421
5418
  if (row.workbench === true) {
5422
5419
  if (row.followUp !== void 0 && row.state === "pending-followup") return row.followUp.hard ? ["migrate-workbench"] : ["migrate-workbench", "dismiss-followup"];
@@ -5837,7 +5834,7 @@ function holdWindowMs(until) {
5837
5834
  }
5838
5835
  //#endregion
5839
5836
  //#region src/app/layouts/rightbar/market-busy.ts
5840
- var listeners$6 = /* @__PURE__ */ new Set();
5837
+ var listeners$7 = /* @__PURE__ */ new Set();
5841
5838
  var published = /* @__PURE__ */ new Map();
5842
5839
  var live$2 = /* @__PURE__ */ new Set();
5843
5840
  var timer$3;
@@ -5853,9 +5850,9 @@ function publishMarketBusy(ids) {
5853
5850
  refresh$1(now);
5854
5851
  }
5855
5852
  function subscribeMarketBusy(listener) {
5856
- listeners$6.add(listener);
5853
+ listeners$7.add(listener);
5857
5854
  return () => {
5858
- listeners$6.delete(listener);
5855
+ listeners$7.delete(listener);
5859
5856
  };
5860
5857
  }
5861
5858
  function useMarketBusy() {
@@ -5884,7 +5881,7 @@ function refresh$1(now) {
5884
5881
  const next = new Set(published.keys());
5885
5882
  if (!sameSet(live$2, next)) {
5886
5883
  live$2 = next;
5887
- for (const listener of [...listeners$6]) listener();
5884
+ for (const listener of [...listeners$7]) listener();
5888
5885
  }
5889
5886
  schedule$2(now);
5890
5887
  }
@@ -5897,7 +5894,7 @@ var IDLE$2 = {
5897
5894
  };
5898
5895
  var tokens = /* @__PURE__ */ new Set();
5899
5896
  var applied = /* @__PURE__ */ new Map();
5900
- var listeners$5 = /* @__PURE__ */ new Set();
5897
+ var listeners$6 = /* @__PURE__ */ new Set();
5901
5898
  var snapshot$1 = IDLE$2;
5902
5899
  var timer$2;
5903
5900
  function sameUnits(left, right) {
@@ -5921,7 +5918,7 @@ function refresh(now) {
5921
5918
  };
5922
5919
  if (next.installing !== snapshot$1.installing || !sameUnits(next.applied, snapshot$1.applied)) {
5923
5920
  snapshot$1 = next;
5924
- for (const listener of [...listeners$5]) listener();
5921
+ for (const listener of [...listeners$6]) listener();
5925
5922
  }
5926
5923
  schedule$1(now);
5927
5924
  }
@@ -5929,9 +5926,9 @@ function marketInstallState() {
5929
5926
  return snapshot$1;
5930
5927
  }
5931
5928
  function subscribeMarketInstall(listener) {
5932
- listeners$5.add(listener);
5929
+ listeners$6.add(listener);
5933
5930
  return () => {
5934
- listeners$5.delete(listener);
5931
+ listeners$6.delete(listener);
5935
5932
  };
5936
5933
  }
5937
5934
  function publishMarketInstalling(token, active) {
@@ -6189,138 +6186,138 @@ function useMarketTransient(input) {
6189
6186
  };
6190
6187
  }
6191
6188
  var MarketPage_module_default = {
6192
- marketList: "_marketList_1vpw3_1",
6193
- marketRow: "_marketRow_1vpw3_10",
6194
- marketIcon: "_marketIcon_1vpw3_20",
6195
- marketMain: "_marketMain_1vpw3_32",
6196
- marketName: "_marketName_1vpw3_39",
6197
- marketStatus: "_marketStatus_1vpw3_48",
6198
- marketStateText: "_marketStateText_1vpw3_58",
6199
- marketSep: "_marketSep_1vpw3_62",
6200
- marketReason: "_marketReason_1vpw3_66",
6201
- marketVersion: "_marketVersion_1vpw3_72",
6202
- marketLocalTag: "_marketLocalTag_1vpw3_94",
6203
- marketEnd: "_marketEnd_1vpw3_105",
6204
- marketSwitchSeat: "_marketSwitchSeat_1vpw3_112",
6205
- marketActions: "_marketActions_1vpw3_125",
6206
- marketUpdateAction: "_marketUpdateAction_1vpw3_131",
6207
- marketSelfDivider: "_marketSelfDivider_1vpw3_137",
6208
- marketSection: "_marketSection_1vpw3_143",
6209
- marketSectionHead: "_marketSectionHead_1vpw3_150",
6210
- marketSectionIcon: "_marketSectionIcon_1vpw3_156",
6211
- marketSectionTitle: "_marketSectionTitle_1vpw3_163",
6212
- marketSectionCount: "_marketSectionCount_1vpw3_169",
6213
- marketSectionAction: "_marketSectionAction_1vpw3_175",
6214
- marketSectionQuiet: "_marketSectionQuiet_1vpw3_183",
6215
- marketProgress: "_marketProgress_1vpw3_195",
6216
- marketNote: "_marketNote_1vpw3_205",
6217
- marketFailure: "_marketFailure_1vpw3_212",
6218
- marketFailureSeat: "_marketFailureSeat_1vpw3_219",
6219
- marketEmpty: "_marketEmpty_1vpw3_224",
6220
- marketPage: "_marketPage_1vpw3_229",
6221
- marketPageHead: "_marketPageHead_1vpw3_247",
6222
- marketPageTitle: "_marketPageTitle_1vpw3_255",
6223
- marketPageIntro: "_marketPageIntro_1vpw3_260",
6224
- marketPageTools: "_marketPageTools_1vpw3_266",
6225
- marketPanel: "_marketPanel_1vpw3_275",
6226
- marketTabs: "_marketTabs_1vpw3_285",
6227
- marketTabList: "_marketTabList_1vpw3_290",
6228
- marketAddButton: "_marketAddButton_1vpw3_295",
6229
- marketEmptyTitle: "_marketEmptyTitle_1vpw3_312",
6230
- discoverPage: "_discoverPage_1vpw3_317",
6231
- discoverBar: "_discoverBar_1vpw3_324",
6232
- discoverTools: "_discoverTools_1vpw3_331",
6233
- discoverMarket: "_discoverMarket_1vpw3_337",
6234
- discoverMarketButton: "_discoverMarketButton_1vpw3_342",
6235
- discoverMarketName: "_discoverMarketName_1vpw3_349",
6236
- discoverLabels: "_discoverLabels_1vpw3_355",
6237
- discoverSort: "_discoverSort_1vpw3_360",
6238
- discoverRefresh: "_discoverRefresh_1vpw3_365",
6239
- discoverSearch: "_discoverSearch_1vpw3_369",
6240
- discoverSearchField: "_discoverSearchField_1vpw3_377",
6241
- discoverSearchFieldFilled: "_discoverSearchFieldFilled_1vpw3_382",
6242
- discoverSearchClear: "_discoverSearchClear_1vpw3_391",
6243
- discoverChips: "_discoverChips_1vpw3_442",
6244
- discoverList: "_discoverList_1vpw3_449",
6245
- discoverCard: "_discoverCard_1vpw3_458",
6246
- discoverArtwork: "_discoverArtwork_1vpw3_472",
6247
- discoverArtworkImage: "_discoverArtworkImage_1vpw3_484",
6248
- discoverMain: "_discoverMain_1vpw3_488",
6249
- discoverTitleRow: "_discoverTitleRow_1vpw3_496",
6250
- discoverCardOpen: "_discoverCardOpen_1vpw3_504",
6251
- discoverStrong: "_discoverStrong_1vpw3_535",
6252
- discoverDesc: "_discoverDesc_1vpw3_541",
6253
- discoverMeta: "_discoverMeta_1vpw3_550",
6254
- discoverMuted: "_discoverMuted_1vpw3_557",
6255
- discoverEnd: "_discoverEnd_1vpw3_563",
6256
- discoverUpdateAction: "_discoverUpdateAction_1vpw3_572",
6257
- discoverBlocked: "_discoverBlocked_1vpw3_577",
6258
- discoverEmpty: "_discoverEmpty_1vpw3_582",
6259
- discoverEmptyTitle: "_discoverEmptyTitle_1vpw3_591",
6260
- discoverDetail: "_discoverDetail_1vpw3_601",
6261
- discoverCrumb: "_discoverCrumb_1vpw3_607",
6262
- discoverCrumbIcon: "_discoverCrumbIcon_1vpw3_630",
6263
- discoverDetailHead: "_discoverDetailHead_1vpw3_634",
6264
- discoverDetailTitle: "_discoverDetailTitle_1vpw3_640",
6265
- discoverDetailText: "_discoverDetailText_1vpw3_646",
6266
- discoverDetailPanel: "_discoverDetailPanel_1vpw3_653",
6267
- discoverDetailTabs: "_discoverDetailTabs_1vpw3_660",
6268
- discoverDetailTabList: "_discoverDetailTabList_1vpw3_665",
6269
- discoverDocBody: "_discoverDocBody_1vpw3_670",
6270
- discoverDocNotice: "_discoverDocNotice_1vpw3_675",
6271
- discoverSection: "_discoverSection_1vpw3_681",
6272
- discoverSectionTitle: "_discoverSectionTitle_1vpw3_688",
6273
- discoverFacts: "_discoverFacts_1vpw3_694",
6274
- discoverFactRow: "_discoverFactRow_1vpw3_699",
6275
- discoverFactKind: "_discoverFactKind_1vpw3_709",
6276
- discoverFactValue: "_discoverFactValue_1vpw3_715",
6277
- discoverCode: "_discoverCode_1vpw3_723",
6278
- discoverTags: "_discoverTags_1vpw3_732",
6279
- discoverLink: "_discoverLink_1vpw3_739",
6280
- discoverVersions: "_discoverVersions_1vpw3_749",
6281
- discoverVersionRow: "_discoverVersionRow_1vpw3_757",
6282
- discoverVersionName: "_discoverVersionName_1vpw3_765",
6283
- discoverError: "_discoverError_1vpw3_770",
6284
- discoverFailure: "_discoverFailure_1vpw3_779",
6285
- discoverLoading: "_discoverLoading_1vpw3_785",
6286
- discoverNotice: "_discoverNotice_1vpw3_794",
6287
- discoverMore: "_discoverMore_1vpw3_812",
6288
- discoverTransport: "_discoverTransport_1vpw3_816",
6289
- discoverTransportHead: "_discoverTransportHead_1vpw3_822",
6290
- discoverTransportTitle: "_discoverTransportTitle_1vpw3_829",
6291
- discoverTransportKind: "_discoverTransportKind_1vpw3_834",
6292
- discoverTransportState: "_discoverTransportState_1vpw3_839",
6293
- discoverTransportRows: "_discoverTransportRows_1vpw3_847",
6294
- discoverTransportRow: "_discoverTransportRow_1vpw3_847",
6295
- discoverTransportRadio: "_discoverTransportRadio_1vpw3_868",
6296
- discoverTransportCustom: "_discoverTransportCustom_1vpw3_908",
6297
- discoverTransportInput: "_discoverTransportInput_1vpw3_914",
6298
- discoverInstallBar: "_discoverInstallBar_1vpw3_919",
6299
- discoverInstallText: "_discoverInstallText_1vpw3_930",
6300
- discoverDialog: "_discoverDialog_1vpw3_936",
6301
- discoverDialogBody: "_discoverDialogBody_1vpw3_940",
6302
- discoverSourceList: "_discoverSourceList_1vpw3_946",
6303
- discoverSourceRow: "_discoverSourceRow_1vpw3_954",
6304
- discoverSourceConfirm: "_discoverSourceConfirm_1vpw3_963",
6305
- discoverSourcePick: "_discoverSourcePick_1vpw3_969",
6306
- discoverSourceRadio: "_discoverSourceRadio_1vpw3_978",
6307
- discoverSourceMain: "_discoverSourceMain_1vpw3_986",
6308
- discoverSourceHead: "_discoverSourceHead_1vpw3_994",
6309
- discoverSourceUrl: "_discoverSourceUrl_1vpw3_1002",
6310
- discoverSourceMore: "_discoverSourceMore_1vpw3_1012",
6311
- discoverSourceLoading: "_discoverSourceLoading_1vpw3_1016",
6312
- discoverSourceHint: "_discoverSourceHint_1vpw3_1026",
6313
- discoverSourceError: "_discoverSourceError_1vpw3_1040",
6314
- discoverSourceForm: "_discoverSourceForm_1vpw3_1046",
6315
- discoverGrow: "_discoverGrow_1vpw3_1052",
6316
- discoverField: "_discoverField_1vpw3_1057",
6317
- discoverFieldLabel: "_discoverFieldLabel_1vpw3_1063",
6318
- discoverConfirmHead: "_discoverConfirmHead_1vpw3_1068",
6319
- discoverSkeletonFill: "_discoverSkeletonFill_1vpw3_1074",
6320
- "wb-skeleton": "_wb-skeleton_1vpw3_1",
6321
- discoverSkeletonBar: "_discoverSkeletonBar_1vpw3_1083",
6322
- discoverSkeletonTitle: "_discoverSkeletonTitle_1vpw3_1090",
6323
- discoverSkeletonDesc: "_discoverSkeletonDesc_1vpw3_1094"
6189
+ marketList: "_marketList_2or0c_1",
6190
+ marketRow: "_marketRow_2or0c_10",
6191
+ marketIcon: "_marketIcon_2or0c_20",
6192
+ marketMain: "_marketMain_2or0c_32",
6193
+ marketName: "_marketName_2or0c_39",
6194
+ marketStatus: "_marketStatus_2or0c_48",
6195
+ marketStateText: "_marketStateText_2or0c_58",
6196
+ marketSep: "_marketSep_2or0c_62",
6197
+ marketReason: "_marketReason_2or0c_66",
6198
+ marketVersion: "_marketVersion_2or0c_72",
6199
+ marketLocalTag: "_marketLocalTag_2or0c_94",
6200
+ marketEnd: "_marketEnd_2or0c_105",
6201
+ marketSwitchSeat: "_marketSwitchSeat_2or0c_112",
6202
+ marketActions: "_marketActions_2or0c_125",
6203
+ marketUpdateAction: "_marketUpdateAction_2or0c_131",
6204
+ marketSelfDivider: "_marketSelfDivider_2or0c_137",
6205
+ marketSection: "_marketSection_2or0c_143",
6206
+ marketSectionHead: "_marketSectionHead_2or0c_150",
6207
+ marketSectionIcon: "_marketSectionIcon_2or0c_156",
6208
+ marketSectionTitle: "_marketSectionTitle_2or0c_163",
6209
+ marketSectionCount: "_marketSectionCount_2or0c_169",
6210
+ marketSectionAction: "_marketSectionAction_2or0c_175",
6211
+ marketSectionQuiet: "_marketSectionQuiet_2or0c_183",
6212
+ marketProgress: "_marketProgress_2or0c_195",
6213
+ marketNote: "_marketNote_2or0c_205",
6214
+ marketFailure: "_marketFailure_2or0c_212",
6215
+ marketFailureSeat: "_marketFailureSeat_2or0c_219",
6216
+ marketEmpty: "_marketEmpty_2or0c_224",
6217
+ marketPage: "_marketPage_2or0c_229",
6218
+ marketPageHead: "_marketPageHead_2or0c_247",
6219
+ marketPageTitle: "_marketPageTitle_2or0c_255",
6220
+ marketPageIntro: "_marketPageIntro_2or0c_260",
6221
+ marketPageTools: "_marketPageTools_2or0c_266",
6222
+ marketPanel: "_marketPanel_2or0c_275",
6223
+ marketTabs: "_marketTabs_2or0c_285",
6224
+ marketTabList: "_marketTabList_2or0c_290",
6225
+ marketAddButton: "_marketAddButton_2or0c_295",
6226
+ marketEmptyTitle: "_marketEmptyTitle_2or0c_312",
6227
+ discoverPage: "_discoverPage_2or0c_317",
6228
+ discoverBar: "_discoverBar_2or0c_324",
6229
+ discoverTools: "_discoverTools_2or0c_331",
6230
+ discoverMarket: "_discoverMarket_2or0c_337",
6231
+ discoverMarketButton: "_discoverMarketButton_2or0c_342",
6232
+ discoverMarketName: "_discoverMarketName_2or0c_349",
6233
+ discoverLabels: "_discoverLabels_2or0c_355",
6234
+ discoverSort: "_discoverSort_2or0c_360",
6235
+ discoverRefresh: "_discoverRefresh_2or0c_365",
6236
+ discoverSearch: "_discoverSearch_2or0c_369",
6237
+ discoverSearchField: "_discoverSearchField_2or0c_377",
6238
+ discoverSearchFieldFilled: "_discoverSearchFieldFilled_2or0c_382",
6239
+ discoverSearchClear: "_discoverSearchClear_2or0c_391",
6240
+ discoverChips: "_discoverChips_2or0c_442",
6241
+ discoverList: "_discoverList_2or0c_449",
6242
+ discoverCard: "_discoverCard_2or0c_458",
6243
+ discoverArtwork: "_discoverArtwork_2or0c_472",
6244
+ discoverArtworkImage: "_discoverArtworkImage_2or0c_484",
6245
+ discoverMain: "_discoverMain_2or0c_488",
6246
+ discoverTitleRow: "_discoverTitleRow_2or0c_496",
6247
+ discoverCardOpen: "_discoverCardOpen_2or0c_504",
6248
+ discoverStrong: "_discoverStrong_2or0c_535",
6249
+ discoverDesc: "_discoverDesc_2or0c_541",
6250
+ discoverMeta: "_discoverMeta_2or0c_550",
6251
+ discoverMuted: "_discoverMuted_2or0c_557",
6252
+ discoverEnd: "_discoverEnd_2or0c_563",
6253
+ discoverUpdateAction: "_discoverUpdateAction_2or0c_572",
6254
+ discoverBlocked: "_discoverBlocked_2or0c_577",
6255
+ discoverEmpty: "_discoverEmpty_2or0c_582",
6256
+ discoverEmptyTitle: "_discoverEmptyTitle_2or0c_591",
6257
+ discoverDetail: "_discoverDetail_2or0c_601",
6258
+ discoverCrumb: "_discoverCrumb_2or0c_607",
6259
+ discoverCrumbIcon: "_discoverCrumbIcon_2or0c_630",
6260
+ discoverDetailHead: "_discoverDetailHead_2or0c_634",
6261
+ discoverDetailTitle: "_discoverDetailTitle_2or0c_640",
6262
+ discoverDetailText: "_discoverDetailText_2or0c_646",
6263
+ discoverDetailPanel: "_discoverDetailPanel_2or0c_653",
6264
+ discoverDetailTabs: "_discoverDetailTabs_2or0c_660",
6265
+ discoverDetailTabList: "_discoverDetailTabList_2or0c_665",
6266
+ discoverDocBody: "_discoverDocBody_2or0c_670",
6267
+ discoverDocNotice: "_discoverDocNotice_2or0c_675",
6268
+ discoverSection: "_discoverSection_2or0c_681",
6269
+ discoverSectionTitle: "_discoverSectionTitle_2or0c_688",
6270
+ discoverFacts: "_discoverFacts_2or0c_694",
6271
+ discoverFactRow: "_discoverFactRow_2or0c_699",
6272
+ discoverFactKind: "_discoverFactKind_2or0c_709",
6273
+ discoverFactValue: "_discoverFactValue_2or0c_715",
6274
+ discoverCode: "_discoverCode_2or0c_723",
6275
+ discoverTags: "_discoverTags_2or0c_732",
6276
+ discoverLink: "_discoverLink_2or0c_739",
6277
+ discoverVersions: "_discoverVersions_2or0c_749",
6278
+ discoverVersionRow: "_discoverVersionRow_2or0c_757",
6279
+ discoverVersionName: "_discoverVersionName_2or0c_765",
6280
+ discoverError: "_discoverError_2or0c_770",
6281
+ discoverFailure: "_discoverFailure_2or0c_780",
6282
+ discoverLoading: "_discoverLoading_2or0c_786",
6283
+ discoverNotice: "_discoverNotice_2or0c_795",
6284
+ discoverMore: "_discoverMore_2or0c_813",
6285
+ discoverTransport: "_discoverTransport_2or0c_817",
6286
+ discoverTransportHead: "_discoverTransportHead_2or0c_823",
6287
+ discoverTransportTitle: "_discoverTransportTitle_2or0c_830",
6288
+ discoverTransportKind: "_discoverTransportKind_2or0c_835",
6289
+ discoverTransportState: "_discoverTransportState_2or0c_840",
6290
+ discoverTransportRows: "_discoverTransportRows_2or0c_848",
6291
+ discoverTransportRow: "_discoverTransportRow_2or0c_848",
6292
+ discoverTransportRadio: "_discoverTransportRadio_2or0c_869",
6293
+ discoverTransportCustom: "_discoverTransportCustom_2or0c_909",
6294
+ discoverTransportInput: "_discoverTransportInput_2or0c_915",
6295
+ discoverInstallBar: "_discoverInstallBar_2or0c_920",
6296
+ discoverInstallText: "_discoverInstallText_2or0c_931",
6297
+ discoverDialog: "_discoverDialog_2or0c_937",
6298
+ discoverDialogBody: "_discoverDialogBody_2or0c_941",
6299
+ discoverSourceList: "_discoverSourceList_2or0c_947",
6300
+ discoverSourceRow: "_discoverSourceRow_2or0c_955",
6301
+ discoverSourceConfirm: "_discoverSourceConfirm_2or0c_964",
6302
+ discoverSourcePick: "_discoverSourcePick_2or0c_970",
6303
+ discoverSourceRadio: "_discoverSourceRadio_2or0c_979",
6304
+ discoverSourceMain: "_discoverSourceMain_2or0c_987",
6305
+ discoverSourceHead: "_discoverSourceHead_2or0c_995",
6306
+ discoverSourceUrl: "_discoverSourceUrl_2or0c_1003",
6307
+ discoverSourceMore: "_discoverSourceMore_2or0c_1013",
6308
+ discoverSourceLoading: "_discoverSourceLoading_2or0c_1017",
6309
+ discoverSourceHint: "_discoverSourceHint_2or0c_1027",
6310
+ discoverSourceError: "_discoverSourceError_2or0c_1041",
6311
+ discoverSourceForm: "_discoverSourceForm_2or0c_1047",
6312
+ discoverGrow: "_discoverGrow_2or0c_1053",
6313
+ discoverField: "_discoverField_2or0c_1058",
6314
+ discoverFieldLabel: "_discoverFieldLabel_2or0c_1064",
6315
+ discoverConfirmHead: "_discoverConfirmHead_2or0c_1069",
6316
+ discoverSkeletonFill: "_discoverSkeletonFill_2or0c_1075",
6317
+ "wb-skeleton": "_wb-skeleton_2or0c_1",
6318
+ discoverSkeletonBar: "_discoverSkeletonBar_2or0c_1084",
6319
+ discoverSkeletonTitle: "_discoverSkeletonTitle_2or0c_1091",
6320
+ discoverSkeletonDesc: "_discoverSkeletonDesc_2or0c_1095"
6324
6321
  };
6325
6322
  //#endregion
6326
6323
  //#region src/app/layouts/market/discover-states.tsx
@@ -6411,7 +6408,7 @@ var FailureCard_module_default = {
6411
6408
  };
6412
6409
  //#endregion
6413
6410
  //#region src/app/layouts/rightbar/FailureCard.tsx
6414
- var COPIED_MS$1 = 1200;
6411
+ var COPIED_MS = 1200;
6415
6412
  function terminalLabels(t) {
6416
6413
  return {
6417
6414
  commandLine: (line) => t("panels.market.failure.term.commandLine", { line }),
@@ -6438,7 +6435,7 @@ function FailureCard({ t, model, onRecheck, rechecking }) {
6438
6435
  (0, _deepseek_ai_dsh_client_ui_primitives.writeClipboard)(model.fix).then((ok) => {
6439
6436
  if (!ok) return;
6440
6437
  setCopied(true);
6441
- setTimeout(() => setCopied(false), COPIED_MS$1);
6438
+ setTimeout(() => setCopied(false), COPIED_MS);
6442
6439
  });
6443
6440
  }, [model.fix]);
6444
6441
  return /* @__PURE__ */ (0, react.createElement)("div", { className: FailureCard_module_default.block }, /* @__PURE__ */ (0, react.createElement)("div", { className: FailureCard_module_default.head }, /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
@@ -6634,6 +6631,7 @@ var ACTION_LABEL_KEY = {
6634
6631
  "migrate-workbench": "panels.market.migrateAction",
6635
6632
  "dismiss-followup": "panels.market.dismissFollowUp"
6636
6633
  };
6634
+ var UPDATE_ACTIONS = Object.keys(ACTION_LABEL_KEY).filter((action) => ACTION_LABEL_KEY[action] === "panels.market.update");
6637
6635
  function holdOf(pending, application) {
6638
6636
  if (pending === null || pending.row === void 0) return void 0;
6639
6637
  if (application !== "applied") return void 0;
@@ -6731,18 +6729,6 @@ function pendingRowOf(input) {
6731
6729
  ...pending.version === void 0 ? {} : { version: { installed: pending.version } }
6732
6730
  };
6733
6731
  }
6734
- function askAgentReason(row, t) {
6735
- if (row.hint !== void 0) return t(row.hint);
6736
- if (row.note !== void 0) return t(row.note.key, row.note.params);
6737
- return t(MARKET_STATE_KEY[row.state]);
6738
- }
6739
- function askAgentText(row, t) {
6740
- return t("panels.market.askAgentText", {
6741
- name: marketRowTitle(row, t),
6742
- unit: row.id,
6743
- reason: askAgentReason(row, t)
6744
- });
6745
- }
6746
6732
  //#endregion
6747
6733
  //#region src/app/layouts/rightbar/SharedSection.tsx
6748
6734
  function SharedLine({ t, row, pending, failure, onAct, onRecheck, rechecking }) {
@@ -6811,37 +6797,13 @@ function Tip({ side = "bottom", align = "end", gap = 6, portal = true, ...rest }
6811
6797
  });
6812
6798
  }
6813
6799
  //#endregion
6814
- //#region src/app/layouts/rightbar/AskAgentButton.tsx
6815
- var COPIED_MS = 1200;
6816
- function AskAgentButton({ t, text, label }) {
6817
- const [copied, setCopied] = (0, react.useState)(false);
6818
- const onCopy = (0, react.useCallback)(() => {
6819
- (0, _deepseek_ai_dsh_client_ui_primitives.writeClipboard)(text).then((ok) => {
6820
- if (!ok) return;
6821
- setCopied(true);
6822
- setTimeout(() => setCopied(false), COPIED_MS);
6823
- });
6824
- }, [text]);
6825
- return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
6826
- type: "button",
6827
- size: "sm",
6828
- variant: "ghost",
6829
- onClick: onCopy
6830
- }, copied ? t("panels.market.askAgentCopied") : label);
6831
- }
6832
- //#endregion
6833
6800
  //#region src/app/layouts/rightbar/market-section.tsx
6834
6801
  var dangerActions = [
6835
6802
  "uninstall",
6836
6803
  "remove-bundle",
6837
6804
  "uninstall-plugin"
6838
6805
  ];
6839
- var updateActions = [
6840
- "update",
6841
- "update-bundle",
6842
- "update-plugin",
6843
- "update-workbench"
6844
- ];
6806
+ var updateActions = UPDATE_ACTIONS;
6845
6807
  function MigrationConfirm({ t, onConfirm, onCancel }) {
6846
6808
  const [acknowledged, setAcknowledged] = (0, react.useState)(false);
6847
6809
  return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, {
@@ -6918,7 +6880,6 @@ function MarketLine({ t, row, pending, failure, onAct, onDefault, boardBusy, onR
6918
6880
  const [dismissOpen, setDismissOpen] = (0, react.useState)(false);
6919
6881
  const quiet = row.workbench === true && row.state === "installed" && row.hint === void 0;
6920
6882
  const actions = marketActions$1(row);
6921
- const asksAgent = marketAsksAgent(row);
6922
6883
  const switchLocked = marketSwitchLocked(row);
6923
6884
  return /* @__PURE__ */ (0, react.createElement)("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ (0, react.createElement)("span", {
6924
6885
  className: MarketPage_module_default.marketIcon,
@@ -6930,11 +6891,7 @@ function MarketLine({ t, row, pending, failure, onAct, onDefault, boardBusy, onR
6930
6891
  t,
6931
6892
  row,
6932
6893
  quiet
6933
- })), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEnd }, running !== null ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketProgress }, /* @__PURE__ */ (0, react.createElement)(Spinner, { size: 14 }), t(PROGRESS_KEY[running.action])) : actions.length === 0 && !asksAgent ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketActions }, asksAgent ? /* @__PURE__ */ (0, react.createElement)(AskAgentButton, {
6934
- t,
6935
- text: askAgentText(row, t),
6936
- label: t("panels.market.askAgent")
6937
- }) : null, actions.map((action) => {
6894
+ })), /* @__PURE__ */ (0, react.createElement)("div", { className: MarketPage_module_default.marketEnd }, running !== null ? /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketProgress }, /* @__PURE__ */ (0, react.createElement)(Spinner, { size: 14 }), t(PROGRESS_KEY[running.action])) : actions.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("span", { className: MarketPage_module_default.marketActions }, actions.map((action) => {
6938
6895
  const danger = dangerActions.includes(action);
6939
6896
  const update = updateActions.includes(action);
6940
6897
  return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
@@ -7604,7 +7561,7 @@ var NO_CHECK = {
7604
7561
  };
7605
7562
  var NO_ROWS = [];
7606
7563
  var NO_UNITS$1 = /* @__PURE__ */ new Set();
7607
- function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking }) {
7564
+ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking, runtimePluginMarket }) {
7608
7565
  const failureOf = (id) => failed?.id === id ? failed : null;
7609
7566
  const foot = marketFootVisible(shown, installedList);
7610
7567
  const sections = marketSections(marketOrder([...shown, ...installedList], (row) => marketRowTitle(row, t)));
@@ -7655,7 +7612,7 @@ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending
7655
7612
  onConfirming,
7656
7613
  onRecheck,
7657
7614
  rechecking
7658
- }), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7615
+ }), runtimePluginMarket === false ? null : /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7659
7616
  t,
7660
7617
  titleKey: "panels.market.sectionPlugins",
7661
7618
  icon: marketSectionIcon("plugins"),
@@ -7736,7 +7693,7 @@ function sectionChecksOf(input) {
7736
7693
  })
7737
7694
  };
7738
7695
  }
7739
- function MarketView({ t, titleOf, manifests, installable, capabilities, freshness, onChanged, onPending, updates, modulesCheck, pluginsCheck, onCheck, installed, installedRead, workbench, selfUpdate, plugins, settling, installing = false, mock, defaults = [], changed = {} }) {
7696
+ function MarketView({ t, titleOf, manifests, installable, capabilities, runtimePluginMarket, freshness, onChanged, onPending, updates, modulesCheck, pluginsCheck, onCheck, installed, installedRead, workbench, selfUpdate, plugins, settling, installing = false, mock, defaults = [], changed = {} }) {
7740
7697
  const { pending, setPending, confirming, setConfirming, failed, setFailed, notice, setNotice } = useMarketTransient({
7741
7698
  mock,
7742
7699
  onPending
@@ -7837,6 +7794,7 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
7837
7794
  if (nothing) return /* @__PURE__ */ (0, react.createElement)(MarketEmpty, { t });
7838
7795
  return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(MarketBody, {
7839
7796
  t,
7797
+ runtimePluginMarket,
7840
7798
  self,
7841
7799
  shown,
7842
7800
  pluginList,
@@ -7862,6 +7820,55 @@ function MarketView({ t, titleOf, manifests, installable, capabilities, freshnes
7862
7820
  }));
7863
7821
  }
7864
7822
  //#endregion
7823
+ //#region src/shared/hooks/runtime-queries.ts
7824
+ function readRuntimeCapabilities() {
7825
+ return apiGet("health");
7826
+ }
7827
+ //#endregion
7828
+ //#region src/shared/hooks/use-runtime-capabilities.ts
7829
+ var value;
7830
+ var profile;
7831
+ var started = false;
7832
+ var listeners$5 = /* @__PURE__ */ new Set();
7833
+ function publish$2(next, nextProfile) {
7834
+ value = next;
7835
+ profile = nextProfile;
7836
+ for (const listener of listeners$5) listener();
7837
+ }
7838
+ function pluginMarketOf(capabilities) {
7839
+ return capabilities?.pluginMarket !== false;
7840
+ }
7841
+ function runtimeProfileValue() {
7842
+ return profile;
7843
+ }
7844
+ async function load() {
7845
+ const answer = await readRuntimeCapabilities();
7846
+ if (answer.ok) publish$2(answer.capabilities, answer.runtimeProfile ?? void 0);
7847
+ else publish$2(void 0);
7848
+ }
7849
+ function useRuntimeCapabilities() {
7850
+ const [caps, setCaps] = (0, react.useState)(value);
7851
+ (0, react.useEffect)(() => {
7852
+ let alive = true;
7853
+ const listener = () => {
7854
+ if (alive) setCaps(value);
7855
+ };
7856
+ listeners$5.add(listener);
7857
+ if (value === void 0 && !started) {
7858
+ started = true;
7859
+ load().catch(() => {
7860
+ started = false;
7861
+ publish$2(void 0);
7862
+ });
7863
+ }
7864
+ return () => {
7865
+ alive = false;
7866
+ listeners$5.delete(listener);
7867
+ };
7868
+ }, []);
7869
+ return caps;
7870
+ }
7871
+ //#endregion
7865
7872
  //#region ../../node_modules/.pnpm/dayjs@1.11.23/node_modules/dayjs/plugin/localizedFormat.js
7866
7873
  var require_localizedFormat = /* @__PURE__ */ __commonJSMin(((exports, module) => {
7867
7874
  (function(e, t) {
@@ -7955,6 +7962,10 @@ var require_zh_cn = /* @__PURE__ */ __commonJSMin(((exports, module) => {
7955
7962
  var import_localizedFormat = /* @__PURE__ */ __toESM(require_localizedFormat(), 1);
7956
7963
  require_zh_cn();
7957
7964
  import_dayjs_min.default.extend(import_localizedFormat.default);
7965
+ function localeNow() {
7966
+ if (typeof document === "undefined") return "zh";
7967
+ return document.documentElement.lang || navigator.language || "zh";
7968
+ }
7958
7969
  function displayTitleOf(entry, locale) {
7959
7970
  return marketText(entry.title, locale) || entry.name;
7960
7971
  }
@@ -9123,10 +9134,6 @@ function DiscoverToolbar(props) {
9123
9134
  }
9124
9135
  //#endregion
9125
9136
  //#region src/app/layouts/market/use-discover.ts
9126
- function localeNow() {
9127
- if (typeof document === "undefined") return "zh";
9128
- return document.documentElement.lang || navigator.language || "zh";
9129
- }
9130
9137
  var SHIPPED = [
9131
9138
  "applied",
9132
9139
  "restart-required",
@@ -9268,12 +9275,13 @@ function useDiscover(t, active, onInstalled) {
9268
9275
  const detailEntry = (0, react.useMemo)(() => entries.find((entry) => entry.name === detail) ?? null, [entries, detail]);
9269
9276
  const problem = (0, react.useMemo)(() => {
9270
9277
  if (payload?.problem === void 0 || payload.selected === null) return null;
9278
+ const detail = payload.problem.detail ?? (payload.problem.kind === "sandbox" ? t("panels.discover.sandbox") : "");
9271
9279
  return {
9272
9280
  id: payload.selected,
9273
9281
  kind: payload.problem.kind,
9274
- detail: payload.problem.detail ?? ""
9282
+ detail
9275
9283
  };
9276
- }, [payload]);
9284
+ }, [payload, t]);
9277
9285
  const selectedSource = (0, react.useMemo)(() => payload === null || payload.selected === null ? void 0 : payload.sources.find((source) => source.id === payload.selected), [payload]);
9278
9286
  const uninitialized = (0, react.useMemo)(() => {
9279
9287
  const kind = payload?.problem?.kind;
@@ -9519,6 +9527,11 @@ function useDiscover(t, active, onInstalled) {
9519
9527
  }
9520
9528
  //#endregion
9521
9529
  //#region src/app/layouts/market/DiscoverPanel.tsx
9530
+ function readFailureOf(d, t, failed) {
9531
+ if (d.loading || !failed) return null;
9532
+ if (d.problem?.kind === "sandbox") return d.problem.detail.trim() === "" ? t("panels.discover.sandbox") : d.problem.detail;
9533
+ return d.payload?.state === "invalid" ? t("panels.discover.invalid") : t("panels.discover.unreadable");
9534
+ }
9522
9535
  function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
9523
9536
  const d = useDiscover(t, active, onInstalled);
9524
9537
  const marketLabel = d.selected === null ? "" : sourceLabelsOf(d.sources).get(d.selected) ?? "";
@@ -9565,7 +9578,7 @@ function DiscoverPanel({ t, active, onInstalled, onShowInstalled }) {
9565
9578
  });
9566
9579
  else {
9567
9580
  const failed = d.payload.state === "invalid" || d.payload.state === "unreadable";
9568
- const readFailed = !d.loading && failed ? d.payload.state === "invalid" ? t("panels.discover.invalid") : t("panels.discover.unreadable") : null;
9581
+ const readFailed = readFailureOf(d, t, failed);
9569
9582
  const uninitialized = d.loading ? null : d.uninitialized;
9570
9583
  const retrying = d.loading && failed;
9571
9584
  const emptyText = unfiltered({
@@ -9826,6 +9839,14 @@ var RANK = {
9826
9839
  done: 1,
9827
9840
  ongoing: 0
9828
9841
  };
9842
+ var LIST_ORDER = {
9843
+ warning: 0,
9844
+ done: 1,
9845
+ ongoing: 2
9846
+ };
9847
+ function attentionListRank(attention) {
9848
+ return attention === null || attention === void 0 ? 3 : LIST_ORDER[attention.severity];
9849
+ }
9829
9850
  var SENTENCES = {
9830
9851
  warning: {
9831
9852
  one: "project.attention.warning.one",
@@ -10284,6 +10305,27 @@ function useMarketReload(input) {
10284
10305
  checkPart
10285
10306
  };
10286
10307
  }
10308
+ //#endregion
10309
+ //#region src/shared/hooks/locale-text.ts
10310
+ var resolver;
10311
+ function setRuntimeTextResolver(next) {
10312
+ resolver = next;
10313
+ }
10314
+ function runtimeText(text) {
10315
+ return resolveRuntimeText(text, resolver);
10316
+ }
10317
+ //#endregion
10318
+ //#region src/shared/hooks/runtime-terms.ts
10319
+ function runtimeTermsOf(t) {
10320
+ const profile = runtimeProfileValue();
10321
+ if (profile === void 0) return runtimeTermsOf$1(t);
10322
+ return {
10323
+ plugin: runtimeText(profile.terms.plugin),
10324
+ pluginOf: runtimeText(profile.terms.pluginOf),
10325
+ pluginThing: runtimeText(profile.terms.pluginThing),
10326
+ pluginArea: runtimeText(profile.terms.pluginArea)
10327
+ };
10328
+ }
10287
10329
  var AddModule_module_default = {
10288
10330
  wide: "_wide_1lv8f_1",
10289
10331
  dialog: "_dialog_1lv8f_8",
@@ -10440,7 +10482,10 @@ function AddModuleForm({ t, state }) {
10440
10482
  })), state.problem === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
10441
10483
  className: AddModule_module_default.problem,
10442
10484
  role: "alert"
10443
- }, t(problemKey(state.problem.problem), { reason: state.problem.reason })), state.failure === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
10485
+ }, t(problemKey(state.problem.problem), {
10486
+ ...runtimeTermsOf(t),
10487
+ reason: state.problem.reason
10488
+ })), state.failure === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
10444
10489
  className: AddModule_module_default.problem,
10445
10490
  role: "alert"
10446
10491
  }, state.failure), /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.options }, /* @__PURE__ */ (0, react.createElement)("button", {
@@ -10503,7 +10548,7 @@ function AddModulePreview({ t, state }) {
10503
10548
  const source = preview.registry === "" ? t("panels.market.add.registryDefault") : preview.registry;
10504
10549
  const plugin = preview.kind === "plugin";
10505
10550
  const pluginName = plugin ? preview.pluginName : void 0;
10506
- return /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.body }, /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.subject }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectName }, preview.name), preview.version === "" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.installVersion", { version: preview.version })), pluginName === void 0 || pluginName === preview.name ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.pluginAlias", { name: pluginName })), preview.description === "" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectDesc }, preview.description), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, source)), plugin ? /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.pluginPreview")) : null);
10551
+ return /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.body }, /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.subject }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectName }, preview.name), preview.version === "" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.installVersion", { version: preview.version })), pluginName === void 0 || pluginName === preview.name ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.pluginAlias", { name: pluginName })), preview.description === "" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectDesc }, preview.description), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, source)), plugin ? /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.pluginPreview", runtimeTermsOf(t))) : null);
10507
10552
  }
10508
10553
  function AddModuleResult({ t, state }) {
10509
10554
  const outcome = state.outcome;
@@ -10529,7 +10574,10 @@ function AddModuleResult({ t, state }) {
10529
10574
  }) : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconCheckCircleFillRegular, { size: 28 })), /* @__PURE__ */ (0, react.createElement)("h2", {
10530
10575
  className: AddModule_module_default.wizardTitle,
10531
10576
  role: kind === "failed" ? "alert" : "status"
10532
- }, kind === "failed" ? t("panels.market.add.failedTitle") : kind === "cancelled" ? t("panels.market.add.cancelledTitle") : t("panels.market.add.installedTitle"))), /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.subject }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectName }, outcome.module.pkg), name === outcome.module.pkg ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, name), outcome.module.version === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.installVersion", { version: outcome.module.version }))), kind === "plugin" && plugin !== void 0 ? /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.installedPlugin", { name: plugin.name ?? plugin.pkg })) : kind === "failed" ? /* @__PURE__ */ (0, react.createElement)("p", {
10577
+ }, kind === "failed" ? t("panels.market.add.failedTitle") : kind === "cancelled" ? t("panels.market.add.cancelledTitle") : t("panels.market.add.installedTitle"))), /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.subject }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectName }, outcome.module.pkg), name === outcome.module.pkg ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, name), outcome.module.version === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.subjectMeta }, t("panels.market.add.installVersion", { version: outcome.module.version }))), kind === "plugin" && plugin !== void 0 ? /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.installedPlugin", {
10578
+ ...runtimeTermsOf(t),
10579
+ name: plugin.name ?? plugin.pkg
10580
+ })) : kind === "failed" ? /* @__PURE__ */ (0, react.createElement)("p", {
10533
10581
  className: AddModule_module_default.resultWarn,
10534
10582
  role: "alert"
10535
10583
  }, t("panels.market.add.failed", { reason })) : kind === "restart" ? /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.resultWarn }, t("panels.market.add.doneRestart")), why === void 0 ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.resultMeta }, why)) : kind === "quiet" ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.result }, t("panels.market.add.tookEffect")), builds.length === 0 ? null : /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.approval }, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.approvalTitle }, t("panels.market.add.approveTitle")), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.approvalText }, t("panels.market.add.approveHint", { packages: builds.join("、") })), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.approvalCaution }, t("panels.market.add.approveCaution"))), supply === void 0 || outcome.supply.state !== "failed" && (kind === "failed" || kind === "cancelled") ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: supplyTone(outcome.supply.state) }, t(supply, { reason: outcome.supply.reason ?? "" })), state.failure === null ? null : /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.problem }, state.failure), outcome.change.errorDetail === void 0 ? null : /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.detailLabel }, t("panels.market.add.details")), /* @__PURE__ */ (0, react.createElement)("p", { className: AddModule_module_default.detail }, outcome.change.errorDetail)));
@@ -10868,7 +10916,7 @@ function AddModuleContent({ t, onClose, onInstalled }) {
10868
10916
  if (!installing) onClose();
10869
10917
  },
10870
10918
  title: t("panels.market.add.title"),
10871
- description: t("panels.market.add.description"),
10919
+ description: t("panels.market.add.description", runtimeTermsOf(t)),
10872
10920
  closeLabel: t("panels.market.add.close"),
10873
10921
  className: AddModule_module_default.dialog,
10874
10922
  contentClassName: AddModule_module_default.content,
@@ -10943,6 +10991,7 @@ function MarketPanel({ t, units, titleOf }) {
10943
10991
  const { modules, plugins, workbench, selfUpdate, checking: versionsChecking, allChecking: versionsAllChecking, modulesCheck, pluginsCheck, read: installedRead, reload: reloadVersions } = useModuleVersions();
10944
10992
  const machineBoard = useEnabledUnits(0, null);
10945
10993
  const install = useMarketInstallState();
10994
+ const runtimeCapabilities = useRuntimeCapabilities();
10946
10995
  const [adding, setAdding] = (0, react.useState)(false);
10947
10996
  const [acting, setActing] = (0, react.useState)(false);
10948
10997
  const [tab, setTab] = (0, react.useState)("installed");
@@ -10994,6 +11043,7 @@ function MarketPanel({ t, units, titleOf }) {
10994
11043
  manifests,
10995
11044
  installable,
10996
11045
  capabilities,
11046
+ runtimePluginMarket: pluginMarketOf(runtimeCapabilities),
10997
11047
  freshness: shownFreshness,
10998
11048
  onChanged: reload,
10999
11049
  onPending: setActing,
@@ -11823,7 +11873,13 @@ function ConfigSyncItem({ t }) {
11823
11873
  const value = snapshot.phase === "ready" ? snapshot.value : void 0;
11824
11874
  const failure = (0, react.useMemo)(() => {
11825
11875
  if (snapshot.phase !== "error") return null;
11826
- const blocker = blockerOfError(snapshot.error, t);
11876
+ const diagnose = runtimeProfileValue()?.diagnose;
11877
+ const resolved = diagnose === void 0 ? void 0 : {
11878
+ exec: diagnose.exec === void 0 ? void 0 : runtimeText(diagnose.exec),
11879
+ login: diagnose.login === void 0 ? void 0 : runtimeText(diagnose.login),
11880
+ bridge: diagnose.bridge === void 0 ? void 0 : runtimeText(diagnose.bridge)
11881
+ };
11882
+ const blocker = blockerOfError(snapshot.error, t, { diagnose: resolved });
11827
11883
  return blocker.hint === void 0 ? {
11828
11884
  ...blocker,
11829
11885
  hint: t("configSync.readHint")
@@ -12609,29 +12665,38 @@ function stepDetailText(step, snapshot, t) {
12609
12665
  if (step.status === "failed") return failedStepText(snapshot.guidance, t);
12610
12666
  if (step.status === "pending" || step.status === "running") return "";
12611
12667
  if (step.id === "toolchain") return step.status === "ok" ? t("env.toolchain.ok") : t("env.toolchain.warn");
12612
- if (step.id === "opencli") return step.status === "ok" ? t("env.opencli.ok") : "";
12668
+ if (step.id === "cli") return step.status === "ok" ? t("env.runtime.ok") : "";
12613
12669
  if (step.id === "bridge") return step.status === "ok" ? t("env.bridge.ok") : t("env.bridge.short");
12614
12670
  if (step.id === "diy") return step.status === "ok" ? t("env.diy.ok") : t("env.diy.short");
12615
12671
  if (step.id === "warm") return step.status === "ok" ? t("env.warm.done", { n: step.detail ?? "0" }) : t("env.warm.short");
12616
12672
  return "";
12617
12673
  }
12674
+ function gateHintOf(snapshot, t) {
12675
+ if (snapshot.phase === "failed") return t("env.failed");
12676
+ if (snapshot.phase === "installing") return snapshot.steps.some((step) => step.id === "toolchain" && step.status === "running") ? t("env.installingToolchain") : t("env.installing");
12677
+ if (snapshot.phase === "ready") {
12678
+ if ((snapshot.bridgeIssues?.length ?? 0) > 0) return t("env.bridge.hold");
12679
+ if (snapshot.diyGap !== void 0) return t("env.diy.hold");
12680
+ }
12681
+ return t("env.checking");
12682
+ }
12618
12683
  function showsRawDetails(snapshot) {
12619
12684
  if (snapshot.phase === "failed") return true;
12620
12685
  return snapshot.steps.some((step) => step.status === "warn" || step.status === "failed");
12621
12686
  }
12622
- var OPENCLI_EXTENSION_URL = "https://chromewebstore.google.com/detail/opencli/ildkmabpimmkaediidaifkhjpohdnifk";
12623
- function bridgeAdvice(issue) {
12624
- if (issue === "daemon") return { textKey: "env.bridge.daemon" };
12625
- if (issue === "extension") return {
12626
- textKey: "env.bridge.extension",
12627
- link: {
12628
- labelKey: "env.bridge.extensionLink",
12629
- href: OPENCLI_EXTENSION_URL
12630
- }
12687
+ function showsRawAll(snapshot, panelShown) {
12688
+ return !panelShown && showsRawDetails(snapshot);
12689
+ }
12690
+ function bridgeAdvice(issue, t, fixes) {
12691
+ const fix = fixes?.[issue];
12692
+ if (fix !== void 0) return {
12693
+ text: runtimeText(fix.text),
12694
+ ...fix.link === void 0 ? {} : { link: {
12695
+ label: runtimeText(fix.link.label),
12696
+ href: fix.link.href
12697
+ } }
12631
12698
  };
12632
- if (issue === "profile") return { textKey: "env.bridge.profile" };
12633
- if (issue === "stale") return { textKey: "env.bridge.stale" };
12634
- return { textKey: "env.bridge.unknown" };
12699
+ return { text: t("env.bridge.unknown") };
12635
12700
  }
12636
12701
  //#endregion
12637
12702
  //#region src/app/layouts/env-gate/gate-deadline.ts
@@ -12705,9 +12770,11 @@ function el(tag, className, text) {
12705
12770
  //#region src/app/layouts/env-gate/boot-gate.ts
12706
12771
  var POLL_MS = 400;
12707
12772
  var GIVE_UP_MS = 12e4;
12708
- function stepLabel$1(id, t) {
12773
+ function stepLabel$1(step, t) {
12774
+ const id = step.id;
12709
12775
  if (id === "toolchain") return t("env.step.toolchain");
12710
- if (id === "opencli") return t("env.step.opencli");
12776
+ if (id === "runtime") return step.label ?? t("env.step.adapter");
12777
+ if (id === "cli") return t("env.step.runtime");
12711
12778
  if (id === "warm") return t("env.step.warm");
12712
12779
  if (id === "diy") return t("env.step.diy");
12713
12780
  return t("env.step.bridge");
@@ -12850,14 +12917,15 @@ function createBootGate(ctx, options = {}) {
12850
12917
  if (root !== null) root.inert = true;
12851
12918
  let closed = false;
12852
12919
  let timer;
12853
- let installingSince = null;
12920
+ let waitingSince = null;
12854
12921
  let ticker;
12855
12922
  function startElapsed() {
12856
- if (installingSince === null) installingSince = Date.now();
12923
+ if (waitingSince === null) waitingSince = Date.now();
12857
12924
  if (ticker !== void 0) return;
12858
12925
  const paint = () => {
12859
- const seconds = Math.max(0, Math.round((Date.now() - (installingSince ?? Date.now())) / 1e3));
12926
+ const seconds = Math.max(0, Math.floor((Date.now() - (waitingSince ?? Date.now())) / 1e3));
12860
12927
  elapsed.textContent = t("env.elapsed", { seconds });
12928
+ progressRow.hidden = seconds < 1;
12861
12929
  };
12862
12930
  paint();
12863
12931
  ticker = setInterval(paint, 500);
@@ -12865,8 +12933,9 @@ function createBootGate(ctx, options = {}) {
12865
12933
  function stopElapsed() {
12866
12934
  if (ticker !== void 0) clearInterval(ticker);
12867
12935
  ticker = void 0;
12868
- installingSince = null;
12936
+ waitingSince = null;
12869
12937
  elapsed.textContent = "";
12938
+ progressRow.hidden = true;
12870
12939
  }
12871
12940
  let cancelled = false;
12872
12941
  const forcePlan = createForcePlan();
@@ -12896,13 +12965,13 @@ function createBootGate(ctx, options = {}) {
12896
12965
  detail: el("span", BootGate_module_default.detail),
12897
12966
  status: ""
12898
12967
  };
12899
- item.append(mark, el("span", BootGate_module_default.label, stepLabel$1(step.id, t)), row.detail);
12968
+ item.append(mark, el("span", BootGate_module_default.label, stepLabel$1(step, t)), row.detail);
12900
12969
  rows.set(step.id, row);
12901
12970
  return row;
12902
12971
  }
12903
12972
  function render(snapshot) {
12904
12973
  wakeNote.hidden = true;
12905
- hint.textContent = snapshot.phase === "installing" ? t("env.installing") : snapshot.phase === "failed" ? t("env.failed") : gateActionOf(snapshot) === "hold" ? (snapshot.bridgeIssues?.length ?? 0) > 0 ? t("env.bridge.hold") : t("env.diy.hold") : t("env.checking");
12974
+ hint.textContent = gateHintOf(snapshot, t);
12906
12975
  const items = snapshot.steps.map((step) => {
12907
12976
  const row = ensureRow(step);
12908
12977
  row.item.dataset.status = step.status;
@@ -12922,12 +12991,10 @@ function createBootGate(ctx, options = {}) {
12922
12991
  }
12923
12992
  const rawLines = snapshot.steps.flatMap((step) => {
12924
12993
  const detail = step.detail ?? "";
12925
- return detail === "" ? [] : [`${stepLabel$1(step.id, t)}: ${detail}`];
12994
+ return detail === "" ? [] : [`${stepLabel$1(step, t)}: ${detail}`];
12926
12995
  });
12927
12996
  rawAllBody.textContent = rawLines.join("\n");
12928
- rawAll.hidden = !showsRawDetails(snapshot) || rawLines.length === 0;
12929
- progressRow.hidden = snapshot.phase !== "installing";
12930
- if (snapshot.phase === "installing") startElapsed();
12997
+ if (snapshot.phase !== "ready" && snapshot.phase !== "failed") startElapsed();
12931
12998
  else stopElapsed();
12932
12999
  const failed = snapshot.phase === "failed";
12933
13000
  actions.hidden = !failed;
@@ -12951,12 +13018,12 @@ function createBootGate(ctx, options = {}) {
12951
13018
  if (bridgeBroken) {
12952
13019
  const listed = bridgeIssues.length === 0 ? ["unknown"] : bridgeIssues;
12953
13020
  bridgeLines.replaceChildren(...listed.map((issue) => {
12954
- const advice = bridgeAdvice(issue);
12955
- const item = el("li", BootGate_module_default.bridgeLine, t(advice.textKey));
13021
+ const advice = bridgeAdvice(issue, t, runtimeProfileValue()?.bridge);
13022
+ const item = el("li", BootGate_module_default.bridgeLine, advice.text);
12956
13023
  if (advice.link !== void 0) {
12957
13024
  const link = document.createElement("a");
12958
13025
  link.className = BootGate_module_default.link;
12959
- link.textContent = t(advice.link.labelKey);
13026
+ link.textContent = advice.link.label;
12960
13027
  link.href = advice.link.href;
12961
13028
  link.target = "_blank";
12962
13029
  link.rel = "noreferrer noopener";
@@ -12980,6 +13047,8 @@ function createBootGate(ctx, options = {}) {
12980
13047
  diyRawText.textContent = gap.detail;
12981
13048
  diyRaw.hidden = gap.detail === "";
12982
13049
  }
13050
+ const panelShown = !actions.hidden || !bridge.hidden || !diy.hidden;
13051
+ rawAll.hidden = !showsRawAll(snapshot, panelShown) || rawLines.length === 0;
12983
13052
  }
12984
13053
  async function poll() {
12985
13054
  if (cancelled) return;
@@ -13455,8 +13524,8 @@ function MarketSourceApprovalSeat({ tool, args, t }) {
13455
13524
  function pluginToolIndexOf(manifests) {
13456
13525
  const index = /* @__PURE__ */ new Map();
13457
13526
  for (const manifest of manifests) for (const tool of manifest.tools) {
13458
- if (tool.opencli === void 0) continue;
13459
- index.set(tool.name, tool.opencli);
13527
+ if (tool.runtime === void 0) continue;
13528
+ index.set(tool.name, tool.runtime);
13460
13529
  }
13461
13530
  return index;
13462
13531
  }
@@ -15510,31 +15579,43 @@ function WorkspaceRenameDialog({ workspace, t, onClose, onSubmit }) {
15510
15579
  }
15511
15580
  //#endregion
15512
15581
  //#region src/app/layouts/sidebar/workspace-groups.ts
15513
- function workspaceSections(items, headings) {
15582
+ var STATEFUL_SECTION_ORDER = [
15583
+ "workshop",
15584
+ "defaultWorkspace",
15585
+ "workspaces"
15586
+ ];
15587
+ function workspaceSections(items, headings, options = {}) {
15514
15588
  const workspaces = [];
15515
15589
  const defaults = [];
15516
15590
  const workshop = [];
15517
15591
  for (const item of items) if (isWorkshopPath(item.path)) workshop.push(item);
15518
15592
  else if (item.title === "default-workspace") defaults.push(item);
15519
15593
  else workspaces.push(item);
15594
+ const rankOf = options.rankOf;
15595
+ const ordered = (rows) => rankOf === void 0 ? rows : [...rows].sort((left, right) => (rankOf(left) ?? Number.POSITIVE_INFINITY) - (rankOf(right) ?? Number.POSITIVE_INFINITY));
15520
15596
  const special = defaults.length > 0 || workshop.length > 0;
15521
15597
  const sections = [];
15522
15598
  if (workspaces.length > 0) sections.push({
15523
15599
  id: "workspaces",
15524
15600
  heading: special ? headings.workspaces : null,
15525
- items: workspaces
15601
+ items: ordered(workspaces)
15526
15602
  });
15527
15603
  if (defaults.length > 0) sections.push({
15528
15604
  id: "defaultWorkspace",
15529
15605
  heading: headings.defaultWorkspace,
15530
- items: defaults
15606
+ items: ordered(defaults)
15531
15607
  });
15532
15608
  if (workshop.length > 0) sections.push({
15533
15609
  id: "workshop",
15534
15610
  heading: headings.workshop,
15535
- items: workshop
15611
+ items: ordered(workshop)
15536
15612
  });
15537
- return sections;
15613
+ if (rankOf === void 0) return sections;
15614
+ const sectionRank = (section) => Math.min(...section.items.map((item) => rankOf(item) ?? Number.POSITIVE_INFINITY));
15615
+ const priorityOf = (section) => STATEFUL_SECTION_ORDER.indexOf(section.id);
15616
+ const stateful = sections.filter((section) => sectionRank(section) !== Number.POSITIVE_INFINITY);
15617
+ const idle = sections.filter((section) => sectionRank(section) === Number.POSITIVE_INFINITY);
15618
+ return [...[...stateful].sort((left, right) => sectionRank(left) - sectionRank(right) || priorityOf(left) - priorityOf(right)), ...idle];
15538
15619
  }
15539
15620
  //#endregion
15540
15621
  //#region src/app/layouts/sidebar/WorkspaceRowAction.tsx
@@ -15620,7 +15701,14 @@ function ProjectSwitcher({ items, current, attention, compact = false, onPick, o
15620
15701
  workspaces: t("project.group.workspaces"),
15621
15702
  defaultWorkspace: t("project.group.defaultWorkspace"),
15622
15703
  workshop: t("project.group.workshop")
15623
- }), [items, t]);
15704
+ }, { rankOf: (workspace) => {
15705
+ const own = attention.byWorkspace.get(workspace.workspaceId);
15706
+ return own === void 0 ? null : attentionListRank(own);
15707
+ } }), [
15708
+ items,
15709
+ attention.byWorkspace,
15710
+ t
15711
+ ]);
15624
15712
  const options = (0, react.useMemo)(() => workspaceOptions({
15625
15713
  sections,
15626
15714
  currentId,
@@ -15639,7 +15727,6 @@ function ProjectSwitcher({ items, current, attention, compact = false, onPick, o
15639
15727
  t,
15640
15728
  attention.byWorkspace
15641
15729
  ]);
15642
- const revealId = (0, react.useMemo)(() => options.find((option) => attention.byWorkspace.has(option.value))?.value, [options, attention.byWorkspace]);
15643
15730
  const valueNodes = (0, react.useMemo)(() => {
15644
15731
  const out = /* @__PURE__ */ new Map();
15645
15732
  for (const workspace of items) {
@@ -15671,7 +15758,6 @@ function ProjectSwitcher({ items, current, attention, compact = false, onPick, o
15671
15758
  variant: "ghost",
15672
15759
  iconOnly: compact,
15673
15760
  search: !compact,
15674
- revealId,
15675
15761
  ariaLabel: t("project.label"),
15676
15762
  searchLabel: t("project.search.label"),
15677
15763
  searchPlaceholder: t("project.search.placeholder"),
@@ -16445,7 +16531,7 @@ function messagesOf(units) {
16445
16531
  ...face.messages === void 0 ? {} : { messages: face.messages }
16446
16532
  }));
16447
16533
  }
16448
- var COMPONENT_CSS_MARKER = ".wb-activityBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding-top: var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-activityBlock:first-child {\n padding-top: 0;\n border-top: none;\n}\n\n.wb-activityBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}\n\n.wb-activityLine {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-activityLineText {\n flex: none;\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n max-height: var(--wb-len-72);\n overflow-y: auto;\n}\n\n.wb-activityLineAt {\n flex: none;\n margin-left: auto;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-activityLine > .wb-activityLineAt,\n.wb-activityLine > .wb-activityLineActions {\n margin-left: auto;\n}\n\n.wb-activityLine > .wb-activityLineAt + .wb-activityLineActions {\n margin-left: 0;\n}\n\n.wb-activityLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-activityActionFailed {\n color: var(--dsw-alias-state-error-primary);\n}\n.wb-note {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-problem {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: grid;\n grid-template-columns: minmax(var(--wb-len-56), auto) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-2);\n align-items: baseline;\n margin: 0;\n}\n.wb-approvalRow {\n display: contents;\n}\n.wb-approvalLabel {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n.wb-cardHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-8) var(--wb-card-gutter);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-cardTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-cardMeta {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-cardMeta::before {\n content: '\\00b7';\n margin-right: var(--wb-len-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen ~ .wb-cardRefresh {\n margin-left: 0;\n}\n\n.wb-cardOpen:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh {\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardRefresh:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-cardGear {\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-3);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardGear:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n.wb-card {\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: none;\n}\n.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-card-gutter);\n font-size: var(--dsw-font-xxs-12-font-size);\n}\n.wb-cardBleed {\n margin-inline: calc(-1 * var(--wb-card-gutter));\n}\n._anchor_yq4s2_1 {\n display: contents;\n}\n.wb-spinner {\n display: inline-flex;\n align-items: center;\n flex: none;\n}\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n background: transparent;\n}\n\n.wb-choiceMenu[data-variant='boxed'] {\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-choiceOption {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-choiceOptionOn {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-checkbox {\n position: absolute;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.wb-checkboxBox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xs);\n corner-shape: round;\n color: var(--dsw-alias-label-primary-foreground);\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-choiceOption:hover .wb-checkboxBox {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-checkbox:checked + .wb-checkboxBox {\n border-color: var(--dsw-alias-brand-primary);\n background: var(--dsw-alias-brand-primary);\n}\n\n.wb-checkbox:disabled + .wb-checkboxBox {\n cursor: default;\n}\n\n.wb-checkbox:focus-visible + .wb-checkboxBox {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.wb-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceOption:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n\n.wb-choiceOption:has(:disabled),\n.wb-choiceOption:has(:disabled):hover {\n background: transparent;\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.wb-choiceLabelText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceLabel:has(.wb-choiceDescription) .wb-choiceLabelText {\n overflow: visible;\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.wb-choiceDescription {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n.wb-choiceLoading {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-choiceLoadingText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceEmpty {\n display: flex;\n align-items: center;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio {\n appearance: none;\n -webkit-appearance: none;\n flex: none;\n box-sizing: border-box;\n width: var(--wb-len-12);\n height: var(--wb-len-12);\n margin: 0;\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: 50%;\n corner-shape: round;\n background-color: transparent;\n cursor: pointer;\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-radio:not(:checked):hover {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio:checked {\n border-color: var(--dsw-alias-brand-primary);\n background-image: radial-gradient(\n circle at center,\n var(--dsw-alias-brand-primary) 0 3px,\n transparent 3px\n );\n}\n\n.wb-radio:disabled {\n cursor: default;\n}\n\n.wb-radio:focus-visible {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.wb-formActions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n\n.wb-formActionDanger {\n color: var(--dsw-alias-state-error-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n.wb-rows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n}\n.wb-rows > :not(.wb-row) {\n grid-column: 1 / -1;\n}\n.wb-row {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}\n.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.wb-rowKey {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-rowValue {\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-rows > .wb-row {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-rows > .wb-row {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-confirmBar {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-confirmBarTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 600;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-confirmBarHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.wb-field {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n.wb-fieldLabel {\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-fieldHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-field:has(:disabled) .wb-fieldLabel {\n opacity: 0.4;\n}\n.wb-formRows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-12);\n}\n\n.wb-formRows > :not(.wb-formRow) {\n grid-column: 1 / -1;\n}\n\n.wb-formRow {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: center;\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-8);\n}\n\n.wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n align-items: stretch;\n gap: var(--wb-len-6);\n}\n\n.wb-formRows > .wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.wb-formLabel {\n justify-self: start;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: nowrap;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formLabel {\n white-space: normal;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formHint,\n.wb-formRow[data-layout='stacked'] .wb-formProblem {\n grid-column: 1 / -1;\n}\n\n.wb-formControl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.wb-formControl\n > :where(\n .wb-selectAnchor,\n .wb-choiceMenu,\n input:not(\n [type='checkbox'],\n [type='radio'],\n [type='button'],\n [type='submit'],\n [type='reset'],\n [type='image'],\n [type='color'],\n [type='range']\n ),\n select,\n textarea\n ) {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n}\n\n.wb-formHint {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-formProblem {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(.wb-formProblem) .wb-formLabel {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(:disabled) .wb-formLabel {\n opacity: 0.4;\n}\n\n.wb-formRows > .wb-formRow {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-formRows > .wb-formRow {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-form {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n width: 100%;\n}\n:where(.wb-link) {\n margin-left: var(--wb-len-2);\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: baseline;\n}\n\n:where(.wb-link:hover) {\n text-decoration: underline;\n}\n\n:where(.wb-link:focus-visible) {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n.wb-longTask {\n padding-top: var(--wb-len-12);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n.wb-longTaskHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n}\n\n.wb-longTaskLink {\n flex: none;\n}\n\n.wb-longTaskHeadline {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-longTaskProblem {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-longTaskDump {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-longTaskDump pre {\n margin: var(--wb-len-4) 0 0;\n max-height: var(--wb-len-220);\n overflow: auto;\n}\n\n.wb-longTaskStop {\n display: inline-flex;\n flex: none;\n align-items: center;\n align-self: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n padding: 0;\n margin-left: auto;\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-specific-menu);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-longTaskStop:hover:not(:disabled),\n.wb-longTaskStop:focus-visible {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStop:disabled {\n cursor: default;\n}\n\n.wb-longTaskStopArmed,\n.wb-longTaskStopArmed:hover:not(:disabled),\n.wb-longTaskStopArmed:focus-visible {\n gap: var(--wb-len-4);\n width: auto;\n padding: 0 var(--wb-len-7);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStopLabel {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n.wb-longTaskStopWhy {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-centered.wb-centeredCompact {\n flex: none;\n min-height: 0;\n gap: var(--wb-len-8);\n padding: var(--wb-len-20) var(--wb-len-16);\n}\n\n.wb-centered.wb-centeredCompact .wb-centeredHero {\n margin-bottom: var(--wb-len-4);\n}\n\n.wb-skeleton {\n display: flex;\n flex-direction: column;\n}\n\n.wb-skeletonRow {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-skeletonRow + .wb-skeletonRow::before {\n content: '';\n align-self: stretch;\n height: var(--wb-len-0-5);\n margin: 0 var(--wb-len-8) var(--wb-len-neg-0-5);\n background: var(--dsw-alias-border-l2);\n}\n\n.wb-skeletonBar {\n display: block;\n height: var(--wb-len-13);\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-bg-skeleton);\n animation: wb-skeleton-pulse var(--wb-dur-1-4) var(--ds-ease-in-out) infinite;\n}\n\n.wb-skeletonBarTitle {\n width: 62%;\n}\n\n.wb-skeletonBarMeta {\n width: 32%;\n height: var(--wb-len-10);\n}\n\n.wb-skeletonRow:nth-child(2n) .wb-skeletonBarTitle {\n width: 74%;\n}\n\n.wb-skeletonRow:nth-child(3n) .wb-skeletonBarTitle {\n width: 52%;\n}\n\n@keyframes wb-skeleton-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.wb-centered {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--wb-len-14);\n flex: 1;\n min-height: var(--wb-len-240);\n padding: 0 var(--wb-len-24) var(--wb-len-24);\n text-align: center;\n}\n\n.wb-centeredHero {\n display: flex;\n margin-bottom: var(--wb-len-16);\n color: var(--dsw-alias-label-dimmed);\n}\n\n.wb-centeredTitle {\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-centeredHint {\n max-width: var(--wb-len-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-centeredDetail {\n max-width: var(--wb-len-320);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-dimmed);\n word-break: break-all;\n}\n\n.wb-centeredAction {\n display: flex;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}\n.wb-textField {\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n outline: none;\n}\n\n.wb-textField:focus {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-textField:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-textField[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-textField[aria-invalid='true']:focus {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n:where(.wb-textField) {\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n}\n:where(.wb-selectTrigger) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n text-align: left;\n cursor: pointer;\n}\n\n.wb-selectTrigger:focus-visible {\n outline: none;\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true']:focus-visible {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-selectLoading:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n background: transparent;\n font-size: var(--wb-font-row);\n}\n\n.wb-selectGhost:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-selectGhost:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n border-color: transparent;\n box-shadow: none;\n}\n\n.wb-selectIconOnly {\n width: var(--wb-len-36);\n height: var(--wb-len-36);\n min-height: 0;\n gap: 0;\n padding: 0;\n justify-content: center;\n}\n\n.wb-selectReveal {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.wb-selectIconOnly .wb-selectIcon {\n width: 100%;\n height: 100%;\n}\n\n.wb-selectAnchor {\n display: block;\n width: 100%;\n}\n\n.wb-selectIcon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectValue {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n.wb-selectPlaceholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n}\n\n.wb-selectMenu {\n min-width: var(--wb-len-240);\n max-width: var(--wb-len-360);\n max-height: min(var(--wb-len-320), calc(100vh - var(--wb-len-24)));\n}\n\n:where(.wb-selectSearch) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n.wb-selectSearch:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectSearch.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: 0.5px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-selectSearch.wb-selectGhost:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: none;\n}\n\n.wb-selectSearchIcon {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-textField.wb-selectSearchInput {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n.wb-textField.wb-selectSearchInput:focus {\n box-shadow: none;\n}\n\n.wb-selectFallback {\n width: 100%;\n}\n\n.wb-selectHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\nsection.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-len-16);\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-settings-card-fill);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.wb-settings .wb-settingsTitle {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-strong-14-font-size);\n line-height: var(--wb-line-24);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\n.wb-stateBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-stateBlockTitle {\n margin: 0;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n.wb-stateBlockHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-stateBlockActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n.wb-stateBlockResolving {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_1vpw3_1 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._marketRow_1vpw3_10 {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n column-gap: var(--wb-len-14);\n row-gap: var(--wb-len-4);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketIcon_1vpw3_20 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_1vpw3_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_1vpw3_39 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketStatus_1vpw3_48 {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketStateText_1vpw3_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_1vpw3_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_1vpw3_66 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketName_1vpw3_39 ._marketVersion_1vpw3_72 {\n margin-left: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n}\n\n._marketVersion_1vpw3_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_1vpw3_72::before {\n content: '';\n display: inline-block;\n width: var(--wb-len-1);\n height: var(--wb-len-10);\n margin: 0 var(--wb-len-8) 0 var(--wb-len-2);\n vertical-align: -1px;\n background: var(--dsw-alias-border-l2);\n}\n\n._marketLocalTag_1vpw3_94 {\n margin-left: var(--wb-len-8);\n padding: 0 var(--wb-len-6);\n border: var(--wb-len-1) solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-caption);\n}\n\n._marketEnd_1vpw3_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1vpw3_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1vpw3_112::before {\n content: '';\n width: 0;\n height: var(--wb-len-14);\n border-left: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketActions_1vpw3_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_1vpw3_131 {\n color: var(--dsw-alias-state-warn-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._marketSelfDivider_1vpw3_137 {\n height: 0;\n margin-top: calc(0px - var(--wb-len-16));\n border-top: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketSection_1vpw3_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_1vpw3_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_1vpw3_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_1vpw3_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_1vpw3_169 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionAction_1vpw3_175 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n margin-left: auto;\n min-width: 0;\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketSectionTitle_1vpw3_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketName_1vpw3_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketIcon_1vpw3_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketProgress_1vpw3_195 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-height: var(--wb-len-32);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketNote_1vpw3_205 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-warn-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailure_1vpw3_212 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailureSeat_1vpw3_219 {\n grid-column: 2 / -1;\n min-width: 0;\n}\n\n._marketEmpty_1vpw3_224 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_1vpw3_229 {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-32);\n padding: 0 clamp(var(--wb-len-24), 4vw, var(--wb-len-48)) var(--wb-len-48);\n overflow-x: hidden;\n overflow-y: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_1vpw3_229 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_1vpw3_247 {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-16);\n padding-top: var(--wb-len-28);\n}\n\n._marketPageTitle_1vpw3_255 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_1vpw3_260 {\n margin: var(--wb-len-4) 0 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketPageTools_1vpw3_266 {\n flex: none;\n align-self: center;\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: var(--wb-len-16);\n}\n\n._marketPanel_1vpw3_275 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_1vpw3_275[hidden] {\n display: none;\n}\n\n._marketTabs_1vpw3_285 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_1vpw3_290 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_1vpw3_295 {\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n border-radius: var(--dsw-radius-md);\n}\n\n._marketEmpty_1vpw3_224 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) var(--wb-len-16);\n text-align: center;\n}\n\n._marketEmptyTitle_1vpw3_312 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_1vpw3_317 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_1vpw3_324 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_1vpw3_331 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_1vpw3_337 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_1vpw3_342 {\n min-width: 0;\n max-width: var(--wb-len-240);\n margin-left: calc(0px - var(--wb-len-8));\n font-weight: 500;\n}\n\n._discoverMarketName_1vpw3_349 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_1vpw3_355 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_1vpw3_360 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_1vpw3_365 {\n flex: none;\n}\n\n._discoverSearch_1vpw3_369 {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 var(--wb-len-120);\n min-width: var(--wb-len-120);\n}\n\n._discoverSearchField_1vpw3_377 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_1vpw3_382 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_1vpw3_377 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_1vpw3_369 ._discoverSearchClear_1vpw3_391 {\n position: absolute;\n top: 50%;\n inset-inline-end: var(--wb-len-4);\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n transform: translateY(-50%);\n}\n\n._discoverSearchClear_1vpw3_391:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_1vpw3_331 {\n display: grid;\n grid-template-columns: minmax(0, auto) minmax(var(--wb-len-120), 1fr) auto;\n grid-template-areas:\n 'market search refresh'\n 'labels sort sort';\n }\n\n ._discoverMarket_1vpw3_337 {\n grid-area: market;\n }\n\n ._discoverMarketButton_1vpw3_342 {\n margin-left: 0;\n }\n\n ._discoverLabels_1vpw3_355 {\n grid-area: labels;\n }\n\n ._discoverSearch_1vpw3_369 {\n grid-area: search;\n }\n\n ._discoverSort_1vpw3_360 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_1vpw3_365 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_1vpw3_442 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_1vpw3_449 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._discoverCard_1vpw3_458 {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n margin: 0 calc(0px - var(--wb-len-8));\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCard_1vpw3_458:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_1vpw3_472 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverArtworkImage_1vpw3_484 {\n object-fit: contain;\n}\n\n._discoverMain_1vpw3_488 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_1vpw3_496 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverCardOpen_1vpw3_504 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n}\n\n._discoverCardOpen_1vpw3_504::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_1vpw3_504:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_1vpw3_504:focus-visible::after {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverStrong_1vpw3_535 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_1vpw3_541 {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverMeta_1vpw3_550 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._discoverMuted_1vpw3_557 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_1vpw3_563 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverUpdateAction_1vpw3_572 {\n color: var(--dsw-alias-state-warn-primary);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._discoverBlocked_1vpw3_577 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_1vpw3_582 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) 0;\n text-align: center;\n}\n\n._discoverEmptyTitle_1vpw3_591 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_1vpw3_582 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_1vpw3_601 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_1vpw3_607 {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n padding: 0;\n border: 0;\n background: 0 0;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--wb-font-12-5);\n cursor: pointer;\n}\n\n._discoverCrumb_1vpw3_607:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_1vpw3_607:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverCrumbIcon_1vpw3_630 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_1vpw3_634 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_1vpw3_640 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_1vpw3_646 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._discoverDetailPanel_1vpw3_653 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_1vpw3_660 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_1vpw3_665 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_1vpw3_670 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_1vpw3_675 {\n margin: var(--wb-len-16) 0 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverSection_1vpw3_681 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_1vpw3_688 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_1vpw3_694 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_1vpw3_699 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--wb-len-16);\n min-height: var(--wb-len-44);\n padding: var(--wb-len-8) var(--wb-len-2);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverFactKind_1vpw3_709 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_1vpw3_715 {\n min-width: 0;\n margin: 0;\n text-align: end;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xs-13);\n}\n\n._discoverCode_1vpw3_723 {\n padding: var(--wb-len-2) var(--wb-len-6);\n border-radius: var(--wb-radius-6);\n background: var(--dsw-alias-bg-module-platform);\n font-family: var(--ds-font-family-code);\n font-size: var(--dsw-font-xxs-12-font-size);\n box-decoration-break: clone;\n}\n\n._discoverTags_1vpw3_732 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_1vpw3_739 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_1vpw3_739:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_1vpw3_749 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_1vpw3_757 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverVersionName_1vpw3_765 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_1vpw3_770 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverFailure_1vpw3_779 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_1vpw3_785 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverNotice_1vpw3_794 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverNotice_1vpw3_794 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_1vpw3_812 {\n align-self: center;\n}\n\n._discoverTransport_1vpw3_816 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_1vpw3_822 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_1vpw3_829 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_1vpw3_822 ._discoverTransportKind_1vpw3_834 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_1vpw3_822 ._discoverTransportState_1vpw3_839 {\n margin-left: 0;\n}\n\n._discoverTransportHead_1vpw3_822 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_1vpw3_847 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_1vpw3_847 {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n}\n\n._discoverTransportRow_1vpw3_847:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_1vpw3_847:has(._discoverTransportRadio_1vpw3_868:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_1vpw3_847:has(._discoverTransportRadio_1vpw3_868:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_1vpw3_868 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_1vpw3_834 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_1vpw3_839 {\n flex: none;\n margin-left: auto;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='ok'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='auth'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='unreachable'] ._discoverTransportState_1vpw3_839,\n._discoverTransportRow_1vpw3_847[data-state='unknown'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_1vpw3_908 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_1vpw3_914 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_1vpw3_919 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverInstallText_1vpw3_930 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_1vpw3_936 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_1vpw3_940 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_1vpw3_946 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_1vpw3_954 {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wb-len-12);\n padding: var(--wb-len-10) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverSourceConfirm_1vpw3_963 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_1vpw3_969 {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: var(--wb-len-10);\n min-width: 0;\n cursor: pointer;\n}\n\n._discoverSourceRadio_1vpw3_978 {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._discoverSourceMain_1vpw3_986 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_1vpw3_994 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverSourceUrl_1vpw3_1002 {\n display: block;\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverSourceMore_1vpw3_1012 {\n flex: none;\n}\n\n._discoverSourceLoading_1vpw3_1016 {\n display: flex;\n flex: none;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceHint_1vpw3_1026 {\n display: flex;\n flex-basis: 100%;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverSourceHint_1vpw3_1026 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_1vpw3_1040 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_1vpw3_1046 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_1vpw3_1052 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_1vpw3_1057 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_1vpw3_1063 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_1vpw3_1068 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_1vpw3_1074 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_1vpw3_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_1vpw3_472._discoverSkeletonFill_1vpw3_1074 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_1vpw3_1083 {\n display: block;\n height: var(--wb-len-12);\n margin: var(--wb-len-4) 0;\n border-radius: var(--dsw-radius-xs);\n}\n\n._discoverSkeletonTitle_1vpw3_1090 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_1vpw3_1094 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_1vpw3_1 {\n 0% {\n opacity: 1;\n }\n 40% {\n opacity: 0.6;\n }\n 80%,\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._discoverSkeletonFill_1vpw3_1074 {\n animation: none;\n }\n}\n\n._block_mxnbc_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-2) 0 var(--wb-len-8);\n min-width: 0;\n}\n\n._head_mxnbc_9 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._title_mxnbc_16 {\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._fact_mxnbc_22 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._actions_mxnbc_30 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-2);\n margin-left: calc(-1 * var(--wb-len-8));\n}\n\n._hint_mxnbc_38 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._output_mxnbc_44 {\n margin-top: var(--wb-len-2);\n min-width: 0;\n}\n._check_1g6tv_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n min-width: 0;\n}\n\n._status_1g6tv_8 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-caption);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n._button_1g6tv_15 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n}\n\n._icon_1g6tv_22 {\n display: inline-flex;\n}\n\n@media (max-width: 720px) {\n ._status_1g6tv_8 {\n display: none;\n }\n}\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1lv8f_1 {\n justify-content: center;\n width: 100%;\n height: var(--wb-len-40);\n border-radius: var(--dsw-radius-md);\n}\n\n._dialog_1lv8f_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1lv8f_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1lv8f_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1lv8f_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1lv8f_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._input_1lv8f_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1lv8f_45 {\n height: var(--wb-len-32);\n margin-left: var(--wb-len-26);\n padding: 0 var(--wb-len-10);\n}\n\n._options_1lv8f_51 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8) var(--wb-len-12);\n}\n\n._guideToggle_1lv8f_59 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-4);\n align-self: flex-start;\n margin-top: var(--wb-len-4);\n padding: 0;\n border: 0;\n background: transparent;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._guideToggle_1lv8f_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1lv8f_59 svg,\n._registryToggle_1lv8f_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1lv8f_59[aria-expanded='true'] svg,\n._registryToggle_1lv8f_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1lv8f_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1lv8f_78 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n height: var(--wb-len-26);\n padding: 0 var(--wb-len-8) 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n font: inherit;\n font-size: var(--wb-font-12-5);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._registryToggle_1lv8f_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1lv8f_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1lv8f_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1lv8f_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1lv8f_45 {\n position: fixed;\n z-index: var(--wb-z-1100);\n box-sizing: border-box;\n width: min(var(--wb-len-440), 100vw - var(--wb-len-24));\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-12);\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-2);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n box-shadow: var(--dsw-elevation-prominent);\n}\n\n._registryOption_1lv8f_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid transparent;\n border-radius: var(--dsw-radius-lg);\n cursor: pointer;\n}\n\nlabel._registryOption_1lv8f_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1lv8f_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1lv8f_143[data-checked='true'] {\n border-color: color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._registryOption_1lv8f_143 input[type='radio'] {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._registryTitle_1lv8f_179 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n font: var(--dsw-font-xs-13);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n._registryHint_1lv8f_189 {\n margin-left: var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._inputError_1lv8f_197 {\n margin: var(--wb-len-neg-4) 0 0 var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._guide_1lv8f_59 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._guideList_1lv8f_214 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._guideItem_1lv8f_223 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0;\n}\n\n._guideIndex_1lv8f_230 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._guideMain_1lv8f_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1lv8f_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1lv8f_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1lv8f_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1lv8f_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1lv8f_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1lv8f_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1lv8f_285 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0 var(--wb-len-4);\n text-align: center;\n}\n\n._heroIcon_1lv8f_294 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-44);\n height: var(--wb-len-44);\n color: var(--dsw-alias-label-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1lv8f_311 {\n margin: 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 500;\n color: var(--dsw-alias-label-secondary);\n}\n\n._wizardTitle_1lv8f_319 {\n margin: 0;\n font-size: var(--wb-font-18);\n line-height: var(--wb-len-26);\n font-weight: 600;\n}\n\n._subject_1lv8f_326 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n text-align: center;\n}\n\n._subjectName_1lv8f_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1lv8f_343,\n._subjectDesc_1lv8f_344 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._result_1lv8f_351,\n._resultWarn_1lv8f_352 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._resultWarn_1lv8f_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._resultMeta_1lv8f_365 {\n margin: 0;\n padding: 0 var(--wb-len-12);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._approval_1lv8f_373 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-state-warn-primary);\n border-radius: var(--dsw-radius-lg);\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._approvalTitle_1lv8f_383 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._approvalText_1lv8f_390 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1lv8f_396 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n font-weight: 600;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._note_1lv8f_403 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._noteWarn_1lv8f_410 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1lv8f_414 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1lv8f_418 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._detailLabel_1lv8f_425 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1lv8f_425 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-3);\n font-family: var(--dsw-font-mono, monospace);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n._note_1enlz_1 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._note_1enlz_1 > svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n._slot_1t7dx_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1t7dx_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1t7dx_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1t7dx_31 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._paused_1t7dx_35 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._trouble_1t7dx_39 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._pulse_1t7dx_43 {\n animation: _wb-debug-breathe_1t7dx_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-debug-breathe_1t7dx_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1t7dx_43 {\n animation: none;\n }\n}\n\n._entry_1t7dx_64 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1t7dx_71 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1t7dx_78 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1t7dx_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: 0;\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n}\n\n._act_1t7dx_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1t7dx_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._actStop_1t7dx_110:hover,\n._actStop_1t7dx_110:focus-visible {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._actArmed_1t7dx_115,\n._actArmed_1t7dx_115:hover,\n._actArmed_1t7dx_115:focus-visible {\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n width: auto;\n color: var(--dsw-alias-state-error-primary);\n gap: var(--wb-len-4);\n padding: 0 var(--wb-len-7);\n}\n\n._actLabel_1t7dx_125 {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._entryLine_1t7dx_131 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1t7dx_138 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1t7dx_150 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1t7dx_156 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1t7dx_162 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._slot_1gkj9_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1gkj9_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1gkj9_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1gkj9_31 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._done_1gkj9_35 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._pulse_1gkj9_39 {\n animation: _wb-record-breathe_1gkj9_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-record-breathe_1gkj9_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1gkj9_39 {\n animation: none;\n }\n}\n\n._entry_1gkj9_60 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1gkj9_67 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1gkj9_74 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1gkj9_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-22);\n padding: 0 var(--wb-len-7);\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._act_1gkj9_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1gkj9_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._entryLine_1gkj9_108 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1gkj9_115 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1gkj9_127 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1gkj9_133 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1gkj9_139 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._item_lyox9_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n}\n\n._item_lyox9_1 + ._item_lyox9_1 {\n padding-top: var(--wb-len-14);\n border-top: var(--wb-len-0-5) solid var(--dsw-alias-settings-card-stroke);\n}\n\n._head_lyox9_12 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._title_lyox9_19 {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._description_lyox9_31 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._rows_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._row_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-settings-card-stroke);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-settings-card-fill);\n}\n\n._head_85r3w_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._pick_85r3w_27 {\n flex: 0 1 auto;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._pick_85r3w_27 > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._code_85r3w_39 {\n --dsl-code-block-background: var(--dsw-alias-bg-layer-1);\n margin: 0;\n}\n\n._missing_85r3w_44,\n._conflict_85r3w_45 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-warn-primary);\n}\n._body_11oac_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._sources_11oac_7 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._sourcesLabel_11oac_14 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\nbutton._sourceOn_11oac_19 {\n border-color: var(--dsw-alias-brand-primary);\n}\n._sourceCount_11oac_22 {\n margin-left: var(--wb-len-4);\n font-variant-numeric: tabular-nums;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._reading_11oac_29 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._status_11oac_35 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failure_11oac_45 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n column-gap: var(--wb-len-10);\n row-gap: var(--wb-len-2);\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n\n._failureTitle_11oac_55 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._failureHint_11oac_62 {\n grid-column: 1;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failureAction_11oac_67 {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n}\n\n._foot_11oac_73 {\n display: flex;\n justify-content: flex-end;\n}\n._body_lox98_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._field_lox98_7 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._input_lox98_13 {\n width: 100%;\n}\n\n._label_lox98_17 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\n._hint_lox98_22 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._copy_lox98_28 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-8) var(--wb-len-16);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n._copy_lox98_28 legend {\n padding: 0;\n margin-bottom: var(--wb-len-6);\n}\n\n._actions_lox98_42 {\n display: flex;\n justify-content: flex-end;\n}\n\n._commandLabel_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n}\n\n._command_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-6) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow-wrap: anywhere;\n}\n._body_zi2j5_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._lead_zi2j5_7 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._title_zi2j5_14 {\n font-size: var(--wb-font-18);\n line-height: var(--wb-line-24);\n}\n._hint_zyzt3_1[hidden],\n._actions_zyzt3_2[hidden],\n._progress_zyzt3_3[hidden],\n._commandRow_zyzt3_4[hidden],\n._bridge_zyzt3_5[hidden],\n._raw_zyzt3_6[hidden] {\n display: none;\n}\n\n._gate_zyzt3_10 {\n position: fixed;\n inset: 0;\n z-index: var(--wb-z-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--wb-len-24);\n background: var(--dsw-alias-bg-base);\n}\n\n._card_zyzt3_21 {\n width: 100%;\n max-width: var(--wb-len-420);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-16);\n text-align: center;\n}\n\n._card_zyzt3_21:has(._actions_zyzt3_2:not([hidden])),\n._card_zyzt3_21:has(._bridge_zyzt3_5:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_zyzt3_36 {\n margin: 0;\n font-size: var(--dsw-font-base-16-font-size);\n line-height: var(--wb-line-24);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._steps_zyzt3_51 {\n list-style: none;\n margin: var(--wb-len-6) 0 0;\n padding: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n text-align: left;\n}\n\n._step_zyzt3_51 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-6) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._step_zyzt3_51[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_zyzt3_78 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-14);\n height: var(--wb-len-14);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._step_zyzt3_51[data-status='ok'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_zyzt3_51[data-status='warn'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_zyzt3_51[data-status='failed'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_zyzt3_103 {\n flex: none;\n}\n\n._detail_zyzt3_107 {\n margin-left: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._progress_zyzt3_3 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._elapsed_zyzt3_125 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._error_zyzt3_133 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n max-height: var(--wb-len-120);\n overflow: auto;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n white-space: pre-wrap;\n word-break: break-all;\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._commandRow_zyzt3_4 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n margin: 0 0 var(--wb-len-8);\n padding-right: var(--wb-len-4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._copy_zyzt3_159 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._copy_zyzt3_159:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_zyzt3_4 {\n flex: 1;\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-primary);\n}\n\n._buttons_zyzt3_192 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_zyzt3_199 {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n justify-content: center;\n background: var(--dsw-alias-bg-base);\n}\n\n._button_zyzt3_192 {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n\n._button_zyzt3_192:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_zyzt3_192:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_zyzt3_2,\n._bridge_zyzt3_5 {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-14) var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-1);\n text-align: left;\n}\n\n._fixTitle_zyzt3_250 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._actions_zyzt3_2 ._hint_zyzt3_1,\n._bridge_zyzt3_5 ._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._actions_zyzt3_2 ._commandRow_zyzt3_4,\n._bridge_zyzt3_5 ._commandRow_zyzt3_4 {\n margin: 0;\n}\n\n._actions_zyzt3_2 ._buttons_zyzt3_192,\n._bridge_zyzt3_5 ._buttons_zyzt3_192 {\n justify-content: flex-start;\n}\n\n._raw_zyzt3_6 {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._rawSummary_zyzt3_286 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_zyzt3_2 ._error_zyzt3_133,\n._bridge_zyzt3_5 ._error_zyzt3_133 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_zyzt3_296 {\n margin: 0;\n padding-left: var(--wb-len-18);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._bridgeLine_zyzt3_296 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_zyzt3_313 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_zyzt3_313::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_zyzt3_313:hover {\n text-decoration: underline;\n}\n\n._loading_zyzt3_327 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_zyzt3_327[hidden] {\n display: none;\n}\n\n._loadingMotion_zyzt3_336 {\n transform-origin: center;\n animation: _wb-spin_zyzt3_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_zyzt3_341,\n._loadingArc_zyzt3_342 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_zyzt3_341 {\n opacity: 0.25;\n}\n\n._loadingArc_zyzt3_342 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_zyzt3_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_zyzt3_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_zyzt3_1 {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }\n to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._loadingMotion_zyzt3_336,\n ._loadingArc_zyzt3_342 {\n animation: none;\n }\n}\n._changelog_1q6pj_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-10);\n min-width: 0;\n}\n\n._changelogTitle_1q6pj_9 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._changelogMissing_1q6pj_15 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._changelogBody_1q6pj_21 {\n max-height: var(--wb-len-320);\n overflow: auto;\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._actions_smeq7_1 {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--wb-len-8);\n max-width: 100%;\n}\n\n._action_smeq7_1 {\n flex: none;\n white-space: nowrap;\n}\n\n@container (max-width: 340px) {\n ._actions_smeq7_1 {\n flex-direction: column;\n width: var(--wb-len-220);\n max-width: 100%;\n }\n\n ._action_smeq7_1 {\n width: 100%;\n }\n}\n._trigger_15ptp_1 {\n display: flex;\n align-items: center;\n}\n\n._pop_15ptp_6 {\n position: absolute;\n top: calc(var(--wb-len-38) + var(--wb-len-8));\n right: var(--wb-len-6);\n z-index: var(--wb-z-30);\n width: min(var(--wb-len-360), calc(100% - var(--wb-len-12)));\n max-width: calc(100vw - var(--wb-len-48));\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-2);\n box-shadow: var(--dsw-shadow-lv3);\n overflow: hidden;\n}\n\n._head_15ptp_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10) var(--wb-len-12) var(--wb-len-9) var(--wb-len-14);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._title_15ptp_28 {\n flex: 1;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._rowControls_15ptp_36 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._reset_15ptp_43 {\n flex: none;\n padding: var(--wb-len-3) var(--wb-len-8);\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._reset_15ptp_43:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_15ptp_43:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_15ptp_65 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._row_15ptp_36 {\n position: relative;\n display: grid;\n grid-template-columns: 12px minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-sm);\n cursor: default;\n}\n\n._rowDragging_15ptp_85 {\n cursor: grabbing;\n}\n\n._rowBlocked_15ptp_89 {\n cursor: not-allowed;\n}\n\n._listDragging_15ptp_93 ._rowControls_15ptp_36 {\n pointer-events: none;\n}\n\n._row_15ptp_36:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOff_15ptp_101 {\n opacity: 0.55;\n}\n\n._rowOff_15ptp_101:hover {\n opacity: 1;\n}\n\n._rowOver_15ptp_109::before {\n content: '';\n position: absolute;\n top: var(--wb-len-neg-3);\n left: var(--wb-len-8);\n right: var(--wb-len-8);\n height: var(--wb-len-2);\n background: var(--dsw-alias-brand-primary);\n}\n\n._ghost_15ptp_119 {\n position: fixed;\n z-index: var(--wb-z-40);\n pointer-events: none;\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--wb-static-shadow-ghost);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n white-space: nowrap;\n}\n\n._grip_15ptp_134 {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: center;\n color: var(--dsw-alias-label-tertiary);\n user-select: none;\n cursor: grab;\n touch-action: none;\n}\n\n._gripDragging_15ptp_144 {\n cursor: grabbing;\n}\n\n._gripBlocked_15ptp_148 {\n cursor: not-allowed;\n}\n\n._label_15ptp_152 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_15ptp_159 {\n min-width: 0;\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n\n._error_15ptp_170 {\n margin: 0;\n padding: 0 var(--wb-len-14) var(--wb-len-10);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._dep_15ptp_178 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n._group_15ptp_186 {\n padding-top: var(--wb-len-6);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._groupTitle_15ptp_191 {\n margin: 0;\n padding: var(--wb-len-2) var(--wb-len-8) 0 var(--wb-len-14);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n font-weight: 400;\n color: var(--dsw-alias-label-tertiary);\n}\n._panel_1whum_1 {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: var(--wb-z-10);\n visibility: hidden;\n}\n\n._panel_1whum_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1whum_1[data-open] {\n visibility: visible;\n}\n\n._columns_1whum_18 {\n display: block;\n column-gap: var(--wb-len-12);\n}\n\n._cell_1whum_23 {\n display: flow-root;\n min-width: 0;\n break-inside: avoid;\n margin-bottom: var(--wb-len-12);\n}\n._root_1cmz0_1 {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}\n\n._rail_1cmz0_7 {\n margin: 0 0 var(--wb-len-4);\n}\n\n._glyphBox_1cmz0_11 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n._glyph_1cmz0_11 {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._glyphActive_1cmz0_30 {\n color: var(--dsw-alias-state-business-primary);\n}\n\n._triggerName_1cmz0_34 {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n._dir_1cmz0_45 {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._name_1cmz0_53 {\n flex: 0 1 auto;\n max-width: 50%;\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._triggerName_1cmz0_34 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._row_1cmz0_66 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n width: 100%;\n min-width: 0;\n}\n\n._trailing_1cmz0_74 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n margin-inline-start: auto;\n}\n\n._trailing_1cmz0_74 ._rowAction_1cmz0_84 {\n width: var(--wb-len-20);\n min-width: var(--wb-len-20);\n height: var(--wb-len-20);\n min-height: var(--wb-len-20);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n}\n\n._row_1cmz0_66 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._current_1cmz0_97 {\n flex: none;\n display: inline-flex;\n align-items: center;\n color: var(--dsw-alias-label-primary);\n}\n._dot_sosf1_1 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n._overlay_sosf1_8 {\n position: absolute;\n inset-block-start: var(--wb-len-neg-3);\n inset-inline-end: var(--wb-len-neg-3);\n}\n._tag_g9dg8_1 {\n flex: none;\n margin-inline-start: auto;\n}\n._dialog_1vye5_1 {\n width: min(var(--wb-len-420), 100%);\n}\n\n._stack_1vye5_5 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._input_1vye5_12 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-12);\n}\n\n._meta_1vye5_18 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n._dot_14w1n_1 {\n display: inline-flex;\n align-items: center;\n}\n\n._hover_14w1n_6 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._blocker_1oaj0_1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-20) var(--wb-len-16);\n text-align: center;\n}\n\n._icon_1oaj0_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_1oaj0_15 {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_1oaj0_23 {\n margin: 0;\n max-width: var(--wb-len-42em);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n text-wrap: pretty;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 {\n align-items: flex-start;\n gap: var(--wb-len-6);\n padding: var(--wb-len-4) 0 var(--wb-len-2);\n text-align: left;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._title_1oaj0_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._hint_1oaj0_23 {\n max-width: 100%;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._actions_1oaj0_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._raw_1oaj0_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_1oaj0_48 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-6);\n}\n\n._raw_1oaj0_52 {\n margin-top: var(--wb-len-10);\n width: 100%;\n max-width: var(--wb-len-360);\n text-align: left;\n}\n\n._notice_1oaj0_71 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--wb-len-10);\n margin: 0 0 var(--wb-len-10);\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-left: 2px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._notice_1oaj0_71._noticeFlat_1oaj0_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_1oaj0_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_1oaj0_98 {\n font-size: var(--wb-font-12-5);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._noticeHint_1oaj0_105 {\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._noticeActions_1oaj0_112 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-neg-2);\n}\n\n._failure_1oaj0_119 {\n margin: var(--wb-len-8) 0 0;\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._failureDetail_1oaj0_127 {\n display: block;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-label-tertiary);\n white-space: pre-wrap;\n}\n\n._inlineAction_1oaj0_134 {\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n._inlineAction_1oaj0_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n\n._rawText_1oaj0_146 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
16534
+ var COMPONENT_CSS_MARKER = ".wb-activityBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding-top: var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-activityBlock:first-child {\n padding-top: 0;\n border-top: none;\n}\n\n.wb-activityBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}\n\n.wb-activityLine {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-activityLineText {\n flex: none;\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n max-height: var(--wb-len-72);\n overflow-y: auto;\n}\n\n.wb-activityLineAt {\n flex: none;\n margin-left: auto;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-activityLine > .wb-activityLineAt,\n.wb-activityLine > .wb-activityLineActions {\n margin-left: auto;\n}\n\n.wb-activityLine > .wb-activityLineAt + .wb-activityLineActions {\n margin-left: 0;\n}\n\n.wb-activityLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-activityActionFailed {\n color: var(--dsw-alias-state-error-primary);\n}\n.wb-note {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-problem {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: grid;\n grid-template-columns: minmax(var(--wb-len-56), auto) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-2);\n align-items: baseline;\n margin: 0;\n}\n.wb-approvalRow {\n display: contents;\n}\n.wb-approvalLabel {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n.wb-cardHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-8) var(--wb-card-gutter);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-cardTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-cardMeta {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-cardMeta::before {\n content: '\\00b7';\n margin-right: var(--wb-len-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen ~ .wb-cardRefresh {\n margin-left: 0;\n}\n\n.wb-cardOpen:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh {\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardRefresh:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-cardGear {\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-3);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardGear:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n.wb-card {\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: none;\n}\n.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-card-gutter);\n font-size: var(--dsw-font-xxs-12-font-size);\n}\n.wb-cardBleed {\n margin-inline: calc(-1 * var(--wb-card-gutter));\n}\n._anchor_yq4s2_1 {\n display: contents;\n}\n.wb-spinner {\n display: inline-flex;\n align-items: center;\n flex: none;\n}\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n background: transparent;\n}\n\n.wb-choiceMenu[data-variant='boxed'] {\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-choiceOption {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-choiceOptionOn {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-checkbox {\n position: absolute;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.wb-checkboxBox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xs);\n corner-shape: round;\n color: var(--dsw-alias-label-primary-foreground);\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-choiceOption:hover .wb-checkboxBox {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-checkbox:checked + .wb-checkboxBox {\n border-color: var(--dsw-alias-brand-primary);\n background: var(--dsw-alias-brand-primary);\n}\n\n.wb-checkbox:disabled + .wb-checkboxBox {\n cursor: default;\n}\n\n.wb-checkbox:focus-visible + .wb-checkboxBox {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.wb-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceOption:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n\n.wb-choiceOption:has(:disabled),\n.wb-choiceOption:has(:disabled):hover {\n background: transparent;\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.wb-choiceLabelText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceLabel:has(.wb-choiceDescription) .wb-choiceLabelText {\n overflow: visible;\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.wb-choiceDescription {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n.wb-choiceLoading {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-choiceLoadingText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceEmpty {\n display: flex;\n align-items: center;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio {\n appearance: none;\n -webkit-appearance: none;\n flex: none;\n box-sizing: border-box;\n width: var(--wb-len-12);\n height: var(--wb-len-12);\n margin: 0;\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: 50%;\n corner-shape: round;\n background-color: transparent;\n cursor: pointer;\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-radio:not(:checked):hover {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio:checked {\n border-color: var(--dsw-alias-brand-primary);\n background-image: radial-gradient(\n circle at center,\n var(--dsw-alias-brand-primary) 0 3px,\n transparent 3px\n );\n}\n\n.wb-radio:disabled {\n cursor: default;\n}\n\n.wb-radio:focus-visible {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.wb-formActions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n\n.wb-formActionDanger {\n color: var(--dsw-alias-state-error-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n.wb-rows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n}\n.wb-rows > :not(.wb-row) {\n grid-column: 1 / -1;\n}\n.wb-row {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}\n.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.wb-rowKey {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-rowValue {\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-rows > .wb-row {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-rows > .wb-row {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-confirmBar {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-confirmBarTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 600;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-confirmBarHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.wb-field {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n.wb-fieldLabel {\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-fieldHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-field:has(:disabled) .wb-fieldLabel {\n opacity: 0.4;\n}\n.wb-formRows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-12);\n}\n\n.wb-formRows > :not(.wb-formRow) {\n grid-column: 1 / -1;\n}\n\n.wb-formRow {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: center;\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-8);\n}\n\n.wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n align-items: stretch;\n gap: var(--wb-len-6);\n}\n\n.wb-formRows > .wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.wb-formLabel {\n justify-self: start;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: nowrap;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formLabel {\n white-space: normal;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formHint,\n.wb-formRow[data-layout='stacked'] .wb-formProblem {\n grid-column: 1 / -1;\n}\n\n.wb-formControl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.wb-formControl\n > :where(\n .wb-selectAnchor,\n .wb-choiceMenu,\n input:not(\n [type='checkbox'],\n [type='radio'],\n [type='button'],\n [type='submit'],\n [type='reset'],\n [type='image'],\n [type='color'],\n [type='range']\n ),\n select,\n textarea\n ) {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n}\n\n.wb-formHint {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-formProblem {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(.wb-formProblem) .wb-formLabel {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(:disabled) .wb-formLabel {\n opacity: 0.4;\n}\n\n.wb-formRows > .wb-formRow {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-formRows > .wb-formRow {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-form {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n width: 100%;\n}\n:where(.wb-link) {\n margin-left: var(--wb-len-2);\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: baseline;\n}\n\n:where(.wb-link:hover) {\n text-decoration: underline;\n}\n\n:where(.wb-link:focus-visible) {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n.wb-longTask {\n padding-top: var(--wb-len-12);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n.wb-longTaskHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n}\n\n.wb-longTaskLink {\n flex: none;\n}\n\n.wb-longTaskHeadline {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-longTaskProblem {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-longTaskDump {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-longTaskDump pre {\n margin: var(--wb-len-4) 0 0;\n max-height: var(--wb-len-220);\n overflow: auto;\n}\n\n.wb-longTaskStop {\n display: inline-flex;\n flex: none;\n align-items: center;\n align-self: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n padding: 0;\n margin-left: auto;\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-specific-menu);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-longTaskStop:hover:not(:disabled),\n.wb-longTaskStop:focus-visible {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStop:disabled {\n cursor: default;\n}\n\n.wb-longTaskStopArmed,\n.wb-longTaskStopArmed:hover:not(:disabled),\n.wb-longTaskStopArmed:focus-visible {\n gap: var(--wb-len-4);\n width: auto;\n padding: 0 var(--wb-len-7);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStopLabel {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n.wb-longTaskStopWhy {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-centered.wb-centeredCompact {\n flex: none;\n min-height: 0;\n gap: var(--wb-len-8);\n padding: var(--wb-len-20) var(--wb-len-16);\n}\n\n.wb-centered.wb-centeredCompact .wb-centeredHero {\n margin-bottom: var(--wb-len-4);\n}\n\n.wb-skeleton {\n display: flex;\n flex-direction: column;\n}\n\n.wb-skeletonRow {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-skeletonRow + .wb-skeletonRow::before {\n content: '';\n align-self: stretch;\n height: var(--wb-len-0-5);\n margin: 0 var(--wb-len-8) var(--wb-len-neg-0-5);\n background: var(--dsw-alias-border-l2);\n}\n\n.wb-skeletonBar {\n display: block;\n height: var(--wb-len-13);\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-bg-skeleton);\n animation: wb-skeleton-pulse var(--wb-dur-1-4) var(--ds-ease-in-out) infinite;\n}\n\n.wb-skeletonBarTitle {\n width: 62%;\n}\n\n.wb-skeletonBarMeta {\n width: 32%;\n height: var(--wb-len-10);\n}\n\n.wb-skeletonRow:nth-child(2n) .wb-skeletonBarTitle {\n width: 74%;\n}\n\n.wb-skeletonRow:nth-child(3n) .wb-skeletonBarTitle {\n width: 52%;\n}\n\n@keyframes wb-skeleton-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.wb-centered {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--wb-len-14);\n flex: 1;\n min-height: var(--wb-len-240);\n padding: 0 var(--wb-len-24) var(--wb-len-24);\n text-align: center;\n}\n\n.wb-centeredHero {\n display: flex;\n margin-bottom: var(--wb-len-16);\n color: var(--dsw-alias-label-dimmed);\n}\n\n.wb-centeredTitle {\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-centeredHint {\n max-width: var(--wb-len-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-centeredDetail {\n max-width: var(--wb-len-320);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-dimmed);\n word-break: break-all;\n}\n\n.wb-centeredAction {\n display: flex;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}\n.wb-textField {\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n outline: none;\n}\n\n.wb-textField:focus {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-textField:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-textField[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-textField[aria-invalid='true']:focus {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n:where(.wb-textField) {\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n}\n:where(.wb-selectTrigger) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n text-align: left;\n cursor: pointer;\n}\n\n.wb-selectTrigger:focus-visible {\n outline: none;\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true']:focus-visible {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-selectLoading:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n background: transparent;\n font-size: var(--wb-font-row);\n}\n\n.wb-selectGhost:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-selectGhost:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n border-color: transparent;\n box-shadow: none;\n}\n\n.wb-selectIconOnly {\n width: var(--wb-len-36);\n height: var(--wb-len-36);\n min-height: 0;\n gap: 0;\n padding: 0;\n justify-content: center;\n}\n\n.wb-selectIconOnly .wb-selectIcon {\n width: 100%;\n height: 100%;\n}\n\n.wb-selectAnchor {\n display: block;\n width: 100%;\n}\n\n.wb-selectIcon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectValue {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n.wb-selectPlaceholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n}\n\n.wb-selectMenu {\n min-width: var(--wb-len-240);\n max-width: var(--wb-len-360);\n max-height: min(var(--wb-len-320), calc(100vh - var(--wb-len-24)));\n}\n\n:where(.wb-selectSearch) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n.wb-selectSearch:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectSearch.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: 0.5px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-selectSearch.wb-selectGhost:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: none;\n}\n\n.wb-selectSearchIcon {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-textField.wb-selectSearchInput {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n.wb-textField.wb-selectSearchInput:focus {\n box-shadow: none;\n}\n\n.wb-selectFallback {\n width: 100%;\n}\n\n.wb-selectHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\nsection.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-len-16);\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-settings-card-fill);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.wb-settings .wb-settingsTitle {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-strong-14-font-size);\n line-height: var(--wb-line-24);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\n.wb-stateBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-stateBlockTitle {\n margin: 0;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n.wb-stateBlockHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-stateBlockActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n.wb-stateBlockResolving {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_2or0c_1 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._marketRow_2or0c_10 {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n column-gap: var(--wb-len-14);\n row-gap: var(--wb-len-4);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketIcon_2or0c_20 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_2or0c_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_2or0c_39 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketStatus_2or0c_48 {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketStateText_2or0c_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_2or0c_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_2or0c_66 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketName_2or0c_39 ._marketVersion_2or0c_72 {\n margin-left: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n}\n\n._marketVersion_2or0c_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_2or0c_72::before {\n content: '';\n display: inline-block;\n width: var(--wb-len-1);\n height: var(--wb-len-10);\n margin: 0 var(--wb-len-8) 0 var(--wb-len-2);\n vertical-align: -1px;\n background: var(--dsw-alias-border-l2);\n}\n\n._marketLocalTag_2or0c_94 {\n margin-left: var(--wb-len-8);\n padding: 0 var(--wb-len-6);\n border: var(--wb-len-1) solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-caption);\n}\n\n._marketEnd_2or0c_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_2or0c_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_2or0c_112::before {\n content: '';\n width: 0;\n height: var(--wb-len-14);\n border-left: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketActions_2or0c_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_2or0c_131 {\n color: var(--dsw-alias-state-warn-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._marketSelfDivider_2or0c_137 {\n height: 0;\n margin-top: calc(0px - var(--wb-len-16));\n border-top: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketSection_2or0c_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_2or0c_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_2or0c_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_2or0c_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_2or0c_169 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionAction_2or0c_175 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n margin-left: auto;\n min-width: 0;\n}\n\n._marketSectionQuiet_2or0c_183 ._marketSectionTitle_2or0c_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_2or0c_183 ._marketName_2or0c_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_2or0c_183 ._marketIcon_2or0c_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketProgress_2or0c_195 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-height: var(--wb-len-32);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketNote_2or0c_205 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-warn-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailure_2or0c_212 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailureSeat_2or0c_219 {\n grid-column: 2 / -1;\n min-width: 0;\n}\n\n._marketEmpty_2or0c_224 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_2or0c_229 {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-32);\n padding: 0 clamp(var(--wb-len-24), 4vw, var(--wb-len-48)) var(--wb-len-48);\n overflow-x: hidden;\n overflow-y: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_2or0c_229 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_2or0c_247 {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-16);\n padding-top: var(--wb-len-28);\n}\n\n._marketPageTitle_2or0c_255 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_2or0c_260 {\n margin: var(--wb-len-4) 0 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketPageTools_2or0c_266 {\n flex: none;\n align-self: center;\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: var(--wb-len-16);\n}\n\n._marketPanel_2or0c_275 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_2or0c_275[hidden] {\n display: none;\n}\n\n._marketTabs_2or0c_285 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_2or0c_290 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_2or0c_295 {\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n border-radius: var(--dsw-radius-md);\n}\n\n._marketEmpty_2or0c_224 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) var(--wb-len-16);\n text-align: center;\n}\n\n._marketEmptyTitle_2or0c_312 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_2or0c_317 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_2or0c_324 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_2or0c_331 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_2or0c_337 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_2or0c_342 {\n min-width: 0;\n max-width: var(--wb-len-240);\n margin-left: calc(0px - var(--wb-len-8));\n font-weight: 500;\n}\n\n._discoverMarketName_2or0c_349 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_2or0c_355 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_2or0c_360 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_2or0c_365 {\n flex: none;\n}\n\n._discoverSearch_2or0c_369 {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 var(--wb-len-120);\n min-width: var(--wb-len-120);\n}\n\n._discoverSearchField_2or0c_377 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_2or0c_382 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_2or0c_377 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_2or0c_369 ._discoverSearchClear_2or0c_391 {\n position: absolute;\n top: 50%;\n inset-inline-end: var(--wb-len-4);\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n transform: translateY(-50%);\n}\n\n._discoverSearchClear_2or0c_391:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_2or0c_331 {\n display: grid;\n grid-template-columns: minmax(0, auto) minmax(var(--wb-len-120), 1fr) auto;\n grid-template-areas:\n 'market search refresh'\n 'labels sort sort';\n }\n\n ._discoverMarket_2or0c_337 {\n grid-area: market;\n }\n\n ._discoverMarketButton_2or0c_342 {\n margin-left: 0;\n }\n\n ._discoverLabels_2or0c_355 {\n grid-area: labels;\n }\n\n ._discoverSearch_2or0c_369 {\n grid-area: search;\n }\n\n ._discoverSort_2or0c_360 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_2or0c_365 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_2or0c_442 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_2or0c_449 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._discoverCard_2or0c_458 {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n margin: 0 calc(0px - var(--wb-len-8));\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCard_2or0c_458:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_2or0c_472 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverArtworkImage_2or0c_484 {\n object-fit: contain;\n}\n\n._discoverMain_2or0c_488 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_2or0c_496 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverCardOpen_2or0c_504 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n}\n\n._discoverCardOpen_2or0c_504::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_2or0c_504:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_2or0c_504:focus-visible::after {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverStrong_2or0c_535 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_2or0c_541 {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverMeta_2or0c_550 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._discoverMuted_2or0c_557 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_2or0c_563 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverUpdateAction_2or0c_572 {\n color: var(--dsw-alias-state-warn-primary);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._discoverBlocked_2or0c_577 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_2or0c_582 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) 0;\n text-align: center;\n}\n\n._discoverEmptyTitle_2or0c_591 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_2or0c_582 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_2or0c_601 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_2or0c_607 {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n padding: 0;\n border: 0;\n background: 0 0;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--wb-font-12-5);\n cursor: pointer;\n}\n\n._discoverCrumb_2or0c_607:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_2or0c_607:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverCrumbIcon_2or0c_630 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_2or0c_634 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_2or0c_640 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_2or0c_646 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._discoverDetailPanel_2or0c_653 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_2or0c_660 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_2or0c_665 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_2or0c_670 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_2or0c_675 {\n margin: var(--wb-len-16) 0 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverSection_2or0c_681 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_2or0c_688 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_2or0c_694 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_2or0c_699 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--wb-len-16);\n min-height: var(--wb-len-44);\n padding: var(--wb-len-8) var(--wb-len-2);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverFactKind_2or0c_709 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_2or0c_715 {\n min-width: 0;\n margin: 0;\n text-align: end;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xs-13);\n}\n\n._discoverCode_2or0c_723 {\n padding: var(--wb-len-2) var(--wb-len-6);\n border-radius: var(--wb-radius-6);\n background: var(--dsw-alias-bg-module-platform);\n font-family: var(--ds-font-family-code);\n font-size: var(--dsw-font-xxs-12-font-size);\n box-decoration-break: clone;\n}\n\n._discoverTags_2or0c_732 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_2or0c_739 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_2or0c_739:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_2or0c_749 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_2or0c_757 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverVersionName_2or0c_765 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_2or0c_770 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-6);\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n white-space: pre-line;\n}\n\n._discoverFailure_2or0c_780 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_2or0c_786 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverNotice_2or0c_795 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverNotice_2or0c_795 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_2or0c_813 {\n align-self: center;\n}\n\n._discoverTransport_2or0c_817 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_2or0c_823 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_2or0c_830 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_2or0c_823 ._discoverTransportKind_2or0c_835 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_2or0c_823 ._discoverTransportState_2or0c_840 {\n margin-left: 0;\n}\n\n._discoverTransportHead_2or0c_823 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_2or0c_848 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_2or0c_848 {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n}\n\n._discoverTransportRow_2or0c_848:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_2or0c_848:has(._discoverTransportRadio_2or0c_869:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_2or0c_848:has(._discoverTransportRadio_2or0c_869:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_2or0c_869 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_2or0c_835 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_2or0c_840 {\n flex: none;\n margin-left: auto;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportRow_2or0c_848[data-state='ok'] ._discoverTransportState_2or0c_840 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_2or0c_848[data-state='auth'] ._discoverTransportState_2or0c_840 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_2or0c_848[data-state='unreachable'] ._discoverTransportState_2or0c_840,\n._discoverTransportRow_2or0c_848[data-state='unknown'] ._discoverTransportState_2or0c_840 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_2or0c_909 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_2or0c_915 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_2or0c_920 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverInstallText_2or0c_931 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_2or0c_937 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_2or0c_941 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_2or0c_947 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_2or0c_955 {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wb-len-12);\n padding: var(--wb-len-10) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverSourceConfirm_2or0c_964 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_2or0c_970 {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: var(--wb-len-10);\n min-width: 0;\n cursor: pointer;\n}\n\n._discoverSourceRadio_2or0c_979 {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._discoverSourceMain_2or0c_987 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_2or0c_995 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverSourceUrl_2or0c_1003 {\n display: block;\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverSourceMore_2or0c_1013 {\n flex: none;\n}\n\n._discoverSourceLoading_2or0c_1017 {\n display: flex;\n flex: none;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceHint_2or0c_1027 {\n display: flex;\n flex-basis: 100%;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverSourceHint_2or0c_1027 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_2or0c_1041 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_2or0c_1047 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_2or0c_1053 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_2or0c_1058 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_2or0c_1064 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_2or0c_1069 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_2or0c_1075 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_2or0c_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_2or0c_472._discoverSkeletonFill_2or0c_1075 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_2or0c_1084 {\n display: block;\n height: var(--wb-len-12);\n margin: var(--wb-len-4) 0;\n border-radius: var(--dsw-radius-xs);\n}\n\n._discoverSkeletonTitle_2or0c_1091 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_2or0c_1095 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_2or0c_1 {\n 0% {\n opacity: 1;\n }\n 40% {\n opacity: 0.6;\n }\n 80%,\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._discoverSkeletonFill_2or0c_1075 {\n animation: none;\n }\n}\n\n._block_mxnbc_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-2) 0 var(--wb-len-8);\n min-width: 0;\n}\n\n._head_mxnbc_9 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._title_mxnbc_16 {\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._fact_mxnbc_22 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._actions_mxnbc_30 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-2);\n margin-left: calc(-1 * var(--wb-len-8));\n}\n\n._hint_mxnbc_38 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._output_mxnbc_44 {\n margin-top: var(--wb-len-2);\n min-width: 0;\n}\n._check_1g6tv_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n min-width: 0;\n}\n\n._status_1g6tv_8 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-caption);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n._button_1g6tv_15 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n}\n\n._icon_1g6tv_22 {\n display: inline-flex;\n}\n\n@media (max-width: 720px) {\n ._status_1g6tv_8 {\n display: none;\n }\n}\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1lv8f_1 {\n justify-content: center;\n width: 100%;\n height: var(--wb-len-40);\n border-radius: var(--dsw-radius-md);\n}\n\n._dialog_1lv8f_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1lv8f_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1lv8f_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1lv8f_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1lv8f_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._input_1lv8f_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1lv8f_45 {\n height: var(--wb-len-32);\n margin-left: var(--wb-len-26);\n padding: 0 var(--wb-len-10);\n}\n\n._options_1lv8f_51 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8) var(--wb-len-12);\n}\n\n._guideToggle_1lv8f_59 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-4);\n align-self: flex-start;\n margin-top: var(--wb-len-4);\n padding: 0;\n border: 0;\n background: transparent;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._guideToggle_1lv8f_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1lv8f_59 svg,\n._registryToggle_1lv8f_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1lv8f_59[aria-expanded='true'] svg,\n._registryToggle_1lv8f_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1lv8f_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1lv8f_78 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n height: var(--wb-len-26);\n padding: 0 var(--wb-len-8) 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n font: inherit;\n font-size: var(--wb-font-12-5);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._registryToggle_1lv8f_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1lv8f_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1lv8f_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1lv8f_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1lv8f_45 {\n position: fixed;\n z-index: var(--wb-z-1100);\n box-sizing: border-box;\n width: min(var(--wb-len-440), 100vw - var(--wb-len-24));\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-12);\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-2);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n box-shadow: var(--dsw-elevation-prominent);\n}\n\n._registryOption_1lv8f_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid transparent;\n border-radius: var(--dsw-radius-lg);\n cursor: pointer;\n}\n\nlabel._registryOption_1lv8f_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1lv8f_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1lv8f_143[data-checked='true'] {\n border-color: color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._registryOption_1lv8f_143 input[type='radio'] {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._registryTitle_1lv8f_179 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n font: var(--dsw-font-xs-13);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n._registryHint_1lv8f_189 {\n margin-left: var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._inputError_1lv8f_197 {\n margin: var(--wb-len-neg-4) 0 0 var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._guide_1lv8f_59 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._guideList_1lv8f_214 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._guideItem_1lv8f_223 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0;\n}\n\n._guideIndex_1lv8f_230 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._guideMain_1lv8f_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1lv8f_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1lv8f_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1lv8f_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1lv8f_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1lv8f_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1lv8f_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1lv8f_285 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0 var(--wb-len-4);\n text-align: center;\n}\n\n._heroIcon_1lv8f_294 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-44);\n height: var(--wb-len-44);\n color: var(--dsw-alias-label-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1lv8f_311 {\n margin: 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 500;\n color: var(--dsw-alias-label-secondary);\n}\n\n._wizardTitle_1lv8f_319 {\n margin: 0;\n font-size: var(--wb-font-18);\n line-height: var(--wb-len-26);\n font-weight: 600;\n}\n\n._subject_1lv8f_326 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n text-align: center;\n}\n\n._subjectName_1lv8f_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1lv8f_343,\n._subjectDesc_1lv8f_344 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._result_1lv8f_351,\n._resultWarn_1lv8f_352 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._resultWarn_1lv8f_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._resultMeta_1lv8f_365 {\n margin: 0;\n padding: 0 var(--wb-len-12);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._approval_1lv8f_373 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-state-warn-primary);\n border-radius: var(--dsw-radius-lg);\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._approvalTitle_1lv8f_383 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._approvalText_1lv8f_390 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1lv8f_396 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n font-weight: 600;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._note_1lv8f_403 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._noteWarn_1lv8f_410 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1lv8f_414 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1lv8f_418 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._detailLabel_1lv8f_425 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1lv8f_425 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-3);\n font-family: var(--dsw-font-mono, monospace);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n._note_1enlz_1 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._note_1enlz_1 > svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n._slot_1t7dx_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1t7dx_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1t7dx_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1t7dx_31 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._paused_1t7dx_35 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._trouble_1t7dx_39 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._pulse_1t7dx_43 {\n animation: _wb-debug-breathe_1t7dx_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-debug-breathe_1t7dx_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1t7dx_43 {\n animation: none;\n }\n}\n\n._entry_1t7dx_64 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1t7dx_71 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1t7dx_78 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1t7dx_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: 0;\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n}\n\n._act_1t7dx_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1t7dx_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._actStop_1t7dx_110:hover,\n._actStop_1t7dx_110:focus-visible {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._actArmed_1t7dx_115,\n._actArmed_1t7dx_115:hover,\n._actArmed_1t7dx_115:focus-visible {\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n width: auto;\n color: var(--dsw-alias-state-error-primary);\n gap: var(--wb-len-4);\n padding: 0 var(--wb-len-7);\n}\n\n._actLabel_1t7dx_125 {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._entryLine_1t7dx_131 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1t7dx_138 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1t7dx_150 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1t7dx_156 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1t7dx_162 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._slot_1gkj9_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1gkj9_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1gkj9_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1gkj9_31 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._done_1gkj9_35 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._pulse_1gkj9_39 {\n animation: _wb-record-breathe_1gkj9_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-record-breathe_1gkj9_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1gkj9_39 {\n animation: none;\n }\n}\n\n._entry_1gkj9_60 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1gkj9_67 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1gkj9_74 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1gkj9_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-22);\n padding: 0 var(--wb-len-7);\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._act_1gkj9_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1gkj9_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._entryLine_1gkj9_108 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1gkj9_115 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1gkj9_127 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1gkj9_133 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1gkj9_139 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._item_lyox9_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n}\n\n._item_lyox9_1 + ._item_lyox9_1 {\n padding-top: var(--wb-len-14);\n border-top: var(--wb-len-0-5) solid var(--dsw-alias-settings-card-stroke);\n}\n\n._head_lyox9_12 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._title_lyox9_19 {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._description_lyox9_31 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._rows_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._row_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-settings-card-stroke);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-settings-card-fill);\n}\n\n._head_85r3w_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._pick_85r3w_27 {\n flex: 0 1 auto;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._pick_85r3w_27 > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._code_85r3w_39 {\n --dsl-code-block-background: var(--dsw-alias-bg-layer-1);\n margin: 0;\n}\n\n._missing_85r3w_44,\n._conflict_85r3w_45 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-warn-primary);\n}\n._body_11oac_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._sources_11oac_7 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._sourcesLabel_11oac_14 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\nbutton._sourceOn_11oac_19 {\n border-color: var(--dsw-alias-brand-primary);\n}\n._sourceCount_11oac_22 {\n margin-left: var(--wb-len-4);\n font-variant-numeric: tabular-nums;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._reading_11oac_29 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._status_11oac_35 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failure_11oac_45 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n column-gap: var(--wb-len-10);\n row-gap: var(--wb-len-2);\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n\n._failureTitle_11oac_55 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._failureHint_11oac_62 {\n grid-column: 1;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failureAction_11oac_67 {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n}\n\n._foot_11oac_73 {\n display: flex;\n justify-content: flex-end;\n}\n._body_lox98_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._field_lox98_7 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._input_lox98_13 {\n width: 100%;\n}\n\n._label_lox98_17 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\n._hint_lox98_22 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._copy_lox98_28 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-8) var(--wb-len-16);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n._copy_lox98_28 legend {\n padding: 0;\n margin-bottom: var(--wb-len-6);\n}\n\n._actions_lox98_42 {\n display: flex;\n justify-content: flex-end;\n}\n\n._commandLabel_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n}\n\n._command_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-6) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow-wrap: anywhere;\n}\n._body_zi2j5_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._lead_zi2j5_7 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._title_zi2j5_14 {\n font-size: var(--wb-font-18);\n line-height: var(--wb-line-24);\n}\n._hint_zyzt3_1[hidden],\n._actions_zyzt3_2[hidden],\n._progress_zyzt3_3[hidden],\n._commandRow_zyzt3_4[hidden],\n._bridge_zyzt3_5[hidden],\n._raw_zyzt3_6[hidden] {\n display: none;\n}\n\n._gate_zyzt3_10 {\n position: fixed;\n inset: 0;\n z-index: var(--wb-z-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--wb-len-24);\n background: var(--dsw-alias-bg-base);\n}\n\n._card_zyzt3_21 {\n width: 100%;\n max-width: var(--wb-len-420);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-16);\n text-align: center;\n}\n\n._card_zyzt3_21:has(._actions_zyzt3_2:not([hidden])),\n._card_zyzt3_21:has(._bridge_zyzt3_5:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_zyzt3_36 {\n margin: 0;\n font-size: var(--dsw-font-base-16-font-size);\n line-height: var(--wb-line-24);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._steps_zyzt3_51 {\n list-style: none;\n margin: var(--wb-len-6) 0 0;\n padding: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n text-align: left;\n}\n\n._step_zyzt3_51 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-6) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._step_zyzt3_51[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_zyzt3_78 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-14);\n height: var(--wb-len-14);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._step_zyzt3_51[data-status='ok'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_zyzt3_51[data-status='warn'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_zyzt3_51[data-status='failed'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_zyzt3_103 {\n flex: none;\n}\n\n._detail_zyzt3_107 {\n margin-left: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._progress_zyzt3_3 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._elapsed_zyzt3_125 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._error_zyzt3_133 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n max-height: var(--wb-len-120);\n overflow: auto;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n white-space: pre-wrap;\n word-break: break-all;\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._commandRow_zyzt3_4 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n margin: 0 0 var(--wb-len-8);\n padding-right: var(--wb-len-4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._copy_zyzt3_159 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._copy_zyzt3_159:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_zyzt3_4 {\n flex: 1;\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-primary);\n}\n\n._buttons_zyzt3_192 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_zyzt3_199 {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n justify-content: center;\n background: var(--dsw-alias-bg-base);\n}\n\n._button_zyzt3_192 {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n\n._button_zyzt3_192:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_zyzt3_192:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_zyzt3_2,\n._bridge_zyzt3_5 {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-14) var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-1);\n text-align: left;\n}\n\n._fixTitle_zyzt3_250 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._actions_zyzt3_2 ._hint_zyzt3_1,\n._bridge_zyzt3_5 ._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._actions_zyzt3_2 ._commandRow_zyzt3_4,\n._bridge_zyzt3_5 ._commandRow_zyzt3_4 {\n margin: 0;\n}\n\n._actions_zyzt3_2 ._buttons_zyzt3_192,\n._bridge_zyzt3_5 ._buttons_zyzt3_192 {\n justify-content: flex-start;\n}\n\n._raw_zyzt3_6 {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._rawSummary_zyzt3_286 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_zyzt3_2 ._error_zyzt3_133,\n._bridge_zyzt3_5 ._error_zyzt3_133 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_zyzt3_296 {\n margin: 0;\n padding-left: var(--wb-len-18);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._bridgeLine_zyzt3_296 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_zyzt3_313 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_zyzt3_313::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_zyzt3_313:hover {\n text-decoration: underline;\n}\n\n._loading_zyzt3_327 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_zyzt3_327[hidden] {\n display: none;\n}\n\n._loadingMotion_zyzt3_336 {\n transform-origin: center;\n animation: _wb-spin_zyzt3_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_zyzt3_341,\n._loadingArc_zyzt3_342 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_zyzt3_341 {\n opacity: 0.25;\n}\n\n._loadingArc_zyzt3_342 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_zyzt3_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_zyzt3_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_zyzt3_1 {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }\n to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._loadingMotion_zyzt3_336,\n ._loadingArc_zyzt3_342 {\n animation: none;\n }\n}\n._changelog_1q6pj_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-10);\n min-width: 0;\n}\n\n._changelogTitle_1q6pj_9 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._changelogMissing_1q6pj_15 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._changelogBody_1q6pj_21 {\n max-height: var(--wb-len-320);\n overflow: auto;\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._actions_smeq7_1 {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--wb-len-8);\n max-width: 100%;\n}\n\n._action_smeq7_1 {\n flex: none;\n white-space: nowrap;\n}\n\n@container (max-width: 340px) {\n ._actions_smeq7_1 {\n flex-direction: column;\n width: var(--wb-len-220);\n max-width: 100%;\n }\n\n ._action_smeq7_1 {\n width: 100%;\n }\n}\n._trigger_15ptp_1 {\n display: flex;\n align-items: center;\n}\n\n._pop_15ptp_6 {\n position: absolute;\n top: calc(var(--wb-len-38) + var(--wb-len-8));\n right: var(--wb-len-6);\n z-index: var(--wb-z-30);\n width: min(var(--wb-len-360), calc(100% - var(--wb-len-12)));\n max-width: calc(100vw - var(--wb-len-48));\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-2);\n box-shadow: var(--dsw-shadow-lv3);\n overflow: hidden;\n}\n\n._head_15ptp_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10) var(--wb-len-12) var(--wb-len-9) var(--wb-len-14);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._title_15ptp_28 {\n flex: 1;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._rowControls_15ptp_36 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._reset_15ptp_43 {\n flex: none;\n padding: var(--wb-len-3) var(--wb-len-8);\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._reset_15ptp_43:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_15ptp_43:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_15ptp_65 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._row_15ptp_36 {\n position: relative;\n display: grid;\n grid-template-columns: 12px minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-sm);\n cursor: default;\n}\n\n._rowDragging_15ptp_85 {\n cursor: grabbing;\n}\n\n._rowBlocked_15ptp_89 {\n cursor: not-allowed;\n}\n\n._listDragging_15ptp_93 ._rowControls_15ptp_36 {\n pointer-events: none;\n}\n\n._row_15ptp_36:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOff_15ptp_101 {\n opacity: 0.55;\n}\n\n._rowOff_15ptp_101:hover {\n opacity: 1;\n}\n\n._rowOver_15ptp_109::before {\n content: '';\n position: absolute;\n top: var(--wb-len-neg-3);\n left: var(--wb-len-8);\n right: var(--wb-len-8);\n height: var(--wb-len-2);\n background: var(--dsw-alias-brand-primary);\n}\n\n._ghost_15ptp_119 {\n position: fixed;\n z-index: var(--wb-z-40);\n pointer-events: none;\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--wb-static-shadow-ghost);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n white-space: nowrap;\n}\n\n._grip_15ptp_134 {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: center;\n color: var(--dsw-alias-label-tertiary);\n user-select: none;\n cursor: grab;\n touch-action: none;\n}\n\n._gripDragging_15ptp_144 {\n cursor: grabbing;\n}\n\n._gripBlocked_15ptp_148 {\n cursor: not-allowed;\n}\n\n._label_15ptp_152 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_15ptp_159 {\n min-width: 0;\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n\n._error_15ptp_170 {\n margin: 0;\n padding: 0 var(--wb-len-14) var(--wb-len-10);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._dep_15ptp_178 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n._group_15ptp_186 {\n padding-top: var(--wb-len-6);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._groupTitle_15ptp_191 {\n margin: 0;\n padding: var(--wb-len-2) var(--wb-len-8) 0 var(--wb-len-14);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n font-weight: 400;\n color: var(--dsw-alias-label-tertiary);\n}\n._panel_1whum_1 {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: var(--wb-z-10);\n visibility: hidden;\n}\n\n._panel_1whum_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1whum_1[data-open] {\n visibility: visible;\n}\n\n._columns_1whum_18 {\n display: block;\n column-gap: var(--wb-len-12);\n}\n\n._cell_1whum_23 {\n display: flow-root;\n min-width: 0;\n break-inside: avoid;\n margin-bottom: var(--wb-len-12);\n}\n._root_1cmz0_1 {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}\n\n._rail_1cmz0_7 {\n margin: 0 0 var(--wb-len-4);\n}\n\n._glyphBox_1cmz0_11 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n._glyph_1cmz0_11 {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._glyphActive_1cmz0_30 {\n color: var(--dsw-alias-state-business-primary);\n}\n\n._triggerName_1cmz0_34 {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n._dir_1cmz0_45 {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._name_1cmz0_53 {\n flex: 0 1 auto;\n max-width: 50%;\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._triggerName_1cmz0_34 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._row_1cmz0_66 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n width: 100%;\n min-width: 0;\n}\n\n._trailing_1cmz0_74 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n margin-inline-start: auto;\n}\n\n._trailing_1cmz0_74 ._rowAction_1cmz0_84 {\n width: var(--wb-len-20);\n min-width: var(--wb-len-20);\n height: var(--wb-len-20);\n min-height: var(--wb-len-20);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n}\n\n._row_1cmz0_66 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._current_1cmz0_97 {\n flex: none;\n display: inline-flex;\n align-items: center;\n color: var(--dsw-alias-label-primary);\n}\n._dot_sosf1_1 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n._overlay_sosf1_8 {\n position: absolute;\n inset-block-start: var(--wb-len-neg-3);\n inset-inline-end: var(--wb-len-neg-3);\n}\n._tag_g9dg8_1 {\n flex: none;\n margin-inline-start: auto;\n}\n._dialog_1vye5_1 {\n width: min(var(--wb-len-420), 100%);\n}\n\n._stack_1vye5_5 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._input_1vye5_12 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-12);\n}\n\n._meta_1vye5_18 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n._dot_14w1n_1 {\n display: inline-flex;\n align-items: center;\n}\n\n._hover_14w1n_6 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._blocker_1oaj0_1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-20) var(--wb-len-16);\n text-align: center;\n}\n\n._icon_1oaj0_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_1oaj0_15 {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_1oaj0_23 {\n margin: 0;\n max-width: var(--wb-len-42em);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n text-wrap: pretty;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 {\n align-items: flex-start;\n gap: var(--wb-len-6);\n padding: var(--wb-len-4) 0 var(--wb-len-2);\n text-align: left;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._title_1oaj0_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._hint_1oaj0_23 {\n max-width: 100%;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._actions_1oaj0_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._raw_1oaj0_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_1oaj0_48 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-6);\n}\n\n._raw_1oaj0_52 {\n margin-top: var(--wb-len-10);\n width: 100%;\n max-width: var(--wb-len-360);\n text-align: left;\n}\n\n._notice_1oaj0_71 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--wb-len-10);\n margin: 0 0 var(--wb-len-10);\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-left: 2px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._notice_1oaj0_71._noticeFlat_1oaj0_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_1oaj0_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_1oaj0_98 {\n font-size: var(--wb-font-12-5);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._noticeHint_1oaj0_105 {\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._noticeActions_1oaj0_112 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-neg-2);\n}\n\n._failure_1oaj0_119 {\n margin: var(--wb-len-8) 0 0;\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._failureDetail_1oaj0_127 {\n display: block;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-label-tertiary);\n white-space: pre-wrap;\n}\n\n._inlineAction_1oaj0_134 {\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n._inlineAction_1oaj0_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n\n._rawText_1oaj0_146 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
16449
16535
  function workbenchCss() {
16450
16536
  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}`;
16451
16537
  }
@@ -16475,6 +16561,10 @@ function apply(ctx) {
16475
16561
  }
16476
16562
  }
16477
16563
  function mount(ctx) {
16564
+ setRuntimeTextResolver((text) => ctx.locale.resolveText?.({
16565
+ zh: text.zh,
16566
+ en: text.en
16567
+ }) ?? text.zh);
16478
16568
  const loadUnitManifests = createUnitManifestLoader();
16479
16569
  const units = createClientUnitRegistry({ onUnknownUnit: () => loadUnitManifests(units) });
16480
16570
  ctx.provide(UNITS_SERVICE, {