@dsh-workbench/core 1.1.7 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/bin/dsh-workbench +11 -45
  2. package/client.js +379 -305
  3. package/dist/client/client.body.js +379 -305
  4. package/dist/client/index.js +252 -178
  5. package/dist/host/index.js +4684 -4129
  6. package/dist/types/app/layouts/approval-detail.d.ts +5 -5
  7. package/dist/types/app/layouts/env-gate/gate-text.d.ts +5 -4
  8. package/dist/types/app/layouts/rightbar/MarketView.d.ts +25 -3
  9. package/dist/types/app/layouts/rightbar/market-rows.d.ts +0 -1
  10. package/dist/types/app/layouts/rightbar/market-view-text.d.ts +1 -2
  11. package/dist/types/app/layouts/sidebar/ProjectSwitcher.d.ts +1 -1
  12. package/dist/types/app/layouts/sidebar/workspace-groups.d.ts +4 -1
  13. package/dist/types/kernel/contract/index.d.ts +1 -0
  14. package/dist/types/modules/panels/model/approval-questions.d.ts +6 -0
  15. package/dist/types/modules/panels/model/diy-browser-act.d.ts +2 -2
  16. package/dist/types/modules/panels/model/diy-browser.d.ts +4 -2
  17. package/dist/types/modules/panels/model/diy-page.d.ts +2 -1
  18. package/dist/types/modules/panels/model/diy-record.d.ts +2 -1
  19. package/dist/types/modules/panels/model/diy-tools.d.ts +1 -0
  20. package/dist/types/modules/panels/model/market-dependency.d.ts +1 -1
  21. package/dist/types/modules/panels/model/market-env.d.ts +2 -0
  22. package/dist/types/modules/panels/model/market.d.ts +1 -1
  23. package/dist/types/modules/panels/model/plugin-ledger.d.ts +3 -0
  24. package/dist/types/modules/panels/model/plugin-name.d.ts +7 -3
  25. package/dist/types/modules/sessions/index.d.ts +1 -1
  26. package/dist/types/modules/sessions/model/attention.d.ts +1 -0
  27. package/dist/types/shared/api/host/diy-recon-fs.d.ts +1 -1
  28. package/dist/types/shared/api/host/diy-recon.d.ts +12 -5
  29. package/dist/types/shared/api/host/flow/task.d.ts +10 -0
  30. package/dist/types/shared/api/host/flow/tool.d.ts +12 -0
  31. package/dist/types/shared/api/host/host-routes.d.ts +2 -2
  32. package/dist/types/shared/api/host/plugin-term.d.ts +2 -0
  33. package/dist/types/shared/api/host/runtime-surface.d.ts +3 -0
  34. package/dist/types/shared/hooks/locale-text.d.ts +3 -0
  35. package/dist/types/shared/hooks/runtime-queries.d.ts +6 -0
  36. package/dist/types/shared/hooks/runtime-terms.d.ts +2 -0
  37. package/dist/types/shared/hooks/use-runtime-capabilities.d.ts +6 -0
  38. package/package.json +6 -3
  39. package/scripts/seed-workshop.sh +1 -1
  40. package/skills/workbench-module-diy/DESIGN.md +3 -1
  41. package/skills/workbench-module-diy/FAMILY.md +1 -0
  42. package/skills/workbench-module-diy/FLOW.md +117 -0
  43. package/skills/workbench-module-diy/PANEL.md +9 -7
  44. package/skills/workbench-module-diy/SKILL.md +8 -1
  45. package/skills/workbench-module-diy/STEPS.md +12 -1
  46. package/skills/workbench-module-diy/TOOLS.md +16 -4
  47. package/skills/workbench-module-diy/WIRING.md +6 -4
  48. package/skills/workbench-module-diy/WRITES.md +2 -2
  49. package/bin/opencli-isolated +0 -62
  50. package/bin/opencli-isolated.mjs +0 -44
  51. package/bin/opencli-node-mode.cjs +0 -1
  52. package/dist/types/app/layouts/rightbar/AskAgentButton.d.ts +0 -6
  53. package/dist/types/app/layouts/rightbar/board-columns.test.d.ts +0 -1
  54. package/dist/types/app/layouts/rightbar/dsh-borrow.test.d.ts +0 -1
  55. package/dist/types/app/layouts/rightbar/dsh-column-source.test.d.ts +0 -1
  56. package/dist/types/app/layouts/rightbar/dsh-surface.test.d.ts +0 -1
  57. package/dist/types/app/layouts/rightbar/presentation.test.d.ts +0 -1
  58. package/dist/types/app/layouts/rightbar/rightbar-width.test.d.ts +0 -1
  59. package/dist/types/app/layouts/rightbar/store.test.d.ts +0 -1
  60. package/dist/types/kernel/contract/contracts.test.d.ts +0 -1
  61. package/dist/types/kernel/contract/index.test.d.ts +0 -1
  62. package/dist/types/modules/panels/model/diy-browser-act.test.d.ts +0 -1
  63. package/dist/types/modules/panels/model/diy-browser-tools-shot.test.d.ts +0 -1
  64. package/dist/types/modules/panels/model/diy-browser-tools.test.d.ts +0 -1
  65. package/dist/types/modules/panels/model/diy-browser.test.d.ts +0 -1
  66. package/dist/types/modules/panels/model/diy-components.test.d.ts +0 -1
  67. package/dist/types/modules/panels/model/diy-context.test.d.ts +0 -1
  68. package/dist/types/modules/panels/model/diy-debug-routes.test.d.ts +0 -1
  69. package/dist/types/modules/panels/model/diy-debug-tools.test.d.ts +0 -1
  70. package/dist/types/modules/panels/model/diy-logs.test.d.ts +0 -1
  71. package/dist/types/modules/panels/model/diy-observers.test.d.ts +0 -1
  72. package/dist/types/modules/panels/model/diy-page.test.d.ts +0 -1
  73. package/dist/types/modules/panels/model/diy-record-bar.test.d.ts +0 -1
  74. package/dist/types/modules/panels/model/diy-record-beat.test.d.ts +0 -1
  75. package/dist/types/modules/panels/model/diy-record-capture.test.d.ts +0 -1
  76. package/dist/types/modules/panels/model/diy-record-close.test.d.ts +0 -1
  77. package/dist/types/modules/panels/model/diy-record-failure.test.d.ts +0 -1
  78. package/dist/types/modules/panels/model/diy-record-hook.test.d.ts +0 -1
  79. package/dist/types/modules/panels/model/diy-record-open.test.d.ts +0 -1
  80. package/dist/types/modules/panels/model/diy-record-routes.test.d.ts +0 -1
  81. package/dist/types/modules/panels/model/diy-record-shot.test.d.ts +0 -1
  82. package/dist/types/modules/panels/model/diy-record-text.test.d.ts +0 -1
  83. package/dist/types/modules/panels/model/diy-record.test.d.ts +0 -1
  84. package/dist/types/modules/panels/model/diy-schema.test.d.ts +0 -1
  85. package/dist/types/modules/panels/model/diy-spec.test.d.ts +0 -1
  86. package/dist/types/modules/panels/model/handoff.test.d.ts +0 -1
  87. package/dist/types/modules/panels/model/long-task-tools.test.d.ts +0 -1
  88. package/dist/types/modules/panels/model/market-install-error.test.d.ts +0 -1
  89. package/dist/types/modules/panels/model/market-installed.test.d.ts +0 -1
  90. package/dist/types/modules/panels/model/market-registry.test.d.ts +0 -1
  91. package/dist/types/modules/panels/model/market-remove.test.d.ts +0 -1
  92. package/dist/types/modules/panels/model/market-restart.test.d.ts +0 -1
  93. package/dist/types/modules/panels/model/market-sources-tool.test.d.ts +0 -1
  94. package/dist/types/modules/panels/model/market-swap-stuck.test.d.ts +0 -1
  95. package/dist/types/modules/panels/model/plugin-name.test.d.ts +0 -1
  96. package/dist/types/modules/panels/model/routes.test.d.ts +0 -1
  97. package/dist/types/modules/sessions/model/attention-long-task.test.d.ts +0 -1
  98. package/dist/types/modules/sessions/model/attention.test.d.ts +0 -1
  99. package/dist/types/modules/sessions/model/scroll-edges.test.d.ts +0 -1
  100. package/dist/types/modules/sessions/model/session-node.test.d.ts +0 -1
  101. package/dist/types/shared/api/config-sync.test.d.ts +0 -1
  102. package/dist/types/shared/api/diy.test.d.ts +0 -1
  103. package/dist/types/shared/api/dsh-plugins.test.d.ts +0 -1
  104. package/dist/types/shared/api/host/bundle-inspect-kind.test.d.ts +0 -1
  105. package/dist/types/shared/api/host/bundle-routes-self.test.d.ts +0 -1
  106. package/dist/types/shared/api/host/bundle-routes.test.d.ts +0 -1
  107. package/dist/types/shared/api/host/diy-facts.test.d.ts +0 -1
  108. package/dist/types/shared/api/host/diy-recon-fs.test.d.ts +0 -1
  109. package/dist/types/shared/api/host/diy-recon.test.d.ts +0 -1
  110. package/dist/types/shared/api/host/diy.test.d.ts +0 -1
  111. package/dist/types/shared/api/host/http.test.d.ts +0 -1
  112. package/dist/types/shared/api/host/png-crop.test.d.ts +0 -1
  113. package/dist/types/shared/api/host/runtime-seed.test.d.ts +0 -1
  114. package/dist/types/shared/api/host/self-update-marker.test.d.ts +0 -1
  115. package/dist/types/shared/api/host/shell.test.d.ts +0 -1
  116. package/dist/types/shared/api/unit-manifests.test.d.ts +0 -1
  117. package/dist/types/shared/components/blocker-action.test.d.ts +0 -1
  118. package/dist/types/shared/hooks/panel-state-report.test.d.ts +0 -1
package/client.js CHANGED
@@ -583,7 +583,7 @@ window.__ModuleLoader__.load({
583
583
  id: "cli-exec-failed",
584
584
  severity: "block",
585
585
  title: error.message,
586
- hint: error.hint ?? t("blocker.exec.hint"),
586
+ hint: error.hint ?? context.diagnose?.exec ?? t("blocker.exec.hint"),
587
587
  ...error.detail === void 0 ? {} : { detail: error.detail },
588
588
  actions: [retryAction(t)]
589
589
  };
@@ -792,13 +792,13 @@ window.__ModuleLoader__.load({
792
792
  //#endregion
793
793
  //#region ../shared/dist/lib/react.js
794
794
  var react$1 = require("react");
795
- var h$71 = react$1.createElement;
795
+ var h$70 = react$1.createElement;
796
796
  var Fragment$22 = react$1.Fragment;
797
797
  var Component = react$1.Component;
798
798
  react$1.createContext;
799
799
  react$1.useContext;
800
800
  var useState$42 = react$1.useState;
801
- var useEffect$32 = react$1.useEffect;
801
+ var useEffect$33 = react$1.useEffect;
802
802
  react$1.useLayoutEffect;
803
803
  var useMemo$10 = react$1.useMemo;
804
804
  react$1.useCallback;
@@ -813,7 +813,7 @@ window.__ModuleLoader__.load({
813
813
  * @returns 一个 div。
814
814
  */
815
815
  function ActivityBlock({ head, children }) {
816
- return h$71("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$71("div", { className: "wb-activityBlockHead" }, head), children);
816
+ return h$70("div", { className: "wb-activityBlock" }, head === void 0 ? null : h$70("div", { className: "wb-activityBlockHead" }, head), children);
817
817
  }
818
818
  /**
819
819
  * 一条活动:状态点 + 正文 + 时间,行尾可挂动作;时间一律用它,别自己拼。
@@ -824,7 +824,7 @@ window.__ModuleLoader__.load({
824
824
  * @returns 一行。
825
825
  */
826
826
  function ActivityLine({ dot, text, at, actions }) {
827
- return h$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));
827
+ return h$70("div", { className: "wb-activityLine" }, dot, h$70("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h$70("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h$70("span", { className: "wb-activityLineActions" }, actions));
828
828
  }
829
829
  /**
830
830
  * 活动行尾那颗动作:给 `href` 就是外链,否则是图标钮并带上 tooltip。
@@ -838,7 +838,7 @@ window.__ModuleLoader__.load({
838
838
  */
839
839
  function ActivityAction({ label, hint, icon, href, onClick, failed }) {
840
840
  const tip = hint ?? label;
841
- if (href !== void 0) return h$71("a", {
841
+ if (href !== void 0) return h$70("a", {
842
842
  className: "wb-iconButton",
843
843
  href,
844
844
  target: "_blank",
@@ -846,13 +846,13 @@ window.__ModuleLoader__.load({
846
846
  title: tip,
847
847
  "aria-label": label
848
848
  }, icon);
849
- return h$71(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
849
+ return h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
850
850
  side: "bottom",
851
851
  align: "end",
852
852
  gap: 6,
853
853
  portal: true,
854
854
  label: tip
855
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
855
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
856
856
  type: "button",
857
857
  variant: "ghost",
858
858
  size: "sm",
@@ -874,10 +874,10 @@ window.__ModuleLoader__.load({
874
874
  */
875
875
  function Note({ tone = "muted", as, role, children }) {
876
876
  const className = tone === "problem" ? "wb-problem" : "wb-note";
877
- return as === "span" ? h$71("span", {
877
+ return as === "span" ? h$70("span", {
878
878
  className,
879
879
  role
880
- }, children) : h$71("p", {
880
+ }, children) : h$70("p", {
881
881
  className,
882
882
  role
883
883
  }, children);
@@ -921,10 +921,10 @@ window.__ModuleLoader__.load({
921
921
  render() {
922
922
  const { reason } = this.state;
923
923
  if (reason === null) return this.props.children;
924
- return h$71(Note, { tone: "problem" }, h$71("span", null, this.props.t("panels.cardBroken", {
924
+ return h$70(Note, { tone: "problem" }, h$70("span", null, this.props.t("panels.cardBroken", {
925
925
  unit: this.props.unit,
926
926
  reason
927
- })), " ", h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
927
+ })), " ", h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
928
928
  type: "button",
929
929
  variant: "outline",
930
930
  size: "sm",
@@ -974,19 +974,19 @@ window.__ModuleLoader__.load({
974
974
  const owner = (props.units ?? []).find((face) => face.approval?.tools.includes(input.tool) === true);
975
975
  if (owner?.approval !== void 0) {
976
976
  const Render = owner.approval.render;
977
- return h$71(CardBoundary, {
977
+ return h$70(CardBoundary, {
978
978
  unit: owner.unit,
979
979
  resetKey: props.callId ?? "",
980
980
  t
981
- }, h$71(Render, {
981
+ }, h$70(Render, {
982
982
  input,
983
983
  t
984
984
  }));
985
985
  }
986
986
  const shell = props.renderShell?.(input, t);
987
- if (shell !== void 0 && shell !== null) return h$71(Fragment$22, null, shell);
987
+ if (shell !== void 0 && shell !== null) return h$70(Fragment$22, null, shell);
988
988
  if (command === "") return null;
989
- return h$71(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
989
+ return h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
990
990
  code: command,
991
991
  className: "wb-approvalCommand",
992
992
  copyLabel: t("blocker.copy"),
@@ -1004,10 +1004,10 @@ window.__ModuleLoader__.load({
1004
1004
  * @returns 一个 div。
1005
1005
  */
1006
1006
  function ApprovalPlan({ rows, hint, warn, children }) {
1007
- return h$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", {
1007
+ return h$70("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h$70("p", { className: "wb-approvalHint" }, hint), h$70("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h$70("div", {
1008
1008
  className: "wb-approvalRow",
1009
1009
  key: String(index)
1010
- }, 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));
1010
+ }, h$70("dt", { className: "wb-approvalLabel" }, row.label), h$70("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h$70("p", { className: "wb-approvalWarn" }, warn));
1011
1011
  }
1012
1012
  //#endregion
1013
1013
  //#region ../shared/dist/components/CardHead.js
@@ -1024,47 +1024,47 @@ window.__ModuleLoader__.load({
1024
1024
  function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle }) {
1025
1025
  const refreshLabel = refreshing ? t("rightbar.refreshing") : t("rightbar.refresh");
1026
1026
  const platformLabel = platformTitle ?? platform ?? t("rightbar.openPlatform");
1027
- return h$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, {
1027
+ return h$70("header", { className: "wb-cardHead" }, h$70("h2", { className: "wb-cardTitle" }, title), meta === void 0 ? null : h$70("span", { className: "wb-cardMeta" }, meta), platformHref === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1028
1028
  side: "bottom",
1029
1029
  align: "end",
1030
1030
  gap: 6,
1031
1031
  portal: true,
1032
1032
  label: platformLabel
1033
- }, h$71("a", {
1033
+ }, h$70("a", {
1034
1034
  className: "wb-iconButton wb-cardOpen",
1035
1035
  href: platformHref,
1036
1036
  target: "_blank",
1037
1037
  rel: "noreferrer noopener",
1038
1038
  "aria-label": platform ?? platformLabel
1039
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$71(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1039
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 14 }))), h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1040
1040
  side: "bottom",
1041
1041
  align: "end",
1042
1042
  gap: 6,
1043
1043
  portal: true,
1044
1044
  label: refreshLabel
1045
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
1045
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1046
1046
  type: "button",
1047
1047
  size: "sm",
1048
1048
  variant: "ghost",
1049
1049
  className: `wb-cardRefresh${refreshing ? " wb-spinning" : ""}`,
1050
1050
  "aria-label": refreshLabel,
1051
1051
  disabled: refreshing,
1052
- icon: h$71(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
1052
+ icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconRefreshOutlineRegular, { size: 14 }),
1053
1053
  onClick: onRefresh
1054
- })), gear === void 0 || onToggleGear === void 0 ? null : h$71(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1054
+ })), gear === void 0 || onToggleGear === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
1055
1055
  side: "bottom",
1056
1056
  align: "end",
1057
1057
  gap: 6,
1058
1058
  portal: true,
1059
1059
  label: gear
1060
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
1060
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1061
1061
  type: "button",
1062
1062
  size: "sm",
1063
1063
  variant: "ghost",
1064
1064
  className: `wb-cardGear${gearOpen === true ? " wb-iconButtonActive" : ""}`,
1065
1065
  "aria-label": gear,
1066
1066
  "aria-expanded": gearOpen === true,
1067
- icon: h$71(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
1067
+ icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconSettingsOutlineRegular, { size: 15 }),
1068
1068
  onClick: onToggleGear
1069
1069
  })));
1070
1070
  }
@@ -1081,13 +1081,13 @@ window.__ModuleLoader__.load({
1081
1081
  * @returns 一个 `<section>`。
1082
1082
  */
1083
1083
  function Card({ t, title, refreshing, onRefresh, meta, head, children }) {
1084
- return h$71("section", { className: "wb-card" }, head === void 0 ? h$71(CardHead, {
1084
+ return h$70("section", { className: "wb-card" }, head === void 0 ? h$70(CardHead, {
1085
1085
  t,
1086
1086
  title,
1087
1087
  refreshing,
1088
1088
  onRefresh,
1089
1089
  meta
1090
- }) : head, h$71("div", { className: "wb-cardBody" }, children));
1090
+ }) : head, h$70("div", { className: "wb-cardBody" }, children));
1091
1091
  }
1092
1092
  var CardAnchor_module_default = { anchor: "_anchor_yq4s2_1" };
1093
1093
  //#endregion
@@ -1107,7 +1107,7 @@ window.__ModuleLoader__.load({
1107
1107
  * @returns 带 id 的占位 div。
1108
1108
  */
1109
1109
  function CardAnchor({ unit, children }) {
1110
- return h$71("div", {
1110
+ return h$70("div", {
1111
1111
  id: cardIdOf(unit),
1112
1112
  className: CardAnchor_module_default.anchor
1113
1113
  }, children);
@@ -1121,13 +1121,13 @@ window.__ModuleLoader__.load({
1121
1121
  * @returns 一枚 `StateDot state="ongoing"`,自身不带文字。
1122
1122
  */
1123
1123
  function Spinner({ size = 14, label }) {
1124
- return h$71("span", {
1124
+ return h$70("span", {
1125
1125
  className: "wb-spinner",
1126
1126
  ...label === void 0 ? { "aria-hidden": true } : {
1127
1127
  role: "status",
1128
1128
  "aria-label": label
1129
1129
  }
1130
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1130
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1131
1131
  state: "ongoing",
1132
1132
  size
1133
1133
  }));
@@ -1135,24 +1135,24 @@ window.__ModuleLoader__.load({
1135
1135
  //#endregion
1136
1136
  //#region ../shared/dist/components/ChoiceGroup.js
1137
1137
  function ChoiceMenu(input) {
1138
- const body = input.loading ? h$71("span", {
1138
+ const body = input.loading ? h$70("span", {
1139
1139
  className: "wb-choiceLoading",
1140
1140
  role: "status"
1141
- }, 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) => {
1141
+ }, h$70(Spinner, { size: 14 }), h$70("span", { className: "wb-choiceLoadingText" }, input.loadingText ?? "…")) : input.options.length === 0 ? input.emptyText === void 0 ? null : h$70("span", { className: "wb-choiceEmpty" }, input.emptyText) : input.options.map((option) => {
1142
1142
  const row = input.rowOf(option.value);
1143
- return h$71(Fragment$22, { key: option.value }, h$71("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$71("input", {
1143
+ return h$70(Fragment$22, { key: option.value }, h$70("label", { className: `wb-choiceOption${row.checked ? " wb-choiceOptionOn" : ""}` }, h$70("input", {
1144
1144
  className: input.multi ? "wb-checkbox" : "wb-radio",
1145
1145
  type: input.multi ? "checkbox" : "radio",
1146
1146
  name: input.name,
1147
1147
  checked: row.checked,
1148
1148
  disabled: input.disabled,
1149
1149
  onChange: row.onSelect
1150
- }), input.multi ? h$71("span", {
1150
+ }), input.multi ? h$70("span", {
1151
1151
  className: "wb-checkboxBox",
1152
1152
  "aria-hidden": "true"
1153
- }, 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))));
1153
+ }, row.checked ? h$70(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 }) : null) : null, h$70("span", { className: "wb-choiceLabel" }, h$70("span", { className: "wb-choiceLabelText" }, option.label), option.description === void 0 ? null : h$70("span", { className: "wb-choiceDescription" }, option.description))));
1154
1154
  });
1155
- return h$71("div", {
1155
+ return h$70("div", {
1156
1156
  className: "wb-choiceMenu",
1157
1157
  "data-variant": input.variant,
1158
1158
  role: input.multi ? "group" : "radiogroup",
@@ -1186,7 +1186,7 @@ window.__ModuleLoader__.load({
1186
1186
  if (props.multi === true) {
1187
1187
  const values = props.values;
1188
1188
  const onChange = props.onChange;
1189
- return h$71(ChoiceMenu, {
1189
+ return h$70(ChoiceMenu, {
1190
1190
  label: common.label,
1191
1191
  name: common.name,
1192
1192
  options: common.options,
@@ -1206,7 +1206,7 @@ window.__ModuleLoader__.load({
1206
1206
  }
1207
1207
  const value = props.value;
1208
1208
  const onChange = props.onChange;
1209
- return h$71(ChoiceMenu, {
1209
+ return h$70(ChoiceMenu, {
1210
1210
  label: common.label,
1211
1211
  name: common.name,
1212
1212
  options: common.options,
@@ -1259,17 +1259,17 @@ window.__ModuleLoader__.load({
1259
1259
  function FormActions({ actions }) {
1260
1260
  if (actions.length === 0) return null;
1261
1261
  reportExtraPrimaries(actions);
1262
- return h$71("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
1262
+ return h$70("div", { className: "wb-formActions" }, ordered(actions).map((action) => {
1263
1263
  const kind = kindOf(action);
1264
1264
  const busy = action.busy === true;
1265
- return h$71(_deepseek_ai_dsh_client_ui_primitives.Button, {
1265
+ return h$70(_deepseek_ai_dsh_client_ui_primitives.Button, {
1266
1266
  key: action.key,
1267
1267
  type: "button",
1268
1268
  size: "sm",
1269
1269
  variant: variantOf(kind),
1270
1270
  className: kind === "danger" ? "wb-formActionDanger" : void 0,
1271
1271
  disabled: busy || action.disabled === true,
1272
- icon: busy ? h$71(Spinner, { size: 12 }) : void 0,
1272
+ icon: busy ? h$70(Spinner, { size: 12 }) : void 0,
1273
1273
  onClick: action.onClick
1274
1274
  }, action.label);
1275
1275
  }));
@@ -1282,7 +1282,7 @@ window.__ModuleLoader__.load({
1282
1282
  * @returns 竖排的 div。
1283
1283
  */
1284
1284
  function Rows({ children }) {
1285
- return h$71("div", { className: "wb-rows" }, children);
1285
+ return h$70("div", { className: "wb-rows" }, children);
1286
1286
  }
1287
1287
  /**
1288
1288
  * 一行键值:左边名字、右边值;要成对说明一项数据就用它,别自己写两栏。
@@ -1291,7 +1291,7 @@ window.__ModuleLoader__.load({
1291
1291
  * @returns 一行两格。
1292
1292
  */
1293
1293
  function Row({ label, value }) {
1294
- return h$71("div", { className: "wb-row" }, h$71("span", { className: "wb-rowKey" }, label), h$71("span", { className: "wb-rowValue" }, value));
1294
+ return h$70("div", { className: "wb-row" }, h$70("span", { className: "wb-rowKey" }, label), h$70("span", { className: "wb-rowValue" }, value));
1295
1295
  }
1296
1296
  //#endregion
1297
1297
  //#region ../shared/dist/components/ConfirmBar.js
@@ -1308,19 +1308,19 @@ window.__ModuleLoader__.load({
1308
1308
  * @returns 一个 `role="group"` 的条;`actions` 空数组时最后那一块不渲染。
1309
1309
  */
1310
1310
  function ConfirmBar({ title, hint, rows, actions, problem, busy, label }) {
1311
- return h$71("div", {
1311
+ return h$70("div", {
1312
1312
  className: "wb-confirmBar",
1313
1313
  role: "group",
1314
1314
  "aria-label": label ?? (typeof title === "string" ? title : void 0),
1315
1315
  "aria-busy": busy
1316
- }, h$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, {
1316
+ }, h$70("p", { className: "wb-confirmBarTitle" }, title), hint === void 0 ? null : h$70("p", { className: "wb-confirmBarHint" }, hint), rows === void 0 || rows.length === 0 ? null : h$70(Rows, null, rows.map((row) => h$70(Row, {
1317
1317
  key: row.key,
1318
1318
  label: row.label,
1319
1319
  value: row.value
1320
- }))), problem === void 0 ? null : h$71(Note, {
1320
+ }))), problem === void 0 ? null : h$70(Note, {
1321
1321
  tone: "problem",
1322
1322
  role: "alert"
1323
- }, problem), h$71(FormActions, { actions }));
1323
+ }, problem), h$70(FormActions, { actions }));
1324
1324
  }
1325
1325
  //#endregion
1326
1326
  //#region ../shared/dist/components/Field.js
@@ -1332,7 +1332,7 @@ window.__ModuleLoader__.load({
1332
1332
  * @returns 一个 `<label>`,点标签会聚焦里面的控件。
1333
1333
  */
1334
1334
  function Field({ label, hint, children }) {
1335
- return h$71("label", { className: "wb-field" }, h$71("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$71("span", { className: "wb-fieldHint" }, hint));
1335
+ return h$70("label", { className: "wb-field" }, h$70("span", { className: "wb-fieldLabel" }, label), children, hint === void 0 ? null : h$70("span", { className: "wb-fieldHint" }, hint));
1336
1336
  }
1337
1337
  //#endregion
1338
1338
  //#region ../shared/dist/components/FormRows.js
@@ -1342,7 +1342,7 @@ window.__ModuleLoader__.load({
1342
1342
  * @returns 竖排的 div。
1343
1343
  */
1344
1344
  function FormRows({ children }) {
1345
- return h$71("div", { className: "wb-formRows" }, children);
1345
+ return h$70("div", { className: "wb-formRows" }, children);
1346
1346
  }
1347
1347
  /**
1348
1348
  * 表单一行:左边标签、右边控件,提示与错误占控件下面那一格。
@@ -1355,14 +1355,14 @@ window.__ModuleLoader__.load({
1355
1355
  * @returns 一个 `<div>`:里面的 `<label>` 只包标签文字,不包控件、提示与整行的空白。
1356
1356
  */
1357
1357
  function FormRow({ label, htmlFor, hint, problem, layout = "inline", children }) {
1358
- return h$71("div", {
1358
+ return h$70("div", {
1359
1359
  className: "wb-formRow",
1360
1360
  "data-layout": layout,
1361
1361
  "data-wb-problem": problem === void 0 ? void 0 : ""
1362
- }, h$71("label", {
1362
+ }, h$70("label", {
1363
1363
  className: "wb-formLabel",
1364
1364
  htmlFor
1365
- }, 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));
1365
+ }, label), h$70("span", { className: "wb-formControl" }, children), problem === void 0 ? hint === void 0 ? null : h$70("span", { className: "wb-formHint" }, hint) : h$70("span", { className: "wb-formProblem" }, problem));
1366
1366
  }
1367
1367
  //#endregion
1368
1368
  //#region ../shared/dist/components/FormNodes.js
@@ -1509,7 +1509,7 @@ window.__ModuleLoader__.load({
1509
1509
  * @returns `FormRow` 组成的数组;没有可画的格子时给空数组。
1510
1510
  */
1511
1511
  function formRowsOf(args) {
1512
- return args.fields.map((field) => h$71(FormRow, {
1512
+ return args.fields.map((field) => h$70(FormRow, {
1513
1513
  key: field.key,
1514
1514
  label: field.label,
1515
1515
  htmlFor: controlIdOf(field.key),
@@ -1591,7 +1591,7 @@ window.__ModuleLoader__.load({
1591
1591
  const shown = visibleFieldsOf(fields);
1592
1592
  const problems = formProblemsOf(shown, done);
1593
1593
  reportDuplicateKeys(shown);
1594
- useEffect$32(() => {
1594
+ useEffect$33(() => {
1595
1595
  if (reveal === 0) return;
1596
1596
  const root = rootRef.current;
1597
1597
  if (root !== null) revealFirstProblem(root);
@@ -1606,7 +1606,7 @@ window.__ModuleLoader__.load({
1606
1606
  }
1607
1607
  onSubmit(outcome.values);
1608
1608
  };
1609
- return h$71("form", {
1609
+ return h$70("form", {
1610
1610
  className: "wb-form",
1611
1611
  ref: rootRef,
1612
1612
  noValidate: true,
@@ -1614,15 +1614,15 @@ window.__ModuleLoader__.load({
1614
1614
  event.preventDefault();
1615
1615
  submitForm();
1616
1616
  }
1617
- }, h$71(FormRows, null, formRowsOf({
1617
+ }, h$70(FormRows, null, formRowsOf({
1618
1618
  fields: shown,
1619
1619
  problems,
1620
1620
  showProblem: done,
1621
1621
  busy
1622
- })), problem === void 0 ? null : h$71(Note, {
1622
+ })), problem === void 0 ? null : h$70(Note, {
1623
1623
  tone: "problem",
1624
1624
  role: "alert"
1625
- }, problem), h$71(FormActions, { actions: formActionsOf({
1625
+ }, problem), h$70(FormActions, { actions: formActionsOf({
1626
1626
  extra,
1627
1627
  cancel,
1628
1628
  submit,
@@ -1643,7 +1643,7 @@ window.__ModuleLoader__.load({
1643
1643
  * @returns 一个 `<a>`。
1644
1644
  */
1645
1645
  function Link({ href, children, title, external = true, className }) {
1646
- return h$71("a", {
1646
+ return h$70("a", {
1647
1647
  className: className === void 0 ? "wb-link" : `wb-link ${className}`,
1648
1648
  href,
1649
1649
  ...title === void 0 ? {} : { title },
@@ -1651,7 +1651,7 @@ window.__ModuleLoader__.load({
1651
1651
  target: "_blank",
1652
1652
  rel: "noopener noreferrer"
1653
1653
  } : {}
1654
- }, children, external ? h$71(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
1654
+ }, children, external ? h$70(_deepseek_ai_dsh_client_ui_primitives.IconRightUpOutlineRegular, { size: 12 }) : null);
1655
1655
  }
1656
1656
  //#endregion
1657
1657
  //#region ../shared/dist/contract/long-task.js
@@ -1743,7 +1743,7 @@ window.__ModuleLoader__.load({
1743
1743
  //#endregion
1744
1744
  //#region ../shared/dist/components/LongTaskRow.js
1745
1745
  function RowLink({ href, text }) {
1746
- return h$71(Link, {
1746
+ return h$70(Link, {
1747
1747
  href,
1748
1748
  className: "wb-longTaskLink"
1749
1749
  }, text);
@@ -1773,7 +1773,7 @@ window.__ModuleLoader__.load({
1773
1773
  const stop = props.stop;
1774
1774
  const busy = stop?.busy === true;
1775
1775
  const stopWhy = stop?.failed ?? "";
1776
- useEffect$32(() => {
1776
+ useEffect$33(() => {
1777
1777
  if (!armed) return void 0;
1778
1778
  const timer = setTimeout(() => setArmed(false), LONG_TASK_STOP_ARM_MS);
1779
1779
  return () => clearTimeout(timer);
@@ -1792,14 +1792,14 @@ window.__ModuleLoader__.load({
1792
1792
  setArmed(false);
1793
1793
  stop.onStop();
1794
1794
  };
1795
- return h$71("div", { className: "wb-longTask" }, h$71("p", { className: "wb-longTaskHead" }, h$71(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1795
+ return h$70("div", { className: "wb-longTask" }, h$70("p", { className: "wb-longTaskHead" }, h$70(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
1796
1796
  state: longTaskDot(props.status),
1797
1797
  size: 10
1798
- }), h$71("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$71(RowLink, {
1798
+ }), h$70("span", { className: "wb-longTaskHeadline" }, props.headline), (props.links ?? []).map((link) => h$70(RowLink, {
1799
1799
  href: link.href,
1800
1800
  key: `${link.text}@${link.href}`,
1801
1801
  text: link.text
1802
- })), stop === void 0 ? null : h$71("button", {
1802
+ })), stop === void 0 ? null : h$70("button", {
1803
1803
  type: "button",
1804
1804
  className: `wb-longTaskStop${armed ? " wb-longTaskStopArmed" : ""}`,
1805
1805
  "data-stop-state": longTaskStopStage({
@@ -1810,31 +1810,31 @@ window.__ModuleLoader__.load({
1810
1810
  disabled: busy,
1811
1811
  onClick: onStopPress,
1812
1812
  onBlur: () => setArmed(false)
1813
- }, h$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, {
1813
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconStopFillRegular, { size: 12 }), armed ? h$70("span", { className: "wb-longTaskStopLabel" }, stop.askLabel) : null)), problem === "" ? null : h$70("p", { className: "wb-longTaskProblem" }, problem), stopWhy === "" ? null : h$70("p", { className: "wb-longTaskStopWhy" }, stopWhy), !failed ? null : h$70(Fragment$22, null, steps.length === 0 || props.stepsTitle === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1814
1814
  className: "wb-longTaskDump",
1815
- icon: h$71(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
1815
+ icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconFlatListOutlineRegular, { size: 14 }),
1816
1816
  title: props.stepsTitle,
1817
1817
  open: stepsOpen,
1818
1818
  expandable: true,
1819
1819
  expandOnRowClick: true,
1820
1820
  previewChevron: true,
1821
1821
  onToggle: () => setStepsOpen(!stepsOpen)
1822
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1822
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1823
1823
  code: steps.join("\n"),
1824
1824
  className: "wb-longTaskDump",
1825
1825
  showHeader: props.copyLabel !== void 0,
1826
1826
  copyLabel: props.copyLabel ?? "",
1827
1827
  copiedLabel: props.copiedLabel ?? ""
1828
- })), raw === "" || props.rawTitle === void 0 ? null : h$71(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1828
+ })), raw === "" || props.rawTitle === void 0 ? null : h$70(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
1829
1829
  className: "wb-longTaskDump",
1830
- icon: h$71(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
1830
+ icon: h$70(_deepseek_ai_dsh_client_ui_primitives.IconCodeOutlineRegular, { size: 14 }),
1831
1831
  title: props.rawTitle,
1832
1832
  open: rawOpen,
1833
1833
  expandable: true,
1834
1834
  expandOnRowClick: true,
1835
1835
  previewChevron: true,
1836
1836
  onToggle: () => setRawOpen(!rawOpen)
1837
- }, h$71(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1837
+ }, h$70(_deepseek_ai_dsh_client_ui_primitives.CodeBlock, {
1838
1838
  code: raw,
1839
1839
  className: "wb-longTaskDump",
1840
1840
  showHeader: props.copyLabel !== void 0,
@@ -1850,13 +1850,13 @@ window.__ModuleLoader__.load({
1850
1850
  * @returns 一叠占位条。
1851
1851
  */
1852
1852
  function SkeletonRows({ rows = 4 }) {
1853
- return h$71("div", {
1853
+ return h$70("div", {
1854
1854
  className: "wb-skeleton",
1855
1855
  "aria-hidden": "true"
1856
- }, Array.from({ length: rows }, (_, index) => h$71("span", {
1856
+ }, Array.from({ length: rows }, (_, index) => h$70("span", {
1857
1857
  key: index,
1858
1858
  className: "wb-skeletonRow"
1859
- }, h$71("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$71("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
1859
+ }, h$70("span", { className: "wb-skeletonBar wb-skeletonBarTitle" }), h$70("span", { className: "wb-skeletonBar wb-skeletonBarMeta" }))));
1860
1860
  }
1861
1861
  /**
1862
1862
  * 居中一屏:要他先选一个 / 正在读 / 读不到时用它占住卡片版面。
@@ -1869,13 +1869,13 @@ window.__ModuleLoader__.load({
1869
1869
  * @returns 一个 `role="status"` 的居中块。
1870
1870
  */
1871
1871
  function CenteredState({ icon, title, hint, detail, action, compact = false }) {
1872
- return h$71("div", {
1872
+ return h$70("div", {
1873
1873
  className: compact ? "wb-centered wb-centeredCompact" : "wb-centered",
1874
1874
  role: "status"
1875
- }, icon === null ? null : h$71("span", {
1875
+ }, icon === null ? null : h$70("span", {
1876
1876
  className: "wb-centeredHero",
1877
1877
  "aria-hidden": "true"
1878
- }, 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));
1878
+ }, icon), h$70("div", { className: "wb-centeredTitle" }, title), hint === void 0 ? null : h$70("div", { className: "wb-centeredHint" }, hint), detail === void 0 ? null : h$70("div", { className: "wb-centeredDetail" }, detail), action === void 0 ? null : h$70("div", { className: "wb-centeredAction" }, action));
1879
1879
  }
1880
1880
  /**
1881
1881
  * 就绪但空:它只是 `CenteredState` 的简写,标题就是那句空态文案。
@@ -1885,7 +1885,7 @@ window.__ModuleLoader__.load({
1885
1885
  * @returns 一个居中块。
1886
1886
  */
1887
1887
  function EmptyState({ text, icon = null, compact = false }) {
1888
- return h$71(CenteredState, {
1888
+ return h$70(CenteredState, {
1889
1889
  icon,
1890
1890
  title: text,
1891
1891
  compact
@@ -1903,7 +1903,7 @@ window.__ModuleLoader__.load({
1903
1903
  * @returns 一组按钮。
1904
1904
  */
1905
1905
  function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
1906
- return h$71(FormActions, { actions: [{
1906
+ return h$70(FormActions, { actions: [{
1907
1907
  key: "cancel",
1908
1908
  label: labels.cancel,
1909
1909
  kind: "default",
@@ -1933,11 +1933,13 @@ window.__ModuleLoader__.load({
1933
1933
  * @param args.value - 已渲染好的当前值节点(文本或占位)。
1934
1934
  * @param args.iconOnly - 只画图标(窄栏那颗切换钮),值与箭头都不画。
1935
1935
  * @param args.onOpen - 点它做什么,通常是把列表打开。
1936
+ * @param args.ref - 挂到这颗 `<button>` 上,取消后回焦点、菜单开着头条滚轮要用它。
1936
1937
  * @returns 一颗 `<button>`。
1937
1938
  */
1938
1939
  function selectTriggerNode(args) {
1939
- return h$71("button", {
1940
+ return h$70("button", {
1940
1941
  type: "button",
1942
+ ref: args.ref,
1941
1943
  id: args.id,
1942
1944
  className: args.className,
1943
1945
  disabled: args.disabled,
@@ -1947,7 +1949,7 @@ window.__ModuleLoader__.load({
1947
1949
  "aria-label": args.ariaLabel,
1948
1950
  title: args.title,
1949
1951
  onClick: args.onOpen
1950
- }, 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 }))));
1952
+ }, args.iconOnly ? h$70("span", { className: "wb-selectIcon" }, args.icon) : h$70(Fragment$22, null, args.icon === void 0 ? null : h$70("span", { className: "wb-selectIcon" }, args.icon), h$70("span", { className: "wb-selectValue" }, args.value), h$70("span", { className: "wb-selectChevron" }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 14 }))));
1951
1953
  }
1952
1954
  /**
1953
1955
  * 名单还没读到时的触发器:禁用 + `aria-busy` 的按钮,`SelectField` 在 `loading` 那档画它。
@@ -1959,7 +1961,7 @@ window.__ModuleLoader__.load({
1959
1961
  * @returns 一颗禁用且 `aria-busy` 的按钮。
1960
1962
  */
1961
1963
  function selectLoadingNode(args) {
1962
- return h$71("button", {
1964
+ return h$70("button", {
1963
1965
  type: "button",
1964
1966
  id: args.id,
1965
1967
  className: `${args.className} wb-selectLoading`,
@@ -1968,7 +1970,7 @@ window.__ModuleLoader__.load({
1968
1970
  "aria-invalid": args.invalid || void 0,
1969
1971
  "aria-label": args.ariaLabel,
1970
1972
  title: args.loadingText
1971
- }, 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 })));
1973
+ }, h$70("span", { className: "wb-selectValue" }, h$70(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { active: true }, args.loadingText ?? "…")), h$70("span", { className: "wb-selectChevron" }, h$70(Spinner, { size: 14 })));
1972
1974
  }
1973
1975
  //#endregion
1974
1976
  //#region ../shared/dist/components/TextField.js
@@ -1978,7 +1980,7 @@ window.__ModuleLoader__.load({
1978
1980
  * @returns 输入框元素;`className` 是追加在基础类名之后,而不是替换它。
1979
1981
  */
1980
1982
  function TextField({ invalid = false, className, ...rest }) {
1981
- return h$71("input", {
1983
+ return h$70("input", {
1982
1984
  ...rest,
1983
1985
  className: className === void 0 ? "wb-textField" : `wb-textField ${className}`,
1984
1986
  "aria-invalid": invalid || void 0
@@ -1994,43 +1996,23 @@ window.__ModuleLoader__.load({
1994
1996
  function triggerClassOf(variantClass, iconOnly) {
1995
1997
  return mergeClass("wb-selectTrigger", variantClass, iconOnly ? "wb-selectIconOnly" : void 0);
1996
1998
  }
1997
- function itemOf(option, revealId) {
1998
- if (!(option.value === revealId)) return {
1999
+ function itemOf(option) {
2000
+ return {
1999
2001
  id: option.value,
2000
2002
  label: option.label,
2001
2003
  ...option.icon === void 0 ? {} : { icon: option.icon },
2002
2004
  ...option.disabled === true ? { disabled: true } : {}
2003
2005
  };
2004
- const revealed = (node) => h$71("span", {
2005
- className: "wb-selectReveal",
2006
- "data-wb-select-reveal": ""
2007
- }, node);
2008
- return {
2009
- id: option.value,
2010
- label: option.icon === void 0 ? revealed(option.label) : option.label,
2011
- ...option.icon === void 0 ? {} : { icon: revealed(option.icon) },
2012
- ...option.disabled === true ? { disabled: true } : {}
2013
- };
2014
- }
2015
- function revealNode() {
2016
- const found = document.querySelector("[data-wb-select-reveal]");
2017
- return found instanceof HTMLElement ? found : null;
2018
- }
2019
- function useRevealOnOpen(open, revealId) {
2020
- useEffect$32(() => {
2021
- if (!open || revealId === void 0) return;
2022
- revealNode()?.scrollIntoView({ block: "nearest" });
2023
- }, [open, revealId]);
2024
2006
  }
2025
2007
  function selectValueNode(current, renderValue, placeholder) {
2026
- if (current === void 0) return h$71("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
2008
+ if (current === void 0) return h$70("span", { className: "wb-selectPlaceholder" }, placeholder ?? "—");
2027
2009
  return renderValue === void 0 ? current.label : renderValue(current);
2028
2010
  }
2029
2011
  function searchNode(args) {
2030
- return h$71("span", {
2012
+ return h$70("span", {
2031
2013
  ref: args.boxRef,
2032
2014
  className: args.className
2033
- }, h$71("span", { className: "wb-selectSearchIcon" }, h$71(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$71(TextField, {
2015
+ }, h$70("span", { className: "wb-selectSearchIcon" }, h$70(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 14 })), h$70(TextField, {
2034
2016
  id: args.id,
2035
2017
  name: args.name,
2036
2018
  className: "wb-selectSearchInput",
@@ -2045,7 +2027,7 @@ window.__ModuleLoader__.load({
2045
2027
  }));
2046
2028
  }
2047
2029
  function menuNode(args) {
2048
- return h$71(_deepseek_ai_dsh_client_ui_primitives.Menu, {
2030
+ return h$70(_deepseek_ai_dsh_client_ui_primitives.Menu, {
2049
2031
  open: args.open,
2050
2032
  portal: true,
2051
2033
  className: "wb-selectAnchor",
@@ -2062,11 +2044,11 @@ window.__ModuleLoader__.load({
2062
2044
  });
2063
2045
  }
2064
2046
  function framed(label, hint, className, control) {
2065
- 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, {
2047
+ const inner = label === void 0 ? hint === void 0 ? control : h$70("span", { className: "wb-select" }, control, h$70("span", { className: "wb-selectHint" }, hint)) : h$70(Field, {
2066
2048
  label,
2067
2049
  hint
2068
2050
  }, control);
2069
- return className === void 0 ? inner : h$71("div", { className }, inner);
2051
+ return className === void 0 ? inner : h$70("div", { className }, inner);
2070
2052
  }
2071
2053
  /** 算候选项用来匹配搜索的文本:有 `searchText` 就用它,否则取字符串标签;标签不是字符串又没给它是空串(这项搜不到)。 */
2072
2054
  function searchTextOf(option) {
@@ -2094,8 +2076,8 @@ window.__ModuleLoader__.load({
2094
2076
  if (cursor === null) return step === 1 ? 0 : shown.length - 1;
2095
2077
  return (cursor + step + shown.length) % shown.length;
2096
2078
  }
2097
- /** 把候选排成 `Menu` 要的条目表:按 `group` 插分组标题;一项都没有时退回 `emptyText` 那一行(不给就是空表)。`revealId` 是开列表时要滚进可视区的那个 value。 */
2098
- function selectEntries(shown, emptyText, revealId) {
2079
+ /** 把候选排成 `Menu` 要的条目表:按 `group` 插分组标题;一项都没有时退回 `emptyText` 那一行(不给就是空表)。 */
2080
+ function selectEntries(shown, emptyText) {
2099
2081
  if (shown.length === 0) return emptyText === void 0 ? [] : [{
2100
2082
  type: "label",
2101
2083
  id: EMPTY_ID,
@@ -2112,7 +2094,7 @@ window.__ModuleLoader__.load({
2112
2094
  });
2113
2095
  group = option.group;
2114
2096
  }
2115
- out.push(itemOf(option, revealId));
2097
+ out.push(itemOf(option));
2116
2098
  }
2117
2099
  return out;
2118
2100
  }
@@ -2131,11 +2113,11 @@ window.__ModuleLoader__.load({
2131
2113
  if (openProp === void 0) setOpenState(next);
2132
2114
  onOpenChange?.(next);
2133
2115
  };
2134
- useEffect$32(() => {
2116
+ useEffect$33(() => {
2135
2117
  if (!open || props.search === false) return;
2136
2118
  boxRef.current?.querySelector("input")?.focus();
2137
2119
  }, [open, props.search]);
2138
- useEffect$32(() => {
2120
+ useEffect$33(() => {
2139
2121
  if (open) {
2140
2122
  wasOpenRef.current = true;
2141
2123
  return;
@@ -2192,10 +2174,9 @@ window.__ModuleLoader__.load({
2192
2174
  * @returns 触发器,以及打开时的搜索框与列表。
2193
2175
  */
2194
2176
  function SelectField(props) {
2195
- 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;
2177
+ 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;
2196
2178
  const state = useSelectState(props);
2197
2179
  const current = options.find((option) => option.value === value);
2198
- useRevealOnOpen(state.open, revealId);
2199
2180
  const variantClass = variant === "ghost" ? "wb-selectGhost" : void 0;
2200
2181
  const triggerClass = triggerClassOf(variantClass, iconOnly);
2201
2182
  if (loading) return framed(label, hint, className, selectLoadingNode({
@@ -2205,7 +2186,7 @@ window.__ModuleLoader__.load({
2205
2186
  ariaLabel,
2206
2187
  loadingText
2207
2188
  }));
2208
- if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$71(TextField, {
2189
+ if (fallback !== void 0 && options.length === 0) return framed(label, hint, className, h$70(TextField, {
2209
2190
  id,
2210
2191
  name,
2211
2192
  className: "wb-selectFallback",
@@ -2225,7 +2206,8 @@ window.__ModuleLoader__.load({
2225
2206
  icon,
2226
2207
  value: selectValueNode(current, renderValue, placeholder),
2227
2208
  iconOnly,
2228
- onOpen: () => state.setOpen(true)
2209
+ onOpen: () => state.setOpen(true),
2210
+ ref: state.triggerRef
2229
2211
  });
2230
2212
  const anchor = state.open && search ? searchNode({
2231
2213
  boxRef: state.boxRef,
@@ -2260,7 +2242,7 @@ window.__ModuleLoader__.load({
2260
2242
  anchor,
2261
2243
  selection,
2262
2244
  selectedId: selectCursorValue(state.shown, state.cursor) ?? void 0,
2263
- items: selectEntries(state.shown, state.empty, revealId),
2245
+ items: selectEntries(state.shown, state.empty),
2264
2246
  footer: footer === void 0 ? void 0 : [{
2265
2247
  id: FOOTER_ID,
2266
2248
  label: footer.label,
@@ -2288,11 +2270,11 @@ window.__ModuleLoader__.load({
2288
2270
  * @returns 一个 `role="group"` 的 section。
2289
2271
  */
2290
2272
  function SettingsSection({ label, title, action, children }) {
2291
- return h$71("section", {
2273
+ return h$70("section", {
2292
2274
  className: "wb-settings",
2293
2275
  role: "group",
2294
2276
  "aria-label": label
2295
- }, h$71("header", { className: "wb-settingsHead" }, h$71("span", { className: "wb-settingsTitle" }, title), action), children);
2277
+ }, h$70("header", { className: "wb-settingsHead" }, h$70("span", { className: "wb-settingsTitle" }, title), action), children);
2296
2278
  }
2297
2279
  //#endregion
2298
2280
  //#region ../shared/dist/components/Stack.js
@@ -2302,7 +2284,7 @@ window.__ModuleLoader__.load({
2302
2284
  * @returns 竖排的 div。
2303
2285
  */
2304
2286
  function Stack({ children }) {
2305
- return h$71("div", { className: "wb-stack" }, children);
2287
+ return h$70("div", { className: "wb-stack" }, children);
2306
2288
  }
2307
2289
  //#endregion
2308
2290
  //#region ../shared/dist/components/StateBlock.js
@@ -2317,12 +2299,12 @@ window.__ModuleLoader__.load({
2317
2299
  * @returns 一个 div。
2318
2300
  */
2319
2301
  function StateBlock({ title, dot, hint, actions, resolving, children }) {
2320
- 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));
2302
+ return h$70("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h$70("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h$70("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h$70("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h$70("div", { className: "wb-stateBlockActions" }, actions));
2321
2303
  }
2322
2304
  //#endregion
2323
2305
  //#region ../shared/dist/components/icons.js
2324
2306
  function Shell({ size, strokeWidth = 1, viewBox = "0 0 16 16", children }) {
2325
- return h$71("svg", {
2307
+ return h$70("svg", {
2326
2308
  width: size,
2327
2309
  height: size,
2328
2310
  viewBox,
@@ -2339,10 +2321,10 @@ window.__ModuleLoader__.load({
2339
2321
  * @returns 一枚 `aria-hidden` 的 svg。
2340
2322
  */
2341
2323
  function IconConversation({ size = 16 }) {
2342
- return h$71(Shell, {
2324
+ return h$70(Shell, {
2343
2325
  size,
2344
2326
  strokeWidth: 1.3
2345
- }, h$71("path", {
2327
+ }, h$70("path", {
2346
2328
  d: "M2.5 7.2c0-2.3 2.1-4.2 4.8-4.2h1.4c2.7 0 4.8 1.9 4.8 4.2s-2.1 4.2-4.8 4.2H7.5l-3.2 2v-2.3c-1.1-.8-1.8-2-1.8-3.9Z",
2347
2329
  stroke: "currentColor",
2348
2330
  strokeLinejoin: "round"
@@ -2357,30 +2339,30 @@ window.__ModuleLoader__.load({
2357
2339
  * @returns 一枚 `aria-hidden` 的 svg。
2358
2340
  */
2359
2341
  function IconBrandMark({ size = 24 }) {
2360
- return h$71(Shell, {
2342
+ return h$70(Shell, {
2361
2343
  size,
2362
2344
  viewBox: "0 0 64 64"
2363
- }, h$71("path", {
2345
+ }, h$70("path", {
2364
2346
  d: BRAND_FRAME,
2365
2347
  fill: "currentColor",
2366
2348
  fillRule: "evenodd"
2367
- }), h$71("rect", {
2349
+ }), h$70("rect", {
2368
2350
  x: 27.5,
2369
2351
  y: 48,
2370
2352
  width: 9,
2371
2353
  height: 4.75,
2372
2354
  fill: "currentColor"
2373
- }), h$71("rect", {
2355
+ }), h$70("rect", {
2374
2356
  x: 19,
2375
2357
  y: 52.75,
2376
2358
  width: 26,
2377
2359
  height: 4.75,
2378
2360
  rx: 2.375,
2379
2361
  fill: "currentColor"
2380
- }), h$71("g", { transform: BRAND_TAIL_TRANSFORM }, h$71("path", {
2362
+ }), h$70("g", { transform: BRAND_TAIL_TRANSFORM }, h$70("path", {
2381
2363
  d: BRAND_TAIL,
2382
2364
  fill: "currentColor"
2383
- }), h$71("circle", {
2365
+ }), h$70("circle", {
2384
2366
  cx: 6.885,
2385
2367
  cy: 13.742,
2386
2368
  r: 1.95,
@@ -2393,30 +2375,30 @@ window.__ModuleLoader__.load({
2393
2375
  * @returns 一枚 `aria-hidden` 的 svg。
2394
2376
  */
2395
2377
  function IconOpencli({ size = 16 }) {
2396
- return h$71(Shell, {
2378
+ return h$70(Shell, {
2397
2379
  size,
2398
2380
  viewBox: "0 0 64 64"
2399
- }, h$71("defs", null, h$71("linearGradient", {
2381
+ }, h$70("defs", null, h$70("linearGradient", {
2400
2382
  id: "opencli-mark",
2401
2383
  x1: "0%",
2402
2384
  y1: "0%",
2403
2385
  x2: "100%",
2404
2386
  y2: "100%"
2405
- }, h$71("stop", {
2387
+ }, h$70("stop", {
2406
2388
  offset: "0%",
2407
2389
  stopColor: "#00e5a0"
2408
- }), h$71("stop", {
2390
+ }), h$70("stop", {
2409
2391
  offset: "50%",
2410
2392
  stopColor: "#00b4d8"
2411
- }), h$71("stop", {
2393
+ }), h$70("stop", {
2412
2394
  offset: "100%",
2413
2395
  stopColor: "#7b61ff"
2414
- }))), h$71("rect", {
2396
+ }))), h$70("rect", {
2415
2397
  width: 64,
2416
2398
  height: 64,
2417
2399
  rx: 14,
2418
2400
  fill: "#0a0a0f"
2419
- }), h$71("text", {
2401
+ }), h$70("text", {
2420
2402
  x: "50%",
2421
2403
  y: "54%",
2422
2404
  dominantBaseline: "middle",
@@ -2433,10 +2415,10 @@ window.__ModuleLoader__.load({
2433
2415
  * @returns 一枚 `aria-hidden` 的 svg。
2434
2416
  */
2435
2417
  function IconNpm({ size = 16 }) {
2436
- return h$71(Shell, {
2418
+ return h$70(Shell, {
2437
2419
  size,
2438
2420
  viewBox: "0 0 1024 1024"
2439
- }, h$71("path", {
2421
+ }, h$70("path", {
2440
2422
  d: "M64 337.76h896v298.72H512v49.792H312.896v-49.824H64z m49.792 248.928h99.552v-149.376h49.76v149.344h49.792v-199.104H113.792z m248.896-199.136v248.928h99.552v-49.792h99.552v-199.136z m99.552 49.792H512v99.584h-49.792z m149.344-49.792v199.136h99.552v-149.376h49.792v149.344h49.792v-149.344h49.792v149.344h49.792v-199.104z",
2441
2423
  fill: "#CB3837"
2442
2424
  }));
@@ -2447,37 +2429,37 @@ window.__ModuleLoader__.load({
2447
2429
  * @returns 一枚 `aria-hidden` 的 svg。
2448
2430
  */
2449
2431
  function IconModuleMark({ size = 16 }) {
2450
- return h$71(Shell, {
2432
+ return h$70(Shell, {
2451
2433
  size,
2452
2434
  viewBox: "0 0 24 24"
2453
- }, h$71("defs", null, h$71("linearGradient", {
2435
+ }, h$70("defs", null, h$70("linearGradient", {
2454
2436
  id: "workbench-module-mark",
2455
2437
  x1: "0%",
2456
2438
  y1: "0%",
2457
2439
  x2: "100%",
2458
2440
  y2: "100%"
2459
- }, h$71("stop", {
2441
+ }, h$70("stop", {
2460
2442
  offset: "0%",
2461
2443
  stopColor: "#3b82f6"
2462
- }), h$71("stop", {
2444
+ }), h$70("stop", {
2463
2445
  offset: "55%",
2464
2446
  stopColor: "#8b5cf6"
2465
- }), h$71("stop", {
2447
+ }), h$70("stop", {
2466
2448
  offset: "100%",
2467
2449
  stopColor: "#14b8a6"
2468
- }))), h$71("rect", {
2450
+ }))), h$70("rect", {
2469
2451
  width: 24,
2470
2452
  height: 24,
2471
2453
  rx: 7,
2472
2454
  fill: "url(#workbench-module-mark)"
2473
- }), h$71("rect", {
2455
+ }), h$70("rect", {
2474
2456
  x: "4.6",
2475
2457
  y: "4.6",
2476
2458
  width: "6.2",
2477
2459
  height: "6.2",
2478
2460
  rx: "1.9",
2479
2461
  fill: "#ffffff"
2480
- }), h$71("rect", {
2462
+ }), h$70("rect", {
2481
2463
  x: "13.2",
2482
2464
  y: "4.6",
2483
2465
  width: "6.2",
@@ -2485,7 +2467,7 @@ window.__ModuleLoader__.load({
2485
2467
  rx: "1.9",
2486
2468
  fill: "#ffffff",
2487
2469
  fillOpacity: .78
2488
- }), h$71("rect", {
2470
+ }), h$70("rect", {
2489
2471
  x: "4.6",
2490
2472
  y: "13.2",
2491
2473
  width: "6.2",
@@ -2493,7 +2475,7 @@ window.__ModuleLoader__.load({
2493
2475
  rx: "1.9",
2494
2476
  fill: "#ffffff",
2495
2477
  fillOpacity: .78
2496
- }), h$71("rect", {
2478
+ }), h$70("rect", {
2497
2479
  x: "13.2",
2498
2480
  y: "13.2",
2499
2481
  width: "6.2",
@@ -2508,7 +2490,7 @@ window.__ModuleLoader__.load({
2508
2490
  * @returns 一枚 `aria-hidden` 的 svg。
2509
2491
  */
2510
2492
  function IconPanelScreen({ size = 16 }) {
2511
- return h$71("svg", {
2493
+ return h$70("svg", {
2512
2494
  width: size,
2513
2495
  height: size,
2514
2496
  viewBox: "0 0 1024 1024",
@@ -2519,7 +2501,7 @@ window.__ModuleLoader__.load({
2519
2501
  display: "block",
2520
2502
  overflow: "hidden"
2521
2503
  }
2522
- }, 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" }));
2504
+ }, h$70("path", { d: "M939 112c17.673 0 32 14.327 32 32v554.667c0 17.673-14.327 32-32 32l-394.5-0.001v96c0 3.74-0.642 7.331-1.82 10.668H768.4c17.673 0 32 14.326 32 32 0 17.496-14.042 31.712-31.47 31.995l-0.53 0.004H256.6c-17.673 0-32-14.327-32-32 0-17.496 14.042-31.713 31.47-31.995l0.53-0.005h225.721a31.923 31.923 0 0 1-1.817-10.137l-0.004-0.53v-96H86c-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V144c0-17.673 14.327-32 32-32z m-32 64H118v490.666h789V176zM341.9 432c17.496 0 31.713 14.042 31.996 31.47l0.004 0.53v85.333c0 17.673-14.327 32-32 32-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V464c0-17.673 14.327-32 32-32z m170.6-85.333c17.496 0 31.713 14.041 31.996 31.47l0.004 0.53v170.666c0 17.673-14.327 32-32 32-17.496 0-31.713-14.041-31.996-31.47l-0.004-0.53V378.667c0-17.673 14.327-32 32-32z m170.6-85.334c17.496 0 31.713 14.042 31.996 31.471l0.004 0.53v256c0 17.672-14.327 32-32 32-17.496 0-31.713-14.042-31.996-31.471l-0.004-0.53v-256c0-17.673 14.327-32 32-32z" }));
2523
2505
  }
2524
2506
  //#endregion
2525
2507
  //#region ../shared/dist/config/storage.js
@@ -2827,7 +2809,7 @@ window.__ModuleLoader__.load({
2827
2809
  if (raw["docs"] !== void 0 && text(raw["docs"]) === "") errors.push(`${at}.docs 是空串`);
2828
2810
  if (kind === "lib") errors.push(...libRunsProblemsOf(raw["runs"], at));
2829
2811
  if (kind === "extension") {
2830
- if (text(raw["runtime"]) === "") errors.push(`${at}.runtime 没写 —— 扩展属于哪个运行时(如 opencli)`);
2812
+ if (text(raw["runtime"]) === "") errors.push(`${at}.runtime 没写 —— 扩展属于哪个运行时`);
2831
2813
  if (text(raw["name"]) === "") errors.push(`${at}.name 没写`);
2832
2814
  if (raw["commands"] !== void 0) {
2833
2815
  if (!Array.isArray(raw["commands"])) errors.push(`${at}.commands 要是数组`);
@@ -3084,7 +3066,11 @@ window.__ModuleLoader__.load({
3084
3066
  "time.short.years": "{n}y",
3085
3067
  "panels.title": "Panel modules",
3086
3068
  "panels.groupBoardless": "No-board modules",
3087
- "panels.groupPlugins": "opencli plugins",
3069
+ "panels.groupPlugins": "Plugins",
3070
+ "runtime.plugin": "plugin",
3071
+ "runtime.pluginOf": "a plugin the runtime provides",
3072
+ "runtime.pluginThing": "a plugin",
3073
+ "runtime.pluginArea": "the plugin area",
3088
3074
  "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.",
3089
3075
  "panels.market.defaultLabel": "On by default everywhere",
3090
3076
  "panels.market.defaultLocked": "Unusable right now — update or uninstall it first",
@@ -3162,9 +3148,6 @@ window.__ModuleLoader__.load({
3162
3148
  "panels.market.confirmNo": "Cancel",
3163
3149
  "panels.market.noMarketSource": "The index has no newer version of this module (refresh the index and retry)",
3164
3150
  "panels.market.failed": "Failed: {reason}",
3165
- "panels.market.askAgent": "Ask the agent",
3166
- "panels.market.askAgentCopied": "Copied",
3167
- "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.",
3168
3151
  "panels.market.failure.permission": "Didn't install: no write access",
3169
3152
  "panels.market.failure.diskFull": "Didn't install: the disk is full",
3170
3153
  "panels.market.failure.sandbox": "Didn't install: the system blocked it",
@@ -3204,7 +3187,7 @@ window.__ModuleLoader__.load({
3204
3187
  "panels.market.noSource": "This module declares no install method — install it yourself",
3205
3188
  "panels.market.badSource": "The install method is incomplete — install it yourself",
3206
3189
  "panels.market.empty": "No modules available",
3207
- "panels.market.sectionPlugins": "Installed opencli plugins",
3190
+ "panels.market.sectionPlugins": "Installed plugins",
3208
3191
  "panels.market.moduleOutdated": "update available",
3209
3192
  "panels.market.updateNeedsWorkbench": "this version needs a newer workbench first",
3210
3193
  "panels.market.updateIncompatible": "the new version does not match this workbench, so it cannot be installed now",
@@ -3242,7 +3225,7 @@ window.__ModuleLoader__.load({
3242
3225
  "panels.market.justNow": "just now",
3243
3226
  "panels.market.minutesAgo": "{n} min ago",
3244
3227
  "panels.market.hoursAgo": "{n} h ago",
3245
- "panels.market.add.description": "Enter a module or opencli plugin package name, Git repository URL, or local directory path.",
3228
+ "panels.market.add.description": "Enter a module or {plugin} package name, Git repository URL, or local directory path.",
3246
3229
  "panels.market.add.specPlaceholder": "e.g. @dsh-workbench/module-hello",
3247
3230
  "panels.market.add.guideToggle": "Install guide and examples",
3248
3231
  "panels.market.add.guideHide": "Hide guide",
@@ -3281,12 +3264,12 @@ window.__ModuleLoader__.load({
3281
3264
  "panels.market.add.problemInstalled": "This module is already installed (add @version to switch versions)",
3282
3265
  "panels.market.add.problemNotFound": "No such module found",
3283
3266
  "panels.market.add.problemNotPackage": "That path does not exist or is not a valid module package",
3284
- "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.",
3267
+ "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.",
3285
3268
  "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.",
3286
- "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.",
3287
- "panels.market.add.failureNotModuleOrPlugin": "This package is neither a workbench module nor an opencli plugin, so installing it would do nothing",
3288
- "panels.market.add.installedPlugin": "Installed: the opencli plugin {name}",
3289
- "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.",
3269
+ "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.",
3270
+ "panels.market.add.failureNotModuleOrPlugin": "This package is neither a workbench module nor {pluginOf}, so installing it would do nothing",
3271
+ "panels.market.add.installedPlugin": "Installed: {plugin} {name}",
3272
+ "panels.market.add.pluginPreview": "This is {pluginThing}: it goes into {pluginArea} and works as soon as it is installed — no restart.",
3290
3273
  "panels.market.add.pluginAlias": "Plugin name: {name}",
3291
3274
  "panels.market.add.problemNetwork": "Cannot reach the module source; check the network and retry",
3292
3275
  "panels.market.add.problemUnknown": "Cannot fetch module information: {reason}",
@@ -3382,7 +3365,7 @@ window.__ModuleLoader__.load({
3382
3365
  "panels.discover.missingIndex": "This repository has no {path} yet.",
3383
3366
  "panels.discover.initTitle": "Initialize this repository as a module market index?",
3384
3367
  "panels.discover.initCta": "Initialize market index",
3385
- "panels.discover.initWhat": "It will write the index directory market/ and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under artifacts/<package-name>/<version>/ and their entry under market/<package-name>/<version>.json. The repository stays owned by its owner.",
3368
+ "panels.discover.initWhat": "It will write the index directory market/ and README.md on {branch}, commit once, and push. Modules you publish from this workbench will commit their build files under artifacts/<package-name>/ and their entry in market/<package-name>.json. The repository stays owned by its owner.",
3386
3369
  "panels.discover.initBranch": "Branch",
3387
3370
  "panels.discover.initBranchHint": "The index and build files go to this branch; an empty repository gets it created.",
3388
3371
  "panels.discover.initBranchBad": "Use only letters, digits, dots, underscores, slashes, or dashes in a branch name.",
@@ -3562,7 +3545,7 @@ window.__ModuleLoader__.load({
3562
3545
  "blocker.forbidden.hint": "You are signed in, but this project/repo is not permitted for your account.",
3563
3546
  "blocker.forbidden.open": "Open permissions page",
3564
3547
  "blocker.timeout.hint": "The background browser may not have started; retrying usually helps.",
3565
- "blocker.exec.hint": "Make sure opencli is installed and runs from your terminal (which opencli).",
3548
+ "blocker.exec.hint": "Make sure the runtime is installed and runs from your terminal.",
3566
3549
  "blocker.unknown.title": "Something went wrong",
3567
3550
  "panels.reading": "Reading the panel setup…",
3568
3551
  "panels.cardBroken": "This module will not render: {unit} ({reason})",
@@ -3579,16 +3562,11 @@ window.__ModuleLoader__.load({
3579
3562
  "env.stepFailed.shell": "cannot reach the command line",
3580
3563
  "env.toolchain.ok": "Looks good",
3581
3564
  "env.toolchain.warn": "Almost ready",
3582
- "env.opencli.ok": "Ready",
3565
+ "env.runtime.ok": "Ready",
3583
3566
  "env.bridge.ok": "Connected",
3584
3567
  "env.bridge.short": "Not connected yet",
3585
3568
  "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.",
3586
3569
  "env.bridge.hold": "The browser is not connected yet — fix it below and hit Retry, or enter the workbench first.",
3587
- "env.bridge.daemon": "The background service is not running. It usually starts by itself — run the command below in your terminal first.",
3588
- "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).",
3589
- "env.bridge.extensionLink": "Get the extension in the Chrome Web Store",
3590
- "env.bridge.profile": "Several browser accounts are connected but none is the default: list them (command below), then pick one.",
3591
- "env.bridge.stale": "The default browser account is stale (it names an extension instance that no longer exists): pick one again.",
3592
3570
  "env.bridge.unknown": "Could not tell what went wrong. Expand the raw output and follow the steps in it.",
3593
3571
  "env.fix.title": "How to fix it",
3594
3572
  "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.",
@@ -3618,7 +3596,8 @@ window.__ModuleLoader__.load({
3618
3596
  "env.copyCommand": "Copy command",
3619
3597
  "env.copied": "Copied",
3620
3598
  "env.step.toolchain": "Runtime",
3621
- "env.step.opencli": "Background tools",
3599
+ "env.step.adapter": "Runtime",
3600
+ "env.step.runtime": "Background tools",
3622
3601
  "env.step.bridge": "Browser connection",
3623
3602
  "env.step.diy": "DIY mode",
3624
3603
  "env.step.warm": "Site sign-in",
@@ -3713,6 +3692,8 @@ window.__ModuleLoader__.load({
3713
3692
  "approval.publish.version": "Version",
3714
3693
  "approval.publish.author": "Author",
3715
3694
  "approval.publish.authorMissing": "unsigned",
3695
+ "approval.publish.labels": "Labels",
3696
+ "approval.publish.labelsMissing": "none yet (1–2 picked on publish)",
3716
3697
  "approval.publish.owner": "Owner",
3717
3698
  "approval.publish.ownerUnowned": "originally unattributed",
3718
3699
  "approval.publish.ownerTaken": "Owned by {owner}",
@@ -3830,7 +3811,11 @@ window.__ModuleLoader__.load({
3830
3811
  "time.short.years": "{n}年",
3831
3812
  "panels.title": "面板模块",
3832
3813
  "panels.groupBoardless": "无看板模块",
3833
- "panels.groupPlugins": "opencli 插件",
3814
+ "panels.groupPlugins": "插件",
3815
+ "runtime.plugin": "插件",
3816
+ "runtime.pluginOf": "运行时提供的插件",
3817
+ "runtime.pluginThing": "插件",
3818
+ "runtime.pluginArea": "插件区",
3834
3819
  "panels.market.defaultHint": "打开后所有工作区默认开启,也可在工作区面板配置中单独关闭",
3835
3820
  "panels.market.defaultLabel": "全局默认开启",
3836
3821
  "panels.market.defaultLocked": "这份现在用不了,先更新或卸载",
@@ -3908,9 +3893,6 @@ window.__ModuleLoader__.load({
3908
3893
  "panels.market.confirmNo": "取消",
3909
3894
  "panels.market.noMarketSource": "索引里没有这个模块的新版本(刷新一次索引再试)",
3910
3895
  "panels.market.failed": "没成功:{reason}",
3911
- "panels.market.askAgent": "问 agent",
3912
- "panels.market.askAgentCopied": "已复制",
3913
- "panels.market.askAgentText": "工作台里「{name}」(单元 {unit})用不了:{reason}。帮我查清缺什么、怎么补,补完确认真能用。",
3914
3896
  "panels.market.failure.permission": "没装上:没有写入权限",
3915
3897
  "panels.market.failure.diskFull": "没装上:磁盘满了",
3916
3898
  "panels.market.failure.sandbox": "没装上:被系统拦住了",
@@ -3950,7 +3932,7 @@ window.__ModuleLoader__.load({
3950
3932
  "panels.market.noSource": "这个模块没声明怎么装,只能自己动手",
3951
3933
  "panels.market.badSource": "安装方式没写全,只能自己动手",
3952
3934
  "panels.market.empty": "暂无可用模块",
3953
- "panels.market.sectionPlugins": "已安装 opencli 插件",
3935
+ "panels.market.sectionPlugins": "已安装的插件",
3954
3936
  "panels.market.moduleOutdated": "有新版",
3955
3937
  "panels.market.updateNeedsWorkbench": "新版本要先把工作台升级才能用",
3956
3938
  "panels.market.updateIncompatible": "新版本和当前的工作台不匹配,暂时不能更新",
@@ -3988,7 +3970,7 @@ window.__ModuleLoader__.load({
3988
3970
  "panels.market.justNow": "刚刚",
3989
3971
  "panels.market.minutesAgo": "{n} 分钟前",
3990
3972
  "panels.market.hoursAgo": "{n} 小时前",
3991
- "panels.market.add.description": "输入模块或 opencli 插件的包名、Git 仓库地址或本地目录路径。",
3973
+ "panels.market.add.description": "输入模块或 {plugin}的包名、Git 仓库地址或本地目录路径。",
3992
3974
  "panels.market.add.specPlaceholder": "例如 @dsh-workbench/module-hello",
3993
3975
  "panels.market.add.guideToggle": "模块安装引导和示例",
3994
3976
  "panels.market.add.guideHide": "收起引导",
@@ -4027,12 +4009,12 @@ window.__ModuleLoader__.load({
4027
4009
  "panels.market.add.problemInstalled": "这个模块已经装过了(要换版本请带上 @版本)",
4028
4010
  "panels.market.add.problemNotFound": "未找到相关模块",
4029
4011
  "panels.market.add.problemNotPackage": "该路径不存在或不是有效的模块包",
4030
- "panels.market.add.problemNotBundle": "这个包装不进这里:{reason}。这个入口按包名认工作台模块和 opencli 插件,两种都能装;但 git 地址和 tarball 判断不出它是什么 —— 要是它其实是这两样之一,请改填包名或本地目录。",
4012
+ "panels.market.add.problemNotBundle": "这个包装不进这里:{reason}。这个入口按包名认工作台模块和 {plugin},两种都能装;但 git 地址和 tarball 判断不出它是什么 —— 要是它其实是这两样之一,请改填包名或本地目录。",
4031
4013
  "panels.market.add.problemNotWorkbenchModule": "这个包跟现在的工作台对不上,装上也用不了。换一个版本,或者找这个模块的作者。",
4032
- "panels.market.add.problemNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 opencli 的插件,装了也用不上。换一个版本,或者找这个包的作者。",
4033
- "panels.market.add.failureNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 opencli 的插件,装了也用不上",
4034
- "panels.market.add.installedPlugin": "装上了:opencli 插件 {name}",
4035
- "panels.market.add.pluginPreview": "这是一份 opencli 插件:装进 opencli 的插件区,装完就能用,不用重启。",
4014
+ "panels.market.add.problemNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 {pluginOf},装了也用不上。换一个版本,或者找这个包的作者。",
4015
+ "panels.market.add.failureNotModuleOrPlugin": "这个包既不是工作台的模块,也不是 {pluginOf},装了也用不上",
4016
+ "panels.market.add.installedPlugin": "装上了:{plugin} {name}",
4017
+ "panels.market.add.pluginPreview": "这是一份 {pluginThing}:装进 {pluginArea},装完就能用,不用重启。",
4036
4018
  "panels.market.add.pluginAlias": "插件名:{name}",
4037
4019
  "panels.market.add.problemNetwork": "无法连接模块源,请检查网络后重试",
4038
4020
  "panels.market.add.problemUnknown": "无法获取模块信息:{reason}",
@@ -4128,7 +4110,7 @@ window.__ModuleLoader__.load({
4128
4110
  "panels.discover.missingIndex": "仓库里还没有索引文件 {path}",
4129
4111
  "panels.discover.initTitle": "把这个仓库初始化成模块市场索引?",
4130
4112
  "panels.discover.initCta": "初始化成市场索引",
4131
- "panels.discover.initWhat": "会在 {branch} 分支写索引目录 market/ 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 artifacts/<包名>/<版本>/,条目写到 market/<包名>/<版本>.json。仓库的写权限归它的所有者。",
4113
+ "panels.discover.initWhat": "会在 {branch} 分支写索引目录 market/ 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 artifacts/<包名>/,条目写到 market/<包名>.json。仓库的写权限归它的所有者。",
4132
4114
  "panels.discover.initBranch": "分支",
4133
4115
  "panels.discover.initBranchHint": "索引和打包文件都发到这个分支;空仓库会新建它。",
4134
4116
  "panels.discover.initBranchBad": "分支名只能用字母、数字、点、下划线、斜杠或短横线",
@@ -4308,7 +4290,7 @@ window.__ModuleLoader__.load({
4308
4290
  "blocker.forbidden.hint": "账号已登录,但没有这个项目/仓库的权限;申请之后再试。",
4309
4291
  "blocker.forbidden.open": "打开权限页",
4310
4292
  "blocker.timeout.hint": "后台浏览器没起来,重试一次通常就好。",
4311
- "blocker.exec.hint": "确认 opencli 已经装好、在终端里能直接运行(which opencli)。",
4293
+ "blocker.exec.hint": "确认运行时已经装好、在终端里能直接跑起来。",
4312
4294
  "blocker.unknown.title": "出了点问题",
4313
4295
  "panels.reading": "正在读取面板配置…",
4314
4296
  "panels.cardBroken": "这个模块起不来:{unit}({reason})",
@@ -4325,16 +4307,11 @@ window.__ModuleLoader__.load({
4325
4307
  "env.stepFailed.shell": "连不上命令行",
4326
4308
  "env.toolchain.ok": "正常",
4327
4309
  "env.toolchain.warn": "还没完全准备好",
4328
- "env.opencli.ok": "已就绪",
4310
+ "env.runtime.ok": "已就绪",
4329
4311
  "env.bridge.ok": "已连接",
4330
4312
  "env.bridge.short": "还没连上",
4331
4313
  "env.bridge.why": "面板的数据要用你浏览器里的登录状态。这个连接没通,模块就取不到数据;不拦路:修好它,或者先进入工作台。",
4332
4314
  "env.bridge.hold": "浏览器还没连上 —— 按下面修好后点「重试」,也可以先进工作台。",
4333
- "env.bridge.daemon": "后台服务没起来:正常它会自己起,先在终端跑下面这条命令。",
4334
- "env.bridge.extension": "浏览器扩展没连上:确认浏览器开着、扩展已启用;没装就从商店装一次(装完回来点「重试」)。",
4335
- "env.bridge.extensionLink": "去 Chrome 应用商店装扩展",
4336
- "env.bridge.profile": "连上了多个浏览器账号,但没选默认的那个:先看有哪些(下面这条命令),再选一个。",
4337
- "env.bridge.stale": "默认的浏览器账号已经失效(它记的是上一次的扩展实例):重新选一个。",
4338
4315
  "env.bridge.unknown": "没认出是哪种问题:展开原文,按里面的步骤处理。",
4339
4316
  "env.fix.title": "怎么解决",
4340
4317
  "env.fix.why": "工作台用它自己那份后台工具(与你在终端里那套分开装,互不影响),这台机器上还没装好它。",
@@ -4364,7 +4341,8 @@ window.__ModuleLoader__.load({
4364
4341
  "env.copyCommand": "复制命令",
4365
4342
  "env.copied": "已复制",
4366
4343
  "env.step.toolchain": "运行环境",
4367
- "env.step.opencli": "后台工具",
4344
+ "env.step.adapter": "运行时",
4345
+ "env.step.runtime": "后台工具",
4368
4346
  "env.step.bridge": "浏览器连接",
4369
4347
  "env.step.diy": "DIY 模式",
4370
4348
  "env.step.warm": "站点登录状态",
@@ -4459,6 +4437,8 @@ window.__ModuleLoader__.load({
4459
4437
  "approval.publish.version": "版本",
4460
4438
  "approval.publish.author": "作者",
4461
4439
  "approval.publish.authorMissing": "未署名",
4440
+ "approval.publish.labels": "标签",
4441
+ "approval.publish.labelsMissing": "还没有(发布到市场时补 1–2 个)",
4462
4442
  "approval.publish.owner": "认领人",
4463
4443
  "approval.publish.ownerUnowned": "原来没署名",
4464
4444
  "approval.publish.ownerTaken": "已有主人:{owner}",
@@ -4559,6 +4539,30 @@ window.__ModuleLoader__.load({
4559
4539
  };
4560
4540
  }
4561
4541
  //#endregion
4542
+ //#region ../shared/dist/i18n/runtime-terms.js
4543
+ /**
4544
+ * 把适配器给的 zh / en 两份文案落到当前语言。
4545
+ * @param text 适配器档案里的那段话。
4546
+ * @param resolve dsh 的语言解析器;没有就取中文那份。
4547
+ * @returns 当前语言的那一段。
4548
+ */
4549
+ function resolveRuntimeText(text, resolve) {
4550
+ return resolve === void 0 ? text.zh : resolve(text);
4551
+ }
4552
+ /**
4553
+ * 取当前语言的运行时术语(没给档案时的兜底)。
4554
+ * @param t 文案函数。
4555
+ * @returns `plugin` / `pluginOf` / `pluginThing` / `pluginArea` 四个名词短语。
4556
+ */
4557
+ function runtimeTermsOf$1(t) {
4558
+ return {
4559
+ plugin: t("runtime.plugin"),
4560
+ pluginOf: t("runtime.pluginOf"),
4561
+ pluginThing: t("runtime.pluginThing"),
4562
+ pluginArea: t("runtime.pluginArea")
4563
+ };
4564
+ }
4565
+ //#endregion
4562
4566
  //#region ../shared/dist/lib/market-index.js
4563
4567
  var BRANCH = /^[A-Za-z0-9][A-Za-z0-9._/-]*$/;
4564
4568
  function marketBranchOk(value) {
@@ -5004,14 +5008,14 @@ window.__ModuleLoader__.load({
5004
5008
  epoch$1 += 1;
5005
5009
  }
5006
5010
  var current$1 = null;
5007
- var listeners$8 = /* @__PURE__ */ new Set();
5011
+ var listeners$9 = /* @__PURE__ */ new Set();
5008
5012
  function capabilityValue() {
5009
5013
  return current$1;
5010
5014
  }
5011
5015
  function subscribeCapabilities(listener) {
5012
- listeners$8.add(listener);
5016
+ listeners$9.add(listener);
5013
5017
  return () => {
5014
- listeners$8.delete(listener);
5018
+ listeners$9.delete(listener);
5015
5019
  };
5016
5020
  }
5017
5021
  function setCapabilities(next, rechecked = false) {
@@ -5024,7 +5028,7 @@ window.__ModuleLoader__.load({
5024
5028
  });
5025
5029
  if (next === current$1) return;
5026
5030
  current$1 = next;
5027
- for (const listener of [...listeners$8]) listener();
5031
+ for (const listener of [...listeners$9]) listener();
5028
5032
  }
5029
5033
  function beginProbe() {
5030
5034
  probing += 1;
@@ -5152,7 +5156,7 @@ window.__ModuleLoader__.load({
5152
5156
  //#endregion
5153
5157
  //#region src/app/layouts/panel-hint.ts
5154
5158
  var hints = /* @__PURE__ */ new Map();
5155
- var listeners$7 = /* @__PURE__ */ new Set();
5159
+ var listeners$8 = /* @__PURE__ */ new Set();
5156
5160
  function sameHint(left, right) {
5157
5161
  if (left === null || right === null) return left === right;
5158
5162
  if (left.labelKey !== right.labelKey || left.tone !== right.tone) return false;
@@ -5164,15 +5168,15 @@ window.__ModuleLoader__.load({
5164
5168
  if (sameHint(hints.get(id) ?? null, hint)) return;
5165
5169
  if (hint === null) hints.delete(id);
5166
5170
  else hints.set(id, hint);
5167
- for (const listener of [...listeners$7]) listener();
5171
+ for (const listener of [...listeners$8]) listener();
5168
5172
  }
5169
5173
  function panelHintOf(id) {
5170
5174
  return id === null ? null : hints.get(id) ?? null;
5171
5175
  }
5172
5176
  function subscribePanelHints(listener) {
5173
- listeners$7.add(listener);
5177
+ listeners$8.add(listener);
5174
5178
  return () => {
5175
- listeners$7.delete(listener);
5179
+ listeners$8.delete(listener);
5176
5180
  };
5177
5181
  }
5178
5182
  function usePanelHint(id) {
@@ -5413,13 +5417,6 @@ window.__ModuleLoader__.load({
5413
5417
  function marketSwitchLocked(row) {
5414
5418
  return SWITCH_LOCKED.has(row.state);
5415
5419
  }
5416
- function marketAsksAgent(row) {
5417
- if (row.workbench === true || row.plugin === true) return false;
5418
- if (row.state === "installed" || row.state === "inactive" || row.state === "outdated") return false;
5419
- if (row.state === "checking" || row.state === "pending-restart") return false;
5420
- if (row.state === "pending-followup") return false;
5421
- return !marketActions$1(row).includes("install");
5422
- }
5423
5420
  function marketActions$1(row) {
5424
5421
  if (row.workbench === true) {
5425
5422
  if (row.followUp !== void 0 && row.state === "pending-followup") return row.followUp.hard ? ["migrate-workbench"] : ["migrate-workbench", "dismiss-followup"];
@@ -5840,7 +5837,7 @@ window.__ModuleLoader__.load({
5840
5837
  }
5841
5838
  //#endregion
5842
5839
  //#region src/app/layouts/rightbar/market-busy.ts
5843
- var listeners$6 = /* @__PURE__ */ new Set();
5840
+ var listeners$7 = /* @__PURE__ */ new Set();
5844
5841
  var published = /* @__PURE__ */ new Map();
5845
5842
  var live$2 = /* @__PURE__ */ new Set();
5846
5843
  var timer$3;
@@ -5856,9 +5853,9 @@ window.__ModuleLoader__.load({
5856
5853
  refresh$1(now);
5857
5854
  }
5858
5855
  function subscribeMarketBusy(listener) {
5859
- listeners$6.add(listener);
5856
+ listeners$7.add(listener);
5860
5857
  return () => {
5861
- listeners$6.delete(listener);
5858
+ listeners$7.delete(listener);
5862
5859
  };
5863
5860
  }
5864
5861
  function useMarketBusy() {
@@ -5887,7 +5884,7 @@ window.__ModuleLoader__.load({
5887
5884
  const next = new Set(published.keys());
5888
5885
  if (!sameSet(live$2, next)) {
5889
5886
  live$2 = next;
5890
- for (const listener of [...listeners$6]) listener();
5887
+ for (const listener of [...listeners$7]) listener();
5891
5888
  }
5892
5889
  schedule$2(now);
5893
5890
  }
@@ -5900,7 +5897,7 @@ window.__ModuleLoader__.load({
5900
5897
  };
5901
5898
  var tokens = /* @__PURE__ */ new Set();
5902
5899
  var applied = /* @__PURE__ */ new Map();
5903
- var listeners$5 = /* @__PURE__ */ new Set();
5900
+ var listeners$6 = /* @__PURE__ */ new Set();
5904
5901
  var snapshot$1 = IDLE$2;
5905
5902
  var timer$2;
5906
5903
  function sameUnits(left, right) {
@@ -5924,7 +5921,7 @@ window.__ModuleLoader__.load({
5924
5921
  };
5925
5922
  if (next.installing !== snapshot$1.installing || !sameUnits(next.applied, snapshot$1.applied)) {
5926
5923
  snapshot$1 = next;
5927
- for (const listener of [...listeners$5]) listener();
5924
+ for (const listener of [...listeners$6]) listener();
5928
5925
  }
5929
5926
  schedule$1(now);
5930
5927
  }
@@ -5932,9 +5929,9 @@ window.__ModuleLoader__.load({
5932
5929
  return snapshot$1;
5933
5930
  }
5934
5931
  function subscribeMarketInstall(listener) {
5935
- listeners$5.add(listener);
5932
+ listeners$6.add(listener);
5936
5933
  return () => {
5937
- listeners$5.delete(listener);
5934
+ listeners$6.delete(listener);
5938
5935
  };
5939
5936
  }
5940
5937
  function publishMarketInstalling(token, active) {
@@ -6414,7 +6411,7 @@ window.__ModuleLoader__.load({
6414
6411
  };
6415
6412
  //#endregion
6416
6413
  //#region src/app/layouts/rightbar/FailureCard.tsx
6417
- var COPIED_MS$1 = 1200;
6414
+ var COPIED_MS = 1200;
6418
6415
  function terminalLabels(t) {
6419
6416
  return {
6420
6417
  commandLine: (line) => t("panels.market.failure.term.commandLine", { line }),
@@ -6441,7 +6438,7 @@ window.__ModuleLoader__.load({
6441
6438
  (0, _deepseek_ai_dsh_client_ui_primitives.writeClipboard)(model.fix).then((ok) => {
6442
6439
  if (!ok) return;
6443
6440
  setCopied(true);
6444
- setTimeout(() => setCopied(false), COPIED_MS$1);
6441
+ setTimeout(() => setCopied(false), COPIED_MS);
6445
6442
  });
6446
6443
  }, [model.fix]);
6447
6444
  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, {
@@ -6637,6 +6634,7 @@ window.__ModuleLoader__.load({
6637
6634
  "migrate-workbench": "panels.market.migrateAction",
6638
6635
  "dismiss-followup": "panels.market.dismissFollowUp"
6639
6636
  };
6637
+ var UPDATE_ACTIONS = Object.keys(ACTION_LABEL_KEY).filter((action) => ACTION_LABEL_KEY[action] === "panels.market.update");
6640
6638
  function holdOf(pending, application) {
6641
6639
  if (pending === null || pending.row === void 0) return void 0;
6642
6640
  if (application !== "applied") return void 0;
@@ -6734,18 +6732,6 @@ window.__ModuleLoader__.load({
6734
6732
  ...pending.version === void 0 ? {} : { version: { installed: pending.version } }
6735
6733
  };
6736
6734
  }
6737
- function askAgentReason(row, t) {
6738
- if (row.hint !== void 0) return t(row.hint);
6739
- if (row.note !== void 0) return t(row.note.key, row.note.params);
6740
- return t(MARKET_STATE_KEY[row.state]);
6741
- }
6742
- function askAgentText(row, t) {
6743
- return t("panels.market.askAgentText", {
6744
- name: marketRowTitle(row, t),
6745
- unit: row.id,
6746
- reason: askAgentReason(row, t)
6747
- });
6748
- }
6749
6735
  //#endregion
6750
6736
  //#region src/app/layouts/rightbar/SharedSection.tsx
6751
6737
  function SharedLine({ t, row, pending, failure, onAct, onRecheck, rechecking }) {
@@ -6814,37 +6800,13 @@ window.__ModuleLoader__.load({
6814
6800
  });
6815
6801
  }
6816
6802
  //#endregion
6817
- //#region src/app/layouts/rightbar/AskAgentButton.tsx
6818
- var COPIED_MS = 1200;
6819
- function AskAgentButton({ t, text, label }) {
6820
- const [copied, setCopied] = (0, react.useState)(false);
6821
- const onCopy = (0, react.useCallback)(() => {
6822
- (0, _deepseek_ai_dsh_client_ui_primitives.writeClipboard)(text).then((ok) => {
6823
- if (!ok) return;
6824
- setCopied(true);
6825
- setTimeout(() => setCopied(false), COPIED_MS);
6826
- });
6827
- }, [text]);
6828
- return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
6829
- type: "button",
6830
- size: "sm",
6831
- variant: "ghost",
6832
- onClick: onCopy
6833
- }, copied ? t("panels.market.askAgentCopied") : label);
6834
- }
6835
- //#endregion
6836
6803
  //#region src/app/layouts/rightbar/market-section.tsx
6837
6804
  var dangerActions = [
6838
6805
  "uninstall",
6839
6806
  "remove-bundle",
6840
6807
  "uninstall-plugin"
6841
6808
  ];
6842
- var updateActions = [
6843
- "update",
6844
- "update-bundle",
6845
- "update-plugin",
6846
- "update-workbench"
6847
- ];
6809
+ var updateActions = UPDATE_ACTIONS;
6848
6810
  function MigrationConfirm({ t, onConfirm, onCancel }) {
6849
6811
  const [acknowledged, setAcknowledged] = (0, react.useState)(false);
6850
6812
  return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.RiskConfirmation, {
@@ -6921,7 +6883,6 @@ window.__ModuleLoader__.load({
6921
6883
  const [dismissOpen, setDismissOpen] = (0, react.useState)(false);
6922
6884
  const quiet = row.workbench === true && row.state === "installed" && row.hint === void 0;
6923
6885
  const actions = marketActions$1(row);
6924
- const asksAgent = marketAsksAgent(row);
6925
6886
  const switchLocked = marketSwitchLocked(row);
6926
6887
  return /* @__PURE__ */ (0, react.createElement)("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ (0, react.createElement)("span", {
6927
6888
  className: MarketPage_module_default.marketIcon,
@@ -6933,11 +6894,7 @@ window.__ModuleLoader__.load({
6933
6894
  t,
6934
6895
  row,
6935
6896
  quiet
6936
- })), /* @__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, {
6937
- t,
6938
- text: askAgentText(row, t),
6939
- label: t("panels.market.askAgent")
6940
- }) : null, actions.map((action) => {
6897
+ })), /* @__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) => {
6941
6898
  const danger = dangerActions.includes(action);
6942
6899
  const update = updateActions.includes(action);
6943
6900
  return /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.Button, {
@@ -7607,7 +7564,7 @@ window.__ModuleLoader__.load({
7607
7564
  };
7608
7565
  var NO_ROWS = [];
7609
7566
  var NO_UNITS$1 = /* @__PURE__ */ new Set();
7610
- function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking }) {
7567
+ function MarketBody({ t, self, shown, pluginList, installedList, shared, pending, failed, notice, act, onConfirming, setDefault, boardBusy, checks, onRecheck, rechecking, runtimePluginMarket }) {
7611
7568
  const failureOf = (id) => failed?.id === id ? failed : null;
7612
7569
  const foot = marketFootVisible(shown, installedList);
7613
7570
  const sections = marketSections(marketOrder([...shown, ...installedList], (row) => marketRowTitle(row, t)));
@@ -7658,7 +7615,7 @@ window.__ModuleLoader__.load({
7658
7615
  onConfirming,
7659
7616
  onRecheck,
7660
7617
  rechecking
7661
- }), /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7618
+ }), runtimePluginMarket === false ? null : /* @__PURE__ */ (0, react.createElement)(MarketSection, {
7662
7619
  t,
7663
7620
  titleKey: "panels.market.sectionPlugins",
7664
7621
  icon: marketSectionIcon("plugins"),
@@ -7739,7 +7696,7 @@ window.__ModuleLoader__.load({
7739
7696
  })
7740
7697
  };
7741
7698
  }
7742
- 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 = {} }) {
7699
+ 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 = {} }) {
7743
7700
  const { pending, setPending, confirming, setConfirming, failed, setFailed, notice, setNotice } = useMarketTransient({
7744
7701
  mock,
7745
7702
  onPending
@@ -7840,6 +7797,7 @@ window.__ModuleLoader__.load({
7840
7797
  if (nothing) return /* @__PURE__ */ (0, react.createElement)(MarketEmpty, { t });
7841
7798
  return /* @__PURE__ */ (0, react.createElement)(react.Fragment, null, /* @__PURE__ */ (0, react.createElement)(MarketBody, {
7842
7799
  t,
7800
+ runtimePluginMarket,
7843
7801
  self,
7844
7802
  shown,
7845
7803
  pluginList,
@@ -7865,6 +7823,55 @@ window.__ModuleLoader__.load({
7865
7823
  }));
7866
7824
  }
7867
7825
  //#endregion
7826
+ //#region src/shared/hooks/runtime-queries.ts
7827
+ function readRuntimeCapabilities() {
7828
+ return apiGet("health");
7829
+ }
7830
+ //#endregion
7831
+ //#region src/shared/hooks/use-runtime-capabilities.ts
7832
+ var value;
7833
+ var profile;
7834
+ var started = false;
7835
+ var listeners$5 = /* @__PURE__ */ new Set();
7836
+ function publish$2(next, nextProfile) {
7837
+ value = next;
7838
+ profile = nextProfile;
7839
+ for (const listener of listeners$5) listener();
7840
+ }
7841
+ function pluginMarketOf(capabilities) {
7842
+ return capabilities?.pluginMarket !== false;
7843
+ }
7844
+ function runtimeProfileValue() {
7845
+ return profile;
7846
+ }
7847
+ async function load() {
7848
+ const answer = await readRuntimeCapabilities();
7849
+ if (answer.ok) publish$2(answer.capabilities, answer.runtimeProfile ?? void 0);
7850
+ else publish$2(void 0);
7851
+ }
7852
+ function useRuntimeCapabilities() {
7853
+ const [caps, setCaps] = (0, react.useState)(value);
7854
+ (0, react.useEffect)(() => {
7855
+ let alive = true;
7856
+ const listener = () => {
7857
+ if (alive) setCaps(value);
7858
+ };
7859
+ listeners$5.add(listener);
7860
+ if (value === void 0 && !started) {
7861
+ started = true;
7862
+ load().catch(() => {
7863
+ started = false;
7864
+ publish$2(void 0);
7865
+ });
7866
+ }
7867
+ return () => {
7868
+ alive = false;
7869
+ listeners$5.delete(listener);
7870
+ };
7871
+ }, []);
7872
+ return caps;
7873
+ }
7874
+ //#endregion
7868
7875
  //#region ../../node_modules/.pnpm/dayjs@1.11.23/node_modules/dayjs/plugin/localizedFormat.js
7869
7876
  var require_localizedFormat = /* @__PURE__ */ __commonJSMin(((exports, module) => {
7870
7877
  (function(e, t) {
@@ -9829,6 +9836,14 @@ window.__ModuleLoader__.load({
9829
9836
  done: 1,
9830
9837
  ongoing: 0
9831
9838
  };
9839
+ var LIST_ORDER = {
9840
+ warning: 0,
9841
+ done: 1,
9842
+ ongoing: 2
9843
+ };
9844
+ function attentionListRank(attention) {
9845
+ return attention === null || attention === void 0 ? 3 : LIST_ORDER[attention.severity];
9846
+ }
9832
9847
  var SENTENCES = {
9833
9848
  warning: {
9834
9849
  one: "project.attention.warning.one",
@@ -10287,6 +10302,27 @@ window.__ModuleLoader__.load({
10287
10302
  checkPart
10288
10303
  };
10289
10304
  }
10305
+ //#endregion
10306
+ //#region src/shared/hooks/locale-text.ts
10307
+ var resolver;
10308
+ function setRuntimeTextResolver(next) {
10309
+ resolver = next;
10310
+ }
10311
+ function runtimeText(text) {
10312
+ return resolveRuntimeText(text, resolver);
10313
+ }
10314
+ //#endregion
10315
+ //#region src/shared/hooks/runtime-terms.ts
10316
+ function runtimeTermsOf(t) {
10317
+ const profile = runtimeProfileValue();
10318
+ if (profile === void 0) return runtimeTermsOf$1(t);
10319
+ return {
10320
+ plugin: runtimeText(profile.terms.plugin),
10321
+ pluginOf: runtimeText(profile.terms.pluginOf),
10322
+ pluginThing: runtimeText(profile.terms.pluginThing),
10323
+ pluginArea: runtimeText(profile.terms.pluginArea)
10324
+ };
10325
+ }
10290
10326
  var AddModule_module_default = {
10291
10327
  wide: "_wide_1lv8f_1",
10292
10328
  dialog: "_dialog_1lv8f_8",
@@ -10443,7 +10479,10 @@ window.__ModuleLoader__.load({
10443
10479
  })), state.problem === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
10444
10480
  className: AddModule_module_default.problem,
10445
10481
  role: "alert"
10446
- }, t(problemKey(state.problem.problem), { reason: state.problem.reason })), state.failure === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
10482
+ }, t(problemKey(state.problem.problem), {
10483
+ ...runtimeTermsOf(t),
10484
+ reason: state.problem.reason
10485
+ })), state.failure === null ? null : /* @__PURE__ */ (0, react.createElement)("p", {
10447
10486
  className: AddModule_module_default.problem,
10448
10487
  role: "alert"
10449
10488
  }, state.failure), /* @__PURE__ */ (0, react.createElement)("div", { className: AddModule_module_default.options }, /* @__PURE__ */ (0, react.createElement)("button", {
@@ -10506,7 +10545,7 @@ window.__ModuleLoader__.load({
10506
10545
  const source = preview.registry === "" ? t("panels.market.add.registryDefault") : preview.registry;
10507
10546
  const plugin = preview.kind === "plugin";
10508
10547
  const pluginName = plugin ? preview.pluginName : void 0;
10509
- 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);
10548
+ 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);
10510
10549
  }
10511
10550
  function AddModuleResult({ t, state }) {
10512
10551
  const outcome = state.outcome;
@@ -10532,7 +10571,10 @@ window.__ModuleLoader__.load({
10532
10571
  }) : /* @__PURE__ */ (0, react.createElement)(_deepseek_ai_dsh_client_ui_primitives.IconCheckCircleFillRegular, { size: 28 })), /* @__PURE__ */ (0, react.createElement)("h2", {
10533
10572
  className: AddModule_module_default.wizardTitle,
10534
10573
  role: kind === "failed" ? "alert" : "status"
10535
- }, 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", {
10574
+ }, 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", {
10575
+ ...runtimeTermsOf(t),
10576
+ name: plugin.name ?? plugin.pkg
10577
+ })) : kind === "failed" ? /* @__PURE__ */ (0, react.createElement)("p", {
10536
10578
  className: AddModule_module_default.resultWarn,
10537
10579
  role: "alert"
10538
10580
  }, 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)));
@@ -10871,7 +10913,7 @@ window.__ModuleLoader__.load({
10871
10913
  if (!installing) onClose();
10872
10914
  },
10873
10915
  title: t("panels.market.add.title"),
10874
- description: t("panels.market.add.description"),
10916
+ description: t("panels.market.add.description", runtimeTermsOf(t)),
10875
10917
  closeLabel: t("panels.market.add.close"),
10876
10918
  className: AddModule_module_default.dialog,
10877
10919
  contentClassName: AddModule_module_default.content,
@@ -10946,6 +10988,7 @@ window.__ModuleLoader__.load({
10946
10988
  const { modules, plugins, workbench, selfUpdate, checking: versionsChecking, allChecking: versionsAllChecking, modulesCheck, pluginsCheck, read: installedRead, reload: reloadVersions } = useModuleVersions();
10947
10989
  const machineBoard = useEnabledUnits(0, null);
10948
10990
  const install = useMarketInstallState();
10991
+ const runtimeCapabilities = useRuntimeCapabilities();
10949
10992
  const [adding, setAdding] = (0, react.useState)(false);
10950
10993
  const [acting, setActing] = (0, react.useState)(false);
10951
10994
  const [tab, setTab] = (0, react.useState)("installed");
@@ -10997,6 +11040,7 @@ window.__ModuleLoader__.load({
10997
11040
  manifests,
10998
11041
  installable,
10999
11042
  capabilities,
11043
+ runtimePluginMarket: pluginMarketOf(runtimeCapabilities),
11000
11044
  freshness: shownFreshness,
11001
11045
  onChanged: reload,
11002
11046
  onPending: setActing,
@@ -11826,7 +11870,13 @@ window.__ModuleLoader__.load({
11826
11870
  const value = snapshot.phase === "ready" ? snapshot.value : void 0;
11827
11871
  const failure = (0, react.useMemo)(() => {
11828
11872
  if (snapshot.phase !== "error") return null;
11829
- const blocker = blockerOfError(snapshot.error, t);
11873
+ const diagnose = runtimeProfileValue()?.diagnose;
11874
+ const resolved = diagnose === void 0 ? void 0 : {
11875
+ exec: diagnose.exec === void 0 ? void 0 : runtimeText(diagnose.exec),
11876
+ login: diagnose.login === void 0 ? void 0 : runtimeText(diagnose.login),
11877
+ bridge: diagnose.bridge === void 0 ? void 0 : runtimeText(diagnose.bridge)
11878
+ };
11879
+ const blocker = blockerOfError(snapshot.error, t, { diagnose: resolved });
11830
11880
  return blocker.hint === void 0 ? {
11831
11881
  ...blocker,
11832
11882
  hint: t("configSync.readHint")
@@ -12612,7 +12662,7 @@ window.__ModuleLoader__.load({
12612
12662
  if (step.status === "failed") return failedStepText(snapshot.guidance, t);
12613
12663
  if (step.status === "pending" || step.status === "running") return "";
12614
12664
  if (step.id === "toolchain") return step.status === "ok" ? t("env.toolchain.ok") : t("env.toolchain.warn");
12615
- if (step.id === "opencli") return step.status === "ok" ? t("env.opencli.ok") : "";
12665
+ if (step.id === "cli") return step.status === "ok" ? t("env.runtime.ok") : "";
12616
12666
  if (step.id === "bridge") return step.status === "ok" ? t("env.bridge.ok") : t("env.bridge.short");
12617
12667
  if (step.id === "diy") return step.status === "ok" ? t("env.diy.ok") : t("env.diy.short");
12618
12668
  if (step.id === "warm") return step.status === "ok" ? t("env.warm.done", { n: step.detail ?? "0" }) : t("env.warm.short");
@@ -12622,19 +12672,19 @@ window.__ModuleLoader__.load({
12622
12672
  if (snapshot.phase === "failed") return true;
12623
12673
  return snapshot.steps.some((step) => step.status === "warn" || step.status === "failed");
12624
12674
  }
12625
- var OPENCLI_EXTENSION_URL = "https://chromewebstore.google.com/detail/opencli/ildkmabpimmkaediidaifkhjpohdnifk";
12626
- function bridgeAdvice(issue) {
12627
- if (issue === "daemon") return { textKey: "env.bridge.daemon" };
12628
- if (issue === "extension") return {
12629
- textKey: "env.bridge.extension",
12630
- link: {
12631
- labelKey: "env.bridge.extensionLink",
12632
- href: OPENCLI_EXTENSION_URL
12633
- }
12675
+ function showsRawAll(snapshot, panelShown) {
12676
+ return !panelShown && showsRawDetails(snapshot);
12677
+ }
12678
+ function bridgeAdvice(issue, t, fixes) {
12679
+ const fix = fixes?.[issue];
12680
+ if (fix !== void 0) return {
12681
+ text: runtimeText(fix.text),
12682
+ ...fix.link === void 0 ? {} : { link: {
12683
+ label: runtimeText(fix.link.label),
12684
+ href: fix.link.href
12685
+ } }
12634
12686
  };
12635
- if (issue === "profile") return { textKey: "env.bridge.profile" };
12636
- if (issue === "stale") return { textKey: "env.bridge.stale" };
12637
- return { textKey: "env.bridge.unknown" };
12687
+ return { text: t("env.bridge.unknown") };
12638
12688
  }
12639
12689
  //#endregion
12640
12690
  //#region src/app/layouts/env-gate/gate-deadline.ts
@@ -12708,9 +12758,11 @@ window.__ModuleLoader__.load({
12708
12758
  //#region src/app/layouts/env-gate/boot-gate.ts
12709
12759
  var POLL_MS = 400;
12710
12760
  var GIVE_UP_MS = 12e4;
12711
- function stepLabel$1(id, t) {
12761
+ function stepLabel$1(step, t) {
12762
+ const id = step.id;
12712
12763
  if (id === "toolchain") return t("env.step.toolchain");
12713
- if (id === "opencli") return t("env.step.opencli");
12764
+ if (id === "runtime") return step.label ?? t("env.step.adapter");
12765
+ if (id === "cli") return t("env.step.runtime");
12714
12766
  if (id === "warm") return t("env.step.warm");
12715
12767
  if (id === "diy") return t("env.step.diy");
12716
12768
  return t("env.step.bridge");
@@ -12899,7 +12951,7 @@ window.__ModuleLoader__.load({
12899
12951
  detail: el("span", BootGate_module_default.detail),
12900
12952
  status: ""
12901
12953
  };
12902
- item.append(mark, el("span", BootGate_module_default.label, stepLabel$1(step.id, t)), row.detail);
12954
+ item.append(mark, el("span", BootGate_module_default.label, stepLabel$1(step, t)), row.detail);
12903
12955
  rows.set(step.id, row);
12904
12956
  return row;
12905
12957
  }
@@ -12925,10 +12977,9 @@ window.__ModuleLoader__.load({
12925
12977
  }
12926
12978
  const rawLines = snapshot.steps.flatMap((step) => {
12927
12979
  const detail = step.detail ?? "";
12928
- return detail === "" ? [] : [`${stepLabel$1(step.id, t)}: ${detail}`];
12980
+ return detail === "" ? [] : [`${stepLabel$1(step, t)}: ${detail}`];
12929
12981
  });
12930
12982
  rawAllBody.textContent = rawLines.join("\n");
12931
- rawAll.hidden = !showsRawDetails(snapshot) || rawLines.length === 0;
12932
12983
  progressRow.hidden = snapshot.phase !== "installing";
12933
12984
  if (snapshot.phase === "installing") startElapsed();
12934
12985
  else stopElapsed();
@@ -12954,12 +13005,12 @@ window.__ModuleLoader__.load({
12954
13005
  if (bridgeBroken) {
12955
13006
  const listed = bridgeIssues.length === 0 ? ["unknown"] : bridgeIssues;
12956
13007
  bridgeLines.replaceChildren(...listed.map((issue) => {
12957
- const advice = bridgeAdvice(issue);
12958
- const item = el("li", BootGate_module_default.bridgeLine, t(advice.textKey));
13008
+ const advice = bridgeAdvice(issue, t, runtimeProfileValue()?.bridge);
13009
+ const item = el("li", BootGate_module_default.bridgeLine, advice.text);
12959
13010
  if (advice.link !== void 0) {
12960
13011
  const link = document.createElement("a");
12961
13012
  link.className = BootGate_module_default.link;
12962
- link.textContent = t(advice.link.labelKey);
13013
+ link.textContent = advice.link.label;
12963
13014
  link.href = advice.link.href;
12964
13015
  link.target = "_blank";
12965
13016
  link.rel = "noreferrer noopener";
@@ -12983,6 +13034,8 @@ window.__ModuleLoader__.load({
12983
13034
  diyRawText.textContent = gap.detail;
12984
13035
  diyRaw.hidden = gap.detail === "";
12985
13036
  }
13037
+ const panelShown = !actions.hidden || !bridge.hidden || !diy.hidden;
13038
+ rawAll.hidden = !showsRawAll(snapshot, panelShown) || rawLines.length === 0;
12986
13039
  }
12987
13040
  async function poll() {
12988
13041
  if (cancelled) return;
@@ -13247,6 +13300,11 @@ window.__ModuleLoader__.load({
13247
13300
  const value = args[key];
13248
13301
  return typeof value === "string" ? value.replace(/\s+/g, " ").trim() : "";
13249
13302
  }
13303
+ function labelsOf(args) {
13304
+ const value = args["labels"];
13305
+ if (!Array.isArray(value)) return [];
13306
+ return [...new Set(value.flatMap((one) => typeof one === "string" && one.trim() !== "" ? [one.trim()] : []))];
13307
+ }
13250
13308
  function recordApprovalRows(args, t) {
13251
13309
  const unit = textOf(args, "unit");
13252
13310
  const doing = textOf(args, "doing");
@@ -13318,6 +13376,14 @@ window.__ModuleLoader__.load({
13318
13376
  value: author !== "" ? author : preview === void 0 ? t("approval.publish.reading") : preview?.author === void 0 || preview.author === "" ? t("approval.publish.authorMissing") : preview.author
13319
13377
  }
13320
13378
  ];
13379
+ if (target === "market" || target === "" && preview?.market !== void 0) {
13380
+ const asked = labelsOf(args);
13381
+ const labels = asked.length > 0 ? asked : preview?.labels ?? [];
13382
+ rows.push({
13383
+ label: t("approval.publish.labels"),
13384
+ value: preview === void 0 && asked.length === 0 ? t("approval.publish.reading") : labels.length === 0 ? t("approval.publish.labelsMissing") : labels.join(" · ")
13385
+ });
13386
+ }
13321
13387
  const claim = preview?.claim;
13322
13388
  if (claim !== void 0 && claim.state !== "new" && claim.state !== "unknown") {
13323
13389
  if (claim.state === "unit-taken") rows.push({
@@ -13445,8 +13511,8 @@ window.__ModuleLoader__.load({
13445
13511
  function pluginToolIndexOf(manifests) {
13446
13512
  const index = /* @__PURE__ */ new Map();
13447
13513
  for (const manifest of manifests) for (const tool of manifest.tools) {
13448
- if (tool.opencli === void 0) continue;
13449
- index.set(tool.name, tool.opencli);
13514
+ if (tool.runtime === void 0) continue;
13515
+ index.set(tool.name, tool.runtime);
13450
13516
  }
13451
13517
  return index;
13452
13518
  }
@@ -15500,29 +15566,31 @@ window.__ModuleLoader__.load({
15500
15566
  }
15501
15567
  //#endregion
15502
15568
  //#region src/app/layouts/sidebar/workspace-groups.ts
15503
- function workspaceSections(items, headings) {
15569
+ function workspaceSections(items, headings, options = {}) {
15504
15570
  const workspaces = [];
15505
15571
  const defaults = [];
15506
15572
  const workshop = [];
15507
15573
  for (const item of items) if (isWorkshopPath(item.path)) workshop.push(item);
15508
15574
  else if (item.title === "default-workspace") defaults.push(item);
15509
15575
  else workspaces.push(item);
15576
+ const rankOf = options.rankOf;
15577
+ const ordered = (rows) => rankOf === void 0 ? rows : [...rows].sort((left, right) => rankOf(left) - rankOf(right));
15510
15578
  const special = defaults.length > 0 || workshop.length > 0;
15511
15579
  const sections = [];
15512
15580
  if (workspaces.length > 0) sections.push({
15513
15581
  id: "workspaces",
15514
15582
  heading: special ? headings.workspaces : null,
15515
- items: workspaces
15583
+ items: ordered(workspaces)
15516
15584
  });
15517
15585
  if (defaults.length > 0) sections.push({
15518
15586
  id: "defaultWorkspace",
15519
15587
  heading: headings.defaultWorkspace,
15520
- items: defaults
15588
+ items: ordered(defaults)
15521
15589
  });
15522
15590
  if (workshop.length > 0) sections.push({
15523
15591
  id: "workshop",
15524
15592
  heading: headings.workshop,
15525
- items: workshop
15593
+ items: ordered(workshop)
15526
15594
  });
15527
15595
  return sections;
15528
15596
  }
@@ -15610,7 +15678,11 @@ window.__ModuleLoader__.load({
15610
15678
  workspaces: t("project.group.workspaces"),
15611
15679
  defaultWorkspace: t("project.group.defaultWorkspace"),
15612
15680
  workshop: t("project.group.workshop")
15613
- }), [items, t]);
15681
+ }, { rankOf: (workspace) => attentionListRank(attention.byWorkspace.get(workspace.workspaceId)) }), [
15682
+ items,
15683
+ attention.byWorkspace,
15684
+ t
15685
+ ]);
15614
15686
  const options = (0, react.useMemo)(() => workspaceOptions({
15615
15687
  sections,
15616
15688
  currentId,
@@ -15629,7 +15701,6 @@ window.__ModuleLoader__.load({
15629
15701
  t,
15630
15702
  attention.byWorkspace
15631
15703
  ]);
15632
- const revealId = (0, react.useMemo)(() => options.find((option) => attention.byWorkspace.has(option.value))?.value, [options, attention.byWorkspace]);
15633
15704
  const valueNodes = (0, react.useMemo)(() => {
15634
15705
  const out = /* @__PURE__ */ new Map();
15635
15706
  for (const workspace of items) {
@@ -15661,7 +15732,6 @@ window.__ModuleLoader__.load({
15661
15732
  variant: "ghost",
15662
15733
  iconOnly: compact,
15663
15734
  search: !compact,
15664
- revealId,
15665
15735
  ariaLabel: t("project.label"),
15666
15736
  searchLabel: t("project.search.label"),
15667
15737
  searchPlaceholder: t("project.search.placeholder"),
@@ -16435,7 +16505,7 @@ window.__ModuleLoader__.load({
16435
16505
  ...face.messages === void 0 ? {} : { messages: face.messages }
16436
16506
  }));
16437
16507
  }
16438
- 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*/";
16508
+ var COMPONENT_CSS_MARKER = ".wb-activityBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding-top: var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-activityBlock:first-child {\n padding-top: 0;\n border-top: none;\n}\n\n.wb-activityBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}\n\n.wb-activityLine {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-activityLineText {\n flex: none;\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n max-height: var(--wb-len-72);\n overflow-y: auto;\n}\n\n.wb-activityLineAt {\n flex: none;\n margin-left: auto;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-activityLine > .wb-activityLineAt,\n.wb-activityLine > .wb-activityLineActions {\n margin-left: auto;\n}\n\n.wb-activityLine > .wb-activityLineAt + .wb-activityLineActions {\n margin-left: 0;\n}\n\n.wb-activityLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-activityActionFailed {\n color: var(--dsw-alias-state-error-primary);\n}\n.wb-note {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-problem {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: grid;\n grid-template-columns: minmax(var(--wb-len-56), auto) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-2);\n align-items: baseline;\n margin: 0;\n}\n.wb-approvalRow {\n display: contents;\n}\n.wb-approvalLabel {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n.wb-cardHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-8) var(--wb-card-gutter);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-cardTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-cardMeta {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-cardMeta::before {\n content: '\\00b7';\n margin-right: var(--wb-len-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardOpen ~ .wb-cardRefresh {\n margin-left: 0;\n}\n\n.wb-cardOpen:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh {\n margin-left: auto;\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-4);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardRefresh:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-cardRefresh:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-cardGear {\n flex: none;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: var(--wb-len-3);\n border-radius: var(--wb-radius-6);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-cardGear:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n.wb-card {\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: none;\n}\n.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-card-gutter);\n font-size: var(--dsw-font-xxs-12-font-size);\n}\n.wb-cardBleed {\n margin-inline: calc(-1 * var(--wb-card-gutter));\n}\n._anchor_yq4s2_1 {\n display: contents;\n}\n.wb-spinner {\n display: inline-flex;\n align-items: center;\n flex: none;\n}\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n background: transparent;\n}\n\n.wb-choiceMenu[data-variant='boxed'] {\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-choiceOption {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-choiceOptionOn {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-checkbox {\n position: absolute;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: 0;\n opacity: 0;\n pointer-events: none;\n}\n\n.wb-checkboxBox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-xs);\n corner-shape: round;\n color: var(--dsw-alias-label-primary-foreground);\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-choiceOption:hover .wb-checkboxBox {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-checkbox:checked + .wb-checkboxBox {\n border-color: var(--dsw-alias-brand-primary);\n background: var(--dsw-alias-brand-primary);\n}\n\n.wb-checkbox:disabled + .wb-checkboxBox {\n cursor: default;\n}\n\n.wb-checkbox:focus-visible + .wb-checkboxBox {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.wb-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceOption:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n\n.wb-choiceOption:has(:disabled),\n.wb-choiceOption:has(:disabled):hover {\n background: transparent;\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.wb-choiceLabelText {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceLabel:has(.wb-choiceDescription) .wb-choiceLabelText {\n overflow: visible;\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.wb-choiceDescription {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n.wb-choiceLoading {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-choiceLoadingText {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.wb-choiceEmpty {\n display: flex;\n align-items: center;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-8);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio {\n appearance: none;\n -webkit-appearance: none;\n flex: none;\n box-sizing: border-box;\n width: var(--wb-len-12);\n height: var(--wb-len-12);\n margin: 0;\n border: 1px solid var(--dsw-alias-border-l3);\n border-radius: 50%;\n corner-shape: round;\n background-color: transparent;\n cursor: pointer;\n transition:\n background-color var(--wb-dur-0-12) ease, border-color var(--wb-dur-0-12) ease;\n}\n\n.wb-radio:not(:checked):hover {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-radio:checked {\n border-color: var(--dsw-alias-brand-primary);\n background-image: radial-gradient(\n circle at center,\n var(--dsw-alias-brand-primary) 0 3px,\n transparent 3px\n );\n}\n\n.wb-radio:disabled {\n cursor: default;\n}\n\n.wb-radio:focus-visible {\n outline: var(--dsw-focus-ring-width, var(--wb-len-2)) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.wb-formActions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n\n.wb-formActionDanger {\n color: var(--dsw-alias-state-error-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, transparent);\n}\n.wb-rows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n}\n.wb-rows > :not(.wb-row) {\n grid-column: 1 / -1;\n}\n.wb-row {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}\n.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.wb-rowKey {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-rowValue {\n min-width: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-rows > .wb-row {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-rows > .wb-row {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-confirmBar {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-confirmBarTitle {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 600;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-confirmBarHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.wb-field {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n.wb-fieldLabel {\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-fieldHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-field:has(:disabled) .wb-fieldLabel {\n opacity: 0.4;\n}\n.wb-formRows {\n display: grid;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-12);\n}\n\n.wb-formRows > :not(.wb-formRow) {\n grid-column: 1 / -1;\n}\n\n.wb-formRow {\n display: grid;\n grid-column: 1 / -1;\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n align-items: center;\n column-gap: var(--wb-len-8);\n row-gap: var(--wb-len-8);\n}\n\n.wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n align-items: stretch;\n gap: var(--wb-len-6);\n}\n\n.wb-formRows > .wb-formRow[data-layout='stacked'] {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.wb-formLabel {\n justify-self: start;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: nowrap;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formLabel {\n white-space: normal;\n}\n\n.wb-formRow[data-layout='stacked'] .wb-formHint,\n.wb-formRow[data-layout='stacked'] .wb-formProblem {\n grid-column: 1 / -1;\n}\n\n.wb-formControl {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n\n.wb-formControl\n > :where(\n .wb-selectAnchor,\n .wb-choiceMenu,\n input:not(\n [type='checkbox'],\n [type='radio'],\n [type='button'],\n [type='submit'],\n [type='reset'],\n [type='image'],\n [type='color'],\n [type='range']\n ),\n select,\n textarea\n ) {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n}\n\n.wb-formHint {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-formProblem {\n grid-column: 2;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(.wb-formProblem) .wb-formLabel {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-formRow:has(:disabled) .wb-formLabel {\n opacity: 0.4;\n}\n\n.wb-formRows > .wb-formRow {\n grid-template-columns: subgrid;\n}\n\n@supports not (grid-template-columns: subgrid) {\n .wb-formRows > .wb-formRow {\n grid-template-columns: minmax(72px, max-content) minmax(0, 1fr);\n }\n}\n.wb-form {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n width: 100%;\n}\n:where(.wb-link) {\n margin-left: var(--wb-len-2);\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n white-space: nowrap;\n vertical-align: baseline;\n}\n\n:where(.wb-link:hover) {\n text-decoration: underline;\n}\n\n:where(.wb-link:focus-visible) {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n.wb-longTask {\n padding-top: var(--wb-len-12);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n.wb-longTaskHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n}\n\n.wb-longTaskLink {\n flex: none;\n}\n\n.wb-longTaskHeadline {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-secondary);\n}\n\n.wb-longTaskProblem {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n.wb-longTaskDump {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-longTaskDump pre {\n margin: var(--wb-len-4) 0 0;\n max-height: var(--wb-len-220);\n overflow: auto;\n}\n\n.wb-longTaskStop {\n display: inline-flex;\n flex: none;\n align-items: center;\n align-self: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n padding: 0;\n margin-left: auto;\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-specific-menu);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-longTaskStop:hover:not(:disabled),\n.wb-longTaskStop:focus-visible {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStop:disabled {\n cursor: default;\n}\n\n.wb-longTaskStopArmed,\n.wb-longTaskStopArmed:hover:not(:disabled),\n.wb-longTaskStopArmed:focus-visible {\n gap: var(--wb-len-4);\n width: auto;\n padding: 0 var(--wb-len-7);\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-longTaskStopLabel {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n.wb-longTaskStopWhy {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n.wb-centered.wb-centeredCompact {\n flex: none;\n min-height: 0;\n gap: var(--wb-len-8);\n padding: var(--wb-len-20) var(--wb-len-16);\n}\n\n.wb-centered.wb-centeredCompact .wb-centeredHero {\n margin-bottom: var(--wb-len-4);\n}\n\n.wb-skeleton {\n display: flex;\n flex-direction: column;\n}\n\n.wb-skeletonRow {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n}\n\n.wb-skeletonRow + .wb-skeletonRow::before {\n content: '';\n align-self: stretch;\n height: var(--wb-len-0-5);\n margin: 0 var(--wb-len-8) var(--wb-len-neg-0-5);\n background: var(--dsw-alias-border-l2);\n}\n\n.wb-skeletonBar {\n display: block;\n height: var(--wb-len-13);\n border-radius: var(--dsw-radius-xs);\n background: var(--dsw-alias-bg-skeleton);\n animation: wb-skeleton-pulse var(--wb-dur-1-4) var(--ds-ease-in-out) infinite;\n}\n\n.wb-skeletonBarTitle {\n width: 62%;\n}\n\n.wb-skeletonBarMeta {\n width: 32%;\n height: var(--wb-len-10);\n}\n\n.wb-skeletonRow:nth-child(2n) .wb-skeletonBarTitle {\n width: 74%;\n}\n\n.wb-skeletonRow:nth-child(3n) .wb-skeletonBarTitle {\n width: 52%;\n}\n\n@keyframes wb-skeleton-pulse {\n 50% {\n opacity: 0.45;\n }\n}\n\n.wb-centered {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: var(--wb-len-14);\n flex: 1;\n min-height: var(--wb-len-240);\n padding: 0 var(--wb-len-24) var(--wb-len-24);\n text-align: center;\n}\n\n.wb-centeredHero {\n display: flex;\n margin-bottom: var(--wb-len-16);\n color: var(--dsw-alias-label-dimmed);\n}\n\n.wb-centeredTitle {\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-centeredHint {\n max-width: var(--wb-len-300);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-centeredDetail {\n max-width: var(--wb-len-320);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-dimmed);\n word-break: break-all;\n}\n\n.wb-centeredAction {\n display: flex;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}\n.wb-textField {\n box-sizing: border-box;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n outline: none;\n}\n\n.wb-textField:focus {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-textField:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-textField[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-textField[aria-invalid='true']:focus {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n:where(.wb-textField) {\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n}\n:where(.wb-selectTrigger) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-primary);\n text-align: left;\n cursor: pointer;\n}\n\n.wb-selectTrigger:focus-visible {\n outline: none;\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true'] {\n border-color: var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger[aria-invalid='true']:focus-visible {\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-error-primary);\n}\n\n.wb-selectTrigger:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.wb-selectLoading:disabled {\n cursor: default;\n opacity: 1;\n}\n\n.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n background: transparent;\n font-size: var(--wb-font-row);\n}\n\n.wb-selectGhost:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-selectGhost:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n border-color: transparent;\n box-shadow: none;\n}\n\n.wb-selectIconOnly {\n width: var(--wb-len-36);\n height: var(--wb-len-36);\n min-height: 0;\n gap: 0;\n padding: 0;\n justify-content: center;\n}\n\n.wb-selectIconOnly .wb-selectIcon {\n width: 100%;\n height: 100%;\n}\n\n.wb-selectAnchor {\n display: block;\n width: 100%;\n}\n\n.wb-selectIcon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectValue {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n.wb-selectPlaceholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-selectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n}\n\n.wb-selectMenu {\n min-width: var(--wb-len-240);\n max-width: var(--wb-len-360);\n max-height: min(var(--wb-len-320), calc(100vh - var(--wb-len-24)));\n}\n\n:where(.wb-selectSearch) {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n width: 100%;\n min-height: var(--wb-len-28);\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n.wb-selectSearch:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: inset 0 0 0 0.5px var(--dsw-alias-state-business-primary);\n}\n\n.wb-selectSearch.wb-selectGhost {\n gap: var(--wb-gap-xs);\n min-height: 0;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: 0.5px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n.wb-selectSearch.wb-selectGhost:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n box-shadow: none;\n}\n\n.wb-selectSearchIcon {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-textField.wb-selectSearchInput {\n flex: 1;\n min-width: 0;\n min-height: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n.wb-textField.wb-selectSearchInput:focus {\n box-shadow: none;\n}\n\n.wb-selectFallback {\n width: 100%;\n}\n\n.wb-selectHint {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\nsection.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12) var(--wb-len-16);\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-settings-card-fill);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.wb-settings .wb-settingsTitle {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-strong-14-font-size);\n line-height: var(--wb-line-24);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\n.wb-stateBlock {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-stateBlockTitle {\n margin: 0;\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n.wb-stateBlockHint {\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-stateBlockActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}\n.wb-stateBlockResolving {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_1vpw3_1 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._marketRow_1vpw3_10 {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n align-items: center;\n column-gap: var(--wb-len-14);\n row-gap: var(--wb-len-4);\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-lg);\n}\n\n._marketIcon_1vpw3_20 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_1vpw3_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_1vpw3_39 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketStatus_1vpw3_48 {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketStateText_1vpw3_58 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSep_1vpw3_62 {\n color: var(--dsw-alias-label-caption);\n}\n\n._marketReason_1vpw3_66 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketName_1vpw3_39 ._marketVersion_1vpw3_72 {\n margin-left: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n}\n\n._marketVersion_1vpw3_72 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_1vpw3_72::before {\n content: '';\n display: inline-block;\n width: var(--wb-len-1);\n height: var(--wb-len-10);\n margin: 0 var(--wb-len-8) 0 var(--wb-len-2);\n vertical-align: -1px;\n background: var(--dsw-alias-border-l2);\n}\n\n._marketLocalTag_1vpw3_94 {\n margin-left: var(--wb-len-8);\n padding: 0 var(--wb-len-6);\n border: var(--wb-len-1) solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n font-weight: 400;\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-caption);\n}\n\n._marketEnd_1vpw3_105 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1vpw3_112 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._marketSwitchSeat_1vpw3_112::before {\n content: '';\n width: 0;\n height: var(--wb-len-14);\n border-left: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketActions_1vpw3_125 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketUpdateAction_1vpw3_131 {\n color: var(--dsw-alias-state-warn-primary);\n border-color: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 30%, transparent);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._marketSelfDivider_1vpw3_137 {\n height: 0;\n margin-top: calc(0px - var(--wb-len-16));\n border-top: 0.5px solid var(--dsw-alias-border-l3);\n}\n\n._marketSection_1vpw3_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_1vpw3_150 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionIcon_1vpw3_156 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionTitle_1vpw3_163 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_1vpw3_169 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketSectionAction_1vpw3_175 {\n display: inline-flex;\n align-items: center;\n align-self: center;\n margin-left: auto;\n min-width: 0;\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketSectionTitle_1vpw3_163 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketName_1vpw3_39 {\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketSectionQuiet_1vpw3_183 ._marketIcon_1vpw3_20 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._marketProgress_1vpw3_195 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-height: var(--wb-len-32);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketNote_1vpw3_205 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-warn-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailure_1vpw3_212 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketFailureSeat_1vpw3_219 {\n grid-column: 2 / -1;\n min-width: 0;\n}\n\n._marketEmpty_1vpw3_224 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_1vpw3_229 {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-32);\n padding: 0 clamp(var(--wb-len-24), 4vw, var(--wb-len-48)) var(--wb-len-48);\n overflow-x: hidden;\n overflow-y: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_1vpw3_229 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_1vpw3_247 {\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-16);\n padding-top: var(--wb-len-28);\n}\n\n._marketPageTitle_1vpw3_255 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_1vpw3_260 {\n margin: var(--wb-len-4) 0 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketPageTools_1vpw3_266 {\n flex: none;\n align-self: center;\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: var(--wb-len-16);\n}\n\n._marketPanel_1vpw3_275 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-32);\n}\n\n._marketPanel_1vpw3_275[hidden] {\n display: none;\n}\n\n._marketTabs_1vpw3_285 {\n display: flex;\n margin: calc(0px - var(--wb-len-16)) 0;\n}\n\n._marketTabList_1vpw3_290 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._marketAddButton_1vpw3_295 {\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n border-radius: var(--dsw-radius-md);\n}\n\n._marketEmpty_1vpw3_224 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) var(--wb-len-16);\n text-align: center;\n}\n\n._marketEmptyTitle_1vpw3_312 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverPage_1vpw3_317 {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverBar_1vpw3_324 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n container-type: inline-size;\n}\n\n._discoverTools_1vpw3_331 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverMarket_1vpw3_337 {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n._discoverMarketButton_1vpw3_342 {\n min-width: 0;\n max-width: var(--wb-len-240);\n margin-left: calc(0px - var(--wb-len-8));\n font-weight: 500;\n}\n\n._discoverMarketName_1vpw3_349 {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverLabels_1vpw3_355 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverSort_1vpw3_360 {\n flex: none;\n white-space: nowrap;\n}\n\n._discoverRefresh_1vpw3_365 {\n flex: none;\n}\n\n._discoverSearch_1vpw3_369 {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 var(--wb-len-120);\n min-width: var(--wb-len-120);\n}\n\n._discoverSearchField_1vpw3_377 {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._discoverSearchFieldFilled_1vpw3_382 input {\n padding-inline-end: var(--wb-len-20);\n}\n\n._discoverSearchField_1vpw3_377 input::-webkit-search-cancel-button {\n appearance: none;\n -webkit-appearance: none;\n}\n\n._discoverSearch_1vpw3_369 ._discoverSearchClear_1vpw3_391 {\n position: absolute;\n top: 50%;\n inset-inline-end: var(--wb-len-4);\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n transform: translateY(-50%);\n}\n\n._discoverSearchClear_1vpw3_391:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n@container (max-width: 560px) {\n ._discoverTools_1vpw3_331 {\n display: grid;\n grid-template-columns: minmax(0, auto) minmax(var(--wb-len-120), 1fr) auto;\n grid-template-areas:\n 'market search refresh'\n 'labels sort sort';\n }\n\n ._discoverMarket_1vpw3_337 {\n grid-area: market;\n }\n\n ._discoverMarketButton_1vpw3_342 {\n margin-left: 0;\n }\n\n ._discoverLabels_1vpw3_355 {\n grid-area: labels;\n }\n\n ._discoverSearch_1vpw3_369 {\n grid-area: search;\n }\n\n ._discoverSort_1vpw3_360 {\n grid-area: sort;\n justify-self: end;\n }\n\n ._discoverRefresh_1vpw3_365 {\n grid-area: refresh;\n }\n}\n\n._discoverChips_1vpw3_442 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n._discoverList_1vpw3_449 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._discoverCard_1vpw3_458 {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n margin: 0 calc(0px - var(--wb-len-8));\n padding: var(--wb-len-8);\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCard_1vpw3_458:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._discoverArtwork_1vpw3_472 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-48);\n height: var(--wb-len-48);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverArtworkImage_1vpw3_484 {\n object-fit: contain;\n}\n\n._discoverMain_1vpw3_488 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-2);\n min-width: 0;\n}\n\n._discoverTitleRow_1vpw3_496 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverCardOpen_1vpw3_504 {\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n}\n\n._discoverCardOpen_1vpw3_504::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dsw-radius-xl);\n}\n\n._discoverCardOpen_1vpw3_504:focus-visible {\n outline: none;\n}\n\n._discoverCardOpen_1vpw3_504:focus-visible::after {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverStrong_1vpw3_535 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n._discoverDesc_1vpw3_541 {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverMeta_1vpw3_550 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._discoverMuted_1vpw3_557 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._discoverEnd_1vpw3_563 {\n position: relative;\n z-index: var(--wb-z-10);\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverUpdateAction_1vpw3_572 {\n color: var(--dsw-alias-state-warn-primary);\n --dsw-alias-interactive-bg-hover: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._discoverBlocked_1vpw3_577 {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n._discoverEmpty_1vpw3_582 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-64) 0;\n text-align: center;\n}\n\n._discoverEmptyTitle_1vpw3_591 {\n margin: var(--wb-len-8) 0 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverEmpty_1vpw3_582 > button {\n margin-top: var(--wb-len-8);\n}\n\n._discoverDetail_1vpw3_601 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n}\n\n._discoverCrumb_1vpw3_607 {\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n padding: 0;\n border: 0;\n background: 0 0;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--wb-font-12-5);\n cursor: pointer;\n}\n\n._discoverCrumb_1vpw3_607:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._discoverCrumb_1vpw3_607:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n._discoverCrumbIcon_1vpw3_630 {\n transform: rotate(90deg);\n}\n\n._discoverDetailHead_1vpw3_634 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverDetailTitle_1vpw3_640 {\n margin: 0;\n font: var(--dsw-font-l-20);\n font-weight: 500;\n}\n\n._discoverDetailText_1vpw3_646 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._discoverDetailPanel_1vpw3_653 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-16);\n min-width: 0;\n}\n\n._discoverDetailTabs_1vpw3_660 {\n display: flex;\n margin-bottom: calc(0px - var(--wb-len-4));\n}\n\n._discoverDetailTabList_1vpw3_665 {\n width: fit-content;\n min-width: var(--wb-len-240);\n}\n\n._discoverDocBody_1vpw3_670 {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDocNotice_1vpw3_675 {\n margin: var(--wb-len-16) 0 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverSection_1vpw3_681 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n margin-top: var(--wb-len-16);\n}\n\n._discoverSectionTitle_1vpw3_688 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverFacts_1vpw3_694 {\n margin: 0;\n padding: 0;\n}\n\n._discoverFactRow_1vpw3_699 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--wb-len-16);\n min-height: var(--wb-len-44);\n padding: var(--wb-len-8) var(--wb-len-2);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverFactKind_1vpw3_709 {\n flex: none;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverFactValue_1vpw3_715 {\n min-width: 0;\n margin: 0;\n text-align: end;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xs-13);\n}\n\n._discoverCode_1vpw3_723 {\n padding: var(--wb-len-2) var(--wb-len-6);\n border-radius: var(--wb-radius-6);\n background: var(--dsw-alias-bg-module-platform);\n font-family: var(--ds-font-family-code);\n font-size: var(--dsw-font-xxs-12-font-size);\n box-decoration-break: clone;\n}\n\n._discoverTags_1vpw3_732 {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--wb-len-6);\n}\n\n._discoverLink_1vpw3_739 {\n color: var(--dsw-alias-link);\n overflow-wrap: anywhere;\n text-decoration: none;\n}\n\n._discoverLink_1vpw3_739:hover {\n text-decoration: underline;\n}\n\n._discoverVersions_1vpw3_749 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverVersionRow_1vpw3_757 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverVersionName_1vpw3_765 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n}\n\n._discoverError_1vpw3_770 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverFailure_1vpw3_779 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n}\n\n._discoverLoading_1vpw3_785 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverNotice_1vpw3_794 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverNotice_1vpw3_794 svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverMore_1vpw3_812 {\n align-self: center;\n}\n\n._discoverTransport_1vpw3_816 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportHead_1vpw3_822 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportTitle_1vpw3_829 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportHead_1vpw3_822 ._discoverTransportKind_1vpw3_834 {\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportHead_1vpw3_822 ._discoverTransportState_1vpw3_839 {\n margin-left: 0;\n}\n\n._discoverTransportHead_1vpw3_822 > :last-child {\n margin-left: auto;\n}\n\n._discoverTransportRows_1vpw3_847 {\n display: flex;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportRow_1vpw3_847 {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n cursor: pointer;\n}\n\n._discoverTransportRow_1vpw3_847:hover {\n border-color: var(--dsw-alias-border-l3);\n}\n\n._discoverTransportRow_1vpw3_847:has(._discoverTransportRadio_1vpw3_868:checked) {\n border-color: var(--dsw-alias-label-primary);\n}\n\n._discoverTransportRow_1vpw3_847:has(._discoverTransportRadio_1vpw3_868:focus-visible) {\n outline: 2px solid var(--dsw-alias-label-primary);\n outline-offset: 1px;\n}\n\n._discoverTransportRadio_1vpw3_868 {\n flex: none;\n margin: 0;\n}\n\n._discoverTransportKind_1vpw3_834 {\n flex: none;\n font: var(--dsw-font-xs-13);\n font-weight: 500;\n}\n\n._discoverTransportState_1vpw3_839 {\n flex: none;\n margin-left: auto;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='ok'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='auth'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._discoverTransportRow_1vpw3_847[data-state='unreachable'] ._discoverTransportState_1vpw3_839,\n._discoverTransportRow_1vpw3_847[data-state='unknown'] ._discoverTransportState_1vpw3_839 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverTransportCustom_1vpw3_908 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverTransportInput_1vpw3_914 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverInstallBar_1vpw3_919 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n}\n\n._discoverInstallText_1vpw3_930 {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n._discoverDialog_1vpw3_936 {\n width: min(var(--wb-len-560), calc(100vw - var(--wb-len-32)));\n}\n\n._discoverDialogBody_1vpw3_940 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._discoverSourceList_1vpw3_946 {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n._discoverSourceRow_1vpw3_954 {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: var(--wb-len-12);\n padding: var(--wb-len-10) 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._discoverSourceConfirm_1vpw3_963 {\n margin: 0;\n padding: var(--wb-len-2) 0 var(--wb-len-10);\n list-style: none;\n}\n\n._discoverSourcePick_1vpw3_969 {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: var(--wb-len-10);\n min-width: 0;\n cursor: pointer;\n}\n\n._discoverSourceRadio_1vpw3_978 {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._discoverSourceMain_1vpw3_986 {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._discoverSourceHead_1vpw3_994 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._discoverSourceUrl_1vpw3_1002 {\n display: block;\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._discoverSourceMore_1vpw3_1012 {\n flex: none;\n}\n\n._discoverSourceLoading_1vpw3_1016 {\n display: flex;\n flex: none;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n white-space: nowrap;\n}\n\n._discoverSourceHint_1vpw3_1026 {\n display: flex;\n flex-basis: 100%;\n align-items: center;\n gap: var(--wb-len-6);\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n\n._discoverSourceHint_1vpw3_1026 svg {\n flex: none;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._discoverSourceError_1vpw3_1040 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._discoverSourceForm_1vpw3_1046 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._discoverGrow_1vpw3_1052 {\n flex: 1;\n min-width: 0;\n}\n\n._discoverField_1vpw3_1057 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._discoverFieldLabel_1vpw3_1063 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-secondary);\n}\n\n._discoverConfirmHead_1vpw3_1068 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-14);\n}\n\n._discoverSkeletonFill_1vpw3_1074 {\n background: var(--dsw-alias-bg-skeleton);\n animation: _wb-skeleton_1vpw3_1 var(--wb-dur-1-5) cubic-bezier(0.36, 0, 0.64, 1) infinite;\n}\n\n._discoverArtwork_1vpw3_472._discoverSkeletonFill_1vpw3_1074 {\n border-color: transparent;\n}\n\n._discoverSkeletonBar_1vpw3_1083 {\n display: block;\n height: var(--wb-len-12);\n margin: var(--wb-len-4) 0;\n border-radius: var(--dsw-radius-xs);\n}\n\n._discoverSkeletonTitle_1vpw3_1090 {\n width: min(var(--wb-len-144), 60%);\n}\n\n._discoverSkeletonDesc_1vpw3_1094 {\n width: min(var(--wb-len-280), 85%);\n}\n\n@keyframes _wb-skeleton_1vpw3_1 {\n 0% {\n opacity: 1;\n }\n 40% {\n opacity: 0.6;\n }\n 80%,\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._discoverSkeletonFill_1vpw3_1074 {\n animation: none;\n }\n}\n\n._block_mxnbc_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-2) 0 var(--wb-len-8);\n min-width: 0;\n}\n\n._head_mxnbc_9 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._title_mxnbc_16 {\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._fact_mxnbc_22 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._actions_mxnbc_30 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-2);\n margin-left: calc(-1 * var(--wb-len-8));\n}\n\n._hint_mxnbc_38 {\n margin: 0;\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._output_mxnbc_44 {\n margin-top: var(--wb-len-2);\n min-width: 0;\n}\n._check_1g6tv_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-10);\n min-width: 0;\n}\n\n._status_1g6tv_8 {\n font: var(--dsw-font-xxs-12);\n color: var(--dsw-alias-label-caption);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n._button_1g6tv_15 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n}\n\n._icon_1g6tv_22 {\n display: inline-flex;\n}\n\n@media (max-width: 720px) {\n ._status_1g6tv_8 {\n display: none;\n }\n}\n._foot_1ud1j_1 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-10);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._footText_1ud1j_13 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1ud1j_18 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1lv8f_1 {\n justify-content: center;\n width: 100%;\n height: var(--wb-len-40);\n border-radius: var(--dsw-radius-md);\n}\n\n._dialog_1lv8f_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1lv8f_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1lv8f_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1lv8f_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1lv8f_32 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._input_1lv8f_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1lv8f_45 {\n height: var(--wb-len-32);\n margin-left: var(--wb-len-26);\n padding: 0 var(--wb-len-10);\n}\n\n._options_1lv8f_51 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8) var(--wb-len-12);\n}\n\n._guideToggle_1lv8f_59 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-4);\n align-self: flex-start;\n margin-top: var(--wb-len-4);\n padding: 0;\n border: 0;\n background: transparent;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._guideToggle_1lv8f_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1lv8f_59 svg,\n._registryToggle_1lv8f_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1lv8f_59[aria-expanded='true'] svg,\n._registryToggle_1lv8f_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1lv8f_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1lv8f_78 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n height: var(--wb-len-26);\n padding: 0 var(--wb-len-8) 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n font: inherit;\n font-size: var(--wb-font-12-5);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n._registryToggle_1lv8f_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1lv8f_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1lv8f_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1lv8f_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1lv8f_45 {\n position: fixed;\n z-index: var(--wb-z-1100);\n box-sizing: border-box;\n width: min(var(--wb-len-440), 100vw - var(--wb-len-24));\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10) var(--wb-len-12);\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-2);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n box-shadow: var(--dsw-elevation-prominent);\n}\n\n._registryOption_1lv8f_143 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid transparent;\n border-radius: var(--dsw-radius-lg);\n cursor: pointer;\n}\n\nlabel._registryOption_1lv8f_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1lv8f_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1lv8f_143[data-checked='true'] {\n border-color: color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._registryOption_1lv8f_143 input[type='radio'] {\n flex: none;\n width: var(--wb-len-16);\n height: var(--wb-len-16);\n margin: var(--wb-len-2) 0 0;\n accent-color: var(--dsw-alias-brand-primary);\n}\n\n._registryTitle_1lv8f_179 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n font: var(--dsw-font-xs-13);\n line-height: var(--wb-line-20);\n color: var(--dsw-alias-label-primary);\n}\n\n._registryHint_1lv8f_189 {\n margin-left: var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._inputError_1lv8f_197 {\n margin: var(--wb-len-neg-4) 0 0 var(--wb-len-26);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._guide_1lv8f_59 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) var(--wb-len-14) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._guideList_1lv8f_214 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._guideItem_1lv8f_223 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0;\n}\n\n._guideIndex_1lv8f_230 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: var(--dsw-alias-bg-module-platform);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._guideMain_1lv8f_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1lv8f_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1lv8f_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1lv8f_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1lv8f_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1lv8f_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1lv8f_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1lv8f_285 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-10);\n padding: var(--wb-len-8) 0 var(--wb-len-4);\n text-align: center;\n}\n\n._heroIcon_1lv8f_294 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-44);\n height: var(--wb-len-44);\n color: var(--dsw-alias-label-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1lv8f_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1lv8f_311 {\n margin: 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 500;\n color: var(--dsw-alias-label-secondary);\n}\n\n._wizardTitle_1lv8f_319 {\n margin: 0;\n font-size: var(--wb-font-18);\n line-height: var(--wb-len-26);\n font-weight: 600;\n}\n\n._subject_1lv8f_326 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n text-align: center;\n}\n\n._subjectName_1lv8f_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1lv8f_343,\n._subjectDesc_1lv8f_344 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._result_1lv8f_351,\n._resultWarn_1lv8f_352 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._resultWarn_1lv8f_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._resultMeta_1lv8f_365 {\n margin: 0;\n padding: 0 var(--wb-len-12);\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._approval_1lv8f_373 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-state-warn-primary);\n border-radius: var(--dsw-radius-lg);\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 8%, transparent);\n}\n\n._approvalTitle_1lv8f_383 {\n margin: 0;\n font: var(--dsw-font-s-14);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._approvalText_1lv8f_390 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1lv8f_396 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n font-weight: 600;\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._note_1lv8f_403 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._noteWarn_1lv8f_410 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1lv8f_414 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1lv8f_418 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._detailLabel_1lv8f_425 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1lv8f_425 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-3);\n font-family: var(--dsw-font-mono, monospace);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n._note_1enlz_1 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-8);\n margin: 0;\n padding: var(--wb-len-10) var(--wb-len-12);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-state-warn-tertiary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._note_1enlz_1 > svg {\n flex: none;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-state-warn-primary);\n}\n._slot_1t7dx_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1t7dx_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1t7dx_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1t7dx_31 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._paused_1t7dx_35 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._trouble_1t7dx_39 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._pulse_1t7dx_43 {\n animation: _wb-debug-breathe_1t7dx_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-debug-breathe_1t7dx_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1t7dx_43 {\n animation: none;\n }\n}\n\n._entry_1t7dx_64 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1t7dx_71 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1t7dx_78 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1t7dx_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-22);\n height: var(--wb-len-22);\n padding: 0;\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n}\n\n._act_1t7dx_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1t7dx_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._actStop_1t7dx_110:hover,\n._actStop_1t7dx_110:focus-visible {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._actArmed_1t7dx_115,\n._actArmed_1t7dx_115:hover,\n._actArmed_1t7dx_115:focus-visible {\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);\n width: auto;\n color: var(--dsw-alias-state-error-primary);\n gap: var(--wb-len-4);\n padding: 0 var(--wb-len-7);\n}\n\n._actLabel_1t7dx_125 {\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._entryLine_1t7dx_131 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1t7dx_138 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1t7dx_150 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1t7dx_156 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1t7dx_162 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._slot_1gkj9_1 {\n display: flex;\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._slot_1gkj9_1 > * {\n flex: 0 0 100%;\n min-width: 0;\n}\n\n._action_1gkj9_12 {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 1 0;\n width: 100%;\n min-width: 0;\n min-height: var(--wb-len-36);\n margin: 0 var(--wb-len-2);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n cursor: default;\n overflow: hidden;\n gap: var(--wb-len-4);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n}\n\n._live_1gkj9_31 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._done_1gkj9_35 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._pulse_1gkj9_39 {\n animation: _wb-record-breathe_1gkj9_1 var(--wb-dur-1-5) var(--ds-ease-in-out, ease-in-out) infinite;\n}\n\n@keyframes _wb-record-breathe_1gkj9_1 {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._pulse_1gkj9_39 {\n animation: none;\n }\n}\n\n._entry_1gkj9_60 {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n._entryInner_1gkj9_67 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._acts_1gkj9_74 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-2);\n flex: none;\n}\n\n._act_1gkj9_12 {\n appearance: none;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-22);\n padding: 0 var(--wb-len-7);\n border-radius: var(--dsw-radius-sm, var(--wb-len-6));\n flex: none;\n cursor: pointer;\n white-space: nowrap;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-18);\n}\n\n._act_1gkj9_12:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._act_1gkj9_12:focus-visible {\n outline: var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}\n\n._entryLine_1gkj9_108 {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._actionRail_1gkj9_115 {\n justify-content: center;\n flex: none;\n width: var(--wb-len-36);\n min-width: var(--wb-len-36);\n height: var(--wb-len-36);\n margin: 0;\n padding: 0;\n corner-shape: round;\n border-radius: 50%;\n}\n\n._card_1gkj9_127 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._cardTitle_1gkj9_133 {\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n}\n\n._cardNote_1gkj9_139 {\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n._item_lyox9_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n}\n\n._item_lyox9_1 + ._item_lyox9_1 {\n padding-top: var(--wb-len-14);\n border-top: var(--wb-len-0-5) solid var(--dsw-alias-settings-card-stroke);\n}\n\n._head_lyox9_12 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._title_lyox9_19 {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._description_lyox9_31 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._rows_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n._row_85r3w_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n padding: var(--wb-len-12) var(--wb-len-14);\n border: 0.5px solid var(--dsw-alias-settings-card-stroke);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-settings-card-fill);\n}\n\n._head_85r3w_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._pick_85r3w_27 {\n flex: 0 1 auto;\n min-width: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n}\n\n._pick_85r3w_27 > span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._code_85r3w_39 {\n --dsl-code-block-background: var(--dsw-alias-bg-layer-1);\n margin: 0;\n}\n\n._missing_85r3w_44,\n._conflict_85r3w_45 {\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-state-warn-primary);\n}\n._body_11oac_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._sources_11oac_7 {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._sourcesLabel_11oac_14 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\nbutton._sourceOn_11oac_19 {\n border-color: var(--dsw-alias-brand-primary);\n}\n._sourceCount_11oac_22 {\n margin-left: var(--wb-len-4);\n font-variant-numeric: tabular-nums;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._reading_11oac_29 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n}\n\n._status_11oac_35 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failure_11oac_45 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n column-gap: var(--wb-len-10);\n row-gap: var(--wb-len-2);\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n}\n\n._failureTitle_11oac_55 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._failureHint_11oac_62 {\n grid-column: 1;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._failureAction_11oac_67 {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n}\n\n._foot_11oac_73 {\n display: flex;\n justify-content: flex-end;\n}\n._body_lox98_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._field_lox98_7 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n\n._input_lox98_13 {\n width: 100%;\n}\n\n._label_lox98_17 {\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-secondary);\n}\n\n._hint_lox98_22 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._copy_lox98_28 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-8) var(--wb-len-16);\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n._copy_lox98_28 legend {\n padding: 0;\n margin-bottom: var(--wb-len-6);\n}\n\n._actions_lox98_42 {\n display: flex;\n justify-content: flex-end;\n}\n\n._commandLabel_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n}\n\n._command_lox98_47 {\n display: block;\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-6) var(--wb-len-8);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow-wrap: anywhere;\n}\n._body_zi2j5_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n._lead_zi2j5_7 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n\n._title_zi2j5_14 {\n font-size: var(--wb-font-18);\n line-height: var(--wb-line-24);\n}\n._hint_zyzt3_1[hidden],\n._actions_zyzt3_2[hidden],\n._progress_zyzt3_3[hidden],\n._commandRow_zyzt3_4[hidden],\n._bridge_zyzt3_5[hidden],\n._raw_zyzt3_6[hidden] {\n display: none;\n}\n\n._gate_zyzt3_10 {\n position: fixed;\n inset: 0;\n z-index: var(--wb-z-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--wb-len-24);\n background: var(--dsw-alias-bg-base);\n}\n\n._card_zyzt3_21 {\n width: 100%;\n max-width: var(--wb-len-420);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-16);\n text-align: center;\n}\n\n._card_zyzt3_21:has(._actions_zyzt3_2:not([hidden])),\n._card_zyzt3_21:has(._bridge_zyzt3_5:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_zyzt3_36 {\n margin: 0;\n font-size: var(--dsw-font-base-16-font-size);\n line-height: var(--wb-line-24);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._steps_zyzt3_51 {\n list-style: none;\n margin: var(--wb-len-6) 0 0;\n padding: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n text-align: left;\n}\n\n._step_zyzt3_51 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-6) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._step_zyzt3_51[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_zyzt3_78 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-14);\n height: var(--wb-len-14);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._step_zyzt3_51[data-status='ok'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_zyzt3_51[data-status='warn'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_zyzt3_51[data-status='failed'] ._mark_zyzt3_78 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_zyzt3_103 {\n flex: none;\n}\n\n._detail_zyzt3_107 {\n margin-left: auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._progress_zyzt3_3 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._elapsed_zyzt3_125 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n._error_zyzt3_133 {\n margin: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n max-height: var(--wb-len-120);\n overflow: auto;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n white-space: pre-wrap;\n word-break: break-all;\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._commandRow_zyzt3_4 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n margin: 0 0 var(--wb-len-8);\n padding-right: var(--wb-len-4);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n}\n\n._copy_zyzt3_159 {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n padding: 0;\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._copy_zyzt3_159:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_zyzt3_4 {\n flex: 1;\n min-width: 0;\n padding: var(--wb-len-8) var(--wb-len-10);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n overflow-wrap: anywhere;\n color: var(--dsw-alias-label-primary);\n}\n\n._buttons_zyzt3_192 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_zyzt3_199 {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n justify-content: center;\n background: var(--dsw-alias-bg-base);\n}\n\n._button_zyzt3_192 {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n\n._button_zyzt3_192:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_zyzt3_192:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_zyzt3_2,\n._bridge_zyzt3_5 {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-4);\n padding: var(--wb-len-14) var(--wb-len-16);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-1);\n text-align: left;\n}\n\n._fixTitle_zyzt3_250 {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._actions_zyzt3_2 ._hint_zyzt3_1,\n._bridge_zyzt3_5 ._hint_zyzt3_1 {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._actions_zyzt3_2 ._commandRow_zyzt3_4,\n._bridge_zyzt3_5 ._commandRow_zyzt3_4 {\n margin: 0;\n}\n\n._actions_zyzt3_2 ._buttons_zyzt3_192,\n._bridge_zyzt3_5 ._buttons_zyzt3_192 {\n justify-content: flex-start;\n}\n\n._raw_zyzt3_6 {\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: left;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._rawSummary_zyzt3_286 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_zyzt3_2 ._error_zyzt3_133,\n._bridge_zyzt3_5 ._error_zyzt3_133 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_zyzt3_296 {\n margin: 0;\n padding-left: var(--wb-len-18);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-19);\n color: var(--dsw-alias-label-secondary);\n}\n\n._bridgeLine_zyzt3_296 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_zyzt3_313 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_zyzt3_313::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_zyzt3_313:hover {\n text-decoration: underline;\n}\n\n._loading_zyzt3_327 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_zyzt3_327[hidden] {\n display: none;\n}\n\n._loadingMotion_zyzt3_336 {\n transform-origin: center;\n animation: _wb-spin_zyzt3_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_zyzt3_341,\n._loadingArc_zyzt3_342 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_zyzt3_341 {\n opacity: 0.25;\n}\n\n._loadingArc_zyzt3_342 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_zyzt3_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_zyzt3_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_zyzt3_1 {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }\n to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._loadingMotion_zyzt3_336,\n ._loadingArc_zyzt3_342 {\n animation: none;\n }\n}\n._changelog_1q6pj_1 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-10);\n min-width: 0;\n}\n\n._changelogTitle_1q6pj_9 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._changelogMissing_1q6pj_15 {\n margin: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-primary);\n}\n\n._changelogBody_1q6pj_21 {\n max-height: var(--wb-len-320);\n overflow: auto;\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-lg);\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._actions_smeq7_1 {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--wb-len-8);\n max-width: 100%;\n}\n\n._action_smeq7_1 {\n flex: none;\n white-space: nowrap;\n}\n\n@container (max-width: 340px) {\n ._actions_smeq7_1 {\n flex-direction: column;\n width: var(--wb-len-220);\n max-width: 100%;\n }\n\n ._action_smeq7_1 {\n width: 100%;\n }\n}\n._trigger_15ptp_1 {\n display: flex;\n align-items: center;\n}\n\n._pop_15ptp_6 {\n position: absolute;\n top: calc(var(--wb-len-38) + var(--wb-len-8));\n right: var(--wb-len-6);\n z-index: var(--wb-z-30);\n width: min(var(--wb-len-360), calc(100% - var(--wb-len-12)));\n max-width: calc(100vw - var(--wb-len-48));\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-14);\n background: var(--dsw-alias-bg-layer-2);\n box-shadow: var(--dsw-shadow-lv3);\n overflow: hidden;\n}\n\n._head_15ptp_20 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10) var(--wb-len-12) var(--wb-len-9) var(--wb-len-14);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._title_15ptp_28 {\n flex: 1;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._rowControls_15ptp_36 {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._reset_15ptp_43 {\n flex: none;\n padding: var(--wb-len-3) var(--wb-len-8);\n border: none;\n border-radius: var(--wb-radius-6);\n background: transparent;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._reset_15ptp_43:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_15ptp_43:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_15ptp_65 {\n list-style: none;\n margin: 0;\n padding: var(--wb-len-6);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n}\n\n._row_15ptp_36 {\n position: relative;\n display: grid;\n grid-template-columns: 12px minmax(0, 1fr) auto;\n align-items: center;\n gap: var(--wb-len-8);\n padding: var(--wb-len-7) var(--wb-len-8);\n border-radius: var(--dsw-radius-sm);\n cursor: default;\n}\n\n._rowDragging_15ptp_85 {\n cursor: grabbing;\n}\n\n._rowBlocked_15ptp_89 {\n cursor: not-allowed;\n}\n\n._listDragging_15ptp_93 ._rowControls_15ptp_36 {\n pointer-events: none;\n}\n\n._row_15ptp_36:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOff_15ptp_101 {\n opacity: 0.55;\n}\n\n._rowOff_15ptp_101:hover {\n opacity: 1;\n}\n\n._rowOver_15ptp_109::before {\n content: '';\n position: absolute;\n top: var(--wb-len-neg-3);\n left: var(--wb-len-8);\n right: var(--wb-len-8);\n height: var(--wb-len-2);\n background: var(--dsw-alias-brand-primary);\n}\n\n._ghost_15ptp_119 {\n position: fixed;\n z-index: var(--wb-z-40);\n pointer-events: none;\n padding: var(--wb-len-4) var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--wb-static-shadow-ghost);\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n white-space: nowrap;\n}\n\n._grip_15ptp_134 {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n text-align: center;\n color: var(--dsw-alias-label-tertiary);\n user-select: none;\n cursor: grab;\n touch-action: none;\n}\n\n._gripDragging_15ptp_144 {\n cursor: grabbing;\n}\n\n._gripBlocked_15ptp_148 {\n cursor: not-allowed;\n}\n\n._label_15ptp_152 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_15ptp_159 {\n min-width: 0;\n flex: 0 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-primary);\n}\n\n._error_15ptp_170 {\n margin: 0;\n padding: 0 var(--wb-len-14) var(--wb-len-10);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-state-error-primary);\n}\n\n._dep_15ptp_178 {\n flex: none;\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n._group_15ptp_186 {\n padding-top: var(--wb-len-6);\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n._groupTitle_15ptp_191 {\n margin: 0;\n padding: var(--wb-len-2) var(--wb-len-8) 0 var(--wb-len-14);\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n font-weight: 400;\n color: var(--dsw-alias-label-tertiary);\n}\n._panel_1whum_1 {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: var(--wb-z-10);\n visibility: hidden;\n}\n\n._panel_1whum_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1whum_1[data-open] {\n visibility: visible;\n}\n\n._columns_1whum_18 {\n display: block;\n column-gap: var(--wb-len-12);\n}\n\n._cell_1whum_23 {\n display: flow-root;\n min-width: 0;\n break-inside: avoid;\n margin-bottom: var(--wb-len-12);\n}\n._root_1cmz0_1 {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}\n\n._rail_1cmz0_7 {\n margin: 0 0 var(--wb-len-4);\n}\n\n._glyphBox_1cmz0_11 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n._glyph_1cmz0_11 {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}\n\n._glyphActive_1cmz0_30 {\n color: var(--dsw-alias-state-business-primary);\n}\n\n._triggerName_1cmz0_34 {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-6);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n}\n\n._dir_1cmz0_45 {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._name_1cmz0_53 {\n flex: 0 1 auto;\n max-width: 50%;\n font-size: var(--dsw-font-xxs-12-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._triggerName_1cmz0_34 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._row_1cmz0_66 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n width: 100%;\n min-width: 0;\n}\n\n._trailing_1cmz0_74 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-20);\n height: var(--wb-len-20);\n margin-inline-start: auto;\n}\n\n._trailing_1cmz0_74 ._rowAction_1cmz0_84 {\n width: var(--wb-len-20);\n min-width: var(--wb-len-20);\n height: var(--wb-len-20);\n min-height: var(--wb-len-20);\n padding: 0;\n border-radius: var(--dsw-radius-sm);\n}\n\n._row_1cmz0_66 ._name_1cmz0_53 {\n color: var(--dsw-alias-label-tertiary);\n}\n\n._current_1cmz0_97 {\n flex: none;\n display: inline-flex;\n align-items: center;\n color: var(--dsw-alias-label-primary);\n}\n._dot_sosf1_1 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n._overlay_sosf1_8 {\n position: absolute;\n inset-block-start: var(--wb-len-neg-3);\n inset-inline-end: var(--wb-len-neg-3);\n}\n._tag_g9dg8_1 {\n flex: none;\n margin-inline-start: auto;\n}\n._dialog_1vye5_1 {\n width: min(var(--wb-len-420), 100%);\n}\n\n._stack_1vye5_5 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._input_1vye5_12 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-12);\n}\n\n._meta_1vye5_18 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n._dot_14w1n_1 {\n display: inline-flex;\n align-items: center;\n}\n\n._hover_14w1n_6 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n._blocker_1oaj0_1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--wb-len-6);\n padding: var(--wb-len-20) var(--wb-len-16);\n text-align: center;\n}\n\n._icon_1oaj0_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_1oaj0_15 {\n margin: var(--wb-len-2) 0 0;\n font-size: var(--dsw-font-s-14-font-size);\n line-height: var(--wb-line-22);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._hint_1oaj0_23 {\n margin: 0;\n max-width: var(--wb-len-42em);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n text-wrap: pretty;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 {\n align-items: flex-start;\n gap: var(--wb-len-6);\n padding: var(--wb-len-4) 0 var(--wb-len-2);\n text-align: left;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._title_1oaj0_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._hint_1oaj0_23 {\n max-width: 100%;\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._actions_1oaj0_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_1oaj0_1._blockerInline_1oaj0_32 ._raw_1oaj0_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_1oaj0_48 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-10);\n margin-top: var(--wb-len-6);\n}\n\n._raw_1oaj0_52 {\n margin-top: var(--wb-len-10);\n width: 100%;\n max-width: var(--wb-len-360);\n text-align: left;\n}\n\n._notice_1oaj0_71 {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: start;\n column-gap: var(--wb-len-10);\n margin: 0 0 var(--wb-len-10);\n padding: var(--wb-len-10) var(--wb-len-12);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-left: 2px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-1);\n}\n\n._notice_1oaj0_71._noticeFlat_1oaj0_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_1oaj0_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_1oaj0_98 {\n font-size: var(--wb-font-12-5);\n line-height: var(--wb-line-18);\n font-weight: 600;\n color: var(--dsw-alias-label-primary);\n}\n\n._noticeHint_1oaj0_105 {\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n\n._noticeActions_1oaj0_112 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n margin-top: var(--wb-len-neg-2);\n}\n\n._failure_1oaj0_119 {\n margin: var(--wb-len-8) 0 0;\n font-size: var(--wb-font-11-5);\n line-height: var(--wb-line-17);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._failureDetail_1oaj0_127 {\n display: block;\n margin-top: var(--wb-len-2);\n color: var(--dsw-alias-label-tertiary);\n white-space: pre-wrap;\n}\n\n._inlineAction_1oaj0_134 {\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n._inlineAction_1oaj0_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n\n._rawText_1oaj0_146 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
16439
16509
  function workbenchCss() {
16440
16510
  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}`;
16441
16511
  }
@@ -16465,6 +16535,10 @@ window.__ModuleLoader__.load({
16465
16535
  }
16466
16536
  }
16467
16537
  function mount(ctx) {
16538
+ setRuntimeTextResolver((text) => ctx.locale.resolveText?.({
16539
+ zh: text.zh,
16540
+ en: text.en
16541
+ }) ?? text.zh);
16468
16542
  const loadUnitManifests = createUnitManifestLoader();
16469
16543
  const units = createClientUnitRegistry({ onUnknownUnit: () => loadUnitManifests(units) });
16470
16544
  ctx.provide(UNITS_SERVICE, {